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