存儲器控制器及相關的控制方法
【專利摘要】本發(fā)明涉及存儲器控制器及相關的控制方法。一種存儲器控制器包含有一地址解碼器以及一協(xié)議控制器,其中該地址解碼器用于對一接收信號進行譯碼操作以產(chǎn)生多個指令信號,其中該多個指令信號包含了存取一存儲器中多個區(qū)塊的指令信號;以及該協(xié)議控制器用于根據(jù)目前該存儲器中所開啟的區(qū)塊及數(shù)據(jù)頁,來重新決定該多個指令信號的執(zhí)行順序,以使用該多個指令信號來存取該存儲器。
【專利說明】
存儲器控制器及相關的控制方法
技術領域
[0001]本發(fā)明涉及存儲器,尤其涉及一種動態(tài)隨機存取存儲器控制器及相關的控制方法。
【背景技術】
[0002]在同步動態(tài)隨機存取存儲器(SynchronousDynamic Random-Access Memory,SDRAM)中,對數(shù)據(jù)的存取(Read/Wrtie data)程序,包含以下動作:(I)若未設定對應區(qū)塊(Bank)的數(shù)據(jù)頁(non-active page),則需要先發(fā)出有效指令(Active command)以開啟其存取對應區(qū)塊特定的數(shù)據(jù)頁,再發(fā)出讀取/寫入指令(Read/Write command)以執(zhí)行數(shù)據(jù)讀取/寫入動作;(2)若已設定對應區(qū)塊的數(shù)據(jù)頁(active page),則當對應到區(qū)塊的相同數(shù)據(jù)頁(page hit)時,可直接執(zhí)行操作存??;而當對應的數(shù)據(jù)頁不同時(pagemiss),則需要先發(fā)出預充電指令(Precharge command)以關閉目前對應的數(shù)據(jù)頁,再發(fā)出有效指令(Active command)以設定準備要存取的數(shù)據(jù)頁,最后再發(fā)出讀取/寫入指令(Read/Write command)以進行數(shù)據(jù)存?。?3)每隔一段時間都須執(zhí)行自動更新/更新指令(Auto-Refresh/Refresh command),以維持SDRAM中的數(shù)據(jù)內容值不變。
[0003]以上所敘述的控制操作流程,每次存取時都需確認相對應區(qū)塊中的數(shù)據(jù)頁的狀態(tài),亦即判斷非有效數(shù)據(jù)頁(non-active page)、有效數(shù)據(jù)頁(active page)、數(shù)據(jù)頁命中(page hit)或是數(shù)據(jù)頁錯失(page miss)等,并針對其目前的狀態(tài)執(zhí)行相對應的操作,才可正確地對SDRAM進行寫入或讀取操作。由于操作流程是固定且例行性的判斷,所以在處理的設計上大多利用有限狀態(tài)機(Finite State Machine,F(xiàn)SM)的作法來控制SDRAM。但通過有限狀態(tài)機作法,在系統(tǒng)執(zhí)行上通常效率上會有其限制,無法提高執(zhí)行指令頻率,并且也會延遲執(zhí)行周期,這都會使得存儲器存取操作效能降低。
[0004]為了提升SDRAM效能的問題,一般而言利用優(yōu)化判別程序流程,及在硬件上改為管線化(pipeline)的設計,可以優(yōu)化SDRAM指令操作,進而有效達到提升存儲器的帶寬,但其缺點是在控制上會加深其復雜化及設計難度,因此硬件的設計成本也會增加。
【發(fā)明內容】
[0005]因此,本發(fā)明的目的之一在于提供一種SDRAM的控制器及相關的控制方法,其簡化了存儲器的控制設計,并可優(yōu)化存儲器的操作效能,以解決現(xiàn)有技術的問題。
[0006]依據(jù)本發(fā)明一實施例,一種存儲器控制器包含有一地址解碼器以及一協(xié)議控制器,其中該地址解碼器用于對一接收信號進行譯碼操作以產(chǎn)生多個指令信號,其中該多個指令信號包含了存取一存儲器中多個區(qū)塊的指令信號;以及該協(xié)議控制器用于根據(jù)目前該存儲器中所開啟的區(qū)塊及數(shù)據(jù)頁,來重新決定該多個指令信號的執(zhí)行順序,以使用該多個指令信號來存取該存儲器。
[0007]依據(jù)本發(fā)明另一實施例,一種存儲器控制方法包含有:對一接收信號進行譯碼操作以產(chǎn)生多個指令信號,其中該多個指令信號包含了存取一存儲器中多個區(qū)塊的指令信號;以及根據(jù)目前該存儲器中所開啟的區(qū)塊及數(shù)據(jù)頁,來重新決定該多個指令信號的執(zhí)行順序,以使用該多個指令信號來存取該存儲器。
【附圖說明】
[0008]圖1所示為依據(jù)本發(fā)明一實施例的存儲器控制器的示意圖。
[0009]圖2為依據(jù)本發(fā)明一實施例的存儲器控制器存取存儲器的流程圖。
[0010]圖3為依據(jù)本發(fā)明一實施例的硬件架構圖。
[0011]圖4為存取指令的格式的示意圖。
[0012]圖5為現(xiàn)有技術存取不同區(qū)塊的數(shù)據(jù)頁的時序圖。
[0013]圖6為依據(jù)本發(fā)明一實施例的存取不同區(qū)塊的數(shù)據(jù)頁的時序圖。
【具體實施方式】
[0014]在說明書及權利要求書當中使用了某些詞匯來指稱特定的組件。所屬領域普通技術人員應可理解,硬件制造商可能會用不同的名詞來稱呼同一個組件。本說明書及權利要求書并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準則。在通篇說明書及權利要求書當中所提及的“包含”為一開放式的用語,故應解釋成“包含但不限定于”。此外,“耦接”一詞在此包含任何直接及間接的電氣連接手段,因此,若文中描述一第一裝置耦接于一第二裝置,則代表該第一裝置可直接電氣連接于該第二裝置,或者通過其他裝置或連接手段間接地電氣連接至該第二裝置。
[0015]請參考圖1,圖1所示為依據(jù)本發(fā)明一實施例的存儲器控制器100的示意圖,如圖1所示,存儲器控制器100耦接于存儲器108,且通過總線101連接到中央處理器102、圖形處理器 104、高清晰度多媒體接口 (High Definit1n Multimedia Interface,HDMI)組件106等需要存取存儲器108的組件。存儲器控制器100主要的功能是控制讀取存儲器108的數(shù)據(jù)內容以及將數(shù)據(jù)寫入到存儲器108,并每隔一段時間執(zhí)行自動更新以維持存儲器108中的數(shù)據(jù)內容值不變。此外,在圖1中,為了簡潔起見,存儲器控制器100中只繪示了與本發(fā)明較為相關的地址解碼器110以及協(xié)議控制器120,但本領域普通技術人員應能了解到存儲器控制器100也包含了其他必須的電路組件。
[0016]在本實施例中,存儲器控制器100為一 SDRAM控制器,而存儲器108則為一 SDRAM。在許多SDRAM的相關規(guī)格書中,例如JESD79F、JESD79-2C、JESD79-3D等,均有規(guī)定在對存儲器108進行寫入/讀取的控制上,需要遵守的操作,舉例來說:(I)針對寫入/讀取區(qū)塊的數(shù)據(jù)頁/列地址(row address),若對未開啟的區(qū)塊執(zhí)行開啟指令(active),則下一個指令所需等待相對應時間如下:(1.D若下一個指令為開啟指令且不同區(qū)塊,等待時間為tRRD ; (1.2)若下一個指令為開啟指令且相同區(qū)塊,等待時間為tRC ; (1.3)若下一個指令為預充電,等待時間為tRAS。(2)若對應的區(qū)塊已開啟了數(shù)據(jù)頁,則需要確認數(shù)據(jù)頁是否相同,若不同數(shù)據(jù)頁則需執(zhí)行預充電指令(precharge)以關閉目前的數(shù)據(jù)頁,之后才可再度開啟所需的數(shù)據(jù)頁,而若執(zhí)行行預充電指令,下一個指令皆需等待tRP的時間。(3)開啟對應區(qū)塊的數(shù)據(jù)頁后,才可執(zhí)行寫入/讀取指令,而下一個寫入/讀取指令皆需等待tCCD的時間,詳細來說,若目前執(zhí)行讀取指令,則當下一個指令為寫入指令時,等待時間為tRTW,而當下一個指令為預充電指令時其等待時間為tRTP ;另一方面,若目前執(zhí)行寫入指令,則當下一個指令為讀取指令時,等待時間為tWTR,而下一個指令為預充電指令時其等待時間為tWR。(4)由于存儲器108每隔tREFI時間內需對每列地址進行充電的動作,以維持在存儲器108內容值的正確性,否則數(shù)據(jù)會有被遺失的風險,此時需執(zhí)行自動更新/更新指令,且下一個指令皆需等待tRFC的時間;而執(zhí)行自動更新/更新指令前,必須先執(zhí)行全部預充電(Precharge all)/預充電指令。
[0017]根據(jù)上述的操作指令中,可以發(fā)現(xiàn)執(zhí)行不同指令時,對下一個執(zhí)行的指令會有不同的時間限制(等待時間),而在這些不同的時間限制中,又可以發(fā)現(xiàn)某些指令彼此之間是沒有關聯(lián)的。此外,存儲器108中會具有多個區(qū)塊(bank),其中每一個區(qū)塊可具有不同的數(shù)據(jù)頁地址(列地址),彼此間并不互相影響。除此之外,在每次讀取/寫入數(shù)據(jù)時,都需確認相對應區(qū)塊的數(shù)據(jù)頁是否已開啟。
[0018]因此,本發(fā)明根據(jù)存取存儲器108的指令及其控制特性,提出一個存取存儲器108方法,使得架構設計可以管線化及平行處理多個指令操作。請參考圖2,圖2為依據(jù)本發(fā)明一實施例的存儲器控制器100存取存儲器108的流程圖。參考圖2,流程如下所述。
[0019]在步驟200中,存儲器控制器100接收到新的存取指令,以要求寫入/讀取存儲器108中的一區(qū)塊中的至少一數(shù)據(jù)頁。接著,在步驟201中,存儲器控制器100檢查該數(shù)據(jù)頁的狀況,其中若是該區(qū)塊中該數(shù)據(jù)頁尚未開啟,則進入步驟203以開啟該數(shù)據(jù)頁;若是該區(qū)塊中該數(shù)據(jù)頁已經(jīng)開啟,貝1J進入步驟204中以在指令序列(command queue)中等待被執(zhí)行;若是該區(qū)塊中已經(jīng)有其他數(shù)據(jù)頁被開啟,且先前也沒有該區(qū)塊的指令在等待或是正在執(zhí)行,則進入步驟202中以關閉目前的數(shù)據(jù)頁;以及,若是該區(qū)塊中已經(jīng)有其他數(shù)據(jù)頁被開啟,且有該區(qū)塊的指令在等待或是正在執(zhí)行,則進入步驟204中以在指令序列中等待。
[0020]在步驟202中,在確認無違反指令時間限制后,執(zhí)行預充電指令以關閉該區(qū)塊中目前開啟的數(shù)據(jù)頁,接著進入步驟203。
[0021]在步驟203中,在確認無違反指令時間限制后,執(zhí)行開啟指令以開啟數(shù)據(jù)頁,接著進入步驟204。
[0022]在步驟204中,進入指令序列中的指令,會遵循先進先出(First in first out)的作法,當下一筆指令(Next command)在出口端等待進入步驟205以進行執(zhí)行操作時,此時會進行判別是否需要重新開啟對應區(qū)塊的數(shù)據(jù)頁。進一步來說,若是此下一個指令和目前所執(zhí)行的指令所存取的數(shù)據(jù)頁是位于不同的區(qū)塊,流程會進入步驟207以重新開啟數(shù)據(jù)頁,亦即會執(zhí)行預充電操作和開啟指令,并等待目前指令執(zhí)行結束后進入步驟205 ;而若是此下一個指令和目前所執(zhí)行的指令所存取的數(shù)據(jù)頁是位于相同的區(qū)塊,則流程會等待目前指令執(zhí)行結束后,再進入步驟207以重新開啟數(shù)據(jù)頁,亦即會執(zhí)行預充電操作和開啟指令,并進入步驟205。
[0023]在步驟205中,執(zhí)行目前的指令,且當目前的指令執(zhí)行結束后,若步驟204中的指令序列中有指令在等待執(zhí)行,則會將等待的指令進入步驟205以執(zhí)行其指令。接著,進入步驟206以結束流程。
[0024]此外,存儲器108每隔一段時間需維持數(shù)據(jù)的正確性,因此,會觸發(fā)步驟202以關閉全部區(qū)塊或是對應的區(qū)塊,之后才會執(zhí)行步驟208中的更新指令。
[0025]根據(jù)圖2所示的操作流程,在硬件架構上可以輕易管線化設計,此外,可以再搭配相關所需的硬件信息,使得每步驟流程都需確認是否被允許提出存儲器指令控制,并再加上優(yōu)化排序后選出該被執(zhí)行的指令。而關于指令的優(yōu)化排序,請參考圖式圖3及以下相關敘述。
[0026]圖3為依據(jù)本發(fā)明一實施例的硬件架構圖,其中圖3中的階段302-307是由存儲器控制器100中的協(xié)議控制器120中的電路來實際執(zhí)行,組件308可為一緩存器,其用來儲存目前正在開啟中的區(qū)塊及數(shù)據(jù)頁,SDRAM計時器309用來決定何時觸發(fā)自動更新/更新指令,區(qū)塊計時器310用來決定何時需要發(fā)出預充電指令,而更新控制器311用來根據(jù)SDRAM計時器309的計時結果來決定何時觸發(fā)自動更新/更新指令。此外,組件308、309、310、311設置于存儲器控制器100中。
[0027]在圖3中,首先,在步驟300中,收到新的存取指令,其中存取指令的格式可如圖4所示,包含了讀取/寫入信息400、突發(fā)長度信息(burst length)401、地址信息402以及區(qū)塊沖突信息(Bank conflict)403。
[0028]在數(shù)據(jù)頁檢查階段301中,需通過組件308中所記錄的目前正在開啟中的區(qū)塊及數(shù)據(jù)頁,以及存取指令中的地址信息402,來確認相對應區(qū)塊的數(shù)據(jù)頁(列地址)是否沖突。之后,根據(jù)不同的狀態(tài),進入預充電階段302、開啟階段303以及指令序列階段304,并在存取指令中的區(qū)塊沖突信息403記錄是否需要重新開啟數(shù)據(jù)頁(列地址)。
[0029]在預充電階段302、開啟階段303以及指令序列階段304中,均需要通過SDRAM計時器309及區(qū)塊計時器310來確定是否可以執(zhí)行此步驟指令,以避免違反SDRAM各個指令時間限制。
[0030]關于指令序列階段304,在硬件設計上,是使用類似FIFO的架構的緩存器以儲存指令信息。由于指令序列階段304的儲存空間有限,因此,當緩存器還有儲存空間時,才能接收上面步驟所傳來的指令;而若是緩存器中等待執(zhí)行的指令數(shù)量已到達最大儲存數(shù)量,則上游步驟中的指令則需等待被接收。
[0031]此外,在指令序列階段304中,在出口端的指令定義為下一筆指令313,若下一筆指令313需要重新開啟數(shù)據(jù)頁(列地址),則會和在指令運行階段306中的指令比對是否位于相同區(qū)塊,若不同,則會進入重開啟階段305以提前執(zhí)行重新開啟數(shù)據(jù)頁的操作,而當開啟結束后,就會將下一筆指令313從指令序列階段304推出并進入指令運行階段306。反之,若下一筆指令313需要重新開啟的數(shù)據(jù)頁與在指令運行階段306中的指令所存取的數(shù)據(jù)頁位于相同區(qū)塊,則會等待指令運行階段306的目前執(zhí)行指令操作結束后,才會進行重新開啟的動作,以避免影響在指令運行階段306的正在讀取/寫入地址的指令。
[0032]此外,在指令序列階段304中,要先判斷是否須要開啟數(shù)據(jù)頁。因為若執(zhí)行自動更新/更新指令,會先執(zhí)行預充電指令(precharge all/precharge)會將所有的區(qū)塊或是特定的區(qū)塊關閉,若先前已關閉區(qū)塊的數(shù)據(jù)頁,則在指令序列階段304會再提出開啟動作。之后根據(jù)組件308及區(qū)塊沖突信息403以執(zhí)行一次或多次連續(xù)同為讀取/寫入指令。當執(zhí)行結束時,確認下一筆指令313是否提出流入需求,以利下次連續(xù)執(zhí)行讀取/寫入。
[0033]在執(zhí)行選擇階段307中,會根據(jù)預充電階段302、開啟階段303、重開啟階段305、指令運行階段306所處理到的指令來進行執(zhí)行優(yōu)先權的排序,以使得存儲器控制器100可處理多個讀取/寫入的需求,并根據(jù)不同的區(qū)塊,提前判斷執(zhí)行相對應列地址設定的操作,以使得當需要執(zhí)行讀取/寫入指令操作時,可以縮短等待時間。此外,在執(zhí)行的優(yōu)先級上,大致上依序是自動更新/更新指令、指令運行階段306、重開啟階段305、開啟階段303以及預充電階段302。
[0034]舉一例來說明圖3所示的架構如何可以改善存儲器控制器100存取存儲器108效率。請參考圖5及圖6,其中圖5為現(xiàn)有技術存取不同區(qū)塊的數(shù)據(jù)頁的時序圖,而圖6為依據(jù)本發(fā)明一實施例的存取不同區(qū)塊的數(shù)據(jù)頁的時序圖。
[0035]請先參考圖5所示的時序圖,假設存儲器控制器100需要先讀取第一區(qū)塊中第O數(shù)據(jù)頁的數(shù)據(jù),之后再讀取第二區(qū)塊中第O數(shù)據(jù)頁中的數(shù)據(jù),且第二區(qū)塊中的第I數(shù)據(jù)頁正在開啟中,貝Ij在現(xiàn)有技術的作法中,存儲器控制器100會先通過指令引腳(co_andpins)傳送開啟指令501(open_blp0)至存儲器108以開啟第一區(qū)塊的第O數(shù)據(jù)頁,之后再發(fā)送讀取指令502 (rd_cmd0)至存儲器108以通過數(shù)據(jù)引腳(data pins)自存儲器108中讀取數(shù)據(jù)data0_0、data0_l、data0_2、data0_3,接著,存儲器控制器100再傳送關閉指令503(close_b2pl)至存儲器108以關閉第二區(qū)塊的第I數(shù)據(jù)頁,接著,存儲器控制器100傳送開啟指令504(open_b2p0)至存儲器108以開啟第二區(qū)塊的第O數(shù)據(jù)頁,之后再發(fā)送讀取指令505(rd_cmdl)至存儲器108以自存儲器108中讀取數(shù)據(jù)datal_0、datal_l、datal_2、datal_30在圖5所示的操作中,由于每一個指令之間會有必需的等待時間,且讀取指令與開始讀取數(shù)據(jù)之間也有需要的等待時間,因此,在數(shù)據(jù)的讀取上會比較沒有效率。
[0036]請參考圖6所示的時序圖,假設存儲器控制器100需要先讀取第一區(qū)塊中第O數(shù)據(jù)頁的數(shù)據(jù),之后再讀取第二區(qū)塊中第O數(shù)據(jù)頁中的數(shù)據(jù),且第二區(qū)塊中的第I數(shù)據(jù)頁正在開啟中,則在根據(jù)本發(fā)明實施例的作法中,存儲器控制器100會先通過指令引腳傳送開啟指令601(open_blp0)至存儲器108以開啟第一區(qū)塊的第O數(shù)據(jù)頁,緊接著,由于關閉第二區(qū)塊中第I數(shù)據(jù)頁的關閉指令602與開啟指令601之間不需要長的等待時間,因此,在開啟指令601之后,存儲器控制器100可立即傳送關閉指令602(clOSe_b2pl)至存儲器108以關閉第二區(qū)塊的第I數(shù)據(jù)頁。接著,存儲器控制器100再發(fā)送讀取指令603 (rd_cmd0)至存儲器108以要求讀取存儲器108中的數(shù)據(jù),再接著,由于開啟第二區(qū)塊中第O數(shù)據(jù)頁的開啟指令604與讀取指令603之間不需要長的等待時間,因此,在讀取指令603之后,存儲器控制器100可立即傳送開啟指令604(open_b2p0)至存儲器108以開啟第二區(qū)塊的第O數(shù)據(jù)頁。接著,存儲器108開始根據(jù)讀取指令603以通過數(shù)據(jù)引腳回傳數(shù)據(jù)data0_0、data0_l、data0_2、data0_3,而在數(shù)據(jù) data0_0、data0_l、data0_2、data0_3 的回傳過程中,存儲器控制器100可再發(fā)送讀取指令605(rd_cmdl)至SDRAM 108以要求讀取存儲器108中第二區(qū)塊中第O數(shù)據(jù)頁中的數(shù)據(jù),因此,在數(shù)據(jù)data0_0、data0_l、data0_2、data0_3傳送完畢之后,存儲器108可以立即地根據(jù)讀取指令605以通過數(shù)據(jù)引腳回傳數(shù)據(jù)datal_0、datal_l、datal—2、datal—3。
[0037]與圖5所示的現(xiàn)有技術相比,在圖6的流程中,由于關閉第二區(qū)塊第I數(shù)據(jù)頁與開啟第二區(qū)塊中第O數(shù)據(jù)頁的步驟被提前執(zhí)行,因此,存儲器108在根據(jù)讀取指令603回傳數(shù)據(jù)data0_0、data0_l、data0_2、data0_3之后,可以立即地根據(jù)讀取指令605回傳數(shù)據(jù)datal_0、datal_l、datal_2、datal_3,使存儲器控制器100可以通過數(shù)據(jù)引腳不斷地接收到所需的數(shù)據(jù),增加存儲器控制器100的存取效率。
[0038]簡要歸納本發(fā)明,在本發(fā)明的存儲器控制器及相關的控制方法中,通過協(xié)議控制器的對于存取指令的重新排序,優(yōu)化存儲器的操作效能,尤其是可以提前開啟其后等待存取的數(shù)據(jù)頁,使得存儲器控制器與存儲器之間的數(shù)據(jù)傳遞可以盡可能的連續(xù),以提升存儲器帶寬的使用率。
[0039]以上所述僅為本發(fā)明的較佳實施例,凡根據(jù)本發(fā)明權利要求書所做的同等變化與修飾,皆應屬本發(fā)明的覆蓋范圍。
[0040]【符號說明】
[0041]100存儲器控制器
[0042]101總線
[0043]102中央處理器
[0044]104圖形處理器
[0045]106高清晰度多媒體接口組件
[0046]108存儲器
[0047]110地址解碼器
[0048]120協(xié)議控制器
[0049]200-208步驟
[0050]300收到新的存取指令
[0051]301數(shù)據(jù)頁檢查階段
[0052]302預充電階段
[0053]303開啟階段
[0054]304指令序列階段
[0055]305重開啟階段
[0056]306指令運行階段
[0057]307執(zhí)行選擇階段
[0058]308緩存器
[0059]309SDRAM 計時器
[0060]310區(qū)塊計時器
[0061]311更新控制器
[0062]313下一筆指令
[0063]400讀取/寫入信息
[0064]401突發(fā)長度信息
[0065]402地址信息
[0066]403區(qū)塊沖突信息
[0067]501、504、601、604開啟指令
[0068]502、505、603、605讀取指令
[0069]503、602關閉指令。
【主權項】
1.一種存儲器控制器,包含: 一地址解碼器,用于對一接收信號進行譯碼操作以產(chǎn)生多個指令信號,其中,該多個指令信號包含了存取一存儲器中多個區(qū)塊的指令信號;以及 一協(xié)議控制器,耦接于該地址解碼器,用于根據(jù)該多個指令信號所需要存取該存儲器中的區(qū)塊及數(shù)據(jù)頁地址,來重新決定該多個指令信號的執(zhí)行順序,以根據(jù)該多個指令信號來存取該存儲器。2.根據(jù)權利要求1所述的存儲器控制器,其中,該協(xié)議控制器會循序對該多個指令進行檢查以判斷是否有區(qū)塊沖突的情形發(fā)生,并根據(jù)判斷結果以將該多個指令信號分別進入一預充電階段、一開啟階段、或是一指令序列階段,其中,該預充電階段為關閉相對應區(qū)塊中的數(shù)據(jù)頁,該開啟階段為開啟相對應區(qū)塊中的數(shù)據(jù)頁,且該指令序列階段為循序儲存所進入的指令;該協(xié)議控制器另根據(jù)目前該存儲器中所開啟的區(qū)塊及數(shù)據(jù)頁,以決定該指令序列階段所循序輸出的指令進入一重開啟階段或是一指令運行階段,其中,該重開啟階段為重新開啟相對應區(qū)塊中的數(shù)據(jù)頁;以及該協(xié)議控制器根據(jù)該關閉階段、該開啟階段、該重開啟階段以及該指令運行階段目前所對應到的指令信號,以決定需要先執(zhí)行哪一個階段的操作。3.根據(jù)權利要求2所述的存儲器控制器,其中,該協(xié)議控制器根據(jù)該預充電階段、該開啟階段、該重開啟階段以及該指令運行階段目前所對應到的指令信號所需要存取的區(qū)塊,以決定需要先執(zhí)行哪一個階段的操作。4.根據(jù)權利要求3所述的存儲器控制器,其中,該協(xié)議控制器優(yōu)先執(zhí)行該預充電階段、該開啟階段、該重開啟階段以及該指令運行階段中所需要存取的區(qū)塊不同于目前該存儲器中所開啟的區(qū)塊的階段操作。5.根據(jù)權利要求1所述的存儲器控制器,其中,該多個指令信號依序包含了用來存取該存儲器中一第一區(qū)塊的一數(shù)據(jù)頁以及存取一第二區(qū)塊的一數(shù)據(jù)頁的指令信號,且在該存儲器控制器存取完該第一區(qū)塊的該數(shù)據(jù)頁的數(shù)據(jù)之前,該協(xié)議控制器便會傳送指令至該存儲器以開啟該第二區(qū)塊的該數(shù)據(jù)頁,并要求存取該第二區(qū)塊的該數(shù)據(jù)頁。6.根據(jù)權利要求5所述的存儲器控制器,其中,當該第二區(qū)塊有其他數(shù)據(jù)頁正處于開啟時,該協(xié)議控制器會依序傳送一第一開啟指令至該存儲器以開啟該第一區(qū)塊的該數(shù)據(jù)頁、一關閉指令至該存儲器以關閉該第二區(qū)塊目前開啟中的其他數(shù)據(jù)頁、一第一讀取指令至該存儲器以要求存取該第一區(qū)塊的該數(shù)據(jù)頁、一第二開啟指令至該存儲器以開啟該第二區(qū)塊的該數(shù)據(jù)頁、以及一第二讀取指令至該存儲器以要求存取該第一區(qū)塊的該數(shù)據(jù)頁。7.一種存儲器控制方法,包含: 對一接收信號進行譯碼操作以產(chǎn)生多個指令信號,其中,該多個指令信號包含了存取一存儲器中多個區(qū)塊的指令信號;以及 根據(jù)目前該存儲器中所開啟的區(qū)塊及數(shù)據(jù)頁,來重新決定該多個指令信號的執(zhí)行順序,以使用該多個指令信號來存取該存儲器。8.根據(jù)權利要求7所述的存儲器控制方法,其中,根據(jù)目前該存儲器中所開啟的區(qū)塊及數(shù)據(jù)頁,來重新決定該多個指令信號的執(zhí)行順序的步驟包含: 循序對該多個指令進行檢查以判斷是否有區(qū)塊沖突的情形發(fā)生,并根據(jù)判斷結果以將該多個指令信號分別進入一預充電階段、一開啟階段、或是一指令序列階段,其中,該預充電階段為關閉相對應區(qū)塊中的數(shù)據(jù)頁,該開啟階段為開啟相對應區(qū)塊中的數(shù)據(jù)頁,且該指令序列階段為循序儲存所進入的指令; 根據(jù)目前該存儲器中所開啟的區(qū)塊及數(shù)據(jù)頁,以決定該指令序列階段所循序輸出的指令進入一重開啟階段或是一指令運行階段,其中,該重開啟階段為重新開啟相對應區(qū)塊中的數(shù)據(jù)頁;以及 根據(jù)該關閉階段、該開啟階段、該重開啟階段以及該指令運行階段目前所對應到的指令信號,以決定需要先執(zhí)行哪一個階段的操作。9.根據(jù)權利要求8所述的存儲器控制方法,其中,根據(jù)該預充電階段、該開啟階段、該重開啟階段以及該指令運行階段目前所對應到的指令信號,以決定需要先執(zhí)行哪一個階段的操作的步驟另包含: 根據(jù)該預充電階段、該開啟階段、該重開啟階段以及該指令運行階段目前所對應到的指令信號所需要存取的區(qū)塊,以決定需要先執(zhí)行哪一個階段的操作。10.根據(jù)權利要求9所述的存儲器控制方法,其中,根據(jù)該預充電階段、該開啟階段、該重開啟階段以及該指令運行階段目前所對應到的指令信號,以決定需要先執(zhí)行哪一個階段的操作的步驟另包含: 優(yōu)先執(zhí)行該預充電階段、該開啟階段、該重開啟階段以及該指令運行階段中所需要存取的區(qū)塊不同于目前該存儲器中所開啟的區(qū)塊的階段操作。11.根據(jù)權利要求7所述的存儲器控制方法,其中,該多個指令信號依序包含了用來存取該存儲器中一第一區(qū)塊的一數(shù)據(jù)頁以及存取一第二區(qū)塊的一數(shù)據(jù)頁的指令信號,該方法應用于一存儲器控制器中,且該方法另包含: 在該存儲器控制器存取完該第一區(qū)塊的該數(shù)據(jù)頁的數(shù)據(jù)之前,該存儲器控制器便會傳送指令至該存儲器以開啟該第二區(qū)塊的該數(shù)據(jù)頁,并要求存取該第二區(qū)塊的該數(shù)據(jù)頁。12.根據(jù)權利要求11所述的存儲器控制方法,其中,在該存儲器控制器存取完該第一區(qū)塊的該數(shù)據(jù)頁的數(shù)據(jù)之前,該存儲器控制器便會傳送指令至該存儲器以開啟該第二區(qū)塊的該數(shù)據(jù)頁,并要求存取該第二區(qū)塊的該數(shù)據(jù)頁的步驟包含: 當該第二區(qū)塊有其他數(shù)據(jù)頁正處于開啟時,依序傳送一第一開啟指令至該存儲器以開啟該第一區(qū)塊的該數(shù)據(jù)頁、一關閉指令至該存儲器以關閉該第二區(qū)塊目前開啟中的其他數(shù)據(jù)頁、一第一讀取指令至該存儲器以要求存取該第一區(qū)塊的該數(shù)據(jù)頁、一第二開啟指令至該存儲器以開啟該第二區(qū)塊的該數(shù)據(jù)頁、以及一第二讀取指令至該存儲器以要求存取該第一區(qū)塊的該數(shù)據(jù)頁。
【文檔編號】G06F13/16GK105988951SQ201510074643
【公開日】2016年10月5日
【申請日】2015年2月12日
【發(fā)明人】張雅閔
【申請人】瑞昱半導體股份有限公司