999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于PLB4總線的DDR3控制器的設計與優化

2016-02-23 04:53:28王世中
計算機技術與發展 2016年3期
關鍵詞:優化信息設計

李 哲,田 澤,王世中,鄭 斐

(西安航空計算技術研究所 集成電路與微系統設計航空科技重點實驗室,陜西 西安 710068)

基于PLB4總線的DDR3控制器的設計與優化

李 哲,田 澤,王世中,鄭 斐

(西安航空計算技術研究所 集成電路與微系統設計航空科技重點實驗室,陜西 西安 710068)

內存是計算機系統的信息存儲部件,主設備與內存間信息交換的速度是影響系統性能的關鍵因素。PLB總線是IBM提出的嵌入式總線標準,用于主設備與片內存儲以及PCIE、DMA、SRIO等高速設備的互聯,在SoC設計中使用廣泛。該項目中DDR3作為從設備掛接到PLB4總線上,而選用的DDR3控制器IP核基于HIF接口,使用該IP核需要設計一套簡單高效的總線橋邏輯,以滿足系統訪存性能要求。文中提出一種基于PLB4總線接口的DDR3控制器的設計方案,通過對數據流、控制流進行深入分析,采用請求合并、多級流水、數據預測、地址與控制信息復用、讀數據亂序處理等方式,對訪存效率影響較大的總線橋進行了速度和面積優化。仿真證明,優化后訪存性能得到顯著提升。

內存;性能;速度;面積;優化

0 引 言

在高性能SoC設計中,高速的片上總線和高效的片上內存管理是不可或缺的組成部分。DDR3是由JEDEC制定的新一代DDR內存技術標準。在現行的各種總線標準中,IBM公司提出的CoreConnect總線結構具有突出的性能和效率優勢,能夠滿足日益復雜化和高速化的SoC設計要求,成為業內標準總線之一。CoreConnect總線采用分級結構,分別通過PLB(Processor Local Bus)總線和OPB(On-chip Peripheral Bus)總線將高速設備與低速設備分離,同時把讀寫控制寄存器的總線操作獨立開來,形成單獨的DCR(Device Control Register)總線,大大減輕了數據總線的負載[1]。它支持各種傳輸操作,總線/事務分離以及地址流水化等功能,最大限度提升總線帶寬,從而提高系統性能[2]。

1 總體結構設計

該項目需要設計滿足PLB4.6協議標準的總線接口,滿足DDR3協議規范的內存控制器。DDR3控制器用于用戶訪問片外DDR3 SDRAM存儲器芯片,它提供了用戶訪問外部存儲器芯片的通道,支持片外SDRAM數據位寬度為64位。提供軟件可訪問的DCR接口寄存器,用于根據不同外存芯片進行大小、延遲等參數的配置,并能讀取存儲控制器的當前狀態[3]。

為提高SoC設計效率,采用IP復用技術,從經過硅驗證的PLB4從設備IP核中剝離出PLB4從接口,選用成熟的DDR3標準IP核。需要做的主要工作就是從PLB4從接口到DDR3 IP核之間的轉接邏輯,如圖1所示,包括PLB4從接口模塊,DDRC控制器模塊,DDR PHY模塊。其中PLB4從接口模塊后端為MCIF(Memory Control InterFace)總線接口,MCIF總線是IBM公司定義的一種存儲器控制接口,DDRC模塊分為控制器和PHY兩大部分,DDR控制器的主機接口為HIF(Host InterFace)接口,控制器與PHY之間是標準的DFI(DDR PHY Interface)接口。其中DDRC和PHY內部有可配置的寄存器,通過DCR接口訪問。PLB4從接口模塊是DDR3控制器與PLB4總線的接口處理模塊,滿足PLB4的總線規范要求,可以接收、傳輸外部PLB4總線上的指令和數據,實現PLB主設備對DDR的訪問。該從接口支持64/128位PLB主設備,支持的操作類型包括1~16字節單拍、4字、8字line操作和雙字、4字突發的PLB訪問[4-5]。其中MCIF2HIF模塊,完成從PLB4接口到DDRC控制器核之間的命令和數據轉換。

