TWI326828B - A dma controller with multiple intra-channel software request support - Google Patents

A dma controller with multiple intra-channel software request support Download PDF

Info

Publication number
TWI326828B
TWI326828B TW095147319A TW95147319A TWI326828B TW I326828 B TWI326828 B TW I326828B TW 095147319 A TW095147319 A TW 095147319A TW 95147319 A TW95147319 A TW 95147319A TW I326828 B TWI326828 B TW I326828B
Authority
TW
Taiwan
Prior art keywords
request
memory access
direct memory
channel
predicted
Prior art date
Application number
TW095147319A
Other languages
English (en)
Other versions
TW200739357A (en
Inventor
Ivo Tousek
Original Assignee
Via Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW200739357A publication Critical patent/TW200739357A/zh
Application granted granted Critical
Publication of TWI326828B publication Critical patent/TWI326828B/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/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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

1326828 九、發明說明: 【發明所屬之技術領域】 本發明係有關於資料傳輸,特別是關於直接記憶體存取 (DMA)控制器,用於最佳化快速記憶體對記憶體傳輸,以 支援内部通道(同一直接記憶體存取通道)中複數個處於 等待的軟體請求(sof"tware requests)。 【先前技術】 籲在資料記憶體裝置的運作中,最好的方式是由直接記憶體 存取來執行介於分頁模式的主記憶體與作為_資料儲存 裝置的輔助記憶體間的資料傳輸存取,此種技術係透過直 接記憶體存取控制器執行資料傳輸,且不需與資料處理器 (processor)產生任何互動^雖然直接記憶體存取是由資 料處㈣起始其運作,但資料在傳輸時並不需要經由資料 處理益。直接記憶體存取裝置可與直接記憶體存取控制器 籲合併’因此可將資料自辅助記憶體(例如磁 給主記憶體。 得跑 直接a己憶體存取控制哭β1 + ,ΠΜΑ 、 制盗疋透過直接記憶體存取請求 體存 錢體麵傳輸的。直接記憶 體存取…為軟體請求或為硬 周邊的直接記.It體存取僂 I自k至系統 記憶體存取硬料知目關 =賴產生的直接 得送至直接記憶體存取控制 1326828 器而0己隐體對s己憶體(memory-to-memory)直接記憶體存 取傳輸則與軟體請求相關。大量的直接記憶體存取傳輸是 先將負料封匕拆解成小塊並以叢發傳輸(bursts)的方式 將資料送至系統資料匯流排,且每個資料封包或叢發傳輸 皆與直接記憶體存取的硬體或軟體請求相關。 如第一圖所示’其係一直接記憶體存取控制器的架構 圖。該直接記憶體存取控制器1〇〇提供數個可配置於CPU Φ 匯流排上的直接記憶體存取通道。於本實施例中的直接記 憶體存取控制器’一直接記憶體存取通道可配置於通道組 態暫存器112中’以傳輸資料於“區域記憶體,’(locai memory)與連接系統匯流排的外部系統記憶體之間。該直 接記憶體存取控制器100可包含數個方塊模組,如一匯流 排介面單元110 ’ 一直接記憶體存取半佇列(en-qUeue)引 擎130,一全符列(de-queue)引擎150,一直接記憶體存 籲取佇列管理器170與一系統匯流排介面190以處理資料傳 輸。 . 該直接記憶體存取控制器100用於管理内部的數筆資 料與控制資訊佇列。該直接記憶體存取控制器的通道請求 仲裁器134於現行之直接記憶體存取傳輸請求間進行仲 裁,該等請求係與通道組態暫存器Π2中的所有現行的直 接記憶體存取通道相關’且每個請求係牵涉一資料封包之 8 ^㈤如自區域冗憶體(local memory)至外部系統記憶 體(直接§己憶體存取寫入,DMA Write),或由外部系統記 ,體至區域5己憶體(直接記憶體存取讀取,㈣幻。對 .每個來自於通道請求仲裁H 134的特定(selected)直接 存取(寫入或讀出)請求該半仔列引擎13〇會將一 t料封包列人排程以供直接記憶體存取傳輸之用。針對每 個特疋的晴求’該半佇列引擎13〇將一控制訊息項目 籲(的1^)寫人到先進先請轉列(reqQ) 132,並寫入-控 制訊心項目到先進先出命令符列(cmdQ)174之中。此外, 二為直接C憶體存取寫入請求,則半作列引擎13〇會自 區域-己K體(未顯示)讀取資料並將資料置於寫入資料仰 命令仔列(cmdQ)174中的一項目可控制每個 歹J入排輕的資料封包如何送到系統匯流排上。自外部系統 °己隐體接收至系統匯流排上的資料係放置在讀取資料佇 籲列(r Q)l?6。與直接記憶體存取寫入及讀取傳輸相關之系 統匯肌排傳輪許可/中止⑽Αγ/八臓·)狀態訊息則置放 於先進先出響應传列(respQ)178中,此狀態訊息係來自 系統匯机梆上的響應信號,而響應信號係相關於系統匯流 排上的每筆貪料傳輪,用以指示資料傳輸是否傳輸成功 (許可)與否(中止)。請求符列132的所有項目乃對應至直 接記憶體存取控制器之㈣㈣中已列人排程或尚在等 9 1326828 待中的所有請求。請求佇列132的每一項目包含用以描繪 已列入排程之直接記憶體存取的描述元;直接記憶體存取 控制器100依序執行請求佇列132中所有的該類項目。全 佇列引擎150將請求佇列132表頭之一項目與響應佇列 (respQ)178之響應信號作配對。與直接記憶體存取讀取 傳輸相關的資料係自讀取資料佇列(rdQ)176傳送到區域 s己憶體。當所有與一直接記憶體存取請求相關之所有響應 鲁信號皆已處理完畢後’請求佇列132表頭的該項目會被彈 出請求佇列,同時更新相關的直接記憶體存取通道組態參 數,以反映資料已於系統匯流排上成功傳送完畢。假設一 資料封包或該資料封包的部分無法成功傳送,則禁止該直 接記憶體存取通道進行下一步的傳輸,同時更新其組態參 數以反映該資料傳輸於系統匯流排上被中止。 一個直接記憶體存取控制器通常可支援複數個直接記 _憶體存取通道(例如’ 8個通道)’内部緩衝器之切割方式 係可存放至少一最大容量叢發之寫入資料於對外寫入資 料緩衝器(wdQ) ’而其對内讀取資料緩衝器(r(jQ)可存放至 • 少一最大容量叢發之讀取資料。由於佇列的動態特性,當 一最大容量叢發傳輸彈出響應佇列與讀取資料緩衝器之 同時,另一最大容量叢發傳輸可傳送到系統匯流排,而第 1326828 列與寫入資料仵 三個最大容量叢發傳輸則被推入命令仲 列0
對應於複數個直接記憶體存取通道的複數個請求可 時於直接記憶體存取控制器内處於等待。然而,與同° 接記憶體存取通道相關的記憶體對記憶體傳輸^越= 執行愈好。因此直接記憶體存取控制器可管理内部二列中 接連的複數處於等待的内部通道軟體請求乃所期望者 然而’支援複數個處於等待的内部通道軟體請求有許 多的問題存在。當與同-直接記龍存取通道相關的其餘 内部通道請求已於直接記憶體存取控制器處於等待的同 時’此直接記龍存取㈣H如何計算下個請求的來源與 目的位址?再者’直接記憶體存取控制器如何得知現存^ 新之處於等待的請求於何時會使通道到達終端計數 (terminal count)?這些問題之導因在於通道參數基本 上並未更新,直到一處於等待的請求已完成,且直接記憶 體存取控制器確認相關之資料封包已於系統匯流排上傳 輸成功。 因此,提供一個可有效支援複數個處於等待的内部通道 軟體請求之直接記憶體存取控制器,仍為待解決之課題。 11 1326828 【發明内容】 • 本發明提供一種直接記憶體存取控制器以支援同一通 道中複數個處於等待的軟體請求。 於本發明的一實施例中,一直接記憶體存取控制器包 含一通道組態暫存器(channel configuration register),一通道睛求仲裁器(channel request arbiter) ’ 一尾部搜尋單元(tail search unit),一通道 • 預測單元(channel prediction),一命令與請求項目產生 器(command/request entry generator)與一請求佇列 (request queue)。該通道組態暫存器輸出一組實際通道 參數,該通道預測單元產生一組預測通道參數,而命令與 請求項目產生器依據尾部搜尋器之輸出發送一請求至請 求符列。若於尾部搜尋中沒有找到有效且處於等待的内部 通道請求’則該命令與請求項目產生器使用實際通道參數 •值以產生下個命令或請求;否則,該命令與請求項目產生 器使用於尾部搜尋請求件列中處於等待的請求中找到預 測通道參數值。 於本發明的另-實施例中,提供一適用於直接記憶體存取 控制益之等待請求佇列格式。該等待請求佇列格式包含一 預測終端計數攔位(predic1:ed terminal c〇unt Held), 用以預測—特定通道是否於—接續之處於等待的請求成 12 1326828 •- 功完成後到達其終端計數’一預測位元計數欄位用以預測 接績之處於等待的請求成功完成後剩餘位元之數目,以及 兩個預測記憶體位址用以預測下個傳送的内部通道資料 封包之來源與目的記憶體啟始位址。該些預測值組成下個 將傳送的内部通道資料封包的實際通道參數值。 於本發明之又一實施例中’提供一適用於直接記憶體存 取控制器傳送複數個處於等待之請求的方法。該方法包含 %下列步驟:提供一通道請求,執行一尾部搜尋,並依尾部 搜尋之結果執行該請求。如果於尾部搜尋中沒有找到處於 等待的内部通道請求,則使用實際通道參數值來產生下一 個命令與請求;否則,使用於尾部搜尋請求佇列中處於等 待的請求所找到的預測通道參數值。 【實施方式】 鲁本發明揭露一種可支援同一通道中複數個處於等待的 軟體請求之直接記憶體存取控制器。本發明之直接記憶體 存取控制器可依據尾部搜尋之結果動態產生一組預測通 道參數。於本發明的一較佳實施例中,當其餘請求已置入 仔列中且接續之請求正在排程時,可計算預測參數值,並 伴隨通道號碼(channe 1 number)放置於請求彳宁列以做 為項目之一部份’以有效解決先前的位址計算與終端 問題。 致 13 1326828 參考第二圖,該圖為本發明一較佳實施例之直接記憶 體存取控制器的架構圖。直接記憶體存取控制器200包含 複數組通道組態暫存器(channel configuration register)212,一請求遮罩(request mask,Req Mask) 單元214,一個通道請求仲裁器(channel request arbiter)216,一尾部搜尋單元(tail search unit)218, 一通道預測單元(channel prediction unit)220,一命令 鲁 與請求項目產生器(command/request entry generator)222 ’ 一請求仵列(request queue, reqQ)224 與一命令佇列(command queue, cmdQ)226。 請求遮罩單元214不僅接收軟體請求也接收與現行直 接記憶體存取通道相關的硬體請求,並且將上述的請求傳 送到通道請求仲裁器216。當通道請求仲裁器216指定某 個新軟體請求並將其列入服務清單時,命令/請求項目產 生益222首先執行所謂的尾部搜尋,以尋找於指定通道之 .内部請㈣列(_)224衫已有處於等待的請求。已列 .入服務清單且錢請求㈣的直接記㈣存取請求將由 直接記憶體存取控制器依序執行。在尾部搜尋期間,命令 與請求項目產生器222搜尋命令仵列(γ_224中具有相 同通道號碼的有效項目。在一實施例中,此搜尋係自請求 仔列224尾部至頭部搜尋所有項目,以尋找直接記憶體存 取中目前處於等待的最後一個内部通道軟體請求。如果找 到了該個項目’隨後即停止尼部搜尋,而尾部搜尋單元 218會將該項目的預測參數值傳送給通道參數預測單元 .⑽;否則尾部搜尋單元218傳送該指定通道的實際通道 參數值給通道參數預剛單元22〇。通道參數單元22〇使用 自尾部搜尋接收的數值來_與該軟體請求相關的新通 道參數。該命令與請求項目產生器222將相關的項目推進 _明求佇列224並將描述元推進命令佇列226以產生並半佇 列化新的請求。在一實施例中,請求佇列與命令佇列皆以 .先進先出為基礎來處理。 參考第三圖,係本發明一較佳實施例的一暫存器組 態’其示意請求佇列中包含通道預測攔位的一個項目。本 範例透過將請求佇列之每一項目與一單一 80位元暫存器 鲁相結合,以實現可支援内部通道複數個軟體請求的功能。 睛求佇列項目暫存器300包含至少4個攔位來表示預測通 . 道參數’其分別為預測終端計數(predicted terminal count),預測位元計數(predicted byte count),預測本 地把憶體位址(predicted local memory address),與預 測外部記憶體位址(ext erna 1 memory address) ° 第一個 欄位是一位元的預測終端計數(PRED_TC)310,用以預測當 相關的處於等待之請求完成時,該通道是否將到達終端計 15 1326828 數。第二個欄位是 16位元的預測位元計數 (PRED_BYTE_COUNT)306,用以預測當相關的處於等待之請 求完成之後,剩餘需發送到一特定的通道上的位元數量。 第三個攔位是16位元的預測本地記憶體位址 (PRED_LM_ADDR)304,用以預測相關的處於等待之請求完 成之後,區域記憶體内之下個位址為何。第四個欄位是 32位元的預測外部記憶體位址(PRED_EM_ADDR)302,用以 > 預測當相關的處於等待之請求完成之後,外部記憶體位址 内之下個位址為何。此外,第五個攔位是5位元的預測線 路計數(PRED_LN_COUNT) 3 0 8,可視需要於直接記憶體存取 控制器為一固定偏移(Off set)分散或集中直接記憶體存 取控制器時選擇性使用。預測線路計數 (PRED_LN_COUNT)308用以預測當相關的處於等待之請求 完成之後,線路計數值為何。剩餘的10位元則為保留為 •預留欄位312。關於固定偏移分散或聚集直接記憶體存取 控制器的詳細資料可於申請人之另一申請“固定偏移分 散或聚集直接記憶體存取控制器”得知相關細節。請求項 目内還包含其他未顯示於圖中之資訊,例如,用以表示一 請求項目為有效之一有效位元,以及結合一項目與直接記 憶體存取控制器其中一通道的通道號碼資訊攔位。 16 1326828 在操作中,當一新的敕體請求被列入服務清單,且尾 部搜尋單兀218顯不無其他請求處於等待中,命令與請求 項目產生器222會產生命令描述元傳給命令彳宁列 (cmdQ)226,並依據通道絚態暫存器212中的通道參數值 執行通道參數預測。另一方甬,當一個新的軟體請求被列 入服務清單’同時尾部後尋單元218顯示已有其他請求處 於等待中,命令與請求項目產生器222則產生命令描述元 φ 傳給命令仔列(cmdQ)226,並依據請求仵列(reqQ)224中 最新的預測通道參數值執行新通道參數預測。若預測終端 计數310為1時,則該内部通道軟體請求受請求遮罩單元 214屏蔽。 依據直接記憶體存取控制器所能提供的功能,通道參 數預測可增加其它訊息類型的預測。其中之一範例為預測 線路計數參數,其為預測線路區段計數值,用以改善固定 φ偏移分散或聚集直接記憶體存取控制器的分散或聚集性 能。該控制器的詳細資料於申請人之另一申請案,,,固定 > 補償分散或聚集直接記憶體存取控制器”,其中有更詳細 ' 的描述。 直接記憶體存取控制器可將直接記憶體存取傳輸分解 成較小的資料封包,並以叢發傳輸之方式送至系統匯流 17 排,在一實施例中 (AHB) 〇 該系統匯流排為先進高效能匯流排 或4而。’直接§己憶體存取控制器可以1位it、2位元 4位元之單一 妆次μ Ρ拍或8節拍的叢發傳輸來傳送與接 队貝料’其中一 A J^r - 料日# /、 位7°之8節拍叢發傳輸係於8個連續資 決*脈週期中傳輪4位元資料。在通道配置時,編程器可 疋直接記籠存取傳輪計數,來源與目的位址以及資料 :如胃何傳迗。舉例而言’如果傳輸計數設定為Μ%位元 〜使用4位元之8個節拍叢發傳輸,直接記憶體存 取控制盗會將傳輸分成32個叢發傳輸(32*8*4=1024)。 田叢發傳輸送出後,直接記憶體存取控制器會連續不 斷地更新其通道組態暫存器。先進高效能匯流排(AHB)的 重要特徵為每個資料狀態傳輸係與來自接收終端的響 應相關。 一典型實例為,直接記憶體存取控制器隨著OK S應而送出或接收叢發傳輸資料。在其他實例中,叢發傳 輸可能會等待、分裂或重試,意即叢發傳輸將於稍後完 成。無論如何,如果在其中一通道的直接記憶體存取傳輸 期間接收到一錯誤訊息響應,則真接記憶體存取控制器將 會7R止該直接記憶體存取通道,更新該通道的傳輸大小以 及來源與目的位址暫存器,使其町反應於錯誤訊息響應發 送之則已成功送出的資料數量,没疋通道錯誤旗標。與 1326828 一錯誤訊息響應相_資料傳輸將®此巾止。於第四圖之 實施例中,第G㈣係依據制者之狀值1 1列與第 2列的數值對應於弁推古汾At 、 先進冋效肊匯流排上一叢發傳輸成功 後所更新的触。第3列瓶映至接㈣錯如息響應為 止所傳运之位錢目。接收到錯誤訊息響錢,該通道可 再一次藉由軟體來執行服務。
當-直接記憶體存取通道是用以自區域記憶體傳輸資 料至外部记憶體配置時,該直接記憶體存取讀取對應於區 域記憶體的一叢發傳輸的一資料封包,並將該資料封包置 入一寫入請求佇列(WrQ),而且命令與請求項目產生器會 產生一寫入命令到命令佇列(CmdQ)中以及一描述請求項 目到請求·ί宁列(reqQ)。當叢發傳輸經由系統匯流排傳輸, 與每個資料狀態傳輸相關的響應會以相反方向通過響應 佇列(respQ)。響應剖析器接著提供更新之通道資訊給通 道組態暫存器。一命令項目(command entry) ’ 一請求項 目(request entry)與一響應封包(respose packet)皆與 每一寫入資料封包(write-data packet)相關。 另一方面,當一直接記憶體存取通道係用以自一外部 記憶體傳輸資料至區域記憶體,直接記憶體存取將來自命 令與請求項目產生器的一讀取命令置放至命令佇列化岵⑴ 並將一請求項目置放至請求佇列(reqQ)。當叢發傳輸送至 1326828 系統匯流排,讀取資料被置入讀取資料佇列(rdQ),同時 相關響應也被置人響應彳宁列(⑽⑽)。響制析器接著提 供更新的通道資訊給通道組態暫存器。此外,一命令項 目,-請求響應與-回應封包皆與每—讀取資料封包 (read-data packet)相關。
本發明係關於-直接記憶體存取㈣器之料,該直 接記憶體存取控制器與—可支援每筆資料傳輸相關的許 可或中止響應信號的系統匯流排相連接,該直接記憶體存 取控制n透過支援複數個處於等待的㈣通道軟體請求 以最佳化快速記憶體對記憶體傳輸。 傳輸計數、來源與目的位址暫存器應於叢發傳輸已通 過系統匯流排’以及其相關之討或中均應已财認之 新較為恰當。甚者,若在直接域體存取控制器 夕個屬於同—直接記憶體存取通道的處於等待之 請求’且其相關之一資料傳輸在匯流排上被中止,傳輸計 數、來源與目的位址暫存器在封包被狀服務清單時即迅 速更新’則於上述情況發生時將難以計算正確的值。在一 直接記憶體存取資料匯麵傳輪中止後,其相_直接記 憶體存取通道應被禁止,且麵道巾的傳輸魏值、來源 與目的位址暫存器應反映被終止之資料。 20 1326828 當一封包列入直接記憶體存取傳輸清單,直到該封包 到達目的地的時間點時,可能產生可觀的時間延遲。同時 事先可能已有複數個處於等待的封包被列入清單了。因此 在封包傳送完畢且所有的響應皆已經過確認後,再更新通 道參數,還可提供追蹤直接記憶體存取傳輸行進的能力。 實際通道參數之更新應以可反映已成功傳送的資料之方 式執行。 .參考第五圖’其係於直接記憶體存取控制器中,運用 多個處於專待之軟體請求的内部通道資料封包直接記情 體存取傳輸程序之流程圖。首先於步驟502設定直接記慎 艘存取通道的初始組態,此步驟使用軟體請求與8節拍叢 發傳輸的4位元資料傳輸’以傳送1 位元資料。直接記 憶體存取控制器在504,506與508等三個步驟中分別傳 送三個32位元封包並於步驟512中傳送11位元的封包。 暑該等封包係於步驟504、506與508中依序處理。通道參 數如傳輸計數、來源與目的位址與終端計數等,係於每一 次資料封包完成傳輸’且其相關的響應訊號已經確認後受 到更新,亦即在步驟510、514、516與518結束時。當編 號#1、#2與#3之封包被列入傳輸清單以備傳輸時,直接 記憶體存取控制器内已有其他内部通道封包處於等待 中。因此’直接記憶體存取控制器只有在處理封包#〇時 21 1326828 會使用通道的組態暫存器内的實際參數值,而在處理其他 封包#1、#2與#3時該等參數值並非最新更新值。 因此’如果在直接記憶體存取控制器内宥複數個處於 等待的内部通道封包時’如何確定尚有其它的内部通道封 包也可被列入排程清單;再者,若該内部通道封包可被列 入排程清單’又要如何決定其大小、來源與目的位址,皆 為需解決之課題。 | 其中一個解決問題的方法是,提供一組與每一通道相 關的預測通道參數值,當直接記憶體存取通道有一個已列 入排程的封包等待傳輸’且其仍於直接記憶體存取控制器 内等待時,該組參數為有效值。當該組參數被視為有效值 時,則於每次直接記憶體存取通道排定一新的封包進入服 務清單時,使用該組預測參數值。該組預測值是一請求成 功完成後所得之值。依據該組預測值,所有與下一内部通 Φ道之封包相關的參數,例如封包大小、來源與目的位址暫 存器等,可於其他内部通道的封包仍在彳宁列中等待時,即 可計算得知。如果直接記憶體存取控制器可支援之處於等 待的封包總數的最大值’比直接記憶體存取通道總數還 多,則該組通遒預測參數可與每個通道的組態暫存器共同 被儲存。然而’當受支援的通道數量要比處於等待的封 包之最大總數量多時’則將此預測通道參數提供為請求仵 22

Claims (1)

  1. 十、申請專利範圍: h —種直接記憶體存取(麵)控制器,包含: 包:= 宁列,儲存至少一項目,每一該項目至少 一C與一直接記憶體存取通道號碼; 的直接飞:::兀’用以搜尋該請求佇列中屬於-選定 道=憶體存取通道的一處於等待之請求,並輸出—通 之::==至少-組與-新請求相關 道參數所排程β及 據該尾部搜尋單元之該通 之該用以根據該尾部搜尋單元 送該新請求至該請求=列满早疋之該組預測通道參數,發 處於等待』:::疋於該請求佇列中搜尋不到有效的該 二::::r該請求仔列_到有效的 數值。 ·輸出該選定通道之一組實際通道參 項的直接記憶體存取控制器,更私 .如申請專利範圍第1 含: 28 Γ326.828 複數個通道組態暫存器,用以儲存複數個現行的直接 記憶體存取通道,並且輸出一組實際通道參數;以及 一通道請求仲裁器,用以仲裁該通道組態暫存器中, 與所有該等現行的直接記憶體存取通道相關的複數個請 求,以及選擇欲服務的下個直接記憶體存取通道號碼。 3. 如申請專利範圍第2項的直接記憶體存取控制器,更包 φ 含一請求遮罩單元,用以接收複數個軟體請求以及與現行 的該直接記憶體存取通道相關的複數個硬體請求,並將該 等軟體請求與該等硬體請求傳送至該通道請求仲裁器以 尋求服務。 4. 如申請專利範圍第3項的直接記憶體存取控制器,其中 該通道請求仲裁器監控來自該請求遮罩單元的所有該等 φ 現行請求。 - 5.如申請專利範圍第1項的直接記憶體存取控制器,其中 - 該預測通道參數包含: 一預測終端計數欄位,用以儲存一預測結果,以顯示 當成功完成該處於等待之請求後,該選定的直接記憶體存 取通道是否到達其終端計數; 29 1326828 一預測位元計數攔位,用以儲存當成功完成該處於等 待之請求後,所需傳送的預測剩餘位元之值; 一預測記憶體位址棚位,用以儲存當成功完成該處於 等待之請求後,預測來源與目的記憶體位址之值;以及 一預測線路計數攔位,用以儲存一預測線路區段計數 值。 % 6·如申請專利範圍第1項的直接記憶體存取直接記憶體 存取控制器’其中該尾部搜尋單元包含一多工器。 7. 如申请專利範圍第1項的直接記憶體存取控制器,其中 該尾部搜尋單元包含: 一尾部搜尋優先解碼器’用以支援一多重項目深度之 請求仔列’該尾部搜尋優先解碼器接收該等預測通道參數 #值、該通道號碼與來自該請求佇列中對應的該等項目的複 數個有效位元’並且該尾部搜尋優先解碼器也接收來自該 -選定的直接記憶體存取通道的該組實際通道參數值。 8. 如申請專利範圍第7項的直接記憶體存取控制器,其中 該尾部搜尋單元根據該尾部搜尋優先解碼器所產生最新 的預測内部通道參數值以產生複數個輸入參數。 30 9.如申明專利範圍第i項的直接記憶體存取控制器,其中 該直接記憶體存取控制器為-固定偏移分散或聚集直接 s己憶體存取控制器。 1〇·如申明專利範圍第1項的直接記憶體存取控制器,其 中該请求為一種軟體請求。 » 11.如申请專利範圍第1項的直接記憶體存取控制器,其 中該請求仔列包含: 一預測終端計數攔位,用以儲存一預測結果,以顯示 當成功完成一處於等待的請求後,一特定的通道是否到達 其終端計數; 一預測位元計數欄位’用以儲存當成功完成該處於等待的 #請求後,所需傳送的一預測剩餘位元之值;以及 兩個預測記憶體位址攔位,用以儲存當成功完成該處 於等待的請求後,一預測來源記憶體位址與一預測目的記 憶體位址之值。 31 1326828 12.如申請專利範圍第11項的直接記憶體存取控制器, 其中該請求佇列更包含一預測線路計數欄位,用以儲存一 預測線路區段計數值。 ; 13.如申請專利範圍第1項的直接記憶體存取控制器,係 * 為一固定偏移分散或聚集直接記憶體存取控制器。 φ 14. 一種於一直接記憶體存取控制器中傳輸複數個處於等 待之請求的方法,包含: 儲存至少一個項目,每個項目至少包含一預測參數值 與一直接記憶體存取通道號碼; 尾部搜尋一指定的直接記憶體存取通道是否有任何請 求在一請求佇列處於等待,若在該尾部搜尋期間尋得任何 有效的處於等待的内部通道請求,則停止該尾部搜尋動 φ 作,並且輸出對應的該項目之該預測參數值,若尾部搜尋 期間找不到有效的該處於等待的内部通道請求,則輸出該 - 指定的直接記憶體存取通道的一組實際通道參數值; - 根據該尾部搜尋的結果,產生至少一組與一個被列入 排程的新請求相關的預測通道參數;以及 根據該尾部搜尋的結果與該組新的預測通道參數,傳 送該新請求至該請求佇列。 32 1326828 15. 如申請專利範圍第14項的方法,其中該請求為一軟體 請求。 16. 如申請專利範圍第14項的方法,更包含接收與現行的 - 複數個直接記憶體存取通道相關的複數個軟體請求與複 * 數個硬體請求,並對該等軟體請求與該等硬體請求進行仲 裁。 17. 如申請專利範圍第14項的方法,更包含: 儲存複數個現行的直接記憶體存取通道,並且輸出一 組實際通道參數,以及 仲裁與所有該等現行的直接記憶體存取通道相關的複 數個有效的直接記憶體存取傳輸請求,並選擇欲服務的下 一個直接記憶體存取通道號碼。 18. 如申請專利範圍第14項的方法,其中該預測通道參數 . 包含: • 一預測終端計數攔位,用以儲存一預測結果,以顯示 當成功完成該處於等待之請求後,該指定的直接記憶體存 取通道是否到達其終端計數; 33 Γ326828 一預測位元計數攔位,用以儲存當成功完成該處於等 待的請求後,所需傳送的預測剩餘位元之值; 兩個預測記憶體位址欄位,用以儲存當成功完成該處 於等待之請求後,一預測來源記憶體位址與一預測目的記 憶體位址之值;以及 一預測線路計數欄位,用以儲存一預測線路區段計數 值。 19.如申請專利範圍第14項的方法,更包含接收該預測 通道參數、該直接記憶體存取通道號碼與來自該請求佇列 中對應該等項目的複數個有效位元,同時也接收該指定的 直接記憶體通道的該實際通道參數。 20.如申請專利範圍第19項的方法,更包含根據最新的該 0預測通道參數,產生複數個輸入參數。 34 1326828 月1曰修(更)正替換頁 800
    ft 數釔憶憶 計計記纪 路元部池 線位外本 *测测« 預預預預 llu TJ 1* tx —4 —4 rLrLPL η 列列对w 分^'^址^址 求求求位求位 請請請請 嬗 _n tt 數款憶* 計t纪記 路元部地 線位外本 Λ测" 預預預a ·* « u TJ u J ο ο ο ο rlrLrL rL www列 4:4:仔址^址 求求求位求位 請請請請 數數4-* ^^Κ'Λ, 路元部地 線位外本 **'测和 預預《預 «LILiLft. <·.參參麥 道道道址道址 邋暹逯位遑位 l»l»»tt»a 實實實實 婧求佇《[2]·預《線路計數 锖求佇《[2].«测位元計數—— 請求佇«[2]·««外部纪德«位址 請求佇对[2].預测本《記憶It位址
    第六圖. 39 1326828
    900
    第七圖 40
TW095147319A 2005-12-19 2006-12-15 A dma controller with multiple intra-channel software request support TWI326828B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75171805P 2005-12-19 2005-12-19
US11/467,462 US20070162642A1 (en) 2005-12-19 2006-08-25 A dma controller with multiple intra-channel software request support

Publications (2)

Publication Number Publication Date
TW200739357A TW200739357A (en) 2007-10-16
TWI326828B true TWI326828B (en) 2010-07-01

Family

ID=38165699

Family Applications (2)

Application Number Title Priority Date Filing Date
TW095147319A TWI326828B (en) 2005-12-19 2006-12-15 A dma controller with multiple intra-channel software request support
TW095147638A TW200731081A (en) 2005-12-19 2006-12-19 A DMA controller with self-detection for global clock-gating control

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW095147638A TW200731081A (en) 2005-12-19 2006-12-19 A DMA controller with self-detection for global clock-gating control

Country Status (3)

Country Link
US (3) US20070162643A1 (zh)
CN (3) CN100504828C (zh)
TW (2) TWI326828B (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100369024C (zh) * 2005-01-17 2008-02-13 北京中星微电子有限公司 直接存储访问控制装置和图像处理系统以及传输方法
US7904614B1 (en) * 2006-06-27 2011-03-08 Marvell International Ltd. Direct memory access controller with multiple transaction functionality
US7707324B1 (en) 2006-06-28 2010-04-27 Marvell International Ltd. DMA controller executing multiple transactions at non-contiguous system locations
US9141572B2 (en) * 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
US8117475B2 (en) * 2006-12-15 2012-02-14 Microchip Technology Incorporated Direct memory access controller
US8516163B2 (en) * 2007-02-27 2013-08-20 Integrated Device Technology, Inc. Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface
US8094677B2 (en) * 2007-02-27 2012-01-10 Integrated Device Technology, Inc. Multi-bus structure for optimizing system performance of a serial buffer
US7617346B2 (en) * 2007-02-27 2009-11-10 Integrated Device Technology, Inc. Rapid input/output doorbell coalescing to minimize CPU utilization and reduce system interrupt latency
US20080209089A1 (en) * 2007-02-27 2008-08-28 Integrated Device Technology, Inc. Packet-Based Parallel Interface Protocol For A Serial Buffer Having A Parallel Processor Port
US7870313B2 (en) * 2007-02-27 2011-01-11 Integrated Device Technology, Inc. Method and structure to support system resource access of a serial device implementating a lite-weight protocol
US7761656B2 (en) * 2007-08-22 2010-07-20 Advanced Micro Devices, Inc. Detection of speculative precharge
US7861014B2 (en) * 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US7865674B2 (en) * 2007-08-31 2011-01-04 International Business Machines Corporation System for enhancing the memory bandwidth available through a memory module
US8082482B2 (en) * 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US7840748B2 (en) * 2007-08-31 2010-11-23 International Business Machines Corporation Buffered memory module with multiple memory device data interface ports supporting double the memory capacity
US7899983B2 (en) 2007-08-31 2011-03-01 International Business Machines Corporation Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module
US8086936B2 (en) * 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US7818497B2 (en) * 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US7584308B2 (en) * 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US7558887B2 (en) * 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US8019919B2 (en) * 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US8495301B1 (en) 2007-11-23 2013-07-23 Pmc-Sierra Us, Inc. System and method for scatter gather cache processing
US8176252B1 (en) 2007-11-23 2012-05-08 Pmc-Sierra Us, Inc. DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables
CN101470652B (zh) * 2007-12-27 2010-12-15 英业达股份有限公司 未插入存储器的示警方法及系统
US7930470B2 (en) * 2008-01-24 2011-04-19 International Business Machines Corporation System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US7930469B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to provide memory system power reduction without reducing overall memory system performance
US7925826B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US7925825B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to support a full asynchronous interface within a memory hub device
US7925824B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US7770077B2 (en) * 2008-01-24 2010-08-03 International Business Machines Corporation Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem
US8055816B2 (en) * 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
KR101553651B1 (ko) * 2009-10-13 2015-09-17 삼성전자 주식회사 다중 뱅크 메모리 액세스 장치
US8250253B2 (en) * 2010-06-23 2012-08-21 Intel Corporation Method, apparatus and system for reduced channel starvation in a DMA engine
WO2012120690A1 (en) 2011-03-08 2012-09-13 Renesas Electronics Corporation Data transferring method, dma controller and image processing device
JP2012243176A (ja) * 2011-05-23 2012-12-10 Renesas Electronics Corp 半導体装置及び制御方法
CN102308293B (zh) * 2011-07-11 2014-04-30 华为技术有限公司 获取芯片内部状态数据的方法和装置
KR101842245B1 (ko) 2011-07-25 2018-03-26 삼성전자주식회사 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
US10049061B2 (en) * 2012-11-12 2018-08-14 International Business Machines Corporation Active memory device gather, scatter, and filter
US9330027B2 (en) 2013-03-15 2016-05-03 Intel Corporation Register access white listing
US20150234841A1 (en) * 2014-02-20 2015-08-20 Futurewei Technologies, Inc. System and Method for an Efficient Database Storage Model Based on Sparse Files
US10339079B2 (en) 2014-06-02 2019-07-02 Western Digital Technologies, Inc. System and method of interleaving data retrieved from first and second buffers
KR102280734B1 (ko) 2014-12-09 2021-07-21 삼성전자주식회사 시스템 온 칩과 이를 포함하는 모바일 전자 기기
JP6467935B2 (ja) * 2015-01-20 2019-02-13 富士通株式会社 Dma制御装置、マイクロコントローラおよびdma制御方法
CN104820574B (zh) * 2015-04-23 2018-05-18 华为技术有限公司 一种访问间接寻址寄存器的方法及电子设备
CN106294233B (zh) * 2015-06-29 2019-05-03 华为技术有限公司 一种直接内存访问的传输控制方法及装置
US10776118B2 (en) * 2016-09-09 2020-09-15 International Business Machines Corporation Index based memory access using single instruction multiple data unit
US10936046B2 (en) * 2018-06-11 2021-03-02 Silicon Motion, Inc. Method for performing power saving control in a memory device, associated memory device and memory controller thereof, and associated electronic device
TWI660587B (zh) * 2018-07-30 2019-05-21 瑞昱半導體股份有限公司 具有分時及分頻啟動機制的時脈產生系統及方法
US10761999B1 (en) * 2019-05-30 2020-09-01 Western Digital Technologies, Inc. Storage device with predictor engine of host turnaround time
US11003606B2 (en) 2019-06-21 2021-05-11 Microchip Technology Incorporated DMA-scatter and gather operations for non-contiguous memory
US11567767B2 (en) * 2020-07-30 2023-01-31 Marvell Asia Pte, Ltd. Method and apparatus for front end gather/scatter memory coalescing
JP7467325B2 (ja) * 2020-12-17 2024-04-15 株式会社東芝 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
US11526650B1 (en) * 2021-03-31 2022-12-13 Cadence Design Systems, Inc. Switching power aware driver resizing by considering net activity in buffering algorithm
US20230102680A1 (en) * 2021-09-30 2023-03-30 Advanced Micro Devices, Inc. Stacked command queue
TWI798976B (zh) * 2021-12-02 2023-04-11 大陸商星宸科技股份有限公司 直接記憶體存取電路、其操作方法,以及記憶體存取指令的產生方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016876A (en) * 1988-10-14 1991-05-21 Williams Electronics Games, Inc. Video display co-processor for use in a video game
US5133060A (en) * 1989-06-05 1992-07-21 Compuadd Corporation Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter
JP2987206B2 (ja) * 1991-12-13 1999-12-06 アヴィッド・テクノロジー・インコーポレーテッド バッファ及びフレーム索引作成
US5619729A (en) * 1993-12-02 1997-04-08 Intel Corporation Power management of DMA slaves with DMA traps
US5708849A (en) * 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
US5596376A (en) * 1995-02-16 1997-01-21 C-Cube Microsystems, Inc. Structure and method for a multistandard video encoder including an addressing scheme supporting two banks of memory
US5805923A (en) * 1995-05-26 1998-09-08 Sony Corporation Configurable power management system having a clock stabilization filter that can be enabled or bypassed depending upon whether a crystal or can oscillator is used
US5710561A (en) * 1996-01-02 1998-01-20 Peerless Systems Corporation Method and apparatus for double run-length encoding of binary data
US6298370B1 (en) * 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
US5943504A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation System for transferring pixel data from a digitizer to a host memory using scatter/gather DMA
US5910930A (en) * 1997-06-03 1999-06-08 International Business Machines Corporation Dynamic control of power management circuitry
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
DE69924475T2 (de) * 1999-06-09 2006-02-16 Texas Instruments Inc., Dallas Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge
EP1059588A1 (en) * 1999-06-09 2000-12-13 Texas Instruments Incorporated Multi-channel dma with request scheduling
US7254687B1 (en) * 2002-12-16 2007-08-07 Cisco Technology, Inc. Memory controller that tracks queue operations to detect race conditions

Also Published As

Publication number Publication date
CN100504828C (zh) 2009-06-24
US20070162643A1 (en) 2007-07-12
CN1991810A (zh) 2007-07-04
CN100495374C (zh) 2009-06-03
US20070162648A1 (en) 2007-07-12
CN1983121A (zh) 2007-06-20
TW200739357A (en) 2007-10-16
TW200731081A (en) 2007-08-16
US20070162642A1 (en) 2007-07-12
CN1991809A (zh) 2007-07-04

Similar Documents

Publication Publication Date Title
TWI326828B (en) A dma controller with multiple intra-channel software request support
TWI416322B (zh) 最佳化以目錄為基礎的一致性協定中之同時存取
JP6796430B2 (ja) トランザクション基盤のメモリシステム並びにマスターコントローラ及びスレーブコントローラの動作方法
JP4472186B2 (ja) 外部デバイスへのアクセスを優先順序付けるための方法および装置
JP4696024B2 (ja) データ処理装置用相互接続論理
US5586299A (en) Systems and methods for accessing multi-port memories
TW200535624A (en) A multiple address two channel bus structure
JP6058122B2 (ja) バスマスタ、バスシステム及びバス制御方法
JPH10504665A (ja) バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置
TW201234188A (en) Memory access device for memory sharing among multiple processors and access method for the same
US20050253858A1 (en) Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams
GB2376315A (en) Data bus system including posted reads and writes
US20080082621A1 (en) Slave network interface circuit for improving parallelism of on-chip network and system thereof
AU2003234641A1 (en) Inter-chip processor control plane
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
US9804959B2 (en) In-flight packet processing
JP2004318628A (ja) 演算処理装置
US8510493B2 (en) Circuit to efficiently handle data movement within a cache controller or on-chip memory peripheral
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート
JP2001067298A (ja) ハブ及びポート・アーキテクチャーを有する転送制御装置における低速ポートについての障害を防止するための書込み要求キューの使用
US20060031619A1 (en) Asynchronous system bus adapter for a computer system having a hierarchical bus structure
JP2005235216A (ja) ダイレクト・メモリ・アクセス制御
JP3458037B2 (ja) スプリットバス制御方式
JP4214521B2 (ja) 情報処理システム及びマルチプロセッサ・システム
EP1459191B1 (en) Communication bus system