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

?

嵌入式32位RISC CPU兼容性設(shè)計(jì)概述

2012-07-25 03:20:26闖,林
微處理機(jī) 2012年4期
關(guān)鍵詞:流水線嵌入式指令

羅 闖,林 楠

(中國電子科技集團(tuán)公司第四十七研究所,沈陽110032)

1 前言

目前,嵌入式技術(shù)的發(fā)展越來越成熟,嵌入式產(chǎn)品也越來越受到廣大年輕人的青睞。兼容型微處理器設(shè)計(jì)在高等教育領(lǐng)域也越來越受歡迎。

2 設(shè)計(jì)思路

設(shè)計(jì)兼容型微處理器的好處是可以借鑒ARM、MIPS、Nios II、PowerPC、SPARC、LEON、OR1000、OpenSparcT1/T2等幾大系列嵌入式微處理器的設(shè)計(jì)經(jīng)驗(yàn),其中前五類是具有自主知識產(chǎn)權(quán)的,各種資源比較豐富,學(xué)習(xí)一下是可以的,但是不能用于商業(yè)目的,而后三類是開源的,獲取GPL后則可以自由使用;因此設(shè)計(jì)思路是從目前主流微處理器的發(fā)展過程中汲取經(jīng)驗(yàn)。

3 設(shè)計(jì)過程概述

嵌入式32位RISC CPU兼容性設(shè)計(jì)需從硬件和軟件兩個(gè)方面來考慮。

3.1 硬件方面

硬件方面主要包括以下幾個(gè)方面:

3.1.1 指令集分析

指令是微處理器的靈魂,也是構(gòu)成指令集的最小單位,可以保證與目標(biāo)微處理器百分之百的二進(jìn)制兼容。

指令集主要包括:

·指令種類:通常包括運(yùn)算類,分支類、數(shù)據(jù)傳送類及其他等。運(yùn)算類主要用于算術(shù)運(yùn)算、邏輯運(yùn)算、乘法、除法等操作。分支類主要用于實(shí)現(xiàn)程序的跳轉(zhuǎn),靈活控制程序的執(zhí)行過程,滿足條件控制的需要。數(shù)據(jù)傳送類主要用來與存儲器進(jìn)行數(shù)據(jù)交換。其他是一些雜項(xiàng)指令。

·指令編碼格式:指令包括操作碼和操作數(shù)兩部分。操作碼實(shí)現(xiàn)指令的具體操作。操作數(shù)包括立即數(shù)、內(nèi)部寄存器、地址等。指令編碼格式確定操作碼和操作數(shù)在指令編碼表中的位置。

·指令助記符:如 MOV、ADD、SUB、MUL、DIV等,縮寫簡明易懂,便于程序員記憶和直接使用指令進(jìn)行匯編語言編寫目標(biāo)程序。

·指令尋址方式:主要有立即尋址、寄存器尋址、寄存器間接尋址、寄存器變址尋址、相對尋址等。

·指令周期:如指令單周期、指令多周期、指令數(shù)據(jù)相關(guān)周期等,必須與目標(biāo)微處理器一致。

通過分析,將所有指令的執(zhí)行過程進(jìn)行細(xì)化、歸類和簡化,為指令譯碼器、控制單元、ALU等功能模塊的設(shè)計(jì)提供必要的理論依據(jù),尤其是譯碼器輸出信號的種類和數(shù)量,因?yàn)樽g碼器是一大塊組合邏輯,而其占據(jù)流水線的一個(gè)階段,結(jié)構(gòu)設(shè)計(jì)不合理會直接影響系統(tǒng)性能。表1是以邏輯運(yùn)算指令和算術(shù)運(yùn)算指令為例給出的各階段指令分解動作簡表。

表1 各階段指令分解動作簡表

3.1.2 體系架構(gòu)設(shè)計(jì)

體系架構(gòu)是微處理器設(shè)計(jì)的關(guān)鍵,用來保證與不同指令集版本的兼容性。體系架構(gòu)中的關(guān)鍵是流水線技術(shù),也是RISC微處理器的一大特點(diǎn)。隨著性能要求的提高,流水線的深度也越來越深,即級數(shù)越來越多,同時(shí)帶來的流水線問題也更加復(fù)雜。

