專利名稱:提高sdram數(shù)據(jù)傳輸效率的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲及處理技術(shù)領(lǐng)域,尤其是數(shù)據(jù)通信的數(shù)據(jù)存儲及處理中提高SDRAM數(shù)據(jù)傳輸效率的方法。
背景技術(shù):
隨著通信技術(shù)的發(fā)展,需要處理的數(shù)據(jù)量越來越大,數(shù)據(jù)的流量控制要求越來越尚,這都要求數(shù)據(jù)存儲和處通能力的提聞,而數(shù)據(jù)處通能力的提聞,提聞接ロ效率是一種有效的方法。目前的硬件設(shè)計(jì)中,F(xiàn)PGA (Field Programmable Gate-Array現(xiàn)場可編程陣列)和雙倍速率同步動態(tài)隨機(jī)存儲器DDR2 SDRAM的結(jié)合應(yīng)用非常普遍。FPGA和DDR2 SDRAM連接處理內(nèi)容主要是數(shù)據(jù)讀寫,DDR2 SDRAM支持的常用命令有7種空操作(NOP)、激活操作(Active)、突發(fā)讀(Burst Read)、突發(fā)寫(Burst Write)、自動刷新(Autorefresh)、關(guān) 閉(Precharge)、模式寄存器配置(Mode Register Set)。所有的操作命令都是通過信號線RAS_N、CAS_N、WE_N共同控制來實(shí)現(xiàn)的。在對DDR2 SDRAM進(jìn)行存取數(shù)據(jù)操作之前,首先要對其初始化,即設(shè)置DDR2 SDRAM的普通模式寄存器和擴(kuò)展模式寄存器,確定DDRSDRAM的工作方式,這些設(shè)置包括突發(fā)長度、突發(fā)類型、CAS潛伏期和工作模式以及擴(kuò)展模式寄存器中的對DDR2 SDRAM內(nèi)部延遲鎖定回路(DLL)的使能與輸出驅(qū)動能力的設(shè)置。初始化完成之后,DDR2 SDRAM便進(jìn)入正常的工作狀態(tài),此時便可對存儲器進(jìn)行讀寫和刷新。DDR2 SDRAM在ー對差分時鐘的控制下工作,命令(地址和控制信號)在每個時鐘的上升沿被觸發(fā)。對DDR2 SDRAM的讀和寫操作是基于突發(fā)的,即從ー個選定的地址單元開始,連續(xù)存取已設(shè)置長度的地址單元,該長度就是所謂的突發(fā)長度。DDR2 SDRAM提供的可編程的讀或?qū)懙耐话l(fā)長度為2,4或8。數(shù)據(jù)的存取以ー個激活命令(Active)開始,接著便是讀(Burst Read)或?qū)?Burst Write)命令。與激活命令一起被觸發(fā)的地址位用來選擇將要存取的區(qū)和頁(或行),與讀或?qū)懨钜黄鸨挥|發(fā)的地址位用來選擇突發(fā)存取的起始列單元。讀命令被觸發(fā)后,數(shù)據(jù)將在I. 5 3個時鐘周期之后出現(xiàn)在數(shù)據(jù)總線上。這個延遲就是所謂的CAS潛伏期(CAS latency),即從DDR2SDRAM內(nèi)核讀出數(shù)據(jù)到數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上所需要的時間。CAS潛伏期的大小與SDRAM的速度和存儲器的時鐘頻率有夫。當(dāng)要存取ー個不同行的地址單元吋,需要通過ー個關(guān)閉(Precharge)操作關(guān)閉當(dāng)前行,以下將Precharge命令稱為關(guān)閉命令。自動刷新(Autorefresh)命令用來周期性地刷新DDR SDRAM,以保持其內(nèi)部的數(shù)據(jù)不丟失。,現(xiàn)有技術(shù)采用FPGA作為控制器來控制DDR2 SDRAM的讀寫操作,F(xiàn)PGA控制器的主要功能包括(I)初始化DDR2 SDRAM ; (2)簡化DDR2SDRAM的讀寫時序。在對DDR2 SDRAM初
始化完成之后,就可進(jìn)行讀、寫或其他操作。在執(zhí)行讀/寫命令之前,先要激活將要讀/寫的行,之后便可對該行進(jìn)行突發(fā)讀/寫。這樣當(dāng)一次讀寫突發(fā)長度結(jié)束后,如果需要發(fā)起下一次讀寫,就需要發(fā)關(guān)閉命令結(jié)束這一行,然后發(fā)激活命令開啟下一行,這樣才能開始寫下一次數(shù)據(jù)。如何簡化讀寫時序,提高數(shù)據(jù)處理效率是FPGA控制器設(shè)計(jì)的主要難題,通常的控制器時序都保留了相當(dāng)多的空操作,按照激活、讀/寫、關(guān)閉,然后再開啟激活的循環(huán)次序控制SDRAM讀寫,數(shù)據(jù)處理效率不高。
發(fā)明內(nèi)容
本發(fā)明的主要目的是為了解決現(xiàn)有的問題,提供了一種用FPGA控制DDR2 SDRAM的數(shù)據(jù)存儲的方法,充分利用單次讀寫過程中的空閑時鐘,提高了數(shù)據(jù)處理效率,降低了DDR2 SDRAM的設(shè)計(jì)難度及產(chǎn)生問題的可能性?!N提高SDRAM數(shù)據(jù)傳輸效率的方法,應(yīng)用于采用現(xiàn)場可編程陣列FPGA控制雙倍速率同步動態(tài)隨機(jī)存儲器DDR2 SDRAM的讀寫操作,包括步驟如下步驟I、選定將要采用的SDRAM芯片,根據(jù)芯片參數(shù),確定完成單個突發(fā)長度讀或?qū)懖僮髅钚枰淖钚r鐘數(shù)目,定義為tl ;步驟2、根據(jù)芯片單個突發(fā)長度對應(yīng)的時鐘數(shù)目,定義為t2 ;步驟3、確定總周期,如果tl的值大于t2與SDRAM芯片存儲庫數(shù)目的乘積,那么總周期是tl,否則總周期是t2與存儲庫數(shù)目的乘積; 步驟4、根據(jù)總周期數(shù),編排控制命令表,從第一個時鐘開始,逐個編排每個存儲庫的命令,使存儲庫之間相同的命令相差t2個時鐘數(shù)目,使所有的命令都控制在總時鐘周期內(nèi),超過總時鐘周期范圍的,就返回到控制命令表的前面,向后逐個找空閑的時鐘周期,如果當(dāng)前編排的命令和已經(jīng)安排的存儲庫的命令位置沖突,將已安排的存儲庫的命令向后挪動一個時鐘位置;步驟5、按照控制命令表控制SDRAM讀寫。進(jìn)一步地,所述提高SDRAM數(shù)據(jù)傳輸效率的方法,還包括控制命令表編排完后,進(jìn)行微調(diào),以配合FPGA的時序關(guān)鍵路徑要求。所述微調(diào)是根據(jù)FPGA電路設(shè)計(jì)確定每個命令占用的時鐘數(shù)目,對于某個命令,當(dāng)電路一個時鐘內(nèi)不能提供運(yùn)算結(jié)果,那么就再加一個時鐘的時間處理,把整體的控制命令表處理周期增加一個時鐘。進(jìn)一步地,所述步驟3包括步驟步驟3. I、首先確定庫存儲庫O的命令表,第一個時鐘位置放置激活命令,然后向后偏移SDRAM芯片參數(shù)允許的激活命令與讀/寫命令之間最小時鐘數(shù)目,放置讀或?qū)懨?,接著繼續(xù)向后偏移SDRAM芯片參數(shù)允許的讀或?qū)懙疥P(guān)閉的時間,放置關(guān)閉命令;步驟3. 2、在控制命令表內(nèi)增加存儲庫I的命令。在存儲庫O的激活命令向后偏移t2時鐘周期,放置存儲庫I的激活命令,依次類推,在存儲庫O的讀或?qū)懨钕蚝笃苩2時鐘周期放置存儲庫I的讀或?qū)懨睿詈蠓胖藐P(guān)閉命令;步驟3. 3、依次類推,確定所有存儲庫的命令編排,原則上要求所有的命令都控制在總時鐘周期內(nèi),超過總時鐘周期范圍的,就返回到控制命令表的前面,向后逐個找空閑的時鐘周期,如果當(dāng)前編排的命令和已經(jīng)安排的存儲庫的命令位置沖突,將已安排的存儲庫的命令向后挪動一個時鐘位置。其中,所述當(dāng)前編排的命令和已經(jīng)安排的存儲庫的命令位置沖突時,如果tl的值大于t2與存儲庫數(shù)目的乘積,將已安排的存儲庫的命令向后挪動一個時鐘位置,相應(yīng)的總周期數(shù)增加一個時鐘周期;如果tl的值小于t2與存儲庫數(shù)目的乘積,將已安排的存儲庫的命令向后挪動,總周期數(shù)不變,但挪動的數(shù)目不能超過總周期數(shù)與tl的差。、
其中,所述11為激活命令時間,讀或?qū)懙疥P(guān)閉時間,關(guān)閉時間的和。其中,所述SDRAM芯片參數(shù)允許的激活命令與讀/寫命令之間最小時鐘數(shù)目為tRCD與AL的差,其中tRCD為行尋址到列尋址的延遲,AL為附加反應(yīng)時間。其中,所述SDRAM芯片參數(shù)允許的讀或?qū)懙疥P(guān)閉的時間具體是指實(shí)際的讀或?qū)懙疥P(guān)閉時間與芯片參數(shù)tRAS兩者間的大值,所述tRAS是芯片激活至關(guān)閉時間。本發(fā)明的有益效果是FPGA對DDR2 SDRAM的數(shù)據(jù)處理命令根據(jù)時鐘統(tǒng)ー編排,確定每個時鐘對應(yīng)的命令,編排的策略是首先找到讀或?qū)懼芷诘淖疃虝r間,時間越短,效率越高,最后整個命令表的整個時間周期,接近DDR2 SDRAM允許的最短時間,保證了數(shù)據(jù)處理效率。命令表把命令有規(guī)律的流程化,簡化了設(shè)計(jì)組合,減少了產(chǎn)生問題的可能性。同吋,配合FPGA的時序關(guān)鍵路徑要求,允許微調(diào)命令表,増加了應(yīng)用的靈活性。排除DDR2SDRAM周期性的自刷新影響,單純的DDR2SDRAM的4個bank循環(huán)讀效率可以達(dá)到100%,單純的DDR2 SDRAM的4個bank循環(huán)寫效率可以達(dá)到80%。
圖I為本發(fā)明提高SDRAM數(shù)據(jù)傳輸效率的方法流程圖;圖2為根據(jù)本發(fā)明方法確立的具體應(yīng)用的讀命令表;圖3為根據(jù)本發(fā)明方法確立的具體應(yīng)用的寫命令表。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明技術(shù)方案做進(jìn)ー步詳細(xì)說明,以下實(shí)施例不構(gòu)成對本發(fā)明的限定。本發(fā)明涉及FPGA來控制DDR2 SDRAM的具體應(yīng)用方法,在本實(shí)施例中具體應(yīng)用的DDR2 SDRAM芯片規(guī)格及配置如下Speed Grade (速度等級)37E ;存儲庫Bank數(shù)目4;CAS latency (讀命令到數(shù)據(jù)輸出的時間對應(yīng)的時鐘數(shù)目,簡稱CL) :CL=4 ;Posted CAS additive latency (附加反應(yīng)時間,簡稱 AL) :AL=3 ;Burst Length (每次讀或?qū)懨顚?yīng)的能夠訪問的最大的DDR2SDRAM列數(shù)目,簡稱突發(fā)長度BL) BL=8 ;行尋■址到列尋■址的延遲tRCD (RAS to CAS Delay) : 15ns ;讀命令和關(guān)閉命令之間的時間間隔tRTP(Read to Precharge) :7.5ns;激活至關(guān)閉時間tRAS (Active to Precharge Delay) :40ns ;關(guān)閉tRP(RAS Precharge Time) 15ns ; FPGA和DDR2 SDRAM時鐘工作頻率可以達(dá)到250MHZ,時鐘周期時間tCK為4ns。每個DDR2系列的芯片都會有規(guī)定的性能參數(shù),以上述的37E系列芯片為例,它的tRCD(ns)規(guī)定是15ns,也就是說同一 bank,進(jìn)行active命令后,最少15ns后才能發(fā)起讀寫命令,如果我們的FPGA的工作頻率是250MHZ,每個時鐘周期是4ns,那么最少要4個時鐘(4X4=16ns>15ns),才可以發(fā)起讀或者寫命令。為了體現(xiàn)靈活性,DDR2芯片的讀寫命令可以在tRCD (ns)的時間還沒有到的時候發(fā)送,這就需要在DDR2芯片初始化的時候,設(shè)置提前具體幾個時鐘數(shù)目,這個 時鐘數(shù)目值稱為AL。本實(shí)施例中采用的AL值設(shè)置為3,也就是說,本來需要4個時鐘后,才可以發(fā)送讀寫命令,現(xiàn)在可以在I個時鐘后發(fā)送讀寫命令。也就是說本實(shí)施例選用的DDR2 SDRAM芯片參數(shù)允許的激活命令與讀/寫命令之間最小時鐘數(shù)目為I。總之芯片參數(shù)允許的最小時鐘數(shù)目取決于選定的DDR2芯片,和DDR2初始化配置的AL,不過一旦時鐘和DDR2芯片確定后,同時DDR2初始化完成后,這個芯片參數(shù)允許的最小時鐘數(shù)目就固定了。本實(shí)施例設(shè)計(jì)為I個時鐘,也就是active后就可以直接進(jìn)行讀寫命令。本發(fā)明用FPGA控制DDR2 SDRAM提高數(shù)據(jù)傳輸效率的方法流程如圖I所示,包括步驟步驟101、選定將要采用的SDRAM芯片,根據(jù)芯片參數(shù),確定單次完成突發(fā)長度讀或?qū)懖僮髅钚枰淖钚r鐘數(shù)目,定義為tl。步驟102、根據(jù)芯片單個突發(fā)長度對應(yīng)的時鐘數(shù)目,定義為t2。步驟103、確定總周期,如果tl的值大于t2和bank數(shù)目的乘積,即tl>(t2*bank個數(shù)),那么總周期是tl,如果tl的值大于t2和bank數(shù)目的乘積,即tl> (t2*bank個數(shù)),那么總周期是t2*bank個數(shù)。步驟104、初步編排控制命令表,表里面每一個位置占用一個時鐘周期,首先確定bankO的命令表。第一個時鐘位置放置active命令,然后向后偏移DDR2 SDRAM芯片參數(shù)允許的激活命令與讀/寫命令之間最小時鐘數(shù)目,放置read或write命令。接著繼續(xù)向后偏移DDR2 SDRAM芯片參數(shù)允許的讀/寫至關(guān)閉最小時鐘數(shù)目,放置precharge命令。在控制命令表內(nèi)增加bankl的命令。在bankO的active命令向后偏移t2時鐘周期,放置bankl的active命令。依次類推,在bankO的read或write命令向后偏移t2時鐘周期放置bankl的read或write命令,最后放置precharge命令。依次類推,確定所有bank的命令編排。原則上要求所有的命令都控制在總時鐘周期內(nèi)。超過總時鐘周期范圍的,就返回到控制命令表的前面,向后逐個找空閑的時鐘周期。另外,如果當(dāng)前編排的命令和已經(jīng)安排的bank的命令位置沖突,將已經(jīng)安排的bank的命令向后挪動一個時鐘位置。這樣總周期會增加I個時鐘。如果tl的值大于t2和bank數(shù)目的乘積,即tl>(t2*bank個數(shù)),向后挪動一個時鐘位置會使總周期數(shù)增加一個時鐘周期,如果tl的值小于t2和bank數(shù)目的乘積,即tl〈 (t2*bank個數(shù)),編排首個bank時,最后的precharge命令可以向后挪動,而不影響總周期數(shù),但挪動的數(shù)目不能超過(t2*bank個數(shù))-tl。步驟105、FPGA按照控制命令表控制SDRAM讀寫,實(shí)現(xiàn)高效率的數(shù)據(jù)傳輸。具體地,讀控制命令表編排如圖2所示。一次完整的命令包括激活(active),讀/ 寫(read 或 write),關(guān)閉(precharge)。首先根據(jù) DDR2 SDRAM 參數(shù),確定 DDR2 SDRAM 的read命令的最小周期,按照下述公式tl=active+max(tRAS, (AL+BL/2+max(tRTP or 2CK) _2CK))+tRP其中CK為時鐘周期,計(jì)算結(jié)果為15個時鐘周期,即tl等于15 ;本實(shí)施例BurstLength是8,需要4個時鐘,t2為4。
由于4個庫的單個突發(fā)長度的讀寫周期為16,即t2*4>tl,所以確定總周期為16個時鐘。首先確定bankO的命令表。第一個時鐘放置bankO的active命令,第二個時鐘放read命令,然后選擇max (tRAS, (AL+BL/2+max (tRTP or 2CK) - 2CK)放置關(guān)閉命令,因?yàn)閠RAS為10,所以precharge命令放到第^ 個時鐘;然后確定bankl的命令表。第五個時鐘放置bankl的active命令,第六個時鐘放read命令,precharge命令放到第十五個時鐘;然后確定bank2的命令表。第九個時鐘放置bank2的active命令,第十個時鐘放read命令,第十個時鐘放bankl的read命令,第三個時鐘放bank2的precharge命令。
依次類推,確定bank3的命令表。具體地,寫控制命令表編排如圖3所示,對于寫write命令的最小周期,按照下述公式tl=l+max (tRAS, (AL+CL+BL/2+tffR) +tRP其中,tWR為寫4個時鐘,計(jì)算出tl為20。由于tl=20> (t2*4)=16,因此確定寫控制命令表總周期是20。首先確定bankO的命令表。第一個時鐘位置放置active命令。向后偏移DDR2SDRAM芯片參數(shù)允許的激活命令與讀/寫命令之間最小時鐘數(shù)目計(jì)算是I個時鐘周期,在第二個時鐘,放置write命令。后偏移DDR2SDRAM芯片參數(shù)允許的寫至關(guān)閉最小時鐘數(shù)目,根據(jù)max (tRAS, (AL+CL+BL/2+tffR),是15個時鐘周期,所以在第十六個時鐘放置precharge命令。這樣,bankO的命令編寫完畢。繼續(xù)確定bankl的命令表,在bankO的active命令向后偏移t2時鐘周期,t2是4個時鐘周期,因此,從第一個時鐘向后移動4個時鐘周期,在第五個時鐘,放置active命令,同樣,write命令和precharge命令都向后移動4個時鐘周期,bankO的write命令和precharge命令在第二個和第十六個時鐘,相應(yīng)的bankl的write命令和precharge命令,放置在第六個和第二十個。繼續(xù)確定bank2的命令表,和bankl的命令表類似。這里的不同是在放置bank2的precharge命令時,需要放到第二十四個時鐘,超過了總周期tl,根據(jù)前面的規(guī)則,超過tl范圍的,就返回到控制命令表的前面,向后逐個找空閑的時鐘周期,這樣就可以從命令表的位置逐步查找,確定第四個時鐘放置bank2的precharge命令。繼續(xù)確定bank3的命令表,和bank2的命令表類似。通常在具體電路設(shè)計(jì)中,第一個時鐘運(yùn)算的判決結(jié)果確定好以后,第二個時鐘開始時必須要拿到第一個時鐘處理的結(jié)果,才能進(jìn)行判決,依次類推,每ー時刻的電路必須拿到上ー時鐘的運(yùn)算結(jié)果。如果要求時鐘頻率比較高,有些電路可能不能及時提供結(jié)果,就可以做ー些優(yōu)化,當(dāng)電路ー個時鐘內(nèi)不能提供運(yùn)算結(jié)果,那么就再加ー個時鐘的時間處理,這樣,該電路需要兩個時鐘來處理原來一個時鐘處理的事情,這樣就減小了設(shè)計(jì)的壓力。當(dāng)然,這樣做會把整體的處理周期増加一個時鐘,效率也相應(yīng)降低些。為了提高效率,本發(fā)明的目標(biāo)是在20個時鐘內(nèi)把上述的命令完成,如果實(shí)現(xiàn)有困難,就把總目標(biāo)放寬,21,22,23個等,比較差的情況,是40個時鐘完成,這個時候效率降低了一半,當(dāng)然,設(shè)計(jì)難度就降低很多。
排除DDR2 SDRAM周期性的自刷新影響,單純的DDR2 SDRAM的4個bank循環(huán)讀效率可以達(dá)到100%。讀命令周期表建立完成后,寫命令周期表建立方法類似。單純的DDR2SDRAM的4個bank循環(huán)寫效率可以達(dá)到80%。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的一般技術(shù)人員來說,本發(fā)明還可以有各種更改和變化。在不脫離本發(fā)明原 理的前提下,所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種提高SDRAM數(shù)據(jù)傳輸效率的方法,應(yīng)用于采用現(xiàn)場可編程陣列FPGA控制雙倍速率同步動態(tài)隨機(jī)存儲器DDR2 SDRAM的讀寫操作,其特征在于,包括步驟如下 步驟I、選定將要采用的SDRAM芯片,根據(jù)芯片參數(shù),確定完成單個突發(fā)長度讀或?qū)懖僮髅钚枰淖钚r鐘數(shù)目,定義為tl ; 步驟2、根據(jù)芯片單個突發(fā)長度對應(yīng)的時鐘數(shù)目,定義為t2 ; 步驟3、確定總周期,如果tl的值大于t2與SDRAM芯片存儲庫數(shù)目的乘積,那么總周期是tl,否則總周期是t2與存儲庫數(shù)目的乘積; 步驟4、根據(jù)總周期數(shù),編排控制命令表,從第一個時鐘開始,逐個編排每個存儲庫的命令,使存儲庫之間相同的命令相差t2個時鐘數(shù)目,使所有的命令都控制在總時鐘周期內(nèi),超過總時鐘周期范圍的,就返回到控制命令表的前面,向后逐個找空閑的時鐘周期,如果當(dāng)前編排的命令和已經(jīng)安排的存儲庫的命令位置沖突,將已安排的存儲庫的命令向后挪動一個時鐘位置; 步驟5、按照控制命令表控制SDRAM讀寫。
2.根據(jù)權(quán)利要求I所述的提高SDRAM數(shù)據(jù)傳輸效率的方法,其特征在于,所述提高SDRAM數(shù)據(jù)傳輸效率的方法,還包括 控制命令表編排完后,進(jìn)行微調(diào),以配合FPGA的時序關(guān)鍵路徑要求。
3.根據(jù)權(quán)利要求2所述的提高SDRAM數(shù)據(jù)傳輸效率的方法,其特征在于,所述微調(diào)是根據(jù)FPGA電路設(shè)計(jì)確定每個命令占用的時鐘數(shù)目,對于某個命令,當(dāng)電路一個時鐘內(nèi)不能提供運(yùn)算結(jié)果,那么就再加一個時鐘的時間處理,把整體的控制命令表處理周期增加一個時鐘。
4.根據(jù)權(quán)利要求I所述的提高SDRAM數(shù)據(jù)傳輸效率的方法,其特征在于,所述步驟3包括步驟 步驟3. I、首先確定庫存儲庫O的命令表,第一個時鐘位置放置激活命令,然后向后偏移SDRAM芯片參數(shù)允許的激活命令與讀/寫命令之間最小時鐘數(shù)目,放置讀或?qū)懨?,接著繼續(xù)向后偏移SDRAM芯片參數(shù)允許的讀或?qū)懙疥P(guān)閉的時間,放置關(guān)閉命令; 步驟3. 2、在控制命令表內(nèi)增加存儲庫I的命令,在存儲庫O的激活命令向后偏移t2時鐘周期,放置存儲庫I的激活命令,依次類推,在存儲庫O的讀或?qū)懨钕蚝笃苩2時鐘周期放置存儲庫I的讀或?qū)懨睿詈蠓胖藐P(guān)閉命令; 步驟3. 3、依次類推,確定所有存儲庫的命令編排,原則上要求所有的命令都控制在總時鐘周期內(nèi),超過總時鐘周期范圍的,就返回到控制命令表的前面,向后逐個找空閑的時鐘周期,如果當(dāng)前編排的命令和已經(jīng)安排的存儲庫的命令位置沖突,將已安排的存儲庫的命令向后挪動一個時鐘位置。
5.根據(jù)權(quán)利要求I或4所述的提高SDRAM數(shù)據(jù)傳輸效率的方法,其特征在于,所述當(dāng)前編排的命令和已經(jīng)安排的存儲庫的命令位置沖突時,如果tl的值大于t2與存儲庫數(shù)目的乘積,將已安排的存儲庫的命令向后挪動一個時鐘位置,相應(yīng)的總周期數(shù)增加一個時鐘周期;如果tl的值小于t2與存儲庫數(shù)目的乘積,將已安排的存儲庫的命令向后挪動,總周期數(shù)不變,但挪動的數(shù)目不能超過總周期數(shù)與tl的差。
6.根據(jù)權(quán)利要求I所述的提高SDRAM數(shù)據(jù)傳輸效率的方法,其特征在于,所述tl為激活命令時間,讀或?qū)懙疥P(guān)閉時間,關(guān)閉時間的和。
7.根據(jù)權(quán)利要求4所述的提高SDRAM數(shù)據(jù)傳輸效率的方法,其特征在于,所述SDRAM芯片參數(shù)允許的激活命令與讀/寫命令之間最小時鐘數(shù)目為tRCD與AL的差,其中tRCD為行尋址到列尋址的延遲,AL為附加反應(yīng)時間。
8.根據(jù)權(quán)利要求4所述的提高SDRAM數(shù)據(jù)傳輸效率的方法,其特征在于,所述SDRAM芯片參數(shù)允許的讀或?qū)懙疥P(guān)閉的時間具體是指實(shí)際的讀或?qū)懙疥P(guān)閉時間與芯片參數(shù)tRAS兩者間的大值,所述tRAS是芯片激活至關(guān)閉時間。
全文摘要
本發(fā)明公開了一種提高SDRAM數(shù)據(jù)傳輸效率的方法,應(yīng)用于采用現(xiàn)場可編程陣列FPGA控制雙倍速率同步動態(tài)隨機(jī)存儲器DDR2SDRAM的讀寫操作,首先選定采用的SDRAM芯片,確定讀或?qū)懨钪芷?,然后依次編排命令,?shí)現(xiàn)命令周期內(nèi)時序得到最高的利用,最后由FPGA控制進(jìn)行數(shù)據(jù)的高速傳輸。采用本方法提高了數(shù)據(jù)處理效率,降低了DDR2SDRAM的設(shè)計(jì)難度及產(chǎn)生問題的可能性。
文檔編號G06F12/02GK102708059SQ201210144990
公開日2012年10月3日 申請日期2012年5月10日 優(yōu)先權(quán)日2012年5月10日
發(fā)明者周其仲, 張俊, 梁凱平, 王文華 申請人:Ut斯達(dá)康通訊有限公司