TWI294573B - Apparatus and method for controlling establishing command order in an out of order dma command queue, and computer readable medium recording with related instructions - Google Patents

Apparatus and method for controlling establishing command order in an out of order dma command queue, and computer readable medium recording with related instructions Download PDF

Info

Publication number
TWI294573B
TWI294573B TW094123019A TW94123019A TWI294573B TW I294573 B TWI294573 B TW I294573B TW 094123019 A TW094123019 A TW 094123019A TW 94123019 A TW94123019 A TW 94123019A TW I294573 B TWI294573 B TW I294573B
Authority
TW
Taiwan
Prior art keywords
instruction
instructions
flag
issued
barrier
Prior art date
Application number
TW094123019A
Other languages
English (en)
Other versions
TW200617680A (en
Inventor
Michael Norman Day
Charles Ray Johns
Peichun Peter Liu
Thuong Quang Truong
Takeshi Yamazaki
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc, Ibm filed Critical Sony Computer Entertainment Inc
Publication of TW200617680A publication Critical patent/TW200617680A/zh
Application granted granted Critical
Publication of TWI294573B publication Critical patent/TWI294573B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Details Of Television Systems (AREA)
  • Communication Control (AREA)

Description

1294573 (1) 九、發明說明 【發明所屬之技術領域】 本發明大致有關直接記憶體存取(DMA )控制,且更 特別地提供一種用以在DMA控制單元中維持指令定序之機 構。 【先前技術】 在習知之系統中,直接記憶體存取(DMA )單元係一 種能直接存取記憶體藉以旁路主處理器之裝置,此類型之 系統存在於若干匯流排架構中;然而,爲了要在系統中具 有DMA單元之有效率及定序的用法,必須在記憶體之DMA 用法上設置有控制及限制。 DMA單元執行DMA用法之控制,典型地,將做成用於 記憶體之用法的請求或指令至該DMA單元;該DMA單元將 扮演虛擬守閘器以使該等請求或指令以定序之方式執行; 然而,可存在有執行請求或指令之若干DM A單元,藉由單 一 D Μ A之若干指令,或其任一組合。爲減輕阻塞系統之多 重請求的問題,DMA採用丨宁列以儲存串列之DMA單元請求 或指令。 典型地,該等串列之DMA單元請求或指令係以其中該 等請求或指令抵達DMA單元的順序來予以執行,或以精確 確之定序來執行;然而,精確的定序會相當地耗費成本, 而精定序之結果會產生許多問題,例如高優先序之DMA 指令會受到低優先序之DMA指令所延遲。 -5- (2) 1294573 當 於 在 由 rml 理 1 另 之 本 成 費 耗 地 當 相 係 則 法 序 定 確 精 該 使用虛擬記憶體系統於該DMA之時’若從虛擬位址到實際 位址之轉譯不可行之時,DMA單元必須等待’直到解決該 轉譯之缺失爲止。有時候該轉譯之缺失可藉由硬體來予以 解決,但其他時候該缺失則必須藉由軟體來加以解決,在 該等例子中,解決轉譯失誤之潛在時間很長。例如在其他 例子時,DMA至或自緩慢之裝置將防止不具有相依性於目 # 前DMA指令之DMA指令進一步折返佇列中來加以執行。 針對載入及儲存,諸如PowerPC⑧之若干習知系統已 能透過薄弱定序或不夠一致的記憶體模型之使用來改善性 會g,該薄弱定序之記憶體模型的觀念可擴展至DMA指令之 執行。在用於DM A單元之薄弱定序的模型中,標籤係相關 聯於各指令,該等指令係以任一順序來完成,而該等標· 將允許控制軟體來監看相關聯或相依之指令的順序及群組 〇 ® 雖如此,但允許指令以任一順序完成將會具有若干問 題,例如是否存在有指令需在次序列指令執行之前予以完 成之要求。因此,需要有一種用以定序DM A指令之方法及 /或裝置,其可解決相關聯於用以執行DMA指令之習知方 法及裝置之至少若干的問題。 【發明內容】 本發明提供一種用以控制記憶體存取之裝置,配置至 少一處理器,其中該處理器進一步包含至少發出多個指令 -6 - (4) 1294573 功能之積體電路來予以執行。 參閱圖式第1圖,大致地,參考符號100指示一具有改 良式DMA控制器之系統。該系統1 00包含改良式DMA控制 器1 1 0,P U (處理器單元)1 3 0,記憶體單兀1 3 2,記憶體 120,及多重處理器(MP)相干匯流排190。該改良式 D Μ A控制器1 1 0進一步包含D Μ A指令f?列1 4 0,標籤f宁列 150,展現及轉譯邏輯裝置160,輸出資料匯流排170,及 • 輸入資料匯流排1 8 0。 在具有改良式DMA控制器110之系統1〇〇中,將發出及 執行指令,具有記憶體單元132的PU 130發出指令至DMA 指令佇列140 ;該PU 130可爲任何類型之處理器,含主PU (MPU )或聯合作用PU ( SPU );該記憶體單元132可爲ΐ 各種記憶體類型,包含但未受限於快取記憶體。傳送至 DMΑ指令佇列140之該等指令將予以標籤化,且用於個別 指令之標籤會在標籤佇列中受到追蹤,該等標籤可持有於 ® 指令或特定於若干類型之指令,藉以產生標籤群;寫入及 讀取指令將從該DMA指令佇列140發出至包含系統記憶體 (未顯示)之不同組件,然後,資料之轉移會透過輸出資 料緩衝區170及輸入資料緩衝區18〇來予以發生,而且可存 在有許多其他的步驟來結合於指令之執行,諸如解碼。 然而,在DMA指令佇列140中之指令並非單純地隨機 執行。在習知系統中,諸如DM A指令佇列140之DMA指令 仔列中之該等指令係在精確定序之設計下,以到達之順序 來加以執行。改良式DMA控制器1丨〇利用薄弱的定序設計 (5) (5)1294573 而允許以多種順序來執行;此外,該改良式DM A控制器 1 1 0亦利用串列之嵌入式旗標。PU 1 3 0嵌入旗標於所發出 之該等指令之內,雖如此,但可藉由DMA控制器來嵌入籬 旗標及屏障旗標;然而,此將更複雜。而且,該等嵌入式 旗標將扮演各指令之依賴且係有利於該等指令之序列執行 ,存在有利用嵌入式旗標之各種其他的理由,例如執行高 優先序指令於低優先序指令之前。 更特別地,有兩種旗標可嵌入於指令之內:屏障及籬 ,兩者均只影響相同標籤群中之指令。典型地,嵌入式籬 旗標將不允許指令執行,直到在完成具有該嵌入式籬旗標 之指令之前發出相同標籤群內的所有指令爲止,該籬旗標 要求的是,在具有嵌入式籬旗標之指令完成之前,亦即, 在具有籬旗標之指令執行之前發出相同標籤群內的所有指 令。該籬旗標並不會影響到佇列中之隨後的指令,例如在 具有籬旗標的指令之後所發出之指令可執行於具有籬旗標 之該指令之前。 相反地,屏障旗標會影響相同標籤群內之先前及隨後 的指令,典型地,該屏障旗標將不允許在所發出之指令執 行前,相同標籤群內之任何隨後的指令執行於包含具有屏 障旗標之指令的具有屏障旗標之指令之前,例如在具有屏 障旗標的指令之後所發出的相同標籤群內之指令無法在具 有屏障旗標之該指令之前執行。典型地,在具有屏障旗標 之指令前所發出的相同標籤群內之所有指令完成時’可執 行具有屏障旗標之指令及相同標籤群內之隨後的指令。因 -9 - (7) 1294573 置160,該輸出資料緩衝區170係透過第九通訊通道i〇7來 耦接於MP相干匯流排190,該輸入資料緩衝區18〇係透過 第十通訊通道108來連接於該MP相干匯流排190,該展現 及轉譯邏輯裝置1 6 0則透過第十一通訊通道1 〇 9來耦接於該 Μ P相干匯流排1 9 0。 參閱圖式第2圖’參考符號200大致地指示ΜΡ (多重 處理益)系統,該Μ Ρ系統包含共享記憶體2 1 〇,局部性 Φ 記憶體2 1 2,第一 PU 220,第一層級2 ( L2 )快取記憶體 222,第一 DMA控制器224,第二DMA控制器226,第二 PU 228,以及第二L2快取記憶體230。第一 L2快取記憶體 222及第二L2快取記憶體23 0係熟知的以及操作爲用於其個 別之處理器的外部記憶體界面。 在該MP (多重處理器)系統200中,多重處理器可獨 立地或結合地操作以讀取或寫入資料自/至各種記憶體裝 置。該PU 220可發出各種類型之指令至第一 DMA控制器 • 224,諸如發出讀取指令,寫入指令等;該第二pu 228亦 可發出各種類型之指令至第二DMA控制器226,諸如發出 讀取指令,寫入指令等。該第一 DMA控制器224及第二 DMA控制器226可從局部性記憶體2 1 2或共享記憶體2 1 0 讀取及寫入資料,而且如第2圖中所示地,可具有多重pu 或單一 PU以供各DMA控制器用;相反地,可具有多重 DMA控制器或單一 DMA控制器,如第2圖中所示,而且如 第2圖中所示地,可具有單一或多重PU。 爲了使該MP系統200操作,存在有~連串之必要的 -11 - (8) 1294573 連接,PU 220係透過第十二通訊通道(未顯示)來互連於 第一 L2快取記憶體222,該PU 220亦透過第十三通訊通道 242來耦接於第一 DMA控制器224,該第一 L2快取記憶體 222係透過第十四通訊通道240來耦接於共享記憶體210, 該第一 DMA控制器224係透過第十五通訊通道244來耦接 於共享記憶體210,該第一 DMA控制器224亦透過第十六通 訊通道248來連接於局部性記憶體212,第二PU 228係透過 • 第十七通訊通道(未顯示)來互連於第二L2快取記憶體 23 0,該第二L2快取記憶體230係透過第十八通訊通道254 來耦接於局部性記憶體,該第二PU 22 8亦透過第十九通訊 通道252來耦接於第二DMA控制器226,該第二DMA控制 器226係透過第二十通訊通道250來耦接於局部性記憶體 212,該第二DMA控制器226亦透過第二十一通訊通道246 來耦接於共享記億體2 1 0。 第3、4、及5圖係分別描述嵌入式籬旗標,嵌入式屏 ® 障旗標,及屏障指令之操作的流程圖,該等流程圖係簡化 而僅顯示單一嵌入式旗標或屏障指令之存在,然而,可具 有多重旗標及/或指令結合地使用。 參閱圖式第3圖,參考符號300大致指示一描述依據改 良式DMA控制器之籬旗標之操作的流程圖,而且第3圖並 未描述任何其他類型之旗標的用法。 在步驟302及3 04中,指令係分別發出且嵌入有籬旗標 ,第1圖之PU 13 0在步驟3 02中發出該指令,該指令可爲諸 如讀取指令,寫入指令,及類似指令之各種類型的指令; -12- (9) 1294573 該指令係在步驟304中嵌入有籬旗標,以該籬旗標來嵌入 該指令係藉由第1圖之PU 130而利用申請及/或編譯器來予 以執行,該籬旗標可嵌入以供各種理由用,例如籬旗標可 嵌入以用於此指令相對於先前藉由相同標籤所發出之所有 指令的序列執行,該籬旗標可嵌入於諸如讀取指令之各種 指令中,而且該籬旗標僅影響相同標籤群內之指令;此外 ,當在步驟302中發出指令時,第1圖之PU 130將指定標籤 •於該指令。 在步驟3 06及3 0 8中,轉遞該指令且使該指令與標籤群 相關聯;在步驟306中,第1圖之PU 130將轉遞該所發出及 所嵌入之指令至DMA指令佇列140以供暫時儲存用,一旦 接收時,則在步驟3 0 8中使該指令依據所指定之標籤而與 特定之標籤群相關聯。 在步驟310、311及314中,將從DMA指令佇列尋找經 排定用於執行之下一個指令;在步驟3 1 0中,將針對下一 ® 個有效指令來搜尋該DM A指令佇列,典型地,係依據相對 於指令佇列中之其他指令的年齡而選擇諸如該指令佇列中 之最老指令的指令,一旦選擇下一個指令時,則在步驟 311中作成有關該指令是否具有嵌入式籬旗標之決定,若 該指令不具有嵌入式籬旗標時,則可在步驟314中執行該 指令,然而,若具有嵌入式籬旗標時,則應採用另一組步 驟。 若在步驟3 1 1中確定該指令具有嵌入式籬旗標時,則 在步驟3 1 2中,檢查該指令之執行先決條件,該籬旗標要 -13- 1294573 do) 求的是在具有籬旗標之指令的執行之前,於完成具有嵌入 式籬旗標之指令之前發出相同標籤群內的所有指令。若該 指令之執行先決條件並不符合時,則保留該指令於該DMA 指令佇列中,以及重複步驟3 1 0及3 1 1以搜尋可予以執行之 指令,該指令將保留於該DMA指令佇列中直到該指令之執 行先決條件符合爲止。因此,在步驟3 1 0中,將執行的下 一個指令應爲具有嵌入式籬旗標之指令發出前所發出之具 有相同標籤之指令,若下一個排定之指令係在該籬旗標發 出之後發出時,則第1圖之DMA控制器110可執行隨後的指 令而不管標籤爲何。然而,第1圖之DM A控制器1 10應持續 搜尋任一先前所發出之指令的指令佇列,若無先前之指令 存在於相同的標籤群內時,則符合該嵌入式籬旗標的要件 且可執行具有嵌入式籬旗標之該指令。然而,在不再具有 任一先前所發出的指令完成之前將無法執行具有嵌入式籬 旗標之指令。 步驟310至314係與步驟3 02至3 08係平行地執行著,步 驟3 02至3 08係重複於當第1圖之PU 130發出指令時,而步 驟3 10至3 14則是持續執行著,直至無指令保留於該DMA指 令佇列中爲止。 參閱圖式第4圖,參考符號400大致指示一描述依據改 良式DMA控制器之屏障旗標之操作的流程圖,而且第4圖 並未描述任何其他類型之旗標的用法。 在步驟402及404中,指令係分別發出且嵌入有屏障旗 標,第1圖之PU 13 0在步驟402中發出該指令,該指令可爲 -14- (11) 1294573 諸如讀取指令,寫入指令,及類似指令之各種類型的指令 :該指令係在步驟404中嵌入有屏障旗標,以該屏障旗標 來嵌入該指令係藉由第1圖之PU 130而利用申請及/或編譯 器來予以執行,該屏障旗標可嵌入以供各種理由用,例如 屏障旗標可嵌入以用於此指令相對於先前藉由相同標籤所 發出之所有指令的序列執行,該屏障旗標可嵌入於諸如讀 取指令之各種指令中,而且該屏障旗標僅影響相同標籤群 ® 內之指令;此外,當在步驟402中發出指令時,第1圖PU之 13 0將指令標籤於該指令。 在步驟406及408中,轉遞該指令且使該指令與標籤群 相關聯;在步驟406中,第1圖之PU 130將轉遞該所發出及 所嵌入之指令至DMA指令佇列140以供暫時儲存用,一旦 接收時,則在步驟408中使該指令依據所指定之標籤而與 特定之標籤群相關聯。 在步驟410、41 1及414中,將從DMA指令佇列尋找經 ^ 排定用於執行之下一個指令;在步驟4 1 0中,將針對下一 個有效指令來搜尋該DMA指令佇列,典型地,係依據相對 於指令佇列中之最老指令的指令,一旦選擇下一個指令時 ,則在步驟411中作成有關該指令是否具有嵌入式屏障旗 標之決定,若該指令不具有嵌入式屏障旗標時,則可執行 該指令於步驟414中,然而,若具有嵌入式屏障旗標時, 則應採用另一組步驟。 若在步驟411中確定該指令具有嵌入式屏障旗標時, 則在步驟4 1 2中,檢查該指令之執行先決條件,該屏障旗 -15- (12) 1294573 標要求的是,在具有屏障旗標之指令之後所發出之任何指 令的執行之前,於完成具有嵌入式屏障旗標之指令之前發 出相同標籤群內的所有指令。若該指令之執行先決條件並 不符合時,則保留該指令於該D M A指令佇列中’以及重複 步驟4 1 0及4 1 1以搜尋可予以執行之指令’該指令將保留於 該D Μ A指令彳宁列中直到該指令之執行先決條件符合爲止。 因此,在步驟4 1 〇中,將執行的下一個指令應爲具有嵌入 • 式屏障旗標之指令發出前所發出之具有相同標籤之指令, 若下一個排定之指令係在相同的標籤群內且在具有屏障旗 標之指令發出之後發出,以及屏障要件並未滿足時’則在 步驟412中之檢查將無效且第1圖之DMA控制器110無法執 行隨後之指令。第1圖之DMA控制器1 1 0應持續搜尋任一先 前所發出之指令的指令佇列,若無先前之指令存在於相同 的標籤群內時,則符合該嵌入式屏障旗標的要件且可執行 具有嵌入式屏障旗標之該指令及在相同標籤群內之所有隨 ® 後所發出之指令。若用於執行之下一個排定之指令並不在 相同的標籤群內時,則第1圖之DMA控制器1 10可執行該指 令。 步驟410至414係與步驟402至408係平行地執行著,步 驟4 02至408係重複於當第1圖之PU 130發出指令時,而步 驟410至41 4則是持續地執行著,直至無指令保留於該DMA 指令佇列中爲止。 參閱圖式第5圖,參考符號5 00大致指示一描述依據改 良式DMA控制器之屏障指令之操作的流程圖,而且第5圖 -16- (13) 1294573 並未描述任何其他類型之旗標的用法。 在步驟5 02及5 04中,屏障指令係分別發出且轉遞至第 1圖之DMA指令佇列140,第1圖之PU 130在步驟502中發出 該屏障指令,該屏障產生所有隨後所發出之指令的相依性 ,該相依性要求的是,所有指令發出於完成該屏障指令之 前。主要地,該屏障指令防止任何隨後所發出之指令的執 行,直到所有先前之指令已執行爲止,而不管標籤群爲何 。該屛障指令可使用於各種理由,屏障指令可相對於先前 所發出之所有指令而使用於此指令及所有隨後之指令之隨 後的執行。在步驟504中,第1圖之PU 130轉遞該所發出之 屏障指令至DM A指令佇列140以供供暫時儲存用。 在步驟5 06、5 0 8、及510中,將從DMA指令佇列尋找 經排定用於執行之下一個指令;在步驟506中,將搜尋 DMA指令佇列以供下一個有效指令用,典型地,係依據相 對於諸如指令佇列中之最老指令之指令佇列中其他指令的 年齡來選擇指令;在步驟508中,檢查該指令之執行先決 條件,該屏障指令要求的是,在該屏障指令之後所發出之 任何指令的執行之前’於完成該屏障指令之前發出所有指 令。若該指令之執行先決條件並不符合時’則保留該指令 於該DM A指令佇列中,以及重複步驟506及5 0 8以搜尋可予 以執行之指令,該指令將保留於DMA指令佇列中直到該指 令之執行先決條件符合爲止。因此,在步驟5 06中’將執 行的下一個指令應爲該屏障指令發出之前所發出之指令’ 若下一個排定之指令係在該屏障指令之後發出且該屏障要 -17- (14) 1294573 件並未滿足時,則在步驟5 08中之檢查將無效且第1圖之 DM A控制器U 〇無法完成該屏障指令或執行隨後的指令。 第1圖之DMA控制器應持續搜尋任何先前所發出之指令的 指令佇列,若無先前之指令存在時,則符合該屏障指令之 要件及在所有隨後所發出之指令上的相依性;一旦解決藉 由該屏障指令所產生之相依性時’則可執行該屏障指令發 出之後所發出之所有指令。 # 步驟5 06及5 1 0與步驟5 02及504係平行地執行著,步驟 502及504係重複於當第1圖之PU 130發出屏障指令時,而 步驟5 06及5 1 0則是持續地執行著,直到無指令保留於該 DMA指令佇歹ij中爲止。 從上述說明將進一步瞭解的是,種種修正及改變可完 成於本發明之較佳實施例中而不會背離其真正的精神;此 說明書僅打算供描繪之目的用,且不應以限制之觀點來予 以解讀,本發明之範疇應僅藉由下文申請專利範圍之文字 ®來加以限制。 【圖式簡單說明】 用於更完整地瞭解本發明及其優點,係參考上文結合 附圖之說明,其中: 第1圖係一方塊圖,描繪具有改良式DMA控制器的系 統; 第2圖係一方塊圖,描繪多重處理器(MP )系統; 第3圖係一流程圖,描繪依據該改良式D Μ A控制器系 -18- (15) 1294573 統之籬旗標的操作; 第4圖係一流程圖,描繪一改良式DM A控制器系統內 之屏障旗標的操作;以及 第5圖係一流程圖,描繪一改良式DMA控制器系統內 之屏障指令的操作。 【主要元件符號說明】 # 1〇〇具有改良式DMA控制器之系統 101 、 102 、 103 、 104 、 105 通訊通道 106、 107、 108、 109 通訊通道 1 10改良式DMA控制器 120記憶體 130處理器單元(PU) 132記憶體單元 140 DMA指令佇列 ® 1 5 0標籤佇列 160展現及轉譯邏輯裝置 170輸出資料匯流排 1 8 0輸入資料匯流排 190多重處理器(MP)相干匯流排 200多重處理器系統 21〇共享記憶體 212局部性記憶體
220 第一PU -19- (16) 1294573 222第一層級2(L2)快取記憶體 224第一 DMA控制器 226第二DMA控制器 228 第二 PU 23 0第二L2快取記憶體 240、 242、 244' 246、 248 通訊通道 250、 252、 254 通訊通道 Φ 300、 400、 500 流程圖
-20-

Claims (1)

  1. 年月a修产正替換質 1294573 .、_‘秦..I藥:y 十、申請專利範圍 附件4A:第94123019號專利申請案 中文申請專利範圍替換本 民國9 6年1 〇月17日修正 1 . 一種於非定序直接記憶體存取指令佇列中控制建 立指令順序之裝置,包含: 至少一處理器,其中該處理器進一步包含:
    至少發出多個指令之功能;以及 至少一功能以嵌入至少一旗標於與一指定之標籤號 碼相關聯之該等指令內; 複數個通訊埠,其中複數個指令係藉由該至少一處理 器透過複數個通訊通道之至少一第一通訊通道來予以輸入 一標籤佇列,其中該標籤佇列指定所指定之標籤號碼 給該複數個指令之每個指令,以產生複數個標籤化指令; 一指令佇列,用以儲存該複數個標籤化指令,其中該 指令佇列進一步包含排序該等指令之功能。 2.如申請專利範圍第1項之裝置,其中該裝置進一步 包含中間邏輯器,其中該中間邏輯器從該指令佇列至少傳 送一標籤化之指令到至少一第二通訊通道。 3.如申請專利範圍第2項之裝置,其中該裝置進一步 包含複數個資料緩衝器,其中該複數個資料緩衝區至少係 建構爲耦接於至少一記憶體。 1294573 4 ·如申請專利範圍第3項之裝置,其中該複數個資料 緩衝器至少係建構爲耦接於該第二通訊通道。 5 ·如申請專利範圍第1項之裝置,其中該等標籤號碼 進一步包含至少形成爲形成標籤群之成群標籤號碼的功能 6 ·如申請專利範圍第5項之裝置,其中該至少一旗標 進一步包含一第一旗標及一第二旗標。
    7 ·如申請專利範圍第6項之裝置,其中該第一旗標進 一步包含一籬旗標來防止具有之嵌入式籬旗標在第一標籤 群中之至少一已發出指令的執行,直到具有一嵌入式籬旗 標之該至少一指令之前發出所有指令被執行爲止。 8 ·如申請專利範圍第6項之裝置,其中該第二旗標進 一步包含一屏障旗標來防止在至少一指令嵌入有該屏障旗 標之後所發出之在一第一標籤群中之任何接續指令之執行 9 ·如申請專利範圍第1項之裝置,其中該處理器進一 步包含至少發出一屏障指令以防止在該屏障指令之後所發 出之任何接續指令之執行,而不論該指令是否在標籤群組 中。 10. —種於非定序直接記憶體存取指令ί宁列中控制建 立指令順序之方法,包含: 接收來自一處理器之一第一指令於一控制模組以執行 一記憶體操作; 嵌入一旗標於該第一指令中以產生一嵌入式旗標; -2 -
    1294573 在該第一指令附上一標籤號碼; 使該第一指令佇列於一指令表中; 至少依據進入該控制模組內的一登錄順序及至少依據 該等嵌入式旗標來定序該指令表;以及 以該定序之順序來執行該指令表。 11. 如申請專利範圍第1 0項之方法,其中該方法進— 步包含使具有相同標籤號碼之指令相關聯爲一標籤群。
    12. 如申請專利範圍第1 1項之方法,其中該旗標進一 步包含一籬旗標來防止具有之嵌入式籬旗標在第一標籤群 中之至少一已發出指令的執行,直到具有一嵌入式籬旗標 之該至少一指令之前發出所有指令被執行爲止。 1 3 .如申請專利範圍第1 0項之方法,其中該旗標進一 步包含一屏障旗標來防止在至少一指令嵌入有該屏障旗標 之後所發出之在一第一標籤群中之任何接續指令之執行。 14. 一種於非定序直接記億體存取指令佇列中控制建 φ 立指令順序之方法,包含: 接收來自一處理器之一第一指令於一控制模組以執行 一記憶體操作; 藉一標籤號碼使該第一指令標籤化; 使該第一指令佇列於一指令表中; 發出一屏障指令以防止所發出之任何隨後的指令執行 於該屏障指令之後的功能而不管該標籤群; 定序該指令表,以及 以該定序之順序來執行該指令表。 -3- 1294573 年Ί 日修@3正替换頁 ______一 15. —種於非定序直接記憶體存取指令佇列中記錄有 執行控制建立指令順序之指令的電腦可讀取媒體,該等指 令執行下列步驟: 接收來自一處理器之一第一指令於一控制模組以執行 一記憶體操作; 嵌入一旗標於該第一指令中以產生一嵌入式旗標; 藉一標籤號碼使該第一指令標籤化;
    使該第一指令佇列於一指令表中; 依據進入該控制模組內之一登錄序列及該等嵌入式旗 標來定序該指令表;以及 以該定序之順序來執行該指令表。 16. 如申請專利範圍第1 5項之電腦可讀取媒體,其中 該電腦可讀取媒體進一步包含電腦程式碼,用以使具有相 同標籤號碼之指令相關聯爲一標籤群。
    17. 如申請專利範圍第1 6項之電腦可讀取媒體,其中 該旗標進一步包含一籬旗標來防止具有之嵌入式籬旗標在 第一標籤群中之至少一已發出指令的執行,直到具有一嵌 入式籬旗標之該至少一指令之前發出所有指令被執行爲止 1 8·如申請專利範圍第1 5項之電腦可讀取媒體,其中 該旗標進一步包含一屏障旗標來防止在至少一指令嵌入有 該屏障旗標之後所發出之在一第一標籤群中之任何接續指 令之執行。 19. 一種於非定序直接記憶體存取指令佇列中記錄有 -4- 1294573 執行控制建立指令順序之指令的電腦可讀取媒M,該等指 令執行下列步驟: 接收來自一處理器之一第一指令於一控制模組以執行 一記憶體操作; 藉一標籤號碼使該第一指令標籤化, 使該第一指令行2列於一指令表中’
    發出一屏障指令以防止所發出之任何隨後的指令執行 於該屏障指令之後的功能而不胃該標籤群; 定序該指令表;以及 以該定序之順序來執行該指令表。
    -5-
TW094123019A 2004-07-15 2005-07-07 Apparatus and method for controlling establishing command order in an out of order dma command queue, and computer readable medium recording with related instructions TWI294573B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/891,772 US7243200B2 (en) 2004-07-15 2004-07-15 Establishing command order in an out of order DMA command queue

Publications (2)

Publication Number Publication Date
TW200617680A TW200617680A (en) 2006-06-01
TWI294573B true TWI294573B (en) 2008-03-11

Family

ID=35478627

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094123019A TWI294573B (en) 2004-07-15 2005-07-07 Apparatus and method for controlling establishing command order in an out of order dma command queue, and computer readable medium recording with related instructions

Country Status (9)

Country Link
US (1) US7243200B2 (zh)
EP (1) EP1711899B1 (zh)
JP (1) JP4553936B2 (zh)
KR (1) KR100827510B1 (zh)
CN (1) CN100504827C (zh)
AT (1) ATE407403T1 (zh)
DE (1) DE602005009494D1 (zh)
TW (1) TWI294573B (zh)
WO (1) WO2006006084A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI448897B (zh) * 2008-12-30 2014-08-11 Intel Corp 監視在硬體中之記憶體存取的方法與設備、處理器及其系統

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060090015A1 (en) * 2004-10-26 2006-04-27 Bradfield Travis A Pipelined circuit for tag availability with multi-threaded direct memory access (DMA) activity
US20060129764A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation Methods and apparatus for storing a command
US7774512B2 (en) * 2005-02-08 2010-08-10 Sony Computer Entertainment Inc. Methods and apparatus for hybrid DMA queue and DMA table
US7596670B2 (en) * 2005-11-30 2009-09-29 International Business Machines Corporation Restricting access to improve data availability
GB2433333B (en) * 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
US8285923B2 (en) * 2008-12-08 2012-10-09 Western Digital Technologies, Inc. Disk drive and method using native command queuing tags to identify logical block size and implement protection information
GB2469299B (en) * 2009-04-07 2011-02-16 Imagination Tech Ltd Ensuring consistency between a data cache and a main memory
US8316219B2 (en) 2009-08-31 2012-11-20 International Business Machines Corporation Synchronizing commands and dependencies in an asynchronous command queue
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
US8631284B2 (en) * 2010-04-30 2014-01-14 Western Digital Technologies, Inc. Method for providing asynchronous event notification in systems
US8762682B1 (en) 2010-07-02 2014-06-24 Western Digital Technologies, Inc. Data storage apparatus providing host full duplex operations using half duplex storage devices
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9858241B2 (en) * 2013-11-05 2018-01-02 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
JP5730733B2 (ja) * 2011-09-28 2015-06-10 京セラドキュメントソリューションズ株式会社 情報処理装置及び情報処理方法
US9348775B2 (en) 2012-03-16 2016-05-24 Analog Devices, Inc. Out-of-order execution of bus transactions
JP2013242766A (ja) * 2012-05-22 2013-12-05 Denso Corp リクエスト処理装置
US9288257B2 (en) * 2013-05-01 2016-03-15 International Business Machines Corporation Managing file transfer commands
US9779138B2 (en) 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
US20160092123A1 (en) * 2014-09-26 2016-03-31 Pankaj Kumar Memory write management in a computer system
US10489158B2 (en) 2014-09-26 2019-11-26 Intel Corporation Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores
US20160092118A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Memory write management in a computer system
US9715464B2 (en) * 2015-03-27 2017-07-25 Microsoft Technology Licensing, Llc Direct memory access descriptor processing
US9584378B1 (en) 2015-12-22 2017-02-28 International Business Machines Corporation Computer-implemented command control in information technology service environment
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10223307B2 (en) 2017-06-15 2019-03-05 International Business Machines Corporation Management of data transaction from I/O devices
KR102262209B1 (ko) * 2018-02-09 2021-06-09 한양대학교 산학협력단 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치
EP4081898A1 (en) * 2020-01-17 2022-11-02 Huawei Technologies Co., Ltd. A system and method for optimizing time overhead in multi-core synchronization
CN111522511B (zh) * 2020-04-22 2022-04-22 杭州宏杉科技股份有限公司 命令处理方法及装置
US11579801B2 (en) * 2020-06-09 2023-02-14 Samsung Electronics Co., Ltd. Write ordering in SSDs
WO2023235003A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Command fencing for memory-based communication queues

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0184791A1 (en) * 1984-12-07 1986-06-18 Nec Corporation Information processing device capable of rapidly processing instructions of different groups
US5481694A (en) * 1991-09-26 1996-01-02 Hewlett-Packard Company High performance multiple-unit electronic data storage system with checkpoint logs for rapid failure recovery
JPH05120242A (ja) * 1991-10-30 1993-05-18 Toshiba Corp データ処理装置
JP3276516B2 (ja) * 1994-09-13 2002-04-22 株式会社リコー 三次元形状生成装置
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
US6088772A (en) * 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
EP0889413A3 (en) * 1997-06-30 2002-03-27 Sun Microsystems, Inc. System and method for interconnecting personal computer in computer workstation
US6038646A (en) * 1998-01-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
JP2000040057A (ja) * 1998-07-23 2000-02-08 Nec Eng Ltd 計算機システム、バッファ制御装置及び転送方法
US6205494B1 (en) 1998-12-18 2001-03-20 Western Digital Corporation Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers
JP2002196975A (ja) * 1999-07-12 2002-07-12 Matsushita Electric Ind Co Ltd データ処理装置
US6513109B1 (en) * 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
JP2003519833A (ja) * 2000-01-03 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 依存性連鎖の発行および再発行が可能なスケジューラ
US6694427B1 (en) * 2000-04-20 2004-02-17 International Business Machines Corporation Method system and apparatus for instruction tracing with out of order processors
JP4546629B2 (ja) * 2000-05-25 2010-09-15 株式会社日立製作所 記憶システム、記憶システムの応答方法及び記録媒体
US6609192B1 (en) 2000-06-06 2003-08-19 International Business Machines Corporation System and method for asynchronously overlapping storage barrier operations with old and new storage operations
US6594736B1 (en) * 2000-08-15 2003-07-15 Src Computers, Inc. System and method for semaphore and atomic operation management in a multiprocessor
JP2002140234A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
US7398376B2 (en) * 2001-03-23 2008-07-08 International Business Machines Corporation Instructions for ordering execution in pipelined processes
JP3402600B2 (ja) * 2001-12-03 2003-05-06 株式会社リコー 三次元形状生成装置
JP2004129129A (ja) * 2002-10-07 2004-04-22 Seiko Epson Corp 通信制御回路、通信制御装置、マイクロコンピュータ及び電子機器
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition
US7200688B2 (en) * 2003-05-29 2007-04-03 International Business Machines Corporation System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command
US7480754B2 (en) * 2003-06-27 2009-01-20 Seagate Technology, Llc Assignment of queue execution modes using tag values
US7203811B2 (en) * 2003-07-31 2007-04-10 International Business Machines Corporation Non-fenced list DMA command mechanism
US7725618B2 (en) 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI448897B (zh) * 2008-12-30 2014-08-11 Intel Corp 監視在硬體中之記憶體存取的方法與設備、處理器及其系統

Also Published As

Publication number Publication date
WO2006006084A2 (en) 2006-01-19
EP1711899A2 (en) 2006-10-18
WO2006006084A8 (en) 2006-04-20
JP4553936B2 (ja) 2010-09-29
TW200617680A (en) 2006-06-01
EP1711899B1 (en) 2008-09-03
CN101031897A (zh) 2007-09-05
KR20060132856A (ko) 2006-12-22
US7243200B2 (en) 2007-07-10
US20060015652A1 (en) 2006-01-19
ATE407403T1 (de) 2008-09-15
KR100827510B1 (ko) 2008-05-06
DE602005009494D1 (de) 2008-10-16
WO2006006084A3 (en) 2006-07-20
JP2007529833A (ja) 2007-10-25
CN100504827C (zh) 2009-06-24

Similar Documents

Publication Publication Date Title
TWI294573B (en) Apparatus and method for controlling establishing command order in an out of order dma command queue, and computer readable medium recording with related instructions
CN1294484C (zh) 利用重新调度的重放队列中断处理器中的重放依赖关系循环
US9442861B2 (en) System and method for out-of-order prefetch instructions in an in-order pipeline
US8135942B2 (en) System and method for double-issue instructions using a dependency matrix and a side issue queue
US7634591B2 (en) Method and apparatus for tracking command order dependencies
CN100351781C (zh) 多线程并行处理器结构中所用的微引擎的存储器引用指令
US9606808B2 (en) Method and system for resolving thread divergences
US20130159628A1 (en) Methods and apparatus for source operand collector caching
KR102524565B1 (ko) 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적
US10761822B1 (en) Synchronization of computation engines with non-blocking instructions
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
US20210382721A1 (en) Central processor-coprocessor synchronization
US7822948B2 (en) Apparatus, system, and method for discontiguous multiple issue of instructions
WO2023278323A1 (en) Providing atomicity for complex operations using near-memory computing
US20240036867A1 (en) Implied fence on stream open
US11573724B2 (en) Scoped persistence barriers for non-volatile memories
JP6911102B2 (ja) アドレス生成時のロード及びストアキューの割り当てのためのシステム及び方法
US20080282050A1 (en) Methods and arrangements for controlling memory operations
US20080282051A1 (en) Methods and arrangements for controlling results of memory retrival requests
TW200931443A (en) Apparatus for predicting memory access and method thereof