圖1 總體結構

2 MCIF2HIF模塊設計

由于PLB從接口后端為標準的MCIF接口,而DDRC控制器主機接口為HIF接口,需要該模塊實現MCIF到HIF的數據率匹配、時序映射和轉換功能。MCIF與HIF接口采用同步時鐘,該模塊的轉換效率對訪存效率影響很大,應盡量減少轉換延遲。

2.1 接口時序

MCIF接口讀、寫操作時序如圖2所示。

HIF接口的讀、寫時序如圖3所示。

HIF在進行寫操作時co_ih_rxcmd_valid有效同時寫地址與寫操作類型有效。ih_co_wdata_ptr_valid有效后表示讀操作請求得到響應,然后可以發出寫數據。寫數據位寬為256位,一次寫操作可以發出2個256位的寫數據。co_wu_rxcmd_valid為高表示寫入數據有效,同寫數據一同發出的還有寫掩碼信號co_wu_rxdata_mask,用來表示傳輸的對應字節。ih_co_stall為高時表示系統忙,直到ih_co_stall變低之前系統無法響應新的請求[3]。

圖2 MCIF接口時序

圖3 HIF接口時序

HIF在進行讀操作時co_ih_rxcmd_valid有效同時讀操作地址與讀操作類型有效。讀token信號co_ih_rxcmd_token有效,ih_co_hpr_credit有效后表示讀操作高優先級信用有效,然后可以發出寫數據。讀數據位寬為256位,一次讀操作可以讀出2個256位的讀數據。ra_co_resp_valid為高表示讀出數據有效,同讀數據一同讀出的還有讀token信號ra_co_resp_token,用來表示讀出數據的token信息[3]。

2.2 數據及控制通路設計

由于HIF接口數據線為256 bit,而MICF接口數據線為128 bit,因此在寫操作時需要讓MCIF接口盡量滿負荷給PLB總線發送地址響應和請求寫數據,并將寫數據進行緩沖,對于讀操作也需要對HIF返回的讀數據進行緩沖。加快回地址響應的速度,可以讓更多的PLB請求進來,并通過增加compaack_fifo與wr_addr_fifo,將進來的PLB請求和配套信息緩存,保證不要丟失請求及配置信息。由于PLB總線是地址和數據獨立的,因此可以對寫數據單獨設計一個FIFO進行緩沖,與addr_fifo形成流水。

通過分析得出該模塊需要使用4個FIFO:compaack_fifo、wr_addr_fifo、wr_data_fifo、rddata_fifo。compaack_fifo用于各個命令的調度、緩沖寫請求并返回地址響應和寫完成信號,可以將請求緩存并迅速接收下一條指令;wr_addr_fifo用于緩沖讀寫地址信息與操作指令信息,需要設計一個命令控制字調度狀態機控制來自MCIF接口的命令控制字信息調度;wr_data_fifo用于緩沖寫數據;rddata_fifo用于緩沖讀數據。

通過讀wr_addr_fifo,將其中的控制信息取出,同時,根據讀出的控制信息適時地將wr_data_fifo中的寫數據讀出,通過判斷HIF接口當前wr_addr_fifo的狀態將寫數據進行拼接并鎖存。由于HIF寫操作可能是256 bit或512 bit,當為256 bit時,HIF接口寫操作為1拍,否則為2拍。HIF讀操作均為2拍,即一次返回512 bit數據,這時由于DDRC控制器讀操作僅支持BURST8操作,存儲總線寬度為64 bit,所以每次讀操作從HIF接口返回512 bit數據,轉換邏輯需要根據控制信息從512 bit數據中適當的位置提取出正確的數據并按照預定的順序返回給MCIF接口。控制信息的存儲需要單獨設計一個雙口存儲器,當發送HIF讀數據請求時,將控制信息存儲在該雙口中,當HIF讀數據返回后,需要讀出雙口中的控制信息,并根據控制信息取出相應位的數據返回給MCIF接口。

核心指令狀態機轉移圖如圖4所示。

圖4 核心指令狀態機轉移圖

