TW201145023A - Access scheduler - Google Patents

Access scheduler Download PDF

Info

Publication number
TW201145023A
TW201145023A TW100101673A TW100101673A TW201145023A TW 201145023 A TW201145023 A TW 201145023A TW 100101673 A TW100101673 A TW 100101673A TW 100101673 A TW100101673 A TW 100101673A TW 201145023 A TW201145023 A TW 201145023A
Authority
TW
Taiwan
Prior art keywords
request
level
access
memory
scheduler
Prior art date
Application number
TW100101673A
Other languages
English (en)
Other versions
TWI512464B (zh
Inventor
Vitaly Sukonik
Sarig Livne
Bengt Werdin
Original Assignee
Xelerated Ab
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 Xelerated Ab filed Critical Xelerated Ab
Publication of TW201145023A publication Critical patent/TW201145023A/zh
Application granted granted Critical
Publication of TWI512464B publication Critical patent/TWI512464B/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • 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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Description

201145023 六、發明說明: 【發明所屬之技術領域】 本發明係關於一種存取排程器,其用於排程對諸如用於 封包緩衝之一或多個動態隨機存取記憶體(DRAM)之—或 多個記憶體裝置之存取。本發明亦係關於一種包括此一存 取排程器之記憶體控制器,且係關於一種包括該記憶體控 制器之資料處理系統。 【先前技術】 封包緩衝器(舉例而言,排佇列裝置)通常係由於一動態 隨機存取記憶體(DRAM)之低成本及低功率而使用其實 施。然而,一DRAM由於其長延時及其約束而給隨機存取 帶來一挑戰。一 DRAM係組織成若干記憶體庫,且DRam 之實體性質給記憶體庫存取帶來限制。舉例而言,存取參 數列循環時間tRC給出對一 DRAM記憶體庫中之一列之一 存取與對同一DRAM記憶體庫中之另一列之一相繼存取之 間的最小時間《另一存取參數輪詢時間訊框作八寶(其中同 一 dram裝置可同時參與的四個列啟動輪詢時間訊框中之 一最大值)限制在一時間窗内之列啟動命令之數目。一列 係記憶體庫之一部分。必須在對一列内之一位址之一讀取 或寫入可執行之前啟動該列。 一 DRAM之一記憶體控制器接收指向該DRAM2不同記 憶體庫之ff取及寫人請求。由於關於每時間單位之存取而 言dram頻寬通常係一瓶頸,因此一dram之記憶體控制 器可重排讀取及寫人請求之次序以使得記憶體介面之利用 152841.doc -4 - 201145023 最大化。 一個最佳化係以一固定次序循環地存取該等記憶體庫, 因此確保對任一 dram記憶體庫之兩個相繼存取之間的時 間大於或等於列循環時間tRC。 另最佳化係重排讀取请求及寫入請求以使得多個讀取 請求後跟有多個寫入請求;例如,將序列S1气尺丨, W4)重排為S2=(R1,R3, W2, W4),其中R代表讀取,|代 表寫入,且數字指示其中由記憶體控制器接收該等請求之 次序。通常存在用於在對DRAM之讀取及寫入存取之間迴 轉之一頻寬損失,因此以比S1短之時間完成§2。 由Bains發佈之美國申請案US 2004/0236921 A1揭示一種 用於改良一快取資料匯流排上之頻寬以使得可更有效地使 用諸如DRAM之快取記憶體之方法。於一個實施例中,該 等讀取或寫入存取經再排序以有效地利用資料匯流排上之 頻寬。 由Van Hook等人之美國專利us 6 564 3〇4 B1揭示一種用 於存取一圖形處理系統中之記憶體之記憶體處理系統,其 中一記憶體控制器仲裁來自複數個記憶體請求者之記憶體 存取請求。將讀取一起編組且將寫入一起編組以避免模式 切換。 然而,諸如讀取及寫入存取等存取之重新排序可導致邏 輯錯誤;例如,當在寫入DRAM記憶體庫中之一位址之前 讀取該位址之情況下。舉例而言,|2及R3可以上文提及 之序列 S1=(R1,W2, R3, W4)及 S2=(R1,R3, W2, W4)存取同 152841.doc 201145023 一 s己憶體庫位址。在W2寫入一資料結構(例如,一連結串 列(linked list))之一元素且R3存取該資料結構之同一元素 之情況下,在以S2中之次序重新排序贾2及R3時,將出現 一邏輯錯誤,乃因將在已寫入該位址之前使得一程式讀取 該位址。亦即’重新排序將使得正剖析該連結串列之一程 式使用一過時指標,從而導致程式故障。 由Laskshmanamurthy等人之已發佈美國申請案us 2007/0156946 A1揭示一種具有記憶體庫分類及排程之記 憶體控制器。該記憶體控制器包括一 Fif〇緩衝器、一仲裁 器、一記憶體庫FIFO集及一記憶體庫排程器。將來自 FIFO緩衝器之輸出饋送至仲裁器内,仲裁器將記憶體請求 分類至適合的記憶體庫FIFO内。仲裁器可使用一循環仲裁 方案分類及排定該等輸入請求奉流之優先級。記憶體庫排 程器自記憶體庫FIFO集接收輸出且循環處理該等請求。在 每一循環中,s己憶體庫排程器可選擇最佳化讀取/寫入效 率之事項,例如記憶體庫排程器可將讀取及/或寫入分組 以最小化讀取-寫入迴轉。 在US 2007/0156946 A1中,藉由一「無序」機制來解決 如上文所述之邏輯錯誤問題,該「無序」機制確保絕不違 反管理對同一位址之讀取及寫入之事項定序規則,亦即不 可在一位址被寫入之前對其進行讀取。 US 2007/0156946 A1之記憶體控制器之一缺點/問題係其 不提供記憶體頻寬之加權、公平共用。藉由在同一記憶體 庫FIFO中儲存讀取及寫入記憶體請求,讀取與寫入之間的 152841.doc 201145023 共用係藉由猜求到達過程來判定,且不由記憶體控制器調 節。 進一步地,US 2007/0156946 記憶體控制器具有一 仲裁器,其確保(例如)在一寫入請求及一讀取請求係針對 同一位址之情況下在一寫入請求之前不發出一讀取請求。 因此’不管在記憶體控制器之内部儲存器中待讀取之資料 之存在而發出對DRAM之讀取請求。此意指⑽剔頻寬未 被最佳地利用且讀取延時並未最小化。 此外,US 2007/0156946 A1之記憶體控制器絕不優先排 定需要低延時之請求(例如關於控制資訊之請求),因此在 今許較長延時之請求(例如,與封包資料有關之請求)之前 伺服此等需要低延時之請求。 【發明内容】 本發明之一目的係克服先前技術之問題及/或缺點。藉 由本發明,提供DRAM頻寬之共用及最佳化。進一步地, 經組態以每DRAM記憶體庫或每DRAM裝置(群組)地設定 位元之一發明性存取排程器使得存取排程器與一記憶體介 面同步地執行DRAM存取之開放迴路控制,亦即,在存取 排程器發射一命令序列時,保證以與存取排程器發射該命 令序列之速率相同之速率由記憶體介面執行該命令序列。 用於排程對一或多個記憶體裝置之存取之該發明性存取 排程器之一實施例包括: --第一階層層級,其包括: -一或多個記憶體庫計時器,其經組態以在存取與 152841.doc 201145023 該記憶體裝置之每一記憶體庫相關聯之一 FIF0佇列時設 定該記憶體庫之一遮罩位元,該FIF〇佇列儲存與存取請 求有關之請求資訊;及 -一或多個第一層級仲裁器(304),其經組態以自複 數個FIFO佇列之—個FIF〇佇列選擇一存取請求,且將關 於該-個FIFO仔列之資格資訊傳播至下一階層層級;及 -一第四階層層級,其包括: 第四層級仲裁器,其經組態以接收所傳播之資 格資訊;及基於所傳播之資格資訊選擇-請求。 在實施例中’該第四層級仲裁器進—步經組態以基於由 一有限狀態機產生之—再新請求選擇一請求。 在實施例中該有限狀態機經組態以控制在切換至一第 二類型之存取請求(例如,寫人請求)之—數目之前待執行 的-第-類型之存取請求(例如’讀取請求)之數目。 實施例進一步包括_ ^ _ 括第五階層層級,包括: -一第五層級仲裁器,其 、、-生組態以在對一第一記憶體裝 置之-存取請求與對—第遐衮 進行選擇。 化體裝置之-存取請求之間 •-第二階層層級’其包括一或多個第二層級仲裁器 ^配置㈣第—層級仲裁器接㈣ =態以在低優先級請求與高優 == 將與較請求有關之資 Π “仲裁 第三階層層級,其2傳播至下—階層層級;及 、G括一或多個第三層級仲裁器 152841.doc 201145023 其經組態以自第二層級仲裁器接收所傳播之資格資訊;自 -管理請求單元接收管理請求,以基於所傳播之資格資訊 及管理請求itm及將與敎存取請求㈣之資格 資訊傳播至下一階層層級。 實施例進-步包括-再新計時器,其經組態以基於儲存 於-組態參數單7〇中之組態參數指示有限狀態機產生再新 請求。 在實施例中,再新請求係用於記憶體裝置之-維持請 求,諸如用以再新記憶體裝置之内容之一請求。 在實施例中’該再新請求係週期性地發送且被賦予係優 先於其他請求。 在實施例中,組態參數係關於在執行某一數目之寫入請 求之前待執行之讀取請求之數目,或係關於在寫入之前待 讀取之叢發之數目。 本發明亦係關於包括該發明性存取排程器之__記憶體控 制器。該記憶體控制器之實施例進一步包括: --存取緩衝器,其連接至存取排程器及—或多個記憶 體農置,且經組態以自連接至該記憶體控制器之—處理器 接收對該一或多個記憶體裝置之一或多 -一重新排序裝置,錢接至該絲㈣且態 以自該-或多個記憶體裝置接收回應資料,以將所接收之 回應資料分類以便以與處理器⑽)發送存取請求之次序相 同之次序做出對處理器之存取回應。 本發明亦係關於-種用於排程對—或多個記憶體裝置之 15284 丨.doc 201145023 存取之方法,其包括提供一存取排程器之步驟,該存取排 程器具有: •一第一階層層級,其包括: _ 一或多個記憶體庫計時器,其經組態以在存取與 該记憶體裝置之每一記憶體庫相關聯之一 nF〇佇列時設 疋4 e憶體庫之—遮罩位元,.該FIF〇仔列儲存與存取請 求有關之請求資訊;及 _ 一或多個第一層級仲裁器,其經組態以自複數個 阳〇仵列中之—個聊仔列選擇—存取請求謂關於該 一個FIF0仔列之資格資訊傳播至下一階層層級;及 -一第四階層層級,其包括: 119 ’級仲裁器’其經組態以接收所傳播之資 資訊;且基於所傳播之資格資訊、由—有限狀態機產 生之—可能再新請求、及由一 罩來選擇一請求。 H十時器設定之可能遮 步驟:藉助於有限狀態 二類型之存取請求(例 一類型之存取請求(例 機 如 如 該方法之實施例進一步包括以下 ,控制在切換至某一數目之一第 ’寫入請求)之前待執行的一第 ’讀取請求)之數目。 該方法之實施例進一步g紅 層級’其包括經組態以在對—第—驟:提供—第五階層 求與對-第二記憶體裝置之一存:=體裝置:-存取請 第五層級仲裁器。 、之間進行選擇之一 該方法之實施例進一步 包括以下步驟,提供: 152841.doc 201145023 --第二階層層級,其包括一或多個第二層級仲裁器, 其等經配置以自第-層級仲裁器接收所傳播之資格資訊且 經組態以在低優先級請求與高優先級請求之間執行仲裁且 將與該選定請求有關之資袼資訊傳播至下一階層層級;及 --第二階層層級’其包括一或多個第三層級仲裁器, 其經組態以自第二層級仲裁器接收所傳播之資格資/自 -管理請求單元接收管理請求,以基於所傳播之資格資訊 ㈣理請求來選擇-請求;及將與選定之存取請求有關之 資格資訊傳播至下一階層層級。 該方法之實施例進-步包括:提供—再新計時器,其經 組態以基於儲存於-組態參數單元中之組態參數指示有限 狀態機產生再新請求。 經組態以排程對一封包緩衝器(諸如一 dram)之存取之 發明性存取排程器之實施例具有以下特徵及優勢: 使用由D十時器控制之遮罩以防止記憶體庫存取型樣破 壞諸如記憶體庫隨機存取時間之DRAM約束。 -產生亦防止關於存取之D R A M約束致使記憶體匯流排 拖延(stall)之一記憶體庫存取型樣。 -在D R A Μ群組之間交替以進一步獲得記憶體匯流排頻 寬其中σ己憶體裝置在群組之間共用位址匯流排但每群組 具有一專用資料匯流排。 做出不同長度之dram存取;亦即,相對於迫使處理 器做出包括每記憶體庫之某一固定數目個叢發及每請求之 某一固疋數目個列的存取,包括每存取之不同量的資料叢 152841.doc • 11 · 201145023 發0 •將頻寬分享靈活地分配給讀取及寫入存取。 於控制 -支援高優先級及低優先級存取;例如,分別 及資料。 -用於管理存取之超高優先級。 包括該發明性存取排程器之__發明性記憶體控制器適用 於:緩衝器系統(例如在一訊務管理器中)中,亦即暫時儲 存以諸如狀結構在輸人端上接收之資料、等待在輸出 端發射之—系統。—訊務管理器係、提供頻寬管理以在一網 路連接系統中流動之—裝置;例如藉由用於仔列管理、排 R務成形及擁塞控制之機制之—組合,但不限於此用 途。 進步地,此一發明性記憶體控制器產生: °己隐體介面之局利用,亦即將記憶體請求之序列重新排 序以便使任—序列之記憶體請求之速率接近於-最佳地重 新排序之序列的速率; 對间頻寬之可調能力,亦即,該發明性記憶體控制器 於經調適以使用任意數目個DRAM裝置; 有界延_亦即,自發送要求來自記憶體控制器之一 應之!·求(例如讀取請求)之時間具有—已知上限; #取類型之間的記憶體頻寬之受控共用,亦即可 DRAM頻寬之—已知(例如,—最小)份額分配給一存取 型(例如’讀取存取或寫入存取);及 相對於請求次序之資料不重新排序’亦即,在一處理 152841.doc •12- 201145023 對記憶體控制器做出H求後跟有—第二請求之情沉 下,其中兩個請求(例如,讀取請求)皆觸發回應,則記憶 體控制器在傳回對第二請求之回應之前傳回對第一請求之 回應。 【實施方式】 根據本發明之實施例之以下詳細說明,在與隨附圖示— 起讀取時,將更易於瞭解本發明之目的、優勢及效應以及 特徵。 儘管本發明涵蓋各種修改及替代方法、設備及系統,且 本發明之實施例係展示於圖示中及將在下文中詳細闡述。 然而,應瞭解,特定說明及圖示並非意欲將本發明限制至 所揭不之特定形式。相反,所主張發明之範疇意欲包含在 本發明之精神及範疇内之其所有修改及替代構造,作為隨 附申請專利範圍内所表達之其等效物之完全範圍。在該等 圖示中,針對相同或相似特徵使用相同參考數字。 圖1根據本發明展示一資料處理系統100之一實施例之一 概覽。資料處理系統100包括連接至一記憶體控制器1〇4之 一處理器102。處理器102經組態以將存取請求發送至記憶 體控制器104且自記憶體控制器104接收存取回應,如箭頭 所圖解說明。 處理器102可係可執行電腦程式之一中央處理器單元 (CPU)、一多處理器、一網路處理器、一可程式化管線、 一 10處理器或邏輯電路(諸如有限狀態機)。 記憶體控制器104係經由一記憶體介面400連接至一或多 152841.doc •13· 201145023 個記憶體裝置106 ’且經組態以控制對一或多個記憶體裝 置106之存取。記憶體裝置1〇6(有時亦稱為一封包緩衝器) 可係具有隨機存取約束之一長延時記憶體,諸如一動雜隨 機存取記憶體(DRAM)。 在實施例中,記憶體控制器104包括一存取緩衝器2〇〇、 一存取排程器300、記憶體介面4〇〇、及—重新排序裝置 5〇〇,查閱圖1。如先前提及,記憶體介面4〇〇經組態以將 記憶體控制器1〇4連接至一或多個記憶體裝置1〇6(例如 D R A Μ)’且針對正使用之裝置類型實施通信協定(例如 dram協定)。 然而,如圖2中示意性地展示,應瞭解,在實施例中, 記憶體介面400可配置於一或多個記憶體控制器1〇4外部。 於此等實施例中,記憶體介面400可藉助於一開關45〇(查 閱圖2)連接至一或多個記憶體控制器丨〇4。該開關可係(舉 例而言)一交又開關、一網格網路、一環或一匯流排。 較佳地,記憶體介面400係經微碼的,且經組態以回應 於一所接收命令執行一經微碼序列。舉例而言,該命令可 係自存取緩衝器200接收之一讀取請求或一寫入請求。 在用於此說明中時,字詞「微碼」/「經微碼」係指實 施供其他單元使用之功能性基元之硬體位準指令。微碼駐 存於一特殊記憶體(未展示)中,且將輸入轉譯成内部電路 或輸入/輸出(10)管腳上之電路位準控制信號之序列。 存取緩衝器200經組態以自連接至記憶體控制器〗〇4之一 或多個處理器102接收一或多個存取請求。在實施例中, 152841.doc 201145023 存取緩衝器200經組態以處置對—或多個記憶體裝置 106(例如’ DRAM)之存取。 該等存取請求可係不同類型的,例如具有高缝優先級 之讀取或寫人請求及管理請求 '然而,應瞭解,其他實施 例可包括其他請求類型,諸如DRAM再新請求。 在貫施例中,官理晴求具有最高優先級,且大體而言與 寫入及讀取控制資訊資料有關之請求比與寫人及讀取資料 (例如,有效負荷資料)有關之請求具有更高之優先級。 舉例而s,管理請求可係用於記憶體介面中之組態參數 或微碼δ己‘It體之讀取或寫人請求,或用於記憶體介面之狀 態位元之讀取請求。 舉例而5,資料請求可係用於在ORAM中緩衝之封包資 料(例如有效負荷資料)之讀取或寫入請求。 舉例而言,控制資訊資料請求可係用於與儲存資料之資 料結構有關之資訊(諸如連結串列指標或封包長度)之讀取 或寫入請求。 在實施例中,存取緩衝器2〇〇係基於先進先出(FlF〇) 的,亦即,存取緩衝器2〇〇包括於此說明文本中亦稱為 FIF〇佇列之一定數目個FIFO緩衝器。 舉例而§,在存取緩衝器2〇〇經組態以處置兩個記憶體 裝置106(例如,DRAM,每一者具有8個記憶體庫)之情況 下則存在每請求類型(與一 FIFO佇列相關聯)16個FIFO佇 列管理清求通常不與一 FIFO佇列相關聯,乃因其具有最 高優先級且因此經排定優先級而不緩存。具有高優先級之 152841.doc 201145023 讀取請求、具有低優先級之讀取請求、具有高優先級之寫 入請求及具有低優先級之寫入請求各自與針對記憶體裝置 之每一記憶體庫之一 FIFCH宁列相關聯。 相依於自處理器接收之請求類型及相依於其意欲之記憶 體裝置及記憶體裝置之記憶體庫,將該請求儲存於對應於 請求類型之FIFO佇列中及所論述之記憶體裝置之記憶體庫 中。 存取緩衝器200包括或連接至一存取排程器3〇〇。該存取 排程器經組態以自存取緩衝器之FIFCH宁列接收或摘取請求 資訊’及/或自存取緩衝器接收或榻取管理請求資訊。舉 例而言’請求資訊可係該存取緩衝器中之一;pIF〇仔列包括 一存取請求之一指示,請求資訊亦可包括一 FIF〇佇列為空 之資訊及關於清求之長度之資訊。較佳地,由於管理請求 具有最高優先級,因此存取排程器可直接地接收或擷取管 理請求資訊而不將管理請求資訊緩存於存取緩衝器中。 存取排程器進一步經組態以藉助於包括一或多個排程演 算法之一或多個排程器或仲裁器排程該等請求。然後將該 經排程s青求(亦稱為選定請求)作為一請求命令發送至所論 述之記憶體裝置,較佳地發送至該記憶體裝置之專用記憶 體庫。該請求命令較佳地產生於存取緩衝器中,且自存取 緩衝器直接地或經由開關發送至記憶體介面。 記憶體控制器104進一步包括一重新排序裝置5〇〇,重新 排序裝置500連接至存取緩衝器200及/或記憶體裝置1〇6且 經組態以自存取緩衝器200及/或記憶體裝置1〇6接收回應 152841.doc -16- 201145023 資料。在實施例中,重新排序裝置5〇〇連接至記憶體裝置 1〇6,且經組態以經由記憶體介面4〇〇及可能亦經由開關 彻自記憶體襄置1()6接收回應資料。重新排序裝置5〇〇經 •’且t以將所接收之回應資料分類以便以與處理器1 將對 應、存取請树出至記憶體控^器1()4之次序相同之次序做 • 出對處理器102之存取回應。 圖3及圖4展示一發明性存取排程器3〇〇之實施例。該發 明性存取排程器係組態為一階層排程器,其中狀態資訊 (亦稱為貝格資訊)自資料樹之葉部朝向根部傳播如下文 將闡述。在根部處,做出一排程決策以選擇伺服哪一請 求,且然後該排程決策自根部傳播至一葉部,如下文將闡 述。在該葉部處,擷取請求資訊,且基於所擷取之請求資 訊將請求資訊發送至產生一 DRAM命令之一命令產生器。 在實施例中,發明性存取排程器3〇〇包括五個階層層 級,如圖3中示意性地圖解說明。然而,如圖4中示意性地 圖解說明,存取排程器300之實施例可包括樹狀㈣層 級。在圖4中,在存取排程器3〇〇中包括三個層級:層級 1、層級4及層級5。 現將參照圖3閣述自葉部至根部之資格資訊之傳播。 在一 FIFO仔列(諸如「Rd Hi FIF〇」、「⑹L〇阳〇」、 「Wr Hi FIFO」、或「Wr l〇 FIFO」中之一者)非空且其 記憶體庫計時器遮罩准許排程之情況下,其適合於由在第 一層級(層級1)處之一排程器304排程。 進一步地,在由第一層級排程器3〇4伺服之nF〇中之任 152841.doc 201145023 一者有資格之情況下,在層級1處之一第一層級排程器304 有資格由在層級2處之一第二層級排程器3〇8排程。舉例而 言’為使得一第一層級排程器304a有資格由一第二層級排 程器308a排程,讀取高優先級fifcK宁列「Rd Hi FIFO」中 之一者必須係有資格的。 在由層級3處之第三層級排程器3 12伺服之在層級2處之 第二層級排程器308中之任一者有資格之情況下,在層級2 處之一第二層級排程器3 〇8有資格由在層級3處之一第三層 級排程器312排程》 進一步地’在由在層級4處之第四層級排程器318伺服之 在層級3處之第三層級排程器312中之任一者有資格之情況 下,在層級3處之一第三層級排程器312有資格由在層級4 處之一第四層級排程器318排程。為使第三層級排程器3D 係有資格的,群組計時器315必須准許排程。在層級5處, 以一可循環方式交替在層級4處之群組。 現將參照圖3及圖9闡述自根部至一葉部之排程決策之傳 針對該群組,亦即在層級5處選定之DRAM裝置,在再 一再新計時器314)已達到在組態參數單元
寫入係有資格的之情況下 新計數器(亦稱為一 316中可組態之一起 °在未選擇再新且讀取及/或 讀取/寫入仲裁器318使用(例 152841.doc 201145023 如)一虧損加權循環(DWRR)排程演算法來選擇讀取或寫 入。否則排程器318可係空閒的。在選擇讀取或寫入之情 況下,選定之在層級3處之第三層級排程器312在有資格之 第二層級排程器308之間選擇具有最高優先級之第二層級 排程器308。然後選定之第二層級排程器3〇8在有資格之第 一層級排程器304之間選擇具有最高優先級之第一層級排 程器304。第一層級排程器3〇4以循環方式選擇下一有資格 之FIFCK宁列。 應瞭解,資格資訊自葉部至根部之傳播及排程決策自根 部至一葉部之傳播在具有不同於5之一數目之階層層級之 存取排程器中以相同方式運作。 根據實施例’第一層級(層級1)包括一或多個記憶體庫 計時器302,記憶體庫計時器之數目對應於記憶體庫之數 目。如圖7中示意性地圖解說明,在存取包括於存取緩衝 器中且與記憶體庫相關聯之FIFO佇列時,記憶體庫計時器 302經組態以設定用於記憶體裝置ι〇6之每一記憶體庫之一 遮罩位元。在圖3中,遮罩位元之設定係由連接FIF〇與第 一層級排程器304之線A40周圍之環圖解說明。藉由在存取 相關聯FIFO仔列時設定用於該記憶體庫之一遮罩位元,在 清除該遮罩位元之前無法選擇該記憶體庫用於另一存取。 進一步地,藉助於記憶體庫計時器302,在DRAM專用隨 機存取時間tRC超時時清除該遮罩位元。因此,可防止存 取錯誤’諸如在對一記憶體庫之前一存取之後過早地存取 同一記憶體庫。 152841.doc •19- 201145023 進步地,排程器300包括一或多個第一層級仲裁器 3〇4,例如每存取請求類型(與該存取緩衝器中之一佇 列相關聯)一個第一層級仲裁器3〇4。如圖9中之箭頭所 圖解說明,FIFO行列將資格資訊傳播至第一層級仲裁器 第層級仲裁器304經組態以藉助於一排程演算法 (諸如在圖3中由RR圖解說明之循環排程演算法)以一公平 方式且基於所接收之請求資訊選擇與記憶體庫〇至7相關聯 之FIFO佇列中之一者中所包括之存取請求中之一者。 因此,提供記憶體庫之工作守恆循環服務,其中每存取 請求類型一個循環;亦即,每讀取高優先級請求、讀取低 優先級請求、寫入高優先級請求及寫入低優先級請求一個 循環。 一旦已選擇一存取請求,則第一層級仲裁器3〇4將傳播 關於儲存與選定存取請求有關之請求資訊之FIF〇之資格資 訊至包括於下一層級(層級2)中之一第二層級仲裁器3〇8, 如圖9中之箭頭A42指示。 如圖3中示意性地圓解說明,用於排程讀取高優先級請 求之第一層級仲裁器304a經組態以基於包括於與記憶體庫 0至7相關聯之8個FIFO佇列「Read Hi FIFO」中之一者中 之凊求資訊選擇讀取高優先級請求中之一者。以相同方 式’第一層級仲裁器304b、304c、304(1經組態以分別自 FIFO 佇列「Read Lo FIFO」、「Write Hi HFO」及 「Write Lo FIFO」選擇讀取低優先級請求、寫入高優先級 請求及寫入低優先級請求。 152841.doc • 20· 201145023 在最後一個儲存器306中,儲存來自排程器3〇4之—指 標。該指標經組態以告知記憶體庫0至7中之哪一者係將伺 服之最後一個記憶體庫。在一排程決策之後,最後一個指 標306以與排程器相關聯之記憶體庫之數目為模增加},Z 指示在排程器304之後將伺服哪一記憶體庫。 根據實施例,第二層級(層級2)包括一或多個第二層級 仲裁器308。較佳地,存取排程器3〇〇包括每請求類型(不 管高優先級及低優先級)一個第二層級仲裁器3〇8,亦即每 寫入請求一個第二層級仲裁器及每讀取請求一個第二層級 仲裁器。因此,一第一第二層級仲裁器3〇8a經組態以在讀 取請求之間仲裁,且一第二第二層級仲裁器3〇扑經組態以 在寫入請求之間仲裁。 第二層級仲裁器308經組態以藉助於一固定優先級排程 演算法在低優先級請求與高優先級請求之間執行仲裁,亦 即,第二層級仲裁器308經組態以選擇具有最高優先級之 凊求且將資格資訊傳播至包括於下一層級(層級3)中之一第 二層級仲裁器312,如圖9中之箭頭A44所指示。 因此,只要存在讀取高優先級請求,第一第二層級仲裁 器308a就將在選擇一讀取低優先級請求之前選擇一讀取高 優先級請求。 以相同之理由,第二第二層級仲裁器3〇8b經組態以在選 擇一寫入低優先級請求之前選擇寫入高優先級請求。 在第二層級(層級2)中,存取排程器3〇〇亦包括一管理請 求單兀3 10,該管理請求單元經組態以將具有高優先級之 152841.doc -21 · 201145023 管理讀取請求自存取緩衝器傳播至第三層級排程器31以, 且將資格資訊傳播至第三層級排程器312b,如圖9中之箭 頭A46所指示。 根據實施例,在第三層級(層級3)中,存取排程器3〇〇包 括一或多個第三層級仲裁器312。第三層級仲裁器312經組 態以在正常存取請求(亦即,讀取請求及寫入請求)與管理 存取請求之間排程。如先前提及,管理存取請求係高優先 級存取請求’其可源自與處理器不同之另一組件;例如, 源自連接至存取排程器/存取緩衝器之一控制板cpu。 如圖3中示意性地圖解說明,一第一第三層級仲裁器 3 12a經組態以在一讀取請求與一讀取管理請求之間進行選 擇’且第二第三層級仲裁器3丨2b經組態以在一寫入請求與 一寫入管理請求之間進行選擇。由於一管理請求具有比讀 取請求及寫入請求更高之一優先級,因此只要一管理請求 可用於選擇’第三層級仲裁器3 12就將選擇一管理請求。 如圖9中之箭頭A48所指示’將資格資訊傳播至包括於下 一層級(層級4)中之一第四層級仲裁器318。 在實施例中’存取排程器300亦包括一再新計時器3 14, 其經組態以基於儲存於一組態參數單元3 16中之組態參數 指示一有限狀態機(FSM)320產生一再新請求。舉例而言, 該再新請求可係DRAM之一維護請求,亦即請求drAM之 維護以(例如)藉由一内部電子機構再新記憶體之内容之一 請求°在不再新之情況下’記憶體内容被破壞。再新請求 可係週期性地發送,且其可被賦予係優先於其他存取請求 152841.doc -22- 201145023 及管理請求。 在實施例中,存取排程器包括一或多個群組計時器 315。群組計時器315經組態以相依於(例如)tFAW、 tRRD、tRead2write、tWrite2read、及 tCalibration設定一群 組(亦即一 DRAM裝置)之遮罩位元,如圖8中示意性地圖解 說明。fFAW限制在一時間窗内之列啟動命令之數目,且 tRRD係對一 DRAM裝置之兩個相繼啟動命令之間的最小時 間。tRead2write係一讀取命令與一後續寫入命令之間的最 小時間,且tWrite2read係一寫入命令與一後續讀取命令之 間的最小時間。tCalibration係兩個校準命令之間的時間週 期。舉例而言,校準命令可經執行以補償操作條件之改 變,諸如溫度改變。 在第四層級中,存取排程器可包括組態參數3 16。組態 參數單元3 1 6經組態以將組態參數(諸如在執行一定數目個 寫入請求之前待執行之讀取請求之數目,或在寫入之前待 讀取之叢發之數目)傳送至包括於第四層級(層級4)中之一 有限狀態機(FSM)320。藉助於該等組態參數,FSM 320經 組態以控制何時進行讀取、寫入、再新或空閒。. FSM經組態以將亦稱作一 Ack信號之一應答信號傳輸至 FIFO佇列中之一或多者及與該一或多個第一層級仲裁器 304相關聯之一或多個最後一個儲存器306,如圖3、圖4及 圖9中示意性地圖解說明。Ack信號觸發自該選定FIFO之 一請求之擷取。另外,其觸發與選定FIFO相關聯之RR排 程器304之最後一個儲存器306中之RR指標之更新。 152841.doc -23- 201145023 根據實施例,存取排程器在第四層級(層級4)中包括一 第四層級仲裁器318、有限狀態機(fSM)320、一FSM計時 器計數器322。 第四層級仲裁器318經組態以在請求之間(亦即,在寫入 請求、讀取請求、管理請求及再新請求之間)排程而不考 量優先級,亦即在第四層級處一請求是具有低優先級還是 高優先級並不重要。第四層級仲裁器3丨8亦可經組態以排 程在待執行一定數目個寫入請求之前待執行之一定數目個 讀取請求’以最小化記憶體存取中之延遲,乃因不同存取 請求(例如,讀取、寫入、管理、再新及維護)之間的切換 花費時間且亦可要求插入空閒週期。 在實施例中,再新計時器3 14經組態以對再新請求之間 的週期數目計數’且一或多個FSM計數器322經組態以對 寫入及讀取請求之數目以及當在諸如讀取、寫入及再新之 命令類型之間切換時需要插入之週期數目計數。 s賣取及寫入頻寬係可組態的,且以一公平、加權、工作 守悝之方式動態地共用。包括於組態參數單元316中之兩 個可組態參數係「MaxRead」、「MaxWrite」。參數 「MaxWrite」指示在轉至伺服dram讀取之前寫入(若有 資格)之DRAM叢發之數目。參數 「MaxRead」指示在轉至 祠服DRAM寫入之前讀取(若有資格)之dram叢發之數 目。在實施例中’ 「MaxRead」及「Max Write」係一虧損 加權循環(DWRR)排程器之權數。 進一步地,第四層級仲裁器318經組態以將資格資訊傳 152841.doc -24· 201145023 播至存取排程器之包括於下—層級(層級5)中之—第五層級 仲裁器324,如圖9中之箭頭A5〇所指示。 根據實施例,該存取排程器在一第五層級(層級5)令包 括一第五層級仲裁器324,其經組態以在對一第一記憶體 裝置1〇6(亦稱為一第一群組〇)之存取請求與對一第二記悚 體裝置1〇6(亦稱為一第二群組〗)之存取請求之間進行選 擇。在實施例中,該等群組共用位址匯流排但具有單獨資 料匯流排。在實施例中,第五層級仲裁器324在選擇對第 一記憶體裝置之一存取請求與對第二記憶體裝置之一存取 請求之間交替。 為最大化記憶體介面之利用,DRAM裝置可因此被組織 成群組,例如在群組〇及群組丨中。藉由在群組之間交替, 對如tFAW參數所表達之在一時間窗内之列啟動命令之數 目之DRAM約束將不減損記憶體介面頻寬。群組之間的交 替亦防止由於tRRD(亦即兩個相繼列啟動命令之間的最小 時間)及tCCD(亦即’兩個行命令之間的最小時間)所致之 頻寬減損》 一命令產生器214配置成與存取排程器3〇〇通信,且經組 態以基於關於來自存取排程器之勝者之請求資訊(如圖9中 之箭頭Rq Info所指示)及基於與該請求相關聯且自FIF〇佇 列擷取之位址、資料及屬性(如圖9中之箭頭Addr、data及 attr所指示)產生一命令。然後將該命令經由記憶體介面 400發送至DRAM,如圖9中之箭頭cmd所圖解說明》 .圖4示意性地圖解說明一發明性存取排程器3〇〇之一更通 152841.doc •25· 201145023 用實施例。 如圖解說明,存取排程器300之實施例在一第一層級(層 級1)中包括一或多個記憶體庫計時器302,記憶體庫計時 器之數目對應於記憶體庫之數目。記憶體庫計時器302經 組態以在存取包括於存取緩衝器中且與記憶體庫相關聯之 FIFO仵列時針對記憶體裝置i 〇6之每一記憶體庫設定一遮 罩位元’如先前所述。 進一步地,排程器300包括一或多個第一層級仲裁器 304,例如每存取請求類型(與存取緩衝器中之一fif〇佇列 相關聯)一個第一層級仲裁器304。在所展示之實施例中, 存取請求類型之數目為2 :讀取請求及寫入請求。 一旦已選定一存取請求,則第一層級仲裁器3〇4將傳播 關於儲存與選定存取請求有關之請求資訊之fif〇之資格資 訊至包括於下一層級(層級4)中之一第四層級仲裁器318, 如線A44所指示。 再新計時器314、 、—有限狀態機 在實施例中,存取排程器3〇〇亦包括一 群組計時器3 1 5、一組態參數單元3 j 6 (FSM)320及FSM計數器322,如先前所述 第四層級仲裁器318經組態以在各請求之間(亦即,在 入請求、讀取請求、管理請求及再新請求 爪<間)排程。第 四層級仲裁器318亦可經組態以排程在待執 — ^ x ^ 订—定數目個 冩入切求之前待執行之一定數目個讀取請 、= 最]、化古? 憶體存取中之延遲,乃因不同存取請求( 。 J如,讀取、寫 入、管理、再新及維護)之間的切換花費 ^ 间且亦可要求 152841.doc •26· 201145023 插入空閒週期。 '步土也’第四層級仲裁器318經組態以將資格資訊傳 播至存取排程器之包括於下—層級(層級5)中之-第五層級 仲裁器324,如線A50所指示。 第五層級仲裁器324經組態以在對一第一記憶體裝置 亦稱為—第—群_之存取請求與對—第二記憶體裝 置1〇6(亦稱為一第二群組丨)之存取請求之間進行選擇如 先前所述。將關於勝者之請求資訊傳輸至命令產生器 14命々產生器214基於該請求資訊且基於與該請求資訊 相關聯且儲存於一 FIFO佇列中之位址、資料及屬性產生一 命令。然後將該命令經由一記憶體介面4〇〇發送至DRam 裝置。 圖5示意性地展示一存取緩衝器2〇〇之一實施例。存取緩 衝器200較佳地係基於先進先出(FIF〇)的,亦即存取緩衝 器200包括於此說明文本中亦稱為fif〇佇列之一定數目個 FIFO緩衝器。 圖5中展示之存取緩衝器200之實施例經組態以處置兩個 記憶體裝置1〇6(例如,DRAM),每一記憶體裝置1〇6具有8 個記憶體庫’意指每請求類型存在16個FIFO佇列。由於與 FIFO佇列相關聯之請求類型之數目係4(管理請求不與一 FIFCH宁列相關聯),則存取缓衝器200之所展示實施例總計 包括64個FIFO佇列。為清晰起見,在圖5中未展示全部64 個FIFO佇列。 然而,應瞭解,FIFO佇列之數目可相依於將處置之記憶 152841.doc • 27- 201145023 體裝置之數目、包括於每一記憶體裝置中之記憶體庫之數 目及/或與一或多個FIFO仵列相關聯之請求類型之數目而 不同。 在實施例中,存取緩衝器200包括一定數目個寫入/讀取 低優先級/高優先級FIFO佇列204: 「WrLoPdoFlFo」、 「WrHiPrioFIFO」、「RdHiPrioHFOj、及「RdL〇Pri〇 FIFO」;一定數目個寫入/讀取低優先級/高優先級儲存器 206 : 「Wr LoPrio儲存器」、「Rd LoPrio儲存器」、 「Wr HiPrio儲存器」、及「Rd HiPrio儲存器」;一搜尋 單元208、一仲裁器210、一多工器212、一存取排程器300 及一命令產生器214。命令產生器2 14經組態以依所要求之 格式構建一記憶體控制器命令且將所產生之命令經由記憶 體介面400發送至一記憶體裝置1〇6。 在實施例中,可搜尋位址儲存器206係内容可定址聯合 記憶體(CAM)。 進一步地’應瞭解’在其他實施例中,存取排程器3〇〇 可配置於存取緩衝器2〇〇之外部且與存取緩衝器2〇〇通信。 如圖5之左手側中之向右箭頭A1至A5示意性地圖解說 明,可將不同類型(例如,讀取/寫入、高優先級/低優先級 及管理)之請求自處理器發送至存取緩衝器200。然而,應 暸解’其他實施例可包括其他請求類型,諸如DRAM再新 請求。 於圖5中’展示以下不同請求類型··一管理請求 Mgmt」;具有一低優先級之一寫入請求「writeLoPrio」, 152841.doc •28· 201145023 例如一寫入資料請求;且有一 ^八有同優先級之—寫入請求 「WriteHiPrio」,例如一宜入祕… “ j如寫入控制育訊資料請求;具有一 高優先級之-讀取請求「ReadHiPH。」,例如—讀取控制 資訊資料請求;及具有一低優先級之—讀取請求 「ReadLoPrio」,例如一讀取資料請求。 在實施例中’例如查閱圖5’ _寫人請求包括將寫入至 -記憶體裝置之資料、對應於將寫入該資料之記憶體裝置 之位址之—位址、及界定該請求關於其他請求之次序之- 屬性;且-讀取請求包括對應於待讀取資料之記憶體裝置 之位址之一位址及界定該請求關於其他請求之次序之一屬 性0 在其他實施例中’例如查閱圖6,—寫人請求不包括一 屬性。在此等實施例t,寫人請求包括將被寫人至一記憶 體裝置之·貝料’及對應於將寫人該資料之記憶體裝置之位 址之位址’且一讀取請求包括對應於待讀取資料之記憶 體裝置之位址之一位址及界定該請求關於其他請求之次序 之一屬性。 在實施例中’管理請求具有最高優先級,且大體而言與 寫入及讀取控制資訊資料有關之請求比與寫入及讀取資料 (例如,有效負荷資料)有關之請求具有更高之優先級。 舉例而言’管理請求可係用於記憶體介面中之組態參數 或微碼記憶體之讀取或寫入請求。 舉例而言’資料請求可係用於在DRAM中緩衝之封包資 料(例如有效負荷資料)之讀取或寫入請求。 152841.doc -29- 201145023 舉例而言’控制資訊資料請求可係用於與儲存資料之資 料結構有關《資訊(諸如連結串列指標或封包長度)之讀取 或寫入請求。 如圖5中不意性地圖解說明,在存取緩衝器2〇〇自處理器 102接收-請求「Writeup。」(如箭頭~所指示)以將(例 如)低優先級資料寫入至記憶體裝置1〇6時,將寫入低優先 級資料之位址至包括於存取緩衝器2〇〇中之FIF〇作列「 LoPHo FIFO」中之一者,如箭頭AU所指*。進一步地, 將儲存所寫入低優先級請求之資料及屬性(AUr)於包括於 存取緩衝器200中之一可搜尋位址儲存器「Wr L〇pri〇儲存 器」206中,如箭頭Alb所指示。 進一步地,如圖5中示意性地圖解說明,當存取緩衝器 200自處理器接收一請求r Writempri〇」(如箭頭μ所指 不)以將(例如)控制資訊資料寫入至記憶體裝置1〇6時,將 寫入請求「WriteHiPrio」之位址至包括於存取緩衝器2〇〇 中之FIFO佇列「Wr HiPrio FIF0」中之一者,如箭頭A2a 所指示。進一步地,將儲存請求「WriteHiPrio」之資料及 屬性於包括於存取緩衝器2〇〇中之一可搜尋位址儲存器 「Wr HiPrio儲存器」206中,如箭頭A2b所指示。 進一步地’如圖5中示意性地圖解說明,在存取緩衝器 200自處理器接收一請求rReadHiPri〇」(如箭頭A3所指示) 以(例如)自記憶體裝置106讀取控制資訊資料時,將寫入請 求「ReadHiPrio」之位址至包括於存取緩衝器2〇〇中之 FIFO佇列「Rd HiPrio FIFO」中之一者’如箭頭A3a所指 152841.doc -30- 201145023 示。進一步地,將儲存請求「ReadHiPrio」之屬性於包括 於存取緩衝器200中之一可搜尋位址儲存器「Rd HiPrio儲 存器」206中,如箭頭A3b所指示。 如圖5中示意性地圖解說明,在存取緩衝器200自處理器 接收一請求「ReadLoPrio」(如箭頭A4所指示)以(例如)自 記憶體裝置106讀取資料資訊時,存取緩衝器200經組態以 藉助於搜尋單元208搜尋(如虛線箭頭所圖解說明)FIFO仔 列「Wr LoPrio FIFO」以判定請求「ReadLoPrio」之位址 是否包括於FIFO佇列「WrLoPrioFIFO」中之一者中。 在待讀取之資料之位址係在FIFO佇列「Wr LoPrio FIFO」中之一者中之情況下’搜尋單元208偵測到一「命 中」。搜尋單元208自FIFO佇列「Wr LoPrio FIFO」移除 該位址且自資料儲存器「Wr LoPrio儲存器」讀取待讀取 之-貝料及屬性。在自r Wr L〇Pri〇儲存器」讀取之前,可 將「命中」請求寫入至一 FIF〇佇列「Hh Synch FIF〇」, 如箭頭A4c所指示,且藉助於一仲裁器21〇排程,如箭頭 6所彳a不,以便以一定序及經排程之方式自儲存器「 no儲存器」讀取資料及屬性,如箭頭A?所指示。在已 欠:子器Wr LoPrio储存器」讀取資料及屬性時,將該 ^ =及屬性發送至重新排序I置5⑽,如箭頭偷及偷分 曰丁其後,重新排序裝置500經組態以依正確次序將 ;取回應傳輪至處理器1〇2,該回應係基於所讀取之資 如圖5中之重新排序裝置500中之標記「屬性+ 資料(命中)」所指示。 152841.doc •31· 201145023 仲裁器210經組態以藉助於一嚴格優先級排程演算法執 行排程。在實施例中,應排定存取排程器300選定之存取 請求之優先級優先於「命中」請求,乃因應最佳化該記憶 體介面之頻寬。在彼情形下,「命中」請求可在Hit Syneh FIFO中等待可用時間槽(例如,存取排程器讀取命令)。 在待讀取之位址不在該等FIFO佇列中之一者中之情況 下,搜尋單元208偵測到一「未命中」》然後待讀取之資 料之位址寫入至包括於存取緩衝器200中之FIFO佇列「Rd LoPrio FIFO」中之一者,如箭頭A4d所指示。進一步地, 將儲存該請求之屬性(Attr)於包括於存取緩衝器2〇〇中之一 儲存器「Rd LoPrio儲存器」中,如箭頭A4b所指示。 如圖5中圖解說明,存取排程器300經組態以基於存取緩 衝器 200 之 FIFO 佇列 204(亦即,「Wr LoPrio FIFO」、「Wr HiPrio FIFO」、「RdHiPrio FIFO」、及「Rd LoPrio nFO」) 中之資訊及由存取緩衝器300接收之一管理請求之一可能 位址選擇存取請求令之一者,如箭頭A5a所指示。存取排 程器300經組態以藉助於一或多個仲裁器基於一排程演算 法(例如,如圖5中之「RR」所指示之一循環排程演算法、 或先進先伺服 '或另一適合排程演算法)選擇存取請求中 之一者。該存取排程器可進一步包括經組態以執行寫入/ 讀取/再新請求排程且確保不違反DRAM協定之排程器及一 有限狀態機(FSM)216。 然而,如箭頭A5b所指示,管理請求之資料及屬性可被 直接發送至命令產生器214,命令產生器214經組態以產生 152841.doc -32- 201145023 一命令,且藉助於記憶體介面400將該命令發送至記憶體 裝置106。 進一步地,如箭頭A13所圖解說明,存取排程器3〇〇經組 態以將一選定存取請求之位址傳輸至命令產生器214。在 由存取排程器300選擇一存取請求時,存取緩衝器2〇〇經組 態以自FIFO佇列清除存取請求之位址,且自儲存器2〇6中 之一者讀取選定請求之資料及/或屬性。 舉例而言,在選定存取請求係一「WriteL〇pd〇」(亦 即,一寫入低優先級請求)之情況下,存取排程器3〇〇將傳 遞包括於「Wr LoPrio FIFO」t之選定存取請求之位址至 「Wr LoPno儲存器」,如箭頭A12所指示,及傳遞至命令 產生器214,如箭頭A13所圖解說明。進一步地,如圖3中 展示,該位址可通過仲裁器21〇,以在自「Wr L〇Pri〇儲存 器」讀取及移除資料及屬性之前基於由搜尋單元2〇8偵測 到之一命中或基於自存取排程器3〇〇選擇之寫入低優先級 請求來排定在「Wr LoPri〇儲存器」中之讀取之優先級。 在已自「Wr LoPrio儲存器」讀取資料及屬性時,將該資 料及屬性傳輸至命令產生器214,如箭頭A8a及A14所指 不。進一步地,在已自「Wr L〇Pri〇儲存器」讀取資料及 屬性時,將該資料及屬性傳輸至重新排序裝置5〇〇,如箭 頭A8b及A8c所指示。 在實施例中,將資料及屬性經由多工器212傳輸至命令 產生器214,以在自不同資料儲存器傳輪之不同資料及屬 性之間進行選擇,如箭頭A8a、A9a、Α10及All所指示。 152841.doc 03- 201145023 當在命令產生器214中接收自「WrLoPrio儲存器」讀取 之資料及屬性時,該資料及屬性將與自「Wr L〇Prio FIFO」讀取之位址組合成被傳輸至記憶體裝置之一寫入低 優先級命令。 進一步地,舉例而言,在選定之存取請求係一 「WriteHiPrio」(亦即,一寫入高優先級請求)時,存取排 程器300將傳遞包括於「WrHiPrioFIFO」中之寫入高優先 級請求之位址至「Wr HiPrio儲存器」,如箭頭A12所指 示,及傳遞至命令產生器214,如箭頭A13所圖解說明。在 已自「Wr HiPrio儲存器」讀取及移除該資料及屬性時, 將該資料及屬性傳輸至命令產生器214,如箭頭A1〇及AH 所指示。 可能地,將該資料及屬性經由多工器212傳輸至命令產 生器214以在自不同資料儲存器傳輸之不同資料及屬性之 間進行選擇,如箭頭A8a、A9a、Αίο及All所指示。 當在命令產生器214中接收來自「Wr HiPrio儲存器」之 資料及屬性時,其將與自「Wr HiPrio FIFO」讀取之位址 組合成被傳輸至記憶體裝置之一寫入高優先級命令。 此外,舉例而言,在選定存取請求係一「ReadHipH〇」 (亦即’一絲高優先級請求)之情況下,存取排程器3〇〇將 傳遞儲存於對應於選定存取請求之「Rd HipH〇 fif〇」中 之讀取高優先級請求之位址至「Rd Hi ρΗ〇儲存器」,如 箭頭A12所指示,及傳遞至命令產生器214,如箭頭ai3所 圖解說明。在已自「RdHiPri。儲存器」讀取及移除該屬性 152841.doc -34· 201145023 時,將該屬性傳輸至命令產生器214,如箭頭An及Au所 扣不。可能地,將該屬性經由多工器212傳輸至命令產生 器214以在自不同資料儲存器傳輸之不同資料及屬性之間 進行選擇,如箭頭A8a、A9a、A1G及All所指示》當在命 令產生器214中接收自r Rd HiPri〇儲存器」讀取之屬性 時,其將與自「Rd HiPrio FIFO」讀取之位址組合成被傳 輸至記憶體裝置之一讀取高優先級命令。 舉例而s ,在選定存取請求係一「ReadL〇pri〇」(亦 即,一讀取低優先級請求)之情況下,存取排程器3〇〇將傳 遞對應於選定存取請求之「Rd L〇Pri〇 FIF〇」之位址至 「Rd LoPno儲存器」,如箭頭A12所指示,及傳遞至命令 產生器214,如箭頭au所圖解說明。在已自「Rd L〇pri〇 儲存器」讀取及移除該屬性時,將該屬性傳輸至命令產生 器214,如箭頭A9a及A14所指示。進_步地,亦將該属性 傳輸至重新排序裝置5 00,如箭頭A9所圖解說明。 可能地,將該屬性經由多工器212傳輸至命令產生器 214,以在自不同資料儲存器傳輸之不同資料及屬性之間 進行選擇’如箭頭A8a、A9a、A10及A11所指示。 當在命令產生器214中接收自「Rd L〇Pri〇儲存器」讀取 之屬性時,該屬性將與自「Rd L〇Pri〇 FIF〇」讀取之位址 組合成被傳輸至記憶體裝置之一讀取低優先級命令。 在將該命令自命令產生器214發送至記憶體裝置時,將 關於所發送請求類型(例如,寫入/讀取低/高優先級請求) 「Type」及關於該請求之序列身份「SerID」之資訊發送 152841.doc •35· 201145023 至重新排序裝置500,如箭頭A15所指示。 在實施例中,SerlD係由處理器設定之一屬性。其用於 識別回至處理器之回應。另外,其由重新排序裝置5〇〇用 於復原可被存取排程器破壞之原始次序。舉例而言,處理 器可針對每一請求將SerlD遞增1,直至到達—最大值,諸 如65 535 ’其後將SerlD重設至〇且繼續遞增1。 重新排序裝置500經組態以使用所接收屬性針對與該屬 性相關聯之存取請求之次序在重新排序裝置中分配一位 址。因此,當在重新排序裝置500中接收一存取回應時, 該屬性可用於瞭解何時將該存取回應發送至處理器。因 此,藉助於該請求之屬性,知曉該請求關於自處理器發送 之其他請求之次序。舉例而言,在該請求之次序在一請求 序列中係第二之情況下,則應在已發送對第一請求之回應 之後及在發送對第二晴求之回應之前將來自該記憶體裝置 之對此凊求之回應發送至處理器。 圖6展示一存取緩衝器2〇〇之一通用實施例,該存取緩衝 器經組態以處置所接收之寫入請求及讀取請求,如箭頭 A1及A3’分別示意性地圖解說明。存取緩衝器2〇〇包括一 疋數目個FIFCM宁列(例如寫入、讀取及命中ριρο仔 列)2〇4、一搜尋單元2〇8、一存取排程器3〇〇及一命令產生 器214。進一步地,該存取緩衝器連接至經組態以如先前 所述運作之一重新排序裝置5〇〇。 在接收包括一位址及資料之一寫入請求時,如箭頭A1, 所圖解說明’將該寫入請求之位址及資料儲存於寫入FIF〇 152841.doc -36 - 201145023 佇列「Wr FIFO」之一者中。 在接收到包括位址及屬性之一讀取請求時,如箭頭幻 所圖解說明,搜尋單元208經組態以搜尋「Wr fif〇j杳找 匹配讀取請求之位址之一位址。 在找到此一位址之情況下,搜尋單元2〇8偵測到—命申 且可能經由一命中FIFO佇列「Hit FIF〇」將該讀取請求之 屬性及該位址傳輸至重新排序裝置500。 在未找到此一位址之情況下,搜尋單元2〇8偵測到一未 命中’且將該位址及屬性儲存於讀取FIF〇佇列「rd FIFO」中之一者中。 如先前所述’存取排程器3〇〇經組態以選擇該等請求中 之一者》 在選定請求係一寫入請求之情況下,將該位址及資料自 寫入FIFO擷取且發送至命令產生器214供用於產生一寫入 命令。 在選定請求係一讀取請求之情況下,將該屬性發送至重 新排序裝置500且將該位址發送至命令產生器214供用於產 生一讀取命令。 命令產生益214經組態以將所產生之命令發送至記憶體 裝置且將清求類型(例如’寫入或讀取)「Type」及861<11)發 送至重新排序裝置50〇。 進一步地,該存取緩衝器之實施例可經組態以具有一或 多個FIFO佇列,該(等)FIF〇佇列具有一背壓臨限值。在一 FIFO仔列之填充位準超過其背壓臨限值之情況下,存取緩 152841.doc -37- 201145023 衝
器經組態以將此背壓傳遞至 以停止至存取緩衝器之同一 處理器。藉此,處理器經組 類型(例如,讀取或寫入, 或具有優先級之讀取或寫 取緩衝器已將以下情形傳遞至處 充位準已返回至低於臨限值之— 入)之進一步存取請求,直至存 理器為止:FIFO佇列之填 位準。該背壓位準應經設 定以相容於對FIF〇中之-者之最大不可停請求串流。舉例 而言,在FIFO可包括16個請求且不可停量係5個請求時, 背壓臨限值應被設定為11個請求。 此外,存取緩衝器之實施例可經組態以具有一或多個 FIFO佇列,該一或多個FIFO佇列具有一應急臨限值。在 一寫入FIFO佇列或一讀取FIFO佇列之最大填充位準增長 至高於一應急臨限值之情況下,針對讀取及寫入之權數在 存取排程器中自動地改變以使得寫入或讀取獲得較高之相 對頻寬份額。在該填充位準返回至低於該臨限值之一位準 時,離開應急模式且將該等權數重設為正常值。 【圖式簡單說明】 圖1根據本發明示意性地展示一資料處理系統之一實施 例之一概覽; 圖2根據本發明示意性地展示一資料處理系統之另一實 施例之一概覽; 圖3根據本發明示意性地展示一存取排程器之一實施 例; 圖4根據本發明示意性地展示一存取排程器之一通用實 施例; 152841.doc -38- 201145023 圖5示意性地展示一存取緩衝器之一實施例; 圖6示意性地展示一存取緩衝器之一通用實施例; 圖7根據本發明示意性地展示正由一存取排程器中之一 記憶體庫計時器設定之一遮罩位元之一序列圖; 圖8根據本發明示意性地展示正由一存取排程器中之_ 群組計時器設定之一遮罩位元之一序列圖;及 圖9根據本發明示意性地展示一存取排程器中之選擇及 命令產生之序列圖。 【主要元件符號說明】 100 資料處理系統 102 處理器 104 記憶體控制器 106 記憶體裝置 200 存取緩衝器 204 先進先出佇列 206 儲存器 208 搜尋單元 210 仲裁器 212 多工器 214 命令產生器 216 有限狀態機 300 存取排程器 302 記憶體庫計時器 304a 第一層級排程器 152841.doc -39- 201145023 304c 306 308a 308b 310 312 312a 312b 314 315 316 318 320 322 324 400 450 500 第一層級仲裁器 最後一個儲存器 第一第二層級仲裁器 第二第二層級仲裁器 管理請求單元 第三層級仲裁器 第三層級排程器 第三層級排程器 再新計時器 群組計時器 組態參數單元 第四層級仲裁器 有限狀態機 有限狀態機計數器 第五層級仲裁器 記憶體介面 開關 重新排序裝置 152841.doc •40-

