999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ARMv4指令集嵌入式微處理器設計*

2014-12-10 05:37:32陳明敏易清明
電子技術應用 2014年12期
關鍵詞:指令符號

陳明敏,易清明,石 敏

(暨南大學 信息科學技術學院,廣東 廣州 510632)

0 引言

ARM微處理器具有高性能、低功耗特點,市場占有率上ARM微處理器超過了75%,其產品從最初的單核ARM7發展到現在的多核Cortex R系列,相應的指令集從最原始的ARMv1到現在的ARMv8。每一種指令集都是在前一種指令集的基礎上增加若干指令用于提升性能,這樣微處理器保持了良好的向下兼容特性,用于低端芯片的工程可以完美地移植到高端的芯片上,具有良好的繼承性。其中ARMv4是第一次用于商業芯片的指令集,因而ARMv4是ARM微處理器指令發展源泉。對于ARM微處理的研究國內目前主要集中在應用軟件上,通過ARM微處理器設計了一段什么樣的代碼,完成了什么樣的功能[1-2],而對于微處理器自身的研究較少。參考文獻[3]利用ARMv4指令集加入wishbone總線設計了一款新的32位微控制器,其微處理器結構、流水線運行模式都與原來一樣,沒有什么變化。參考文獻[4]針對ARMv4指令集做了一個仿真平臺,主要用于監控微處理器程序運行狀態,而對微處理器本身并沒有什么改變。參考文獻[5]完成了一個指令模擬器,即在一臺計算器上模擬一個ARM微處理器,其結構和指令完全都是按照芯片標準設計沒有一點變化。中國龍芯處理器以類MIPS指令集為基礎,采用自己設計的架構形成國產CPU。本文借鑒龍芯的發展模式,以ARMv4指令集為基礎,采用哈佛結構,優化內存訪問指令,充分利用資源共享,減少芯片面積,改進后的嵌入式微處理器性能有所提升。

1 嵌入式微處理器模塊設計

1.1 結構設計

當前微處理器有兩種存儲結構,馮·諾依曼結構和哈佛結構,如圖1所示。馮·諾依曼結構是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令存儲空間和數據存儲空間指向同一個存儲器的不同物理位置,共用一條數據總線,因而當讀取指令時,就必須暫停讀取數據,兩者只能分別進行操作。這種結構會制約后面流水線的并行操作。當流水線上一條指令訪問存儲器時,下一條指令必須等待上條指令訪問結束才可以訪問存儲器,期間流水線需要插入NOP指令等待,不能充分發揮流水線優勢。哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構。微處理器首先從程序指令存儲器中讀取程序指令內容,解碼后得到數據地址,或直接從寄存器中直接獲得數據地址,再到相應的數據存儲器中讀取數據,并進行下一步的操作。由于程序指令存儲和數據存儲分開,且擁有獨立的數據訪問總線。因而讀取程序和讀取數據可以同時進行,這樣可以更好發揮流水線優勢,本文采用哈佛結構。

圖1 微處理器兩種存儲結構

1.2 單周期32位乘法器設計

乘法器是重要而復雜的一個運算單元,乘法器電路信號傳播路徑長,電路延時比較大,針對乘法器很多人做了不同優化。參考文獻[6]引入流水線乘法器,通過分部計算減少了單次乘法器的運算周期,適用于連續乘法器運算。但單次乘法器運算,使用時鐘周期反而隨流水線增長而增加,并不適用于微處理器方面。參考文獻[7]針對傳統Booth編碼方式進行了優化,提出新的編碼方式。相比傳統Booth該方法減少了10%面積。同時優化部分積產生電路如圖2所示,在部分積相加階段采用單獨4-2壓縮器,相比2個3-2壓縮器構成的4-2壓縮器減少了門級電路。整個乘法器運算過程如圖3所示。

圖2 部分積產生電路比較

2 系統優化

2.1 第二操作數獲取

