《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種基于ASIC實現的流水線架構8051內核設計
一種基于ASIC實現的流水線架構8051內核設計
來源:微型機與應用2013年第8期
史大龍1, 唐 建1, 周遠遠2, 黃 魯2
(1. 中國科學技術大學 電子科學與技術系, 安徽 合肥230027; 2. 中國科學技術大學 信息
摘要: 以對傳統8051微控制器的分析為基礎,在保證指令集不變的情況下,給出了一種基于ASIC的微控制器設計。該設計采用三級流水線結構,提高了指令的執行效率。仿真和測試結果顯示,所設計的8051內核可以正常工作。
Abstract:
Key words :

摘   要: 以對傳統8051微控制器的分析為基礎,在保證指令集不變的情況下,給出了一種基于ASIC的微控制器設計。該設計采用三級流水線結構,提高了指令的執行效率。仿真和測試結果顯示,所設計的8051內核可以正常工作。
關鍵詞: 微控制器; 流水線; ASIC

    8051微控制器至今具有非常廣泛的應用。其指令集簡單易懂,許多指令可直接訪問I/0引腳,便于迅速操作外圍設備。但在電路集成度和工作頻率越來越高、SoC結構越來越復雜的今天,高達12的CPI(Cycle Per Instruction)使得指令的執行效率十分低下。因此,設計一個指令執行效率高且兼容全部8051指令集的硬件架構具有重要意義。
1 8051的流水線設計
1.1 三級流水線的確定

     按照計算機指令系統劃分,8051微控制器屬于CISC架構。這種架構的特點是追求用最少的指令來完成所需的任務,因此它有數目龐大的指令集以提高編程效率;而由于不同功能的指令繁多,其代價是每條指令的長度和執行所占用的機器周期均不相同。與CISC架構對應的是RISC架構,雖然它只有少數指令,執行復雜運算時需要將多條指令組合操作,但這些指令絕大多數都可在一個周期內完成,有很高的指令執行效率[1]。因此,對8051微控制器進行某些類似RISC架構的改造,會使微控制器的執行效率得以提高。
    比較常見的流水線結構有三級流水線結構和五級流水線結構。五級流水線結構一般包括取指令、譯碼、執行、訪存和寫回五級。其優點是把整個執行過程分散到5個時鐘周期內,有助于提高硬件設計的主時鐘頻率;其缺點是由于前后指令之間的相關性,級數越大,每條指令的流水線之間的沖突就會越大,需要用一些“額外的”邏輯消除這些沖突或者在流水線隊列中插入大量的“氣泡”。三級流水線結構一般包括取指令、執行和寫回三級。與五級流水線結構相比,其“執行”級包括了五極流水線中的“譯碼”、“執行”和“訪存”三級,級數的減少有助于減少流水線中的沖突冒險,使得整個流水線結構相對簡單,適用于比較簡單、數據率較低的SoC系統中[2]。本設計采取三級流水線的結構,即在第一個時鐘周期內指令1進行取指令;第二個時鐘周期內指令1執行,指令2取指令;第三個時鐘周期內指令1進行寫回,指令2執行,指令3取指令。
    8051的指令集是CISC指令集,每條指令的執行(如圖1中的E階段)并不都是只需要一個時鐘周期,為了方便問題的表述,在圖1和后文中,將執行階段描述為一個時鐘周期。

1.2 一種提高取指令效率的方法
    如前文所述,8051的指令集中每條指令的長度并不相同,如“CLR A”長度為1 B,“LJMP address”長度為3 B。如果程序以字節為單位順次在程序存儲器中排列,那么在取指令階段讀取長字節指令時,就要花費多個時鐘周期。因此,改變程序在程序存儲器中的存儲方式,使在取指令階段能夠在一個時鐘周期內讀出多長度的字節,對于提升微控制器的執行效率具有一定意義。
     為此,采取將一個程序存儲器分為4個子程序存儲器的方式,子程序存儲器0存儲第0、4、8、12…個字節,子程序存儲器1存儲第1、5、9、13…個字節,子程序存儲器2存儲第2、6、10、14…個字節,子程序存儲器3存儲第3、7、11、15…個字節。這樣可以將高14位作為各自子程序存儲器的輸入地址總線,完成一個周期內取出4 B的工作。這種方式與將整個存儲器分為非2的整數次冪個子存儲器的方式相比,其各個子存儲器的地址產生邏輯簡單容易得多。
     當程序執行時,程序計數器向程序存儲器發送某一個地址,通過下文給出的組合邏輯控制,一并讀出以這個請求地址為首地址的連續4 B內容。由于8051的指令集中最長的指令是3 B指令,所以按照上述方法一定可以在一個周期之內將一條指令的全部字節取出。因為指令的第一個字節的內容可以唯一確定該指令的長度,所以,不僅可以判斷出在取出的4 B中究竟有多少條屬于此指令,而且可以預測出下一條指令的地址,為下一周期的取指令做好準備[3]。
     例如程序存儲器的輸入地址Addr=0x0021時,預期讀出第0x0021、0x0022、0x0023和0x0024共4 B,這種情況下,0x0021、0x0022和0x0023字節在各子程序存儲器中的地址為2’b00 0000 0000 1000(即Addr的高14位),而0x0024在子程序存儲器0中的地址為2’b00 0000 0000 1001(即Addr的高14位加1)。因此,將高14位地址Addr[15:2]和Addr[15:2]+1作為二選一選擇器的兩個輸入,Addr[1]和Addr[0]作為選擇器的控制端,即可實現上文提到的一個周期內依次取出4 B的操作。各子程序存儲器的輸入地址如表1所示,改進后的程序存儲器如圖2所示。

1.3 流水線沖突冒險的處理
  在程序計數器預測下一指令的地址時,采取的方式是根據當前已經讀取指令的地址和長度來計算下一指令的地址,當第N條指令執行完畢,程序需要發生跳轉時(如圖3 時刻1),第N+1條指令已經完成取指令,而這條已經取過的指令是按照無跳轉情況發生的情況下的“下一條指令”,即此時這種預測策略就會發生錯誤。但這條指令只完成了取指令,并沒有執行,在此,設置一個周期的等待信號給執行模塊,將執行模塊暫停一個周期(時刻1和時刻2之間),一個周期后,程序完成跳轉,跳轉后的指令進入流水線。

    另外的一種流水線沖突發生在后一條指令要讀取前一條指令運算結果的時刻,如圖4所示。在這種情況下,前一指令執行階段完成,即將進入寫回階段;后一條指令等待執行,需要從合適的位置讀取操作數。這時,前一條指令的結果尚未寫入到數據存儲器中,后一條指令讀取的是更新前的操作數(時刻1)。因此,如果在某一個時鐘周期對同一個地址進行讀寫,那么寫操作照常進行,而讀操作則不經過存儲器直接讀取即將寫入存儲器的數據,這樣就能避免讀取尚未更新的數據的問題[4]。

2 仿真及流片測試
    用Keil4(單片機系列的編譯軟件)對C代碼和匯編代碼進行編譯鏈接產生二進制的機器碼,存入程序存儲器作為被執行程序以供仿真,多個機器碼覆蓋8051指令集的全部指令。
    圖5所示為取指令階段仿真波形圖。pc指示指令的物理地址,該物理地址為首地址的4 B內容被讀出,并將前3字節(8051最長指令)依次賦給operator1、operator2和operator3,跟據operator1的內容,可以判斷op_len(即該指令的長度值)并計算下一指令的pc值。

    在pc=0x73周期,完成取指令“SJMP EE”(對應機器碼為0x80,0xEE);下一個時鐘周期按照無跳轉發生的情況完成下一條指令的取指,同時執行這個跳轉指令;執行結束后,程序跳轉到0x63(0x73+指令長度+0xEE)這一正確位置繼續執行。
 經仿真驗證分析,該設計可以解決程序跳轉以及對同一地址進行讀寫等易造成流水線沖突的問題,并執行出正確的結果。
    將此設計在SMIC 180 nm CMOS工藝下進行綜合,可實現時鐘頻率為250 MHz的情況。進一步的性能提升(如提高頻率、降低功耗)可通過改善集成電路工藝實現。
    流片后測試應用Altra公司的Stratix-Ⅱ FPGA芯片和自制的開發板產生測試向量(即微控制器的輸入信號),用邏輯分析儀捕捉芯片的輸出信號。經測試,流片后的微控制器可以根據二進制機器碼正確執行。
    本文提出了一種流水線結構的8051設計,采用三級流水線結構,在指令集不變的情況下提高了指令執行效率,滿足工程實際需要。該設計可以作為單獨的控制器微芯片使用,也可和其他IP一起進行SoC設計。
參考文獻
[1] GOLZE U. VLSI chip design with the hardware description language Verilog[M].北京:北京航空航天大學出版社,2005.
[2] RAMIREZ A, SANTANA O J, LARRIBA-PEY J L, et al.Fetching instruction streams[C]. Proceedings of the 35th Annual ACM/IEEE International Symposium on Microarchitecture,2002:371-382.
[3] SIMSIC J, TERAN S. 8051 core specification[DB/OL].(2001-09-25)[2013-01-21].http://www.opencores.org.
[4] 倪繼利,陳曦,李揮.CPU源代碼分析與芯片設計及Linux移植[M].北京:電子工業出版社,2007.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩卡一卡二| 伊甸园精品99久久久久久| 久久免费高清| 欧美一级电影久久| 亚洲欧美日本国产专区一区| 一区二区三区国产精品| 99精品国产在热久久| 亚洲人成亚洲人成在线观看图片 | 欧美大片网址| 免费成人毛片| 欧美 日韩 国产精品免费观看| 美女国内精品自产拍在线播放| 久久全国免费视频| 久久在线免费| 免费黄网站欧美| 欧美α欧美αv大片| 欧美国产一区二区| 欧美精品二区三区四区免费看视频| 欧美福利一区二区| 欧美激情网友自拍| 欧美伦理视频网站| 欧美先锋影音| 国产欧美日韩一区二区三区在线观看| 国产日韩综合一区二区性色av| 国产一区视频网站| 红桃视频成人| 亚洲国产小视频| 亚洲经典视频在线观看| av成人老司机| 午夜精品久久久久| 91久久在线| 一区二区三区不卡视频在线观看| 亚洲免费一在线| 久久大综合网| 蘑菇福利视频一区播放| 欧美日韩免费观看一区二区三区| 欧美午夜精品久久久久久超碰| 国产精品制服诱惑| 一区二区三区中文在线观看| 亚洲国产精品久久久久秋霞影院| 日韩网站在线看片你懂的| 亚洲婷婷在线| 久久国产精品高清| 一本大道av伊人久久综合| 午夜亚洲视频| 老色鬼精品视频在线观看播放| 欧美国产日韩xxxxx| 国产精品超碰97尤物18| 国产亚洲欧美日韩精品| 亚洲黄色在线| 亚洲欧美久久久久一区二区三区| 亚洲第一天堂av| 一区二区三区日韩| 久久激情视频| 欧美日韩国产精品一区| 国产免费成人在线视频| 亚洲第一二三四五区| 在线中文字幕一区| 亚洲成色www8888| 亚洲一区中文| 蜜臀久久99精品久久久久久9| 欧美亚洲成人免费| 一区二区在线观看av| 一本色道久久综合亚洲精品不卡| 久久av一区| 一区二区三区日韩欧美精品| 久久久91精品国产| 欧美日韩一区二区三区在线 | 亚洲伦伦在线| 欧美在线观看日本一区| 亚洲视频免费| 免费成人高清视频| 国产目拍亚洲精品99久久精品| 亚洲欧洲视频| 久久不见久久见免费视频1| 亚洲一区二区精品在线| 免费在线亚洲欧美| 国产精品自拍三区| 日韩一二三区视频| 亚洲第一区在线观看| 午夜视频久久久| 欧美激情综合在线| 国内免费精品永久在线视频| 亚洲视频精选| 一区二区三区高清| 欧美福利视频在线观看| 国内久久视频| 午夜精品久久久久久| 亚洲尤物在线| 欧美精品久久一区二区| 精品成人国产| 性做久久久久久久免费看| 亚洲婷婷国产精品电影人久久| 欧美福利视频在线| 一区二区三区在线免费视频| 欧美一级在线视频| 亚洲欧美视频在线观看视频| 欧美激情综合网| 亚洲成人直播| 亚洲福利视频专区| 久久青草欧美一区二区三区| 国产精品主播| 亚洲一区二区三区久久| 亚洲午夜未删减在线观看| 欧美精品在线视频| 亚洲高清视频在线观看| 亚洲国产精品一区| 久久婷婷av| 国产亚洲精品自拍| 欧美一区二区黄色| 性色av一区二区三区| 国产精品jizz在线观看美国 | 国产精品尤物福利片在线观看| 一区二区三区欧美| 亚洲一区二区三区高清| 欧美午夜a级限制福利片| 亚洲精品在线看| 一本色道久久综合亚洲二区三区| 欧美肥婆在线| 亚洲国产日韩欧美在线99| 亚洲精品日韩在线| 欧美福利电影在线观看| 亚洲黄一区二区| 亚洲精品一区二区三区樱花| 欧美激情免费在线| 亚洲人成在线观看一区二区| 日韩视频免费观看| 欧美欧美全黄| 9人人澡人人爽人人精品| 亚洲免费网址| 国产欧美 在线欧美| 欧美中文字幕在线视频| 老牛影视一区二区三区| 亚洲国产精品va在线看黑人 | 亚洲天堂网在线观看| 欧美无乱码久久久免费午夜一区| 一本久道久久综合中文字幕| 亚洲在线免费观看| 国产日韩欧美精品在线| 久久精品72免费观看| 蜜桃av一区二区三区| 亚洲日本激情| 亚洲欧美国产一区二区三区| 国产日产欧产精品推荐色| 欧美资源在线| 欧美大片免费久久精品三p | 欧美激情一区二区三级高清视频| 亚洲日本欧美| 亚洲一区二区三区四区五区午夜| 国产精品久久久久久久免费软件| 亚洲欧美在线高清| 免费亚洲网站| 日韩一级片网址| 欧美在线观看视频一区二区三区| 韩国女主播一区| 亚洲精品在线免费| 国产精品久久久久久久电影| 香蕉成人久久| 欧美.日韩.国产.一区.二区| 在线性视频日韩欧美| 久久久久一区二区三区| 亚洲欧洲日产国产综合网| 亚洲欧美日韩国产另类专区| 黑人巨大精品欧美一区二区| 一本高清dvd不卡在线观看| 国产精品一区二区三区观看| 亚洲国产精品尤物yw在线观看| 欧美日韩亚洲综合| 欧美在线亚洲在线| 欧美另类视频| 欧美一级淫片播放口| 欧美精品在线免费播放| 午夜免费日韩视频| 欧美成人免费大片| 亚洲一区二区3| 欧美va亚洲va香蕉在线| 亚洲无吗在线| 欧美成人一区二区三区片免费| 亚洲一区二区视频| 欧美3dxxxxhd| 午夜免费日韩视频| 欧美日韩午夜在线| 久久精品欧美日韩| 国产精品久久久久久久久久妞妞| 亚洲国产一区二区a毛片| 国产精品私人影院| 日韩午夜激情| 国产在线精品成人一区二区三区 | 亚洲免费视频观看| 欧美电影打屁股sp| 欧美亚洲免费电影| 欧美日韩国产页| 亚洲成色777777女色窝| 国产精品美女久久久免费| 亚洲日本理论电影| 国产主播精品在线| 小辣椒精品导航| 亚洲日本电影| 免费在线欧美视频| 欧美在线免费观看亚洲|