Leon2微處理器IP核原理及應用

發(fā)布時(shí)間:2015-10-29 14:40    發(fā)布者:designapp
關(guān)鍵詞: Leon2 , IP核
  引 言
  Leon2是GaislerResearch公司于2003年研制完成的一款32位、符合IEEE-1754(SPARCVS)結構的處理器IP核。它的前身是歐空局研制的Leon以及ERC32。Leon2的目標主要是權衡性能和價(jià)格、高的可靠性、可移植性、可擴展性、軟件兼容性等.其內部硬件資源可裁剪(可配置)、主要面向嵌入式系統,可以用FPGA/CPLD和ASIC等技術(shù)實(shí)現。Leon2處理器的片上資源如下:分離的指令和數據Cache、硬件乘法器和除法器、中斷控制器、具有跟蹤緩沖器的調試支持單元(DSU)、2個(gè)24位定時(shí)器、2個(gè)通用異步串口(UART)、低功耗模式、看門(mén)狗電路、16位I/O端口、靈活的存儲控制器、以太網(wǎng)MAC和PCI接口。Leon2的VHDL模塊可以在大多數綜合工具上進(jìn)行綜合,可以在任何符合VHDL-87標準的仿真器上進(jìn)行仿真;采用AMBA AHB/APB總線(xiàn)結構的用戶(hù)設計新模塊,可以很容易加入到Leon2中,完成用戶(hù)的定制應用。
  Leon2在歐洲和美國都有眾多的應用者;國內航天部77l所和中科院國家天文臺等單位正在研制基于Leon2的應用系統。為了使Leon2得到國內業(yè)界的了解和進(jìn)一步的應用,本文將從Leon2的結構、技術(shù)特點(diǎn)、軟硬件的開(kāi)發(fā)過(guò)程和應用實(shí)例等四個(gè)方面進(jìn)行介紹。在技術(shù)特點(diǎn)中,主要介紹了它所遵循的SPARCV8規范、采用的AMBH2.0內部系統總線(xiàn)協(xié)議、容錯設計方法和VHDL編程風(fēng)格等。
  1 Leon2的結構
  圖1是Leon2的片上結構框圖。整個(gè)系統結構由AMBA AHB和APB支撐,連接著(zhù)SPARC處理器、Cache系統及片上外設等設備。
  


  (1)處理器單元
  處理器單元由整數單元IU、浮點(diǎn)單元FPU、協(xié)處理器單元CP構成。整數單元的特點(diǎn)有:5級指令流水、分離的數據和指令Cache、支持2~32個(gè)寄存器窗口、可選的4個(gè)觀(guān)察口寄存器、可配置乘法器、可選的16×16位MAC(40位累加器)、基2除法器?芍С值母↑c(diǎn)處理器有GaislerResearch的GRFPU,Sun Microsystems的Meiko FPU或其他通用浮點(diǎn)處理單元。Leon2提供了一個(gè)通用的用戶(hù)可定義的協(xié)處理器,同IU并行運行增強了系統功能。
  (2)Cache子系統
  可配置的模式有直接映射模式和2~4組相聯(lián)的多組相聯(lián)模式;可選的三種替換算法是LRU、LRR和偽隨機。
  (3)片上外設
  片上外設包括:2個(gè)中斷控制器、2個(gè)UART、2個(gè)Timer和1個(gè)Watchdog、16位的I/O口、存儲器控制器(PROM、SRAM、S13RAM)、PCI橋接器、Ethernet接口、高級片上調試支持單元(DSU)和跟蹤緩沖器等.中斷控制器可以最大處理46個(gè)內部和外部中斷。2個(gè)串行通信口 (UART),支持8位數據幀、1位校驗位、1位停止位,支持硬件流控功能。調試支持單元(DSU)能夠把處理器設置到調試模式,通過(guò)它可以讀寫(xiě)處理器的所有寄存器和Cache。DSU還包括一個(gè)跟蹤緩存,可以保存已執行了的指令和AHB上傳輸的數據。
  2 Leon2的技術(shù)特點(diǎn)
  Leon2的技術(shù)特點(diǎn)主要有:采用SPARCV8結構、采用內部AMBA總線(xiàn)結構、容錯設計和VHDL編程風(fēng)格。
  2.1 SPARC V8
  SPARC是可擴展處理器體系架構的首字母縮略詞,是一個(gè)從RISC派生出的CPU指令集結構(ISA)。指令集結構是指:定義了指令、寄存器、指令和數據存儲器、指令執行對寄存器和存儲器的影響、控制指令執行的算法等內容,但不定義時(shí)鐘周期、每條指令的執行時(shí)鐘周期數(CPI)、數據通路等內容。作為一個(gè)結構,SPARC允許在具有不同性能價(jià)格比的廣泛應用中,實(shí)現不同系列的芯片和系統,包括科學(xué)、工程、編程、實(shí)時(shí)和商業(yè)應用等。SPARC的設計目標是優(yōu)化編譯器和易于硬件流水線(xiàn)實(shí)現。
  SPARC處理器由整數單元(IU)、浮點(diǎn)和協(xié)處理器單元(FPU和CP)構成。它們各自都有自己的寄存器,其中IU有8個(gè)全局寄存器、2~3N個(gè)寄存器窗口(由用戶(hù)設定),浮點(diǎn)和協(xié)處理器單元的選擇依賴(lài)于具體應用。
  (1)寄存器窗口
  它是SPARC的最大技術(shù)特點(diǎn)。SPARC處理器包括兩種寄存器:一種是通用寄存器,另一種是控制/狀態(tài)寄存器。IU的通用寄存器叫r寄存器。一個(gè)IU的實(shí)現可能包括40~520個(gè)32位r寄存器。這些寄存器又被分成8個(gè)全局寄存器,再加上2~32個(gè)與實(shí)現有關(guān)的16位寄存器組,每一個(gè)寄存器組又進(jìn)一步分為8個(gè)輸入寄存器和8個(gè)輸出寄存器。圖2是一個(gè)8窗口寄存器結構示意圖。在任何一個(gè)時(shí)刻,一條指令只能訪(fǎng)問(wèn)8個(gè)全局寄存器和由當前窗口指針(CWP)指定的當前窗口。這個(gè)窗口是由8個(gè)輸入寄存器、8個(gè)局部寄存器和8個(gè)輸入寄存器構成。從圖2中可以看出,兩個(gè)相鄰窗口的入和出寄存器是共享的。當前是按窗口號順序(或前或后)轉換的,正好上一次的輸出寄存器成為當前窗口的輸入寄存器,這樣可以減少存儲器讀寫(xiě)和運行時(shí)的現場(chǎng)保護。
  


  (2)支持的數據格式
  基本有三種:8/16/32/64位有符號整數、8/16/32/64位無(wú)符號整數、32/64/128位浮點(diǎn)數。浮點(diǎn)數格式符合ANSI/IEEE Standard 754-1985。
  (3)Traps
  它是一種矢量化的、通過(guò)一個(gè)包含每個(gè)陷阱句柄的前4條指令的特殊陷阱表,將控制轉向監視軟件。陷阱種類(lèi)有精確陷阱、延遲陷阱和中斷陷阱。
  (4)指令集有
  所有指令都編碼成32位格式,可以分成六個(gè)基本的類(lèi)型,一共有72條指令。六種基本的指令分別是:①Load/store;②A(yíng)rthmetic/logical/shift;③Control transfer;④Read/write control register;⑤Floating-point operate;⑥
  Coprocessor operate。
  (5)存儲器模式
  SPARC的存儲器模型定義了存儲器操作的語(yǔ)義,指定了處理器發(fā)射出這些操作的順序與這些指令被存儲器執行的順序是如何進(jìn)行關(guān)聯(lián)的。標準的存儲器模型叫作TSO(Total Store Ordering),所有的SPARC實(shí)現必須提供這個(gè)模型;另一個(gè)模型叫作PSO,它可以提供更高性能的存儲系統。
                               
                  2.2 AMBA
  AMBA(Advanced Microntroller Bus Architecture)規范,是一種已制定的、開(kāi)放的規范,充當著(zhù)SoC設計的架構,正迅速成為SoC和IP庫開(kāi)發(fā)事實(shí)上的標準,為高性能嵌入式微控制器設計定義了一種片上通信標準.AMBA規范中定義了三種不同的總線(xiàn),即AHB、ASB和APBAHB是為高性能、高時(shí)鐘頻率的系統模塊提供的,擔任著(zhù)高性能系統的背板總線(xiàn)、支持多處理器、片上各種存儲器和片外外部存儲器接口連接到低功耗輔助宏單元。ASB也是為高性能系統模塊提供,當AHB的高性能特點(diǎn)無(wú)需要時(shí),就可以用ASB來(lái)代替;它也支持多處理器、片上各種存儲器和片外外部存儲器接口連接到低功耗輔助宏單元。APB是為低功耗的外圍設備提供的,它優(yōu)化到為最小功耗和減小接口的復雜性來(lái)支持輔助功能。
  圖3是AMBA總線(xiàn)微控制器的典型結構。它含有一套高性能的背板總線(xiàn),AHB或ASB;它能支撐外部存儲器帶寬,在這套總線(xiàn)掛接著(zhù)CPU、片上存儲器和其他DMA設備。通過(guò)一個(gè)橋接器,可以把AHB和APB總線(xiàn)連接起來(lái)。APB上面連接著(zhù)大多數的輔助設備,如UART、定時(shí)器、PIO等。
  


  2.3 容錯問(wèn)題
  為了適用于航空航天的高可靠性應用,Leon2采用多層次的容錯策略;奇偶校驗、TMR(三模冗余)寄存器、片上EDAC(檢錯和糾錯)、流水線(xiàn)重啟、強迫Cache不命中等.盡管現在幾乎所有CPU都有一些常規的容錯措施,如奇偶校驗、流水線(xiàn)重啟等,像IBM S/390 G5還采用了寫(xiě)階段以前的全部流水線(xiàn)復制技術(shù).IntelItanium采用的混合ECC和校驗編碼等技術(shù);但遠沒(méi)有Leon2那樣,采用如此全面的容錯措施。
  Leon2將時(shí)序(存儲)單元的狀態(tài)翻轉作為數字容錯的主要內容,根據時(shí)序邏輯的不同特點(diǎn)和性質(zhì),采用了不同的容錯技術(shù)和手段.
 、貱ache的容錯。大的Cache對高性能CPU來(lái)說(shuō)是至關(guān)重要的,而且位于處理器的關(guān)鍵(時(shí)間)通路上。為了減少復雜性和時(shí)間開(kāi)銷(xiāo),錯誤檢測的方法采用2位的奇偶校驗位,l位用作奇校驗,l位偶校驗,因此可以檢查所有的錯誤情況,在讀Cache的同時(shí)進(jìn)行校驗。當校驗出錯誤,強制Cache丟失,并從外部存儲去獲取數據。
 、谔幚砥骷拇嫫魑募腻e誤保護。寄存器文件是處理器內部的寄存器堆,內部的寄存器對于指令的運行速度和用戶(hù)程序設計的靈活程度都是很重要的。內部寄存器的使用頻率很大,其狀態(tài)的正確性是也很關(guān)鍵。Leon2采用1、2奇偶校驗位和(32.7)BCH校驗和進(jìn)行容錯。
 、塾|發(fā)器的錯誤保護。處理器的2500個(gè)觸發(fā)器均采用三模冗余的方式進(jìn)行容錯,通過(guò)表決器來(lái)決出正確的輸出。
 、芡獠看鎯ζ鞯腻e誤保護。采用掛上的EDAC單元實(shí)現。EDAC:采用標準的(32.7)BCH碼,每32位字可糾正1位錯誤和檢測2位錯誤。
 、葜鳈z測模式。是指兩個(gè)相同的處理器同時(shí)并行執行相同的指令,只讓其中的主模式處理器輸出結果,不讓檢測模式的處理器輸出結果。在內部,將檢測模式處理器的輸出同主模式處理器輸出進(jìn)行比較,以檢查錯誤是否存在。這種工作模式,可以應用于要求更高可靠性的情況。
 、拊谲浖,還要考慮Cache的清洗問(wèn)題。因為上面介紹的五種方法,只有在對相應的單元進(jìn)行訪(fǎng)問(wèn)時(shí)才進(jìn)行錯誤檢查。如果存儲單元的數據不常使用,這些單元的錯誤會(huì )逐漸增加,因此必須使用一些軟件的方法來(lái)實(shí)現。
  2.4 編碼風(fēng)格
  Leon2的VHDL編碼風(fēng)格,同傳統以并發(fā)執行的并發(fā)進(jìn)程(或并發(fā)語(yǔ)句)作為模塊、所謂的“數據流”編碼風(fēng)格不一樣,采用的是“二進(jìn)程”的設計方法。這種編碼風(fēng)格克服了“數據流”編碼方式的可讀性差、抽象級低、仿真時(shí)間長(cháng)等缺點(diǎn)!岸M(jìn)程”編碼風(fēng)格的具體措施是:①所有的端口和信號聲明采用記錄的形式進(jìn)行說(shuō)明,如按輸入輸出分類(lèi)進(jìn)行記錄說(shuō)明;②每個(gè)實(shí)體只有兩個(gè)進(jìn)程,一個(gè)組合進(jìn)程和一個(gè)時(shí)序進(jìn)程;③在組合進(jìn)程中全部采用變量(而不是信號),以使用結構化的順序編碼方式;④在時(shí)序進(jìn)程中通過(guò)時(shí)鐘同步,進(jìn)行狀態(tài)的轉換。
  “二進(jìn)程”的編碼風(fēng)格的模型可用圖4來(lái)表示。它基本與狀態(tài)機模型一樣,只是組合進(jìn)程部分,采用變量形式進(jìn)行結構化順序編碼,來(lái)完成下一個(gè)時(shí)鐘周期的輸出和下一個(gè)狀態(tài)進(jìn)行計算。時(shí)序進(jìn)程部分是在時(shí)鐘的作用下,完成狀態(tài)轉換和輸出驅動(dòng)。
  


  3 軟硬件開(kāi)發(fā)
  3.1 VHDL
  Leon2除了VHDL源代碼外,還提供了頂層Makefile文件、Modelsim仿真器支持文件、Boot-monitor文件、VHDL測試文件、綜合支持文件、Leon2調試用的C語(yǔ)言源文件等,便于對Leon2進(jìn)行硬件和軟件方面的測試。
  Leon2的內部結構可以通過(guò)模塊配置,使處理器具有不同的功能結構。配置的方式可以采用tkconfig腳本進(jìn)行圖形界面的方式進(jìn)行,也可以直接對包文件device.vhd進(jìn)行手動(dòng)編輯來(lái)完成。配置主要是通過(guò)修改一系列的常數的聲明值來(lái)實(shí)現的。Leon2中許多模塊功能是可以進(jìn)行配置的,這些配置信息是在包文件Target.vhd里進(jìn)行聲明的。
  Leon2可配置的內容包括:①所采用的綜合工具和目標庫。綜合的技術(shù)可以是:Synplify、Synopsys-DC、Synopsys-FC2、XST和Leonardo等,目標技術(shù)可以是Xilinx的Virtex和Virtex II(FPGA)、Atmel的ATC35和ACT25(0.35/0.25μm CMOS)、TSMC 0.25μm CMOS、UMC 0.25/0.18μm CMOS、以及Actel的ProAsie(FPGA)和Axeellerator(反熔絲FPGA)等。②整數單元IU的寄存器窗口、乘法器、除法器、快速跳轉和觀(guān)察點(diǎn)的配置。寄存器窗口可以設置為2~32個(gè),但為了同交叉編譯器LECCS兼容必須配置為8個(gè)窗口,乘法器可以配置成迭交、16×16加流水寄存器、16×16、32×8.32×16、32×32等形式。③浮點(diǎn)處理單元FPU的配置,可以配置為使用meiko或是lth兩種浮點(diǎn)處理器之一。④Cache。Cache組的有效大小可以配置為1~64 KB,但必須是2的次冪,每行可以設置成4~8個(gè)字,組的數量可以是1~4。替換算法可以是隨機、LRR或LRU,并且指令Cache和數據Cache是獨立進(jìn)行配置的。⑤存儲器控制器。⑥Debug配置。⑦片上外設的配置,如中斷控制器、看門(mén)狗等。⑧引導配置。⑨AMHB總線(xiàn)的相關(guān)配置。⑩PCI配置。
  Leon2有四個(gè)可綜合的頂層文件;
  ◇leon.vhd一一標準的Leon2頂層;
  ◇leon_pci.vhd一一標準的Leon2加上PCI接口構成的頂層;
  ◇leon_eth.vhd一一標準的Leon2加上一個(gè)10/100 Mbps以太網(wǎng)MAC構成的頂層;
  ◇leon_etn_pci.vhd一一標準的Leon2加上一個(gè)10/100 Mbps以太網(wǎng)MAC以及PCI接口構成的頂層。
  在上述四個(gè)頂層的下面,可以很容易地集成用戶(hù)自己的功能模塊。
  3.2 系統軟件開(kāi)發(fā)
  同一般的嵌入式系統的軟件開(kāi)發(fā)一樣,Leon2應用系統的軟件開(kāi)發(fā)需要采用交叉編譯環(huán)境來(lái)進(jìn)行。Leon2應用系統軟件開(kāi)發(fā)主要采用LECCS(Leon/ERC32 GUN交叉編譯系統)。LECCS是由Cynus、OAR和Gaisler研究公司開(kāi)發(fā)的多平臺開(kāi)發(fā)系統,是基于GNU系列的可以自由獲取的、并帶有一系列附加“點(diǎn)”工具的開(kāi)發(fā)系統。LECCS可以在Linux(-2.2.x或更高)、Solaris(-2.7或更高)和windows(Cygwin-1.1.7更高)等多種平臺上運行。要在Windows平臺上運行LECCS,必須安裝Cygwin。它一個(gè)是Unix層面模擬器。
  LECCS包括如下程序包:GCC--3.2.3C/C++編譯器、RTEMS--4.6.0-βC/C++實(shí)時(shí)核、獨立C庫、GDB-5.3SPARC交叉調試器、遠程調試監視器、GDB的DDD圖形前端(僅對Unix)、GDB的GDB-TK圖像前端(僅對Windows)、引導PROM的builder以及Leon調試支持單元監視器等。還包括一些工具,如交叉匯編器、匯編預處理器、GNU連接器、二進(jìn)制轉換器等等。
  采用LECCS進(jìn)行Leon2應用系統軟件開(kāi)發(fā)的過(guò)程如下:
 、倮肎CC編譯和鏈接程序;
 、诶梅抡嫫髁薙IM調試程序;
 、墼谶h程目標系統上調試程序;
 、転楠毩卯a(chǎn)生引導PROM程序。
  LECCS支持兩種類(lèi)型的應用:一種是通常的順序CC++程序,一種是基于R了EMS核的多任務(wù)實(shí)時(shí)CC++程序。
  軟件仿真工具可以采用丁SIM。它是一個(gè)通用的SPARC架構仿真器,可以對基于ERC-32和Leon的計算系統進(jìn)行仿真,性能和使用方法可以參見(jiàn)TSIM用戶(hù)指南。Leon2為應用系統的調試在硬件上作了極大的支持,那就是它的調試支持單元(DSU)和跟蹤緩沖器。具體使用時(shí)可參見(jiàn)Leon2用戶(hù)手冊和leon DSU Monitor用戶(hù)手冊。
  4 Leon2的應用
  Leon2在國內外都有應用。
  國外應用很多,如基于Leon的數字聽(tīng)寫(xiě)機、指紋安全系統、GPS處理機、BIST(內建自測試)等方面的產(chǎn)品。這里簡(jiǎn)單介紹洛杉磯加州大學(xué)的ThumbPod指紋安全系統,以及Nemerix公司的NJ1030型GPS基帶產(chǎn)品。ThumbPod安全系統,是將人的指紋作為身份認證(數字身份)的安全系統。其原型的硬件系統由Xilinx的FPGA(XC2V1000)、Micron的 256 MHz-DDR-SDRAM、Authentec的AF-S2型手指感應器等構成。CPU采用Leon2處理器核,并通過(guò)Leon2的協(xié)處理器接口(CPI)掛接了AES(高級加密系統)協(xié)處理器來(lái)執行AES算法,以加快加密速度.系統的最大工作時(shí)鐘頻率可以達100 MHz,工作電壓可以是3.3/2.5/1.8/1.5 V等多種電壓。NJl030型GPS基帶產(chǎn)品,目標是GPS的L1載波C/A碼處理,并提供對WAAS和EGNOS兩種增強系統的支持,可以和世界上領(lǐng)先的第三方的GPS-RF前端設備兼容。
  國內,航天部771所和中科院國家天文臺都正在或計劃研制基于Leon2的星載數據處理系統。這種數據處理系統,不再采用體積大、笨重而又功耗巨大的處理器芯片(如DSP),而是直接將Leon2放進(jìn)FPGA。系統將大部分的處理功能硬件化,利用FPAG的豐富資源,將整個(gè)系統放入一片FPGA芯片內。其中的Leon2只進(jìn)行控制管理和一些必須的計算處理。國家天文臺正計劃研制基于Leon2的星載系統,系統將處理每日采集到的1780 GB數據。這些數據通過(guò)預處理(圖像積分、輻射校正、幾何校正、磁圖處理)、小波壓縮、圖像格式等,使圖像壓縮到10GB左右,并下傳到地面站。
  結 語(yǔ)
  本文介紹了Leon2開(kāi)源處理核的技術(shù)特點(diǎn)、軟硬件開(kāi)發(fā)過(guò)程、國內外的應用實(shí)例。技術(shù)特點(diǎn)主要是SPARCV8規范、AMBH2.0總線(xiàn)結構、容錯設計方法和VHDL編程風(fēng)格;對Leon2應用系統的軟硬件開(kāi)發(fā)工具和方法進(jìn)行了介紹;在應用實(shí)例中,介紹兩種國外的應用和兩種國內的應用,其中包括作者正在進(jìn)行研制的星載圖像處理系統。
                               
               
本文地址:http://selenalain.com/thread-155014-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页