ARMv4指令集中數據的運算都是基于寄存器,通常一條指令包括1-3個寄存器,指明源寄存器和目的寄存器。指令中立即數一般會通過邏輯左移、邏輯右移、算術右移、循環右移、帶擴展的循環右移1位移位得到原立即數。這樣就需要5個32位的移位寄存器,這將增加芯片面積和功耗。通常控制邏輯單元消耗的邏輯資源少于運算單元消耗的資源。通過對數據的前期操作最后使用一個邏輯左移實現上面5種移位功能[8-9],大大減少邏輯資源。邏輯右移轉換成邏輯左移的實現過程如下:通過將被移數據補足為64位,然后將右移偏移量取負數,通過左移負數個單位,高位得到的32位結果就是邏輯右移的結果,移位示意圖如圖4所示。

圖4 邏輯右移過程

算術右移通過邏輯左移的實現過程如下:通過將被移數據補足為64位,然后判斷被移數據的正負性,若為負數則將數據取反,正數無需處理。然后將右移偏移量取負數,通過左移負數個單位,保留高位得到的32位數據結果。根據被移數據的正負性,若為負數則將數據取反,正數保持不變,最后得到的結果就是算術右移的最終結果,移位示意圖如圖5所示。

圖5 算術右移過程

循環右移通過邏輯左移的實現過程如下:通過將被移數據補足為64位,然后將右移偏移量取負數,通過左移負數個單位,將移位后的高32位數據與低32數據進行與運算得到結果即是循環右移的結果,移位示意圖如圖6所示。

圖6 循環右移過程

帶擴展的循環右移1位的實現過程如下:由于每次只能移位一個距離單位,只需要保留被移的數據的高31位,然后將進位標志C放在數據的最高位,即可實現帶擴展的循環右移1位功能。移位示意圖如圖7所示。

圖7 帶擴展的循環右移過程

2.2 乘法器和乘加法器指令實現

ARMv4指令集中的乘法運算有32位乘法運算,32位乘加運算,無符號乘法運算,無符號乘加運算、有符號乘法運算、有符號乘加運算6種。通常不同功能乘法器需要不同設計。這樣6類乘法需要2個乘法器和2個加法器。如果將有符號數在運算前轉換成無符號數,最后將運算結果根據之前的符號位轉換成有符號結果,這樣就將有符號乘法轉換為無符號乘法。對于簡單的乘法運算轉換為被加數為0的乘加運算,這樣所有的乘法和乘加運算都轉換為乘加運算。通過上面轉換后,6種乘法指令到最后都通過前置數據轉換共用一個乘加運算實現,如圖8所示。

圖8 乘加器原理圖

3 FPGA實現和Modelsim驗證

實驗所用FPGA芯片為Altera EP4CE30F23C7,EP4CE30器件總共有28 848個邏輯單元,器件中分布RAM有107 520 bit。由于芯片具有豐富的RAM,微處理器內部RAM和ROM均采用FPGA內部RAM實現。整個工程采用Verilog語言編寫,使用synplify pro 2011進行綜合,在Quartus 13.0下進行布局布線。利用Modelsim10.0a進行功能驗證和時序分析。設計ROM 32 KB,RAM 16 KB,時鐘20 MHz,其中內部 RAM、ROM通過使用 FPGA內部M4K存儲單元組成。C語言測試代碼使用μVision V4.22編譯生成,由于FPGA無法直接初始化32位HEX文件,需要將HEX文件轉換為MIF格式。代碼轉化軟件通過VC++6.0編寫。通過將轉換后將生成的MIF文件下載到ROM中進行測試驗證。

3.1 移位寄存器仿真

指令中包含的第二操作常數一般是通過8位常數循環右移得到。因而并不是所有常數都是合法常數。例如 mov r0,#0x1000;是合法指令,0x1000可以通過 0x01循環右移20個單位得到。但是mov r0,#0x1001;就是非法指令,因為0x1001無法通過一個8位數據循環右移得到。上文中通過一個邏輯左移實現4種邏輯運算功能,為了驗證其正確性下面將通過4條指令分別測試邏輯左移、邏輯右移、算術右移、循環右移4種功能。測試代碼及理論運算結果如下:

