国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

EISC理念與動(dòng)作表功能設(shè)計(jì)

2015-02-20 05:23黃志鋼于林鑫
關(guān)鍵詞:指令集寄存器專用

黃志鋼,于林鑫

(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽(yáng) 110159)

EISC理念與動(dòng)作表功能設(shè)計(jì)

黃志鋼,于林鑫

(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽(yáng) 110159)

為提高處理器的性能,提出了EISC(Efficiency Instruction Set Computer)理念,并針對(duì)普通邏輯的處理,提出了動(dòng)作表功能及其對(duì)應(yīng)的指令和硬件,規(guī)定了動(dòng)作表指令的助記符和機(jī)器碼,設(shè)計(jì)了動(dòng)作表狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖,用Verilog語(yǔ)言實(shí)現(xiàn)了這個(gè)功能,得到了Modelsim仿真結(jié)果,表明處理數(shù)據(jù)的能力和效率都有了質(zhì)的提升。

處理器;EISC;動(dòng)作表;助記符;機(jī)器碼;Verilog

從現(xiàn)階段的主流體系結(jié)構(gòu)講,處理器架構(gòu)分為CISC及RISC兩大類,CISC是傳統(tǒng)處理器,RISC是在指令級(jí)別上對(duì)CISC的改進(jìn)。隨著計(jì)算機(jī)技術(shù)的發(fā)展,在通用處理器上嵌入專用處理器及專用指令集的技術(shù)得到了迅速的發(fā)展及使用,它們比通用處理器及通用指令集的處理效率要高得多[1],是在功能層級(jí)上的改進(jìn)。1997到1999年,Intel公司在奔騰CPU產(chǎn)品中先后推出了多媒體擴(kuò)展系統(tǒng)MMX指令集及其相應(yīng)的硬件和數(shù)據(jù)流單指令序列擴(kuò)展指令(SSE)。MMX是把多媒體信息計(jì)算提取出來(lái)作為一個(gè)功能為其設(shè)計(jì)了專用的硬件和軟件,增強(qiáng)了處理器對(duì)多媒體信息的處理能力;SSE則是把浮點(diǎn)計(jì)算提取出來(lái)作為一個(gè)功能,有效地提高了浮點(diǎn)運(yùn)算速度。美國(guó)TI公司的TMS320系列DSP也使用專用數(shù)字信號(hào)處理器實(shí)現(xiàn)快速傅立葉變換(FFT)的功能,極大地提高了DFT變換的效率。

MMX、SSE及DSP專用信號(hào)處理器的共同特點(diǎn)是使用專用硬件和專用指令集來(lái)替代一段程序來(lái)提高處理器的性能,與RISC的指令層的優(yōu)化相比,在功能層的優(yōu)化空間更大。把過(guò)去用通用處理器、通用指令集完成的某些工作剝離出來(lái)使用專用處理器和專用指令集來(lái)執(zhí)行,其性能的改善遠(yuǎn)遠(yuǎn)高于對(duì)通用指令集的優(yōu)化。而且使用MMX、SSE及DSP專用信號(hào)處理器處理數(shù)據(jù)時(shí),其MIPS指標(biāo)不僅沒(méi)有上升反而下降,所以,不能再用MIPS來(lái)評(píng)價(jià)其性能,而應(yīng)改用MDPS(Million Data Per Second)來(lái)評(píng)價(jià)。這部分設(shè)計(jì)思想不同于CISC和RISC的體系結(jié)構(gòu),把它稱為EISC(Efficiency Instruction Set Computer),即高效率指令集處理器。文中介紹了基于EISC理念的動(dòng)作表功能設(shè)計(jì),并利用軟件仿真實(shí)現(xiàn)其功能。如果應(yīng)用在專用處理器上,基于EISC理念的動(dòng)作表指令可以顯著提升處理器處理布爾計(jì)算的效率。

1 功能設(shè)計(jì)