目前,常用的流水線深度有3級、5級、6級、8級、十幾級,有的甚至達(dá)到幾十級。下面以5級流水線為例,分為取指、譯碼、執(zhí)行、存儲器和回寫。取指級主要完成指令的預(yù)取,即程序計(jì)數(shù)器PC的生成。譯碼級主要完成指令譯碼、操作數(shù)的讀取和選擇。執(zhí)行級主要完成操作數(shù)的移位、邏輯運(yùn)算、算術(shù)運(yùn)算、乘法運(yùn)算、除法運(yùn)算、訪問數(shù)據(jù)存儲器地址的產(chǎn)生。存儲器級主要完成數(shù)據(jù)的讀寫或是簡單緩沖一個(gè)周期以保證流水線的完整性,也可以直接將執(zhí)行結(jié)果寄存到回寫級,以縮短指令的周期?;貙懠壷饕瓿蛇\(yùn)算結(jié)果的寫回操作。此外還有一個(gè)更重要的部件是系統(tǒng)控制單元,根據(jù)輸入的數(shù)據(jù)產(chǎn)生對應(yīng)的流水線控制信號,用來實(shí)現(xiàn)微處理器的有序工作。一般情況下流水線組織結(jié)構(gòu)如圖2所示。完成流水線所對應(yīng)的功能需要相應(yīng)的功能模塊。圖2中只是根據(jù)流水線的組織情況,將對應(yīng)的功能模塊放在流水線中,相當(dāng)于完成了系統(tǒng)的頂層模塊劃分,還沒有進(jìn)行數(shù)據(jù)通路和控制通路的規(guī)劃。數(shù)據(jù)通路的規(guī)劃是在內(nèi)部各個(gè)主要的功能模塊之間建立起相互之間的聯(lián)系:同級的模塊可能是串行或是并行,需要根據(jù)指令的功能而定;不同級之間的模塊需要通過流水線寄存器進(jìn)行數(shù)據(jù)交換。數(shù)據(jù)通路的規(guī)劃是根據(jù)當(dāng)前流水線中指令的執(zhí)行情況、指令功能和指令周期,由系統(tǒng)控制單元給出對應(yīng)的控制信號。系統(tǒng)控制單元是微處理器的核心,主要由一個(gè)有限狀態(tài)機(jī)構(gòu)成,包括系統(tǒng)復(fù)位、正常運(yùn)行、系統(tǒng)調(diào)試和中斷/異常四個(gè)狀態(tài),如圖3所示。

3.1.3 總線接口設(shè)計(jì)

目前,在SoC設(shè)計(jì)中使用的片上總線主要有ARM的32位總線AMBA 2.0(AHB、APB)和64位總線 AXI 1.0/2.0,MIPS 的OCP 2.1,Nios II的Avalon-Bus(包括 Avalon-MM、Avalon-TRI、Avalon-MM、Avalon-MM)、PowePC 的 CoreConnect(PLB、OPB、DCR)以及Silicore的Wishbone總線。六種總線都是同步總線,使用時(shí)鐘沿驅(qū)動和采樣信號??偩€的基本操作幾乎沒有區(qū)別,最大的區(qū)別在于提供的特性和規(guī)范的完整性。下面以AMBA AHB為例進(jìn)行簡要說明。圖4為最基本的AHB總線時(shí)序:一個(gè)周期為輸出地址周期,輸出需要訪問的地址和對應(yīng)的控制信號;接下來一個(gè)周期為數(shù)據(jù)周期,輸出或是讀入上一個(gè)周期對應(yīng)的數(shù)據(jù)信號。如果外設(shè)速度較慢,可以在數(shù)據(jù)周期插入等待信號,即將 HREADY置為“低”,從而可以使得總線接口部件的控制邏輯處于等待狀態(tài),以保證得到正確的數(shù)據(jù)。因?yàn)锳HB是一個(gè)比較完整的總線協(xié)議,可以適應(yīng)很多種情況,所以還需要增加更加復(fù)雜的邏輯,同時(shí)再根據(jù)微處理器的具體需要進(jìn)行適當(dāng)裁剪,這樣既可以保證與AHB協(xié)議的兼容性,還可以降低硬件的總體成本。

3.2 軟件方面

軟件方面主要是通過對應(yīng)軟件開發(fā)工具來進(jìn)行程序設(shè)計(jì),從而提高程序的設(shè)計(jì)效率、質(zhì)量和規(guī)模。每種微處理器都有對應(yīng)的軟件開發(fā)工具。一般情況下,微處理器廠商會開發(fā)自己的專用工具,如ARM的ADS和RealView;也有第三方為某個(gè)微處理器廠商設(shè)計(jì)的兼容性開發(fā)工具,如Keil為ARM開發(fā)的μVision;還可以使用免費(fèi)的GNU工具鏈,不過可能需要花一些時(shí)間和精力來進(jìn)行相應(yīng)的環(huán)境設(shè)置。

