Leon2處理器IP核技術(shù)(2)

2012年03月07日 16:46 來源:本站整理 作者:灰色天空 我要評論(0)

2.2 AMBA

    AMBA(Advanced Microntroller Bus Architecture)規(guī)范,是一種已制定的、開放的規(guī)范,充當(dāng)著SoC設(shè)計的架構(gòu),正迅速成為SoC和IP庫開發(fā)事實上的標(biāo)準(zhǔn),為高性能嵌入式微控制器設(shè)計定義了一種片上通信標(biāo)準(zhǔn).AMBA規(guī)范中定義了三種不同的總線,即AHB、ASB和APBAHB是為高性能、高時鐘頻率的系統(tǒng)模塊提供的,擔(dān)任著高性能系統(tǒng)的背板總線、支持多處理器、片上各種存儲器和片外外部存儲器接口連接到低功耗輔助宏單元。ASB也是為高性能系統(tǒng)模塊提供,當(dāng)AHB的高性能特點無需要時,就可以用ASB來代替;它也支持多處理器、片上各種存儲器和片外外部存儲器接口連接到低功耗輔助宏單元。APB是為低功耗的外圍設(shè)備提供的,它優(yōu)化到為最小功耗和減小接口的復(fù)雜性來支持輔助功能。

    圖3是AMBA總線微控制器的典型結(jié)構(gòu)。它含有一套高性能的背板總線,AHB或ASB;它能支撐外部存儲器帶寬,在這套總線掛接著CPU、片上存儲器和其他DMA設(shè)備。通過一個橋接器,可以把AHB和APB總線連接起來。APB上面連接著大多數(shù)的輔助設(shè)備,如UART、定時器、PIO等。

AMBA總線微控制器的典型結(jié)構(gòu)

 

2.3 容錯問題

    為了適用于航空航天的高可靠性應(yīng)用,Leon2采用多層次的容錯策略;奇偶校驗、TMR(三模冗余)寄存器、片上EDAC(檢錯和糾錯)、流水線重啟、強迫Cache不命中等.盡管現(xiàn)在幾乎所有CPU都有一些常規(guī)的容錯措施,如奇偶校驗、流水線重啟等,像IBM S/390 G5還采用了寫階段以前的全部流水線復(fù)制技術(shù).IntelItanium采用的混合ECC和校驗編碼等技術(shù);但遠沒有Leon2那樣,采用如此全面的容錯措施。

   Leon2將時序(存儲)單元的狀態(tài)翻轉(zhuǎn)作為數(shù)字容錯的主要內(nèi)容,根據(jù)時序邏輯的不同特點和性質(zhì),采用了不同的容錯技術(shù)和手段.

①Cache的容錯。大的Cache對高性能CPU來說是至關(guān)重要的,而且位于處理器的關(guān)鍵(時間)通路上。為了減少復(fù)雜性和時間開銷,錯誤檢測的方法采用2位的奇偶校驗位,l位用作奇校驗,l位偶校驗,因此可以檢查所有的錯誤情況,在讀Cache的同時進行校驗。當(dāng)校驗出錯誤,強制Cache丟失,并從外部存儲去獲取數(shù)據(jù)。

②處理器寄存器文件的錯誤保護。寄存器文件是處理器內(nèi)部的寄存器堆,內(nèi)部的寄存器對于指令的運行速度和用戶程序設(shè)計的靈活程度都是很重要的。內(nèi)部寄存器的使用頻率很大,其狀態(tài)的正確性是也很關(guān)鍵。Leon2采用1、2奇偶校驗位和(32.7)BCH校驗和進行容錯。

③觸發(fā)器的錯誤保護。處理器的2500個觸發(fā)器均采用三模冗余的方式進行容錯,通過表決器來決出正確的輸出。

④外部存儲器的錯誤保護。采用掛上的EDAC單元實現(xiàn)。EDAC:采用標(biāo)準(zhǔn)的(32.7)BCH碼,每32位字可糾正1位錯誤和檢測2位錯誤。

⑤主檢測模式。是指兩個相同的處理器同時并行執(zhí)行相同的指令,只讓其中的主模式處理器輸出結(jié)果,不讓檢測模式的處理器輸出結(jié)果。在內(nèi)部,將檢測模式處理器的輸出同主模式處理器輸出進行比較,以檢查錯誤是否存在。這種工作模式,可以應(yīng)用于要求更高可靠性的情況。