受MMX、SSE及DSP專用信號(hào)處理器的啟發(fā),把程序中大量使用的布爾計(jì)算提取出來(lái)作為功能,為其設(shè)計(jì)專用軟件和相應(yīng)的硬件。布爾運(yùn)算可以抽象成組合電路中的真值表和時(shí)序電路的狀態(tài)表,把它們統(tǒng)一稱為動(dòng)作表。處理器如果能直接執(zhí)行動(dòng)作表指令,則在編程語(yǔ)言中就可以把復(fù)雜的多分支邏輯判斷表達(dá)得極為簡(jiǎn)潔,顯著提升處理布爾計(jì)算的效率。動(dòng)作表功能設(shè)計(jì)包括指令設(shè)計(jì)和相關(guān)硬件設(shè)計(jì),指令設(shè)計(jì)規(guī)定了指令的編碼格式、助記符和機(jī)器碼等;硬件設(shè)計(jì)是在FPGA硬件基礎(chǔ)上進(jìn)行Verilog硬件描述語(yǔ)言設(shè)計(jì)。

2 指令設(shè)計(jì)

規(guī)定:動(dòng)作表是由左半部的條件字和右半部的動(dòng)作字組成。動(dòng)作表指令是一種高效率的專用指令,助記符為ACTAB。對(duì)動(dòng)作表進(jìn)行操作時(shí),把輸入變量當(dāng)前值與動(dòng)作表的條件字進(jìn)行匹配,如果匹配成功,則輸出條件字對(duì)應(yīng)的動(dòng)作字并結(jié)束指令,否則跳到下一行條件字繼續(xù)比對(duì),以此類推,直到完成最末行。

2.1 ACTAB指令的助記符

以一個(gè)3輸入、2輸出、2行的ACTAB為例,其動(dòng)作表與指令助記符如圖1所示。

X2X1X0Y1Y01011-0-1/0

ACTAB(X2,X1,X0)→(Y1,Y0)

{

(1,0,1)→(1,-)

(0,-,1)→(/,0)

}

圖1 3輸入、2輸出、2行的動(dòng)作表與指令助記符

由ACTAB的助記符格式可知,對(duì)于用戶來(lái)說(shuō),ACTAB指令操作方便,容易理解,只要了解數(shù)字電路真值表相關(guān)知識(shí),便可按需使用[2]。

2.2 實(shí)例中ACTAB指令的存儲(chǔ)碼

ACTAB指令的動(dòng)作行輸入為:“0”、“1”、“-”分別是“反變量”、“正變量”、“無(wú)變量”,輸入變量必須用兩位二進(jìn)制數(shù)表示;動(dòng)作行輸出為:“0”、“1”、“-”、“/”分別是“清0”、“置1”、“不變”、“取反”,輸出變量也必須用兩位二進(jìn)制數(shù)表示。3輸入、2輸出、2行ACTAB的存儲(chǔ)碼及其存儲(chǔ)規(guī)則如圖2所示。

X2X1X0Y1Y0高位00001低位10111高位01110低位0?000

X01-Y01/-高位001高位0011低位01?低位0101

圖2 存儲(chǔ)碼及其存儲(chǔ)規(guī)則

由ACTAB的存儲(chǔ)碼格式可知,對(duì)于機(jī)器來(lái)說(shuō),把位變量拼接成字變量,并用字變量的方式進(jìn)行處理,指令數(shù)和總線操作次數(shù)都明顯減少,即強(qiáng)調(diào)了對(duì)有效數(shù)據(jù)的處理,功能相當(dāng)于SIMD(單指令多數(shù)據(jù)流)指令。

2.3 實(shí)例中ACTAB指令的可執(zhí)行碼(機(jī)器碼)

3輸入、2輸出、2行ACTAB指令的可執(zhí)行碼與ACTAB使用的數(shù)據(jù)區(qū)如表1所示。