圖4 基本AHB總線時(shí)序

軟件開發(fā)工具是一個(gè)集成開發(fā)環(huán)境IDE,可以進(jìn)行匯編語言、C語言、C++等程序的編譯、鏈接、軟件調(diào)試、在線調(diào)試等。對于嵌入式32位微處理器來說,軟件開發(fā)工具的在線調(diào)試功能是非常重要的。因此,必須清楚調(diào)試工具的工作原理。目前使用的調(diào)試方式主要有兩種:一種是JTAG調(diào)試,如ARM、MIPS、NiosII、PowerPC等;另一種是串口調(diào)試,如LEON2/3/4、SparcV7/8/9等。下面以JTAG調(diào)試為例進(jìn)行簡要說明。軟件開發(fā)工具在PC端運(yùn)行,通過并口/USB接口與硬件仿真器相連。硬件仿真器通過內(nèi)部硬件實(shí)現(xiàn)與PC并口協(xié)議/USB協(xié)議到串行JTAG協(xié)議的轉(zhuǎn)換,并與微處理器的調(diào)試部件相連實(shí)現(xiàn)在線調(diào)試功能。圖5為使用JTAG接口調(diào)試的框圖。

圖5 使用JTAG接口調(diào)試的框圖

JTAG 接口主要包括 TCK、TMS、TDI、TDO 和TRST五個(gè)信號,使用簡單,連接方便,是目前采用最多的一種調(diào)試方式。JTAG調(diào)試部件的核心是Test access port(TAP)控制器狀態(tài)機(jī),共有16個(gè)狀態(tài),其狀態(tài)轉(zhuǎn)換過程如圖6所示。

圖6 JTAG TAP控制器狀態(tài)轉(zhuǎn)換圖

工作原理是先運(yùn)行JTAG指令,才能進(jìn)行對應(yīng)掃描鏈的操作,即在TCK和TMS的共同作用下,實(shí)現(xiàn)不同狀態(tài)之間的轉(zhuǎn)換。如果是進(jìn)行數(shù)據(jù)操作,需要先進(jìn)入到Select-DR-Scan狀態(tài),再進(jìn)入到Capture-DR、Shift-DR、Exit1-DR 和 Update-DR 狀態(tài),最后回到 Run-Test/Idle或是 Select-DRScan狀態(tài),即在中間的*-DR狀態(tài)來完成對所有掃描鏈的讀寫操作。如果使用JTAG指令,則需要進(jìn)入右邊*-IR狀態(tài)來完成對應(yīng)的指令動作。

4 結(jié)束語

以上只是簡要概述了嵌入式32位RISC CPU兼容性設(shè)計(jì)的主要方面,若要設(shè)計(jì)一個(gè)完全與之兼容的微處理器,還需要進(jìn)行大量的設(shè)計(jì)工作。

[1] [英]Steve Furber,著.ARM SoC體系結(jié)構(gòu)[M].田澤,于敦山,盛世敏,譯.北京:航空航天大學(xué)出版社,2002.

[2] 朱子玉,李亞民.CPU芯片邏輯設(shè)計(jì)技術(shù)[M].北京:清華大學(xué)出版社,2005.

[3] 孫天澤,袁文菊.嵌入式設(shè)計(jì)及Linux驅(qū)動開發(fā)指南-基于ARM9處理器(第2版)[M].北京:電子工業(yè)出版社,2007.

[4] IEEE.Standard Test Access Port and Boundary-Scan Architecture[M]2001.

猜你喜歡
流水線嵌入式指令
Gen Z Migrant Workers Are Leaving the Assembly Line
聽我指令:大催眠術(shù)
流水線
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
報(bào)廢汽車拆解半自動流水線研究
Altera加入嵌入式視覺聯(lián)盟
SIMATIC IPC3000 SMART在汽車流水線領(lǐng)域的應(yīng)用
自動化博覽(2014年6期)2014-02-28 22:32:05
左权县| 永新县| 琼中| 那曲县| 临高县| 内丘县| 广安市| 泗水县| 宁晋县| 贺州市| 阿克| 通河县| 长沙市| 海原县| 榆社县| 周宁县| 安化县| 凤翔县| 比如县| 乐都县| 广灵县| 乌兰浩特市| 泸定县| 天全县| 六安市| 大埔区| 奉节县| 黄石市| 阳原县| 固原市| 龙南县| 商洛市| 绥棱县| 兰州市| 宜兴市| 来宾市| 安岳县| 康定县| 眉山市| 大冶市| 全椒县|