2.3 亂序處理設計

由于PLB4總線讀操作不支持亂序[2],而DDRC是支持亂序的,即對HIF接口來說,由于每次HIF讀請求需要對應一個token,而不同token的讀請求返回給HIF接口的讀數據可能是亂序返回的。因此,不能直接將HIF讀數據返回給MCIF接口。

設計一個32位的flag寄存器和深度為32的雙口存儲器(先暫定為32深度,通過仿真評估后可能調整),根據HIF接口時序要求,當發送HIF讀請求時,需要同時發送co_ih_rxcmd_token信號,簡稱為token信號。當控制指令狀態機處于新指令判斷狀態時,將當前空閑的flag位的值賦給token,并將flag寄存器中對應位置1,flag采用從低位到高位依次順序分配,但只有分配到31位,且flag[0]為0且已經被讀走時,才能重新分配flag。否則等待flag空閑后再發送讀請求。當DDRC返回讀數據時,由于返回的讀數據的token與之前發送的讀請求的token是一致的,所以將返回數據的token作為雙口存儲器的地址,將對應數據寫入雙口中,并將flag清0。同時設計一個32位的dpram_flag寄存器,用來存儲返回的token值。由于前面發送HIF讀請求的token的順序是確定的,因此期望返回的token的順序也是確定的。當返回一個token時,將其對應數據寫入雙口的token值對應的地址中,同時將該token對應的dpram_flag置1,并將該token與期望返回的值比較,相等則下一拍將該筆數據從雙口中取出返回給MCIF接口,并清除dpram_flag寄存器的對應位,否則,將期望值加1(當加到31時重新返回0),等待下一次返回讀數據。直到期望值與后面返回的數據相等時,將該筆數據從雙口中讀出,從而保證返回給PLB總線的讀數據的順序。

另外,由于兩筆HIF讀數據返回間隔的不確定性,數據在通過雙口讀出后需要經過一個rddata_fifo緩存后輸出到MCIF接口。設計功能結構圖如圖5所示。

圖5 功能結構圖

3 設計優化

3.1 對BURST操作的優化

由于BURST操作通常是帶有連續性的,因此MCIF接口上相鄰的兩次讀或寫請求具有強相關性。可將其地址和控制信息進行合并,兩次僅有一個入FIFO隊列,從而提高效率和FIFO利用率。對于前面預判可合并,后面實際判斷不能合并的,最終會分成兩次請求入隊[6-7]。

3.2 獲取寫數據的加速

如果上一步進來的PLB請求是寫請求,則需要在回compaack之后向PLB從接口要寫數據。首先對compaack_fifo和addr_fifo進行分工調整,由于compaack_fifo的最終目的是要寫數據,因此只將寫請求及配置信息入隊compaack_fifo,而讀請求不入隊[8-9]。另外,通過對狀態機進行優化,在回compaack同時向PLB接口發起寫數據請求,并在將寫數據緩沖到wrdata_fifo的同時,請求下一次的寫數據,從而加速寫數據的獲取。這里寫入wrdata_fifo的數據已經根據從compaack_fifo讀出的信息,按照HIF接口的要求重組好,根據后面流程直接從wrdata_fifo讀出后輸出到HIF接口,實現零換乘,省去拼接和產生規定數據的時間[10-11]。

3.3 對讀、寫請求的優化

由于wr_addr_fifo作為該模塊控制信息來源,存儲了所有來自PLB4的總線請求及配套信息。控制調度核心命令狀態機通過對該FIFO的讀出信息來控制向HIF發送讀、寫請求及寫數據。縮短兩次讀取wr_addr_fifo的間隔,對讀操作,由于不需要數據,因此發完HIF讀請求后,可以快速切換到下一次對wr_addr_fifo的讀取狀態。對于寫操作,由于在發完HIF寫請求之后,既要等待HIF接口的授權,又要等待寫數據準備好。仿真發現此處延遲較大,若增加一個hif_wr_fifo,緩沖wr_addr_fifo的寫控制信息,不用等待授權和寫數據準備好,核心命令狀態機就可轉入下次讀wr_addr_fifo狀態。使HIF寫命令和寫數據流水,從而降低延遲[12-13]。

