專利名稱:能處理預充電到預充電限制的方法、系統(tǒng)和存儲器控制器的制作方法
技術領域:
本發(fā)明一般地涉及存儲器控制器。更具體而言,本發(fā)明涉及極限數據速率(XDR)存儲器控制器。再具體而言,本發(fā)明涉及能夠處理預充電到預充電的限制的XDR存儲器控制器。
背景技術:
存儲器控制器典型地被用來調整來自各種請求設備的對存儲器設備的訪問請求。在從請求設備接收到訪問請求及地址和控制信息之后,存儲器控制器把地址信息解碼為體、行和列地址。接著存儲器控制器將地址和控制信號發(fā)送到適當的存儲器設備用于執(zhí)行所請求的存儲器操作,諸如讀或寫操作。對于讀操作,存儲器控制器發(fā)送讀命令,并接著將從存儲器設備檢索到的讀數據返回請求設備。對于寫操作,存儲器控制器將寫數據連同寫命令發(fā)送到存儲器設備。
當執(zhí)行讀和寫操作時,存儲器控制器負責生成適當的控制信號序列,用于訪問存儲器設備內所想要的地址。用于操作的控制信號序列典型地包括激活(activate)(或打開)存儲器設備內的體的行,接著寫入所激活的行中所選擇的列或從其讀出,并最后預充電(或關閉)所激活的行。關聯于寫操作的預充電被稱為寫預充電,而關聯于讀操作的預充電被稱為讀預充電。
為了使帶寬最大化,存儲器控制器典型地以流形式來發(fā)布讀操作和寫操作。根據由加拿大Los Altos的Rambus Incorporated所公布的極限數據速率(XDR)動態(tài)隨機存取存儲器(DRAM)規(guī)范,可每到第四個命令循環(huán)(即,行到行時間=4)時開始新的讀或寫操作。此外,不同體組之間的預充電到預充電時間tPP-D是被發(fā)布給奇數體組的預充電命令和被發(fā)布給偶數體組的預充電命令之間(或者相反情況)的最小時間間隔,且預充電到預充電時間tPP是相同體組之間的最小預充電到預充電時間。在從寫操作流到讀操作流的轉換期間,如果所述操作將進行到不同體組(被稱為先讀后寫),讀預充電命令可能與寫預充電命令相沖突。當寫操作流與讀操作流交叉時,讀預充電命令將易于與寫預充電命令相沖突,這違反了為1的tPP-D,min。本公開提供了一種在連續(xù)發(fā)布預充電命令時能夠防止上述沖突的XDR存儲器控制器。
發(fā)明內容
根據本發(fā)明優(yōu)選實施例,在開始寫操作時,從計時角度出發(fā)跟蹤相應的寫預充電命令的位置。接著做出關于隨后的讀預充電命令是否將與任何正在進行的寫預充電命令相沖突的確定。在確定出隨后的讀預充電命令將與任何正在進行的寫預充電命令相沖突時,此讀預充電命令的發(fā)布將被延遲,以便避免任何沖突;而且,維持在此讀預充電命令和隨后的讀預充電命令之間的特定時間間隔。
在以下的詳細書面說明中,本發(fā)明的所有特征和優(yōu)點將變得明顯。
通過參考以下對例示性實施例的詳細說明,并連同附圖一起閱讀,本發(fā)明本身及其優(yōu)選使用模式、其進一步的目的以及優(yōu)點將被最好地理解,在附圖中圖1是其中結合本發(fā)明優(yōu)選實施例的、包括極限數據速率(XDR)存儲器子系統(tǒng)的信息處理系統(tǒng)的框圖;圖2是根據本發(fā)明優(yōu)選實施例的、用于當發(fā)布連續(xù)預充電命令時處理預充電到預充電的限制的來自圖1的存儲器控制器內的邏輯的框圖;圖3是在從T1到T45的時段內發(fā)布多個預充電命令的示例的時序圖;以及圖4圖示出根據圖3的時序圖在來自圖2的邏輯內加載寫預充電記錄板的示例。
具體實施例方式
現在參考附圖,并具體地參考圖1,描述了其中結合本發(fā)明優(yōu)選實施例的、包括極限數據速率(XDR)存儲器子系統(tǒng)的信息處理系統(tǒng)的框圖。盡管關于圖1的信息處理系統(tǒng)9已例示出特定數量和布置的部件,但應該理解,本發(fā)明的實施例并未被限于具有任何特定數量、類型或布置的組件的系統(tǒng),且因此許多實施例包括了多種多樣的系統(tǒng)類型、體系結構和形式要素(例如,網絡部件或節(jié)點、個人計算機、工作站、服務器、信息設備、個人數字助理等)。所例示的實施例的信息處理系統(tǒng)9包括使用總線或其它通信媒體耦合于存儲器子系統(tǒng)10的處理器11。盡管存儲器子系統(tǒng)10已被描述為具體包括隨機存取存儲器(RAM),但任意的多種系統(tǒng)存儲器類型的存儲部件(包括但不局限于只讀存儲器(ROM)、閃速存儲器和高速緩存)可被用在可替換實施例中。
同樣地,盡管信息處理系統(tǒng)9已被描述為僅包括處理器11和存儲器子系統(tǒng)10,但在本發(fā)明的可替換實施例中,信息處理系統(tǒng)9還可包括耦合于處理器11和存儲器子系統(tǒng)10中的一個或多個以便將一個或多個I/O設備(未示出)通信地耦合于信息處理系統(tǒng)9的輸入/輸出(I/O)接口(未示出)。示例性I/O設備可包括傳統(tǒng)的I/O設備,諸如鍵盤、顯示器、打印機、光標控制裝置(例如跟蹤球、鼠標、輸入板等)、揚聲器和麥克風;存儲設備,諸如固定或“硬”磁媒體存儲設備、光存儲設備(例如CD或DVD ROM)、固態(tài)存儲設備(例如USB、Secure Digital SDTM、CompactFlashTM、MMC等)、可移動磁媒體存儲設備(諸如軟盤和磁帶),或其它存儲設備或媒體;以及有線或無線通信設備或媒體(例如,經由調制解調器或直接網絡接口訪問的通信網絡)。
如圖所示,XDR存儲器子系統(tǒng)10包括XDR存儲器控制器12和XDR輸入/輸出單元15以及兩個DRAM設備14a-14b。輸入/輸出單元15提供存儲器控制器12和XDR通道之間的物理層接口,并可被視為用于本發(fā)明目的的串行器/解串行器。在由加拿大Los Altos的Rambus Incorporated所公布的XIO規(guī)范中可找到關于輸入/輸出單元15的細節(jié),在此將其相關內容引入作為參考。諸如在數據處理或“信息處理”系統(tǒng)中,XDR存儲器子系統(tǒng)10被示出為通過總線連接到處理器11,如本領域技術人員所公知的那樣。DRAM設備14a-14b優(yōu)選地是XDR DRAM設備。在由Rambus7所公布的XDR DRAM規(guī)范中可找到關于XDR DRAM設備14a-14b的細節(jié),在此將其相關內容引入作為參考。
現在參考圖2,描述了根據本發(fā)明優(yōu)選實施例的、用于當發(fā)布連續(xù)預充電命令時處理預充電到預充電的限制的存儲器控制器12內的邏輯的框圖。如圖所示,所述邏輯包括用于基于已開始但尚未完成的寫操作而從計時的角度出發(fā)跟蹤每個正在進行的寫預充電命令的位置的寫預充電記錄板(scoreboard)21。寫預充電記錄板21還用于確定是否隨后的讀預充電命令將與正在進行的寫預充電命令沖突。如果預期到寫預充電命令和隨后的讀預充電命令之間的沖突,則寫預充電記錄板21將適當的延遲時間tRASAdd提供給隨后的讀預充電命令,以延遲讀預充電命令的發(fā)布,以避免寫預充電命令和讀預充電命令之間的沖突。添加延遲時間tRASAdd意味著存儲器控制器12將臨時地增加行斷言時間(row assert time),取決于延遲時間tRASAdd的值,所述行斷言時間將讀預充電命令延遲一個、兩個或三個命令循環(huán)。
如果隨后的讀預充電命令的發(fā)布不然將會導致它與寫預充電命令相沖突,則具有值為1的延遲時間tRASAdd將被添加到所述讀命令。如果在先讀轉換之后的第二讀操作的發(fā)布不然將導致相關聯的第二讀預充電命令與寫預充電命令相沖突,則延遲時間tRASAdd的值變成2。同樣地,如果在先讀轉換之后的第三讀操作的發(fā)布不然將導致相關聯的第三讀預充電命令與寫預充電命令相沖突,則延遲時間tRASAdd的值變成3。
延遲時間tRASAdd的最大值優(yōu)選地是3,因為4或更大的值將開始與之后的寫預充電命令相互作用。如果當tRASAdd延遲時間的值已經為3時第四讀操作試圖開始,則新的讀操作被停止一個命令循環(huán),使得第四讀操作將以不大于3的tRASAdd延遲時間的值而被發(fā)布。在已經分析了寫預充電記錄板21中的最后的寫預充電命令之后,如果下一讀命令將是同一體組,使得滿足用于同一體組的預充電到預充電時間(即tPP),則維持延遲時間tRASAdd的值。否則,在每個經過的命令循環(huán)之后,延遲時間tRASAdd的值被減少1,直到延遲時間tRASAdd的值回到零為止。
圖4中示出了跟蹤機制的內容(寫預充電記錄板)。寫預充電記錄板21的三個最高的比特被與tPPcnt進行比較,且tPPcnt是存儲在寄存器中的三比特的值,其在每個命令循環(huán)遞減(0是最小值)。此比較是需要的,使得讀預充電命令維持tPP和tPP-D。如果一個讀預充電命令移動一個循環(huán),隨后的讀預充電命令也可需要移動一個循環(huán)。此比較確定了用于當前讀預充電命令的延遲時間tRASAdd的值。如果tPPcnt值為0且寫預充電記錄板21的最高比特為“1”,則延遲時間tRASAdd的值將是1。如果tPPcnt值為1且寫預充電記錄板21的兩個最高比特為“01”,則延遲時間tRASAdd的值將是2。如果tPPcnt值為2且寫預充電記錄板21的三個最高比特為“001”,則延遲時間tRASAdd的值將是3。否則,延遲時間tRASAdd的值是tPPcnt。如果tPPcnt大于3,且命令的發(fā)布正在進行,則該命令將被停止。
在開始讀操作之時,tRASAdd延遲時間的值被發(fā)送到體定序器(未示出)和延遲時間維持模塊22。對于本實施例,延遲時間維持模塊22首先將延遲時間tRASAdd減1,并接著加4,并且將和值存儲為tPPcnt值。在每個循環(huán),tPPcnt的值被遞減1,如果存在與寫預充電命令的潛在沖突則從寫預充電記錄板21重新加載,或如果存在正在開始的對同一體組的讀操作則加載當前值+4。對+4的添加維持了到同一體組的tPP間隔。體組選擇模塊23被用來“記住”哪個體組是用于當前讀預充電命令的相對體組。
現在參考圖3,描述了根據本發(fā)明優(yōu)選實施例的、在從T1到T45的時段內發(fā)布多個預充電命令到一組XDR DRAM設備(諸如來自圖1的XDR DRAM設備14a-14b)的示例的時序圖。圖3中示出的XDR命令包流是假定的,并且僅用于例示本發(fā)明的目的。如圖所示,在六邊形內顯示了每個命令包。預充電命令包可包含兩個預充電命令。由w0、w2、w4和w6指示了寫操作命令包,其中0、2、4和6是體號(例如,體0、2、4和6屬于偶數體組)。由r1、r3、r5和r7指示了讀操作命令包,其中1、3、5和7是體號(例如,體1、3、5和7屬于奇數單位組)。
圖3中示出的XDR DRAM命令包包括激活(即ACT)、列寫(即WR)、列讀(即RD)、以及行預充電(即PRE)。此外,行預充電命令包可以動態(tài)偏移量來發(fā)布,該動態(tài)偏移量由+0、+1、+2或+3所指示。取決于動態(tài)偏移量的值,該動態(tài)偏移量使得行預充電命令能夠在比其被發(fā)布時更晚的時間在DRAM內執(zhí)行。用于兩個不同體組和行的行預充電命令可被結合在單個包中,諸如時間T25中的命令包,其意味著r1預充電命令將在兩個循環(huán)內執(zhí)行,而w0預充電命令將在下一循環(huán)中執(zhí)行。
用于執(zhí)行預充電命令的固有時間和實際時間在每個相應命令包(六邊形之外)正下方指示出。用于讀預充電命令的固有時間被包括在矩形框內,其指示在沒有本發(fā)明的情況下讀預充電命令將被固有地執(zhí)行的時間。實際時間位于矩形框的右邊,其指示根據本發(fā)明將執(zhí)行讀預充電命令的時間。例如,用于r1的讀預充電命令[P,r1]將在時間T27處被執(zhí)行(而不是在時間T26處被固有地執(zhí)行)。對于寫操作,未調整預充電命令,所以無需任何框或箭頭來記錄其位置。例如,用于w0的預充電命令[P,w0]將在時間T26處執(zhí)行。
在時間T20處,在寫流之后開始第一讀操作。到此時,存儲器控制器已確定第一讀操作的tRAS將需要被擴大1。在時間T25處,本該在時間T26處被固有地執(zhí)行的用于在時間T20處開始的讀操作r1的讀預充電命令[P,r1]被向前移動一個循環(huán)到時間T27,以便滿足tPP-D=1的需求。在時間T29處,本該在時間T30處被固有地執(zhí)行的用于在時間T24處開始的讀操作r5的讀預充電命令[P,r5]被向前移動兩個循環(huán)到時間T32,以便滿足tPP-D=1和tPP=4二者的計時需求。
在時間T35處,本該在時間T34處被固有地執(zhí)行的用于在時間T28處開始的讀操作r7的讀預充電命令[P,r7]被向前移動三個循環(huán)到時間T37,以便滿足tPP-D=1和tPP=4二者的計時需求。由于tPP,min=4,所以一旦做出了對預充電命令的調整,則隨后到同一組單位的預充電命令必須考慮到該調整。
在時間T40處,本該在時間T40處被固有地執(zhí)行的用于在時間T34處開始的讀操作r3的讀預充電命令[P,r3]被向前移動兩個循環(huán)到時間T42,以便滿足tPP-D=1和tPP=4二者的計時需求。上述預充電命令需要被移動,是因為寫預充電命令[P,w0]、[P,w2]、[P,w4]和[P,w6]在本該執(zhí)行用于相應讀命令的讀預充電命令的同一時間執(zhí)行。
現在參考圖4,例示了根據圖3的時序圖加載寫預充電記錄板21(來自圖2)和tPPcnt寄存器的示例。如圖所示,寫預充電記錄板21具有從比特0到比特19所標出的20比特的位置,盡管也可使用不同數量的比特。圖4中的每行表示寫預充電記錄板21的相同位置中的比特被向左移位(即,從比特19到比特0),使得當要解釋寫預充電記錄板21的時候,寫預充電命令的位置被分析。
寫操作標記了寫預充電命令將執(zhí)行的位置減去讀預充電本該執(zhí)行的時間,如果它本該在此時被發(fā)布的話。對于本實施例,通過在寫預充電記錄板21的比特19處“注入”1來執(zhí)行所述加標記。每次當開始寫操作時,發(fā)生在寫預充電記錄板21的比特19處“注入”1,諸如圖4中的T1、T6、T11和T16。
如前所述,寫預充電記錄板21的三個最高比特(即比特0-2)連同tPPcnt值一同來確定tRASAdd的值。當讀操作開始時a.如果記錄板的比特0到2都是零,則tRASAdd=tPPcntb.如果記錄板的比特0是“1”且tPPcnt=0,則tRASAdd=1c.如果記錄板的比特1是“1”且tPPcnt=1,則tRASAdd=2
d.如果記錄板的比特2是“1”且tPPcnt=2,則tRASAdd=3e.如果tPPcnt為3或更大,則在開始操作之前等待tPPcnt成為2或更小,并且如果情形(a)、(b)、(c)、(d)或(f)適用的話則重新求值f.如果以上皆未滿足,則tRASAdd=tPPcnt例如,在T20處,寫預充電記錄板21的比特0具有“1”,且讀操作已經開始,因此,tRASAdd值成為1。在從T21-T24的每個循環(huán)中,tPPcnt值在每個循環(huán)遞減一,從T21處的4到T24處的1。
在T24處,寫預充電記錄板21的比特1具有“1”,且讀操作已經開始,因此,tRASAdd值成為2。在從T25-T28的每個循環(huán)中,tPPcnt值在每個循環(huán)遞減一,即,從T25處的5到T28處的2。
在T28處,寫預充電記錄板21的比特2具有“1”,且讀操作已經開始,因此,tRASAdd值成為3。在從T29-T33的每個循環(huán)中,tPPcnt值在每個循環(huán)遞減一,即,從T29處的6到T33處的2。
一旦已經計算了tRASAdd的值(0、1、2或3),所述操作及其相關聯的tRASAdd就被傳送到體定序器(未示出)。體定序器使用該值來設定計數器,所述計數器用于在適當時間發(fā)布預充電命令,以及用于向其它單元發(fā)信號通知體組中的體將在比通常情形晚0、1、2或3個循環(huán)后可用。
如已經描述的那樣,本發(fā)明提供了一種能夠當發(fā)布預充電命令時處理預充電到預充電的限制的XDR存儲器控制器。通過提早知道tPP和tPP-D計時需求將不會被違反,存儲器控制器內的體定序器簡單地設定計數器,而不用查找正在運行的且動態(tài)地改變對預充電命令的發(fā)布的所有體定序器。而且,通過了解有效的tRAS將增加多少(即tRASAdd),命令發(fā)布邏輯確切地知道何時向其它單元發(fā)信號通知特定體可用。知道哪些體可用以及何時可用對于優(yōu)化性能和正確的功能是重要的。
盡管已參考優(yōu)選實施例具體示出和描述了本發(fā)明,但本領域技術人員將了解,在此可以做出形式和細節(jié)上的多種改變,而不會背離本發(fā)明的精神和范圍。
權利要求
1.一種用于存儲器控制器當發(fā)布預充電命令時處理預充電到預充電的限制的方法,所述方法包括在開始寫操作時,從計時角度出發(fā)確定用于所述寫操作的寫預充電命令的位置;確定是否將預期到在所述寫預充電命令和隨后的讀預充電命令之間的計時參數違反;以及響應確定出預期到在所述寫預充電命令和隨后的讀預充電命令之間的計時參數違反,延遲執(zhí)行所述隨后的讀預充電命令,以避免可能的計時參數違反。
2.如權利要求1所述的方法,其中所述確定使用寫預充電記錄板。
3.如權利要求1所述的方法,其中所述延遲還包括維持在所述隨后的讀預充電命令和下一讀預充電命令之間的特定時間距離。
4.如權利要求3所述的方法,其中所述延遲是通過將適當的時間延遲tRASAdd值加到有效tRAS計時參數而實現的。
5.如權利要求4所述的方法,其中所述延遲包括增加用于與所述隨后的讀預充電命令相關的讀操作的行斷言時間,其取決于所述時間延遲tRASAdd值將所述隨后的讀預充電命令延遲一、二或三個循環(huán)。
6.如權利要求4所述的方法,其中所述時間延遲tRASAdd值通過比較所述寫預充電記錄板的三個最高比特和當前的tPPcnt值來確定。
7.如權利要求4所述的方法,其中,如果開始讀操作將使隨后的讀預充電命令與寫預充電命令相沖突,則將時間延遲tRASAdd值1添加到隨后的讀預充電命令。
8.如權利要求7所述的方法,其中,如果開始第二讀操作將使得相關聯的第二讀預充電命令與所述寫預充電命令相沖突,則所述時間延遲tRASAdd值變?yōu)?。
9.如權利要求8所述的方法,其中,如果開始第三讀操作將使得相關聯的第三讀預充電命令與所述寫預充電命令相沖突,則所述時間延遲tRASAdd值變?yōu)?。
10.如權利要求1所述的方法,其中所述存儲器控制器是極限數據速率存儲器控制器。
11.一種能夠當發(fā)布預充電命令時處理預充電到預充電的限制的存儲器控制器,所述存儲器控制器包括用于在開始寫操作時從計時角度出發(fā)確定用于所述寫操作的寫預充電命令的位置的裝置;用于確定是否將預期到在所述寫預充電命令和隨后的讀預充電命令之間的計時參數違反的裝置;以及響應于確定出將預期到在所述寫預充電命令和隨后的讀預充電命令之間的計時參數違反,用于延遲發(fā)布所述隨后的讀預充電命令以避免任何可能的計時參數違反的裝置。
12.如權利要求11所述的存儲器控制器,其中所述確定裝置是寫預充電記錄板。
13.如權利要求11所述的存儲器控制器,其中所述延遲裝置還包括用于維持在所述隨后的讀預充電命令和下一讀預充電命令之間的特定時間距離的裝置。
14.如權利要求13所述的存儲器控制器,其中所述延遲裝置包括用于將適當的時間延遲tRASAdd值加到有效的tRAS計時參數的裝置。
15.如權利要求14所述的存儲器控制器,其中所述延遲裝置包括用于增加用于與所述隨后的讀預充電命令相關的讀操作的行斷言時間的裝置,其取決于所述時間延遲tRASAdd值又將所述隨后的讀預充電命令延遲一、二或三個循環(huán)。
16.如權利要求14所述的存儲器控制器,其中所述時間延遲tRASAdd值通過比較所述寫預充電記錄板的三個最高比特和當前的tPPcnt值來確定。
17.如權利要求14所述的存儲器控制器,其中,如果發(fā)布讀命令將使得隨后的讀預充電命令與寫預充電命令相沖突,則將時間延遲tRASAdd值1添加到隨后的讀預充電命令。
18.如權利要求17所述的存儲器控制器,其中,如果發(fā)布第二讀命令將使得相關聯的第二讀預充電命令與所述寫預充電命令相沖突,則所述時間延遲tRASAdd值變?yōu)?。
19.如權利要求18所述的存儲器控制器,其中,如果發(fā)布第三讀命令將使得相關聯的第三讀預充電命令與所述寫預充電命令相沖突,則所述時間延遲tRASAdd值變?yōu)?。
20.如權利要求11所述的存儲器控制器,其中所述存儲器控制器是極限數據速率存儲器控制器。
21.一種能夠當發(fā)布預充電命令時處理預充電到預充電的限制的信息處理系統(tǒng),所述信息處理系統(tǒng)包括處理器,用于經由執(zhí)行多個指令中的一個或更多來處理信息;耦合于所述處理器的存儲器存儲單元,用于存儲所述多個指令;以及耦合于所述存儲器存儲單元的存儲器控制器,用于響應于確定出預期到在前面的寫預充電命令和所述讀預充電命令之間的計時參數違反而延遲發(fā)布讀預充電命令,所述存儲器控制器包括寫預充電記錄板,以在啟動對應于所述前面的寫預充電命令的寫操作時指示從計時的角度出發(fā)所述前面的寫預充電命令的位置,并進一步指示是否預期到在所述前面的寫預充電命令和所述讀預充電命令之間的計時參數違反。
全文摘要
公開了一種能夠處理預充電到預充電的限制的存儲器控制器。在開始寫操作之時,從計時的角度出發(fā)跟蹤相應的寫預充電命令的位置。接著做出關于隨后的讀預充電命令是否將與任何正在進行的寫預充電命令相沖突的確定。在確定出隨后的讀預充電命令將與任何正在進行的寫預充電命令相沖突時,此讀預充電命令的發(fā)布將被延遲,以便避免任何沖突;而且,維持在此讀預充電命令和隨后的讀預充電命令之間的特定時間間隔。
文檔編號G11C7/00GK1975920SQ20061009284
公開日2007年6月6日 申請日期2006年6月16日 優(yōu)先權日2005年11月29日
發(fā)明者馬克·戴維·貝羅斯, 利安·阿貝爾·赫肯道夫, 保羅·艾倫·甘菲爾德 申請人:國際商業(yè)機器公司