两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

利用動態(tài)隨機存取存儲器寫緩沖器的存儲器控制器的制作方法

文檔序號:6773887閱讀:150來源:國知局
專利名稱:利用動態(tài)隨機存取存儲器寫緩沖器的存儲器控制器的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及動態(tài)隨機存取存儲器(DRAM)寫緩沖器,尤其涉及利用DRAM寫緩沖器的存儲器控制器。
背景技術(shù)
在當(dāng)前的DRAM設(shè)計中,DRAM經(jīng)常采用單一端口來驅(qū)動寫入數(shù)據(jù)和檢測(sense)讀出數(shù)據(jù)。使用雙向總線,并且由于這兩個不同的操作采用該資源,經(jīng)常在接收設(shè)備中出現(xiàn)沖突。因此,由于這種沖突,延遲將導(dǎo)致寫到讀的倒轉(zhuǎn)(turnaround)。于是每次延遲將共同地造成通常的存儲器的性能下降。
為了防止(combat)與由寫到讀的倒轉(zhuǎn)導(dǎo)致的資源沖突相關(guān)的延遲,來自加利福尼亞州Los Altos市El Camino Real街,郵編94022的Rambus有限公司的極速數(shù)據(jù)速率(XDRTM)DRAM能夠采用寫緩沖器(WB)。WB允許XDRTMDRAM(XDRAM)以及一些其它DRAM在緩沖器中保留一個或多個不實際寫入XDRAM內(nèi)核的高速緩沖線。高速緩沖線可以是128個字節(jié)的,但是取決于實現(xiàn)也可以更多或更少。高速緩沖線存儲在WB之中,直到被指示寫入XDRAM內(nèi)核。載入WB的動作(act)叫做預(yù)載入,而將數(shù)據(jù)提交給XDRAM內(nèi)核稱作寫入。寫入命令預(yù)載入數(shù)據(jù)用于一些未來的寫入,而在同時將時間最久的WB數(shù)據(jù)寫入指定的地址。
然而,通過存儲器控制器維護WB的結(jié)算(accounting)是困難的并且需要附加的硬件。使得事情更復(fù)雜的是,WB的數(shù)量和層數(shù)(depth)在結(jié)構(gòu)上是變動的。因此,需要一種用于通過在WB中存儲的數(shù)據(jù)的存儲器控制器來維護結(jié)算的方法和/或裝置,所述存儲器控制器具有減量的著眼于至少一些與傳統(tǒng)方法和/或裝置相關(guān)的問題的附加硬件。

發(fā)明內(nèi)容
本發(fā)明提供一種用于在由多個DRAM構(gòu)成的存儲器系統(tǒng)中利用動態(tài)隨機存取存儲器(DRAM)寫緩沖器的裝置、方法和計算機程序。隨著數(shù)據(jù)被寫入寫緩沖器,在存儲器控制器中產(chǎn)生一個列表。該列表指示在DRAM WB中哪些高速緩沖線在待命。一旦被產(chǎn)生,該列表就被存儲在存儲器控制器中用于未來的使用,并且能夠被更新。