Claims (1)

  1. 201145023 七、申請專利範圍: 1. 一種用於排程對一或多個記憶體裝置(1〇6)之存取之存取 排程器(300),其包括: 一第一階層層級(層級1 ),其包括: 或夕個δ己憶體庫計時器(3〇2),該一或多個記憶體 庫計時器(302)經組態以在存取與該記憶體裝置(1〇6)之 每一 e憶體庫相關聯之—FlF〇佇列時針對該記憶體庫設 足一遮罩位元,該FIFO佇列儲存與存取請求有關之請求 資訊;及 —或多個第一層級仲裁器(3〇4),該一或多個第一層 級仲裁器(304)經組態以自複數個fIFO佇列中之一個 FIFO佇列選擇一存取請求,且將關於該一個fif〇佇列之 -貝格資訊傳播至下一階層層級;及 一第四階層層級(層級4),其包括: 一第四層級仲裁器(3 1 8),其經組態以接收所傳播之 資格資訊且基於該所傳播之資格資訊選擇一請求。 2. 如請求項1之存取排程器(3〇〇),其中該第四層級仲裁器 (318)進一步經組態以基於由一有限狀態機(320)產生之 一再新請求選擇一請求。 3. 如請求項1或2之存取排程器(300),其中該有限狀態機 (320)經組態以控制欲在切換至例如寫入請求之一第二類 型之一定數目個存取請求之前執行的例如讀取請求之一 第一類型之存取請求之數目。 4. 如請求項1或2之存取排程器(3〇〇),其進一步包括: 152841.doc 201145023 一第五階層層級(層級5),其包括: -第五層級仲裁器(324),其經组態以在對—第一記 憶體裝置006)之一存取請求與對一第二記憶體裝置 (106)之一存取請求之間進行選擇。 5. 如請求们或2之存取排程器⑽),其進—步包括· 一第二階層層級(層級2),其包括-或多個第二層級仲 裁器(308) ’該一或多個第二層級仲裁器經調適以自該第 一層級仲裁器⑽)接收所傳播之資格資訊,且經组態以 在低優先級請求與高優先級請求之間執行仲裁且將與該 選定請求有關之資格資訊傳播至下—階層層級;及 ^第三階層層級(層級3),其包括—或多個第三層級仲 裁器(312) ’該—或多個第三層級仲裁器經組態以自該第 -層級仲裁器(308)接收該戶斤傳播 < 資格資訊;自一管理 請求單元(3H))接收管理請求,以基於該所傳播之資格資 訊及該等管料⑽擇-請求;及將與該敎存取請求 有關之資格資訊傳播至下一階層層級。 6·如請求項】或2之存取排程器(3〇〇),其進一步包括一再新 計時器(314),該再新計時器經組態以基於儲存於一組態 參數早7G (3 1 6)中之組態參數指示該有限狀態機(32〇)產 生該荨再新請求。 7·如請求項1或2之存取排程器(300),其中該再新請求係針 對該記憶體裝置(106)之一維護請求,諸如對再新該該記 憶體裝置(1 06)之内容之一請求。 8.如請求項!或2之存取排程器(300),其中該再新請求係週 152841.doc -2- 201145023 期性地發送且被料係優先於其他請求。 月求項1或2之存取排程器(3〇〇),其進一步包括一或多 個群組計時器(315),該一或多個群組計時器經組態以相 依於預。十時間週期針對一群組亦即一記憶體裝置(1〇6) 設定一遮罩位元。 如》月求項9之存取排矛呈器(3〇〇),其中該時間週期係選擇 為以下各項中之任一者:(tFAW),其限制一時間窗内之 列啟動叩令之數目;(tRRD),其係對一 DRAM裝置之兩 個相繼啟動命令之間的最小時間;(tRead2write),其係 5賣取命令與一後續寫入命令之間的最小時間; (tWnte2read),其係一寫入命令與一後續讀取命令之間 的最小時間;或(tCalibration),其係兩個校準命令之間 的時間週期》 11·如請求項1或2之存取排程器(300),其中該等組態參數與 欲在待執行一定數目個寫入請求之前執行之讀取請求之 數目有關,或與欲在寫入之前讀取之叢發之數目有關。 12. —種記憶體控制器(i〇4),其包括: 如請求項1至11中任一項之一存取排程器(3〇〇), 一存取緩衝器(200) ’其連接至該存取排程器(3〇〇)及 一或多個記憶體裝置(106),且經組態以自連接至該記憶 體控制器(104)之一處理器(102)接收對該一或多個記憶 體裝置(106)之一或多個存取請求,及 一重新排序裝置(500) ’其連接至該存取緩衝器 (200) ’經組態以自該一或多個記憶體裝置(1〇6)接收回 152841.doc 201145023 與該處 &對該 應資料,且將該所接收之回料料分類以使得以 理器(102)發送該等存取請求之次序相同之次序做 處理器之存取回應。 13. -種用於藉助於-存取排程器(卿)排程對—或 體裝置006)之存取之方法,其包括以下步驟:5己憶 在包括或多個第-層級仲裁器(綱)之—第 級(層級1)中: 層 在存取與該記憶體裝置⑽)之每一記憶體庫相關聯 之-FIFO仵列時’藉助於—或多個記憶體庫計時器⑽) 針對該記憶體庫設定一遮罩位元; 將與存取請求有關之請求資訊儲存於該FIFO佇列 中,· 自複數個FIFO佇列中之一個FIF〇佇列選擇—存取請 求;及 將關於該一個FIFO佇列之資格資訊傳播至下一階層 層級;及 在包括一第四層級仲裁器(318)之一第四階層層級(層 級4)中: 接收所傳播之資格資訊;及 基於該所傳播之資格資訊選擇一請求。 14.如請求項13之方法,其進一步包括藉助於一第四層級仲 裁器(318)進行之以下步驟: 基於由一有限狀態機(320)產生之一再新請求選擇一請 求。 152841.doc -4- 201145023 15. 如請求項13或14之方法,其進一步 態機(320)進行之以下步驟: ' 包括藉助於該有限狀 控制欲在切換至例如寫入請求之一第二類型之-定數 目個存取請求之前執行的例如讀取請求之 存取請求之數目。 U 16. 如請求項13或14之方法 層層級(層級5)中之—第 步驟: 其進一步包括藉助於一第五階 五層級仲裁器(324)進行之以下 傯體裝置(1〇6)之一存取請求與對 17. 記憶體裝置(106)之一在▲主七 βΒ ) 存取s月求之間進行選擇。 如請求項13或14之方法,装 丰—化 再進一步包括以下步驟: 在包括一或多個笸-a 、,仲裁器(308)之一第二階層層 級(層級2)中: 昂作 5第級仲裁器(3Q2)接收所傳播之資格資訊; 在低優先級凊求與高優先級請求之間執行仲裁;及 將與該選&請求有關之資格資訊傳播至下-階層力 在包括-或多個第三層級仲裁器(312)之一第 級(層級3)中: 階層層 自該第二層級仲 訊; 裁器(3 08)接收該所傳播之資格資 自-官理請求單元(31G)接收管理請求, 基於該所傳播之資格資減料管理tf求選擇一請 求;及 β 152841.doc 201145023 將與該選定之存取令七、^ 階層層級。 子取清求有關之資格資訊傳播至下- 18. 如請求項13或14之方、土 好 B (314)'^ ^ 、進一步包括藉助於一再新計 時益(314)進仃之以下步驟: 基於儲存於一組態參數單元⑽)中之組態參數,指干 該有限狀態機⑽)產生該等再新請求。 19. 如請求項13或14之方沬 甘丄 _ _ z、中該再新請求係針對該記憶 體裝置(106)之一維古雈妹本 ^ ’、”明;,諸如對再新該記憶體裝置 (106)之内容之一請求。 20. 如請求項13或14之方法,其進—步包㈣用—群 器(315)之以下步驟: Τ 相依於一預計時間週期針對每一群組亦即每一記憶體 裝置(106)設定一遮罩位元。 21. 如請求項20之方法,其中將料間週期選擇為以下各項 中之任-者:⑽謂),其限制—時間窗内之列啟動命令 之數目;(tRRD),其係對一DRAM裝置之兩個相繼啟動 命令之間的最小時間;(tRead2write),其係一讀取命令 與-後續寫入命令之間的最小時間;(ην_2Γ_,其 係-寫入命令與一後續讀取命令之間的最小時間丨或 (tCalibration),其係兩個校準命令之間的時間週期。 152841.doc
TW100101673A 2010-01-18 2011-01-17 存取排程器 TWI512464B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29579410P 2010-01-18 2010-01-18
SE1050044 2010-01-18

Publications (2)

Publication Number Publication Date
TW201145023A true TW201145023A (en) 2011-12-16
TWI512464B TWI512464B (zh) 2015-12-11

Family

ID=44267498

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100101673A TWI512464B (zh) 2010-01-18 2011-01-17 存取排程器

Country Status (3)

Country Link
US (2) US8615629B2 (zh)
CN (1) CN102129412A (zh)
TW (1) TWI512464B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632954B2 (en) 2011-11-07 2017-04-25 International Business Machines Corporation Memory queue handling techniques for reducing impact of high-latency memory operations
US8909874B2 (en) 2012-02-13 2014-12-09 International Business Machines Corporation Memory reorder queue biasing preceding high latency operations
KR102031952B1 (ko) * 2012-03-29 2019-10-14 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작방법
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
US9189167B2 (en) * 2012-05-31 2015-11-17 Commvault Systems, Inc. Shared library in a data storage system
US9569393B2 (en) 2012-08-10 2017-02-14 Rambus Inc. Memory module threading with staggered data transfers
US9706564B2 (en) 2013-03-14 2017-07-11 Cavium, Inc. Apparatus and method for media access control scheduling with a priority calculation hardware coprocessor
US9237581B2 (en) * 2013-03-14 2016-01-12 Cavium, Inc. Apparatus and method for media access control scheduling with a sort hardware coprocessor
KR102034626B1 (ko) * 2013-06-26 2019-10-21 삼성전자 주식회사 메모리 동작을 제어하는 방법 및 장치
US9811453B1 (en) * 2013-07-31 2017-11-07 Juniper Networks, Inc. Methods and apparatus for a scheduler for memory access
US9281046B2 (en) * 2013-10-08 2016-03-08 Advanced Micro Devices, Inc. Data processor with memory controller for high reliability operation and method
US9431105B2 (en) * 2014-02-26 2016-08-30 Cavium, Inc. Method and apparatus for memory access management
US9645744B2 (en) * 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US9922000B2 (en) 2014-08-25 2018-03-20 Marvell World Trade Ltd. Packet buffer with dynamic bypass
US9558528B2 (en) 2015-03-25 2017-01-31 Xilinx, Inc. Adaptive video direct memory access module
US10078471B2 (en) * 2015-05-19 2018-09-18 Toshiba Memory Corporation Memory device that sorts access commands to a nonvolatile semiconductor memory unit thereof
US9921754B2 (en) 2015-07-28 2018-03-20 Futurewei Technologies, Inc. Dynamic coding algorithm for intelligent coded memory system
US10180803B2 (en) * 2015-07-28 2019-01-15 Futurewei Technologies, Inc. Intelligent memory architecture for increased efficiency
US10192065B2 (en) 2015-08-31 2019-01-29 Commvault Systems, Inc. Automated intelligent provisioning of data storage resources in response to user requests in a data storage management system
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
US10684969B2 (en) * 2016-07-15 2020-06-16 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces
US10621117B2 (en) * 2017-06-15 2020-04-14 Micron Technology, Inc. Controlling memory devices using a shared channel
US10409739B2 (en) * 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
KR102389542B1 (ko) * 2017-12-12 2022-04-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10656872B2 (en) * 2018-03-15 2020-05-19 Western Digital Technologies, Inc. Storage device with multi-die management
CN110729006B (zh) 2018-07-16 2022-07-05 超威半导体(上海)有限公司 存储器控制器中的刷新方案
US10545701B1 (en) * 2018-08-17 2020-01-28 Apple Inc. Memory arbitration techniques based on latency tolerance
US10817219B2 (en) 2018-09-12 2020-10-27 Apple Inc. Memory access scheduling using a linked list
CN109558346A (zh) * 2018-11-05 2019-04-02 西安智多晶微电子有限公司 一种基于fpga的存储控制器
US11182205B2 (en) * 2019-01-02 2021-11-23 Mellanox Technologies, Ltd. Multi-processor queuing model
CN109992205B (zh) * 2019-03-27 2020-06-02 无锡海斯凯尔医学技术有限公司 数据存储的装置、方法及可读存储介质
US20210200694A1 (en) * 2019-12-27 2021-07-01 Advanced Micro Devices, Inc. Staging buffer arbitration
US11210104B1 (en) 2020-09-11 2021-12-28 Apple Inc. Coprocessor context priority
CN112181871B (zh) * 2020-09-28 2022-10-28 中国人民解放军国防科技大学 处理器与内存间写阻塞式通信控制方法、部件、设备及介质
CN112100097B (zh) * 2020-11-17 2021-01-26 杭州长川科技股份有限公司 多测试通道优先级自适应仲裁方法和存储器访问控制器
US11782640B2 (en) 2021-03-31 2023-10-10 Advanced Micro Devices, Inc. Efficient and low latency memory access scheduling
US11789655B2 (en) * 2021-03-31 2023-10-17 Advanced Micro Devices, Inc. Efficient and low latency memory access scheduling
US11995008B2 (en) * 2021-06-22 2024-05-28 Advanced Micro Devices, Inc. Memory controller with hybrid DRAM/persistent memory channel arbitration
TWI819635B (zh) * 2022-06-01 2023-10-21 瑞昱半導體股份有限公司 記憶體控制系統與記憶體控制方法
CN116755639B (zh) * 2023-08-18 2024-03-08 深圳大普微电子科技有限公司 闪存接口的性能评估方法及相关装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450564A (en) 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
US5495339A (en) * 1991-08-19 1996-02-27 Xerox Corporation Scheduling multiple disk requests and writing data buffers to disk
US6385708B1 (en) * 1998-11-16 2002-05-07 Infineon Technologies Ag Using a timing-look-up-table and page timers to determine the time between two consecutive memory accesses
US6526484B1 (en) * 1998-11-16 2003-02-25 Infineon Technologies Ag Methods and apparatus for reordering of the memory requests to achieve higher average utilization of the command and data bus
US6654860B1 (en) 2000-07-27 2003-11-25 Advanced Micro Devices, Inc. Method and apparatus for removing speculative memory accesses from a memory access queue for issuance to memory or discarding
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US20040236921A1 (en) * 2003-05-20 2004-11-25 Bains Kuljit S. Method to improve bandwidth on a cache data bus
KR100607987B1 (ko) 2004-06-24 2006-08-02 삼성전자주식회사 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법
US7646779B2 (en) * 2004-12-23 2010-01-12 Intel Corporation Hierarchical packet scheduler using hole-filling and multiple packet buffering
TWI295014B (en) * 2005-03-03 2008-03-21 Himax Tech Ltd Scheduling apparatus and method for scheduling requests to resource device
US20070121499A1 (en) * 2005-11-28 2007-05-31 Subhasis Pal Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching
US7698498B2 (en) * 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
US20090037635A1 (en) * 2006-03-17 2009-02-05 Shanghai Magima Digital Information Co., Ltd. Bus arbitration device
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
CN101344871A (zh) * 2008-08-20 2009-01-14 北京中星微电子有限公司 一种保证访问先后顺序的总线仲裁单元及其实现方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US9747242B2 (en) 2013-03-15 2017-08-29 Micron Technology, Inc. Methods and apparatuses for providing data received by a plurality of state machine engines
TWI625631B (zh) * 2013-03-15 2018-06-01 美光科技公司 用於提供藉由狀態機器引擎所接收之資料之方法及裝置
US10067901B2 (en) 2013-03-15 2018-09-04 Micron Technology, Inc. Methods and apparatuses for providing data received by a state machine engine
US10372653B2 (en) 2013-03-15 2019-08-06 Micron Technology, Inc. Apparatuses for providing data received by a state machine engine

Also Published As

Publication number Publication date
US8990498B2 (en) 2015-03-24
US20140115254A1 (en) 2014-04-24
US20110179240A1 (en) 2011-07-21
TWI512464B (zh) 2015-12-11
US8615629B2 (en) 2013-12-24
CN102129412A (zh) 2011-07-20

Similar Documents

Publication Publication Date Title
TW201145023A (en) Access scheduler
TWI498918B (zh) 存取緩衝器
JP5666722B2 (ja) メモリ・インターフェース
EP2548127B1 (en) Requests and data handling in a bus architecture
US8095744B2 (en) Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
US20080244135A1 (en) Memory Controller and Method For Controlling Access to a Memory, as Well as System Comprising a Memory Controller
WO2006072844A2 (en) Streaming memory controller
US8086766B2 (en) Support for non-locking parallel reception of packets belonging to a single memory reception FIFO
CN108228498A (zh) 一种dma控制装置和图像处理器
JPS61243554A (ja) 通信系
JP4516395B2 (ja) リンク・リスト・プロセッサを持つメモリ管理システム
US20040199706A1 (en) Apparatus for use in a computer systems
US9104531B1 (en) Multi-core device with multi-bank memory
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US6970936B2 (en) Data processing system and method of communication that employ a request-and-forget protocol
US6119202A (en) Method and apparatus to interleave level 1 data cache line fill data between system bus and level 2 data cache for improved processor performance
WO2002048891A2 (en) Arbitration and crossbar device and method
JP3983926B2 (ja) マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム
Akesson An analytical model for a memory controller offering hard-real-time guarantees
GB2341765A (en) Bus idle usage
GB2341767A (en) Bus arbitration
GB2488680A (en) A method/architecture for processing requests in a bus architecture that includes at least two master devices an at least one slave device
GB2341699A (en) Inter-module data transfer

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees