基于FPGA實(shí)現(xiàn)VLIW微處理器的設(shè)計(jì)與實(shí)現(xiàn)
超長(zhǎng)指令字VLIW(Very Long Instruction Word)微處理器架構(gòu)采用了先進(jìn)的清晰并行指令設(shè)計(jì)[1]。VLIW微處理器的最大優(yōu)點(diǎn)是簡(jiǎn)化了處理器的結(jié)構(gòu),刪除了處理器內(nèi)部許多復(fù)雜的控制電路[2],它能從應(yīng)用程序中提取高度并行的指令數(shù)據(jù),并把這些機(jī)器指令均勻地分配給芯片中的眾多執(zhí)行單元[3]。本設(shè)計(jì)是針對(duì)VLIW微處理器的基本功能設(shè)計(jì)實(shí)現(xiàn)的,是針對(duì)64位指令字和192位數(shù)據(jù)進(jìn)行操作處理,主要功能是將指令和數(shù)據(jù)分別劃分到3個(gè)并行操作單元中,在執(zhí)行單元中根據(jù)3個(gè)并行指令控制,對(duì)3個(gè)并行操作單元的數(shù)據(jù)進(jìn)行并行處理,同時(shí)對(duì)操作處理數(shù)據(jù)進(jìn)行存儲(chǔ)處理管理。由于篇幅所限,只是將取指令單元、譯碼單元、執(zhí)行單元、寫(xiě)回單元和寄存器堆這5個(gè)單元的設(shè)計(jì)方法與設(shè)計(jì)原理作簡(jiǎn)要介紹,沒(méi)有給出各個(gè)模塊設(shè)計(jì)仿真波形圖。
1 VLIW微處理器
1.1 VLIW微處理的基本結(jié)構(gòu)
VLIW微處理器的基本架構(gòu)如圖1所示,采用4級(jí)流水線的形式進(jìn)行架構(gòu)組織,分別是取指令(IF)、譯碼(DE)、執(zhí)行(EXE)、寫(xiě)回(WR)[4]。VLIW微處理器從外部?jī)?chǔ)存器中,取出指令和數(shù)據(jù),指令通過(guò)譯碼操作,要求處理器進(jìn)行執(zhí)行動(dòng)作,處理寄存器中的數(shù)據(jù)或者是取指令單元傳輸來(lái)的數(shù)據(jù),并通過(guò)寫(xiě)回單元,將處理的數(shù)據(jù)存儲(chǔ)到寄存器中。取指令單元是從存儲(chǔ)器中取出相對(duì)應(yīng)的指令和數(shù)據(jù),并將相應(yīng)的信息傳輸給譯碼單元和寄存器堆單元;譯碼單元的作用是將取指令單元的指令信息翻譯為執(zhí)行單元能夠識(shí)別的操作,將相應(yīng)的信息傳輸?shù)綀?zhí)行單元中;執(zhí)行單元是執(zhí)行對(duì)應(yīng)的指令信息和處理相關(guān)的數(shù)據(jù),同時(shí)也對(duì)寄存器堆送來(lái)的數(shù)據(jù)和指令進(jìn)行相應(yīng)的操作;寫(xiě)回單元是將執(zhí)行單元的數(shù)據(jù)存儲(chǔ)到寄存器堆中;寄存器堆是暫時(shí)存放取指令單元和寫(xiě)回單元的數(shù)據(jù)或是指令。
1.2 VLIW微處理器操作方式
VLIW處理器指令操作方式是實(shí)行3種并行的操作,指令格式設(shè)置為:最高4位作為保留位,其余各20位依次劃給操作1、操作2、操作3,在每個(gè)20位中又分別留有4位的保留位,最后對(duì)16位的指令進(jìn)行劃分為操作碼、源1地址、源2地址、目標(biāo)地址。3種操作方式是并行執(zhí)行,相互獨(dú)立,互不干擾,并且操作執(zhí)行都是64位的數(shù)據(jù);每一種操作方式都可以實(shí)現(xiàn)16種操作運(yùn)算:空操作、加、減、乘、裝載、移動(dòng)、讀、比較、或、與非、或非、取反、左移、右移、循環(huán)左移、循環(huán)右移等操作。任何一種操作都可以對(duì)16個(gè)寄存器中的數(shù)據(jù)進(jìn)行操作處理,且寄存器中所存儲(chǔ)的數(shù)據(jù)是64位。整個(gè)操作過(guò)程是將源1與源2寄存器中的數(shù)據(jù)進(jìn)行某種操作運(yùn)算,將其操作處理結(jié)果存入目標(biāo)寄存器中,其操作處理方式是采用寄存器尋址方式。
2 VLIW微處理器的設(shè)計(jì)與實(shí)現(xiàn)
根據(jù)VLIW微處理器系統(tǒng)架構(gòu)和基本原理,將整個(gè)VLIW微處理劃分為5個(gè)主要部分[5],并對(duì)如圖2所示的5個(gè)部分進(jìn)行功能設(shè)計(jì)與實(shí)現(xiàn)。具體原理:取指令模塊把外部存儲(chǔ)器的數(shù)據(jù)和指令傳送給譯碼模塊,并將部分指令信息傳送給寄存器堆,實(shí)現(xiàn)取指令的功能;譯碼模塊將取指模塊的數(shù)據(jù)和指令進(jìn)行相對(duì)應(yīng)的譯碼,實(shí)現(xiàn)某一種具體的操作,并將譯碼結(jié)果傳送到執(zhí)行模塊中;執(zhí)行模塊將譯碼模塊或者寄存器堆模塊的數(shù)據(jù)和指令實(shí)現(xiàn)其操作的具體功能,并將操作結(jié)果傳送到寫(xiě)回模塊中;寫(xiě)回模塊將執(zhí)行模塊的信息寫(xiě)入寄存器中,并輸出相關(guān)操作處理的數(shù)據(jù)。
評(píng)論