專利名稱::存儲(chǔ)器控制方法,存儲(chǔ)裝置以及存儲(chǔ)器控制器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明有關(guān)于存儲(chǔ)裝置,尤其是有關(guān)于同步隨機(jī)存取存儲(chǔ)器(SDRAM)的控制方法、存儲(chǔ)裝置以及存儲(chǔ)器控制器(memorycontrolmethodandapparatuses)。
背景技術(shù):
:圖1a為現(xiàn)有的存儲(chǔ)器控制時(shí)序圖。在SDRAM中,一存儲(chǔ)器控制器從外部接收數(shù)據(jù)存取要求,發(fā)出一對(duì)應(yīng)的命令傳送至儲(chǔ)存該數(shù)據(jù)的存儲(chǔ)裝置,以從一特定地址讀取或?qū)懭霐?shù)據(jù)。一存儲(chǔ)裝置通常包含四個(gè)或八個(gè)存儲(chǔ)庫(kù)(banks)。一存儲(chǔ)庫(kù)由行與列的位數(shù)組所組成。在每一存儲(chǔ)庫(kù)中,同一時(shí)間只能有一列被開啟以供存取。因此,一個(gè)具有八個(gè)存儲(chǔ)庫(kù)的存儲(chǔ)裝置中,至多可以有八個(gè)列同時(shí)被開啟。為了開啟一存儲(chǔ)庫(kù)中的一列,該存儲(chǔ)器控制器發(fā)出一激活(ACTIVE)命令,透過一命令總線傳送至該存儲(chǔ)裝置。該命令總線包含CS/RAS/CAS/WE等線路。而該列的地址透過一地址總線同時(shí)傳送。一個(gè)列的開啟步驟通常需要耗費(fèi)三個(gè)時(shí)鐘脈沖周期。在該列被開啟后,存儲(chǔ)裝置接著發(fā)出讀寫(READ/WRITE)命令以及該數(shù)據(jù)的欄地址,透過該命令總線和地址總線同時(shí)傳送至該存儲(chǔ)裝置,使該數(shù)據(jù)被存取。被存取過的列,會(huì)維持開啟狀態(tài),直接同一存儲(chǔ)庫(kù)中有其它列被要求存取。預(yù)充電(PRECHARGE)命令就是用來將被開啟的列關(guān)閉的,關(guān)閉的過程也需要三個(gè)時(shí)鐘脈沖周期。如圖1a所示,多個(gè)命令透過該命令總線RAS/CAS/WE排依序傳送,而對(duì)應(yīng)的列地址與欄地址則透過地址總線傳送。在時(shí)間點(diǎn)T1上,存儲(chǔ)器控制器傳送一預(yù)充電命令PRE110,使存儲(chǔ)庫(kù)BA0中的第一列關(guān)閉。同一時(shí)間地址總線傳送的信號(hào)是空頭命令(don’tcare)100。接著在時(shí)間點(diǎn)T4時(shí),存儲(chǔ)器控制器傳送一激活命令A(yù)CT112,使存儲(chǔ)庫(kù)BA0中的第二列開啟,同時(shí)第二列地址ROWADR116則透過地址總線傳送。在時(shí)間點(diǎn)T7上,該命令總線和地址總線各別傳送一讀取命令RD114和欄地址COLADR118,以讀取存儲(chǔ)庫(kù)BA0中被開啟列的對(duì)應(yīng)欄。在時(shí)間點(diǎn)T8,另一個(gè)預(yù)充電命令PRE120將存儲(chǔ)庫(kù)BA1中的一第三列關(guān)閉。類似地,在時(shí)間點(diǎn)T11和T14時(shí),存儲(chǔ)器控制器傳送激活命令A(yù)CT122和讀取命令RD124至該存儲(chǔ)庫(kù)BA1以讀取數(shù)據(jù)。統(tǒng)計(jì)下來,該命令總線耗費(fèi)了十四個(gè)時(shí)鐘脈沖周期以傳送六個(gè)命令,其中八個(gè)時(shí)鐘脈沖周期為閑置,總線的使用效率并不佳。圖1b為現(xiàn)有的存儲(chǔ)器命令時(shí)序圖。在交替存取不同存儲(chǔ)庫(kù)的時(shí)候,總線的使用率可以稍微提高。對(duì)存儲(chǔ)庫(kù)BA1的預(yù)充電命令PRE120在時(shí)間點(diǎn)T2發(fā)出,而對(duì)存儲(chǔ)庫(kù)BA2的預(yù)充電命令PRE130則在時(shí)間點(diǎn)T3發(fā)出。同樣的,時(shí)間點(diǎn)T5和T6發(fā)出的是對(duì)存儲(chǔ)庫(kù)BA1和存儲(chǔ)庫(kù)BA2的激活命令A(yù)CT,而時(shí)間點(diǎn)T8和T9發(fā)出的是對(duì)存儲(chǔ)庫(kù)BA1和存儲(chǔ)庫(kù)BA2的讀取命令RD。在此種狀況下,總線在T1到T9之間是完全占滿的狀態(tài)。而在時(shí)間點(diǎn)T10的時(shí)候,存取存儲(chǔ)庫(kù)BA3的動(dòng)作仍然產(chǎn)生了總線閑置的狀況,例如圖1b中的時(shí)間點(diǎn)T11,T12,T14和T15。也就是說,總線最多只能連續(xù)存取三個(gè)存儲(chǔ)庫(kù)(BA0,BA1和BA2)而不發(fā)生閑置。圖2為現(xiàn)有的存儲(chǔ)器控制流程圖。在步驟202中,存儲(chǔ)器控制器接收數(shù)據(jù)存取的要求。在步驟204中,存儲(chǔ)器控制器判斷被要求的數(shù)據(jù)所屬的存儲(chǔ)庫(kù)是否在開啟狀態(tài)。如果不是,則進(jìn)行步驟206,開啟該存儲(chǔ)庫(kù),并執(zhí)行步驟214的讀寫程序。如果是,則進(jìn)行步驟208,判斷該數(shù)據(jù)所屬的列是否在開啟狀態(tài)。如果是,則進(jìn)行步驟214,直接讀寫。如果不是,則跳至步驟210,發(fā)出一預(yù)充電命令PRE將前一列關(guān)閉,再在步驟212中發(fā)出一激活命令A(yù)CT將當(dāng)前欲存取的列開啟。最后在步驟216中完成整個(gè)存儲(chǔ)器控制程序。綜上所述,同一存儲(chǔ)庫(kù)中的一個(gè)列在開啟之前,必須先將前一個(gè)開啟的列關(guān)閉,所以需要耗用兩個(gè)命令來完成這個(gè)動(dòng)作,也就是對(duì)前一列發(fā)出預(yù)充電命令,以及對(duì)新一列發(fā)出激活命令。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種存儲(chǔ)器控制方法,供一存儲(chǔ)器控制器存取一存儲(chǔ)裝置,該存儲(chǔ)裝置包含多個(gè)存儲(chǔ)庫(kù),其中一存儲(chǔ)庫(kù)的一第一列已被開啟以供存取,該存儲(chǔ)器控制方法包含下列步驟。首先,該存儲(chǔ)器控制器接收一要求,欲存取該存儲(chǔ)庫(kù)中的一第二列。接著該存儲(chǔ)器控制器發(fā)出一特定指令至該存儲(chǔ)裝置。最后該存儲(chǔ)裝置根據(jù)該特定指令,關(guān)閉該第一列,并開啟該第二列。該存儲(chǔ)器控制器和該存儲(chǔ)裝置之間,耦接了一命令總線和一地址總線。該特定指令透過該命令總線傳送,而該第二列的地址隨著該特定指令的傳送,同步透過該地址總線傳送。在接收到該特定指令后,該存儲(chǔ)裝置關(guān)閉該第一列,而在該第一列關(guān)閉后的三個(gè)時(shí)鐘脈沖周期后,該存儲(chǔ)裝置開啟該第二列。本發(fā)明的另一目的在于,提供一存儲(chǔ)器控制器,用以控制一存儲(chǔ)裝置,該存儲(chǔ)裝置包含多個(gè)存儲(chǔ)庫(kù),其中一存儲(chǔ)庫(kù)的一第一列已被開啟以供存取,該存儲(chǔ)器控制器包含一地址表,紀(jì)錄每一存儲(chǔ)庫(kù)中所有已開啟的列地址,包含該第一列的地址;一控制單元,當(dāng)接收到一要求,欲存取該存儲(chǔ)庫(kù)中的一第二列時(shí),設(shè)定一特定指令;一命令產(chǎn)生器,在該特定指令被設(shè)定好后,將該特定指令發(fā)送至該存儲(chǔ)裝置;其中該存儲(chǔ)裝置在接收該特定指令后,關(guān)閉該第一列,并開啟該第二列。本發(fā)明的又一目的在于,提供一存儲(chǔ)裝置,其受到一存儲(chǔ)器控制器的控制,該存儲(chǔ)裝置包含多個(gè)存儲(chǔ)庫(kù),其中一存儲(chǔ)庫(kù)的一第一列被開啟以供存取;一命令譯碼器,用以譯碼從該存儲(chǔ)器控制器傳送來的命令信號(hào);其中,當(dāng)出現(xiàn)一要求,欲存取該存儲(chǔ)庫(kù)中的一第二列時(shí),該存儲(chǔ)器控制器發(fā)出一特定指令至該命令譯碼器,而該存儲(chǔ)裝置隨之將該第一列關(guān)閉,并開啟該第二列。圖1a為現(xiàn)有的存儲(chǔ)器控制時(shí)序圖;圖1b為現(xiàn)有的存儲(chǔ)器命令時(shí)序圖;圖2為現(xiàn)有的存儲(chǔ)器控制流程圖;圖3為本發(fā)明實(shí)施例之一的存儲(chǔ)器控制時(shí)序圖;圖4為本發(fā)明實(shí)施例的存儲(chǔ)器控制流程圖;圖5為本發(fā)明實(shí)施例的存儲(chǔ)器系統(tǒng)。主要組件符號(hào)說明100空頭命令110,120,130,140預(yù)充電命令PRE112,122,132,142激活命令A(yù)CT114,124,134,144讀取命令RD116,126,136,146列地址118,128,138,148欄地址302,312,322,332特定指令PRA304,314,324,334讀取命令RD306,316,326,336列地址308,318,328,338欄地址510存儲(chǔ)器控制器520存儲(chǔ)裝置512命令產(chǎn)生器514排程器(scheduler)516頁(yè)框列表(pagetable)522命令譯碼器524存儲(chǔ)庫(kù)526地址截取器528數(shù)據(jù)鏈路埠(datapad)具體實(shí)施方式為讓本發(fā)明的上述和其它目的、特征、和優(yōu)點(diǎn)能更明顯易懂,下文特舉出較佳實(shí)施例,并配合附圖,作詳細(xì)說明如下圖3為本發(fā)明實(shí)施例之一的存儲(chǔ)器控制時(shí)序圖。傳統(tǒng)上需要一個(gè)預(yù)充電命令和一個(gè)激活命令來關(guān)閉存儲(chǔ)庫(kù)中的前一列,開啟新一列。而在本發(fā)明中,提出一種特定指令,可以等效于上述兩個(gè)命令,以此節(jié)省命令總線的占用率。如圖3所示,該特定指令表示為PRA。在時(shí)間點(diǎn)T1,對(duì)存儲(chǔ)庫(kù)BA0發(fā)出的特定指令PRA302夾帶了一列地址ROWADR306,使存儲(chǔ)庫(kù)BA0關(guān)閉前一列后,根據(jù)列地址ROWADR306開啟下一列。在本實(shí)施例中,一特定指令PRA只占用了命令總線一個(gè)時(shí)鐘脈沖周期,而需要等待六個(gè)時(shí)鐘脈沖周期讓存儲(chǔ)裝置完成對(duì)應(yīng)的動(dòng)作。在六個(gè)時(shí)鐘脈沖周期后,也就是時(shí)間點(diǎn)T7,該存儲(chǔ)庫(kù)BA0中的列已經(jīng)開啟就緒,于是讀取命令RD304和欄地址COLADR308進(jìn)入該存儲(chǔ)庫(kù)BA0以對(duì)該開啟的列進(jìn)行讀取程序。在該六個(gè)空閑的時(shí)段中,存儲(chǔ)器控制器可以用來對(duì)其他的存儲(chǔ)庫(kù)進(jìn)行存取。舉例來說,在時(shí)間點(diǎn)T2和T8發(fā)出的特定指令PRA312和讀取命令RD314存取存儲(chǔ)庫(kù)BA1,而在時(shí)間點(diǎn)T3和T9的特定指令PRA322和讀取命令RD324存取存儲(chǔ)庫(kù)BA2,在時(shí)間點(diǎn)T4和T10的特定指令PRA332和讀取命令RD334則是對(duì)存儲(chǔ)庫(kù)BA3進(jìn)行存取。由此,在連續(xù)12個(gè)時(shí)鐘脈沖周期T1到T12之間,最多可以存取六個(gè)存儲(chǔ)庫(kù),相對(duì)于傳統(tǒng)的三個(gè)存儲(chǔ)庫(kù)來得有效率。圖4為本發(fā)明實(shí)施例的存儲(chǔ)器控制流程圖。在步驟402中,存儲(chǔ)器控制器開始接收數(shù)據(jù)存取要求。在步驟404中,存儲(chǔ)器控制器判斷被要求數(shù)據(jù)的存儲(chǔ)庫(kù)是否已開啟。如果不是,則進(jìn)行步驟408,開啟該存儲(chǔ)庫(kù),并在步驟412中執(zhí)行讀寫程序。如果在步驟404中檢測(cè)到存儲(chǔ)庫(kù)已經(jīng)開啟,則進(jìn)行步驟406,判斷欲存取的列是否已經(jīng)開啟。如果是,則直接跳至步驟412進(jìn)行讀寫程序。相對(duì)的如果不是,則跳至步驟410,發(fā)送一特定指令至該存儲(chǔ)裝置,并在等候六個(gè)時(shí)鐘脈沖周期后,等前一列被關(guān)閉了,下一列被開啟了,再執(zhí)行步驟412。最后,步驟414,結(jié)束存儲(chǔ)器控制程序。圖5為本發(fā)明實(shí)施例的存儲(chǔ)器系統(tǒng)。該存儲(chǔ)器系統(tǒng)中包含一存儲(chǔ)器控制器510和一存儲(chǔ)裝置520。該存儲(chǔ)器控制器510包含一命令產(chǎn)生器512,一排程器514和一頁(yè)框列表516。該存儲(chǔ)器控制器510接收一數(shù)據(jù)要求#RQ,欲存取位于一特定地址ADDR的數(shù)據(jù)。隨后該存儲(chǔ)裝置520在存儲(chǔ)器控制器510的控制之下,將對(duì)應(yīng)的數(shù)據(jù)DQ傳出來。該存儲(chǔ)裝置520包含四個(gè)或八個(gè)存儲(chǔ)庫(kù)524,而該存儲(chǔ)器控制器510中的頁(yè)框列表516紀(jì)錄著每個(gè)存儲(chǔ)庫(kù)的狀態(tài),包含每一個(gè)正處于開啟狀態(tài)的列。排程器514根據(jù)頁(yè)框列表516和該數(shù)據(jù)要求#RQ,決定各種命令的發(fā)出順序。命令產(chǎn)生器512接著產(chǎn)生命令并透過命令總線CS/RAS/CAS/WE傳送至存儲(chǔ)裝置520,同時(shí),對(duì)應(yīng)的地址信號(hào)ADDR則透過地址總線傳送。這些命令的種類包含讀取(READ),寫入(WRITE),更新(REFRESH),預(yù)充電(PRECHARGE),激活(ACTIVE),以及本發(fā)明所提出的特定指令PRA。當(dāng)一存儲(chǔ)庫(kù)中被要求的列不同于已開啟的列時(shí),則使用該特定指令來取代預(yù)充電和激活命令。存儲(chǔ)裝置520中也包含了一命令譯碼器522,一地址截取器526和一數(shù)據(jù)鏈路埠528。該命令譯碼器522接收命令產(chǎn)生器512產(chǎn)生的命令,并傳送對(duì)應(yīng)的控制信號(hào)至存儲(chǔ)庫(kù)524。該地址截取器526透過地址總線耦接存儲(chǔ)裝置,用以接收地址信號(hào)ADDR以供存儲(chǔ)庫(kù)524進(jìn)行存取作業(yè)。數(shù)據(jù)鏈路端口528的作用有如存儲(chǔ)庫(kù)524的輸入輸出端口,在地址截取器526發(fā)出的存儲(chǔ)庫(kù)選擇信號(hào)的控制下進(jìn)行數(shù)據(jù)DQ的接收與傳送。命令譯碼器522可以將該特定指令視為等效于傳統(tǒng)的預(yù)充電和激活命令。以此,在接收到該特定指令時(shí),命令譯碼器522先傳送一控制信號(hào)以關(guān)閉存儲(chǔ)庫(kù)中前一次開啟的列。接著在三個(gè)時(shí)鐘脈沖周期后,該命令譯碼器522傳送另一控制信號(hào)以開啟該存儲(chǔ)庫(kù)中新的一列。透過命令譯碼器522的解譯,存儲(chǔ)庫(kù)524中的運(yùn)作程序和傳統(tǒng)沒什么不同,所以本發(fā)明的方法可以向下兼容于傳統(tǒng)的存儲(chǔ)庫(kù)。權(quán)利要求1.一存儲(chǔ)器控制方法,供一存儲(chǔ)器控制器存取一存儲(chǔ)裝置,所述存儲(chǔ)裝置包含多個(gè)存儲(chǔ)庫(kù),其中一存儲(chǔ)庫(kù)的一第一列已被開啟以供存取,其特征在于,所述存儲(chǔ)器控制方法包含下列步驟所述存儲(chǔ)器控制器接收一要求,欲存取所述存儲(chǔ)庫(kù)中的一第二列;所述存儲(chǔ)器控制器發(fā)出一特定指令至所述存儲(chǔ)裝置;以及所述存儲(chǔ)裝置根據(jù)所述特定指令,關(guān)閉所述第一列,并開啟所述第二列。2.如權(quán)利要求1所述的存儲(chǔ)器控制方法,其特征在于,所述存儲(chǔ)器控制器和所述存儲(chǔ)裝置之間,耦接了一命令總線和一地址總線;所述特定指令透過所述命令總線傳送;所述第二列的地址隨著所述特定指令的傳送,同步透過所述地址總線傳送。3.如權(quán)利要求1所述的存儲(chǔ)器控制方法,其特征在于,所述存儲(chǔ)器控制方法還進(jìn)一步包含在接收到所述特定指令后,所述存儲(chǔ)裝置關(guān)閉所述第一列;以及在所述第一列關(guān)閉后的三個(gè)時(shí)鐘脈沖周期后,所述存儲(chǔ)裝置開啟所述第二列。4.一存儲(chǔ)器控制器,用以控制一存儲(chǔ)裝置,所述存儲(chǔ)裝置包含多個(gè)存儲(chǔ)庫(kù),其中一存儲(chǔ)庫(kù)的一第一列已被開啟以供存取,其特征在于,所述存儲(chǔ)器控制器包含一地址表,紀(jì)錄每一存儲(chǔ)庫(kù)中所有已開啟的列地址,包含所述第一列的地址;一控制單元,當(dāng)接收到一要求,欲存取所述存儲(chǔ)庫(kù)中的一第二列時(shí),設(shè)定一特定指令;一命令產(chǎn)生器,在所述特定指令被設(shè)定好后,將所述特定指令發(fā)送至所述存儲(chǔ)裝置;其中所述存儲(chǔ)裝置在接收所述特定指令后,關(guān)閉所述第一列,并開啟所述第二列。5.如權(quán)利要求4所述的存儲(chǔ)器控制器,其特征在于,所述控制單元比較所述存儲(chǔ)庫(kù)中的所述第一列的址和所述第二列的地址;以及如果所述第一列的地址不同于所述第二列的地址,則為所述存儲(chǔ)庫(kù)設(shè)定所述特定指令。6.如權(quán)利要求4所述的存儲(chǔ)器控制器,其特征在于,所述存儲(chǔ)器控制器和所述存儲(chǔ)裝置之間是由一命令總線和一地址總線耦接在一起;所述特定指令透過所述命令總線傳送;以及所述第二列的地址隨著所述特定指令的傳送,同步透過所述地址總線傳送。7.如權(quán)利要求4所述的存儲(chǔ)器控制器,其特征在于,在接收到所述特定指令后,所述存儲(chǔ)裝置關(guān)閉所述第一列;以及在所述第一列關(guān)閉后的三個(gè)時(shí)鐘脈沖周期后,所述存儲(chǔ)裝置開啟所述第二列。8.一存儲(chǔ)裝置,其受到一存儲(chǔ)器控制器的控制,其特征在于,所述存儲(chǔ)裝置包含多個(gè)存儲(chǔ)庫(kù),其中一存儲(chǔ)庫(kù)的一第一列被開啟以供存取;一命令譯碼器,用以譯碼從所述存儲(chǔ)器控制器傳送來的命令信號(hào);其中,當(dāng)出現(xiàn)一要求,欲存取所述存儲(chǔ)庫(kù)中的一第二列時(shí),所述存儲(chǔ)器控制器發(fā)出一特定指令至所述命令譯碼器,而所述存儲(chǔ)裝置隨之將所述第一列關(guān)閉,并開啟所述第二列。9.如權(quán)利要求8所述的存儲(chǔ)裝置,其特征在于,所述存儲(chǔ)器控制器和所述存儲(chǔ)裝置之間由一命令總線和一地址總線耦接在一起;所述特定指令透過所述命令總線傳送;以及所述第二列的地址隨著所述特定指令的傳送,同步透過所述地址總線傳送。10.如權(quán)利要求8所述的存儲(chǔ)裝置,其特征在于,在接收到所述特定指令后,所述存儲(chǔ)裝置關(guān)閉所述第一列;以及在所述第一列關(guān)閉后的三個(gè)時(shí)鐘脈沖周期后,所述存儲(chǔ)裝置開啟所述第二列。全文摘要本發(fā)明提供一種存儲(chǔ)器控制方法,存儲(chǔ)裝置以及存儲(chǔ)器控制器,該存儲(chǔ)器控制方法供一存儲(chǔ)器控制器存取包含多個(gè)存儲(chǔ)庫(kù)的一存儲(chǔ)裝置,其中一存儲(chǔ)庫(kù)的一第一列已被開啟以供存取。首先,該存儲(chǔ)器控制器接收一要求,欲存取該存儲(chǔ)庫(kù)中的一第二列。接著該存儲(chǔ)器控制器發(fā)出一特定指令至該存儲(chǔ)裝置。最后該存儲(chǔ)裝置根據(jù)該特定指令,關(guān)閉該第一列,并開啟該第二列。該存儲(chǔ)器控制器和該存儲(chǔ)裝置之間,耦接了一命令總線和一地址總線。該特定指令透過該命令總線傳送,而該第二列的地址隨著該特定指令的傳送,同步透過該地址總線傳送。在接收到該特定指令后,該存儲(chǔ)裝置關(guān)閉該第一列,而在該第一列關(guān)閉后的三個(gè)時(shí)鐘脈沖周期后,該存儲(chǔ)裝置開啟該第二列。文檔編號(hào)G11C11/4096GK101042926SQ200710089139公開日2007年9月26日申請(qǐng)日期2007年3月20日優(yōu)先權(quán)日2006年3月21日發(fā)明者黃祥毅申請(qǐng)人:聯(lián)發(fā)科技股份有限公司