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 PDFInfo
- 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
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/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
-
- 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
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)
- 年月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-
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI448897B (zh) * | 2008-12-30 | 2014-08-11 | Intel Corp | 監視在硬體中之記憶體存取的方法與設備、處理器及其系統 |
Families Citing this family (31)
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)
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 |
-
2004
- 2004-07-15 US US10/891,772 patent/US7243200B2/en not_active Expired - Fee Related
-
2005
- 2005-07-06 DE DE602005009494T patent/DE602005009494D1/de active Active
- 2005-07-06 JP JP2007504514A patent/JP4553936B2/ja active Active
- 2005-07-06 EP EP05802300A patent/EP1711899B1/en active Active
- 2005-07-06 CN CNB2005800023553A patent/CN100504827C/zh active Active
- 2005-07-06 AT AT05802300T patent/ATE407403T1/de not_active IP Right Cessation
- 2005-07-06 KR KR1020067013085A patent/KR100827510B1/ko active IP Right Grant
- 2005-07-06 WO PCT/IB2005/003169 patent/WO2006006084A2/en active IP Right Grant
- 2005-07-07 TW TW094123019A patent/TWI294573B/zh active
Cited By (1)
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 |