表1 ACTAB的數(shù)據(jù)地址及內(nèi)容

由表1可知,當(dāng)RISC使用展開(kāi)式的寫法,在完成單獨(dú)一個(gè)結(jié)果的時(shí)候,DIP值的最理想情況為1;當(dāng)有N個(gè)結(jié)果時(shí),數(shù)據(jù)會(huì)被重復(fù)讀取N次,DIP值降為1/N。而對(duì)于有M個(gè)輸入、N個(gè)輸出變量、L行時(shí),在EISC的ACTAB指令中,除了4個(gè)字(指令操作碼、輸入變量個(gè)數(shù)、輸出變量、行數(shù))外,其余2L個(gè)都為數(shù)據(jù),所以理論上DIP值可以逼近(N+M+L)/4,實(shí)際為(N+M+L/2)/4,遠(yuǎn)大于1。

3 基于EISC理念的ACTAB指令的設(shè)計(jì)思想(硬件設(shè)計(jì))

3.1 行為分析描述

該P(yáng)LC處理器執(zhí)行ACTAB指令的實(shí)現(xiàn)主要分為三個(gè)操作:讀取輸入操作、逐行比較操作、修改返回操作,且每個(gè)階段都有相應(yīng)的計(jì)數(shù)器。

(1)讀取輸入操作:根據(jù)用戶提供的ACTAB指令指明的地址,讀取輸入變量的個(gè)數(shù),然后逐個(gè)把輸入變量提取到臨時(shí)寄存器中。

(2)逐行比較操作:讀取ACTAB指令行數(shù),并逐行讀取條件字,逐行檢測(cè)是否與條件字匹配。如果匹配,則轉(zhuǎn)向(3);如果臨時(shí)寄存器內(nèi)容與所有條件字都不匹配,則該指令結(jié)束。

(3)修改返回操作:讀取輸出變量個(gè)數(shù),并按照輸出變量地址依次將每一位輸出變量讀取到臨時(shí)寄存器里;讀取匹配行的動(dòng)作字,并計(jì)算出輸出變量的動(dòng)作結(jié)果,最后將該結(jié)果修改并返回。

3.2 狀態(tài)轉(zhuǎn)移過(guò)程

將以上步驟細(xì)化為20個(gè)時(shí)序狀態(tài)S0,S1…S19,并在Cyclone IV芯片上用Verilog的狀態(tài)機(jī)實(shí)現(xiàn)[3]。

4 仿真過(guò)程及結(jié)果分析

4.1 仿真過(guò)程

對(duì)2行5列的ACTAB使用Modelsim SE進(jìn)行功能仿真驗(yàn)證[4]。仿真結(jié)果如圖4所示。

圖3 ACTAB指令的狀態(tài)轉(zhuǎn)移圖

圖4 2行5列ACTAB的仿真結(jié)果

由圖4可看出,標(biāo)志信號(hào)actab_flag在下降沿的瞬間,動(dòng)作表命令進(jìn)入S0狀態(tài),狀態(tài)機(jī)進(jìn)行初始化。待actab_flag再次為高電平并且actab_clk在第一個(gè)上升沿時(shí),狀態(tài)開(kāi)始轉(zhuǎn)移。

S1結(jié)束時(shí):輸入變量X個(gè)數(shù)0x0003讀入到臨時(shí)寄存器中;指令指針寄存器的值作為輸入變量X的基地址讀入到指令指針寄存器中,狀態(tài)轉(zhuǎn)移到S2;

S2結(jié)束時(shí):9個(gè)輸入變量以四位十六進(jìn)制數(shù)0x01a0已經(jīng)全部讀入到臨時(shí)寄存器中,狀態(tài)轉(zhuǎn)移到S3;

S3結(jié)束時(shí):動(dòng)作表行數(shù)0x0002讀入到臨時(shí)寄存器,狀態(tài)轉(zhuǎn)移到S4;