Modelsim仿真如圖9所示。

圖9 移位指令仿真

從Modelsim仿真結果看出,設計的單個邏輯左移移位寄存器很好的完成了上述4種功能。

3.2 乘法器和乘加法器仿真

經過優化后的乘法指令和乘加指令都通過同一個乘加器實現。為了驗證其正確性,分別采用6種乘法指令分析其正確性。測試思路是通過編寫指定的代碼,進行理論計算,然后對比微處理器運行結果。測試代碼及理論運行結果如下:

上面6段代碼主要是初始化r0、r1、r5值,運行后 r0為0x123456,r1為0x8000789a,r5為0x01。

mul r4,r0,r1:運算結果為 0x91a33937bcbbc,由于只取 32位結果,r4結果為 0x937bcbbc。

mla r4,r0,r1,r5:運算結果為 0x91a33937bcbbd,由于只取32位結果,r4結果為0x937bcbbd。

umull r4,r5,r0,r1:無符號乘法結果為 0x91a33937bcbbc,r5 結果為 0x91a33,r4 結果為 0x 937bcbbc。

umlal r4,r5,r0,r1:無符號乘發結果為 0x91a33937bcbbc,乘加 r5結果為 0x123467,r4結果為 0x 26f79778。

smull r4,r5,r0,r1:r1最高位為 1有符號運算時先轉換為無符號數0x7fff8766,然后計算得到無符號結果0x91a226c843444,轉換成有符號后r5結果為0xfff6e5dd,r4結果為 0x 937bcbbc。

smlal r4,r5,r0,r1:r1最高位為1有符號運算時先轉換為無符號數0x7fff8766,然后計算得到無符號結果0x91a226c843444,轉換成有符號結果為0xfff6e5dd937bcbbc,乘加后 r5結果為 0xffedcbbb,r4結果為 0x26f79778。

Modelsim仿真如圖10所示。從仿真結果看出,設計的單個乘加器正確的完成了上述6類指令的功能。

3.3 Dhrystone性能測試

圖10 乘法指令仿真

Dhrystone的計量單位為每秒計算多少次Dhrystone,它是一個相對值。程序用C語言編寫,能運行在大多數微處理器上,是測試處理器運算能力的最常見基準程序之一。基準程序使用μVision V4.22軟件下ARM自帶的Dhrystone2.1基準測試程序,去掉全部優化后,將編譯好的文件下載到本文設計的微處理器。選用NXP公司的ARM LPC2102微處理器芯片作為對比。LPC2102在ARMv4指令集基礎上增加了Thumb指令集,測試時禁用交叉編譯只生成32位的ARM指令。結果如表1所示。

表1 Dhrystone2.1基準測試

從表1中可以看出,改進后的微處理器,相比當前市面同種類微處理器性能有近20%提升。

4 結論

當前高性能、高效率的微處理器基本采用哈佛結構。本文以ARMv4指令集為基礎,將傳統馮·諾依曼結構更改為哈佛結構,擁有獨立指令總線和數據總線,其優點是在流水線階段可以同時進行訪問ROM和RAM,避免了單總線引起的資源競爭。采用單周期乘法器,提高微處理器的運算速度。在設計乘法器時,利用資源共享,最終一個乘加器實現了6條指令功能。采用單一邏輯左移移位寄存器實現多種模式移位功能。實驗結果表明,本文設計的微處理器能正確運行ARMv4指令集,同等條件下比當前市面同種類芯片性能有20%提高。大多數應用程序在不修改就可以提高20%性能。

[1]董海濤,莊淑君,陳冰,等.基于ARM+DSP+FPGA的可重構 CNC系統[J].華中科技大學學報(自然科學版),2012,40(8):82-87.

[2]竺樂慶,張三元,幸銳.基于 ARM與WinCE的掌紋鑒別系統[J].儀器儀表學報,2009,30(12):2624-2628.

