TWI428755B - 用於配置直接記憶體存取(dma)頻道識別符之方法、電腦可讀取儲存媒體、及資料處理系統 - Google Patents

用於配置直接記憶體存取(dma)頻道識別符之方法、電腦可讀取儲存媒體、及資料處理系統 Download PDF

Info

Publication number
TWI428755B
TWI428755B TW097143348A TW97143348A TWI428755B TW I428755 B TWI428755 B TW I428755B TW 097143348 A TW097143348 A TW 097143348A TW 97143348 A TW97143348 A TW 97143348A TW I428755 B TWI428755 B TW I428755B
Authority
TW
Taiwan
Prior art keywords
dma
dma transfer
channel identifier
transfer
channel
Prior art date
Application number
TW097143348A
Other languages
English (en)
Other versions
TW200925871A (en
Inventor
Joaquin Madruga
Dean J Burdick
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200925871A publication Critical patent/TW200925871A/zh
Application granted granted Critical
Publication of TWI428755B publication Critical patent/TWI428755B/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

Landscapes

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

Description

用於配置直接記憶體存取(DMA)頻道識別符之方法、電腦可讀取儲存媒體、及資料處理系統
本發明大體而言係針對資料處理系統之領域。在一態樣中,本發明係關於資料處理系統內之直接記憶體存取管理。
資料處理系統通常包括一或多個中央處理單元(CPU)、一或多個快取記憶體層級、一或多個外部記憶體設備及輸入/輸出(I/O)機構,其皆經由匯流排與橋接器之互連而互連。除了此等硬體組件之外,資料處理系統亦包括一或多個軟體(或韌體)組件,諸如,作業系統(OS)及與OS互動之一或多個程式。為了促進記憶體存取操作,使用直接記憶體存取(DMA)操作以在不需要直接處理器督察及控制的情況下提供資料傳送操作(例如,自外部記憶體至區域快取記憶體)。通常,向允許在不同邏輯頻道上進行多個DMA請求之處理器提供硬體DMA控制器。可獨立地使用此等頻道以起始多個同時非同步DMA資料傳送。典型之軟體程式設計模型將由起始及等待基於資料至頻道之某種靜態映射的特定邏輯頻道上之DMA資料請求組成。此導致對可潛在地映射至同一邏輯頻道之無關資料之操作,從而導致假相依性,其又可導致效能降級。
因此,需要一種用於控制多個DMA傳送請求以有效且快速地配置DMA頻道之系統及方法。亦需要一種用於動態地配置用於DMA傳送之邏輯頻道以便減少假相依性之方法及系統。另外,需要一種用以快速且有效地回收經解除配置DMA頻道之系統及方法。對於熟習此項技術者而言,在參考以下圖式及實施方式而審閱本申請案之剩餘部分之後,習知DMA配置解決方法之其他限制及缺點將變得顯而易見。
本發明提供一種用於藉由將頻道ID重新用於在特定時間段內所進行之配置而配置用於DMA傳送之邏輯頻道之動態配置系統及方法。關於此方法,可在軟體控制下對用於DMA傳送之邏輯頻道快速地配置、解除配置及回收,藉此減少針對無關資料傳送之假相依性且改良效能。當起始非同步DMA傳送時,基於輸入值(例如,有效位址)而自動地指定及記錄可用邏輯頻道ID,且將可用邏輯頻道ID重新用於在預定時間框內所接收之任何額外DMA請求。由於此等頻道DMA請求應大約同時完成,故藉由使用用以起始未處理請求之相同輸入值,可接著使用此輸入值以稍後服侍未處理請求。關於此方法,可在無任何假共用的情況下利用所有可用邏輯頻道,且可在有限數目之頻道ID上有效地配置多個DMA傳送請求。在一選定實施例中,在軟體控制下藉由自頻道ID之頻道位元映像清單識別可用邏輯頻道ID而向在給定時間增量內發生的任何DMA傳送請求動態地指定邏輯頻道ID。一旦識別可用頻道ID,便設定對應於經識別頻道ID之位元映像位置,且更新頻道映射以使DMA傳送請求與經識別頻道ID相關聯。
根據各種實施例,可在軟體控制下使用本文中所描述之方法及/或裝置來動態地配置或指定DMA頻道,該等方法及/或裝置可利用包含電腦可執行指令之電腦程式碼而實施於資料處理系統中。以所實施之無論何種形式,在資料處理系統之操作期間在預定時間增量中接收複數個DMA傳送請求。在回應中,藉由自複數個候選DMA頻道識別符選擇為可用的第一DMA頻道識別符來配置第一DMA頻道識別符以用於執行複數個DMA傳送請求。可藉由使DMA頻道識別符計數器在複數個時間增量內依序地遞增且配置DMA頻道識別符計數器在第一時間增量中之當前值以用於至少執行在第一時間增量內所請求之第一DMA傳送及第二DMA傳送來執行配置。一旦使DMA頻道識別符計數器在複數個時間增量內遞增,便可重設DMA頻道識別符計數器。結果,可藉由配置第一DMA頻道識別符以用於執行第一DMA傳送及在接收針對第一DMA傳送之請求的預定時間段內所接收之第二DMA傳送而按時間群組複數個DMA傳送請求。為了幫助服侍DMA傳送,將DMA傳送請求映射至第一DMA頻道識別符,此時,使用第一DMA頻道識別符來執行DMA傳送請求。可藉由維持用於使每一經配置DMA頻道識別符與同DMA傳送請求相關聯之記憶體位址(諸如,外部記憶體中與DMA傳送請求相關聯之應用程式界定之標記或有效位址)相關聯之表來實施映射。一旦完成經請求DMA傳送,便對第一DMA頻道識別符解除配置。在選定實施例中,藉由搜尋頻道位元映像以選擇及設定可用DMA頻道識別符來實施第一DMA頻道識別符之配置。此可藉由以下操作來進行:識別儲存有預定值(例如,"零")之對應於頻道位元映像中之第一DMA頻道識別符的第一位元位置,且接著將第二預定值(例如,"一")儲存於第一位元位置中,藉此將第一DMA頻道識別符配置至DMA傳送請求。在此等實施例中,藉由在完成經請求DMA傳送後便將第一預定值(例如,"零")儲存於第一位元位置中,可在完成經請求DMA傳送後便對第一DMA頻道識別符解除配置。
當結合以下圖式來考慮以下實施方式時,可理解本發明之選定實施例且可獲得本發明之眾多目標、特徵及優點。
本發明揭示一種用於將邏輯頻道識別符動態地配置至按時間群組之多個DMA傳送請求之方法、系統及程式。在選定實施例中,在軟體控制下使用一或多個多位元字作為頻道位元映像來配置邏輯頻道識別符,其中每一位元表示一DMA頻道識別符之可用性,其中經設定之位元表示頻道係在使用中,且經重設之位元表示頻道可用於配置。當在預定時間增量內起始複數個DMA傳送時,選擇第一DMA頻道識別符且將其指定至第一DMA傳送請求,且向在預定時間增量內之任何後續DMA傳送請求指定相同頻道識別符。在選定實施例中,藉由找到未經設定之第一位元位置且接著設定第一位元位置來選擇可用DMA頻道識別符。接著將由此位元位置所指定之DMA頻道識別符用於複數個資料傳送。接著在與DMA傳送請求相關聯之輸入值與DMA頻道識別符之間創建映射。當存在對等待完成已配置至特定邏輯頻道之資料傳送中之任一者之請求時,將相同輸入值用於映射以服侍邏輯頻道。用以創建映射之輸入值可為(例如)有效位址或某一應用程式產生之識別符。舉例而言,在與DMA請求相關聯之輸入值為標記ID的情況下,可使用頻道位元映像以將用於群組時間DMA請求之標記ID中之每一者虛擬化為不同的經動態指定之未使用標記ID。在其他實施例中,基於有效位址(effect address)而將標記ID動態地指定至由軟體管理之快取記憶體所起始之DMA操作。
現將參看附圖來詳細地描述本發明之各種說明性實施例。應理解,本文中所描述之流程圖說明及/或方塊圖可完全或部分地由專用硬體電路、韌體及/或電腦程式指令實施,該等指令提供至通用電腦、專用電腦或其他可程式化資料處理裝置之處理器以產生一機器,使得該等指令(其經由電腦或其他可程式化資料處理裝置之處理器而執行)實施流程圖及/或方塊圖區塊中所規定的功能/動作。另外,儘管在以下描述中陳述各種細節,但應瞭解,可在無此等特定細節的情況下實踐本發明,且可對本文中所描述之本發明進行眾多實施特定決策以達成設備設計者之特定目標(諸如,與技術或設計相關約束之順應性),該等目標將隨不同實施而變化。儘管此開發努力可能為複雜且耗時的,但其對於具有本揭示案之益處的一般熟習此項技術者而言仍然為常規任務。舉例而言,以方塊圖形式來展示而非詳細地展示選定態樣,以便避免限制或混淆本發明。另外,在對電腦記憶體內之資料的演算法或操作方面呈現本文中所提供的實施方式之一些部分。熟習此項技術者使用此等描述及表示來描述其工作之實質且將該實質傳達至其他熟習此項技術者。現將參看圖式在下文中詳細地描述本發明之各種說明性實施例。
參看圖1,圖解描繪可實施本發明之選定實施例之資料處理系統120的電腦架構。所描繪之資料處理系統120含有一或多個處理單元(例如,1、10、20、…)、外部或主系統記憶體95及系統或互連匯流排90,系統或互連匯流排90耦接包括處理單元及系統記憶體之各種系統組件。在一實例組態中,資料處理系統120可實施為具有多個獨立向量處理器之高效能系統,諸如,IBM之單元寬頻帶引擎(Cell Broadband Engine,CBE)處理器。如所描繪,CBE處理器120使用整合於單晶片多處理器100上之九個核心,包括八個附接式處理單元(APU)10、20、30、40、50、60、70、80及一個功率核心1,功率核心1充當用以設立及維持用於APU之環境的控制器。
有時被稱為功率處理器元件(power processor element,PPE)之功率核心1可利用傳統處理器核心來實施,諸如,用於使用32位元或64位元作業系統及應用程式來處置通用計算雜務之64位元PowerPC架構核心。如所描繪,功率核心1包括一或多個處理器單元2(諸如,ALU及/或FPU)、第一層級(L1)快取記憶體3、第二層級(L2)快取記憶體4,及用於支援同時多線緒(simultaneous multithreading,SMT)之其他邏輯及控制電路。在一實例實施例中,功率核心1含有64位元之雙線緒PowerPC架構RISC核心2且支援PowerPC虛擬記憶體子系統。另外,可在功率核心1上提供32K L1指令及資料快取記憶體3及512K L2統一(指令及資料)快取記憶體4,功率核心1主要意欲用於控制處理、執行作業系統、管理系統資源及管理APU線緒。
有時被稱為協同處理器元件(synergistic processor element,SPE)之APU核心中之每一者可實施為獨立之高效能處理器元件,每一者具有執行其自身的個別應用程式及線緒之極高速記憶體。在選定實施例中,每一APU(例如,10)含有處理器單元15(例如,RISC核心)、用於指令及資料之軟體控制之區域儲存器16,及128位元之128項目之統一暫存器檔案(未圖示)。每一APU使用DMA控制器模組13而結合儲存於區域儲存器16中之頻道配置指令19來管理至及自區域儲存器之DMA傳送。另外,每一APU能夠充分存取相干共用記憶體95,且使用記憶體映射之1/O空間之有效位址來執行至及自記憶體95之DMA傳送。此係參考實例第一APU 10而在圖1中得以描繪,第一APU 10包括第一處理器單元15,第一處理器單元15能夠經由互連匯流排90而充分存取共用相干記憶體95。
在一實例實施例之操作中,每一APU之處理器單元(例如,15)可僅自其自身的區域儲存器記憶體(例如,16)提取指令,且由APU 10所執行之載入及儲存指令可使用區域儲存器位址(不使用主記憶體有效位址)而僅存取區域儲存器16。為此目的,每一APU核心(例如,10)控制DMA傳送且藉由實施於APU記憶體流量控制器(MFC)(例如,11)中且由MFC所管理之頻道而與資料處理系統120之剩餘部分通信。頻道為單向介面,其用於利用其他系統組件來發送及接收大小可變(例如,多達32位元)之訊息且用於將命令(諸如,直接記憶體存取傳送命令)發送至APU之關聯記憶體流量控制器(MFC)。每一APU具有其自身的頻道集合。藉由元件互連匯流排(EIB)90,MFC 11充當至外部主記憶體95及至其他處理器元件及系統設備的APU之介面。MFC 11之主要作用為藉由DMA控制器13而在區域儲存記器憶體與外部主記憶體之間建立介面,DMA控制器13使指令及資料在區域儲存器位址與主記憶體95中之有效位址之間移動。
每一APU使用頻道介面(未圖示)來存取其對應MFC 11狀態資訊。功率核心1及系統120中之其他設備(包括其他APU核心)亦可經由MFC 11中之記憶體映射I/O之(MMIO)暫存器及佇列12而存取MFC 11狀態,暫存器及佇列12可為主儲存器位址空間中之軟體所見。關於此組態,使用MFC 11中與區域儲存器16相關聯的APU之DMA控制器13來執行APU之區域儲存器(例如,16)與主記憶體95之間的資料傳送。可利用允許軟體檢查或服侍DMA命令之完成的標記ID來標記每一DMA命令。如下文中更充分所描述,在關聯APU上執行之頻道配置軟體19使用頻道位元映像17及映射結構18來動態地指定邏輯DMA頻道識別符。
關於資料處理系統120之多核心實施例,藉由添加更多APU核心來增加處理能力。即使如此,此等多處理器實施例之充分處理能力亦不容易被實現,因為如在處理器循環中所量測之記憶體潛時已歸因於處理器設計之改良而顯著地增長。為了改良處理速度,每一APU核心(例如,10)具備小的(例如,256K)高效能區域記憶體16,同時亦提供對較大的(例如,幾十億位元組)動態隨機存取記憶體(DRAM)95之較低速存取。在選定實施例中,每一APU(例如,10)經最佳化以用於執行計算密集型SIMD應用程式,且視功率核心1而執行作業系統及(在許多狀況下)針對應用程式之頂層級線緒控制。又,功率核心1使用APU來提供大部分應用程式效能。
系統記憶體95可利用呈非揮發性記憶體之形式的電腦儲存器媒體及/或呈儲存資料及指令之動態隨機存取記憶體(DRAM)模組之集合之形式的揮發性記憶體來實施,資料及指令可立即由處理單元1、10、20等等存取及1或不久由處理單元1、10、20等等操作。系統記憶體亦可具有用於控制至及自系統記憶體95之存取的關聯記憶體控制器(未圖示)。
所描繪之互連匯流排90可實施為記憶體相干元件互連匯流排(EIB),其使用複數個多位元組資料環而將APU連接在一起且連接功率核心1上之L2快取記憶體4。應瞭解,可使用任何所要匯流排架構。雖然未圖示,但通信配接器可用以提供對通信鏈路之存取,其為連接至各種使用者輸入/輸出設備(諸如,鍵盤、滑鼠、觸控螢幕、尖筆(stylus)、麥克風、儲存器、印表機、顯示器,等等)之使用者介面配接器。
對於應用程式設計師而言,資料處理系統120看似為9路相干多處理器,其中功率核心1經設計以有效地處置控制密集型任務且在該等任務之間切換,而APU核心10、20等等經設計以有效地處置計算密集型任務(雖然以較低切換速率)。部分地基於核心之不同特殊化,功率核心及APU核心可使用不同記憶體存取技術。為了支援功率核心之控制功能性,功率核心1可藉由使用有效位址空間以執行載入及儲存指令以使資料在主記憶體95與私用暫存器檔案(例如,在功率核心1之處理器單元2中)之間移動來存取主記憶體95,可快取該檔案之內容(例如,在L1快取記憶體3或L2快取記憶體4中)。對比而言,APU核心(例如,10、50)可利用直接記憶體存取(DMA)命令來存取主記憶體95,DMA命令使資料及指令在主記憶體95與區域記憶體儲存器或區域儲存器(例如,16、56)之間移動。因為APU核心之指令提取以及載入及儲存指令僅存取其區域儲存器而非共用主儲存器,且區域儲存器不具有關聯快取記憶體。結果為三層級儲存器組織(暫存器檔案、區域儲存器、主記憶體),其中非同步DMA傳送在區域儲存器與主記憶體之間進行,其明確地使計算與反饋計算且將計算結果儲存於主記憶體中的資料及指令之傳送並行化。
即使在每一APU核心(例如,10)處具有區域儲存器快取記憶體(例如,16),APU核心之效能仍受記憶體潛時限制。舉例而言,當習知架構上之依序程式執行在快取記憶體中丟失之載入指令時,程式執行停止持續幾百個循環。與此懲罰相比,針對APU核心而設立DMA傳送所花費之少許循環為好得多的折衷,尤其係考慮到八個APU核心上之DMA控制器中之每一者可同時具有多達16個在飛行中之DMA傳送的事實。雖然硬體DMA控制器可用以允許不同邏輯頻道上之多個DMA傳送請求,但此專用硬體具有許多缺陷,包括使處理減慢、增加功率消耗及減少可置放於單晶粒上的APU核心之數目。關於軟體DMA控制方案,只要程式設計師藉由使APU核心藉由執行其他程式碼來執行工作且接著使程式設計師服侍傳送完成來起始DMA傳送,記憶體潛時即可由APU核心隱藏。以此方式,藉由進行工作以代替等待而隱藏記憶體潛時。
因此,代替使用習知記憶體管理方案,每一APU中之區域儲存記器憶體區塊(例如,區域儲存器16)可實施為小的(例如,256K)軟體管理之快取記憶體,其儲存在DMA控制器(例如,13)之控制下直接自主記憶體95所拉之資料,DMA控制器將DMA頻道指定為可以軟體進行排程之資源。藉由向每一APU(例如,10)提供DMA控制器(例如,13),程式設計師能夠藉由使用DMA控制器以使用顯式DMA命令而將記憶體直接拉至區域儲存器或快取記憶體16中來發出針對在主記憶體95外之記憶體之請求。關於可使同作DMA請求未決的固定數目之頻道,程式設計師使用顯式DMA命令來請求開始記憶體傳送,且可接著仍對其他部分進行工作,同時彼記憶體被帶入區域儲存器快取記憶體16中。為此目的,程式設計師發出服侍頻道之命令以確保傳送完成。
由於每一APU核心(例如,10)具有其自身的DMA控制器(例如,13),故每一APU核心將管理其自身的頻道指定且具有其自身的頻道配置器。可提供配置器作為程式庫或API,其將由程式設計師用以發出DMA請求。程式庫將維持其自身的儲存於區域儲存器記憶體16中之內部資料結構(諸如,頻道位元映像)。另外,配置器將維持用於群組時間DMA傳送請求之有效位址與對應經配置頻道識別符之間的映射。結果,程式設計師僅需要在提交DMA傳送請求時將有效位址及目的地位址傳遞至程式庫或API 13,且不要求程式設計師監督或管理DMA操作之細節。有效地,將DMA頻道指定責任自程式設計師傳送至每一APU核心中之程式庫或API。
在一實例實施中,每一APU核心藉由支援經建構及儲存於APU核心之區域儲存器記憶體中的DMA傳送清單(諸如,分散-集中清單)來執行DMA傳送。根據本發明之選定實施例,藉由使用頻道位元映像以選擇可用邏輯頻道來建構清單,接著使用頻道映射資料結構而將可用邏輯頻道映射至在預定時間增量內發生之複數個DMA傳送請求。關於此清單,可藉由為資料之來源或接收資料之第一APU核心10或藉由功率核心1或藉由另一APU核心(例如,50)來設立及控制DMA傳送。清單亦允許APU核心之DMA控制器在APU核心對先前傳送之資料進行操作的同時非同步地處理清單。
在一實例實施例中,用於動態地指定DAM邏輯頻道之程式指令或程式碼可在具有或不具有功率核心對應物之APU核心上執行,或其可為可含有多個APU程式或一個功率核心程式之較大程式之一部分。就每一APU核心使用其自身的DMA控制器來管理DMA頻道指定及配置而言,此DMA控制器可利用有形地體現於電腦可讀媒體(例如,區域儲存器設備16)或任何其他固定或抽取式資料儲存器設備中之軟體或其他程式碼來實施。另外,DMA控制器(例如,13)可包含在由處理器單元15讀取及執行時使APU核心10執行為實施及/或使用本發明所必要之步驟的指令。如此,如本文中可使用之術語"製品"、"程式儲存器設備"及"電腦程式產品"意欲包含自任何電腦可讀設備或媒體可存取及/或可操作之電腦程式。
八個APU核心10、20、30、40、50、60、70、80中之每一者可實施為單指令/多資料(SIMD)向量處理器(其可被總稱為向量處理器),向量處理器使用獨立指令流。在此組態中,每一向量處理器包括能夠並行地處理多個資料項之指令。舉例而言,此向量處理架構可並行地倍增128位元字中之對應32位元浮點量。如圖1所描繪,向量處理器10-80中之每一者操作性地耦接至其自身的高速區域儲存器記憶體或快取記憶體(例如,16),記憶體可被總稱為區域儲存器快取記憶體。又,每一向量處理器10-80之區域儲存器快取記憶體操作性地耦接至較大主記憶體95。然而,重要的係注意,本發明之實施例不限於任何特定數目之向量處理器。另外,本發明之實施例不限於任何特定快取記憶體層級且區域儲存器快取記憶體可常駐於向量處理器中或可為單獨組件。
在本文中所描述之向量處理器實施例中,只要自任何記憶體設備讀取資料或將資料寫入至任何記憶體設備,即發生記憶體存取。在每一向量處理器僅能夠直接存取其自身的區域儲存器記憶體(例如,256K RAM)之實施例中,向量處理器使用直接記憶體存取(DMA)技術以在主記憶體95與向量處理器之各別區域儲存器記憶體之間進行複製。藉由使用任何所要快取記憶體管理技術(諸如,分別具有主記憶體95及區域儲存器快取記憶體(例如,16)之虛擬標記及實體位址之快取記憶體元資料陣列)來促進區域儲存器快取記憶體(例如,16)與主記憶體95之間的資料之管理。
當向量處理器起始DMA傳送時,DMA控制器將每一傳送指定至由邏輯頻道ID所識別之邏輯頻道。在IBM之單元處理器中,邏輯頻道由標記表示,且在此意義上,術語"標記"與"頻道"可被互換地使用。藉由使用如本文中所描述之頻道映射,每一標記可映射至一頻道ID。若不限制DMA傳送頻道之數目,則同作DMA傳送請求將永不需要共用邏輯頻道。然而,在存在有限數目之頻道的情況下,無關DMA請求偶爾可能被迫共用頻道。在共用DMA頻道的情況下,程式可能必須等待傳送其不關心的資料,因為另一請求在同一DMA頻道上進行。
可藉由在藉由將單一頻道ID配置至在預定時間段或增加內所起始之多個DMA傳送而進行DMA請求時智慧地配置頻道來減少共用DMA頻道情況。在一實例實施例中,位元欄位方法(bitfield method)可用以藉由維持頻道位元映像來配置頻道,其中頻道位元映像中之每一位元位置表示一邏輯頻道,且位元之值指示邏輯頻道是可用的(例如,將位元設定為"零"值)還是經配置(例如,將位元設定為"一"值)。圖2中描繪此頻道位元映像之一實例,圖2說明實例頻道位元映像200,其用以將邏輯頻道動態地配置至DMA傳送請求。頻道位元映像可形成為一或多個n位元字(例如,32位元字),其中每一位元表示一DMA頻道識別符之可用性。因此,第一邏輯頻道1由第一位元位置201表示,第二頻道ID 2由第二位元位置202表示,第三頻道ID 3由第三位元位置3表示,第四頻道ID 4由第四位元位置204表示,等等,直至第n頻道ID由最後位元位置205表示。如圖2所示,若設定用於給定頻道ID之位元(例如,針對第一頻道ID 1而儲存"一"),則此表示頻道係在使用中。或者,若重設用於給定頻道ID之位元(例如,針對第四頻道ID 4而儲存"零"),則此表示該頻道可用於配置。位元欄位方法使用頻道位元映像以藉由找到頻道位元映像中未經設定之第一位元位置且接著設定第一位元位置而在無論何時起始一或多個DMA傳送時動態地配置DMA頻道,藉此針對DMA傳送而選擇可用DMA頻道識別符。接著將由此位元位置所指定之DMA頻道識別符用於DMA傳送,且接著在與經請求DMA傳送相關聯之輸入值與DMA頻道識別符之間創建映射。
圖3中描繪此映射之一實例,圖3說明實例頻道映射300,其用以使經配置邏輯頻道與一或多個對應DMA傳送請求相關聯。在所描繪之頻道映射300中,維持一簡單表,其中每一列(例如,列301)使DMA傳送與其在頻道位元映像(例如,200)中之經配置頻道位元映像位置相關聯。如所描繪,第一列301使第一DMA傳送之輸入值(例如,第一DMA傳送之主記憶體有效位址"a")與頻道位元映像200中對應於針對第一DMA傳送而配置之邏輯頻道識別符(例如,頻道ID 1)之頻道位元映像位置201相關聯。舉例而言,若頻道位元映像200為32位元字且將對應於位元映像位置201之頻道ID 1配置至第一DMA傳送,則儲存於映射列301中的頻道ID 1 201之頻道位元映像位置將為"00000"。在將多個同作DMA傳送(例如,在預定時間段或增量內發生之DMA傳送)配置至單一頻道ID之實施例中,頻道映射300使同作DMA傳送與其在頻道位元映像(例如,200)中之經配置頻道位元映像位置相關聯。舉例而言,若頻道位元映像200用以將頻道ID 2配置至在特定時間段內發生之第二DMA傳送及第三DMA傳送,則映射300之第二列302及第三列303各自使第二DMA傳送及第三DMA傳送之輸入值與頻道位元映像200中對應於頻道ID 2之頻道位元映像位置202相關聯。此展示於圖3中,其中映射300中之第二列302使第二DMA傳送之輸入值(例如,第二DMA傳送之主記憶體有效位址"b")與頻道位元映像200中對應於頻道ID2之頻道位元映像位置202(例如,位元映像位置"00001")相關聯。以類似方式,映射300中之第三列303使第三DMA傳送之輸入值(例如,第三DMA傳送之主記憶體有效位址"c")與頻道位元映像200中對應於頻道ID 2之頻道位元映像位置202(例如,位元映像位置"00001")相關聯。
對於新DMA傳送請求(例如,與主記憶體有效位址"d"相關聯之第四DMA傳送),搜尋頻道位元映像200以找到第一自由或未經配置邏輯頻道識別符。在圖2之實例中,第一可用頻道識別符將為第三頻道ID 203,因為其值經重設或為"零"。在將頻道位元映像200中之第三位元位置203之值設定為"一"(未圖示)後,便將更新映射300,使得第四列304使新DMA傳送之輸入值(例如,第四DAM傳送之主記憶體有效位址"d")與頻道位元映像200中對應於頻道ID3之頻道位元映像位置203(例如,位元映像位置"00010")相關聯。且,若在自接收第四DMA傳送時起之特定時間段內接收及配置額外DMA傳送請求,則將更新映射300,使得額外列使額外DMA傳送之輸入值與頻道位元映像200中對應於頻道ID3之頻道位元映像位置203(例如,位元映像位置"00010")相關聯。
為了進一步說明本發明之選定實施例,圖4描繪用以將DMA頻道配置至個別DMA請求及對DMA頻道解除配置之步驟的邏輯流程圖400。在步驟401處,過程開始,諸如,當APU核心正在執行需要來自記憶體之資料的程式時。當需要初始記憶體存取時,藉由針對第一DMA頻道傳送而請求DMA頻道識別符來起始傳送(決策402之肯定結果)。可藉由使用頻道位元映像以選擇及設定可用(例如,未經配置)頻道識別符來選擇DMA頻道識別符(步驟403)。此可藉由選擇對應於頻道位元映像中儲存有"零"之位元位置之頻道識別符且接著將對應位元設定為"一"來進行。
若在指定時間框內不再需要額外記憶體存取(決策404之否定結果),則將選定頻道ID映射至經請求DMA頻道傳送之有效位址(步驟406),使用選定頻道ID來執行DMA傳送(步驟407),且在完成DMA傳送後便重設頻道位元映像中之對應位元(步驟408),此時,針對下一DMA傳送而重複該過程。然而,若在指定時間框內需要一或多個同作記憶體存取(決策404之肯定結果),則擷取選定頻道ID以用於同作DMA頻道請求(步驟405)。應瞭解,針對在指定時間框期間發生之同作DMA頻道請求中之每一者而擷取選定頻道ID,此實際上使步驟405成為迭代過程,重複該迭代過程,直至在指定時間框期間不再偵測到DMA頻道請求。
對於在預定時間框內發生之每一DMA頻道請求,將選定頻道ID映射至與複數個DMA傳送請求相關聯之輸入值(步驟406)。用以創建映射之輸入值可為有效位址或某一應用程式產生之識別符。舉例而言,在DMA傳送請求含有區域儲存器位址及主記憶體有效位址兩者的情況下,可(諸如)藉由使用圖3所示之頻道映射300而將頻道ID映射至主記憶體有效位址。或者,與DMA請求相關聯之輸入值可為標記ID,在此狀況下,頻道位元映像可用以將標記ID虛擬化為不同的經動態指定之未使用標記ID。在其他實施例中,基於有效位址而將標記ID動態地指定至由軟體管理之快取記憶體所起始之DMA操作。
無論使用何種配置技術,皆使用經配置頻道ID來執行複數個DMA傳送(步驟407)。以此方式,在給定相同輸入值的情況下,當存在對等待完成資料傳送之請求時,可使用本發明之映射方案以服侍適當邏輯頻道。一旦完成複數個DMA傳送,便不再需要頻道ID且可藉由重設頻道位元映像中對應於頻道ID之位元而對頻道ID解除配置(步驟408)。經解除配置頻道ID接著可由後續DMA傳送使用,如由至DMA頻道請求偵測步驟402之回送路徑所指示。
一般而言,可基於自初始DMA頻道請求偵測在預定時間段或增量內發生之DMA頻道請求來識別同作DMA傳送請求。以此方式,當需要多個同作記憶體存取時,其可作為群組而配置至任何可用頻道ID或標記,頻道ID或標記可藉由使用位元映像以追蹤哪些ID或標記具有未處理請求來識別。舉例而言,可使用配置碼序列或常式,其界定用於在一時間增量內發生之任何DMA傳送請求之頻道ID或標記且週期性地使頻道ID或標記遞增以界定新頻道ID或標記以用於在下一時間增加內發生之任何DAM傳送請求,等等。配置碼常式可依序地步進通過複數個頻道ID或標記,直至複數個頻道ID或標記用盡,此時,重設頻道ID或標記。
在一實例配置碼常式(其中將頻道ID或標記0-9動態地配置至DMA傳送請求)中,可週期性地調用(例如,藉由遞減器)以下常式tagid_tick():
為了說明tagid_tick()常式如何使current_channel_id遞增之操作,參看圖5,其描繪tagid_tick()常式之狀態圖500。在開始(狀態501)之後,在初始狀態下清除tagid值或將其設定為零值(狀態502)。該常式接著進行至等待狀態(狀態504),其中該常式等待遞減器發出增量命令。當發出增量命令時,該常式使tagid遞增(狀態506)且進行至偵測狀態以判定tagid是否已超過最大tagid值(狀態508)。若超過最大tagid值(偵測狀態508之肯定結果),則該常式重設tagid值,如由至初始狀態(502)之反饋所指示。若不超過最大tagid值(偵測狀態508之否定結果),則該常式返回至等待遞減器,如由至等待狀態(504)之反饋所指示。關於tagid_tick()常式,tagid隨每一時脈滴答(clock tick)而遞增,且在所有標記已被使用或遞增時經重設為0。以此方式,每一DMA請求使用相同tagid,直至計時器再次滴答。結果,在計時器滴答之間發生的所有DMA請求皆使用相同tagid。
如上文中所描述,單一DMA頻道識別符可用於在特定時間段內所進行之配置。關於此方法,將按時間群組DMA請求以確保當程式等待時,彼等頻道DMA請求應大約同時完成。圖6中展示群組時間配置之一實例實施,圖6描繪用以將DMA頻道配置至在預定時間框內發生之個別DMA請求及對DMA頻道解除配置之步驟的邏輯流程圖600。過程始於步驟601,例如,當APU核心在執行需要來自記憶體之資料的程式時。當需要記憶體存取時,在DMA控制器處接收第一DMA傳送請求(步驟602)且將第一頻道ID配置至第一DMA請求(步驟603)。若在預定時間段內在DMA控制器處接收一或多個額外DMA請求(偵測步驟604之肯定結果),則將第一頻道ID重新用於任何此(此等)額外DMA請求(步驟605),如由自步驟605至偵測步驟604之回送路徑所指示。在預定時間段期滿(偵測步驟604之否定結果)後,便使用經配置第一頻道ID來執行任何未決DMA傳送(步驟606)。一旦完成DMA傳送,便不再需要頻道ID且可對頻道ID解除配置(步驟607)。經解除配置頻道ID接著可由後續DMA傳送使用,如由至DMA請求偵測步驟602之回送路徑所指示。
藉由群組DMA請求,使得將其配置至單一頻道ID,可配置比由任何頻道位元映像之有限大小或由任何一對一映射方案所允許之DMA請求多的DMA請求。頻道位元映像配置技術亦允許針對DMA傳送而動態地配置邏輯頻道,以便減少假相依性,且亦使能夠快速且有效地回收經解除配置DMA頻道。
熟習此項技術者應瞭解,本發明可完全或部分地體現為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例(包括韌體、常駐軟體、微碼,等等)或組合軟體與硬體態樣之實施例的形式,該等實施例在本文中皆可被通稱為"電路"、"模組"或"系統"。此外,本發明可採用電腦可使用儲存器媒體上之電腦程式產品的形式,電腦可使用儲存器媒體具有體現於該媒體中之電腦可使用程式碼。舉例而言,動態DMA頻道配置模組之功能可以儲存於區域儲存器中或儲存於單獨記憶體儲存單元中之軟體來實施,且可由DMA控制器執行,而不考慮其在APU核心中之位置。
已出於說明及描述之目的而呈現前述描述。其不意欲為詳盡的或將本發明限於所揭示之精確形式。根據以上教示,許多修改及變化係可能的。意欲使本發明之範疇不受此實施方式限制,而是受此處附加之申請專利範圍限制。以上說明書及實例實施提供本發明之組成部分之製造及使用的完整描述。由於可在不脫離本發明之精神及範疇的情況下進行本發明之許多實施例,故本發明存在於下文中所附加之申請專利範圍中。
1...處理單元/功率核心
2...處理器單元
3...第一層級(L1)快取記憶體
4...第二層級(L2)快取記憶體
10...附接式處理單元(APU)/APU核心
11...記憶體流量控制器(MFC)
12...記憶體映射I/O之(MMIO)暫存器及佇列
13...DMA控制器模組
15...處理器單元
16...區域儲存器
17...頻道位元映像
18...映射結構
19...頻道配置指令/頻道配置軟體
20...APU/APU核心
30...APU/APU核心
40...APU/APU核心
50...APU/APU核心
56...區域記憶體儲存器或區域儲存器
60...APU/APU核心
70...APU/APU核心
80...APU/APU核心
90...系統或互連匯流排
95...外部或主系統記憶體
100...單晶片多處理器
120...資料處理系統
200...頻道位元映像
201...第一位元位置/頻道位元映像位置/頻道ID 1
202...第二位元位置/頻道位元映像位置
203...第三位元位置/第三頻道ID/頻道位元映像位置
204...第四位元位置
205...最後位元位置
300...頻道映射
301...第一列
302...第二列
303...第三列
304...第四列
圖1說明可用於可實施本發明之資料處理系統內的電腦架構;
圖2說明用以將邏輯頻道動態地配置至DMA傳送請求之實例頻道位元映像;
圖3說明用以使每一經配置邏輯頻道與一或多個對應DMA傳送請求相關聯之實例頻道映射;
圖4為用以將DMA頻道配置至個別DMA請求及對DMA頻道解除配置之步驟的邏輯流程圖;
圖5描繪用於追蹤用以將頻道配置至DMA傳送請求群之可遞增頻道識別符之常式的實例狀態圖;且
圖6為用以將DMA頻道配置至在預定時間框內發生之個別DMA請求及對DMA頻道解除配置之步驟的邏輯流程圖。
200...頻道位元映像
201...第一位元位置/頻道位元映像位置/頻道ID 1
202...第二位元位置/頻道位元映像位置
203...第三位元位置/第三頻道ID/頻道位元映像位置
204...第四位元位置
205...最後位元位置

Claims (20)

  1. 一種用於在一資料處理系統中配置DMA頻道識別符之方法,其包含:在該資料處理系統之操作期間接收針對一第一DMA傳送之一請求;在接收針對該第一DMA傳送之該請求的一預定時間段內接收針對一第二DMA傳送之一請求;及配置一第一DMA頻道識別符以用於執行該第一DMA傳送及該第二DMA傳送,藉此按時間群組該第一DMA傳送與該第二DMA傳送;將針對該第一DMA傳送之該請求及針對該第二DMA傳送之該請求映射至該第一DMA頻道識別符;使用該第一DMA頻道識別符來執行該第一DMA傳送及該第二DMA傳送;及在完成該第一DMA傳送及該第二DMA傳送後便對該第一DMA頻道識別符解除配置。
  2. 如請求項1之方法,其中配置該第一DMA頻道識別符包含:搜尋一頻道位元映像以選擇及設定一可用DMA頻道識別符。
  3. 如請求項2之方法,其中搜尋該頻道位元映像以選擇及設定該可用DMA頻道識別符包含:識別該頻道位元映像中儲存有一第一預定值之一第一位元位置,其中該第一位元位置對應於該第一DMA頻道識別符;及 將一第二預定值儲存於該第一位元位置中,藉此將該第一DMA頻道識別符配置至該第一DMA傳送及該第二DMA傳送。
  4. 如請求項3之方法,其中對該第一DMA頻道識別符解除配置包含:在完成該第一DMA傳送及該第二DMA傳送後便將該第一預定值儲存於該第一位元位置中,藉此對該第一DMA頻道識別符解除配置。
  5. 如請求項1之方法,其中配置該第一DMA頻道識別符包含:將該第一DMA頻道識別符用於在一第一時間增量內所接收之任何DMA傳送請求;將一第二DMA頻道識別符用於在一第二時間增量內所接收之任何DMA傳送請求。
  6. 如請求項1之方法,其中配置該第一DMA頻道識別符包含:使一DMA頻道識別符計數器在複數個時間增量內依序地遞增;配置該DMA頻道識別符計數器在一第一時間增量中之一當前值以用於執行在該第一時間增量內所請求之至少該第一DMA傳送及該第二DMA傳送;在使該DMA頻道識別符計數器在該複數個時間增量內遞增之後,重設該DMA頻道識別符計數器。
  7. 如請求項1之方法,其中將針對該第一DMA傳送之該請求及針對該第二DMA傳送之該請求映射至該第一DMA頻 道識別符包含:維持一表以用於使該第一DMA頻道識別符與同該第一DMA傳送及該第二DMA傳送相關聯之記憶體位址資訊相關聯。
  8. 如請求項7之方法,其中該記憶體位址資訊包含:外部記憶體中與該第一DMA傳送相關聯之一第一有效位址,及外部記憶體中與該第二DMA傳送相關聯之一第二有效位址。
  9. 如請求項7之方法,其中該記憶體位址資訊包含:一與該第一DMA傳送相關聯之第一應用程式界定之標記,及一與該第二DMA傳送相關聯之第二應用程式界定之標記。
  10. 一種用於在一資料處理系統中配置DMA頻道識別符之電腦可讀取儲存媒體,其用於體現電腦程式碼,該電腦程式碼包含若干電腦可執行指令以進行以下步驟:在該資料處理系統之操作期間接收針對一第一DMA傳送之一請求;在接收針對該第一DMA傳送之該請求的一預定時間段內接收針對一第二DMA傳送之一請求;及配置一第一DMA頻道識別符以用於執行該第一DMA傳送及該第二DMA傳送,藉此按時間群組該第一DMA傳送與該第二DMA傳送;將針對該第一DMA傳送之該請求及針對該第二DMA傳送之該請求映射至該第一DMA頻道識別符;使用該第一DMA頻道識別符來執行該第一DMA傳送及 該第二DMA傳送;及在完成該第一DMA傳送及該第二DMA傳送後便對該第一DMA頻道識別符解除配置。
  11. 如請求項10之電腦可讀取儲存媒體,其中配置該第一DMA頻道識別符包含:搜尋一頻道位元映像以選擇及設定一可用DMA頻道識別符。
  12. 如請求項11之電腦可讀取儲存媒體,其中搜尋該頻道位元映像以選擇及設定該可用DMA頻道識別符包含:識別該頻道位元映像中儲存有一第一預定值之一第一位元位置,其中該第一位元位置對應於該第一DMA頻道識別符;及將一第二預定值儲存於該第一位元位置中,藉此將該第一DMA頻道識別符配置至該第一DMA傳送及該第二DMA傳送。
  13. 如請求項12之電腦可讀取儲存媒體,其中對該第一DMA頻道識別符解除配置包含:在完成該第一DMA傳送及該第二DMA傳送後便將該第一預定值儲存於該第一位元位置中,藉此對該第一DMA頻道識別符解除配置。
  14. 如請求項10之電腦可讀取儲存媒體,其中配置該第一DMA頻道識別符包含:將該第一DMA頻道識別符用於在一第一時間增量內所接收之任何DMA傳送請求;將一第二DMA頻道識別符用於在一第二時間增量內所接收之任何DMA傳送請求。
  15. 如請求項10之電腦可讀取儲存媒體,其中配置一第一DMA頻道識別符包含:使一DMA頻道識別符計數器在複數個時間增量內依序地遞增;配置該DMA頻道識別符計數器在一第一時間增量中之一當前值以用於執行在該第一時間增量內所請求之至少該第一DMA傳送及該第二DMA傳送;在使該DMA頻道識別符計數器在該複數個時間增量內遞增之後,重設該DMA頻道識別符計數器。
  16. 如請求項10之電腦可讀取儲存媒體,其中將針對該第一DMA傳送之該請求及針對該第二DMA傳送之該請求映射至該第一DMA頻道識別符包含:維持一表以用於使該第一DMA頻道識別符與同該第一DMA傳送及該第二DMA傳送相關聯之記憶體位址資訊相關聯。
  17. 如請求項16之電腦可讀取儲存媒體,其中該記憶體位址資訊包含:外部記憶體中與該第一DMA傳送相關聯之一第一有效位址,及外部記憶體中與該第二DMA傳送相關聯之一第二有效位址。
  18. 如請求項16之電腦可讀取儲存媒體,其中該記憶體位址資訊包含:一與該第一DMA傳送相關聯之第一應用程式界定之標記,及一與該第二DMA傳送相關聯之第二應用程式界定之標記。
  19. 一種資料處理系統,其包含:一處理器; 一DMA控制器,其耦接至該處理器;一區域儲存器記憶體,其耦接至該處理器且耦接至該DMA控制器,該區域儲存器記憶體體現由該DMA控制器用於執行至及自該區域儲存器記憶體之DMA傳送之電腦程式碼,該電腦程式碼包含可由該DMA控制器執行且經組態以用於藉由以下操作而在該資料處理系統中配置DMA頻道識別符之指令:在該資料處理系統之操作期間接收針對一第一DMA傳送之一請求:在接收針對該第一DMA傳送之該請求的一預定時間段內接收針對一第二DMA傳送之一請求;及配置一第一DMA頻道識別符以用於執行該第一DMA傳送及該第二DMA傳送,藉此按時間群組該第一DMA傳送與該第二DMA傳送;將針對該第一DMA傳送之該請求及針對該第二DMA傳送之該請求映射至該第一DMA頻道識別符;使用該第一DMA頻道識別符來執行該第一DMA傳送及該第二DMA傳送;及在完成該第一DMA傳送及該第二DMA傳送後便對該第一DMA頻道識別符解除配置。
  20. 如請求項19之資料處理系統,其中配置該第一DMA頻道識別符包含:藉由以下操作來搜尋一頻道位元映像以選擇及設定一可用DMA頻道識別符:識別該頻道位元映像中儲存有一預定值之一第一位元 位置,其中該第一位元位置對應於該第一DMA頻道識別符;及將一第二預定值儲存於該第一位元位置中,藉此將該第一DMA頻道識別符配置至該第一DMA傳送及該第二DMA傳送。
TW097143348A 2007-12-06 2008-11-10 用於配置直接記憶體存取(dma)頻道識別符之方法、電腦可讀取儲存媒體、及資料處理系統 TWI428755B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/951,449 US7865631B2 (en) 2007-12-06 2007-12-06 Dynamic logical data channel assignment using time-grouped allocations

Publications (2)

Publication Number Publication Date
TW200925871A TW200925871A (en) 2009-06-16
TWI428755B true TWI428755B (zh) 2014-03-01

Family

ID=40722829

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097143348A TWI428755B (zh) 2007-12-06 2008-11-10 用於配置直接記憶體存取(dma)頻道識別符之方法、電腦可讀取儲存媒體、及資料處理系統

Country Status (2)

Country Link
US (1) US7865631B2 (zh)
TW (1) TWI428755B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4548505B2 (ja) * 2008-04-16 2010-09-22 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8412862B2 (en) * 2008-12-18 2013-04-02 International Business Machines Corporation Direct memory access transfer efficiency
US8250250B2 (en) * 2009-10-28 2012-08-21 Apple Inc. Using central direct memory access (CDMA) controller to test integrated circuit
US8417253B2 (en) * 2010-02-23 2013-04-09 Intel Corporation Bandwidth and channel notification for wide-channel wireless communication
US8677044B1 (en) * 2012-10-25 2014-03-18 Qlogic, Corporation Method and system for communication using multiple DMA channels
US10181946B2 (en) * 2015-07-20 2019-01-15 Intel Corporation Cryptographic protection of I/O data for DMA capable I/O controllers
WO2018053830A1 (en) * 2016-09-26 2018-03-29 Intel Corporation Apparatus and method for mediate pass through and shared memory page merge
CN112823343A (zh) * 2020-03-11 2021-05-18 深圳市大疆创新科技有限公司 直接内存存取单元、处理器、设备、处理方法及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI98426C (fi) * 1994-05-03 1997-06-10 Nokia Mobile Phones Ltd Järjestelmä pakettidatan siirtämiseksi digitaalisen aikajakomonikäyttöön TDMA perustuvan solukkojärjestelmän ilmarajapinnassa
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
EP1591906A1 (en) * 2004-04-27 2005-11-02 Texas Instruments Incorporated Efficient data transfer from an ASIC to a host using DMA
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060130062A1 (en) * 2004-12-14 2006-06-15 International Business Machines Corporation Scheduling threads in a multi-threaded computer
US7447868B2 (en) * 2005-06-15 2008-11-04 International Business Machines Corporation Using vector processors to accelerate cache lookups
GB2433611A (en) * 2005-12-21 2007-06-27 Advanced Risc Mach Ltd DMA controller with virtual channels

Also Published As

Publication number Publication date
TW200925871A (en) 2009-06-16
US7865631B2 (en) 2011-01-04
US20090150575A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
TWI428755B (zh) 用於配置直接記憶體存取(dma)頻道識別符之方法、電腦可讀取儲存媒體、及資料處理系統
US8266337B2 (en) Dynamic logical data channel assignment using channel bitmap
US11550627B2 (en) Hardware accelerated dynamic work creation on a graphics processing unit
TWI490782B (zh) 來源運算元收集器快取的方法和裝置
CN108364251B (zh) 具有通用寄存器资源管理的矢量处理器
EP2542973B1 (en) Gpu support for garbage collection
US9250901B2 (en) Execution context swap between heterogeneous functional hardware units
CN108205433B (zh) 用来加速稀疏矩阵乘密集向量以及稀疏向量乘密集向量乘法的存储器到存储器指令
TWI528291B (zh) 用於在移動消除操作中旗標追蹤之系統與方法
CN108885586B (zh) 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令
US8117389B2 (en) Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions
US20140375658A1 (en) Processor Core to Graphics Processor Task Scheduling and Execution
TW201413456A (zh) 處理巢狀串流事件的方法和系統
US10108548B2 (en) Processors and methods for cache sparing stores
US20120110303A1 (en) Method for Process Synchronization of Embedded Applications in Multi-Core Systems
TWI726899B (zh) 用於簡化用於有效平行計算的以任務為基礎的運行時間之方法
CN110659115A (zh) 具有硬件辅助任务调度的多线程处理器核
US20150268985A1 (en) Low Latency Data Delivery
US10209991B2 (en) Instruction set and micro-architecture supporting asynchronous memory access
CN114341805A (zh) 纯函数语言神经网络加速器系统及结构
US9983874B2 (en) Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling
US11243800B2 (en) Efficient virtual machine memory monitoring with hyper-threading
Shoji et al. A large-scale speculation for the thread-level parallelization
CN117501254A (zh) 使用近存储器计算为复杂操作提供原子性
US8438335B2 (en) Probe speculative address file

Legal Events

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