S4結(jié)束時(shí):輸入變量X的第一行的高行值0x0000讀入到臨時(shí)寄存器中,狀態(tài)轉(zhuǎn)移到S5;

S5結(jié)束時(shí):輸入變量X的第一行的低行值0x0140讀入到臨時(shí)寄存器中,狀態(tài)轉(zhuǎn)移到S6;

S6結(jié)束時(shí):存放第一行檢驗(yàn)結(jié)果的臨時(shí)寄存器的值為0xff1f,由此可見(jiàn)第一行不是輸入變量X的匹配行;經(jīng)過(guò)S7、S8兩個(gè)狀態(tài)的延時(shí)后,狀態(tài)轉(zhuǎn)移回到S4;

S4結(jié)束時(shí):輸入變量X的第二行的高行值0x0080讀入到臨時(shí)寄存器中,狀態(tài)轉(zhuǎn)移到S5;

S5結(jié)束時(shí):輸入變量X的第二行的低行值0x01a0讀入到臨時(shí)寄存器中,狀態(tài)轉(zhuǎn)移到S6;

S6結(jié)束時(shí):存放第二行檢驗(yàn)結(jié)果的臨時(shí)寄存器中的值為0xffff,由此可見(jiàn)第二行是輸入變量X的匹配行,狀態(tài)轉(zhuǎn)移到S7后依次轉(zhuǎn)移到S10;

S10結(jié)束時(shí):輸出變量Y的個(gè)數(shù)0x0002讀入到臨時(shí)寄存器中;指令指針寄存器的值作為輸出變量Y的基地址讀入到指令指針寄存器中,狀態(tài)轉(zhuǎn)移到S11;

S11結(jié)束時(shí):4個(gè)輸出變量以四位十六進(jìn)制數(shù)0x0002已經(jīng)全部讀入到臨時(shí)寄存器中;經(jīng)過(guò)S12的指令指針寄存器調(diào)整之后,狀態(tài)轉(zhuǎn)移到S13;

S13結(jié)束時(shí):輸出變量Y的對(duì)應(yīng)行的高行值0x000a讀入到臨時(shí)寄存器中,狀態(tài)轉(zhuǎn)移到S14;

S14結(jié)束時(shí):輸出變量Y的對(duì)應(yīng)行的低行值0x0003讀入到臨時(shí)寄存器中,狀態(tài)轉(zhuǎn)移到S15;

S15結(jié)束時(shí):輸出變量Y的動(dòng)作結(jié)果求出為0x000b,狀態(tài)轉(zhuǎn)移到S16;

S16結(jié)束時(shí):輸出變量Y的動(dòng)作結(jié)果全部按位修改完畢,狀態(tài)轉(zhuǎn)移到S19,結(jié)束。

4.2 結(jié)果分析

綜上所述,采用PLC的通用語(yǔ)句表對(duì)M個(gè)輸入、N個(gè)輸出變量、L行的動(dòng)作表進(jìn)行操作時(shí),只能采取逐個(gè)變量讀取、計(jì)算、寫回的過(guò)程,若采用平鋪直線無(wú)循環(huán)的寫法,有(M+N)×L×2個(gè)存儲(chǔ)器操作來(lái)取址取數(shù)[5];而采用ACTAB進(jìn)行操作時(shí),僅需2×(N+M+L)個(gè)總線周期,大幅度提升了處理布爾計(jì)算的速度。由于寄存器讀寫速度遠(yuǎn)高于存儲(chǔ)器讀寫速度,所以其運(yùn)行周期也大大縮短。

高效率指令集處理器在理論上處理任務(wù)時(shí)的代價(jià)(代碼空間、數(shù)據(jù)空間、代碼傳送帶寬、數(shù)據(jù)傳送帶寬、運(yùn)行時(shí)間)比傳統(tǒng)的處理器要小很多,避免代碼和數(shù)據(jù)的無(wú)效或低效傳輸,可以做到批量處理或者流水線處理,有更高的數(shù)據(jù)指令比DIR(Data Instructions Ratio),而且寄存器的讀寫速度遠(yuǎn)高于存儲(chǔ)器的讀寫速度,所以其運(yùn)行時(shí)間也會(huì)大幅度縮短。