⑥在軟件上,還要考慮Cache的清洗問題。因為上面介紹的五種方法,只有在對相應(yīng)的單元進行訪問時才進行錯誤檢查。如果存儲單元的數(shù)據(jù)不常使用,這些單元的錯誤會逐漸增加,因此必須使用一些軟件的方法來實現(xiàn)。

2.4 編碼風(fēng)格

    Leon2的VHDL編碼風(fēng)格,同傳統(tǒng)以并發(fā)執(zhí)行的并發(fā)進程(或并發(fā)語句)作為模塊、所謂的“數(shù)據(jù)流”編碼風(fēng)格不一樣,采用的是“二進程”的設(shè)計方法。這種編碼風(fēng)格克服了“數(shù)據(jù)流”編碼方式的可讀性差、抽象級低、仿真時間長等缺點。“二進程”編碼風(fēng)格的具體措施是:①所有的端口和信號聲明采用記錄的形式進行說明,如按輸入輸出分類進行記錄說明;②每個實體只有兩個進程,一個組合進程和一個時序進程;③在組合進程中全部采用變量(而不是信號),以使用結(jié)構(gòu)化的順序編碼方式;④在時序進程中通過時鐘同步,進行狀態(tài)的轉(zhuǎn)換。

    “二進程”的編碼風(fēng)格的模型可用圖4來表示。它基本與狀態(tài)機模型一樣,只是組合進程部分,采用變量形式進行結(jié)構(gòu)化順序編碼,來完成下一個時鐘周期的輸出和下一個狀態(tài)進行計算。時序進程部分是在時鐘的作用下,完成狀態(tài)轉(zhuǎn)換和輸出驅(qū)動。

“二進程”的編碼風(fēng)格的模型

3 軟硬件開發(fā)

3.1 VHDL

    Leon2除了VHDL源代碼外,還提供了頂層Makefile文件、Modelsim仿真器支持文件、Boot-monitor文件、VHDL測試文件、綜合支持文件、Leon2調(diào)試用的C語言源文件等,便于對Leon2進行硬件和軟件方面的測試。

    Leon2的內(nèi)部結(jié)構(gòu)可以通過模塊配置,使處理器具有不同的功能結(jié)構(gòu)。配置的方式可以采用tkconfig腳本進行圖形界面的方式進行,也可以直接對包文件device.vhd進行手動編輯來完成。配置主要是通過修改一系列的常數(shù)的聲明值來實現(xiàn)的。Leon2中許多模塊功能是可以進行配置的,這些配置信息是在包文件Target.vhd里進行聲明的。

    Leon2可配置的內(nèi)容包括:①所采用的綜合工具和目標(biāo)庫。綜合的技術(shù)可以是:Synplify、Synopsys-DC、Synopsys-FC2、XST和Leonardo等,目標(biāo)技術(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)等。②整數(shù)單元IU的寄存器窗口、乘法器、除法器、快速跳轉(zhuǎn)和觀察點的配置。寄存器窗口可以設(shè)置為2~32個,但為了同交叉編譯器LECCS兼容必須配置為8個窗口,乘法器可以配置成迭交、16×16加流水寄存器、16×16、32×8.32×16、32×32等形式。③浮點處理單元FPU的配置,可以配置為使用meiko或是lth兩種浮點處理器之一。④Cache。Cache組的有效大小可以配置為1~64 KB,但必須是2的次冪,每行可以設(shè)置成4~8個字,組的數(shù)量可以是1~4。替換算法可以是隨機、LRR或LRU,并且指令Cache和數(shù)據(jù)Cache是獨立進行配置的。⑤存儲器控制器。⑥D(zhuǎn)ebug配置。⑦片上外設(shè)的配置,如中斷控制器、看門狗等。⑧引導(dǎo)配置。⑨AMHB總線的相關(guān)配置。⑩PCI配置。

   Leon2有四個可綜合的頂層文件;

◇leon.vhd一一標(biāo)準(zhǔn)的Leon2頂層;

◇leon_pci.vhd一一標(biāo)準(zhǔn)的Leon2加上PCI接口構(gòu)成的頂層;

◇leon_eth.vhd一一標(biāo)準(zhǔn)的Leon2加上一個10/100 Mbps以太網(wǎng)MAC構(gòu)成的頂層;

◇leon_etn_pci.vhd一一標(biāo)準(zhǔn)的Leon2加上一個10/100 Mbps以太網(wǎng)MAC以及PCI接口構(gòu)成的頂層。

在上述四個頂層的下面,可以很容易地集成用戶自己的功能模塊。

上一頁123下一頁

本文導(dǎo)航

標(biāo)簽:IP核(43)LEON2(2)Leon2處理器(1)