Leon2微處理器IP核原理及應(yīng)用
引 言
本文引用地址:http://2s4d.com/article/273879.htmLeon2是GaislerResearch公司于2003年研制完成的一款32位、符合IEEE-1754(SPARCVS)結(jié)構(gòu)的處理器IP核。它的前身是歐空局研制的Leon以及ERC32。Leon2的目標(biāo)主要是權(quán)衡性能和價(jià)格、高的可靠性、可移植性、可擴(kuò)展性、軟件兼容性等.其內(nèi)部硬件資源可裁剪(可配置)、主要面向嵌入式系統(tǒng),可以用FPGA/CPLD和ASIC等技術(shù)實(shí)現(xiàn)。Leon2處理器的片上資源如下:分離的指令和數(shù)據(jù)Cache、硬件乘法器和除法器、中斷控制器、具有跟蹤緩沖器的調(diào)試支持單元(DSU)、2個(gè)24位定時(shí)器、2個(gè)通用異步串口(UART)、低功耗模式、看門狗電路、16位I/O端口、靈活的存儲(chǔ)控制器、以太網(wǎng)MAC和PCI接口。Leon2的VHDL模塊可以在大多數(shù)綜合工具上進(jìn)行綜合,可以在任何符合VHDL-87標(biāo)準(zhǔn)的仿真器上進(jìn)行仿真;采用AMBA AHB/APB總線結(jié)構(gòu)的用戶設(shè)計(jì)新模塊,可以很容易加入到Leon2中,完成用戶的定制應(yīng)用。
Leon2在歐洲和美國(guó)都有眾多的應(yīng)用者;國(guó)內(nèi)航天部77l所和中科院國(guó)家天文臺(tái)等單位正在研制基于Leon2的應(yīng)用系統(tǒng)。為了使Leon2得到國(guó)內(nèi)業(yè)界的了解和進(jìn)一步的應(yīng)用,本文將從Leon2的結(jié)構(gòu)、技術(shù)特點(diǎn)、軟硬件的開(kāi)發(fā)過(guò)程和應(yīng)用實(shí)例等四個(gè)方面進(jìn)行介紹。在技術(shù)特點(diǎn)中,主要介紹了它所遵循的SPARCV8規(guī)范、采用的AMBH2.0內(nèi)部系統(tǒng)總線協(xié)議、容錯(cuò)設(shè)計(jì)方法和VHDL編程風(fēng)格等。
1 Leon2的結(jié)構(gòu)
圖1是Leon2的片上結(jié)構(gòu)框圖。整個(gè)系統(tǒng)結(jié)構(gòu)由AMBA AHB和APB支撐,連接著SPARC處理器、Cache系統(tǒng)及片上外設(shè)等設(shè)備。
(1)處理器單元
處理器單元由整數(shù)單元IU、浮點(diǎn)單元FPU、協(xié)處理器單元CP構(gòu)成。整數(shù)單元的特點(diǎn)有:5級(jí)指令流水、分離的數(shù)據(jù)和指令Cache、支持2~32個(gè)寄存器窗口、可選的4個(gè)觀察口寄存器、可配置乘法器、可選的16×16位MAC(40位累加器)、基2除法器??芍С值母↑c(diǎn)處理器有GaislerResearch的GRFPU,Sun Microsystems的Meiko FPU或其他通用浮點(diǎn)處理單元。Leon2提供了一個(gè)通用的用戶可定義的協(xié)處理器,同IU并行運(yùn)行增強(qiáng)了系統(tǒng)功能。
(2)Cache子系統(tǒng)
可配置的模式有直接映射模式和2~4組相聯(lián)的多組相聯(lián)模式;可選的三種替換算法是LRU、LRR和偽隨機(jī)。
(3)片上外設(shè)
片上外設(shè)包括:2個(gè)中斷控制器、2個(gè)UART、2個(gè)Timer和1個(gè)Watchdog、16位的I/O口、存儲(chǔ)器控制器(PROM、SRAM、S13RAM)、PCI橋接器、Ethernet接口、高級(jí)片上調(diào)試支持單元(DSU)和跟蹤緩沖器等.中斷控制器可以最大處理46個(gè)內(nèi)部和外部中斷。2個(gè)串行通信口 (UART),支持8位數(shù)據(jù)幀、1位校驗(yàn)位、1位停止位,支持硬件流控功能。調(diào)試支持單元(DSU)能夠把處理器設(shè)置到調(diào)試模式,通過(guò)它可以讀寫(xiě)處理器的所有寄存器和Cache。DSU還包括一個(gè)跟蹤緩存,可以保存已執(zhí)行了的指令和AHB上傳輸?shù)臄?shù)據(jù)。
2 Leon2的技術(shù)特點(diǎn)
Leon2的技術(shù)特點(diǎn)主要有:采用SPARCV8結(jié)構(gòu)、采用內(nèi)部AMBA總線結(jié)構(gòu)、容錯(cuò)設(shè)計(jì)和VHDL編程風(fēng)格。
2.1 SPARC V8
SPARC是可擴(kuò)展處理器體系架構(gòu)的首字母縮略詞,是一個(gè)從RISC派生出的CPU指令集結(jié)構(gòu)(ISA)。指令集結(jié)構(gòu)是指:定義了指令、寄存器、指令和數(shù)據(jù)存儲(chǔ)器、指令執(zhí)行對(duì)寄存器和存儲(chǔ)器的影響、控制指令執(zhí)行的算法等內(nèi)容,但不定義時(shí)鐘周期、每條指令的執(zhí)行時(shí)鐘周期數(shù)(CPI)、數(shù)據(jù)通路等內(nèi)容。作為一個(gè)結(jié)構(gòu),SPARC允許在具有不同性能價(jià)格比的廣泛應(yīng)用中,實(shí)現(xiàn)不同系列的芯片和系統(tǒng),包括科學(xué)、工程、編程、實(shí)時(shí)和商業(yè)應(yīng)用等。SPARC的設(shè)計(jì)目標(biāo)是優(yōu)化編譯器和易于硬件流水線實(shí)現(xiàn)。
SPARC處理器由整數(shù)單元(IU)、浮點(diǎn)和協(xié)處理器單元(FPU和CP)構(gòu)成。它們各自都有自己的寄存器,其中IU有8個(gè)全局寄存器、2~3N個(gè)寄存器窗口(由用戶設(shè)定),浮點(diǎn)和協(xié)處理器單元的選擇依賴于具體應(yīng)用。
(1)寄存器窗口
它是SPARC的最大技術(shù)特點(diǎn)。SPARC處理器包括兩種寄存器:一種是通用寄存器,另一種是控制/狀態(tài)寄存器。IU的通用寄存器叫r寄存器。一個(gè)IU的實(shí)現(xiàn)可能包括40~520個(gè)32位r寄存器。這些寄存器又被分成8個(gè)全局寄存器,再加上2~32個(gè)與實(shí)現(xiàn)有關(guān)的16位寄存器組,每一個(gè)寄存器組又進(jìn)一步分為8個(gè)輸入寄存器和8個(gè)輸出寄存器。圖2是一個(gè)8窗口寄存器結(jié)構(gòu)示意圖。在任何一個(gè)時(shí)刻,一條指令只能訪問(wèn)8個(gè)全局寄存器和由當(dāng)前窗口指針(CWP)指定的當(dāng)前窗口。這個(gè)窗口是由8個(gè)輸入寄存器、8個(gè)局部寄存器和8個(gè)輸入寄存器構(gòu)成。從圖2中可以看出,兩個(gè)相鄰窗口的入和出寄存器是共享的。當(dāng)前是按窗口號(hào)順序(或前或后)轉(zhuǎn)換的,正好上一次的輸出寄存器成為當(dāng)前窗口的輸入寄存器,這樣可以減少存儲(chǔ)器讀寫(xiě)和運(yùn)行時(shí)的現(xiàn)場(chǎng)保護(hù)。
(2)支持的數(shù)據(jù)格式
基本有三種:8/16/32/64位有符號(hào)整數(shù)、8/16/32/64位無(wú)符號(hào)整數(shù)、32/64/128位浮點(diǎn)數(shù)。浮點(diǎn)數(shù)格式符合ANSI/IEEE Standard 754-1985。
(3)Traps
它是一種矢量化的、通過(guò)一個(gè)包含每個(gè)陷阱句柄的前4條指令的特殊陷阱表,將控制轉(zhuǎn)向監(jiān)視軟件。陷阱種類有精確陷阱、延遲陷阱和中斷陷阱。
(4)指令集有
所有指令都編碼成32位格式,可以分成六個(gè)基本的類型,一共有72條指令。六種基本的指令分別是:①Load/store;②Arthmetic/logical/shift;③Control transfer;④Read/write control register;⑤Floating-point operate;⑥
Coprocessor operate。
(5)存儲(chǔ)器模式
SPARC的存儲(chǔ)器模型定義了存儲(chǔ)器操作的語(yǔ)義,指定了處理器發(fā)射出這些操作的順序與這些指令被存儲(chǔ)器執(zhí)行的順序是如何進(jìn)行關(guān)聯(lián)的。標(biāo)準(zhǔn)的存儲(chǔ)器模型叫作TSO(Total Store Ordering),所有的SPARC實(shí)現(xiàn)必須提供這個(gè)模型;另一個(gè)模型叫作PSO,它可以提供更高性能的存儲(chǔ)系統(tǒng)。
c++相關(guān)文章:c++教程
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
矢量控制相關(guān)文章:矢量控制原理
評(píng)論