5 結(jié)束語(yǔ)

利用Modelsim SE驗(yàn)證了ACTAB指令邏輯可行,讀寫數(shù)據(jù)正確,驗(yàn)證了所設(shè)計(jì)的處理器ACTAB指令功能的可行性。與傳統(tǒng)PLC語(yǔ)句表處理數(shù)據(jù)進(jìn)行對(duì)比,理論上能提高M(jìn)DPS,無(wú)代碼膨脹,減少數(shù)據(jù)傳送和指令傳送的工作量,降低系統(tǒng)空間的占用率,大幅度提高處理數(shù)據(jù)的速度。所以,在相同的FPGA平臺(tái)上,基于EISC理念的ACTAB指令,處理布爾計(jì)算的能力會(huì)有質(zhì)的提升。在后續(xù)的研究中,會(huì)對(duì)“鏈表搜索”、“文本查找”等專用指令功能進(jìn)行設(shè)計(jì)。

[1]晏小波.FT64流處理技術(shù):體系結(jié)構(gòu),編程語(yǔ)言,編譯技術(shù)及編程方法[D].長(zhǎng)沙:國(guó)防科技大學(xué),2007.

[2]鄭陽(yáng).基于華P語(yǔ)言的PLC核研究與設(shè)計(jì)[D].沈陽(yáng):沈陽(yáng)理工大學(xué),2010.

[3]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.

[4]吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學(xué)出版社,2010.

[5]吳中俊,黃永紅.可編程序控制器原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.

(責(zé)任編輯:馬金發(fā))

The Concept of Efficiency Instruction Set Computer and the Functional Design of the Action Table

HUANG Zhigang,YU Linxin

(Shenyang Ligong University,Shenyang 110159,China)

In order to improve the performance of the processor,EISC(Efficiency Instruction Set Computer) concepts were proposed,for the general logic,the functions and the corresponding instructions and hardware of the Action Table were proposed.The mnemonic and the machine code were provided for the Action Table,the state transition diagram of the Action Table state machine was designed,Verilog language was used to implement this function,the Modelsim simulation results were obtained,which showed that data processing capacity and efficiency had been a qualitative improvement.

processor;EISC;action table;mnemonic symbol;machine code;Verilog

2014-09-26

黃志鋼(1960—),男,副教授,研究方向:計(jì)算機(jī)控制系統(tǒng),嵌入式系統(tǒng).

1003-1251(2015)02-0023-05

TP332

A

猜你喜歡
指令集寄存器專用
基于Kubernetes的RISC-V異構(gòu)集群云任務(wù)調(diào)度系統(tǒng)①
STM32和51單片機(jī)寄存器映射原理異同分析
體能測(cè)試專用鞋
體能測(cè)試專用鞋
體能測(cè)試專用鞋
3DNow指令集被Linux淘汰
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
愛(ài)它就給它專用的設(shè)備
實(shí)時(shí)微測(cè)量系統(tǒng)指令集及解析算法
什么是AMD64
新化县| 镇平县| 喜德县| 田阳县| 肥西县| 股票| 恩平市| 玉龙| 武城县| 永善县| 民和| 崇明县| 荔浦县| 弥渡县| 德江县| 瑞丽市| 仲巴县| 澎湖县| 屯留县| 玉龙| 剑川县| 孟州市| 阿巴嘎旗| 汽车| 儋州市| 桦川县| 松江区| 德令哈市| 石渠县| 图木舒克市| 皮山县| 大洼县| 大关县| 兖州市| 通道| 克山县| 封丘县| 广丰县| 武汉市| 荥经县| 确山县|