TWI541647B - 記憶體控制器及相關的控制方法 - Google Patents
記憶體控制器及相關的控制方法 Download PDFInfo
- Publication number
- TWI541647B TWI541647B TW104104110A TW104104110A TWI541647B TW I541647 B TWI541647 B TW I541647B TW 104104110 A TW104104110 A TW 104104110A TW 104104110 A TW104104110 A TW 104104110A TW I541647 B TWI541647 B TW I541647B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- phase
- memory
- instruction
- data page
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Description
本發明係有關於記憶體,尤指一種動態隨機存取記憶體控制器及相關的控制方法。
在同步動態隨機存取記憶體(Synchronous Dynamic Random-Access Memory,SDRAM)中,對資料的存取(Read/Wrtie data)程序,包含以下動作:(1)若未設定對應區塊(Bank)的資料頁(non-active page),則需要先發出有效指令(Active command)以開啟其存取對應區塊特定的資料頁,再發出讀取/寫入指令(Read/Write command)以執行資料讀取/寫入動作;(2)若已設定對應區塊的資料頁(active page),則當對應到區塊的相同資料頁(page hit)時,可直接執行操作存取;而當對應的資料頁不同時(page miss),則需要先發出
預充電指令(Precharge command)以關閉目前對應的資料頁,再發出有效指令(Active command)以設定準備要存取的資料頁,最後再發出讀取/寫入指令(Read/Write command)以進行資料存取;(3)每隔一段時間都須執行自動更新/更新指令(Auto-Refresh/Refresh command),以維持SDRAM中的資料內容值不變。
以上所敘述的控制操作流程,每次存取時都需確認相對應區塊中的資料頁的狀態,亦即判斷非有效資料頁(non-active page)、有效資料頁
(active page)、資料頁命中(page hit)或是資料頁錯失(page miss)等等,並針對其目前的狀態執行相對應的操作,才可正確地對SDRAM進行寫入或讀取操作。由於操作流程是固定且例行性的判斷,所以在處理的設計上大多利用有限狀態機(Finite State Machine,FSM)的作法來控制SDRAM。但透過有限狀態機作法,在系統執行上通常效率上會有其限制,無法可以提高執行指令頻率,並且也會延遲執行週期,這都會使得記憶體存取操作效能降低。
為了提升SDRAM效能的問題,一般而言利用優化判別程序流程,及在硬體上改為管線化(pipeline)的設計,可以優化SDRAM指令操作,進而有效達到提升記憶體的頻寬,但其缺點是在控制上會加深其複雜化及設計難度,因此硬體的設計成本也會增加。
因此,本發明的目的之一在於提供一種SDRAM的控制器及相關的控制方法,其簡化了記憶體的控制設計,並可優化記憶體的操作效能,以解決先前技術的問題。
依據本發明一實施例,一種記憶體控制器包含有一位址解碼器以及一協議控制器,其中該位址解碼器用以對一接收訊號進行解碼操作以產生多個指令訊號,其中該多個指令訊號包含了存取一記憶體中多個區塊的指令訊號;以及該協議控制器用以根據目前該記憶體中所開啟的區塊及資料頁,來重新決定該多個指令訊號的執行順序,以使用該多個指令訊號來存取該記憶體。
依據本發明另一實施例,一種記憶體控制方法包含有:對一接收訊號進行解碼操作以產生多個指令訊號,其中該多個指令訊號包含了存取一
記憶體中多個區塊的指令訊號;以及根據目前該記憶體中所開啟的區塊及資料頁,來重新決定該多個指令訊號的執行順序,以使用該多個指令訊號來存取該記憶體。
100‧‧‧記憶體控制器
101‧‧‧匯流排
102‧‧‧中央處理器
104‧‧‧圖形處理器
106‧‧‧高清晰度多媒體介面元件
108‧‧‧記憶體
110‧‧‧位址解碼器
120‧‧‧協議控制器
200~208‧‧‧步驟
300‧‧‧收到新的存取指令
301‧‧‧資料頁檢查階段
302‧‧‧預充電階段
303‧‧‧開啟階段
304‧‧‧指令序列階段
305‧‧‧重開啟階段
306‧‧‧指令執行階段
307‧‧‧執行選擇階段
308‧‧‧暫存器
309‧‧‧SDRAM計時器
310‧‧‧區塊計時器
311‧‧‧更新控制器
313‧‧‧下一筆指令
400‧‧‧讀取/寫入資訊
401‧‧‧叢發長度資訊
402‧‧‧位址資訊
403‧‧‧區塊衝突資訊
501、504、601、604‧‧‧開啟指令
502、505、603、605‧‧‧讀取指令
503、602‧‧‧關閉指令
第1圖所示為依據本發明一實施例之記憶體控制器的示意圖。
第2圖為依據本發明一實施例之記憶體控制器存取記憶體的流程圖。
第3圖為依據本發明一實施例之硬體架構圖。
第4圖為存取指令之格式的示意圖。
第5圖為先前技術存取不同區塊的資料頁的時序圖。
第6圖為依據本發明一實施例之存取不同區塊的資料頁的時序圖。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。此外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段,因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或者透過其他裝置或連接手段間接地電氣連接至該第二裝置。
請參考第1圖,第1圖所示為依據本發明一實施例之記憶體控制器100的示意圖,如第1圖所示,記憶體控制器100耦接於記憶體108,且
透過匯流排101連接到中央處理器102、圖形處理器104、高清晰度多媒體介面(High Definition Multimedia Interface,HDMI)元件106...等等需要存取記憶體108的元件。記憶體控制器100主要的功能是控制讀取記憶體108的資料內容以及將資料寫入到記憶體108,並每隔一段時間執行自動更新以維持記憶體108中的資料內容值不變。此外,在第1圖中,為了簡潔起見,記憶體控制器100中只繪示了與本發明較為相關的位址解碼器110以及協議控制器120,但本領域具有通常知識者應能了解到記憶體控制器100亦包含了其他必須的電路元件。
在本實施例中,記憶體控制器100為一SDRAM控制器,而記憶體108則為一SDRAM。在許多SDRAM的相關規格書中,例如JESD79F、JESD79-2C、JESD79-3D等等,均有規定在對記憶體108進行寫入/讀取的控制上,需要遵守的操作,舉例來說:(1)針對寫入/讀取區塊的資料頁/列位址(row address),若對未開啟的區塊執行開啟指令(active),則下一個指令所需等待相對應時間如下:(1.1)若下一個指令為開啟指令且不同區塊,等待時間為tRRD;(1.2)若下一個指令為開啟指令且相同區塊,等待時間為tRC;(1.3)若下一個指令為預充電,等待時間為tRAS。(2)若對應的區塊已開啟了資料頁,則需要確認資料頁是否相同,若不同資料頁則需執行預充電指令(precharge)以關閉目前的資料頁,之後才可再度開啟所需的資料頁,而若執行行預充電指令,下一個指令皆需等待tRP的時間。(3)開啟對應區塊的資料頁後,才可執行寫入/讀取指令,而下一個寫入/讀取指令皆需等待tCCD的時間,詳細來說,若目前執行讀取指令,則當下一個指令為寫入指令時,等待時間為tRTW,而當下一個指令為預充電指令時其等待時間為tRTP;另一方面,若目前執行寫入指令,則當下一個指令為讀取指令時,等待時間為tWTR,而下一個指令為預充電指令時其等待時間為tWR。(4)由於記憶體108每隔tREFI時間內需對每列位址進行充電的動作,以維持在記憶體108內容值的正確性,否則資料會
有被遺失的風險,此時需執行自動更新/更新指令,且下一個指令皆需等待tRFC的時間;而執行自動更新/更新指令前,必須先執行全部預充電(Precharge all)/預充電指令。
根據上述的操作指令中,可以發現執行不同指令時,對下一個執行的指令會有不同的時間限制(等待時間),而在這些不同的時間限制中,又可以發現到某些指令彼此之間是沒有關聯的。此外,記憶體108中會具有多個區塊(bank),其中每一個區塊可具有不同的資料頁位址(列位址),彼此間並不互相影響。除此之外,在每次讀取/寫入資料時,都需確認相對應區塊的資料頁:是否已開啟。
因此,本發明根據存取記憶體108的指令及其控制特性,提出一個存取記憶體108方法,使得架構設計可以管線化及平行處理多個指令操作。請參考第2圖,第2圖為依據本發明一實施例之記憶體控制器100存取記憶體108的流程圖。參考第2圖,流程如下所述。
在步驟200中,記憶體控制器100接收到新的存取指令,以要求寫入/讀取記憶體108中的一區塊中的至少一資料頁。接著,在步驟201中,記憶體控制器100檢查該資料頁的狀況,其中若是該區塊中該資料頁尚未開啟,則進入步驟203以開啟該資料頁;若是該區塊中該資料頁已經開啟,則進入步驟204中以在指令序列(command queue)中等待被執行;若是該區塊中已經有其他資料頁被開啟,且先前也沒有該區塊的指令在等待或是正在執行,則進入步驟202中以關閉目前的資料頁;以及,若是該區塊中已經有其他資料頁被開啟,且有該區塊的指令在等待或是正在執行,則進入步驟204中以在指令序列中等待。
在步驟202中,在確認無違反指令時間限制後,執行預充電指令以關閉該區塊中目前開啟的資料頁,接著進入步驟203。
在步驟203中,在確認無違反指令時間限制後,執行開啟指令以開啟資料頁,接著進入步驟204。
在步驟204中,進入指令序列中的指令,會遵循先進先出(First in first out)的作法,當下一筆指令(Next command)在出口端等待進入步驟205以進行執行操作時,此時會進行判別是否需要重新開啟對應區塊的資料頁。進一步來說,若是此下一個指令和目前所執行的指令所存取的資料頁是位於不同的區塊,流程會進入步驟207以重新開啟資料頁,亦即會執行預充電操作和開啟指令,並等待目前指令執行結束後進入步驟205;而若是此下一個指令和目前所執行的指令所存取的資料頁是位於相同的區塊,則流程會等待目前指令執行結束後,再進入步驟207以重新開啟資料頁,亦即會執行預充電操作和開啟指令,並進入步驟205。
在步驟205中,執行目前的指令,且當目前的指令執行結束後,若步驟204中的指令序列中有指令在等待執行,則會將等待的指令進入步驟205以執行其指令。接著,進入步驟206以結束流程。
此外,記憶體108每隔一段時間需維持資料的正確性,因此,會觸發步驟202以關閉全部區塊或是對應的區塊,之後才會執行步驟208中的更新指令。
根據第2圖所示的操作流程,在硬體架構上可以輕易管線化設計,此外,可以再搭配相關所需的硬體資訊,使得每步驟流程都需確認是否被允
許提出記憶體指令控制,並再加上優化排序後選出該被執行的指令。而關於指令的優化排序,請參考圖式第3圖及以下相關敘述。
第3圖為依據本發明一實施例之硬體架構圖,其中第3圖中的階段302~307是由記憶體控制器100中的協議控制器120中的電路來實作執行,元件308可為一暫存器,其用來儲存目前正在開啟中的區塊及資料頁,SDRAM計時器309用來決定何時觸發自動更新/更新指令,區塊計時器310用來決定何時需要發出預充電指令,而更新控制器311用來根據SDRAM計時器309的計時結果來決定何時觸發自動更新/更新指令。此外,元件308、309、310、311係設置於記憶體控制器100中。
在第3圖中,首先,在步驟300中,收到新的存取指令,其中存取指令的格式可如第4圖所示,包含了讀取/寫入資訊400、叢發長度資訊(burst length)401、位址資訊402以及區塊衝突資訊(Bank conflict)403。
在資料頁檢查階段301中,需透過元件308中所記錄的目前正在開啟中的區塊及資料頁,以及存取指令中的位址資訊402,來確認相對應區塊的資料頁(列位址)是否衝突。之後,根據不同的狀態,進入預充電階段302、開啟階段303以及指令序列階段304,並在存取指令中的區塊衝突資訊403記錄是否需要重新開啟資料頁(列位址)。
在預充電階段302、開啟階段303以及指令序列階段304中,均需要透過SDRAM計時器309及區塊計時器310來確定是否可以執行此步驟指令,以避免違反SDRAM各個指令時間限制。
關於指令序列階段304,在硬體設計上,是使用類似FIFO的架構
的暫存器以儲存指令資訊。由於指令序列階段304的儲存空間有限,因此,當暫存器還有儲存空間時,才能接收上面步驟所傳來的指令;而若是暫存器中等待執行的指令數量已到達最大儲存數量,則上游步驟中的指令則需等待被接收。
此外,在指令序列階段304中,在出口端的指令定義為下一筆指令313,若下一筆指令313需要重新開啟資料頁(列位址),則會和在指令執行階段306中的指令比對是否位於相同區塊,若不同,則會進入重開啟階段305以提前執行重新開啟資料頁的操作,而當開啟結束後,就會將下一筆指令313從指令序列階段304推出並進入指令執行階段306。反之,若下一筆指令313需要重新開啟的資料頁與在指令執行階段306中的指令所存取的資料頁位於相同區塊,則會等待指令執行階段306的目前執行指令操作結束後,才會進行重新開啟的動作,以避免影響在指令執行階段306的正在讀取/寫入位址的指令。
此外,在指令序列階段304中,要先判斷是否須要開啟資料頁。因為若執行自動更新/更新指令,會先執行預充電指令(precharge all/precharge)會將所有的區塊或是特定的區塊關閉,若先前已關閉區塊的資料頁,則在指令序列階段304會再提出開啟動作。之後根據元件308及區塊衝突資訊403以執行一次或多次連續同為讀取/寫入指令。當執行結束時,確認下一筆指令313是否提出流入需求,以利下次連續執行讀取/寫入。
在執行選擇階段307中,會根據預充電階段302、開啟階段303、重開啟階段305、指令執行階段306所處理到的指令來進行執行優先權的排序,以使得記憶體控制器100可處理多個讀取/寫入的需求,並根據不同的區塊,提前判斷執行相對應列位址設定的操作,以使得當需要執行讀取/寫入指
令操作時,可以縮短等待時間。此外,在執行的優先順序上,大致上依序是自動更新/更新指令、指令執行階段306、重開啟階段305、開啟階段303以及預充電階段302。
舉一例來說明第3圖所示的架構如何可以改善記憶體控制器100存取記憶體108效率。請參考第5圖及第6圖,其中第5圖為先前技術存取不同區塊的資料頁的時序圖,而第6圖為依據本發明一實施例之存取不同區塊的資料頁的時序圖。
請先參考第5圖所示的時序圖,假設記憶體控制器100需要先讀取第一區塊中第0資料頁的資料,之後再讀取第二區塊中第0資料頁中的資料,且第二區塊中的第1資料頁正在開啟中,則在先前技術的作法中,記憶體控制器100會先通過指令接腳(command pins)傳送開啟指令501(open_b1p0)至記憶體108以開啟第一區塊的第0資料頁,之後再發送讀取指令502(rd_cmd0)至記憶體108以通過資料接腳(data pins)自記憶體108中讀取資料data0_0、data0_1、data0_2、data0_3,接著,記憶體控制器100再傳送關閉指令503(close_b2p1)至記憶體108以關閉第二區塊的第1資料頁,接著,記憶體控制器100傳送開啟指令504(0pen_b2p0)至記憶體108以開啟第二區塊的第0資料頁,之後再發送讀取指令505(rd_cmd1)至記憶體108以自記憶體108中讀取資料data1_0、data1_1、data1_2、data1_3。在第5圖所示的操作中,由於每一個指令之間會有必需的等待時間,且讀取指令與開始讀取資料之間也有需要的等待時間,因此,在資料的讀取上會比較沒有效率。
請參考第6圖所示的時序圖,假設記憶體控制器100需要先讀取第一區塊中第0資料頁的資料,之後再讀取第二區塊中第0資料頁中的資料,且第二區塊中的第1資料頁正在開啟中,則在根據本發明實施例的作法中,
記憶體控制器100會先通過指令接腳傳送開啟指令601(open_b1p0)至記憶體108以開啟第一區塊的第0資料頁,緊接著,由於關閉第二區塊中第1資料頁的關閉指令602與開啟指令601之間不需要長的等待時間,因此,在開啟指令601之後,記憶體控制器100可立即傳送關閉指令602(close_b2p1)至記憶體108以關閉第二區塊的第1資料頁。接著,記憶體控制器100再發送讀取指令603(rd_cmd0)至記憶體108以要求讀取記憶體108中的資料,再接著,由於開啟第二區塊中第0資料頁的開啟指令604與讀取指令603之間不需要長的等待時間,因此,在讀取指令603之後,記憶體控制器100可立即傳送開啟指令604(open_b2p0)至記憶體108以開啟第二區塊的第0資料頁。接著,記憶體108開始因應讀取指令603以透過資料接腳回傳資料data0_0、data0_1、data0_2、data0_3,而在資料data0_0、data0_1、data0_2、data0_3的回傳過程中,記憶體控制器100可再發送讀取指令605(rd_cmd1)至SDRAM 108以要求讀取記憶體108中第二區塊中第0資料頁中的資料,因此,在資料data0_0、data0_1、data0_2、data0_3傳送完畢之後,記憶體108可以立即地因應讀取指令605以透過資料接腳回傳資料data1_0、data1_1、data1_2、data1_3。
與第5圖所示的先前技術相比,在第6圖的流程中,由於關閉第二區塊第1資料頁與開啟第二區塊中第0資料頁的步驟被提前執行,因此,記憶體108在因應讀取指令603回傳資料data0_0、data0_1、data0_2、data0_3之後,可以立即地因應讀取指令605回傳資料data1_0、data1_1、data1_2、data1_3,使記憶體控制器100可以透過資料接腳不斷地接收到所需的資料,增加記憶體控制器100的存取效率。
簡要歸納本發明,在本發明的記憶體控制器及相關的控制方法中,係透過協議控制器的對於存取指令的重新排序,優化記憶體的操作效能,尤其是可以提前開啟其後等待存取的資料頁,使得記憶體控制器與記憶體之間
的資料傳遞可以盡可能的連續,以提升記憶體頻寬的使用率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
300‧‧‧收到新的存取指令
301‧‧‧資料頁檢查階段
302‧‧‧預充電階段
303‧‧‧開啟階段
304‧‧‧指令序列階段
305‧‧‧重開啟階段
306‧‧‧指令執行階段
307‧‧‧執行選擇階段
308‧‧‧暫存器
309‧‧‧SDRAM計時器
310‧‧‧區塊計時器
311‧‧‧更新控制器
313‧‧‧下一筆指令
Claims (12)
- 一種記憶體控制器,包含有:一位址解碼器,用以對一接收訊號進行解碼操作以產生多個指令訊號,其中該多個指令訊號包含了存取一記憶體中多個區塊的指令訊號;以及一協議控制器,耦接於該位址解碼器,用以根據該多個指令訊號所需要存取該記憶體中的區塊及資料頁位址,來重新決定該多個指令訊號的執行順序,以根據該多個指令訊號來存取該記憶體。
- 如申請專利範圍第1項所述之記憶體控制器,其中該協議控制器會循序對該多個指令進行檢查以判斷是否有區塊衝突(bank conflict)的情形發生,並根據判斷結果以將該多個指令訊號分別進入一預充電階段、一開啟階段、或是一指令序列階段,其中該預充電階段為關閉相對應區塊中的資料頁,該開啟階段為開啟相對應區塊中的資料頁,且該指令序列階段為循序儲存所進入的指令;該協議控制器另根據目前該記憶體中所開啟的區塊及資料頁,以決定該指令序列階段所循序輸出的指令進入一重開啟階段或是一指令執行階段,其中該重開啟階段為重新開啟相對應區塊中的資料頁;以及該協議控制器根據該關閉階段、該開啟階段、該重開啟階段以及該指令執行階段目前所對應到的指令訊號,以決定需要先執行哪一個階段的操作。
- 如申請專利範圍第2項所述之記憶體控制器,其中該協議控制器根據該預充電階段、該開啟階段、該重開啟階段以及該指令執行階段目前所對應到之指令訊號所需要存取的區塊,以決定需要先執行哪一個階段的操作。
- 如申請專利範圍第3項所述之記憶體控制器,其中該協議控制器優先執行該預充電階段、該開啟階段、該重開啟階段以及該指令執行階段中所需要存取的區塊不同於目前該記憶體中所開啟的區塊的階段操作。
- 如申請專利範圍第1項所述之記憶體控制器,其中該多個指令訊號依序包含了用來存取該記憶體中一第一區塊的一資料頁以及存取一第二區塊的一資料頁的指令訊號,且在該記憶體控制器存取完該第一區塊的該資料頁的資料之前,該協議控制器便會傳送指令至該記憶體以開啟該第二區塊的該資料頁,並要求存取該第二區塊的該資料頁。
- 如申請專利範圍第5項所述之記憶體控制器,其中當該第二區塊有其他資料頁正處於開啟時,該協議控制器會依序傳送一第一開啟指令至該記憶體以開啟該第一區塊的該資料頁、一關閉指令至該記憶體以關閉該第二區塊目前開啟中的其他資料頁、一第一讀取指令至該記憶體以要求存取該第一區塊的該資料頁、一第二開啟指令至該記憶體以開啟該第二區塊的該資料頁、以及一第二讀取指令至該記憶體以要求存取該第二區塊的該資料頁。
- 一種記憶體控制方法,包含有:對一接收訊號進行解碼操作以產生多個指令訊號,其中該多個指令訊號包含了存取一記憶體中多個區塊的指令訊號;以及根據目前該記憶體中所開啟的區塊及資料頁,來重新決定該多個指令訊號的執行順序,以使用該多個指令訊號來存取該記憶體。
- 如申請專利範圍第7項所述之記憶體控制方法,其中根據目前該記憶體 中所開啟的區塊及資料頁,來重新決定該多個指令訊號的執行順序的步驟包含有:循序對該多個指令進行檢查以判斷是否有區塊衝突(bank conflict)的情形發生,並根據判斷結果以將該多個指令訊號分別進入一預充電階段、一開啟階段、或是一指令序列階段,其中該預充電階段為關閉相對應區塊中的資料頁,該開啟階段為開啟相對應區塊中的資料頁,且該指令序列階段為循序儲存所進入的指令;根據目前該記憶體中所開啟的區塊及資料頁,以決定該指令序列階段所循序輸出的指令進入一重開啟階段或是一指令執行階段,其中該重開啟階段為重新開啟相對應區塊中的資料頁;以及根據該關閉階段、該開啟階段、該重開啟階段以及該指令執行階段目前所對應到的指令訊號,以決定需要先執行哪一個階段的操作。
- 如申請專利範圍第8項所述之記憶體控制方法,其中根據該預充電階段、該開啟階段、該重開啟階段以及該指令執行階段目前所對應到的指令訊號,以決定需要先執行哪一個階段的操作的步驟另包含有:根據該預充電階段、該開啟階段、該重開啟階段以及該指令執行階段目前所對應到之指令訊號所需要存取的區塊,以決定需要先執行哪一個階段的操作。
- 如申請專利範圍第9項所述之記憶體控制方法,其中根據該預充電階段、該開啟階段、該重開啟階段以及該指令執行階段目前所對應到的指令訊號,以決定需要先執行哪一個階段的操作的步驟另包含有:優先執行該預充電階段、該開啟階段、該重開啟階段以及該指令執行階段中所需要存取的區塊不同於目前該記憶體中所開啟的區塊的階段操作。
- 如申請專利範圍第7項所述之記憶體控制方法,其中該多個指令訊號依序包含了用來存取該記憶體中一第一區塊的一資料頁以及存取一第二區塊的一資料頁的指令訊號,該方法係應用於一記憶體控制器中,且該方法另包含有:在該記憶體控制器存取完該第一區塊的該資料頁的資料之前,該記憶體控制器便會傳送指令至該記憶體以開啟該第二區塊的該資料頁,並要求存取該第二區塊的該資料頁。
- 如申請專利範圍第11項所述之記憶體控制方法,其中在該記憶體控制器存取完該第一區塊的該資料頁的資料之前,該記憶體控制器便會傳送指令至該記憶體以開啟該第二區塊的該資料頁,並要求存取該第二區塊的該資料頁的步驟包含有:當該第二區塊有其他資料頁正處於開啟時,依序傳送一第一開啟指令至該記憶體以開啟該第一區塊的該資料頁、一關閉指令至該記憶體以關閉該第二區塊目前開啟中的其他資料頁、一第一讀取指令至該記憶體以要求存取該第一區塊的該資料頁、一第二開啟指令至該記憶體以開啟該第二區塊的該資料頁、以及一第二讀取指令至該記憶體以要求存取該第二區塊的該資料頁。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104104110A TWI541647B (zh) | 2015-02-06 | 2015-02-06 | 記憶體控制器及相關的控制方法 |
US14/977,661 US20160231949A1 (en) | 2015-02-06 | 2015-12-22 | Memory controller and associated control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104104110A TWI541647B (zh) | 2015-02-06 | 2015-02-06 | 記憶體控制器及相關的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI541647B true TWI541647B (zh) | 2016-07-11 |
TW201629771A TW201629771A (zh) | 2016-08-16 |
Family
ID=56566792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104104110A TWI541647B (zh) | 2015-02-06 | 2015-02-06 | 記憶體控制器及相關的控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160231949A1 (zh) |
TW (1) | TWI541647B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099778B2 (en) * | 2018-08-08 | 2021-08-24 | Micron Technology, Inc. | Controller command scheduling in a memory system to increase command bus utilization |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266734B1 (en) * | 1999-07-29 | 2001-07-24 | Micron Technology, Inc. | Reducing memory latency by not performing bank conflict checks on idle banks |
US6622225B1 (en) * | 2000-08-31 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | System for minimizing memory bank conflicts in a computer system |
US6865631B2 (en) * | 2000-12-14 | 2005-03-08 | International Business Machines Corporation | Reduction of interrupts in remote procedure calls |
US7093059B2 (en) * | 2002-12-31 | 2006-08-15 | Intel Corporation | Read-write switching method for a memory controller |
US9134919B2 (en) * | 2012-03-29 | 2015-09-15 | Samsung Electronics Co., Ltd. | Memory device including priority information and method of operating the same |
US9336164B2 (en) * | 2012-10-04 | 2016-05-10 | Applied Micro Circuits Corporation | Scheduling memory banks based on memory access patterns |
-
2015
- 2015-02-06 TW TW104104110A patent/TWI541647B/zh active
- 2015-12-22 US US14/977,661 patent/US20160231949A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
TW201629771A (zh) | 2016-08-16 |
US20160231949A1 (en) | 2016-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9740431B2 (en) | Memory controller and method for interleaving DRAM and MRAM accesses | |
CN102207916B (zh) | 一种基于指令预取的多核共享存储器控制设备 | |
EP2943956B1 (en) | Memory device having an adaptable number of open rows | |
JP5043662B2 (ja) | メモリの制御方法、メモリ・システム | |
JP2006514385A (ja) | バッファリングされたライト及びメモリページ制御 | |
TWI253563B (en) | Read-write switching method for a memory controller | |
US9870812B2 (en) | Memory system with timing overlap mode for activate and precharge operations | |
US7461216B2 (en) | Memory controller | |
JP2014154119A (ja) | メモリ制御装置及び半導体記憶装置 | |
US8688944B2 (en) | Memory sharing between embedded controller and central processing unit chipset | |
JPH11224221A (ja) | メモリ制御装置および方法 | |
TWI541647B (zh) | 記憶體控制器及相關的控制方法 | |
CN105988951B (zh) | 存储器控制器及相关的控制方法 | |
US9047199B2 (en) | Reducing penalties for cache accessing operations | |
US9037806B2 (en) | Reducing store operation busy times | |
US8797823B2 (en) | Implementing SDRAM having no RAS to CAS delay in write operation | |
JP2010244408A (ja) | メモリコントローラおよびメモリインターフェース方法 | |
US6385094B1 (en) | Method and apparatus for achieving efficient memory subsystem write-to-read turnaround through read posting | |
KR100716947B1 (ko) | 커맨드 실행 조정방법 및 그 장치 | |
JP2001142840A (ja) | Dmaコントローラ回路およびメモリ制御方法 | |
JPH10125062A (ja) | メモリ制御装置 | |
JP2011100273A (ja) | メモリ制御回路 | |
JP2011100295A (ja) | メモリ制御回路 |