色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 網(wǎng)絡(luò)與存儲(chǔ) > 設(shè)計(jì)應(yīng)用 > 基于VIM的嵌入式存儲(chǔ)控制器的研究與實(shí)現(xiàn)

          基于VIM的嵌入式存儲(chǔ)控制器的研究與實(shí)現(xiàn)

          作者:何同林,張緒冰,馮 丹,陳光海 時(shí)間:2008-12-18 來源:現(xiàn)代電子技術(shù) 收藏

          1 引言

          本文引用地址:http://cafeforensic.com/article/90328.htm

            隨著VLSI技術(shù)的迅猛發(fā)展,微處理器主頻日益提高、性能飛速增長,盡管與此同時(shí)存儲(chǔ)器集成度也越來越高、存取延時(shí)也在不斷下降,但是處理器性能的年增長速度為50%~60%,而存儲(chǔ)器性能每年提高的幅度只有5%~7%,DRAM存儲(chǔ)器的低帶寬和高延遲使高性能處理器無法充分發(fā)揮其性能,處理器和存儲(chǔ)器之間速度的差距越來越成為制約整個(gè)系統(tǒng)性能的瓶頸。眾多的研究者從微體系結(jié)構(gòu)出發(fā),采取亂序執(zhí)行、多線程、預(yù)取、分支預(yù)測、推斷執(zhí)行等技術(shù),或多級(jí)Cache的層次式存儲(chǔ)結(jié)構(gòu)來彌補(bǔ)微處理器與存儲(chǔ)器性能差距,但是這些技術(shù)存在多種問題:復(fù)雜、占用面積大、資源利用率低、造價(jià)高、耗盡存儲(chǔ)帶寬等,并不能真正解決存儲(chǔ)瓶頸問題。即使一些新的存儲(chǔ)器產(chǎn)品的出現(xiàn),如DDR存儲(chǔ)器,Rambus存儲(chǔ)器等,雖然一定程度上提高了存儲(chǔ)器的頻率,但處理器和存儲(chǔ)器之間的性能差距還是在進(jìn)一步拉大。如何才能真正消除存儲(chǔ)器性能瓶頸呢?PIM技術(shù)(Processing in Memory),即把處理器和存儲(chǔ)器緊密集成到一塊芯片上,半導(dǎo)體制造工藝的進(jìn)步使CMOS邏輯單元可以和SRAM或DRAM集成在一個(gè)硅片上,這樣可以突破芯片間引腳的限制,充分發(fā)揮存儲(chǔ)器的隱藏帶寬,同時(shí)降低訪問延時(shí)(將片間訪問延時(shí)轉(zhuǎn)換成片內(nèi)訪問延時(shí)遲)。以PIM技術(shù)為基礎(chǔ),用向量部件作為協(xié)處理器構(gòu)成的Vector In Memory()體系結(jié)構(gòu),可充分發(fā)揮PIM高帶寬、低延遲、低功耗的特點(diǎn),開發(fā)數(shù)據(jù)級(jí)并行,是解決存儲(chǔ)系統(tǒng)性能瓶頸的有效途徑。本文具體闡述體系結(jié)構(gòu)中影響存儲(chǔ)系統(tǒng)性能的關(guān)鍵部件嵌入式存儲(chǔ)控制器的設(shè)計(jì)與實(shí)現(xiàn)。

          2 體系結(jié)構(gòu)

            VIM是一種面向流式數(shù)據(jù)處理的向量體系結(jié)構(gòu),其微體系結(jié)構(gòu)的處理器部分由1個(gè)標(biāo)量核和1個(gè)向量協(xié)處理器構(gòu)成,嵌入式存儲(chǔ)控制器和存儲(chǔ)器構(gòu)成片上DRAM存儲(chǔ)系統(tǒng),處理器部分和存儲(chǔ)系統(tǒng)之間由高速存儲(chǔ)交叉開關(guān)互連。VIM體系結(jié)構(gòu)最重要的特征就是向量處理器和嵌入式存儲(chǔ)器的結(jié)合。圖1中給出了VIM系統(tǒng)結(jié)構(gòu)的典型框架結(jié)構(gòu)。

          2.1 RISC標(biāo)量核

            VIM標(biāo)量核為可綜合、高集成度的32位RISC處理核,其指令集與SPARC V8兼容;標(biāo)量核包括整數(shù)部件、浮點(diǎn)部件,支持用戶態(tài)和超級(jí)用戶態(tài)(管態(tài))2種工作模式;主要功能是執(zhí)行標(biāo)量指令(SPARC指令集),處理異常和中斷,為向量部件輸送向量指令,完成標(biāo)量核與向量部件之間的數(shù)據(jù)傳遞,并與主機(jī)進(jìn)行通信完成取指、譯碼工作。

           

          2.2 向量部件

            向量部件作為標(biāo)量核的協(xié)處理器,執(zhí)行擴(kuò)展的向量指令,與標(biāo)量部件并行執(zhí)行。由向量指令隊(duì)列、向量控制器、向量核寄存器文件、向量Lane等部分構(gòu)成。向量指令隊(duì)列VIQ,為異步FIFO隊(duì)列。標(biāo)量核通過部分譯碼將識(shí)別出的向量指令寫入VIQ,由向量取指單元從中順序取出指令交由譯碼部分再次譯碼。向量控制器保證向量指令的正確執(zhí)行,完成向量流水線控制。向量核寄存器文件由向量寄存器文件、標(biāo)量寄存器文件、控制寄存器文件和標(biāo)志寄存器文件構(gòu)成,包括32個(gè)32位寄存器。向量Lane由并行的向量流水線構(gòu)成,包括完全流水的LSU,ALU,F(xiàn)PU等部件。每個(gè)Lane可以看成一條數(shù)據(jù)通路,完成對特定寬度數(shù)據(jù)的處理,多個(gè)Lane之間可以并行執(zhí)行。

          2.3 嵌入式存儲(chǔ)系統(tǒng)及I/O

            嵌入式存儲(chǔ)系統(tǒng)由存儲(chǔ)互連交叉開關(guān)、嵌人式存儲(chǔ)控制器和存儲(chǔ)器構(gòu)成,存儲(chǔ)互連交叉開關(guān)用于片內(nèi)運(yùn)算部件訪存時(shí)的地址翻譯、訪存指令的路由以及讀取數(shù)據(jù)的返回,其將標(biāo)量訪存部件、向量Lane訪存部件和嵌入式存儲(chǔ)器互連起來,具有多端口、高帶寬、低延時(shí)的特點(diǎn)。嵌入式存儲(chǔ)控制器接收從存儲(chǔ)交叉開關(guān)傳送過來的訪存指令,實(shí)現(xiàn)對DRAM的數(shù)據(jù)存取。存儲(chǔ)器是由4個(gè)獨(dú)立的存儲(chǔ)體組成的一個(gè)多體交叉存儲(chǔ)器,每個(gè)存儲(chǔ)體都有自己獨(dú)立的存取控制接口,體內(nèi)又分成4個(gè)子體。采用多體存儲(chǔ)器可使映射到不同存儲(chǔ)體的訪存指令可以同時(shí)執(zhí)行,并行對多個(gè)向量元素進(jìn)行操作,同時(shí)每個(gè)存儲(chǔ)體都對應(yīng)各自的存儲(chǔ)控制器,相對于集中式存儲(chǔ)控制而言訪問延時(shí)更低、功耗更小。I/O接口用于實(shí)現(xiàn)多個(gè)VIM節(jié)點(diǎn)間互連和掛接一些I/O設(shè)備。

            嵌入式存儲(chǔ)控制器實(shí)現(xiàn)對DRAM存儲(chǔ)體的初始化、激活、行選、列選、自動(dòng)充電、定時(shí)刷新、讀延遲、寫恢復(fù)等功能控制,支持4種突發(fā)讀寫模式、兩種行選延時(shí)選擇,具有嚴(yán)格的時(shí)序。下面將詳細(xì)闡述嵌入式存儲(chǔ)控制器的設(shè)計(jì)方案,設(shè)計(jì)思想以及具體實(shí)現(xiàn)。

          3 嵌入式存儲(chǔ)控制器設(shè)計(jì)與實(shí)現(xiàn)

          3.1 嵌入式存儲(chǔ)控制器模塊結(jié)構(gòu)

            存儲(chǔ)控制器是系統(tǒng)總線和DRAM之間的控制接口,在VIM的存儲(chǔ)系統(tǒng)中,嵌入式存儲(chǔ)控制器的作用就是將存儲(chǔ)交叉開關(guān)所傳輸過來的讀寫控制命令轉(zhuǎn)換成DRAM的控制信號(hào)實(shí)現(xiàn)對DRAM的讀寫、刷新等控制;將存儲(chǔ)交叉開關(guān)傳輸過來的地址分解成Bank地址、行地址和列地址,在特定的時(shí)候傳輸?shù)紻RAM地址線上;以及控制數(shù)據(jù)總線和DRAM數(shù)據(jù)線的數(shù)據(jù)輸入輸出。

            實(shí)現(xiàn)VIM-1嵌入式存儲(chǔ)控制器,圖2所示為其模塊結(jié)構(gòu),存儲(chǔ)控制器由主控制模塊、信號(hào)產(chǎn)生模塊、刷新模塊和數(shù)據(jù)通路構(gòu)成。

           

            下面具體對每個(gè)模塊的功能進(jìn)行闡述:

          3.1.1 主控制模塊

            主控制模塊實(shí)現(xiàn)對DRAM各種功能的控制,由初始化狀態(tài)機(jī)子模塊、命令狀態(tài)機(jī)子模塊和計(jì)數(shù)器子模塊構(gòu)成。

            初始化狀態(tài)機(jī)子模塊 在計(jì)時(shí)子模塊的時(shí)序控制下,產(chǎn)生DRAM初始化過程中所需的各種狀態(tài),通過狀態(tài)轉(zhuǎn)換控制DRAM模塊的初始化,并將其狀態(tài)信號(hào)iState同時(shí)傳送到命令狀態(tài)機(jī)子模塊、信號(hào)產(chǎn)生模塊、計(jì)時(shí)器子模塊和數(shù)據(jù)通路中。

            命令狀態(tài)機(jī)子模塊 在計(jì)時(shí)子模塊的時(shí)序控制下,產(chǎn)生DRAM讀寫周期和刷新周期過程中所需的各種狀態(tài),控制對DRAM模塊的讀寫訪問及刷新操作,并將其狀態(tài)信號(hào)cState傳送到數(shù)據(jù)通路模塊、計(jì)時(shí)器子模塊和信號(hào)產(chǎn)生模塊中。

            計(jì)時(shí)器子模塊 根據(jù)DRAM模塊的時(shí)序標(biāo)準(zhǔn),對DRAM模塊內(nèi)部操作進(jìn)行時(shí)序控制,主要通過控制初始化狀態(tài)機(jī)和命令狀態(tài)機(jī)中的狀態(tài)轉(zhuǎn)化時(shí)序,達(dá)到控制DRAM內(nèi)部操作時(shí)序的目的。

          3.1.2 刷新模塊

            產(chǎn)生對DRAM模塊的刷新請求操作:通過內(nèi)部的計(jì)數(shù)器控制,每隔一定的時(shí)鐘周期(具體時(shí)鐘周期數(shù)按照DRAM模塊參數(shù)而定)向命令狀態(tài)機(jī)發(fā)送刷新請求,直到命令狀態(tài)機(jī)回復(fù)刷新請求應(yīng)答。

          3.1.3 信號(hào)產(chǎn)生模塊

            信號(hào)產(chǎn)生模塊將初始化狀態(tài)機(jī)發(fā)送的狀態(tài)iState、命令狀態(tài)發(fā)送的狀態(tài)cState轉(zhuǎn)換成DRAM所對應(yīng)的內(nèi)部命令信號(hào),主要包括sdr_CKE(時(shí)鐘使能信號(hào))、sdr_CSn(片選信號(hào))、sdr_RASn(行選信號(hào))、sdr_CASn(列選信號(hào))、sdr_WEn(讀寫信號(hào))。同時(shí)在規(guī)定的時(shí)序下,將地址總線上傳輸過來的地址信號(hào)轉(zhuǎn)換成DRAM內(nèi)部所對應(yīng)的Bank地址和行列地址。

          3.1.4 數(shù)據(jù)通路

            數(shù)據(jù)通路模塊主要功能是在計(jì)時(shí)器子模塊的時(shí)序控制下,根據(jù)命令狀態(tài)信號(hào),在相應(yīng)狀態(tài)時(shí)將數(shù)據(jù)總線上的數(shù)據(jù)寫入DRAM存儲(chǔ)體;以及將DRAM數(shù)據(jù)線sdr_DQ上的數(shù)據(jù)輸出到系統(tǒng)總線上,同時(shí)在數(shù)據(jù)輸出的過程中將數(shù)據(jù)有效信號(hào)sys_D_Valid置1。

          3.2 DRAM初始化

            通常在DRAM正常工作,能夠執(zhí)行存儲(chǔ)訪問前,需要對DRAM進(jìn)行初始化。主控制模塊中的初始化狀態(tài)機(jī)子模塊實(shí)現(xiàn)對DRAM的初始化操作。如圖3所示。

           

            圖3為初始化狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖,初始化過程如下:系統(tǒng)復(fù)位時(shí),DRAM空操作,初始化狀態(tài)機(jī)處于i_NOP狀態(tài),系統(tǒng)復(fù)位完成且電源和時(shí)鐘處于穩(wěn)定狀態(tài)時(shí),DRAM初始化序列開始執(zhí)行,經(jīng)1次充電、2次刷新和載入工作模式操作,最后進(jìn)入就緒狀態(tài),初始化序列完成。

            初始化狀態(tài)機(jī)中的載入模式狀態(tài)啟動(dòng)DRAM內(nèi)部載人工作模式命令,將地址總線上的數(shù)據(jù)加載到DRAM的模式寄存器中,配置用戶所需要的工作模式。模式寄存器的內(nèi)容定義了猝發(fā)長度、猝發(fā)類型及CAS延遲等,只要DRAM模塊處于空操作狀態(tài),模式寄存器可以載入不同的值,繼而改變DRAM的工作模式。

            另外,由于DRAM的延遲周期根據(jù)實(shí)際DRAM速度級(jí)別的不同而不同,在延遲狀態(tài)中等待的時(shí)鐘周期數(shù)與時(shí)鐘周期tCK相關(guān),當(dāng)時(shí)鐘周期tCK大于延遲時(shí)間時(shí)(這里延遲時(shí)間指:充電周期、刷新周期和載入延遲),實(shí)際上就不需要等待,在初始化過程中,充電、刷新和載入工作模式到最后就緒狀態(tài)之間的轉(zhuǎn)換為圖3中虛線表示的轉(zhuǎn)換過程。

          3.3 讀寫周期

            圖4為VIM-1嵌入式存儲(chǔ)控制器命令狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖,通過狀態(tài)轉(zhuǎn)換控制對DRAM的讀、寫訪問和刷新操作。

           

            系統(tǒng)復(fù)位時(shí),DRAM空操作,命令狀態(tài)機(jī)處于空閑狀態(tài),DRAM初始化完成后,命令狀態(tài)機(jī)對總線地址選通信號(hào)sys_ADSn(低電平有效,表示總線請求)和刷新請求信號(hào)sys_REF_REQ進(jìn)行檢測,如果有刷新請求,那么命令狀態(tài)機(jī)模塊控制DRAM進(jìn)入刷新周期,否則,若總線地址選通信號(hào)sys_ADSn有效,命令狀態(tài)機(jī)轉(zhuǎn)入激活狀態(tài),則DRAM進(jìn)入讀寫周期。

            命令狀態(tài)機(jī)從激活狀態(tài)無條件轉(zhuǎn)入激活延遲狀態(tài),在激活延遲狀態(tài)對系統(tǒng)控制總線上的讀寫命令信號(hào)進(jìn)行檢測,若信號(hào)為高電平(表示讀訪問)則命令狀態(tài)機(jī)轉(zhuǎn)入讀操作狀態(tài),繼而進(jìn)行對DRAM讀取數(shù)據(jù)操作;否則狀態(tài)機(jī)轉(zhuǎn)人寫操作狀態(tài),執(zhí)行寫訪問。

            對DRAM一個(gè)完整的讀訪問周期需要經(jīng)過的狀態(tài)轉(zhuǎn)換過程為空閑-激活-激活延遲-讀操作-CAS延遲-數(shù)據(jù)輸出,最后回到空閑狀態(tài)。而對DRAM一個(gè)完整的寫訪問周期則需要經(jīng)過空閑-激活-激活延遲-寫操作-數(shù)據(jù)寫入-寫恢復(fù)-空閑的狀態(tài)轉(zhuǎn)換過程。

            在所實(shí)現(xiàn)的VIM-1嵌入式存儲(chǔ)控制器中,將DRAM地址位A[10]恒置高電平,設(shè)置為自動(dòng)充電模式,所以對DRAM的充電隱藏在DRAM讀寫命令操作中。命令狀態(tài)機(jī)轉(zhuǎn)換過程中所涉及到的延遲等待時(shí)間,由DRAM模塊速度和延遲參數(shù)確定。從c_ACTIVE到c_WRITE或c_READ狀態(tài)之間的虛線表示,在激活延遲小于1個(gè)時(shí)鐘周期的情況下,DRAM從激活狀態(tài)直接轉(zhuǎn)換到讀/寫操作狀態(tài),延遲實(shí)際上隱藏在狀態(tài)轉(zhuǎn)換的時(shí)鐘周期中。

          3.4 刷新周期

            DRAM存儲(chǔ)器需要進(jìn)行定時(shí)刷新,刷新周期描述如下:

          (1)刷新模塊每經(jīng)過1個(gè)刷新請求周期,向控制模塊發(fā)出刷新請求信號(hào)sys_REF_REQ;

          (2)存儲(chǔ)控制器的控制模塊發(fā)出應(yīng)答信號(hào)sys_REFACK對請求信號(hào)進(jìn)行確認(rèn);

          (3)應(yīng)答信號(hào)在整個(gè)刷新階段有效,sys_REF_REQ信號(hào)發(fā)出后必須得到sys_REF_ACK的確認(rèn),否則一直保持為高;

          (4)在sys_REF_ACK有效期間,不能允許進(jìn)行讀寫訪問,直到刷新周期完畢,在刷新期間系統(tǒng)接口所有命令將被忽略;

          (5)接收刷新請求后,命令狀態(tài)機(jī)經(jīng)過c_AR刷新狀態(tài)-c_tRFC刷新等待狀態(tài)-c_idle空閑狀態(tài)的轉(zhuǎn)換過程完成對DRAM的刷新控制。并等待接收系統(tǒng)訪存指令,完成下一輪的讀/寫周期。

          3.5 時(shí)序控制

          時(shí)序控制是存儲(chǔ)控制器實(shí)現(xiàn)中的關(guān)鍵部件,在VIM-1嵌入式存儲(chǔ)控制器中用1個(gè)計(jì)時(shí)器子模塊來實(shí)現(xiàn)對存控內(nèi)狀態(tài)機(jī)的時(shí)序控制。計(jì)時(shí)器子模塊中包括1個(gè)時(shí)鐘周期數(shù)鎖存器ClkCNT和1個(gè)計(jì)時(shí)復(fù)位信號(hào)Reset_ClkCNT,具體時(shí)序控制描述如下:

          (1)鎖存器ClkCNT按時(shí)鐘周期遞增,每時(shí)鐘周期ClkCNT的值加1,直到Reset_ClkCNT復(fù)位信號(hào)置1,ClkCNT清0;

          (2)狀態(tài)機(jī)轉(zhuǎn)換到某個(gè)需要延遲操作的狀態(tài)時(shí),Reset ClkCNT復(fù)位信號(hào)置1,此時(shí)CIkCNT清0;

          (3)狀態(tài)機(jī)進(jìn)入延遲等待狀態(tài),同時(shí)將Reset_ClkCNT復(fù)位信號(hào)置0,計(jì)時(shí)器從0開始計(jì)數(shù),ClkCNT按時(shí)鐘周期遞增1;

          (4)ClkCNT值到達(dá)指定延遲時(shí)間,相關(guān)狀態(tài)機(jī)子模塊控制狀態(tài)發(fā)生轉(zhuǎn)換,同時(shí)將Reset_ClkCNT置1,ClkCNT清0,進(jìn)入下一個(gè)狀態(tài)的時(shí)序控制。

          4 功能模擬及綜合驗(yàn)證

          4.1 存儲(chǔ)控制器功能模擬

            在modelsim 5.7中對VIM-1嵌入式存儲(chǔ)器進(jìn)行了功能模擬,下面分別給出讀寫訪問功能模擬結(jié)果。圖5為存儲(chǔ)控制器寫周期時(shí)序波形圖。該時(shí)序波形圖反映了存儲(chǔ)控制器將數(shù)據(jù)總線上的數(shù)據(jù)00000009H(H表示16進(jìn)制)寫入DRAM的過程。從圖5中可以看到存儲(chǔ)控制器在狀態(tài)機(jī)cstate處于0110狀態(tài)時(shí)240 ns,將數(shù)據(jù)送到輸出數(shù)據(jù)線sdr_odq上,數(shù)據(jù)值為00000009H;完成數(shù)據(jù)的寫入后,狀態(tài)機(jī)轉(zhuǎn)到寫恢復(fù)狀態(tài)0111(260 ns),經(jīng)過兩個(gè)周期后在280 ns回到空閑狀態(tài)0000,寫周期完成。

            圖6為存儲(chǔ)控制器讀周期時(shí)序波形圖。同寫周期時(shí)序波形圖一樣,圖中正確反映了命令狀態(tài)機(jī)在檢測到控制總線上讀命令后的狀態(tài)轉(zhuǎn)換過程,狀態(tài)轉(zhuǎn)換之間的延遲周期,每種狀態(tài)所對應(yīng)的DRAM命令信號(hào),系統(tǒng)地址和數(shù)據(jù)總線上的值,DRAM地址線和數(shù)據(jù)線上的值。通過一系列的狀態(tài)轉(zhuǎn)換,在狀態(tài)機(jī)cstate轉(zhuǎn)換到1010數(shù)據(jù)輸出狀態(tài)(350 ns)時(shí),存儲(chǔ)控制器將前面存入DRAM存儲(chǔ)單元中的數(shù)據(jù)00000009H,讀取出來并傳送到系統(tǒng)數(shù)據(jù)總線sys_odata上。

          4.2 FPGA綜合驗(yàn)證

            在QuartusⅡ環(huán)境中采用Altera的Stratix FPGA系列中的EPlS80對VIM-1嵌入式存儲(chǔ)控制器進(jìn)行了綜合,下面是存儲(chǔ)控制器綜合結(jié)果。

           
           

          5 結(jié)語

            在PIM中嵌入向量處理邏輯的VIM系統(tǒng)結(jié)構(gòu),能充分發(fā)揮PIM高帶寬、低延遲、低功耗的特點(diǎn),可以有效解決存儲(chǔ)性能瓶頸問題?;赩IM的嵌入式存儲(chǔ)控制器是VIM系統(tǒng)的方存控制部件,是影響系統(tǒng)性能的發(fā)揮的關(guān)鍵,本文實(shí)現(xiàn)的VIM-1嵌入式存儲(chǔ)控制器支持多種讀寫模式,具有嚴(yán)格的時(shí)序控制,每個(gè)存儲(chǔ)控制器對應(yīng)單獨(dú)的存儲(chǔ)模塊,和VIM的存儲(chǔ)交叉開關(guān)接口,使得多個(gè)方存部件可以同時(shí)訪問多個(gè)存儲(chǔ)體,具有較強(qiáng)的研究和應(yīng)用價(jià)值。



          關(guān)鍵詞: VIM

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