3.4 利用token進行速度和面積優化

co_ih_rxcmd_token信號是DDRC控制器中CAM存儲器的地址,根據token發送和接收不會改變其值的特點,可以將控制信息通過token進行傳遞和回收。仿真發現,HIF接口最壞情況下,堵在雙口中的讀數據最多為4個,考慮設計余量,因此將雙口深度調整為8,同時將flag和dpram_flag寄存器寬度也調整為8。由于HIF接口的co_ih_rxcmd_token信號寬度固定為6 bit,因此可以考慮將token低三位負責傳遞控制信息,高三位作為CAM和雙口的地址,由于token分配方式一輪操作內不會重復(前一個不釋放,后一個不會重用),因此CAM地址不會出現沖突。采用token為讀請求來傳遞控制信息,可省去一個存儲控制信息的雙口存儲器,同時將讀數據雙口及rddata_fifo深度均從32減為8,節省了面積,簡化了邏輯設計,降低了雙口讀寫延遲,避免雙口兩端同時寫操作的沖突風險[14]。

4 仿真結果

仿真環境是在PLB總線及DDRC時鐘均為200 MHz的情況下。將優化前與優化后的設計進行仿真,統計多種操作的訪存延遲,結果如表1所示。

表1 優化前后比對表

5 結束語

文中論述了PLB4DDR3控制器的總體結構設計,重點研究了MCIF2HIF轉換接口設計優化。仿真結果表明,優化后訪存效率得到明顯提升。文中對片上內存設計及優化具有一定參考價值。

[1] 王宏亮,毛永毅,張宏君.基于CoreConnect的OPB SPI接口設計與實現[J].測控技術,2013,32(5):72-76.

[2] IBM.128-bitprocessor local bus architecture specifications version 4.6[M/OL].[s.l.]:IBM Inc. Press.2004.http://www.chips.ibm.com.

[3] Design ware cores enhanced universal DDR memory controller databook[M].[s.l.]:Synopsys Press,2014:189-193.

[4] 陳超文,彭國杰,王憶文,等.基于PLB總線的NOR FLASH控制器設計[J].微電子學與計算機,2014,31(5):83-86.

[5] 盧 俊,顏 哲,田 澤.基于PLB雙總線高速存儲接口的設計與實現[J].計算機技術與發展,2015,25(4):233-237.

[6] 陳 卓,楊愛良,王 驥.基于PLB總線的多通道SGDMA設計[J].航空電子技術,2009,40(1):12-15.

[7] 吳從中,項 磊,蔣建國.基于PLB總線的H.264整數變換量化軟核的設計[J].電子技術應用,2008,34(10):35-38.

[8] 蘇 鵬,卞春江,張 磊.PowerPC處理器MPC8548E的DDR2接口實現[J].微計算機信息,2010,26(12-2):174-176.

[9] 劉寧寧,田 澤,裴希杰.基于CoreConnect總線的Nand Flash控制器設計[J].計算機應用,2014,34(S1):327-329.

[10] IBM.Device control register bus 3.5 architecture specifications[M].Armonk:IBM,2006.

[11] 馬秦生,魏 翠,孫力軍,等.嵌入式SoC總線分析與研究[J].中國集成電路,2007,16(3):45-49.

[12] 潘 波,楊根慶,孫 寧,等.基于多級片上總線的并行圖像處理系統設計[J].計算機應用研究,2008,25(7):2208-2209.

[13] IBM Inc.Processor local bus functional model toolkit user’s manual version 4.7[M].[s.l.]:IBM Inc. Press,2002:214-215.

[14] Xilinx Inc.BFM simulation tutorial[EB/OL].2006-07-18.http://www.xilinx.com.

Design and Optimization of DDR3 Controller Based on PLB4 Bus

LI Zhe,TIAN Ze,WANG Shi-zhong,ZHENG Fei

(Aeronautics Science and Technology Key Laboratory of Integrate Circuit and Micro-system Design,AVIC Computing Technique Research Institute,Xi’an 710068,China)

