TW200925859A - Detection of speculative precharge - Google Patents

Detection of speculative precharge Download PDF

Info

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
Application number
TW097132032A
Other languages
English (en)
Other versions
TWI457753B (zh
Inventor
Philip E Madrid
Tahsin Askar
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of TW200925859A publication Critical patent/TW200925859A/zh
Application granted granted Critical
Publication of TWI457753B publication Critical patent/TWI457753B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling 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)

  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
TW097132032A 2007-08-22 2008-08-22 記憶體控制器及用於管理記憶體存取之方法 TWI457753B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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