TWI312114B - A method and apparatus to manage memory access requests - Google Patents

A method and apparatus to manage memory access requests Download PDF

Info

Publication number
TWI312114B
TWI312114B TW094101025A TW94101025A TWI312114B TW I312114 B TWI312114 B TW I312114B TW 094101025 A TW094101025 A TW 094101025A TW 94101025 A TW94101025 A TW 94101025A TW I312114 B TWI312114 B TW I312114B
Authority
TW
Taiwan
Prior art keywords
requests
request
controller
memory
memory access
Prior art date
Application number
TW094101025A
Other languages
English (en)
Other versions
TW200534102A (en
Inventor
Zohar Bogin
Hunter, Jr
Krishnamurthy Venkataramana
Original Assignee
Intel Corporatio
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 Intel Corporatio filed Critical Intel Corporatio
Publication of TW200534102A publication Critical patent/TW200534102A/zh
Application granted granted Critical
Publication of TWI312114B publication Critical patent/TWI312114B/zh

Links

Classifications

    • 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
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

1312114 (1) 九、發明說明 【發明所屬之技術領域】 廣義言之’本發明與電腦系統有關,更特定地說,與 管理電腦系統內的記憶體存取請求有關。 【先前技術】 在一例示性的電腦系統中,周邊裝置可能提出存取儲 • 存在系統中之記憶體裝置上之資料的請求。例如,喇卩八可 以從記憶體裝置接收音頻資料。爲控制這些周邊裝置,電 腦系統可包括耦合至周邊裝置的輸入/輸出控制器。輸入 /輸出控制器可能包括若干控制器(例如音頻控制器), 每一個控制器負責某特定類型的周邊裝置(例如音頻裝置 )。控制器可以爲對應的周邊裝置提出(assert )記憶體 存取請求。輸入/輸出控制器在諸多記憶體存取請求間做 出仲裁(arbitrate ),並經由互連(例如周邊組件互連高 鲁 速傳輸匯流排(Peripheral Component Interconnect Express bus))將請求送至記憶體裝置。 按照周邊組件互連(P C I )高速傳輸協定,一個周期 . 被劃分成若干個時槽(time slot )。輸入/輸出控制器內 的每一個控制器被分配到若干個時槽。請求是在每一個被 分配到的時槽送出。不過,由於各請求可能長度不同,如 果請求沒有用盡整個時槽,則時槽中過大的頻帶寬會被浪 費掉。 此外’請求可能會有不同程度的潛伏敏感性(latency -5- (2) 1312114 sensitivity )。不過,現有的控制器並不提供用以辨別各 請求所處的潛伏敏感性位準,並反應各請求的潛伏敏感性 以管理請求的機構。因此,潛伏敏感性高的請求可能無法 即時送給記憶體裝置,因此,在資料流中可能出現些小問 題。 從以下配合附圖的詳細說明即可更充份瞭解本發明’ 不過,特定的實施例只是用於解釋及瞭解本發明,並不是 φ 用來限制所附申請專利範圍。 【發明內容及實施方式】 在以下的描述中將揭示管理記憶體存取請求的方法及 設備。以下將說明諸多特定細節。不過,須瞭解,沒有這 些特定細節,本發明的實施例也可實施。在其它實例中並 未詳細顯示習知的電路、結構及技術,以免混淆了對本描 述的瞭解。 φ 本說明書中提及的"一實施例〃或"某實施例〃,意 指所描述之與該實施例有關的特定特徵、結構、或特性, 也包括在本發明的至少一實施例中。在本說明書之各處出 .現的^在一實施例中〃一詞並不需都是相同的實施例。 在以下詳細描述的某些部分中,是以在記憶體內對資 料位元運算(operation )的表示符號呈現。這些描述及表 示是熟悉資料處理技術之人士所使用的工具,以便最有效 率地將他們工作的實質內容傳達給其他熟悉此方面技術之 人士。一般來說’本文中的演算法可想像成是導向所要結 -6- (3) 1312114 果之一序列連貫的運算。這些運算需要物理量的物理操作 (manipulation)。雖非必要,但這些量的型式通常是電 或磁信號’且要能被儲存、傳輸、結合、比較及在其它方 面的操作。已證實,基於通用之理由,以位元、値、元素 、符號、文字、詞、數字或類似物等指示這些信號有時十 分方便。 不過,須牢記在心,所有這些及類似的名詞與適當物 φ 理量相關,且僅是施加於這些量之方便的稱呼。除非有特 別陳述,從以下的討論可明瞭,從全文的描述中可知,討 論中所使用的詞彙,諸如*處理(p r 〇 c e s s i n g ) 〃 、、計 算(computing) 〃 、 ' 計算(calculating) 〃 、、決定( determing)夕或''顯示(displaying)夕等,歸爲電腦系 統或類似電子計算裝置的動作或處理,將代表電腦系統之 暫存器及記億體內之物理(電子)量的資料,經由該操作 及轉換以成爲代表電腦系統之記億體或暫存器或其它諸如 φ 資訊儲存、傳送或顯示裝置內之物理量的其它資料。 本發明的實施例也與執行本文所描述之操作的設備有 關。此設備可以爲所需求的目的特別建構,或也可包含一 - 般用途的電腦,經由儲存在電腦內的電腦程式選擇性地啓 .動或重新架構。這類電腦程式可儲存在電腦可讀取的儲存 媒體內,諸如(但非限定)任何類型的碟片,包括軟式磁 碟、光碟、CD — ROM及磁—光碟,唯讀記憶體(ROM ) ,隨機存取記憶體(RAM ) ,EPROM,EEPROM,磁性或 光學卡,或適合儲存電子指令之任何類型的媒體,且每一 -7- !312114 - (4) . 個都耦合至電腦系統的匯流排。 本文所提的操作與顯示並不先天就與任何特定電腦或 其它設備有關。各式通用系統都可使用本文所教導的程式 ’或其可證實便於建構更特定的設備以執行所描述操作。 從以下的描述中將可明瞭各式這類系統所需的結構。此外 ’本發明的實施例可不參考任何特定的程式語言描述。須 明瞭’各類程式語言都可用來實施本文所描述之本發明的 % 教導。 如本文件所用的、、機器可讀取之媒體〃 一詞包括任何 用於儲存或傳送可被機器(例如電腦)讀取之資訊的機構 。例如’機器可讀取之媒體包括ROM ; RAM ;磁碟儲存 媒體;光學儲存媒體;快閃記憶體裝置;電氣的、光學的 、聲學的或其它型式的信號傳播(例如載波、紅外線信號 、數位信號)等。 圖1舉例說明用於管理記憶體存取請求之程序之一實 # 施例的流程圖。該程序是由處理邏輯執行,其可包含硬體 (例如電路、專用邏輯等)、軟體(諸如在通用電腦系統 或專用機器上執行的軟體),或兩者結合。 * 處理邏輯使用若干記憶體存取控制器提出若干存取記 , 憶體裝置的請求(處理方塊110)。請求的提出,可能是 反應來自電腦系統之中央處理單元的指令。請求可能包括 讀取及/或寫入資料請求以及緩衝器描述符(buffer descriptor ; BD )請求。記憶體存取控制器可包括直接記 億體存取(DMA )控制器,諸如資料DMA控制器(包括 (5) 1312114 入站(inbound)及出站(outbound))及緩衝器描述符 (BD ) DMA控制器。在一實施例中,資料DMA控制器 負責存取記憶體裝置內的資料,而BD DMA控制器負責 存取BD表中的BD。每一個BD包括記憶體裝置中之資料 片段的位址及大小。在一實施例中,每一個資料DMA控 制器具有一個對應的BD DMA控制器。 在一實施例中,DMA控制器是電腦系統之輸入/輸 φ 出控制器內之音頻控制器的一部分。音頻控制器可控制一 或多個音頻編碼-解碼器及記憶體裝置間的資料轉換。這 類音頻編碼-解碼器可以是耳機、喇叭、電話等中的一部 分。 現請再參閱圖1,處理邏輯動態地修改每一個請求的 屬性(處理方塊1 2 〇 )。例如,處理邏輯動態地反應請求 的潛伏敏感性以修改請求的優先順序。潛伏敏感性與請求 的資料轉換速率多快有關。當請求的潛伏敏感性較高時, Φ 請求需要較快速的資料傳送。 在一實施例中,處理邏輯將請求的潛伏敏感性分成兩 個位準,即高位準與低位準。當可從DMA控制器之緩衝 .器中擷取(fetch )或排出(evict )的資料達到第一臨限 時,處理邏輯可致使D Μ A控制器提出一潛伏敏感性在低 位準的請求。此外,當緩衝器內可用空間的量到達第二臨 限時,處理邏輯可致使DMA控制器將請求的潛伏敏感性 提升到高位準。第二臨限與第一臨限無關。 請參閱圖1,處理邏輯反應請求的屬性’在各請求間 -9 - (6) 1312114 進行仲裁,並在一時槽中將所選擇的請求送往記憶體裝置 (處理方塊130)。處理邏輯可在每一個時脈周期進行仲 裁’以選擇潛伏敏感性最高的請求。處理邏輯可採用各種 不同的仲裁設計,諸如先進先服務(First Come First Serve ; FCFS ) ’ 力口 權循環(Weighted Round Robin ; WRR )等。各種仲裁設計的細節將在下文中討論。此外, 時槽可由互連控制器分配,控制器係諸如數位多媒體互連 _ (digital multimedia interconnect; DMI)控制器,互連 控制器與將音頻控制器耦合至記憶體裝置的互連(例如 DMI )介接。 處理邏輯除了可排列請求的優先順序,還可以反應時 槽的大小,動態地改變請求的長度(處理方塊I 4 0 )。例 如,當可供擷取或排出的資料量增加時,處理邏輯可將請 求的長度增加到時槽的大小。 在一實施例中,處理邏輯反應各項因數決定請求的長 φ 度。這些因數例如可包括DMA控制器之緩衝器內的可用 空間,以及要從對應之B D讀取或寫入其中之資料的剩餘 位元組。此外,處理邏輯可能不允許資料請求長度超過傳 送該請求之互連之時槽大小的上限。經由動態地改變請求 的長度,當有可能時,處理邏輯可將多個較小的請求結合 成一較大的請求,以對分配給音頻控制器的每一個時槽做 較佳的利用。因此’處理邏輯可提高音頻控制器的效率。 最後,處理邏輯將所選擇的請求送給記憶體裝置(處 理方塊1 50 )。如前所述’處理邏輯可經由DMI將請求傳 -10- (7) 1312114 送給記億體裝置。在一實施例中,處理邏輯是依 Express協定’其支援等時(isochronous)資料傳 據請求的潛伏敏感性動態地改變請求長度及動態地 求之優先順序的能力,允許等時的資料傳輸接受在 的時間周期所配置的頻帶寬,不需期待非等時的資 (non-isochronous traffic) ° 圖2說明輸入/輸出控制器的一實施例。輸入 φ 控制器2 0 0包括一互連控制器2 1 0 (例如D ΜI控制 若干周邊裝置控制器220及230、以及一匯流排2 周邊裝置控制器220及230耦合至互連控制器210 控制器21 0驅動一互連208 (例如DMI )。記憶體 由互連208耦合至輸入/輸出控制器200。互連 210與匯流排215也可合在一起稱爲輸入/輸出 200的"主幹"(back bone)。周邊裝置控制器 2 3 0可包括萬用串列匯流排(U S B )控制器、音頻 籲 230等。 在一實施例中,音頻控制器2 3 0包括一仲裁器 若干出站DMA引擎250、若干入站DMA引擎260 *,音頻控制器230可有4個出站DMA引擎及4 _ DMA引擎。出站DMA引擎2 50與入站DMA引擎 動一或多個周邊裝置內的一或多個音頻編碼-解碼 ’諸如喇叭、電話、耳機等。請注意,圖2中僅顯 出站DMA引擎250及一個入站DMA引擎260,以 淆了本發明的實施例。 循 PCI 輸。根 排列請 一相關 料交通 /輸出 器)、 15,將 。互連 裝置經 控制器 控制器 220及 控制器 240、 。例如 個入站 2 60驅 器270 不一個 避免混 -11 - (8) 1312114 每一個出站DMA引擎250可包括一 bd 252及一資料DMA控制器254。BD DMA控制 括一優先權狀態機2 5 2 1、決定B D請求長度 以及一BD緩衝器25 25。BD緩衝器252 5可包 (FIFO )緩衝器。同樣地,資料DMA控制器 一優先權狀態機2 5 4 1、決定資料請求長度的 及一出站資料緩衝器2545。資料緩衝器2545 φ 先出(FIFO)緩衝器。 每一個入站DMA引擎260可包括一 BD 262、一資料DMA控制器264。BD DMA控制 括優先權狀態機2 62 1、決定BD請求長度的 以及一BD緩衝器2625。BD緩衝器2625可包 (FIFO )緩衝器。在一實施例中,資料DMA 包括一優先權狀態機2 6 4 1、決定資料請求 2 643及一出站資料緩衝器264 5。資料緩衝器 φ 先進先出(FIFO)緩衝器。 每一個BD DMA控制器252、262,以及: 制器254、264提出存取記億體裝置的請求, •往仲裁器240。仲裁器240反應這些請求的潛 , 在這些請求中選擇一請求,並將該請求提送至! 控制器23 0的主幹。互連控制器2 1 0周期性站 配給每一個控制器220及23 0。當音頻控制器 以一時槽時,所選擇的請求經由互連208被送 的時槽中。 DMA控制器 1器2 5 2可包 的電路 2 5 2 3 L括先進先出 2 5 4可包括 電路 2543 、 可包括先進 DMA控制器 丨器262可包 電路2623 、 1括先進先出 控制器2 6 4 長度的電路 264 5可包括 資料DMA控 並將請求送 〖伏敏感性, 丨輸入/輸出 ί將一時槽分 23 0被分配 丨到所分配到 -12- (9) 1312114 爲提高音頻控制器230的效率,每一個BD DMA控制器252、262、254及264均包括一優先 機(例如25 2 1、254 1、262 1及264 1 ),反應請求 敏感性,動態地排列DMA控制器之請求的優先順 一實施例中,潛伏敏感性被分成兩個位準,即,高 低位準。優先權狀態機可反應對應之DMA控制器 器內的可用空間,改變潛伏敏感性的位準。優先權 φ 的更詳盡細節將在下文中討論。 此外,每一個DMA控制器252、262、254及 括決定請求長度的電路,用以反應分配給音頻控制 之時槽的大小決定請求的長度。例如,可將若干個 請求結合成單一請求在單一個時槽內傳送。因此, 態地改變請求長度,DMA控制器252、262、254 可對分配到用來傳送請求的時槽做較佳的利用。 雖然以上是參考音頻控制器23 0來說明所揭示 # ,但吾人須瞭解,該技術也可應用於電腦系統中的 制器以管理記憶體存取請求。 圖3A說明DMA控制器內用於決定資料請求 "電路的一實施例。電路310包括若干多工器311G .及一正反器3180。每一個多工器3110— 3160的輸 入到多工器3170。多工器3170的輸出則輸入到 3180。正反器3180可包括延遲型正反器(D型正 。正反器3 1 8 0的輸出即是所決定的資料請: req_byte_len[7 : 0]。控制信號(例如 max le 及資料 權狀態 的潛伏 序。在 位準與 之緩衝 狀態機 264包 器230 較小的 經由動 及264 的技術 其它控 長度之 -3 170 出都輸 正反器 反器) 农長度 n[3 1 : -13- (10) 1312114 0]> = x80 )輸入到多工器31 10- 3160。 在一實施例中,定義3個用以決定資料請求長度的變 數,即,REQ_LEN 、 REM_DESC—LEN 以及 FIFO_SPACE 。REQ_LEN是請求長度。REM_DESC_LEN是要自對應之 緩衝器讀取或寫入其中之資料的剩餘位元組。 FIFO_SPACE是可用來觸發讀取/寫入請求之緩衝器的可 用空間。 • REQ_LEN可根據3項規則決定。第一,請求長度不 能超過傳送該請求之互連之最大的時槽大小。例如,互連 採用PCI Express協定,允許的最大時槽大小爲128位元 組,因此,P C I E X p r e s s系統中的請求長度不能超過1 2 8 位元組。第二,REQ — LEN不倉g超過REM一DESC — LEN 。第 三,REQ —LEN被設定成實質等於FIFO — SPACE,且受制 於前兩項規則。在一實施例中,如果FIFO_SPACE是8個 位元組,且可使用8位元組模式,則REQ_LEN是8個位 Φ 元組。如果FIFO_SPACE是16個位元組,且可使用16位 元組模式,貝IJ REQ_LEN 是 16 個位元組。如果 FIFO_SPACE是32個位元組,貝lj REQ_LEN是32個位元 ,組。FIFO_SPACE是64個位元組,貝lj REQ_LEN是64個 位元組。FIFO — SPACE是128個位元組,貝丨J REQ_LEN是 1 2 8個位元組。上述規則可用圖3 A中所示的公式表示。 不過,吾人須瞭解,所描述的這些特定規則及圖,其目的 僅是爲了說明。其它的實施例可採用不同的規則或圖來實 施所揭示的槪念。 -14 - (11) 1312114 圖3B說明用於決定BD DMA控制器內的BD請求 度。電路320包括一多工器3210及一正反器3220。多 器3210的輸出耦合至正反器3 220,正反器3220鎖存 latch )多工器3210的輸出。正反器3220的輸出是所決 的BD請求長度bd_req_len[l : 0]。在一實施例中’ BD 中的每一個BD具有16個位元組。因此,BD讀取的長 可以是1 6位元組的倍數(即1 6位元組、3 2位元組、 φ 位元組等),視BD DMA控制器的緩衝器大小而定。 在一實施例中,定義3個用以決定BD請求長度的 數,即,REQ — LEN、REM_BD_LEN 以及 FIFO_SPACE REQ_LEN是BD請求長度。REM —BD_LEN是要從對應 BD表讀取之BD的剩餘數量。REQ_LEN可根據3項規 決定。第一,請求長度不能超過傳送該請求之互連之最 的時槽大小。例如,互連採用PCI Express協定,允許 最大時槽大小爲128位元組,因此,在PCI Express系 φ 中的請求長度不能超過128位元組。第二,RE Q_L ΕΝ 能超過REM_BD — LEN。第三,REQ_LEN被設定成實質 於FIFO_SPACE ’且受制於前兩項規則。特別是,假設 -一個BD的長度是16個位元組,且如果FIFO_SPACE _ 長度是1 BD ’則REQ — LEN是1 BD,即1 6位元組。同 地,如果FIFO_SPACE的長度是2 BD,則REQ_LEN 32位元組;且如果 FIFO_SPACE的長度是 3 BD, REQ_LΕΝ是48位元組。不過,吾人須瞭解,所描述的 些特定規則及圖,其目的僅是爲了說明。其它的實施例 長 工 ( 定 表 度 48 變 〇 之 則 大 的 統 不 等 每 的 樣 是 則 這 可 -15- (12) 1312114 採用不同的規則或圖來實施所揭示的槪念。 圖3C說明DMA控制器(例如BD DMA控制器或資 料D Μ A控制器)內之優先權狀態機之一實施例的狀態圖 。現請參閱圖3 C,狀態機具有兩個狀態,即,低優先狀 態332與高優先狀態334。在一實施例中,當狀態機被重 置時,狀態機到達低優先權狀態3 3 2。當DM A控制器提 出請求或將要在下一個時脈周期提出時,狀態機可進入高 φ 優先狀態3 34,且請求變成對潛伏敏感。例如,當BD DMA控制器內的BD緩衝器被淸空時,BD請求變成潛伏 敏感。當資料DMA控制器之資料緩衝器內的資料低於預 定的臨限(諸如一個資料框)時,讀取資料的請求可變成 潛伏敏感。當DMA控制器之資料緩衝器內的可用空間低 於預定的臨限(諸如一個資料框)時,寫入資料的請求變 成潛伏敏感。 在一實施例中,當請求被輸入/輸出控制器200的互 φ 連控制器210接受時,狀態機從低優先狀態3 32改到高優 先狀態334(參考圖2)。 圖3 D說明音頻控制器內之仲裁器的一實施例。仲裁 •器3 40包括兩個位準,第一位準具有4個仲裁器34】〇 — . 3416’以及’第二位準具有一固定優先權仲裁器3420。 第一位準仲裁器可包括3個先進先服務(First Come Fii.st Served ; FCFS)仲裁器 3410— 3416 及一個循環(r〇und robin)仲裁器3416,用以在潛伏優先實質相同的請求間 進行仲裁。第二位準仲裁器3<420在第一位準仲裁器3410 -16- (13) 1312114 —3 4 1 6的輸出間進行仲裁。 在一實施例中’ BD擷取仲裁器3410在來自多個 DMA控制器(例如圖2中之BD DMA控制器252及 )的多個B D請求間進彳了仲裁。每一個b D D Μ A控制 出一個請求給B D擷取仲裁器3 4 1 0。例如,如果音頻 器有8個BD DMA控制器,則仲裁器3410接收8個 〇 春現請參閱圖3D’仲裁器3412在來自資料DMA 器(例如圖2中的資料DMA控制器254 )之潛伏敏 高的讀取資料請求(也是習知的資料擷取請求)間進 裁。例如’在具有4個讀取資料DMA控制器的音頻 器中,可能有4個潛伏敏感性高的讀取資料請求輸入 裁器3412。同樣地,仲裁器3414在來自資料DMA 器(例如圖2中的資料D Μ A控制器2 6 4 )之潛伏敏 高的資料寫入請求(也是習知的資料排出請求)間進 # 裁。在一實施例中,潛伏敏感性低的讀取及寫入資料 都是由循環仲裁器3416進行仲裁。 每一個 FCFS仲裁器 3410— 3414可使用一佇 queue )實施,以維持高潛伏請求的提出順序。循環 器3 41 6可使用加權循環(WRR )設計,將請求遮 masking )於被選擇的DMA控制器上以使用固定優先 裁。例如,當DMA控制器提出請求時,該DMA控 可被選擇,所提出的請求沒有被遮罩,沒有高延遲的 被動作,且沒有其它較高優先權無遮罩(η ο η - m a s k e d BD 262 器送 控制 請求 控制 感性 行仲 控制 到仲 控制 感性 行仲 請求 列( 仲裁 罩( 權仲 制器 請求 )之 -17- (14) 1312114 低延遲敏感性的DMA控制器正在請求。 在一實施例中’第一位準仲裁器3410— 3416於 個時脈周期(例如時脈周期X )在各DMA控制器間 仲裁,並在接下來的時脈周期(例如時脈周期X + 1 其中一個DMA控制器選擇一請求。第二位準仲裁器 在時脈周期(X+1)選擇一請求。此外,被選擇之 的屬性可以在時脈周期(X + 1 )被送到互連控制器2 φ 參考圖2)。因此,仲裁器34〇可確保有一請求正在 ,且始終實質地準備好離開,以避免浪費分配給音頻 器的時槽。 圖4顯示電腦系統4 0 0的例示性實施例。電腦 400包括一中央處理單元(CPU) 410、一記憶體控制 MCH ) 420、若干雙排記憶體模組425、若干記憶體 427、一 PCI Express繪圖埠430、一輸入/輸出控制 ICH) 440、若干萬用串列匯流排(USB)埠445、一 # 編碼-解碼器4 60、一超級輸入/輸出(Super 1/ Ο〕 、以及一韌體集線器(hub ) ( F W Η ) 4 7 0。 在一實施例中,中央處理單元 410、PCI Expres • 圖埠430、雙排記憶體模組425及輸入/輸出控制器 耦合至記憶體控制器42〇。記憶體控制器42 0與輸入 出控制器440間的鏈結43 5可包括DMI鏈結。記憶 制器420經由雙排記憶體模組425與記憶體裝置427 路由(routes )資料。記億體裝置427可包括各類型 憶體,諸如動態隨機存取記憶體(D R AM )、同步動 每一 進行 )從 3420 請求 10 ( 待命 控制 系統 器( 裝置 器( 音頻 450 s繪 440 /輸 體控 往來 的記 態隨 -18- (15) 1312114 機存取記憶體(S D R A Μ )、雙資料率(D D R ) S D R A Μ、 或快閃記憶體。在一實施例中,每一個雙排記憶體模組 425是安裝在同一主機板(圖中未顯示)上,經由DIMM 連接器(圖中未顯不)耦I合至記憶體控制器4 2 0。在一實 施例中,USB埠445、音頻編碼-解碼器460及超級輸入 /輸出45 0都耦合至輸入/輸出控制器440。超級輸入/ 輸出45 0可進一步耦合至韌體集線器470、軟式磁碟機 參 451、資料輸入裝置45 3 (諸如鍵盤、滑鼠等)、若干串 列埠45 5、以及若干平行埠457。 在一實施例中,輸入/輸出控制器440包括音頻控制 器442,其包括一仲裁器、若干BD DMA控制器、以及若 干出站與入站資料DMA控制器。DMA控制器反應來自 CPU 4 10提出存取記憶體裝置427的請求。請求可包括資 料讀取/寫入請求及B D讀取請求。D Μ A控制器可動態地 改變請求的屬性。仲裁器反應該屬性在各請求間進行仲裁 • ’以選擇一請求。DMA控制器及仲裁器之某些實施例的 細節已在前文中討論。 須注意,圖4中舉例說明的所有組件及相關硬體可用 •於電腦系統400的各類型實施例中。不過,須瞭解,電腦 '•系統的其它架構可包括一或多樣附加裝置,並未顯示於圖 4中。此外,吾人須瞭解,所揭示的技術可應用於不同類 j的系統ί哀境,g者如多接點連接(ni u 11 i - d r ο p )環境或點 對點環境。同樣地,所揭示的技術可應用於行動或桌上型 電腦系統。 -19- (16) 1312114 以上討論的僅是描述本發明的一些例示性實施例。熟 悉此方面技術的人士很容易瞭解,附圖及申請專利範圍可 做各樣的修改’不會偏離所附申請專利範圍的精神與範圍 。因此’以上的描述應視爲說明而非限制。 【圖式簡單說明】 圖1顯示管理記憶體存取請求之程序的實施例流程圖 〇 圖2舉例說明輸入/輸出控制器的一實施例。 圖3A舉例說明用於決定資料請求長度的電路實施例 〇 圖3 B舉例說明用於決定緩衝器描述符請求長度的電 路實施例。 圖3 C舉例說明用優先權狀態機之實施例的狀態Η ° 圖3 D舉例說明仲裁器的實施例。 圖4舉例說明一例示性的電腦系統實施例。 【主要元件符號說明】 1 :提出 2 :仲裁 3 :周邊組件互連高速傳輸匯流排 4 :時槽 5 :潛伏敏感性 6 :仲裁器 -20- (17) (17)1312114 7 :緩衝器描述符 8 :運算 9 :操作 1 0 ·入站 1 1 :出站 1 2 :鎖存 1 3 :路由 1 4 :多接點連接 200:輸入/輸出控制器 2 1 〇 :互連控制器 220 :周邊裝置控制器 2 1 5 :匯流排 208 :互連 2 3 0 :音頻控制器 240 :仲裁器 2 5 0 :往外的D Μ A引擎 260:往內的DMA引擎 2 7 0 :音頻編碼—解碼器 25 2 : B D D Μ A控制器 25 4 :資料DMA控制器 25 2 1 :優先權狀態機 2 5 23 :決定BD請求長度的電路 2 5 2 5 : BD緩衝器 2 5 4 1 :優先權狀態機 -21 - (18) (18)1312114 2 5 4 3 :決定資料請求長度的電路 2 5 4 5 :資料緩衝器 262: BD DMA控制器 2 6 4 :資料D Μ A控制器 262 1 :優先權狀態機 2 62 3 :決定BD請求長度的電路 262 5 : BD緩衝器 264 1 :優先權狀態機 2643 :決定資料請求長度的電路 2645 :資料緩衝器 3 1 0 :決定資料請求長度的電路 3110-3170:多工器 3 1 80 :正反器 3 2 0 :決定B D請求長度的電路 32 1 0 :多工器 3 220 :正反器 3 3 2 :低優先狀態 3 3 4 :高優先狀態 3 40 :仲裁器 3410 : BD擷取仲裁器 3 4 1 0 — 3 4 1 6 :第一位準仲裁器 3 420 :第二位準仲裁器 3 4 1 6 :循環仲裁器 4 0 0 :電腦系統 -22- (19) (19)1312114 410:中央處理單元 420 :記憶體控制器 42 5 :雙排記憶體模組 427 :記憶體裝置 430: PCI Express 繪圖 ί阜 4 4 0 :輸入/輸出控制器 445 :萬用串列匯流排埠 450:超級輸入/輸出 460:音頻編碼—解碼器 4 7 0 :韌體集線器 4 5 1 :軟式磁碟機 45 3 :資料輸入裝置 4 5 5 :串列埠 4 5 7 :平行埠
-23

Claims (1)

131.2114 十、申請專利範圍 附件2 : 第9 4 1 0 1 0 2 5號專利申請案 中文申請專利範圍替換本 年月F5 民國9 6年1 1 修正
1 · 一種管理記憶體存取請求的方法,包含以下步驟 動態地修改用以存取一或多個記憶體裝置之複數個請 參 求之每一個請求的一或多項屬性,其中該動態地修改該等 複數個請求之每一請求的一或多項屬性包含根據儲存個別 請求之個別記憶體存取控制器的緩衝器中可用的空間,動 態地修改個別請求的潛伏敏感性的準位;以及 根據該一或多項屬性在該等複數個請求間進行仲裁, 以選擇一個請求在一時槽中送至該一或多個記憶體裝置。 2 ·如申請專利範圍第1項的方法,其中該動態地修 改該一或多項屬性的步騾包含反應於該等複數個請求之每 • 一個請求的該潛伏敏感性,以動態地將該等複數個請求排 列優先順序。 3 .如申請專利範圍第1項的方法,進一步包含步驟 . 反應時槽的大小,動態地改變該等複數個請求之每一個請 _ 求之長度。 4.如申請專利範圍第1項的方法,其中該等複數個 請求包含一或多個資料讀取請求、一或多個資料寫入請求 '以及一或多個緩衝器描述符讀取請求。 5 ·如申請專利範圍第1項的方法,進一步包含步驟 1312114 經由數位多媒體互連將所選擇的請求送往記憶體裝置。 6.如申請專利範圍第〗項的方法,進一步包含步驟 反應來自一處理器之一指令,使用複數個直接記憶體存取 (DMA )控制器提出複數個請求。 7- —種機器可存取媒體,提供有多數指令,如果指 - 令被處理器執行,將致使處理器執行操作,包含: - 動態地修改用以存取一或多個記憶體裝置之複數個請 φ 求之每一個請求的一或多項屬性,其中該動態地修改該等 複數個請求之每一請求的一或多項屬性包含根據儲存個別 請求之個別記憶體存取控制器的緩衝器中可用的空間,動 態地修改個別請求的潛伏敏感性的準位;以及 反應時槽的大小,動態地改變該等複數個請求之每一 個請求的長度。 8. 如申請專利範圍第7項的機器可存取媒體,其中 該等操作進一步包含反應該等複數個請求之每一個請求的 • 該潛伏敏感性,動態地將該等複數個請求排列優先順序。 9. 如申請專利範圍第7項的機器可存取媒體,其中 該等複數個請求包含一或多個資料讀取請求、一或多個資 . 料寫入請求、以及一或多個緩衝器描述符讀取請求。 . 10.如申請專利範圍第7項的機器可存取媒體,其中 該等操作進一步包含經由一數位多媒體互連將所選擇的請 求送往該一或多個記憶體裝置。 11. 一種管理記憶體存取請求的設備,包含: 複數個記憶體存取控制器’用於提出複數個存取記億 -2- 1312114 體裝置的請求,其中該等複數個請求的一或多項屬性可動 態地改變,其中該等複數個記憶體存取控制器的每一個記 憶體存取控制器包含: 一緩衝器,用於暫時儲存一或多個請求;及 一優先權狀態機,用以根據該等複數個記憶體存取控 ' 制器的每一記憶體存取控制器的緩衝器中可用的空間,所 • 動態地將該一或多個請求排列優先順序;以及 | 第一仲裁器,根據該等複數個請求的該一或多項屬性 ’在該等複數個請求間進行仲裁,以選擇一個請求。 12.如申請專利範圍第11項的設備,其中該等複數 個記憶體存取控制器的每一個控制器進一步包含請求長度 決定電路,用以決定該一或多個請求的長度。 1 3 ·如申請專利範圍第1 2項的設備,其中該請求長 度決定電路包含複數個多工器。 14.如申請專利範圍第1 3項的設備,其中該請求長 # 度決定電路進一步包含一或多個正反器,耦合至複數個多 工器。 1 5 ·如申請專利範圍第11項的設備,其中該第一仲 - 裁器包含第一複數個仲裁器及一第二仲裁器,該第一複數 - 個仲裁器的輸出耦合至該第二仲裁器的輸入。 16.如申請專利範圍第15項的設備,其中該第一群 複數個仲裁器包含複數個先進先服務(First Come First Serve ; FCFS )仲裁器。 17·如申請專利範圍第1 5項的設備,其中該第二仲 -3- 131.2114 裁器包含一固定優先權仲裁器。 1 8 ·—種電腦系統,包含: 複數個動態隨機存取記憶體(DRAM )裝置; 一或多個音頻編碼-解碼器;以及 一輸入/輸出控制器,耦合於該等DRAM裝置與該 ' 一或多個音頻編碼-解碼器之間,該輸入/輸出控制器具 ' 有一音頻控制器,該音頻控制器包含·· Φ 複數個記憶體存取控制器,用於提出複數個請求 以存取該等記憶體裝置,其中該等複數個請求的一或多項 屬性可動態地改變,其中該等複數個記憶體存取控制器的 .每一個記憶體存取控制器包含: 一緩衝器’用於暫時儲存一或多個請求;及 一優先權狀態機,用於根據該等複數個記憶體存取控 制器之每一記憶體存取控制器之該緩衝器中之可用空間, 動態地將該一或多個請求排優先順序,以及 Φ 一第一仲裁器,用於根據該等複數個請求的該一或多 項屬性,在該等複數個請求間進行仲裁,以選擇一請求。 1 9 ·如申請專利範圍第1 8項的電腦系統,其中該等 • 複數個記憶體存取控制器之每一個控制器進一步包含:請 - 求長度決定電路,用於決定該一或多個請求的長度。 20.如申請專利範圍第1 9項的電腦系統,其中該請 求長度決定電路包含: 複數個多工器;以及 一或多個正反器,耦合至複數個多工器。 -4- I3L2114 21.如申請專利範圍第1 8項的電腦系統,其中該第 一仲裁器包含第一複數個仲裁器及一第二仲裁器,該第一 複數個仲裁器的輸出耦合至該第二仲裁器的輸入。 2 2 _如申請專利範圍第2 1項的電腦系統,其中該第 —複數個仲裁器包含複數個先進先服務(FCFS )仲裁器 〇 ' 23 ·如申請專利範圍第21項的電腦系統,其中該第 φ 二仲裁器包含固定優先權仲裁器。 24.如申請專利範圍第1 8項的電腦系統,進一步包 含: —記憶體控制器,耦合至該等DRAM裝置;以及 一數位多媒體互連,耦合於該記憶體控制器與該輸A /輸出控制器之間,其中該被選擇的請求經由該數位多媒 體互連及該記憶體控制器被送往該一或多個DRAM裝置 〇 • 25.如申請專利範圍第24項的電腦系統,進—步包 含一中央處理單元,耦合至該記憶體控制器,用於送出一 指令給該輸入/輸出控制器,以致使該等複數個記憶體存 - 取控制器提出該等複數個請求。
TW094101025A 2004-01-20 2005-01-13 A method and apparatus to manage memory access requests TWI312114B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/762,037 US20050160188A1 (en) 2004-01-20 2004-01-20 Method and apparatus to manage memory access requests

Publications (2)

Publication Number Publication Date
TW200534102A TW200534102A (en) 2005-10-16
TWI312114B true TWI312114B (en) 2009-07-11

Family

ID=34750317

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094101025A TWI312114B (en) 2004-01-20 2005-01-13 A method and apparatus to manage memory access requests

Country Status (6)

Country Link
US (1) US20050160188A1 (zh)
KR (1) KR100841139B1 (zh)
CN (1) CN100476773C (zh)
DE (1) DE112005000219T5 (zh)
TW (1) TWI312114B (zh)
WO (1) WO2005073864A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI460588B (zh) * 2009-07-17 2014-11-11 Toshiba Kk Memory management device and memory information processing device

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353317B2 (en) * 2004-12-28 2008-04-01 Intel Corporation Method and apparatus for implementing heterogeneous interconnects
US7716388B2 (en) * 2005-05-13 2010-05-11 Texas Instruments Incorporated Command re-ordering in hub interface unit based on priority
US7660926B2 (en) * 2005-11-16 2010-02-09 Sun Microsystems, Inc. Apparatus and method for a core for implementing a communications port
US7685346B2 (en) * 2007-06-26 2010-03-23 Intel Corporation Demotion-based arbitration
KR100981017B1 (ko) * 2008-12-08 2010-09-07 재단법인대구경북과학기술원 정적 태스크 정의 기능을 가진 시스템을 위한 우선순위 재정의 및 대기큐 관리 방법과 상기 방법을 실행하는 시스템
US8295287B2 (en) * 2010-01-27 2012-10-23 National Instruments Corporation Network traffic shaping for reducing bus jitter on a real time controller
US8285892B2 (en) 2010-05-05 2012-10-09 Lsi Corporation Quantum burst arbiter and memory controller
US8412870B2 (en) * 2010-05-25 2013-04-02 Lsi Corporation Optimized arbiter using multi-level arbitration
US8667197B2 (en) 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
JP2013106166A (ja) * 2011-11-14 2013-05-30 Sony Corp クロックゲーティング回路およびバスシステム
CN103678199B (zh) * 2012-09-26 2017-05-10 深圳市中兴微电子技术有限公司 一种传输数据的方法和设备
CN104298628B (zh) * 2014-09-30 2017-12-29 中国电子科技集团公司第三十八研究所 一种用于并发访问的数据存储器仲裁电路及仲裁方法
CN105988953B (zh) * 2015-02-12 2019-03-12 深圳市中兴微电子技术有限公司 一种直接内存存取dma控制器及数据传输的方法
KR101689458B1 (ko) * 2015-03-16 2016-12-23 한양대학교 산학협력단 반도체 메모리 장치 및 반도체 메모리 장치 제어 방법
US10725931B2 (en) * 2018-08-22 2020-07-28 Western Digital Technologies, Inc. Logical and physical address field size reduction by alignment-constrained writing technique
US10965613B2 (en) * 2019-01-10 2021-03-30 Vmware, Inc. Multi-pipe bandwidth control in hosted systems
US11481341B2 (en) * 2020-10-29 2022-10-25 EMC IP Holding Company, LLC System and method for dynamically adjusting priority-based allocation of storage system resources

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546548A (en) * 1993-03-31 1996-08-13 Intel Corporation Arbiter and arbitration process for a dynamic and flexible prioritization
EP0718773A1 (en) * 1994-12-19 1996-06-26 Advanced Micro Devices, Inc. Bus access arbiter
WO1999034293A1 (en) * 1997-12-30 1999-07-08 Micron Technology, Inc. Accelerated graphics port for multiple memory controller computer system
US6266718B1 (en) * 1998-10-14 2001-07-24 Micron Technology, Inc. Apparatus for controlling data transfer operations between a memory and devices having respective latencies
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
US6757795B2 (en) * 2001-04-03 2004-06-29 International Business Machines Corporation Apparatus and method for efficiently sharing memory bandwidth in a network processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI460588B (zh) * 2009-07-17 2014-11-11 Toshiba Kk Memory management device and memory information processing device

Also Published As

Publication number Publication date
US20050160188A1 (en) 2005-07-21
DE112005000219T5 (de) 2006-12-07
KR100841139B1 (ko) 2008-06-24
WO2005073864A1 (en) 2005-08-11
TW200534102A (en) 2005-10-16
KR20060130121A (ko) 2006-12-18
CN100476773C (zh) 2009-04-08
CN1934549A (zh) 2007-03-21

Similar Documents

Publication Publication Date Title
TWI312114B (en) A method and apparatus to manage memory access requests
US7269709B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
US7555597B2 (en) Direct cache access in multiple core processors
US7340548B2 (en) On-chip bus
US5771359A (en) Bridge having a data buffer for each bus master
US8463969B2 (en) Extended message signal interrupt
US20040168001A1 (en) Universal serial bus hub with shared transaction translator memory
WO2006030650A1 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
TW201234188A (en) Memory access device for memory sharing among multiple processors and access method for the same
US20040010652A1 (en) System-on-chip (SOC) architecture with arbitrary pipeline depth
JP7138190B2 (ja) ネットワークスイッチのキュー
US8489851B2 (en) Processing of read requests in a memory controller using pre-fetch mechanism
US20080034024A1 (en) Method and signal processing device to provide one or more fractional delay lines
BR102013022935A2 (pt) Dispositivo de memória flash serial de múltiplos fluxos de dados
US8078786B2 (en) Method and system for request accessing and scheduling
US20040228370A1 (en) Method and apparatus for high throughput multiplexing of data
JP2011232917A (ja) 半導体集積回路、及びリクエスト制御方法
TWI382313B (zh) 管理分離匯流排上匯流排代理之間的資料流程的方法和系統
US10684965B2 (en) Method to reduce write responses to improve bandwidth and efficiency
US7673091B2 (en) Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system
US7987437B2 (en) Structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
KR100432701B1 (ko) 컴퓨터 구성요소 간의 개선된 인터페이스를 위한 방법 및장치
JPH08314854A (ja) データ転送システムおよびこれに関連する装置
EP3841484B1 (en) Link layer data packing and packet flow control scheme
JP2006065453A (ja) データ処理装置

Legal Events

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