Memory is the information storage component in computer systems.The message transmission speed between the master and the memory is the key factor to affect the system performance.PLB bus put forward by IBM is a embedded bus standard,which is used for the interconnection among masters,memory and other high-speed devices like PCIE,DMA,SRIO.It is wildly used in SoC design.This project takes DDR3 as a slave connected to the PLB4 bus,which has a host interface named HIF.So an high effective cross bus bridge logic is designed to interconnect each other and improve the memory access efficiency.A DDR3 controller solution based on the PLB4 bus interface is proposed,through analysis on the data and control flow,adopting the methods of request combination,multi-pipeline,data forecast,address and control information multiplexing,data reading out of order processing to optimize speed and size of the bridge logic which will influence the memory access delay.Simulation proves that after optimization the performance has been improved remarkably.

memory;performance;speed;size;optimization

2015-06-16

2015-09-22

時間:2016-03-04

中國航空科學基金(2015ZC51036)

李 哲(1985-),男,工程師,研究方向為集成電路設計;田 澤,博士,研究員,中航首席技術專家,研究方向為SoC設計、VLSI設計、嵌入式系統開發和應用。

http://www.cnki.net/kcms/detail/61.1450.TP.20160304.1508.006.html

TP39

A

1673-629X(2016)03-0181-04

10.3969/j.issn.1673-629X.2016.03.042

猜你喜歡
優化信息設計
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
設計之味
舒適廣告(2008年9期)2008-09-22 10:02:48
主站蜘蛛池模板: 色精品视频| 久久精品这里只有精99品| 国产精品丝袜视频| 国产精品无码AV中文| 99久久无色码中文字幕| 亚洲天堂首页| 国产永久免费视频m3u8| 久夜色精品国产噜噜| 久久久成年黄色视频| 久久精品66| 国产v精品成人免费视频71pao| 国产成人h在线观看网站站| 国产成人毛片| 欧美成人影院亚洲综合图| 男女性午夜福利网站| 免费在线色| 青青草原国产av福利网站| 日本五区在线不卡精品| 欧美丝袜高跟鞋一区二区| 午夜精品久久久久久久99热下载 | 国产成人91精品免费网址在线| 国产一区成人| 欧美日韩在线国产| 国产成人精品一区二区不卡| 国产毛片网站| 久久精品国产在热久久2019| 丁香六月综合网| 看看一级毛片| 日韩黄色精品| 在线精品亚洲一区二区古装| 国产午夜无码片在线观看网站 | 久久久黄色片| 欧美国产在线看| 玖玖精品在线| 亚欧美国产综合| 欧亚日韩Av| 香蕉伊思人视频| 亚洲无限乱码一二三四区| 小说区 亚洲 自拍 另类| 亚洲精品大秀视频| 色欲色欲久久综合网| 亚洲第一中文字幕| 亚国产欧美在线人成| 国产综合亚洲欧洲区精品无码| 狠狠躁天天躁夜夜躁婷婷| 欧美丝袜高跟鞋一区二区| 国产精品2| 成人毛片免费在线观看| 欧美日韩一区二区三| 午夜天堂视频| 亚洲男人天堂网址| 久久免费看片| 免费精品一区二区h| 无码国产伊人| 国产传媒一区二区三区四区五区| 国产黄色免费看| a亚洲天堂| 又大又硬又爽免费视频| 中文字幕无线码一区| 欧美日韩亚洲综合在线观看| 欧美区一区| 欧美在线网| 国产精品偷伦在线观看| 91成人在线免费观看| 无码内射中文字幕岛国片 | 亚洲国产亚洲综合在线尤物| 国产白浆在线| 成年网址网站在线观看| 2022国产无码在线| 成年人福利视频| a级免费视频| 一本一本大道香蕉久在线播放| 91精品免费久久久| 99re在线视频观看| 久久精品国产999大香线焦| 亚洲αv毛片| 日韩小视频在线观看| 国产精品久久久久鬼色| 91色综合综合热五月激情| 欧美日本不卡| 手机精品福利在线观看| 久久久久久国产精品mv|