[3]孫永琦.基于 ARMv4指令集的32位 RISC微控制器的設計與實現[D].浙江:浙江理工大學,2012.

[4]徐懷亮,劉曉升,王宜懷,等.一種ARM指令集仿真器的實現與優化[J].蘇州大學學報(工科版),2009,29(2):28-31.

[5]賈少波.基于X86平臺的ARM指令集模擬器的設計[J].電子設計工程,2013,21(12):164-169.

[6]周怡,李樹國.一種改進的基 4-Booth編碼流水線大數乘法器設計[J].微電子學與計算機,2014,1(6):60-63.

[7]翟召岳,韓志剛.基于Booth算法的32位流水線型乘法器設計[J].微電子學與計算機,2014,31(3):146-149.

[8]杜慧敏,王明明,沈子杰.32位桶式移位寄存器FPGA實現[J].西安郵電學院學報,2008,13(1):99-102.

[9]陳永強,雷雨.可變長移位寄存器在高速數據采集中的應用與 FPGA實現[J].西華大學學報(自然科學版),2013,32(4):61-63.

猜你喜歡
指令符號
聽我指令:大催眠術
學符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
“+”“-”符號的由來
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
變符號
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
倍圖的全符號點控制數
圖的有效符號邊控制數
pqr階Cayley圖的符號星控制數
主站蜘蛛池模板: 国产福利不卡视频| 国内自拍久第一页| 中日无码在线观看| 色国产视频| 婷婷开心中文字幕| 国产美女无遮挡免费视频网站 | 国产在线麻豆波多野结衣| 露脸国产精品自产在线播| 老熟妇喷水一区二区三区| 国产精品成人一区二区不卡| 日本精品视频一区二区| 久久99国产精品成人欧美| 国产福利免费视频| 天天摸天天操免费播放小视频| 夜夜操天天摸| 国产成人综合日韩精品无码不卡| 亚洲欧美精品一中文字幕| 亚洲AⅤ综合在线欧美一区| 久草性视频| 老司国产精品视频91| 成年人免费国产视频| 91久久精品日日躁夜夜躁欧美 | 人妻少妇乱子伦精品无码专区毛片| 成人一区在线| 国产精品hd在线播放| 国产xx在线观看| 天天干天天色综合网| 夜夜操狠狠操| 91小视频版在线观看www| 久久精品最新免费国产成人| 亚洲人成日本在线观看| 伊人久久青草青青综合| 综合人妻久久一区二区精品| 四虎国产精品永久在线网址| 久久永久免费人妻精品| 欧美一级99在线观看国产| 久久情精品国产品免费| 亚洲精品午夜无码电影网| 天天爽免费视频| 91久久大香线蕉| 欧美午夜网| 免费jjzz在在线播放国产| lhav亚洲精品| 国产成人精品在线| 精品国产99久久| 小说 亚洲 无码 精品| 91福利免费| 久久鸭综合久久国产| 成人中文在线| 亚洲成人福利网站| 试看120秒男女啪啪免费| 国产成人精品18| 视频在线观看一区二区| 国产一区自拍视频| 国产成人做受免费视频| 91美女视频在线| 高h视频在线| 欧美丝袜高跟鞋一区二区| 999福利激情视频| 国产乱人乱偷精品视频a人人澡| 麻豆国产精品一二三在线观看| 在线播放真实国产乱子伦| 91av国产在线| 无码国产伊人| 国产精品yjizz视频网一二区| av尤物免费在线观看| 国产精品极品美女自在线| 91人妻日韩人妻无码专区精品| 日韩精品无码免费专网站| 一本大道在线一本久道| 国产精品视频999| 粉嫩国产白浆在线观看| 国产成人精品一区二区| 亚洲a免费| 九色综合伊人久久富二代| 国产精品hd在线播放| 国产另类乱子伦精品免费女| 国产综合精品日本亚洲777| 久夜色精品国产噜噜| 国产欧美高清| 亚洲一区毛片| 国产91小视频|