TWI253563B - Read-write switching method for a memory controller - Google Patents
Read-write switching method for a memory controller Download PDFInfo
- Publication number
- TWI253563B TWI253563B TW092135045A TW92135045A TWI253563B TW I253563 B TWI253563 B TW I253563B TW 092135045 A TW092135045 A TW 092135045A TW 92135045 A TW92135045 A TW 92135045A TW I253563 B TWI253563 B TW I253563B
- Authority
- TW
- Taiwan
- Prior art keywords
- request
- write
- library
- read
- read request
- 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
-
- 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/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- 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
-
- 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)
- Memory System (AREA)
- Multi Processors (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
- Communication Control (AREA)
- Vehicle Body Suspensions (AREA)
- Time-Division Multiplex Systems (AREA)
- Dram (AREA)
Description
1253563 (” 玫、發明說明 【發明所屬之技術領域】 本發明的實施例係關於讀寫記憶體之記憶體控制器領 域。 【先前技術】 目前的雙倍資料傳輸率(DDR )及雙倍資料傳輸率〜 II ( DDR-Π )動態存取記憶體(DRAM )子系統,在執行 記憶體中的相同庫之背對背讀取時,呈現顯著的等待時 間。數個伺服器晶片組可以在總共提供4獨立記憶庫的單 排記憶體內操作。在此配置中重覆地隨機交通踫撞相同庫 之機率爲 1 : 4 ( 2 5 % )。在分頁空白存取的情形中(在伺 服器晶片組中這是很典型的),全部的庫衝突時間是「致 動至讀取」(tRCD )等待時間加上「讀取至預充電」 (tRPD )等待時間加上「預充電」至「致動」(tRP )等 待時間之總合,或是「致動至致動命令週期」(t R C ), 以時序限制較長者爲主。在D D R - 2 6 6的情形中,2 0 0 1年 8 月 14 曰公開的 Intel DDR-266 JEDEC Specification A d d e n d u m,R e v · 0 9中,此庫衝突持續時間典型上爲 6 5 ns。在2 0 0 1年6月25日公開之DDR-II- 5 3 3的情形中, 此庫衝突持續時間典型上爲60ns。相對地,對每一記憶 體技術而言,4 ( 3 2位元組)的猝發之全部資料等待時間 分別僅爲1 5 Π S及7 . 5 n s。 傳統的讀寫切換方法優先處理讀取請求直到寫入請求 -4 - (2) 1253563 佇列達到預設臨界値爲止。然後,將寫入請求的數量背對 背地「汲出」,且優先權歸還給讀取請求(在等待寫入汲 出時所佇列之讀取請求)。但是,此讀寫切換方法由於在 庫衝庫持續時間期間未執行額外的讀取或寫入,所以,是 緩慢及無效率的。 【發明內容】及【實施方式】 可以使用本發明的實施例以在dram記憶體通道中 提供更快速的寫入。記憶體裝置可以佇列對記憶體的寫入 請求。當對記憶體之連續讀取是對相同排、相同庫但不同 頁的記憶體連續讀取時,會有「記憶庫衝突」以及在對庫 發出的致動命令與致動命令之間發生等待時間。當讀取是 依排定執行時,寫入請求可以佇列在寫入請求佇列中。假 使有衝突時(亦即,有連續的讀取,且第二個讀取是對相 同排、相同庫,但不同頁時),當用於讀取動作的頁正等 待被致動時,可以對相同排內不同的庫執行寫入操作。取 決於列致動所需的時間,可以在相同排內其它庫上實施額 外的寫入。此方法會造成較快的寫入命令執行,及DRAM 記憶體裝置的較快效能。 或者,當寫入正在執行時,記憶體裝置可以佇列讀取 命令。當寫入命令被執行時,讀取命令可以被佇列。一旦 發生庫衝突時(亦即,對相同排相同庫但不同頁連續二次 寫入)’則當下一頁被致動時,讀取可以被執行。因此, dram可以更有效率地服務讀取及寫入操作。 (3) 1253563 圖]係顯示根據本發明的實施例之記憶體系統。記憶 體系統包含記憶體控制器及記憶體排1 05。記憶體排1 05 包含數個記憶體庫,舉例而言,庫A 1 1 0、庫b 1 1 5、庫 C 120、及庫D 125。記憶體控制器1〇〇可以與庫a 1 ] 0、 庫B 115、庫c 120、及庫D 125中的每一庫相通訊。雖 然圖1中僅顯示單一記憶體庫丨〇 5,但是,也可以使用多 個記憶體排。每一庫可以包含具有多個頁(亦即,列)及 行的儲存位置之陣列。藉由致動特定頁,可以對陣列中的 位置讀取或寫入資料。然後,可以從頁內的位置讀取資 料。爲了從不同頁讀取資料,可以在從第一頁讀出資料之 後,將不同頁預先充電及接著將其致動。 圖2係顯示根據本發明的實施例之記憶體控制器 1 〇 〇。記憶體控制器1 〇 〇包含讀取請求佇列2 0 0。當目前 正執行讀取時,以及當正執行寫入時,可以使用讀取請求 佇列2 0 0以佇列讀取請求。記憶體控制器1 〇 〇也包含寫入 請求佇列 2 0 5,當目前正執行讀取時’以及正執行寫入 時,寫入請求佇列2 0 5也可以用以佇列寫入請求。 記憶體控制器1 00也包含寫入資料緩衝器2 1 0 ’其可 以以相干及/或一致的方式快取資料。寫入資料緩衝器 2 1 〇可以儲存尙未被寫入至記憶體之寫入資料。寫入資料 緩衝器2 1 〇可以是一次登入的深度,但是,基於功效之考 量,典型上是大於一;欠登入深度°假使跟隨在較早的寫入 請求之後,對相同記憶體位址之讀取請求進入記憶體控制 器1 0 0,則記憶體控制器1 0 0可以使用來自寫入資料緩衝 -6- (4) 1253563 器2 1 0的資料以服務讀取請求,或是將寫入請求 中及接著將讀取請求列入排程中。 記憶體控制器1 0包含邏輯器220。邏輯器 以決定下一待決的讀取命令是否與先前列入排程 有協定衝突。協定衝突可以是dram時序限制 體控制器1 00將目前時計循環中的DRAM命令 之一條件。協定衝突包含庫衝突,在庫衝突中 排、庫、不同頁之背對背存取會在作動的命令與 被延遲特定的時間(導因於tRC DRAM時序限制 記憶體控制器1 00可以與處理器225通訊以 請求佇列 200、寫入請求佇列 2 0 5、寫入資3| 21〇、及邏輯器220中的每一者。處理器225接 儲存裝置2 3 0通訊。指令儲存裝置2 3 0可以含有 器2 2 5執行的指令(舉例而言,程式碼)。 記憶體控制器1 0 0可以使寫入在庫衝突所造 時間期間被執行。假使最老的佇入寫入未與目前 作衝突,則記憶體控制器1 〇〇可以使最老的佇入 衝突期間被列入排程。 圖3係顯示根據本發明的實施例之時序圖。 方的尺寸代表時間。舉例而言,每一數値單位 n s。A C T代表致動命令。當被讀取的頁被選取時 由ACT命令致動。如同所示,ACT命令可能會 間單位以使頁變成致動。此致動等待時間以 1 tRCD」代表(tRCD 是 time to activate foi· 列入排程 22 0可用 的命令具 禁止記憶 列入排程 ,對相同 命令之間 )° 控制讀取 斗緩衝器 著與指令 可由處理 成的等待 的讀取操 寫入在庫 時序圖上 代表 10 ’頁可以 宅費3時 寺間延遲 the read 1253563 (5) command 執行讀取 間單元以 料被真正 示(tCL i 中,C A S 縮寫)。 以時間延 制的總合 接著 令讀取資 處理可能 command 示。預充 生於相同 假使頁未 (相同排 頁)。頁 「PRE」 (可能是 存取,僅 接著 則會遇到 以及,在 (致動讀取命令的時間)的縮寫)。接著,可以 命令(以RD表示)。RD命令可能要耗掉1時 被執行,接著,又耗掉額外的2時間單元直到資 地讀取爲止。此等待時間以時間延遲「t C L」表 $ 表 time for CAS latency ( CAS 等待時間),其 是 c ο 1 u m n a c c e s s s t r 〇 b e (行存取選通脈衝)的 從當頁被致動時直到資料可以被讀取的整個時間 遲「tRCD + tCL」表示,其係tRCD與tCL時序限 ,且如同所示般耗掉6時間單元。 ,執行預充電指令(PRE ),且從先前的RD指 料(在時序圖上以「RD D ΑΤΑ」表示)。預充電 耗掉 3時間單元,以時間「tRP」(precharge duration (預充電命令持續時間)的縮寫)表 電命令(PRE )使庫中的頁解除致動。這必定發 庫中的另一頁已由致動(ACT)命令致動之前。 被預充電,則對該庫的下一存取將爲頁瞬時干擾 、庫、頁)或是頁遺漏(相同排、庫、不同 :瞬時千擾僅需要「RD」命令。頁遺漏需要 、「ACT」、然後「RD」。假使下次庫被存取時 更晚之後)頁被預充電,則下一存取將爲頁空白 需要「ACT」及接著「RD」。 ’假使資料是要從相同庫內的不同頁被讀取時, 增加的tRC延遲。ACT及RD可以再度被執行, 從下一頁讀取資料之前,會有增加的6時間單元
(6) 1253563 的時間週期消逝。接著,可以執行增加的PRE命令、等 等。 — 因此,如同所示,當從相同庫內不同的頁執行連續讀 耳又時,會出現時間週期tRCD所顯示的顯著等待時間(假 使從相同庫及排的相同頁執行連續讀取,則tRCD週期將 不會出現)。記憶體控制器1 00可以藉由在此tRCD等待 時間期間執行寫入以利用此時間週期,造成更有效率的及 更快的寫入命令排程。 圖4係顯示根據本發明的實施例,當在相同排內執行 寫入操作時具有庫衝突的讀取操作之時序圖。如同所示, 讚取命令及時間延遲與圖3中所示相同。但是,圖4的時 序圓中,記憶體控制器1 00藉由將資料寫至相同排內的不 同記憶體庫以利用tRC D等待時間。舉例而言,假使讀取 操作是對記憶體排1 〇 5的庫 a 1 1 0內的頁執行,則在 tR A S時間週期期間可以對其它庫(舉例而言,庫b 1 1 5、 庫C 120、庫D 125、但非庫A 110)之一執行寫入操 作。寫入操作(WR )可以在預充電操作期間的tRP時間 週期期間被執行,且在下一 t R C D時間週期期間,資料可 以被真正地寫入(WR D ΑΤΑ ) 。tWTR被稱爲「寫至讀取 命令延遲」,假使在寫至相同排之後有讀取,則必須滿足 延遲限制。這是爲什麼對記憶體控制器i 〇 〇而言,較佳的 是將對於不同於後續讀取的不同排之最後寫入列入排程。 因此,WR命令可以執行且資料會被寫至另一庫,而不會 不利地影響R D命令的執行。 -9- (7) 1253563 圖5顯示根據本發明的實施例’在不同排內執行多個 寫入操作時具有庫衝突的讀取操作之時序圖。如同所示’ 可以執行寫入操作以將資料寫至不同排中的庫。爲了避免 因爲tWTR延遲而影響第二讀取的等待時間,最後的寫入 執行將需要以不同於第二讀取之不同排爲目標。如同所 示,可以從「0」排內的庫讀取資料。在tRCD時間週期 期間,資料可以首先被寫至排「X」內的記憶體庫,接 著,資料可以被寫至排「i」內的記憶體庫。如同所示, 在tRP週期結束時,可以執行 WR命令以將資料寫至排 「X」內的記憶體庫。然後,當資料要真正地寫至記億體 庫時,可以執行寫入命令 W R1,接著,可以將資料寫至 排「1」內的記憶體庫。因此,可以執行一寫入操作而不 會不利地影響RD操作。 其它的實施例可以在具有庫衝突的二讀取之間,對相 同排插隊執行二寫入,以及,假使最後三個寫入命令是對 不同於讀取命令的排執行,則在具有庫衝突的二讀取之 間’可以插隊執行五或六寫入(視技術的協定時序而 定)。假使tRCD時序限制維持不變,但是,DRAM時計 週期增加(亦即,時計較快),則在庫衝突(tRCD )期 間可以列入排程的執行數目可以從i或2增加至很多。究 竟有很少個執行可以被列入排程而不會影響第二個原始執 行的等待時間,可以由系統中正使用的特定DRAM裝置 時序參數所決定。 S 6係顯不根據本發明的實施例,當有讀取庫衝突時 -10- (8) 1253563 執行多個寫入命令之方法。首先’系統決定下一讀取操作 是否有庫衝突6 0 0。假使爲「否」’則處理可以保持在運 算600。假使爲「是」,則處理可以進行至運算6 02。在 運算 6 0 2,系統可以將最老的行1列寫入命令從寫入請求佇 列205中載出。系統可以接者決定載出的寫入命令是否來 自相同排6 0 5。假使爲「否」,則處理進行至運算6 1 5。 假使爲「是」,則處理進行至運算6 1 0,其中,較新的寫 入命令會被移除610且下一佇例的寫入命令會被載入。在 運算610之後,處理可以回至運算605。在運算615,系 統可以決定載入的寫入命令是否針對與下一讀取相同的 庫。假使爲「否」,則處理進行至運算 625。假使爲 「是」,則處理進行至運算620,其中,衝突的寫入命令 會被移除 6 2 0,以及載入下一佇列的寫入命令。在運算 620之後,處理可以回至運算 605。在運算 625,在資料 被讀取之後,系統可以首先執行較老的寫入命令,然後執 行較新的寫入命令。在其它實施例中,較新的寫入命令可 以首先被執行。在其它實施例中,在讀取操作庫衝突期 間,可以執行多於二個寫入命令。在運算6 2 5之後,處理 可以回至運算6 0 0。 圖7 A顯示根據本發明的實施例之執行寫入命令的又 一方法之第一部份。如同所示,系統可以首先決定讀取請 求佇列2 0 0及寫入請求佇列2 5 〇是否均已是空的7 0 〇。假 使爲「是」,則處理保持在運算7 0 0。假使爲否,則處理 進行至運算7 0 5 ’其中,系統會決定寫入請求佇列2 05中 (9) 1253563 的寫入請求數目是否超過預設的臨界値。系統可以具有其 可能儲存的寫入請求數目之預設臨界値。一旦寫入請求的 數目超過臨界位準,則系統會授予執行請求的優先權’且 可以儘可能快地執行它們直到佇列的寫入請求之數目落在 臨界値之下。假使對於運算7 〇 5的答案爲「是」’則處理 前進至運算710。假使在運算705的答案爲「否」,則處 理前進至圖7B中所示的運算730。 在運算7 1 〇,系統會決定是否可以取得下一寫入請求 以執行。假使爲「是」,則處理進行至運算7 1 5,假使爲 否,則處理進行至運算7 2 0。在運算7 1 5,系統可以執行 下一寫入請求,及處理接著回至運算 700。在運算 720, 系統可以決定下一請求是否可以取得以用於執行。假使爲 「是」,則處理進行至運算7 2 5。假使爲否,則處理回至 運算700。接著,在運算725,系統會執行下一寫入請求 及處理接著回至運算700。 圖7 B顯示根據本發明的實施例,執行寫入命令之又 一方法的第一部份。在運算7 3 〇,系統可以決定下一讀取 請求是否可用於執行。在運算73〇,假使爲「是」,則處 理則進至運算7 3 5。假使爲「否」,則處理前進至運算 7 4 0在運算7。5,系統可以執行下一讀取請求,接著進 仃至運昇7 00。接著,在運算74〇,系統可以決定下一寫 入請求是否可用於執行。假使爲「是」,則處理進行至運 算?45。假使爲「否」,則處理進行至運算7⑽。在運算 7 4 5术統執行下一寫入請求,接著,處理回至運算 -12 - (10) 1253563 7 0 〇 〇 雖然上述說明參考本發明的特別實施例,但是,將瞭 解在不悖離其精神下,可以產生很多修改。後附之申請專 利範圍係涵蓋落在本發明的真正範圍及精神之內的修改。 因此,目前揭示的實施例在各方面應被視爲是說明性的而 非限定的,本發明的範圍係由後附之申請專利範圍而非前 述說明所意含,且落在申請專利範圍的均等意義及範圍之 內的所有改變因而被包含在其中。 【圖式簡單說明】 圖1係顯示根據本發明的實施例之記憶體系統; 圖2係顯示根據本發明的實施例之記憶體控制器; 圖3係顯示根據本發明的實施例之時序圖; 圖4係顯示根據本發明的實施例,在相同排內執行寫 入操作時具有庫衝突的讀取操作之時序圖; 圖5係顯示根據本發明的實施例,在不同排內執行多 重寫入操作時具有庫衝突的讀取操作之時序圖; 圖ό係顯示根據本發明的實施例,當有讀取庫衝突時 執行多重寫入命令的方法; 圖7 Α係顯示根據本發明的實施例,又一執行寫入命 令的方法之第一部份;及 圖7 B係顯示根據本發明的實施例,又一執行寫入命 令的方法之第二部份。 _ 13- (11) 1253563 (11)
【主要 元件對照 表 ] 1 00 記 憶 體 控 制 器 1 05 記 憶 體 排 110 庫 A 115 庫 B 12 0 庫 C 1 25 庫 D 200 讀 取 Ξ主 δ円 求 佇 列 205 寫 入 請 求 佇 列 2 10 寫 入 資 料 緩 衝器 220 趣 輯 225 處 理 器 23 0 指 令 儲 存 裝 置
-14 ^
Claims (1)
1253563 拾 (1) 申請專利範圍 义4 }105_更丨正太丨 附件2 : 第92 1 35045號專利申請案 中文申請專利範圍替換本 民國94年12月5日修正 1 . 一種記憶體系統,包括: 記憶體裝置,具有第一庫及第二庫;以及 記憶體控制器,具有寫入請求佇列以儲存寫入請求, 其中,當在對第一庫的第一讀取請求與對第一庫的第二讀 取請求之間存在讀取庫衝突時,在執行第一讀取請求之後 及在執行第二讀取請求之前,在延遲期間,對第二庫執行 第一寫入請求。 2 .如申請專利範圍第1項之記憶體系統,又包含讀取 請求佇列以儲存讀取請求。 3 .如申請專利範圍第1項之記憶體系統,又包含寫入 資料緩衝器以儲存寫入資料。 4 .如申請專利範圍第1項之記憶體系統,又包含邏輯 以決定第二讀取請求與第一寫入請求之一是否與第一讀取 請求具有協定衝突。 5 .如申請專利範圍第1項之記憶體系統,其中,該記 憶體裝置是動態隨機存取記憶體(DRAM )。 6 . —種記憶體系統,包括: 記憶體裝置,具有第一庫及第二庫;以及 記憶體控制器,具有讀取請求佇列以儲存讀取請求, 1253563 (2) 其中,當在對第〜庫的第一寫入請求與對第一庫的第二寫 入請求之間存在寫入庫衝突時,在執行第一寫入請求之後 及在執行第二寫入請求之前,在延遲期間,對第二庫執行 第一讀取請求。 7 .如申請專利範圍第6項之記憶體系統,又包含寫入 請求佇列以儲存寫入請求。 8 .如申請專利範圍第6項之記憶體系統,又包含邏輯 以決定第二寫入請求與第一讀取請求之一是否與第一寫入 請求具有協定衝突。 9 ·如申請專利範圍第6項之系統,其中,該記憶體裝 置是動態隨機存取記憶體(DRAM )。 10.—種管理記憶體之方法,包括: 將寫入請求儲存於寫入請求佇列中; 對記憶體裝置的第一庫執行第一讀取請求; 當第一讀取請求與第二讀取請求之間存在讀取庫衝突 時,在執行第一讀取請求之後,在延遲之後,對第一庫執 行第二讀取請求;及 在延遲期間,對第二庫執行第一寫入請求。 η ·如申請專利範圍第1 〇項之方法,其中,第一庫及 第二庫是在相同排內。 1 2.如申請專利範圍第1 〇項之方法,其中,第一庫與 第二庫不是在相同排內。 1 3 ·如申請專利範圍第1 0項之方法,又包含儲存第一 寫入請求於寫入請求佇入中。 -2 - 1253563 (3) 1 4 .如申請專利範圍第1 0項之方法,又包含決定第二 讀取請求與第一寫入請求之一是否與第一讀取請求具有協 定衝突。 1 5 . —種管理記憶體之方法,包括: 將讀取請求儲存於讀取請求佇列中; 對記憶體裝置的第一庫執行第一寫入請求; 當第一寫入請求與第二寫入請求之間存在寫入庫衝突 時,在執行第一寫入請求之後,在延遲之後,對第一庫執 行第二寫入請求;及 在延遲期間,對第二庫執行第一讀取請求。 1 6.如申請專利範圍第1 5項之方法,其中,第一庫及 第二庫是在相同排內。 1 7 .如申請專利範圍第1 5項之方法,其中,第一庫與 第二庫不是在相同排內。 1 8 .如申請專利範圍第1 5項之方法,又包含儲存第一 讀取請求於讀取請求佇入中。 1 9 .如申請專利範圍第1 5項之方法,又包含決定第二 寫入請求與第一讀取請求之一是否與第一寫入請求具有協 定衝突。 2 0.—種儲存媒體,該儲存媒體具有複數指令儲存於 其上,當該複數指令由機器執行時,會導致下述: 將寫入請求儲存於寫入請求佇列中; 對記憶體裝置的第一庫執行第一讀取請求; 當第一讀取請求與第二讀取請求之間存在讀取庫衝突 -3- 1253563 (4) 時,在執彳了第一讀取請求之後’在延遲之後’對第一庫執 行第二讀取請求;及 在延遲期間,對第二庫執行第一寫入請求。 2 1 .如申請專利範圍第2 0項之儲存媒體’其中,第一 庫及第二庫是在相同排內。 2 2.如申請專利範圍第20項之儲存媒體,其中,第一 庫與第二庫不是在相同排內。 23.如申請專利範圍第20項之儲存媒體,其中,該複 數指令又導致儲存第一寫入請求於寫入請求佇入中。 2 4.如申請專利範圍第20項之儲存媒體,其中,該複 數指令又導致決定第二讀取請求與第一寫入請求之一是否 與第一讀取請求具有協定衝突。 2 5.—種儲存媒體,該儲存媒體具有複數指令儲存於 其上,當該複數指令由機器執行時,會導致下述: 將讀取請求儲存於讀取請求佇列中; 對記憶體裝置的第一庫執彳了第一寫入請求; 當第一寫入請求與第二寫入請求之間存在寫入庫衝突 時,在執行第一寫入請求之後,在延遲之後,對第一庫執 行第一寫入請求;及 在延遲期間,對第二庫執行第一讀取請求。 26·如申請專利範圍第25項之儲存媒體,其中,第一 庫及第二庫是在相同排內。 2 7 .如申請專利範圍第2 5項之儲存媒體,其中,第一 庫與第二庫不是在相同排內。 -4 - 1253563 (5) 2 8 .如申請專利範圍第2 5項之儲存媒體,其中,該複 數指令又導致儲存第一讀取請求於讀取請求佇入中。 2 9 .如申請專利範圍第2 5項之儲存媒體,其中,該複 數指令又導致決定第二寫入請求與第一讀取請求之一是否 與第一寫入請求具有協定衝突。 3 0 . —種記憶體控制器,包括:
寫入請求佇列,以儲存寫入請求,其中,當在對記憶 體裝置的第一庫之第一讀取請求與對第一庫的第二讀取請 求之間存在讀取庫衝突時,在執行第二讀取請求之前的延 遲期間,對記憶體裝置的第二庫執行第一寫入請求。 3 1 .如申請專利範圍第3 0項之記憶體控制器,又包含 讀取請求佇列以儲存讀取請求。 3 2 .如申請專利範圍第3 0項之記憶體控制器,又包含 寫入資料緩衝器以儲存寫入資料。
3 3 .如申請專利範圍第3 0項之記憶體控制器,又包含 邏輯以決定第二讀取請求與第一寫入請求之一是否與第一 讀取請求具有協定衝突。 3 4 .如申請專利範圍第3 0項之記憶體控制器,其中, 該記憶體裝置是動態隨機存取記憶體(DRAM )。 3 5 . —種記憶體控制器,包括: 讀取請求佇列,以儲存讀取請求,其中,當在對記憶 體裝置的第一庫之第一寫入請求與對第一庫的第二寫入請 求之間存在寫入庫衝突時,在執行第二寫入請求之前的延 遲期間,對記憶體裝置的第二庫執行第一讀取請求。 -5- 1253563 (6) 3 6 .如申請專利範圍第3 5項之記憶體控制器,又包含 寫入請求佇列以儲存讀取請求。 3 7 .如申請專利範圍第3 5項之記憶體控制器,又包含 寫入資料緩衝器以儲存寫入資料。 3 8 .如申請專利範圍第3 5項之記憶體控制器,又包含 邏輯以決定第二讀取請求與第一寫入請求之一是否與第一 讀取請求具有協定衝突。
3 9 .如申請專利範圍第3 5項之記憶體控制器,其中, 該記憶體裝置是動態隨機存取記憶體(DRAM )。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/335,485 US7093059B2 (en) | 2002-12-31 | 2002-12-31 | Read-write switching method for a memory controller |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200413913A TW200413913A (en) | 2004-08-01 |
TWI253563B true TWI253563B (en) | 2006-04-21 |
Family
ID=32655361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092135045A TWI253563B (en) | 2002-12-31 | 2003-12-11 | Read-write switching method for a memory controller |
Country Status (9)
Country | Link |
---|---|
US (1) | US7093059B2 (zh) |
EP (1) | EP1579335B1 (zh) |
KR (1) | KR100865188B1 (zh) |
CN (1) | CN100476985C (zh) |
AT (1) | ATE405885T1 (zh) |
AU (1) | AU2003294679A1 (zh) |
DE (1) | DE60323151D1 (zh) |
TW (1) | TWI253563B (zh) |
WO (1) | WO2004061672A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7127574B2 (en) * | 2003-10-22 | 2006-10-24 | Intel Corporatioon | Method and apparatus for out of order memory scheduling |
US8081182B2 (en) * | 2004-03-03 | 2011-12-20 | Qualcomm Incorporated | Depth buffer for rasterization pipeline |
US20060069888A1 (en) * | 2004-09-29 | 2006-03-30 | International Business Machines (Ibm) Corporation | Method, system and program for managing asynchronous cache scans |
US20060129726A1 (en) * | 2004-12-09 | 2006-06-15 | International Business Machines Corporation | Methods and apparatus for processing a command |
US8082396B2 (en) * | 2005-04-28 | 2011-12-20 | International Business Machines Corporation | Selecting a command to send to memory |
US8065457B2 (en) * | 2005-09-09 | 2011-11-22 | Advanced Micro Devices, Inc. | Delayed memory access request arbitration |
US7698498B2 (en) * | 2005-12-29 | 2010-04-13 | Intel Corporation | Memory controller with bank sorting and scheduling |
US7596647B1 (en) | 2006-09-18 | 2009-09-29 | Nvidia Corporation | Urgency based arbiter |
US8060692B2 (en) * | 2008-06-27 | 2011-11-15 | Intel Corporation | Memory controller using time-staggered lockstep sub-channels with buffered memory |
US20100250826A1 (en) * | 2009-03-24 | 2010-09-30 | Micron Technology, Inc. | Memory systems with a plurality of structures and methods for operating the same |
CN101557419B (zh) * | 2009-05-06 | 2012-07-11 | 成都市华为赛门铁克科技有限公司 | 一种数据读写系统和数据管理方法 |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US11275509B1 (en) * | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
JP5547154B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | メモリ・デバイス |
US8996782B2 (en) | 2012-03-23 | 2015-03-31 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
KR102205899B1 (ko) * | 2014-02-27 | 2021-01-21 | 삼성전자주식회사 | 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치 |
TWI541647B (zh) * | 2015-02-06 | 2016-07-11 | 瑞昱半導體股份有限公司 | 記憶體控制器及相關的控制方法 |
US10180803B2 (en) | 2015-07-28 | 2019-01-15 | Futurewei Technologies, Inc. | Intelligent memory architecture for increased efficiency |
US10437480B2 (en) * | 2015-12-01 | 2019-10-08 | Futurewei Technologies, Inc. | Intelligent coded memory architecture with enhanced access scheduler |
US9837135B2 (en) | 2016-03-03 | 2017-12-05 | Samsung Electronics Co., Ltd. | Methods for addressing high capacity SDRAM-like memory without increasing pin cost |
US11048437B2 (en) | 2019-02-28 | 2021-06-29 | Micron Technology, Inc. | Double threshold controlled scheduling of memory access commands |
CN113177012A (zh) * | 2021-05-12 | 2021-07-27 | 成都实时技术股份有限公司 | Pcie-srio数据交互处理方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8401804D0 (en) | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Data storage apparatus |
EP0425550B1 (en) | 1988-06-30 | 1995-01-04 | Wang Laboratories, Inc. | Memory control unit |
US5784582A (en) * | 1996-10-28 | 1998-07-21 | 3Com Corporation | Data processing system having memory controller for supplying current request and next request for access to the shared memory pipeline |
US6272600B1 (en) | 1996-11-15 | 2001-08-07 | Hyundai Electronics America | Memory request reordering in a data processing system |
US5948081A (en) | 1997-12-22 | 1999-09-07 | Compaq Computer Corporation | System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed |
US6233661B1 (en) * | 1998-04-28 | 2001-05-15 | Compaq Computer Corporation | Computer system with memory controller that hides the next cycle during the current cycle |
US6219765B1 (en) | 1998-08-03 | 2001-04-17 | Micron Technology, Inc. | Memory paging control apparatus |
US6216178B1 (en) | 1998-11-16 | 2001-04-10 | Infineon Technologies Ag | Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution |
US6389520B2 (en) * | 1998-12-23 | 2002-05-14 | Micron Technology, Inc. | Method for controlling out of order accessing to a multibank memory |
US6393512B1 (en) * | 1999-09-27 | 2002-05-21 | Ati International Srl | Circuit and method for detecting bank conflicts in accessing adjacent banks |
US6393534B1 (en) * | 1999-09-27 | 2002-05-21 | Ati International Srl | Scheduler for avoiding bank conflicts in issuing concurrent requests to main memory |
US6622225B1 (en) * | 2000-08-31 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | System for minimizing memory bank conflicts in a computer system |
US6662265B1 (en) * | 2000-08-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Mechanism to track all open pages in a DRAM memory system |
US6938133B2 (en) * | 2001-09-28 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | Memory latency and bandwidth optimizations |
US20040076044A1 (en) * | 2002-07-09 | 2004-04-22 | Farshid Nowshadi | Method and system for improving access latency of multiple bank devices |
US7127574B2 (en) * | 2003-10-22 | 2006-10-24 | Intel Corporatioon | Method and apparatus for out of order memory scheduling |
-
2002
- 2002-12-31 US US10/335,485 patent/US7093059B2/en not_active Expired - Fee Related
-
2003
- 2003-12-10 AT AT03787294T patent/ATE405885T1/de not_active IP Right Cessation
- 2003-12-10 KR KR1020057012265A patent/KR100865188B1/ko not_active IP Right Cessation
- 2003-12-10 EP EP03787294A patent/EP1579335B1/en not_active Expired - Lifetime
- 2003-12-10 AU AU2003294679A patent/AU2003294679A1/en not_active Abandoned
- 2003-12-10 DE DE60323151T patent/DE60323151D1/de not_active Expired - Lifetime
- 2003-12-10 WO PCT/US2003/039155 patent/WO2004061672A2/en not_active Application Discontinuation
- 2003-12-11 TW TW092135045A patent/TWI253563B/zh not_active IP Right Cessation
- 2003-12-31 CN CNB2003101248260A patent/CN100476985C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20050093809A (ko) | 2005-09-23 |
KR100865188B1 (ko) | 2008-10-23 |
EP1579335A2 (en) | 2005-09-28 |
WO2004061672A3 (en) | 2004-10-14 |
AU2003294679A8 (en) | 2004-07-29 |
US7093059B2 (en) | 2006-08-15 |
AU2003294679A1 (en) | 2004-07-29 |
DE60323151D1 (de) | 2008-10-02 |
CN100476985C (zh) | 2009-04-08 |
EP1579335B1 (en) | 2008-08-20 |
TW200413913A (en) | 2004-08-01 |
US20040128428A1 (en) | 2004-07-01 |
WO2004061672A2 (en) | 2004-07-22 |
CN1519854A (zh) | 2004-08-11 |
ATE405885T1 (de) | 2008-09-15 |
WO2004061672A8 (en) | 2008-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI253563B (en) | Read-write switching method for a memory controller | |
US9904489B2 (en) | Processing systems, memory controllers and methods for controlling memory access operations | |
JP6169658B2 (ja) | 有向自動リフレッシュ同期 | |
US5889714A (en) | Adaptive precharge management for synchronous DRAM | |
US8281101B2 (en) | Dynamic random access memory with shadow writes | |
JP6130594B2 (ja) | 信頼性の高い動作に適したメモリコントローラを有するデータプロセッサ及び方法 | |
CN108139994B (zh) | 内存访问方法及内存控制器 | |
US20070198782A1 (en) | Memory controller | |
US6389520B2 (en) | Method for controlling out of order accessing to a multibank memory | |
JP2008102932A (ja) | メモリ・アクセスを実施する方法および装置 | |
US6549991B1 (en) | Pipelined SDRAM memory controller to optimize bus utilization | |
US6622222B2 (en) | Sequencing data on a shared data bus via a memory buffer to prevent data overlap during multiple memory read operations | |
US6868486B1 (en) | Providing multiple memory controllers on a memory bus | |
JPS63114000A (ja) | ダイナミツク・ランダム・アクセス・メモリの制御方式 | |
US9037806B2 (en) | Reducing store operation busy times | |
JPH0668671A (ja) | メモリ装置 | |
GB2426841A (en) | Providing a plurality of copies of program data in memory | |
JPH06324940A (ja) | メモリ制御方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |