TWI312114B - A method and apparatus to manage memory access requests - Google Patents
A method and apparatus to manage memory access requests Download PDFInfo
- 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
Links
Classifications
-
- 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
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling 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項的電腦系統,進—步包 含一中央處理單元,耦合至該記憶體控制器,用於送出一 指令給該輸入/輸出控制器,以致使該等複數個記憶體存 - 取控制器提出該等複數個請求。
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)
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)
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)
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 |
-
2004
- 2004-01-20 US US10/762,037 patent/US20050160188A1/en not_active Abandoned
-
2005
- 2005-01-10 DE DE112005000219T patent/DE112005000219T5/de not_active Withdrawn
- 2005-01-10 WO PCT/US2005/000738 patent/WO2005073864A1/en active Application Filing
- 2005-01-10 CN CNB2005800089122A patent/CN100476773C/zh not_active Expired - Fee Related
- 2005-01-10 KR KR1020067014616A patent/KR100841139B1/ko not_active IP Right Cessation
- 2005-01-13 TW TW094101025A patent/TWI312114B/zh not_active IP Right Cessation
Cited By (1)
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 |