TW200925859A - Detection of speculative precharge - Google Patents
Detection of speculative precharge Download PDFInfo
- Publication number
- TW200925859A TW200925859A TW097132032A TW97132032A TW200925859A TW 200925859 A TW200925859 A TW 200925859A TW 097132032 A TW097132032 A TW 097132032A TW 97132032 A TW97132032 A TW 97132032A TW 200925859 A TW200925859 A TW 200925859A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- page
- given
- controller
- access
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
200925859 : 九、發明說明: 【發明所屬之技術領域】 .. 本發明所揭示係關於記憶體系統領域,更詳細地說, *係關於記憶體控制器之設計。 【先前技術】 隨著近期電腦系統複雜度的增加,技術上的加強導致 於處理器速度之增加,系統效能的最佳化變得越來越困 難’系統效能常取決於該系統之記憶體頻寬(bandwidth) 〇和總體延遲(latency)。因此,以最低之總體延遲來存取記 憶體’並且使用最高之記憶體頻寬可以增進且(或)最佳化 該系統的效能。當存取該記憶體和完成給定記憶體要求 (request)所需要之時間增加,該系統便會慢下來。因此, 任何存取時間上的減少和(或)該記憶體之總體處理能力的 增加都可以増進系統的效能。.
很夕的系統使用動態隨機存取記憶體(J)ynam丨C
〇 random access memory,DRAM),包含桌上型電腦、圖形轉 換卡(graphic adapter card )和筆記型電腦和其他。DRAM 裝置提供許多優於其他記憶體技術的優點,包含最常被注 思、的靜態隨機存取記憶體(static random access memory, SRAM)裝置。這些優點中最重要的係較高之儲存密度和較少 之功率消耗。然而,這些優點來自於當該DRAM裝置内之記 憶體單元和其他組件接受每一個接下來的存取所耗費之大 量時間延遲,例如在讀取/寫入存取的前後。這種延遲包括 進行列預充電(row precharge)、列更新(row refresh)^ 94440 200925859 : 列激活(row act i vat ion)所需的時間。為了在遭遇這些延 遲時可以更精確地管理並控制記憶體的操作,額外的指令 (被傳送於讀取/寫入存取之間)被創造也因此造成額外的 «面積消耗(overhead)。現今所使用之DRAM中有很高的比重 _都屬於雙倍資料傳輸率同步動態隨機存取記憶體 (double-data-rate synchronous DRAM,DDR SDRAM)家族。 001^01^^(包含001^和001^3)藉由在以該系統時脈為 基礎之閃控信號(strobe signal)之上升邊緣和下降邊緣 ❹(rising and fal 1 ing edges)轉換資料,相較於單倍資料 傳輸率SDRAM可以達到較高之頻寬。這樣的方法有效地使 該轉換率加倍,因此改善了系統效能而不需要增加該記憶 體匯流排之操作頻率。為了進一步增進DRAM的效能,該記 憶體元件往往以分頁組構(page configuration)被存取, 其中該DRAM的列可以被激活或開啟,該列位址控制器信號 (row address strobe, RAS)不需要維持確立(asserted), 〇同時利用個別的行位址控制器(column address strobe, CAS)信號進行多重讀取或寫入。這樣的操作容許在相同列 之内連續地讀取或寫入以避免該延遲(通常與預充電和列 存取有關),並且於突然增加的資料轉換(burst data transfers)中提供顯著的系統效能改善。 一般而言,在進行記憶體分頁讀取或寫入記憶體分頁 之操作前’該記憶體分頁需要被開啟。該DRAM控制器可以 在讀取/寫入指令後立即地關閉該分頁,或決定讓該分頁保 持開啟。然而,該DRAM控制器之該有限容量可能妨礙該 7 94440 200925859 .:DRAM能夠處理許多之開啟分頁。因此,該DRAM控制器被 要求關閉一些開啟的分頁,即使保持該等分頁.開啟將可消 除一些於未來之轉換中之存取延遲。因此,該DRAM控制器 *之限制可能成為利用DRAM運作優點之障礙。 ' 於比較過稍後將敘述之本發明和以上之先前技術 後,對於習知技術者而言其他與先前技術相關之議題將變 得顯而易見。 【發明内容】 ❹ 一種系統(如:電腦系統)可能包括連接至DRAM匯流 排之DRAM裝置,以及被組構以管理和控制該DRAM裝置之 存取之DRAM控制器。如果該分頁尚未開啟,則在記憶體分 頁可以被存取以進行讀取或寫入操作前,該記憶體分頁可 能需要被開啟。該DRAM控制器可能於存取該分頁之讀取/ 寫入要求之後接著立即關閉先前開啟之分頁,或者該DRAM 控制器可能決定將該分頁保持開啟。如果該DRAM控制器之 0容量具有限制而無法處理過多開啟之分頁,於一些例子中 該DRAM控制器可能被要求關閉一個或更多個開啟之分 頁,即使將該些分頁保持開啟可以藉由消除所需要之額外 激活(α開啟新分頁)和預充電(以關閉開啟之分頁)指令以 達到相當程度上減少記憶體之存取時間的效果。該DRAM 匯流排之總體處理能力(throughput)可以被改善,儘管該 DRAM控制器之容量具有限制而無法同時處理過多開啟之 分頁。於一組實施例中,該DRAM控制器可以被組構以根據 有效率之分頁策略來操作,進而決定那些開啟之分頁保持 8 94440 200925859 '開啟和那些開啟之分頁被關閉,以將激活和預充電指令減 至最少,該等激活和預充電指令需要在接下來之讀取/寫入 •存取過程中被發出。 ; 記憶體控制器(如:dram控制器)可以被組構以根據三 層次自動預充電預測演算法來操作以改善記憶體之存取。 该DRAM控制器可以藉由追蹤每一個DRAM記憶庫之 刀頁活動之歷史來最佳化分頁之使用。給定記憶庫之最近 存取的歷史可以致能(印化丨幻該DRM控制器以決定是否 ❹在讀取/寫入操作之後開始自動預充電對應於該被存取之 分頁的該列,或是否保持開啟該被存取之分頁。如果該分 頁應該被保持在開啟,則給定記憶庫之最近存取之歷史也 可以決定該分頁在被關閉之前應該被保持開啟(和閒置)多 久的時間。因此,該DRAM控制器可以被組構以每記憶庫為 基礎追蹤分頁命中(對於DRAM之特定記憶庫中已開啟之列 所提出之要求)、分胃落空(對於DRAM中特定記憶庫之列所 ❹提出之要求,其中該特定記憶庫不具有任何已開啟之列)、 以及分頁衝突(對於dram中特定記憶庫之列所提出之要 求,其中該特定記憶庫已具有已開啟之其他不同列)之歷 史,但對並非以記憶庫為基礎之以第一階為基礎之歷 出自動充電之預測。 於一組實施例中,該DRAM控制器可以包含分頁表 (Page Table),其t每一條項目(entry)可記錄對給定記憶 體記憶庫之最後四筆歷史存取。該mam控制器也可包含記 憶體記憶庫歷史表(Memory Bank Hist〇ry Table>於記憶 9 94440 200925859 •體要求臝得裁決之後,該記憶體控制器可以指示 (indication)來更新該記憶體記憶庫歷史表,其中該指示 •係是否該要求在該給定記憶體記憶庫中所對應= 頁與該先剛之記憶體要求相同。這種方式實上 ^ 否該要求係分頁命中不同,因為分頁落空可能會二直要求 在給定記憶庫中最近被存取過(即使現在已關閉)之記情體 分頁。 " 一旦有要求透過裁決而被選定,則可進行預測。根據 ©選定,該最後Μ個(如:三個)對該有疑慮之記憶庫之存取 加上剛才選定之該存取可以用來對該記憶體記憶庫歷史表 才示示(i ndex)。該§己憶體a憶庫歷史表可以於完成預測後之 該週期(cycle)被更新。該更新可以對於被該對應之M+1 位元(如:4位元,其中Μ等於3)記憶庫歷史資訊(1^故 history information)所標示之位置中所儲存之值來進 行,其中該M+1位元記憶庫歷史資訊儲存於有疑慮之該記 ❹憶庫之該DRAM分頁表。於一組實施例中,該預測之更新可 以基於可靠計數器(confidence counter)而發生。記憶體 記憶庫歷史表中每一條項目均可以包含]^位元(如:2位元) 之可靠計數值。如果該預測係正確的,該DRAM控制器可以 增加該可靠計數值(於最大值飽和)。如果該預測係不正確 的,該DRAM控制器可以減少該可靠計數值。該dram控制 盗接著可以更新該預測值’只要該計數器達到一特定值 (如:0)。於其他實施例中,該計數值可以由低開始增加, 而該最大值可被用以當作該預測值可以被更新之指示。該 10 94440 200925859 -歷史、預測及可靠計數值之更新不可對於要求進行,該等 要求之自動預充電決定(aut〇-precharge decision)係決 .定於記憶庫命中(Bank Hit)或記憶庫衝突(Bank .Conflict),如下所進一步描述。 疋否彳丁列中其他迫切之要求被轉移目苗準向(target toward)特定DRAM記憶庫之狀態可能取代該被該記憶體記 憶庫歷史表中之該預測值所指示之自動預充電預測。例 如,儲存於該記憶體記憶庫歷史表中並對應於該當前記憶 ❺體要求之該預測值可以預測該當前之讀取/寫入要求應該 被送至該具有被致能之自動預充電之DRAM。然而,該要求 佇列可以包含一個或更多個迫切之要求,該等迫切之要求 與該當則§己憶體要求正在猫準相同之dram分頁。這種情形 才曰出自動預充電可能無法於此種案例中帶來好處。 於-組實施例中,一旦迫切之記憶體要求被選定為該 當則記憶體要求(如:由裁決產生),產生之記憶庫命中和 ❹記憶庫衝突信號(分別對應於該有疑慮之記憶體記憶庫内 之潛在分頁命中和分頁落空)可以被用以限制該記憶庫歷 史預測。如果該DRAM控制器判斷沒有任何該迫近之記憶體 要求將造成分頁命中或分頁衝突(也就是說,沒有任何該迫 近之記憶體要求係要求存取該有疑慮之記憶體記憶庫》該 DRAM控制器可根據該記憶庫歷史預測針對該當前記憶體 要求來設定該自動預充電(如上所述)。如果沒有任何迫切 之記憶體要求將會造成分頁命中,但該迫切之記憶體要求 中至少一個將會造成分頁衝突,則該自動預充電將會針對 π 94440 200925859 該當4記憶體要求而被致能。如果該迫切之記憶體要求中 至少一個將會造成分頁衝突,則該自動預充電將會針對該 •當前記憶體要求而被停用。 / 如果該讀取/寫入要求沒有自動預充電,則該DRAM控 制器可以使用閒置週期計數器(id 1 e eye 1 e counter)以判 斷已開啟之分頁於維持閒置一段特定長度時間後是否應該 被關閉。於一個實施例中’該DRAM分頁表中之每一條項目 均可以追蹤給定之已開啟記憶體分頁已開啟多久的時間。 ® ‘該閒置週期计數器到達可編程之極限(pr〇grammabie 1 imi t),該DRAM控制器可以關閉該已開啟之記憶體分頁。 於可編程之固定數量之時脈週期(pr〇grammable Hxed number of clock cycle)之後’該DRAM控制器可以關閉非 作用(inactive)之分頁,或者於固定數量之時脈週期之後 關閉非作用之分頁’其中該-固定數量之時脈週期係以該 DRAM分頁表項目歷史(dram page entry history)為基礎 ❹被動態調整。 【實施方式】 如此處所使用的,「對給定記憶體記憶庫提出記憶體 要求」或「對已開啟/關閉之記憶體分頁提出記憶體要求」 意指該記憶體要求正在要求存取該給定記憶體記憶庫和 (或)該已開啟/,已關閉之記憶體分頁。換言之,例如該詞句 「對已開啟之分頁提出記憶體要求」等同於「記愫體要长 正在要求存取已開啟之分頁」。類似地,「記憶體要求瞎 準給疋記憶庫」、或「§己憶體要求晦準已開啟/已關閉之分 94440 12 200925859 頁」意指該記憶體要求正在要求對該給定記憶體記憶庫和 (或)該已開啟/已關閉之記憶體分頁作存取。 . 第1圖顯示基本範例系統10 0之方塊圖,範例系統1 〇 〇 *可為電腦系統’其中處理單元113係組構有被連結至記憶 體控制器103之處理器核心1 〇 1。記憶體控制器1 〇3可被 連接至記憶體匯流排111,透過記憶體匯流排Η丨,記憶體 控制器103可以調整對記憶體1〇5之存取以促進處理單元 113和記憶體105間之資料交換。於所屬技術領域中具有 ❹通常知識者將了解系統1 〇〇可以多種作法被實施,圖示所 顯示為基本之組構,其中記憶體之存取由記憶體控制器所 控制。 於一組實施例中,記憶體控制器1〇3可包括:次電路 (sub circuit)和/或組件,包含用以支持系統1〇〇所需要 之功能範圍(range of functionality)之暫存器。例如, 記憶體控制器103可以包含許多種緩衝器(buffer)以緩衝 ❹於記憶體105和處理器核心1〇1間被轉換之資料,記憶體 控制器103也可被分割成多個次控制方塊(sub_c〇ntr〇1 blocks)。類似地,記憶體1〇5可以包含許多種記憶體元件 或多種組構之記憶體裝置,以透過記憶體匯流排U1來適 應與3己憶體10 3間之介面。具有許多種可能以及可考慮之 實施例。 於一組實施例中,記憶體105可以為DRAM,而記憶體 控制态10 3因而為dram控制器。於又一組實施例中,記憶 體105可以包括:雙倍資料傳輸率DRAM(DDR DRAM),如: 13 94440 200925859 由ddm控制器103所控制之卯R3記憶體。於一組實施例 中⑽AM控制器1 〇3可以被組構以管理並控制對⑽μ裝 ,置中記憶體分頁之存取。於記憶體分頁被存取以進行讀取 •或寫入操作之前,該記憶體分頁必須被開啟。卯趟控制器 103可以跟隨於該讀取人寫入存取之後關閉已開啟之分 頁,或可以決定保持該分頁為開啟。於一組實施例中,跗訄 控制β 103可以被組構以根據有效率之分頁策略來操作, 因此改善DRAM匯流排lu之總體處理能力即使麵控制 器103無法立即地處理大量之開啟之分頁,其中該分頁策 略係被設計以減少於接下來之讀取/寫入存取間所發出之 激活和預充電指令。 當與DRAM 105相連繫,DRAM控制器1〇3可以被操作 以處理導致三種不同型態之錢體存取之讀取和寫入要 求。該第-種型態之記憶體存取對應於對DRAM 1〇5中特定 記憶庫之列提出之要求,其中該特定記憶庫具有另一個已 開啟且不同之列,此種存取被稱為分頁衝突。於分頁衝突 之案例中’該分頁首先經由預充電指令而被關閉,然後經 由激活指令被開啟,以使DRAM1〇5準備好接受要求之讀取 /寫入操作。該第二種記憶體存取對應於對DRAM 1〇5中特 定記憶庫之列提出之要求’其中該特定記憶庫不具有任何 已開啟之列,此種存取被稱為分頁落空。於分頁落空之案 例中,該v頁首先經由激活指令而被開啟,以使DRAM j 準備好接受要求之讀取/寫人操作。該第三種記憶體存取對 應於對DRAM 105中特定記憶庫之列提出之要求,其中該特 94440 14 200925859 二憶庫不具有已開啟之列,此種存取被稱為分頁命中。 ^頁命中之案财,該要求之讀取操作可被進行而 .:,,、需準備dram 105以接受要求之讀取/ 不需要先進行額外之指令。 口此 〇 n因此,較佳將DRAM控制器103以將分頁命中之數量 2大化以及將分頁衝突和分頁落空之數量最小化之方式组 構以重新排序讀取/寫人要求。結果,當與要求流(咖酿 0 requests)t^^lt^^(stream of addresses) 未㈣分頁命中,則_控制器1()3可以被操作以有助於 分頁洛空為下一個較好之選擇而不是分頁衝突。因此,為 了達到最佳之效能,DRAM控制器i 〇 3可以被組構以進行三 層次自動預充電預測演算法。 第2圖係圖示出DRAM控制器1〇3被組構以進行三層 次自動預充電預測演算法之一個可能實施例。於,曰施 例中’ DRAM控制器!03可以利用DRM分頁表!〇6來支援 ❹達特定數量之開啟分頁(於一些實施例中為犯個開啟分 頁)。DRAM分頁表106可以晶片選擇信號和記憶庫選擇信 號為基礎而被下標示,因而涵蓋了每一個記憶庫,並且可 以被用於儲存列位址和每一個記憶庫最近之記憶庫歷史資 訊。繼Μ分頁们06也可被用於判斷是否讀取/寫入要求 導致^頁命中、分頁落空或分頁衝突,且判斷是否應該對 於當則之讀取/寫入要求進行自動預充電。位址地圖 _address卿)可以從處理器核心m接收對應於當前 讀取/寫入要求之位址,並且可以產生該標示(查詢)信號以 94440 15 200925859 :查詢(lookuP)對應於DRAM分頁表1〇6中該當前要求之分 頁。 • 輸入之指令可被放置於DRAM控制器要求佇列114(DCQ) ,中,該DCQ 114可以被組構以容納特定數量之項目(於一些 貝施例中為12條項目)。DCQ 114可因此被組構以儲存讀 取、寫入、預先取得(prefetch)和DRAM位址資訊、分頁命 中/落空/衝突資訊以及要求優先資訊,該要求優先資訊對 應於該寫入、讀取和預先取得指令。一經獲得該以上資訊, 〇 DCQ114便可以被分配(aii〇cated),而一旦該完整之指令 序列(command sequence)已被完成則DCQ 114便可以被反 分配(deal locate)。此外,DCQ 114可以於每一次DRAM分 頁表106改變時被更新。該排隊中之指令之裁決係由裁決 器112所進行,該裁決係根據特定之優先計劃和(或)多種 要求類型之優先牲,並且以至少一個接收自DRAM.分頁表 1〇6之分頁資訊和接收自時序檢測方塊110(timing check ❹block)之時序檢測資訊為基礎。一般而言,對於輸入指令 之裁決可根據許多可能之優先計劃中的一個或更多個來進 行’而每一個優先計劃係根據特定之系統效能和記憶體效 能需求而被設計。例如,較舊之要求(〇lder request)可以 藉由額外之機制來接收到超過較近之要求之優先權,以適 §地避免最舊之項目(〇ldest entry)被置之不理超過特定 次數。其他之可能性包含選擇分頁命中超過分頁落空,其 中分頁落空則被選擇超過分頁衝突。熟悉習知之技術者將 可以了解到分頁利用之最佳化也可以於多種不同之裁決電 16 94440 200925859 -路中進行,而其他許多優先計劃(雖然這裡沒有明確揭露) 係可能且可預期的。一旦來自於DCQ 114之指令經由裁決 •而被選疋,則該選定之指令(和與該指令相關之位址資訊) 將、屋由夕工器116並透過墊片(pad)124a而被提供至Dram 105 〇 ⑽AM控制器103也可以分別包含後端讀取和寫入佇列 120和118。寫入佇列118可以於指令部份已完成以及 DCQ114已經被反分配之後被用來儲存特定數量(於一些實 〇施例中為6)之寫入信號要求。寫入佇列可以因此促造 讀取之資料以更精確之時間方式自該記憶體控制器資料緩 衝器離開。讀取佇列12〇可以於指令部份已完成以及 DCQ114已經被反分配之後被用來儲存特定數量(於一些實 施例中為6)之寫入信號要求。讀取佇列120可以因此促進 (在DDR記憶體的例子中)DDR觸發信號dqs和資料接收器 (receiver)之控制’並促進先進先出(FIFO)缓衝器112之 ❽接收以為了轉換資料至該反相時脈領域。 隹自動預充電預測之分頁利用最佳化: DRAM控制器1〇3可以藉由追蹤DRAM 105中每一個記 憶庫之分頁污動的歷史來將分頁利用最佳化。對於任何給 定記憶庫之最近要求之歷史可以幫助判斷是否dram控制 斋103應該跟隨在讀取/寫入操作之後開始自動預充電,或 保持該記憶體分頁為開啟。如果決定該分頁應該被保持開 啟,該歷史也可以被用以決定該分頁在被關閉之前應該被 保持開啟(可能雄持閒置)多久之時間。於一組實施例中, 17 94440 200925859 DRAM 105中每一個分頁之歷史係可以被追蹤。然而,當以 上方法不能被實現於硬體中之情況下,DRAM控制器1 〇 3可 .•以被組構以根據記憶庫為基礎(如··使用Dram分頁表1〇6) *來追縱分頁命中、分頁落空和分頁衝突之歷史,同時對於 非以記憶庫為基礎之以第一階記憶庫為基礎之歷史(利用 記憶庫歷史表108和DRAM分頁表106)作出預測。 記憶廉展步: Ο
Q 如前所述,DRAM控制器1〇3可以追蹤DRAM 105中每 一個記憶庫之分頁活動的歷史。記憶庫歷史表1〇8中每一 條項目均可以包含預測,該預測係基於(儲存於肫趨分頁 表106中之)給定記憶體記憶庫中最後四個分頁存取之歷 史。於要求從裁決器112赢得裁決而變成該當前之要求 後,該記憶庫歷史可以根據是否該當前之要求與對該記憶 庫之該先刚之要求均係對於該記憶庫内相同之⑽想分頁 所提出而被更新。換言之,因為追蹤係根據記憶庫為基礎 來進行,這種指示與是否該當前之要求為分頁命中之指示 有些許不同。例如’當前之要求可能導致分頁落空,但該 當前之要求可能正在對該當前被要求之記憶庫中最近一次 被要求之分頁提出要求’導致該#前之要求在追縱 對於該被要求之e憶庫之分頁所作之存取時由該被要求之 己隐庫之繞點而§被認為係„命中”。換句話說,分頁落空 可以實際地指示該當前之要求本來可以係分頁命中,該被 ίί之並未過早被關閉。要是該分頁並未被關閉,該 备别之要求可能已經導致分頁命中或分頁衝突,而非分頁 94440 18 200925859 -落空。也應該注意的是,當該當前所描述之實施例之預先 取得和寫入不會導致分頁歷史表1〇8的更新時,其他實施 .例可以被組構成不同之形式。 第3圖顯示圮憶庫歷史表108如何被存取以及如何被 更新之一個貫施例。如該實施例所示,進入記憶庫歷史表 108之項目可以包括:自動預充電預測位元(Ap),其可具 有數值”1”以指示自動預充電係被預測,或數值”〇”以指示 未預測到自動預充電。然而,在其他實施例中,該Ap的數 〇值指示自動預充電預測可以被指定以不同於已顯示之前 例,只要清楚該指定之數值所期望指示者係為何。如第3 圖所不,記憶庫歷史表108可以容納個別對應於4位元標 不之16條項目(210) ’其中每一個標示係根據對應於該四 個對於給定記憶庫最近之分頁存取/要求之該記憶庫歷史 而被構成。換句話說,對於該當前:被要求之分頁中之預測 項目之存取的該標示係根據該最後三次對於該當前被要求 ❹之記憶庫之存取(也就是,儲存kDRAM分頁表之記憶庫歷 史資訊106)加上該當前之要求為基礎。 對於給定之分頁之預測可以在裁決器112已選择該當 前之要求後被進行,並且可以包含利用如上所述之標示數 值來存取記憶庫歷史表丨08中對應之預測值。如第3圖所 不’該二位兀206(其係對應於該三個最近先前之存取對該 當前被要求之記憶庫存取之該歷史)加上該當前要求(如 可以被用以構成該標示以存取記憶庫歷史表1〇8中對於該 當削被要求之分頁之預測值。期望對該預測值之該存取於 94440 19 200925859 -一個時脈週期内被進行,為了防止甴額外之時脈週期所造 成之延遲分頁命中。 .. 於一組實施例中,該標示係可藉由多工該晶片選擇信 /號/記憶庫選擇信號和分頁命中信號,以及自該分頁表1〇6 多工該記憶庫歷史而被產生。應該要注意的一點係,於其 他實施例中項目之數量可以不同,該數量係最少由正在被 追縱之最近之要求/存取所決定,而於所屬領域中具有通常 知識者將了解可能之變動並不被第3圖中所示之該實施例 〇所限制。例如,如果對於記憶庫之該五個最近之存取/要求 係被追縱’則記憶庫歷史表108係可以被32條項目(可根 據五位元標示而被存取)所組構,該五位元標示包括:四位 =之舊記憶庫歷史加上該當前(新的)記憶庫歷史。於所有 貝施例中,被追蹤之最近存取之數量可以被指定以不同於 .4,而且許多實施例中被追蹤之.最近存取之數量可能係小於 或大於4 〇 ❹ 於跟隨在該預測之後之該時脈週期過程中,記憶庫歷 史表108可以接著被更新。如第3圖所示,跟隨在該預測 之後°己隐庫歷史表108可以藉由更新對應於該標示之該 項目數值來作更新,其中該標示係被獲得自 DRAM分頁表 ⑽之該四位元記憶庫歷史所定義,也就是該四個位元 202)對應於該最近i前對該當前被要求之記憶庫提出之 二個存取之該歷史。如果該當前之要求導致分頁命中, 該AP可被更新為,,〇,,(於某些實施例中,課題也針對於將在 之後更詳加描述之可靠計數器)。如果該當前之要求導致分 94440 20 200925859 :頁衝突,AP可以被更新為”Γ,(再次地,於某些實施例中, 課題針對於該可靠計數器)。如果該當前之要求導致分頁落 空’ ΑΡ可以被更新為”0”如果該當前被要求之列係為該被 /要求記憶庫中最近被存取/被要求之列,否則Αρ可以被更 -新為”1”(再一次地,於某些實施例中,課題針對於該可靠 計數器)。一旦記憶庫歷史表1〇8已經被更新,對應於分頁 表106中該當前被要求之記憶庫的該記憶庫歷史項目也可 以被更新以反映該新的記憶庫歷史,該記憶庫歷史目前包 〇含該當前發生或完成之記憶體存取。 如上述所提及,於一組實施例中,記憶庫歷史表丨 中該預測值ΑΡ之更新可以額外地根據可靠計數器來進 行。δ己憶庫歷史表108中每一條項目也可以包括對應之Ν 位元可靠計數器值。該計數器可以增加,如果其對應之記 憶庫之該預測係正確且飽和於該位元數所決定之數值。斜 如,如果記憶庫歷史表108中每一條項目均具有對應之二 ❹位元可靠5十數器’則該計數器可以飽和於數值3。如杲該 預測係不正確’則該計數器可增加 '當該計數器達到〇, 則該預測值(例如,記憶庫歷史表108中ΑΡ所對應之該數 值)可被翻轉,指示出一串不正確之預測。於戶斤屬領域具有 通常知識者將了解該计數器值可以包括如指定之任何位元 數’而且其中所使用之該正確數字係僅為範例。 J動預充電預測演篡法: 對於如上所描述之該記憶庫歷史所作之追縱係可以 被用作自動預充電預測演算法之部份,該自動預充電預測 21 94440 200925859 -演算法係執行於DRAM控制器103,可包含三種層次之預測。 度这_丄··未來於DCQ 114之要求可以被用以決定給定 .•記憶庫中最近被存取之DRAM分頁是否應該跟隨於該存取 -之後立即被關閉,或者是否應該被保持開啟。也就是說, DCQ 114中其他迫切之要求是否被瞄準向特定之⑽分頁 之該狀態可以被用以進行層次丨之自動預充電預測。因 /此’DCQ 114中每一個迫切之要求均可以被評估以決定該 的要求係對於那一個給疋§己憶庫,以及是否該要求係對於該 Ό給定記憶庫甲該當前開啟之分頁。於一組實施例中,此評 估可針對㈣啟之分頁騎(以及其對應之給定記憶庫), 該分頁係被該當前正在處理中之記憶體要求所存取。也就 是說’每-個迫切之要求均可以被評估以決定是否係為對 $在被存取之該記憶庫和⑷分頁之要求,並決定是否該 當前正在處理中之記.憶體要求係被送至具有被致能或被停 用之自動預充電之DRAM記憶體。反應於DCQ1U中該迫切 ❾要求之評估所作之動作可以為以下四種之一。 —()如果'又有任何DCQ 114中迫切之要求係對於該給 疋之記it庫内之分頁所提出(也就是說,沒有任何迫切之要 求係對於該給定記憶庫内之分頁所提出.,因而不會導致該 :疋。己隱庫中該開啟之分頁產生分頁命中或分頁衝突),然 ^根據上述該記憶庫歷史分段(secti〇n)中該記憶庫歷史 貝訊可進仃層次2之預測(也進一步閱讀之後之層次2項 ^ ’並且該當前正在處理中之記憶體要求之該自動預充電 可以因此被設定。 94440 22 200925859 Ο (Β)如果沒有任何DCQ 114中迫切之要求係對於該給 定之記憶庫内該開啟之分頁所提出(也就是說,沒有任何對 •於該給定記憶庫内之分頁所提出之迫切之要求认 :定記憶庫中該開啟之分頁產生分頁命中,但迫切之要=中° f少-個會導致分頁衝突),接著自動預充電可以針對該當 别正在處理之記憶體要求而被致能(為了跟隨在該當前記 億體要求之後關閉該給定記憶庫中該開啟之分頁)而不論 圮憶庫歷史表1〇8中對應之預測係如何。 、(^)如果DCQ 114中對於該給定記憶庫之所有迫切之 要求係對㈣給定記憶庫中朗啟之分頁(也就是說,對於 該給定記憶庫之所有迫切之要求會導致該、 產生分頁命中),接著該給定記憶庫中;= 前記憶體存取之後被進行' 隨於該田 ❹ ⑼如果DCQ U4中對於該給定記憶庫 了,少—個係對於該衫記憶庫中該開啟之分頁,^ 切之要求係對於該給定記憶庫中關閉之分頁所 &出(也“說’對於該給定記憶庫之迫切要求中至,,、 會導致該給定記情庫中兮 y 個 等迫切之要求中之分頁產生分頁命中,且該 憶庫中該開分頁衝突)’接著該給定記 心刀貝可Μ被保持開啟,也 隨於該當前記憶體存取之後被進行二= 總…,情況⑹和情況。 口从厌疋疋否DCQ 114 94440 23 200925859 庫中該開啟 給定記憶庫) 中該迫切之要求中至少一個係對於該給定記憶 之分頁所提出,接著該當前記憶體要求(對於該 之自動預充電應該被停用。 歧1:如果沒有DGQ丨財之迫切要求係對該給定 記憶庫内之DRAM分頁所提出(如前述層次1(A)中所描 述)’最近之記憶庫歷史資訊可以被用以預測是否該:ram 分頁應該跟隨於該存取之後立即被關閉,或是否應該被保 持開啟。s亥預測可以被存取於記憶庫歷史表1 〇 8中如同先^ 〇前所述之記憶庫歷史中所描述者。 層.次3 :如果分頁已經基於層次1或層次2之預 測而被關閉,則該DRAM分頁可以被保持開啟,但是自該分 頁最後一次被存取後已保持閒置持續一段特定數量(可編 程)之時脈週期之後該分頁可以被關閉。 應該再次留意的係該DRAM分頁表1 〇 6中該記憶庫歷 史、記憶庫歷史表108中該預測值以及該對應之可靠計數 〇器值係不可以被要求所更新,其中該要求之自動預充電係 決定於如前述之層次1(A)中所描述之層次1預測。 類似地’預先取得(prefetches)和寫入之要求係不可 以導致利用記憶庫歷史表108來產生預測,或導致記憶庫 歷史表108之更新。自動預充電是否係與這些型態之要求 一起被進行也可以由前述之層次1 (A)中所描述之層次1預 測所決定。然而,DRAM控制器10 3係可以被組構以初始化 在自動預充電後之該突發性寫入(burst write)中之最後 寫入要求,以及初始化預先取得,以及初始化可能如任何 24 94440 200925859 :其=求般影響分頁命中/分頁衝突之寫入要求。 β ^ ^ 預充電預測凟算法可以被用以預 ,9㈣失㈣應該針對讀取/寫入要求而被進行。如果 —之八冩入要求之自動預充電,當該開啟 之刀頁疋否應該被關閉時 持開啟但是閒置一段長時p問通依然維持。如果該分頁維 &長Μ,可能係該記憶庫歷史預測已 能招致分頁衝控制請可 =因此被組構以包含對應於每—個_ ❹置週期計數器⑽ecyclec_ter)以追縱 分/ 經開啟多久。於一細本被η丄 ^ ° 組Λ施例中,當對應於該開啟之分頁之 該間置之週期計數器達到料之限制,則DRAM控制器103 =作以_該開啟(閒置)之分頁。於—組實施例中,該 ,疋之限制係可以被編程。因此,_控制器⑽可以於 特定數量之時脈週期之後(如:128個週期於實施例中)關 閉非作用(閒置)之分頁’或於動態調整之特定時脈循環數 ❹(例如.16, 32, 64, 96等週期)之後關閉非作用之分頁,其
2該動態調整係可基於對應㈣RAM分頁表歷史1〇6中該特 定之記憶體分頁之該記憶庫歷史項目。X 第4圖顯示三層次自動預充電預測演算法中一部份之 個只施例之流程圖,該演算法係被記憶體控制器所執 行,例如第1圖和第2圖之記憶體控制器1〇3。輸入之記 憶體要求(可能係該記憶體控制器所接收到之記憶體要求) "T以如同迫切之記憶體要求般被儲存於仔列(4〇2)。鍺存於 該佇列中該迫切之記憶體要求中的一個可以被選擇以進行 94440 25 200925859 處理(Processing)/供應(serving)、和自該佇列中被移 除並且被該選疋之§己憶體要求所要求之給定記憶體分頁 • ·.(和對應之給定記憶體記憶庫)可以被識別(4 〇 4 )。基於當前 預測值,是否關閉或保持該給定記憶體分頁開啟之預測將 被產生,該當前預測值係對應於對該給定記憶體記憶庫之 最近存取之歷史(406)。-旦該預測已被產生,未來預測值 可以被更新,其中該未來預測值係對應於對該給定記憶體 記憶庫之最近先前記憶體存取之給定數量(412)。該記憶體 〇佇列中該迫切之記憶體要求係可以被分析以決定是否至少 -個儲存於該儲存中之該迫切記憶體要求中係正在對該給 疋兄憶體記憶庫提出存取之要求(41 〇 )。 、如果410中之該分析指示至少一個儲存於該儲存中之 該迫切記憶體要求中係正在對該給定記憶體記憶庫提出存 取之要求(也就是說’至少一個儲存於該佇列中之該迫切纪 憶體要求係正瞄準該給定記憶體記憶庫中之記憶體分° ❹頁)’儲存於該佇列中之該迫切記憶體要求可以被用來決定 是否該給定記憶體分頁應該被關閉或保持開啟 、 (414, 418)。如果’相反地,該41〇中之分析指示沒有任何 一個儲存於該儲存中之該迫切記憶體要求中係正在對該給 定記憶體記憶庫提出存取之要求,則該給定記憶體分頁可 以根據產生於406(416)中之預測而被關閉或保持開啟。 、如果418或416中其中之-指示該給定記憶體分頁應 該被關閉,-旦該選定之記憶體要求對於該給定記憶體分 頁之存取已完成(並且’於一些實施例中係在該記憶體被再 94440 26 200925859 罢該給定記憶體分頁可以被關閉(422)。如 ’、疋〇給定記憶體分頁應該被維持開啟,於該選定之纪 ••It要2對於該給定記憶體分頁之存取已完成之後被保持 • 並且可㈣—段敎長度時間之後被關閉,如 果遠給疋讀體分頁於該特^長度時間内係維持閒置 U26)。該特定時間長度可以依據時脈週期而被測量出來, 並且可被編程。例如,該給定記憶體分.頁可以於維持閒置 長達128個時脈週期之後被關閉。於特定實施例中,該時 ❹脈週期之數量可以基於對該給定記憶體記憶庫之該最近存 取歷史而被動態調整。例如,基於對該給定記憶體記憶庫 之該最近存取歷史,該128個時脈週期可比被調整為 16, 32, 64個時脈週期等等。於一些實施何中,一旦4〇6中 該預測已被產生,則該該演算法可進一步包含更新該給定 記憶體記憶庫之最近存取歷史,並且更新對該給定記憶體 記憶庫之最近存取歷史之對應之預測值。 〇 &裡應該留意的係第4圖中之流程圖並沒有具體指出 當該選定之記憶體存取對該給定記憶體分頁作實際存取發 生之情況。於一組實施例中,於關於對該給定記憶體分頁 之未來存取之該判斷已經被產生之後,對該給定記憶體分 頁之該存取可能發生。於另一組實施例中,該存取可發生 於當該判斷係正在被產生’或甚至該判斷被產生前。然而, 該判斷係被產生以判斷一旦該選定之記憶體要求對於該給 定記憶體分頁之存取已完成後(於特定實施例中,係於該記 憶體被另一記憶體要求存取前),該給定記憶體分頁應該為 94440 27 200925859 什麼狀況。因此,於一些實施例中,一旦關於對該給定記 憶體分頁之未來存取之該判斷已經被產生,該選定之記憶 •體要求(指令)伴隨對應該被選定之記憶體指令之該自動預 充電指標(indi cator) —起被指向該記憶體(以存取該給定 記憶體分頁)。如果預測該給定記憶體分頁應該被關閉,該 自動預充電指標可以被致能’而如果預測該給定記憶體分 頁被保持開啟,則該自動預充電指標可以被停用。一旦該 選定s己憶體要求對該給定記憶體分頁之存取已完成,則致 ❹能之自動預充電可以導致對應於該給定記憶庫中之該給定 此憶體分頁之該列之自動預充電。跟隨於該選定記憶體要 求對該給定記憶體分頁之該存取完成之後,則停用之自動 預充電可以導致對應於該給定記憶庫中之該給定記憶體分 頁之該列之不改變狀態(unchanged state)。 、DRAM控制器可因此被組構以重新排序讀取/寫入要 求’進而使該分頁命中數最大化並且最小化該分頁衝突凄 ❹,/、中該重新排序可以被自動預充電預測所通知以預須 是否預充電應該跟隨於讀取/寫入要求之後,為了在不需; 追蹤組構於該DRAM中夕你1 e丨八百 AM中之個別分頁之情況下達到最佳化之 效能。 解ξί 發月已參考特定之實施例而被描述之同時,可明 定實施例之圓式及詳細說明並不欲用來限㈣ = = = :定形式。按照前面所教示者,其他的修 專利=的本發明將涵蓋所有落於如所附申請 ^ ^疋之本發明之精神和範圍内之修飾、等效 94440 28 200925859 和替代内容。 【圖式簡單說明】 ,· 本發明之其他態樣可藉由閱讀上述之詳細說明及參 考附加圖示而變得明顯,其中·· 帛1圖係範例系統之方塊圖,該範例系統包括被組構 =經由記憶體匯流排來控制對記憶體之存取之記憶體控制 , 帛2圖係第1圖中該記憶體控制器之一個實施例 ❹份邏輯之方塊圖; 第3圖係顯示該記憶庫歷史表根據一個實施例所作之 存取與更新之結構圖; 第4圖係圖不三層次自動預充電預測演算法中部份步 驟之一個實施例之流程圖; . … u 荷疋貫方包 不炉^ Γ 暸解到此處特定實施例之圖式及詳細說明並 將………〜·之特疋形式’反之’本發明 〇 雖,、、、本發料#易作各種之修飾和替代形式,但是 〇係由圖式中之範例顯示及詳細說明本發明之特定實施 例。然而,廄膝紘5丨丨.LL 士 •丄. 精神和範圍内之修飾、 【主要元件符號說明】 100 系統 101 處理器核心 103 記憶體控制器 104 位址地圖 94440 29 200925859 '105 記憶體 106 DRAM分頁表 108 記憶庫歷史表 110 時序檢測方塊 111 記憶體匯流排 112 裁決器 113 處理單元 114 DRAM控制器要求佇列 ❹116 多工器 118 寫入佇列 120 讀取佇列 122 接收器先進先出缓衝器 124a 墊片 202 四位元· 206 三位元 ^ 208 當前要求 210 16條項目 402、 404 、 406 、 410 、 412 、 414 416、 418 、 422 、 424 、 426 步驟 步驟^ 30 94440
Claims (1)
- 200925859 十、申請專利範圍: 1. 一種管理記憶體存取之方法,該記憶體具有複數個記 • 憶體記憶庫’該方法包括: 識別當前記憶體要求所要求的給定記憶體分頁, 其中,該給定記憶體分頁係位於該複數個記憶體記憶 庫之給定記憶體記憶庫中; 根據對該給定記憶體記憶庫之最近記憶體存取的 歷史所對應之當前預測值判斷該給定記憶體分頁是否 應該被關閉或保持開啟; 一該‘則記憶體要求對該給定記憶體分頁之存 取完成,則進行以下其中一個步驟: ^關閉該給定記憶體分頁,以回應導致決定該給定 S己憶體分頁應該被關閉之該判斷;或 Q 2· =保持該給定記憶體分頁為開啟,以回應導致決定 該給疋记憶體分頁應該被保持開啟之該判斷。 =睛專利範圍第1項之方法,其中,該進行以下其 ^ —個步驟係於該記憶體被再次存取之前並於該當前 ί憶體要求對該給定記憶體分頁之存取完成之後進 復包括: 如申請專利範圍第1項之方法 判斷等待存取該記憶體之—個或更多個額外之記 :“要求中/又有一個正在要求該給定記憶體記憶庫中 <s己憶體分頁; /、中’該判斷該給定記憶體分頁是否應該被關閉 94440 31 200925859 或保持開啟係進行 要求中沒有一 丁口應該一個或更多個額外記憶體 憶體分頁之該要求該給定記憶體記憶庫中之記 如申請專利範圍 體要求對該给定復包括於該當前記憶 定記憶體分頁-特㈣子取完成之後關閉該給 分頁於該特定長度時間期:維持Γ置回應該給定記憶趙 申=利觀圍第1項之方法’復包括根據: 纪C憶體記憶庫之第一數量之最近之前的 °己隐體存取所對應的第-資訊;以及 所2當前記憶體要求對該給定記,隨分頁之該存取 子應之第二資訊’獲得該當前預測值。 如申請專利範圍第丨@ $ 士 、 法,其中,該第一資訊指 :]該…疋記憶體記憶庫之該第一數量之最近之前的 •體存取有多少係對該給定記憶體分頁所提出。 ^申”月專利祀圍第5項之方法,復包括於該獲得該當 别預測值之後明確指出未來預測值,其中,該明確指 出^未來預測值係根據對該給定記憶體記憶庫之第二 數量之最近之前的記憶體存取所對應之資訊而進行。 如申請專利範圍第7項之方法,其中,該第二資訊指 二對該給定記憶體記憶庫之該第二數量之最近之前的 記憶體存取有多少係對該給定記憶體分頁所提出。 —種記憶體控制器,被組構以控制對具有一個或更多 個記憶體記憶庫之記憶體之存取,該記憶體控制器包 ❹ ❹ 4. 5. 6. 94440 32 9. 200925859 分頁表,被組構以儲存對於該—個或更多個記憶 •. 體記憶庫之各者之個別記憶體記憶庫存取歷史; • 把憶體記憶庫歷史表’具有複數條項目,其中, 該複數條項目之每一條項目均被組構以儲存個別之預 測值,該預測值係對應於偭別之記憶體記憶庫存取歷 史資訊,該記憶體記憶庫存取歷史資訊係儲存於該一 個或更多個記憶體記憶庫之一者之該分頁表;、 〇 其中,該記憶體控制器係可操作以識別被當前記 憶體要求所猫準之給定記憶體分頁,其中,該給定記 憶體分頁係位於該一個或更多個記憶體記憶庫之給定 記憶體記憶庫中; 其中,該記憶體控制器係可操作以自該記憶體笵 憶庫歷史分頁獲得當前测值,其中,該t前預測值 係基於儲存於該分頁表中對於該給定記憶體記憶庫之 〇 該至少個別記憶體記憶庫存取歷史資訊,和其中,該 當前預測值指示該記憶體控制器是否該記憶體控制器x 應該關閉該給定記憶體分頁或保持該記憶體分頁開 啟;以及 其中,當沒有迫切之記憶體要求正瞄準該給定記 憶體記憶庫,一旦該當前記憶體要求對該給定記㈣ 分頁之存取被完成,則該記憶體控制器係可根據該當 Μ預測值所指示的來操作以關閉或保持該給定記憶體 分頁開啟;以及 94440 33 200925859 其中’該迫切之5己憶體要求包括一個或更多個等 待存取該記憶體之額外記憶體要求。 10. 如申請專利範圍第9項之記憶體控制器,其中,該記 憶體控制器係可操作以自該記憶體記憶庫歷史表之給 疋項目獲得該當鈿預測值’其中’該給定項目之位置 係決定於: 儲存於該分頁表中對於該給定記憶體記憶庫之至 少一部分該個別記憶體記憶庫存取歷史資訊;以及 〇 對應於該當前記憶體要求之記憶體記憶庫存取資 訊0 11. 如申請專利範圍第9項之記憶體控制器,復包括被組 構以儲存該迫切之記憶體要求之仵列。 12. 如申請專利範圍第11項之記憶體控制器,其中,該記 憶體控制益係可以操作以發送該當前記憶體要求至該 記憶體以對於該當前記憶體要求對該給定記憶體分頁 _ 存取。 13·如申請專利範圍第12項之記憶體控制器,其中,該記 憶體控制器係可以操作以自該㈣中選擇下一個記憶 體要求、於發送該當前記憶體要求至該記憶體之後自 2作列移除該下一個記憶體要求、並且如同處理該當 前記憶體要求一般來處理該下一個記憶體要求。 14.如申明專利範園第〗3項之記憶體控制器,其中,該記 憶體控制器係可以根據特定優先計劃來操作以選擇該 下一個記憶體要求。 94440 34 200925859 15·如申請專利範圍第13項之記憶體控制器,其中,= 先計劃包括將優先權給予儲存於該佇列中正在該優 r 給定記憶體分頁之記憶體要求。 求該 _ 16.如申請專利範圍第13項之記憶體控制器,其中,該 先計劃包括將優先權給予儲存於該佇列中之吃憶^優 求,該記憶體要求係正在要求該一個或更多個記= 忒隱庫之對應者中之已開啟之個別記憶體分頁。 17. 如申請專利範圍第13項之記憶體控制器,其中,診兮 ❹憶、體控制器係可以操作以接收輸人之記憶體要求1 且於記憶體要求自該佇列中移除時將該輸入之記憶體 要求儲存於該仔列。 18. 如申請專利範圍第9項之記憶體控制器,其中,當該 迨切之記憶體要求中沒有一個正瞄準該給定記憶體分 頁,並且該迫切之記憶體要求中至少一者係正瞄準該 給定記憶體記憶庫中關閉之記憶體分頁時,一旦該當 ❹ 前記憶體要求對該給定記憶體分頁之存取被完成,該 足憶體控制器係可以操作以關閉該給定記憶體分頁。 19. 如申請專利範圍第9項之記憶體控制器,其中,當該 L切之s己憶體要求中沒有一個正瞄準該給定記憶體記 憶庫中任何關閉之記憶體分頁,並且該迫切之記憶體 要求中至少一者係正瞄準該給定記憶體分頁時,一旦 該當前記憶體要求對該給定記憶體分頁之存取被完 成,該記憶體控制器係可以操作以保持該給定記憶體 分頁開啟。 35 94440 200925859 ,20.如申請專利範圍第9項之記憶體控制器,立中,每該 迫切之記憶體要求中至少—者係正料該給定記= Γ分頁’並且該迫切之記憶體要求中至少—者係正猫準 .該給定記憶體記憶庫中關閉之記憶體分頁時,一旦該 當前記憶體要求對該給定記憶體分頁之存取被完成, 該記憶體控制器係可以操作以保持該給定記憶體 開啟。 21. 如申請專利範圍第9項之記憶體控制器,盆中,於碎 〇得該當前預測值之後,該記憶體控制器係可以操作二 更新儲存於該記憶體記憶庫歷史表中之未來預測值。 22. 如申請專利範圍第21項之記憶體控制器,其中,該記 憶體控制器係可以操作以更新儲存於該記憶體記憶庫 歷史表之給定項目内之該未來預測值,其中,該給定 •項目之位置係蚊於儲存於該給定記憶體記憶庫中該 分頁表内之該個別記憶體記憶庫存取歷史資訊。 ❾23.如申明專利範圍第22項之記億體控制器,其中,儲 於該給定記憶體記憶庫中該分頁表内之該個別記憶體 記憶庫存取歷史資訊係包括於對該給定記憶體記憶庫 之特定數量之最近先前的記憶體存取期間指示該給定 記憶體記憶庫中那-些記憶體分頁係被存取之資訊。 24.如申請專利範圍f 21項之記憶體控㈣,其中,該記 憶體控制H係可以操作以識別對應於該#前記憶體要 求之記憶體存取狀態,其中,該記憶體存取狀態係以 下其中一種: 94440 36 200925859 分貝斧甲, _ 以姐〜片Ί尔匕經開啟; 開啟之分頁; 分頁落空,扣示於該給定記憶體記憶庫中不具有 分頁衝突 扣不該給定記憶體分頁係未開啟以及 於該給定記憶體記憶庫中另一個記憶體分頁係門啟. 其中,該記憶體控制器係可操作以根據該幵記㈣ 存取狀態來更新該未來預測值。 25. Ο 如申請專利範圍第24項之記憶體控制器; 其中,當該記憶體存取狀態係為分頁命中,該記 憶體控制器係可以操作以更新該未來預測值,以指示 該給定記憶體分頁應該維持開啟; 其中,當該記憶體存取狀態係為分頁衝突,該記 憶體控制器係可以操作以更新該未來預測值,以指示 該給定記憶體分頁應該被關閉; 其中,當該記憶體存取狀態係為分頁落空,並且 ❹ 該給定記憶體記憶庫内最近開啟之分頁並非該給定記 憶體分頁’則該記憶體控制器係可以操作以更新該未 來預測值,以指示該給定記憶體分頁應該被關閉;以 及 其中,當該記憶體存取狀態係為分頁落空,並且 該給定記憶體記憶庫内最近開啟之分頁係為該給定記 憶體分頁.,則該記憶體控制器係可以操作以更新該未 來預測值,以指示該給定記憶體分頁應該維持開啟。 26.如申請專利範圍第24項之記憶體控制器,其中,該記 37 94440 200925859 ; 憶體記憶庫歷史表中每—條項目均_進— 儲存個別之可靠計數器值; ,· Μ,該記憶體㈣器係可以操作以將該未來預 - 測值儲存於該記憶體記憶庫歷史表中之給定項目内. 以及 、 其中’該记憶體控制器係可以操作以根 體絲狀態及儲存於該給定項目内之該個別之可靠^ 數器值來更新該未來預測值。 ❹27.如申請專利範圍第26項之記憶體控制器,其中,當該 可罪計數器值係特定數值,'該記憶體控制器係可以操 作以更新該未來預測值。 28. 如申請專利範圍第27項之記憶體控制器,其中,該特 定數值係〇。 29. 如申請專利範圍第27項之記憶體控制器,其中,該記 憶體控制器係可以操作用以: ❹ 增加該個別之可靠計數器值,當: 一旦該當前記憶體要求對該給定記憶體分頁之存 取已完成’該當前預測值指示該給定記憶體分頁應該 被關閉並且該記憶體控制器關閉該給定記憶體分頁; 或 一旦該當前記憶體要求對該給定記憶體分頁之存 取已完成’該當前預測值指示該給定記憶體分頁應該 被保持開啟並且該記憶體控制器保持該給定記憶體分 頁為開啟;以及 38 94440 200925859 , ' 減少該個別之可靠計數器值,當: 一旦該當前記憶體要求對該給定記八 ,· ’該當前預測值指示該給定記憶體:頁2 .該記憶體控制器保持該給定記憶體分頁i =該當前記憶體要求對該給定記憶體分頁 取已元成,該當前預測值指示該給定記憶體分 被保持開啟並且該記憶體控制 …k © 頁。 利态關閉該給定記憶體分 30.如申請專利範圍第29項之記憶體控制器; 女叙—旦該個別之可靠計數11值已達到特定最 1值,該記憶體控制器係可以操作以停止該個別之 可罪計數器值之增加;以及 其中該特定數值係〇。 31 -種管理記憶體存取之方法,該記憶體具有複數個記 ❹ 憶體纪憶庫,該方法包括: 、接收複數個記憶體要求並且將該接收之記憶體要 求如同迫切之s己憶體要求一般健存於仔列内; 選擇儲存於該佇列内該迫切之記憶體要求中的一 個,並且自該佇列移除該選定之記憶體要求; 識別給定記憶體分頁以及對應的給定記憶體記憶 庫’其中’該§己憶體記憶庫係被該選定之記憶體要求 所要求: 基於對該給定記憶體記憶庫之最近記憶體存取之 39 94440 200925859 歷史所對應之預測值, 該被關閉或保持開啟之預周該給定s己憶體分頁是否應 • 判斷沒有任何儲存於兮p ^ Λ ' 、七及X — 士 这知列中之該迫切記情體I .求絲在存取該給定記_記憶庫; 回應該判斷,進行以下其中—個步驟: *對該選定之記憶體要求致能自動預充電,以回應 ¥致於該給定記憶體分頁應該被關閉之該預測之該作 出預測;或 作 對該選定之記憶體停用該自動預充電,以回應導 致於該給定記憶體分頁應該被保持開啟之該預測之該 作出預測。 Ο 94440 40
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/843,443 US7761656B2 (en) | 2007-08-22 | 2007-08-22 | Detection of speculative precharge |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200925859A true TW200925859A (en) | 2009-06-16 |
TWI457753B TWI457753B (zh) | 2014-10-21 |
Family
ID=39865815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097132032A TWI457753B (zh) | 2007-08-22 | 2008-08-22 | 記憶體控制器及用於管理記憶體存取之方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7761656B2 (zh) |
EP (1) | EP2191376B1 (zh) |
JP (1) | JP5305542B2 (zh) |
KR (1) | KR101554294B1 (zh) |
CN (1) | CN102084345B (zh) |
TW (1) | TWI457753B (zh) |
WO (1) | WO2009025712A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157985A1 (en) * | 2007-12-18 | 2009-06-18 | Arm Limited | Accessing memory arrays |
US8429367B2 (en) * | 2007-12-28 | 2013-04-23 | Intel Corporation | Systems, methods and apparatuses for clock enable (CKE) coordination |
US8347020B2 (en) * | 2009-03-20 | 2013-01-01 | Qualcomm Incorporated | Memory access controller, systems, and methods for optimizing memory access times |
JP5428687B2 (ja) * | 2009-09-14 | 2014-02-26 | 株式会社リコー | メモリ制御装置 |
KR20110032606A (ko) * | 2009-09-23 | 2011-03-30 | 삼성전자주식회사 | 전자 디바이스의 성능 개선을 위한 전자 디바이스 컨트롤러 |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
US8615638B2 (en) * | 2010-10-08 | 2013-12-24 | Qualcomm Incorporated | Memory controllers, systems and methods for applying page management policies based on stream transaction information |
WO2013083194A1 (en) * | 2011-12-08 | 2013-06-13 | Huawei Technologies Co., Ltd. | Memory controller and method for controlling accesses to a memory |
US8990473B2 (en) * | 2012-10-04 | 2015-03-24 | Applied Micro Circuits Corporation | Managing requests to open and closed banks in a memory system |
US9251048B2 (en) * | 2012-10-19 | 2016-02-02 | International Business Machines Corporation | Memory page management |
CN103902462B (zh) * | 2012-12-27 | 2018-03-09 | 华为技术有限公司 | 内存管理方法、内存管理装置及计算机 |
US20150199134A1 (en) * | 2014-01-10 | 2015-07-16 | Qualcomm Incorporated | System and method for resolving dram page conflicts based on memory access patterns |
KR20160061704A (ko) | 2014-11-24 | 2016-06-01 | 삼성전자주식회사 | 페이지 상태 알림 기능이 있는 메모리 장치 |
WO2016089355A1 (en) | 2014-12-01 | 2016-06-09 | Hewlett Packard Enterprise Development Lp | Auto-negotiation over extended backplane |
WO2017065732A1 (en) | 2015-10-12 | 2017-04-20 | Hewlett Packard Enterprise Development Lp | Switch network architecture |
US9703493B2 (en) | 2015-12-14 | 2017-07-11 | Qualcomm Incorporated | Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache |
JP2018049387A (ja) * | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリシステム及びプロセッサシステム |
US10379748B2 (en) | 2016-12-19 | 2019-08-13 | International Business Machines Corporation | Predictive scheduler for memory rank switching |
US11029879B2 (en) * | 2018-01-29 | 2021-06-08 | Samsung Electronics Co., Ltd | Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel |
JP2019204150A (ja) * | 2018-05-21 | 2019-11-28 | 日本電信電話株式会社 | 通信用入出力装置 |
US11189662B2 (en) | 2018-08-13 | 2021-11-30 | Micron Technology | Memory cell stack and via formation for a memory device |
CN109658009B (zh) * | 2019-01-11 | 2024-05-07 | 杭州市电力设计院有限公司 | 基于随机原理与排队理论的电动汽车充电站能量管理方法 |
US10991417B1 (en) | 2019-05-24 | 2021-04-27 | Xilinx, Inc. | Auto-precharge management in a controller |
US11373695B2 (en) | 2019-12-18 | 2022-06-28 | Micron Technology, Inc. | Memory accessing with auto-precharge |
KR102343550B1 (ko) * | 2020-04-10 | 2021-12-24 | 원광대학교산학협력단 | 스몰 액티브 커맨드를 이용한 메모리 시스템 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0394344A (ja) * | 1989-09-07 | 1991-04-19 | Nec Corp | 情報処理装置 |
US5715421A (en) * | 1992-10-16 | 1998-02-03 | Seiko Epson Corporation | Apparatus and method of addressing paged mode memory including adjacent page precharging |
JP3254019B2 (ja) * | 1992-11-30 | 2002-02-04 | 富士通株式会社 | データ先読み制御装置 |
US5732236A (en) * | 1993-05-28 | 1998-03-24 | Texas Instruments Incorporated | Circuit and method for controlling access to paged DRAM banks with request prioritization and improved precharge schedule |
JPH07105686A (ja) * | 1993-10-04 | 1995-04-21 | Oki Electric Ind Co Ltd | メモリ制御装置 |
US5625790A (en) * | 1995-09-14 | 1997-04-29 | Micron Technology, Inc. | Method and apparatus for reducing the access time of a memory device by decoding a row address during a precharge period of the memory device |
US5889714A (en) * | 1997-11-03 | 1999-03-30 | Digital Equipment Corporation | Adaptive precharge management for synchronous DRAM |
US5983325A (en) * | 1997-12-09 | 1999-11-09 | Advanced Micro Devices, Inc. | Dataless touch to open a memory page |
US6199145B1 (en) * | 1998-02-27 | 2001-03-06 | Intel Corporation | Configurable page closing method and apparatus for multi-port host bridges |
US6219765B1 (en) * | 1998-08-03 | 2001-04-17 | Micron Technology, Inc. | Memory paging control apparatus |
US6401180B1 (en) * | 1999-01-04 | 2002-06-04 | Advanced Micro Devices, Inc. | Bank history table for improved pre-charge scheduling of random access memory banks |
JP2001166985A (ja) * | 1999-12-10 | 2001-06-22 | Nec Gumma Ltd | メモリ制御装置 |
US7127573B1 (en) * | 2000-05-04 | 2006-10-24 | Advanced Micro Devices, Inc. | Memory controller providing multiple power modes for accessing memory devices by reordering memory transactions |
US6785793B2 (en) * | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
US6829184B2 (en) * | 2002-01-28 | 2004-12-07 | Intel Corporation | Apparatus and method for encoding auto-precharge |
US7124260B2 (en) * | 2002-08-26 | 2006-10-17 | Micron Technology, Inc. | Modified persistent auto precharge command protocol system and method for memory devices |
CN1279450C (zh) * | 2002-11-13 | 2006-10-11 | 矽统科技股份有限公司 | 内存读取/写入仲裁方法 |
US7133995B1 (en) * | 2002-12-16 | 2006-11-07 | Advanced Micro Devices, Inc. | Dynamic page conflict prediction for DRAM |
JP4250989B2 (ja) * | 2003-03-26 | 2009-04-08 | 日本電気株式会社 | メモリアクセス制御装置 |
US20050060533A1 (en) * | 2003-09-17 | 2005-03-17 | Steven Woo | Method, device, software and apparatus for adjusting a system parameter value, such as a page closing time |
US7167946B2 (en) * | 2003-09-30 | 2007-01-23 | Intel Corporation | Method and apparatus for implicit DRAM precharge |
US7130967B2 (en) * | 2003-12-10 | 2006-10-31 | International Business Machines Corporation | Method and system for supplier-based memory speculation in a memory subsystem of a data processing system |
US7162567B2 (en) * | 2004-05-14 | 2007-01-09 | Micron Technology, Inc. | Memory hub and method for memory sequencing |
KR100650730B1 (ko) * | 2004-12-28 | 2006-11-27 | 주식회사 하이닉스반도체 | 메모리 장치의 프리차지 타이밍 제어 방법 및 그 장치 |
US7167385B2 (en) * | 2005-02-11 | 2007-01-23 | International Business Machines Corporation | Method and apparatus for controlling the timing of precharge in a content addressable memory system |
JP4839749B2 (ja) * | 2005-09-20 | 2011-12-21 | 日本電気株式会社 | コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム |
US20070162643A1 (en) * | 2005-12-19 | 2007-07-12 | Ivo Tousek | Fixed offset scatter/gather dma controller and method thereof |
US7606988B2 (en) * | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
-
2007
- 2007-08-22 US US11/843,443 patent/US7761656B2/en active Active
-
2008
- 2008-07-28 CN CN200880108416.8A patent/CN102084345B/zh active Active
- 2008-07-28 WO PCT/US2008/009098 patent/WO2009025712A1/en active Application Filing
- 2008-07-28 EP EP08794791.7A patent/EP2191376B1/en active Active
- 2008-07-28 KR KR1020107006272A patent/KR101554294B1/ko active IP Right Grant
- 2008-07-28 JP JP2010521845A patent/JP5305542B2/ja active Active
- 2008-08-22 TW TW097132032A patent/TWI457753B/zh active
Also Published As
Publication number | Publication date |
---|---|
KR101554294B1 (ko) | 2015-09-18 |
EP2191376A1 (en) | 2010-06-02 |
TWI457753B (zh) | 2014-10-21 |
EP2191376B1 (en) | 2016-09-28 |
JP2010537310A (ja) | 2010-12-02 |
US20090055570A1 (en) | 2009-02-26 |
US7761656B2 (en) | 2010-07-20 |
JP5305542B2 (ja) | 2013-10-02 |
KR20100055503A (ko) | 2010-05-26 |
CN102084345B (zh) | 2014-06-18 |
WO2009025712A1 (en) | 2009-02-26 |
CN102084345A (zh) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200925859A (en) | Detection of speculative precharge | |
US6687172B2 (en) | Individual memory page activity timing method and system | |
KR100824487B1 (ko) | 버퍼된 기록들 및 메모리 페이지 제어 | |
EP1461706B1 (en) | Method for dynamically adjusting a memory page closing policy | |
US7536530B2 (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
US6799257B2 (en) | Method and apparatus to control memory accesses | |
US6615326B1 (en) | Methods and structure for sequencing of activation commands in a high-performance DDR SDRAM memory controller | |
EP1579335B1 (en) | Read-write switching method for a memory controller | |
US20110238934A1 (en) | Asynchronously scheduling memory access requests | |
KR20150017526A (ko) | 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법 | |
KR20160116533A (ko) | 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법 | |
JP2021506033A (ja) | キャッシュ制御を考慮したメモリコントローラ | |
US7587547B2 (en) | Dynamic update adaptive idle timer | |
US20050071581A1 (en) | Adaptive page management | |
KR102679774B1 (ko) | 히스토리 기반 메모리 시스템 및 그 제어 방법 | |
CN113946435A (zh) | 内存管理技术及计算机系统 | |
CN112965816B (zh) | 内存管理技术及计算机系统 | |
US20240112722A1 (en) | Directed refresh management for dram |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |