摘 要: 詳細分析了S698P4 SoC芯片存儲器控制器的控制原理,并給出相應設計方案和仿真結(jié)果,。該控制器可在32 bit位寬模式下對存儲器進行讀寫控制,。目前該處理器已實現(xiàn)了量產(chǎn),實際硬件測試驗證了S698P4 SoC芯片存儲器控制器的高效性能,。
關鍵詞: 存儲器控制器,;S698P4;位寬模式,;SPARC V8
隨著半導體技術的快速發(fā)展以其設計工藝的不斷改進提高,,集成電路的設計規(guī)模越來越大,特別是進入0.18 μm以下后,已經(jīng)可以在一個芯片上實現(xiàn)幾億個晶體管的設計規(guī)模,。這樣規(guī)模的電路完全可以將一個完整的電子系統(tǒng)在單個芯片上實現(xiàn)[1],,于是便出現(xiàn)了所謂系統(tǒng)芯片SoC(System-on-Chip)。系統(tǒng)芯片把多種功能的系統(tǒng)(模塊)集成到一個芯片上,,包括CPU,、DSP、邏輯電路,、模擬電路,、內(nèi)存及其他電路模塊等,并相互構(gòu)成完整系統(tǒng),。同時,,由于設計工藝的不斷提高,處理器可達到的工作頻率也越來越高,,為了協(xié)調(diào)好外部存儲器(包括外部SRAM,、ROM)和I/O等設備以及內(nèi)部存儲器(如片內(nèi)SRAM)與處理器的關系,必須要有高效的存儲器控制器對存儲器和CPU的工作進行協(xié)調(diào)控制,。高效的存儲器控制器對于處理器的整體性能發(fā)揮起著越來越重要的作用,。
1 S698P4簡介
S698P4是基于SPARCV8架構(gòu)[2]的高性能的32 bit RISC嵌入式4核處理器,采用對稱多處理(SMP)技術,,在一個內(nèi)核里集成4個功能一樣的處理器核心,,各CPU之間共享內(nèi)存子系統(tǒng)及總線結(jié)構(gòu),總線競爭核仲裁由硬件自動完成,,不需要用戶進行設置,。它專為嵌入式應用而設計,具有高性能,、低復雜度和低功耗的特點,。
S698P4支持多核并行處理機制,采用eCos實時嵌入式操作系統(tǒng),。eCos將任務隊列對稱地分布于多個CPU之上,,從而極大地提高了整個系統(tǒng)的數(shù)據(jù)處理能力。所有的處理器都可以平等地訪問內(nèi)存,、I/O和外部中斷,。系統(tǒng)資源被系統(tǒng)中所有CPU共享,工作負載能夠均勻地分配到所有可用處理器之上,,其運算速度快,,數(shù)據(jù)處理量大、功耗低,,性能和可靠性遠高于單核處理器,。
圖1為S698P4結(jié)構(gòu)圖,,由圖可知,S698P4處理器內(nèi)部集成了CPU0,、CPU1,、CPU2和CPU3 4個S698P核,每個S698P CPU內(nèi)部又分別集成32 bit整形數(shù)處理單元,、32/64 bit浮點數(shù)處理單元及8 KB數(shù)據(jù)緩存(Data Cache)和指令緩存(Instruction Cache),。針對實時應用的嵌入式領域,S698P4提供了內(nèi)部看門狗,、定時器,、中斷控制器、通用I/O口以及串行通信接口,;針對航空航天領域,,S698P4提供了CAN總線接口、以太網(wǎng)接口以及1553B總線,;同時,為了芯片調(diào)試,,芯片內(nèi)部還集成了硬件調(diào)試專用接口DSU,,用戶通過DSU,可以訪問CPU內(nèi)部所有寄存器和存儲器資源,,也可訪問外部所有存儲器和I/O外設,,為基于S698P4的硬件/軟件調(diào)試提供方便[3]。
S698P4處理器可廣泛應用于航空航天,、海量數(shù)據(jù)處理,、大規(guī)模網(wǎng)絡應用、復雜科學計算及大型圖形建模等領域,。
2 S698P4存儲器控制器設計方案
2.1 存儲器地址分配
存儲器控制器控制一個連有PROM,、I/O設備,靜態(tài)存儲器(SRAM)和動態(tài)隨機存儲器(SDRAM)的存儲器總線,,如圖2所示,。存儲器控制器作為從屬設備掛在AHB總線上,存儲器控制器的運作可通過軟件配置“存儲器配置寄存器1,,2&3”(MCFG1,,MCFG2 & MCFG3)來控制,表1為存儲器配置寄存器地址分配表,。“存儲器配置寄存器1,,2&3”的配置通過APB總線進行。存儲器總線支持四種類型的設備,,包括PROM,、SRAM,、SDRAM和I/O。PROM,、SRAM和SDRAM總線只支持32 bit模式,,而I/O可以根據(jù)需求配置為8、16,、32 bit模式,。存儲器控制器包括2 GB空間,分成如表2所列的幾個部分,。
2.2 PROM
處理器提供兩個PROM片選信號ROMSN[1:0],。PROM的訪問和存儲器的訪問基本相似,其讀/寫周期時序如圖3和圖4所示,。
2.3 靜態(tài)存儲器(SRAM)
SRAM區(qū)最高可達512 MB,,具有5個存儲塊,每塊的大小在存儲器配置寄存器2的MCFG2[12:9]中設定,,按照二進制步進算法,,MCFG2[12:9]可設定為8 KB~256 MB。靜態(tài)存儲器讀訪問包括兩個數(shù)據(jù)周期和0~15個等待周期,。在非連貫的訪問中,,在一個讀周期后增加一個前導輸出的周期,可以阻止由于存儲器或者I/O設備的關閉時間引起的總線競爭,。圖5和圖6為基本的讀/寫周期波形(0等待周期),。
2.4 動態(tài)隨機存儲器(SDRAM)
動態(tài)隨機存儲器訪問支持兩塊PC100/PC133兼容的設備。動態(tài)隨機存儲器控制器帶有8~12個列地址位,,并且有最高13行的動態(tài)隨機存儲器,。通過MCFG2和MCFG3控制動態(tài)隨機存儲器的操作。S698P4只支持32 bit的數(shù)據(jù)總線寬度,,每個塊的大小可以編程在512 B~4 MB之間,。為了對不同的動態(tài)隨機存儲器(在不同的頻率)提供最優(yōu)的訪問周期,一些動態(tài)隨機存儲器的參數(shù)可以在MCFG2中設定,??稍O定的動態(tài)隨機存儲器參數(shù)如表3所示。
3 S698P4存儲器控制器的實現(xiàn)與驗證
S698P4采用VHDL語言進行編寫,,其編碼風格同傳統(tǒng)以并發(fā)執(zhí)行[4-5]的并發(fā)進程(或開發(fā)語句)作為模塊,,即所謂的“數(shù)據(jù)流”編碼風格不一樣,采用的是“二進制”的設計方法,。這種編碼風格克服了“數(shù)據(jù)流”編碼方式的可讀性差,、抽象級低、仿真時間長等缺點,。“二進制”編碼風格的具體措施是:(1)所有的端口和信號聲明采用記錄的形式進行說明,,如按輸入輸出分類進行記錄說明,;(2)每個實體只有兩個進程,即組合進程和時序進程,;(3)在組合進程中全部采用變量(而不是信號),,以使用結(jié)構(gòu)化的順序編碼方式;(4)在時序進程中通過時鐘同步進行狀態(tài)的轉(zhuǎn)換,。
S698P4存儲器控制器代碼在Modelsim 6.2b上能夠通過功能仿真(其中外部SRAM讀寫控制仿真波形如圖9和圖10所示),,并且在Quartus II以及ISE EDA平臺上成功綜合布線,燒寫到FPGA后能夠通過硬件測試,。
圖9和圖10為S698P4外部SRAM讀/寫控制波形圖,。由圖9或圖10可知,S698P4存儲器控制器實現(xiàn)了對應RAM片選ramsn,、ROM片選romsn及I/O片選iosn輸出,,sa為公用地址總線,此處沒有進行配置,,只用到單獨的address地址總線,,對應圖2的地址總線A。Data為數(shù)據(jù)總線,,對應圖2的數(shù)據(jù)總線D,。ramoen為RAM輸出使能,oen為讀使能,,其為低時,讀出數(shù)據(jù),。
目前,,S698P4處理器已經(jīng)成功實現(xiàn)了量產(chǎn),在航空航天,、工業(yè)控制等領域中得到廣泛應用,。實踐證明,S698P4存儲器控制器能夠高效地對存儲器和CPU的工作進行協(xié)調(diào)控制,,并在發(fā)揮處理器整體性能上起到很關鍵的作用,。
參考文獻
[1] 虞希清.專用集成電路設計實用教程[M].杭州:浙江大學出版社,2006.
[2] 珠海歐比特控制工程股份有限公司.S698P4芯片用戶手冊(V2.0)[K].2011.
[3] 蔣曉華,,李付海,,祁波.SPARC體系的S698系列SOC及其應用[J].單片機與嵌入式系統(tǒng)應用,2007(8):84-85.
[4] 邊計年,,薛宏熙.用VHDL設計電子線路[M].北京:清華大學出版社,,2000.
[5] PEDRONI V A.VHDL數(shù)字電路設計教程[M].喬廬峰,等,,譯.北京:電子工業(yè)出版社,,2005.