為了更全面地理解本發(fā)明及其優(yōu)點,現(xiàn)在結(jié)合所述附圖參照下列進行說明,其中圖1是描繪XDRTM存儲器系統(tǒng)的方框圖;圖2是描繪簡化的XDRAM的概念方框圖;圖3是描述存儲器控制器對XDRAM WB的利用的流程圖;圖4A和4B是描繪讀和寫隊列的方框圖;圖5是描繪向要執(zhí)行的命令列表添加新條目的操作的流程圖;和圖6是描繪執(zhí)行來自讀和寫隊列的存儲器命令的流程圖。
具體實施例方式
在下面的討論中,很多特定的細節(jié)被展開用來提供對于本發(fā)明的全面理解。然而,本領(lǐng)域的技術(shù)人員將能理解,本發(fā)明可以在沒有這種特定細節(jié)的情況下實施。在其它的例子中,公知部件以示意性或方框圖形式示出以便防止不必要的細節(jié)混淆本發(fā)明。而且,在很大程度上,有關(guān)網(wǎng)絡(luò)通信、電磁信令技術(shù)等有關(guān)的細節(jié)不被認為是獲得對于本發(fā)明的全面理解所需的,而是被視為相關(guān)領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)理解的。
還應(yīng)當(dāng)注意到,除非另有指示,在此說明的全部功能可以以硬件、軟件或者兩者的組合形式來執(zhí)行。然而,在優(yōu)選實施例中,所述功能是由諸如計算機或電子數(shù)據(jù)處理器的處理器根據(jù)諸如計算機程序代碼、軟件、和/或被編碼用來執(zhí)行這種功能的集成電路的代碼來執(zhí)行的,除非另有指示。
參照附圖1,附圖標(biāo)記100通常標(biāo)明(designate)一個XDRTM存儲器系統(tǒng)。系統(tǒng)100包括芯片102和XDRAM 104。XDRAM 104包括存儲器條(banks)110、WB 122和高速輸入/輸出(I/O)(未示出)。
通常,同步DRAM(SDRAM)執(zhí)行檢測、預(yù)充電等以便載入和存儲數(shù)據(jù)。諸如XDRAM 104的XDRAM也采用對于各種類型的SDRAM來說是公用的許多相同操作和特征。然而,在XDRAM和其它SDRAM之間存在一些顯著的差別。例如,XDRAM采用差分信令電平,在其中在邏輯高和邏輯低之間僅僅有200mV的差別,以提供低功耗和高的切換速度。XDRAM還采用八進制數(shù)據(jù)率來允許在一個時鐘周期中的8位數(shù)據(jù)傳輸;因此,用于400MHz時鐘的數(shù)據(jù)傳輸將是3.2Gbps。于是,需要附加的控制特征來精確操作和控制XDRAM。
為了控制數(shù)據(jù)、地址和發(fā)送到XDRAM的命令,芯片102采用多個芯上(on-chip)部件。具體來說,芯片102包括存儲器控制器106和XDRTMIO單元(XIO)108。命令是通過內(nèi)部命令總線112從存儲器控制器106通信傳輸給XIO 108的。內(nèi)部命令總線112是單向的,允許從存儲器控制器106傳達命令和地址。此外,通過一對內(nèi)部數(shù)據(jù)總線114從存儲器控制器106和XIO 108來傳達數(shù)據(jù)。內(nèi)部總線數(shù)據(jù)總線114是單向的并且允許在存儲操作期間數(shù)據(jù)被傳輸?shù)絏IO 108,并允許在載入操作期間數(shù)據(jù)被傳輸回存儲器控制器106。
存儲器控制器106經(jīng)由XIO 108與WB 122來進行通信以預(yù)載入數(shù)據(jù)。換句話說,數(shù)據(jù)能夠不經(jīng)過寫入XDRAM 104內(nèi)核而被預(yù)載入WB 122。然而,對WB 122中存儲的數(shù)據(jù)的結(jié)算的維護是通過利用結(jié)合在存儲器控制器106中的高速緩沖線列表124來實現(xiàn)的。
基于在存儲器控制器106和XIO 108之間傳送的信息,XDRAM 104能夠被利用。控制數(shù)據(jù)通過發(fā)送命令和地址的外部、單向控制總線116從XIO108傳遞到XDRAM 104。數(shù)據(jù)通過外部、雙向數(shù)據(jù)總線118在XIO 108和XDRAM 104之間傳送。
WB 122的結(jié)構(gòu)使數(shù)據(jù)能夠在其中被排列成隊列。參照附圖2,附圖標(biāo)記200通常標(biāo)明簡化的XDRAM。XDRAM 200包括WB 202、存儲器條0(bank0)204和存儲器條1(bank1)206。用于說明的目的這兩個存儲器條在XDRAM200中被描述;然而,能夠有更多的存儲器條。通常,具有4到16個存儲器條。
來自XIO的數(shù)據(jù),例如圖1的XIO 108通過數(shù)據(jù)引腳208來傳送。對于寫操作,一旦數(shù)據(jù)被傳遞到數(shù)據(jù)引腳208,WB 202通過通信信道210將數(shù)據(jù)中繼到存儲器條0204或是存儲器條1206。對于讀操作,存儲器條204和206能夠?qū)?shù)據(jù)輸出到數(shù)據(jù)引腳208。通信信道212和214用于在讀出時恢復(fù)(restoring)DRAM單元的內(nèi)容,在寫入時提供背景數(shù)據(jù)(通常是剩余的行),或用于重新刷新整個行。
XDRAM 200通過經(jīng)由數(shù)據(jù)引腳208發(fā)送和接收數(shù)據(jù)而進行操作。寫數(shù)據(jù)被中繼到WB 202。在存儲器控制器(未示出)的控制下,WB 202能夠由其向存儲器條204或是存儲器條206提供寫數(shù)據(jù)。一旦數(shù)據(jù)被指定從XDRAM200的存儲器內(nèi)核讀出,則該數(shù)據(jù)被從存儲器條204或是存儲器條206之一傳送到數(shù)據(jù)引腳208。
然而,由于利用WB 122(或WB 202)的結(jié)果,系統(tǒng)100的整體操作是復(fù)雜的。參照附圖3,附圖標(biāo)記300通常標(biāo)明描述利用XDRAM WB的存儲器控制器的流程圖。
當(dāng)操作開始時,在WB 122(或202)中沒有條目。WB包含待命要寫入內(nèi)核的存儲數(shù)據(jù)。當(dāng)處理命令時,在步驟302執(zhí)行對于是否執(zhí)行寫入或讀出的確定。
當(dāng)要執(zhí)行讀操作時,采取要執(zhí)行讀出的步驟。如果該讀出取決于包括WB122中那些寫入的任何寫入,則停止該讀出。如果該讀出不取決于任何寫入,則在步驟304執(zhí)行關(guān)于寫到讀的倒轉(zhuǎn)是否被滿足的確定。一旦滿足了寫到讀的倒轉(zhuǎn)(如果前一個操作是寫),則在步驟306執(zhí)行讀操作。
如果要執(zhí)行寫操作,則采用不同的步驟。在步驟308確定是否寫到讀的倒轉(zhuǎn)被滿足。該確定比較最后發(fā)布的命令和所期望的命令。此時,取決于寫入的那些讀出使得那些寫入前進到隊列的頂端。隨后,進行步驟310中的WB122是否是滿的的確定。如果WB 122不是滿的,則在步驟312中將該數(shù)據(jù)預(yù)載入WB 122。
在另一方面,如果WB 122是滿的,則分析存儲器條110。在步驟314進行對具有時間最久條目或最頂端條目的存儲器條110是否可用的確定,其中存儲器控制器106等待直到該存儲器條變成可用。一旦可用,則在步驟316,時間最久的WB條目被寫入存儲器條110。當(dāng)寫入頂端條目時,在步驟318對是否具有可用的寫入進行確定。如果具有下一個寫入,則在步驟320,將相關(guān)數(shù)據(jù)載入WB 122。然而,如果不存在下一個寫入,則在步驟322中將虛擬數(shù)據(jù)預(yù)載入WB 122。步驟316、步驟320或者步驟322也被在相同時間執(zhí)行并且由單個寫入來完成。
通過用虛擬條目填充列表124,可以實現(xiàn)幾個目的。在芯片空閑期間,所有的數(shù)據(jù)都可以提交給DRAM內(nèi)核。如果在WB中沒有待命的寫入,則讀出將不取決于它們。而且,當(dāng)芯片空閑時,存儲器條將變成可用,從而能夠進行附加的讀出和寫入。
用于讀出和寫入的操作可能是復(fù)雜的,采用對于相應(yīng)隊列的附加改動。參照附圖4A和4B,附圖標(biāo)記400和450通常分別標(biāo)明駐留在存儲器控制器中的一個讀隊列和一個寫隊列。讀隊列400包括多個條目欄(entry slot)402和表示對寫命令的依賴度的依賴性列表404。寫隊列450包括多個條目欄452、表示對讀命令的依賴度的依賴性列表456以及表示寫命令的優(yōu)先級的優(yōu)先級指示454。
參照附圖5,附圖標(biāo)記500通常標(biāo)明將條目添加到隊列400和450。
當(dāng)將命令呈交(present)給隊列400和450時,在步驟502進行對該命令或輸入是讀命令還是寫命令的確定。如果該命令是讀命令,則在步驟504進行對該新的讀命令是否取決于寫輸入的另一個確定,而這種確定是表現(xiàn)在讀隊列400的寫依賴性列表404中的。對于寫命令的依賴性強制現(xiàn)有的寫命令在新的寫命令之前執(zhí)行;因此,如果存在對寫命令的依賴,則在步驟508,該寫命令被賦予更高的優(yōu)先級用于執(zhí)行,這在寫隊列450的優(yōu)先級指示454中被表示,并且隨后該讀命令在步驟506被排隊列。如果不存在對寫命令的依賴,則該讀命令在步驟506被排隊列。
在新命令不是讀命令而是寫命令的情況下,執(zhí)行其它步驟。首先,在步驟510進行對于該新寫命令是否依賴于讀命令的確定。如果該新寫命令依賴于讀命令,則在步驟514其在寫隊列450的讀依賴性列表456中被標(biāo)記為依賴,并且該寫命令在步驟512被排隊列。如果沒有對于讀命令的依賴,則該新寫入命令在步驟512中被排隊列。
參照附圖6,附圖標(biāo)記600通常標(biāo)明來自隊列400和450的條目的執(zhí)行。
在步驟602,讀隊列的頂端條目或時間最久的條目(命令)被查看。隨后在步驟604進行對于是否該讀命令取決于任何寫入的確定。如果該讀命令不依賴于任何寫入,則該讀命令能夠在步驟606中安全地執(zhí)行。
然而,如果存在依賴性,則采取其它步驟。由于該讀出在隊列的頂端,某些設(shè)備等待該讀出的發(fā)生,并且該讀出應(yīng)當(dāng)被快速執(zhí)行。在步驟608進行對于是否有將要執(zhí)行的寫入的確定。如果沒有下一個將要執(zhí)行的寫入(意味著寫隊列是空的),則該讀出取決于WB條目,從而在步驟615和616,將該WB條目提交給XDRAM內(nèi)核并且預(yù)載入虛擬條目。隨后,在步驟604進行對于是否存在對于寫入的任何依賴的另一個確定。當(dāng)沒有依賴性時,在步驟606發(fā)布該讀出。
在存在將要執(zhí)行的寫入的情況下,則進行對優(yōu)先級的確定。在步驟610,進行對是否存在任何高優(yōu)先級的寫入的判定。在步驟612中逐個執(zhí)行那些高優(yōu)先級的寫入。如果沒有優(yōu)先級寫入,則在步驟614中執(zhí)行其它寫入(如果沒有優(yōu)先級寫入,則讀出取決于現(xiàn)有的WB條目)。
使用依賴步驟允許對于有限資源的適當(dāng)仲裁,并且保證讀出后寫入的操作和寫入后讀取的操作是相隨的。該仲裁能夠隨后有效地對于數(shù)據(jù)如何能夠被移入和移出XDRAM進行分配。因此,XDRAM存儲器系統(tǒng)的總體性能能夠改進。
可以理解本發(fā)明能夠采取很多形式和實施例。因此,在不脫離本發(fā)明的精神和范圍的基礎(chǔ)上可以對前述進行變動。在此概括的能力允許各種編程模型的可能性。本公開不應(yīng)當(dāng)被理解為優(yōu)選特定的編程模型,而是指向能在其上構(gòu)建這些編程模型的下層機制。
通過參考其特定的優(yōu)選實施例這樣說明了本發(fā)明,應(yīng)該注意到對實施例的公開實質(zhì)上僅僅是為了說明的目的而不是為了限制,并且變動、修改、改變和替換的寬度范圍在前述的公開中被預(yù)期,并且,在某些情況下,本發(fā)明的一些特征可以被采用而不需要對于其它特征的相應(yīng)使用。基于對于前述的優(yōu)選實施例的回顧,對于本領(lǐng)域技術(shù)人員來說,很多的變動和修改都被視為是所期望的。因此,對所附權(quán)利要求的解釋應(yīng)該是廣義的并且以和本發(fā)明的范圍一致的方式進行。
權(quán)利要求
1.一種用于實現(xiàn)采用用于由多個動態(tài)隨機存取存儲器(DRAM)構(gòu)成的存儲器系統(tǒng)的至少一個寫緩沖器的系統(tǒng)的方法,所述方法包括產(chǎn)生關(guān)于哪些高速緩沖線在DRAM中待命的列表;和將所述列表存儲在存儲器控制器中。
2.如權(quán)利要求1所述的方法,其中,所述方法還包括確定是否至少一個寫緩沖器是滿的;如果所述至少一個寫緩沖器不是滿的,則預(yù)載入數(shù)據(jù)到所述至少一個寫緩沖器;和更新所述列表。
3.如權(quán)利要求1所述的方法,其中,所述方法還包括確定是否至少一個寫緩沖器是滿的;如果至少一個寫緩沖器是滿的,則將頂端條目寫入多個DRAM中的至少一個DRAM;和更新所述列表。
4.如權(quán)利要求1所述的方法,其中,所述方法還包括將數(shù)據(jù)從所述至少一個寫緩沖器傳送到多個DRAM中的至少一個DRAM;當(dāng)沒有要執(zhí)行的可用寫操作時,使用虛擬條目來填充該列表。
5.一種極度數(shù)據(jù)速率(XDR)存儲器,其包括XDR DRAM,其至少被配置成具有至少一個寫緩沖器;和存儲器控制器,其具有作為被預(yù)載入至少一個寫緩沖器的數(shù)據(jù)的依據(jù)的列表。
6.如權(quán)利要求5所述的XDR存儲器,其中,所述XDR存儲器還包括XDR輸入/輸出模塊(XIO),其至少被配置成通過至少一條總線接收數(shù)據(jù)和命令。
7.如權(quán)利要求5所述的XDR存儲器,其中,所述至少一個寫緩沖器還包括多個存儲器條,用于存儲數(shù)據(jù);和多個通信信道,其使得數(shù)據(jù)能夠通過至少一個數(shù)據(jù)引腳被傳送到多個存儲器條和從多個存儲器條接收。
8.如權(quán)利要求5所述的XDR存儲器,其中,當(dāng)沒有要執(zhí)行的可用寫操作時,所述存儲器控制器至少被配置成使用虛擬條目來填充所述列表。
9.如權(quán)利要求5所述的XDR存儲器,其中,當(dāng)至少一個寫緩沖器是滿的時,至少一個寫緩沖器被至少配置來將所存儲的數(shù)據(jù)寫入至少DRAM存儲器內(nèi)核。
10.一種計算機程序產(chǎn)品,用于維持用于由多個動態(tài)隨機存取存儲器(DRAM)構(gòu)成的存儲器系統(tǒng)的至少一個寫緩沖器,所述計算機程序產(chǎn)品具有內(nèi)嵌于計算機上的介質(zhì),該計算機程序產(chǎn)品包括用于產(chǎn)生關(guān)于哪些高速緩沖線在DRAM中待命的列表的計算機代碼;和用于在存儲器控制器中存儲所述列表的計算機代碼。
11.如權(quán)利要求10所述的計算機程序產(chǎn)品,其中,所述計算機程序產(chǎn)品還包括用于確定是否至少一個寫緩沖器是滿的的計算機代碼;用于如果至少一個寫緩沖器是不滿的則將數(shù)據(jù)預(yù)載入至少一個寫緩沖器的計算機代碼;和用于更新所述列表的計算機代碼。
12.如權(quán)利要求10所述的計算機程序產(chǎn)品,其中,所述計算機程序產(chǎn)品還包括用于確定是否至少一個寫緩沖器是滿的的計算機代碼;用于如果至少一個寫緩沖器是滿的則將頂端條目寫入多個DRAM中的至少一個DRAM的計算機代碼;和用于更新所述列表的計算機代碼。
13.如權(quán)利要求10所述的計算機程序產(chǎn)品,其中,所述計算機程序產(chǎn)品還包括用于將數(shù)據(jù)從至少一個寫緩沖器傳送到多個DRAM中的至少一個DRAM的計算機代碼;用于當(dāng)沒有將被執(zhí)行的可用寫操作時使用虛擬條目來填充所述列表的計算機代碼。
14.一種用于實現(xiàn)用于由多個DRAM形成的存儲器系統(tǒng)的至少一個寫緩沖器的處理器,所述處理器包括計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括用于產(chǎn)生關(guān)于哪些高速緩沖器線在DRAM中待命的列表的計算機代碼;和用于在存儲器控制器中存儲所述列表的計算機代碼。
15.如權(quán)利要求14所述的計算機程序,其中,所述計算機程序還包括用于確定是否至少一個寫緩沖器是滿的的計算機代碼;用于如果至少一個寫緩沖器是不滿的時將數(shù)據(jù)預(yù)載入至少一個寫緩沖器的計算機代碼;和用于更新所述列表的計算機代碼。
16.如權(quán)利要求14所述的計算機程序,其中,所述計算機程序還包括用于確定是否至少一個寫緩沖器是滿的的計算機代碼;用于如果至少一個寫緩沖器是滿的則將頂端條目寫入多個DRAM中的至少一個DRAM的計算機代碼;和用于更新所述列表的計算機代碼,。
17.如權(quán)利要求14所述的計算機程序,其中,所述計算機程序還包括用于將數(shù)據(jù)從至少一個寫緩沖器傳送到多個DRAM中的至少一個DRAM的計算機代碼;用于當(dāng)沒有將被執(zhí)行的可用寫操作時使用虛擬條目來填充該列表的計算機代碼。
全文摘要
本發(fā)明提供了一種用于解決存儲在動態(tài)隨機存取存儲器(DRAM)寫緩沖器中存儲的數(shù)據(jù)的方法、裝置和計算機程序。很難跟蹤在DRAM寫緩沖器中存儲的數(shù)據(jù)。為了減小這種難度,采用了高速緩沖線列表。該高速緩沖線列表在存儲器控制器中維護,該列表使用數(shù)據(jù)移動進行更新。該列表允許在不喪失一致性的情況下對數(shù)據(jù)的容易維護。
文檔編號G11C11/409GK1801396SQ20051012477
公開日2006年7月12日 申請日期2005年11月15日 優(yōu)先權(quán)日2004年12月2日
發(fā)明者馬克·D·貝洛斯, 肯特·H·哈塞爾霍斯特, 瑞安·A·赫肯多夫, 保羅·A·甘菲爾德, 托爾加·奧茲古納 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
北川| 邯郸市| 翼城县| 策勒县| 望奎县| 平塘县| 顺昌县| 红安县| 颍上县| 嘉鱼县| 武胜县| 射阳县| 本溪市| 莱芜市| 方城县| 宁阳县| 铜陵市| 洛宁县| 松江区| 昌邑市| 大冶市| 昆山市| 丹江口市| 苏尼特右旗| 林州市| 乌拉特后旗| 准格尔旗| 青海省| 中阳县| 秭归县| 丹巴县| 宁蒗| 辽中县| 霞浦县| 广安市| 泗洪县| 江陵县| 白玉县| 金华市| 特克斯县| 阿尔山市|