TWI315038B - Method and storage medium having instructions for transferring data and multiprocessing system - Google Patents
Method and storage medium having instructions for transferring data and multiprocessing system Download PDFInfo
- Publication number
- TWI315038B TWI315038B TW092112586A TW92112586A TWI315038B TW I315038 B TWI315038 B TW I315038B TW 092112586 A TW092112586 A TW 092112586A TW 92112586 A TW92112586 A TW 92112586A TW I315038 B TWI315038 B TW I315038B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- storage medium
- channel
- channels
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
- Amplifiers (AREA)
- Surgical Instruments (AREA)
- Communication Control (AREA)
- Time-Division Multiplex Systems (AREA)
Description
1315038 玖、發明說明: 【發明所屬之技術領域】 本發明係關於一種信號聚集之技藝。 【先前技術】 網路處理器通常使用單一通道或多個記憶體通遒,以便 將所需的頻寬提供給各資料處理功能,而在資料處理功能 中係先儲存資料,然後轉送一目的地,例如在網路處理器 所執行的先存再送(st〇re_and-f〇rward)功能。對於寬記憶體 結構而言,通常需要讀取-修改_寫入作業,而對於多通道設 計而言,可使用交插區段位址或"分解"(”stripping”)技術來 將記憶體存取散佈到該等通道,以便可使用所有的通道。 歐洲專利公告號第1242883號案於圖1揭示一種平行硬體 為基礎之多執行緒處理器。該處理器包含一協調多個系統 功能之一般用途處理器,以及複數個微引擎,其支持多重 程式執行緒。該處理器亦包含一記憶體控制系統,其具有 一第一記fe體控制器,其根據多個記憶體是否係引導至一 偶數記憶庫或-奇數記憶庫而分類該等多個記憶體參考, 以及-第一 5己憶體控制器,其根據多個記憶體是否係讀取 參考或寫入參考而最佳化該等多個記憶體參考。 歐洲專利公告號第124簡號案之多執行緒處理器類似 於本案❸所示之處理系統。然而本發明提供完全不同的程 式引擎及記憶體控制器操作之方式。在本發明中,該等記 憶體控制器表示記憶體轉換完成之方式及該等程式引擎偵 測來自該等記憶體控制器之信號以決定記憶體轉換完成之 85246-950810.doc 1315038 方法均不同於歐洲專利公告號第1242883號案。 【發明内容】 本發明之特徵為一種方法,該方法包含下列步驟··使用 複數個記憶體通道將資料轉移到若干程式引擎;將該資料 剖析到該等記憶體通道中之至多兩個通道;以及建立至多 兩個邏輯狀態,用以通知一記憶體資料轉移作業的完成。 【實施方式】 架構: 請參閱圖1 ’ 一電腦處理系統1 〇包含一平行的硬體式多緒 網路處理器12。該硬體式多緒處理器12係耦合到一記憶體 系統或έ己憶體資源14。1己憶體系統14包含動態隨機存取記 fe 體(Dynamic Random Access Memory ;簡稱 DRAM)14a及 靜態隨機存取記憶體(Static Random Access Memory ;簡稱 SRAM) 14b。處理系統i〇尤其適用於可被分成若干平行的 子工作或功能的工作。更具體而言,硬體式多緒處理器12 適用於頻見導向而非執行時間導向(latetlCy 〇riente(j)的工 作。硬體式多緒處理器12具有多個功能性微引擎或程式引 擎16a-16h (共同地稱為程式引擎16) ’每一程式引擎具有多 個受硬體控制的執行緒(thread),該等執行緒係同時作用, 且獨立地執行一特定的工作。 每一程式引擎16都維護硬體的程式計數器、及與程式計 數器相關聯的狀態。實際上,一些對應組的執行環境 (context)或執行緒可同時對每一程式引擎16作用,但是任 何時間只有一個執行緒在工作。 85246-950810.doc -7- 1315038 在該例子中,八個程式引擎1 6a-16h係示於圖1。每一程 式引擎16a-16h處理八個硬體執行緒或執行環境。該等八個 程式引擎16a-16h係配合其中包括記憶體資源14及匯流排 介面(圖中未示出)的共用資源而工作。硬體式多緒處理器12 包含一動態隨機存取記憶體(DRAM)控制器1 8a及一靜態隨 機存取記憶體(SRAM)控制器1 8b。通常係將DRAM記憶體 14a及DRAM控制器18a用來處理大量的資料,例如,處理來 自網路封包的網路酬載。係將SRAM記憶體14b及SRAM控 制器18b用於低存取時間且快速存取工作的連網實施例,例 如存取查詢表、核心處理器20的記憶體、及類似的元件。 該等八個程式引擎16a-16h根據資料的特性而存取DRAM 記憶體14a或SRAM記憶體14b。因此,係將低存取時間且低 頻寬的資料儲存在SRAM記憶體14b,且自SRAM記憶體14b 提取此種資料;而係將較高頻寬但存取時間不是那麼重要 的資料儲存在DRAM記憶體14a,且自DRAM記憶體14a提取 此種資料。該等程式引擎16可對DRAM控制器18a或SRAM 控制器18b執行一記憶體查詢指令。 硬體式多緒處理器12亦包含一處理器核心20,用以載入 對該等程式引擎16的微碼控制。在該例子中,雖然可將其 他類型的處理器核心用於本發明之實施例,但是該處理器 核心 20是由 Intel® Corporation (位於 Santa Clara, CA)設計 的XScale™型架構。 處理器核心20執行諸如處理通訊協定、異常狀況、以及 該等程式引擎16諸如在邊界狀況中傳送出封包以供更詳細 85246-950810.doc 1315038 的處理時對封包處理的額外支援等的—般用途電腦類型的 功能。 處理器核心20執行一作業系統(圖中未示出)。處理器核 心20可經由該作業系統(〇s)而呼叫函式,以便對程式^擎 16a-16h進行作業。對於實施為XScaleTM架構的核心處理器 2〇而言,可使用諸如Microsoft® c〇rp〇rati〇n (位於^缝,
Washington)的 Microsoft® NT即時作業系統、WindRive产公 司(位於Alameda,California)的VxWorks®即時作業系統或 可經由網際網路而取得的免費·軟體作業系統等的作業系 統。 ’、 可以SRAM或DRAM記憶體存取來解釋硬體多緒執行的 優點。舉例而言,由一執行環境(例如Thread_〇)向其中一個 程式引擎16(例如程式引擎16a)要求的一 3尺八%存取將使 SRAM控制器i8b啟動一個對SRAM記憶體丨朴的存取。 SRAM控制器18b取得SRAM記憶體14b的控制權,自sram 記憶體14b提取資料,並將資料送回到一提出要求的程式引 擎16。 在一 SRAM存取期間,如果其中一個程式引擎16卜16匕具 有可作業的-單-執;緒’則該程式引擎將暫停活動到自 SRAM記憶體14b送回資料為止。 藉由在每一程式引擎16a_16h内採用硬體執行環境切換 ,該硬體執行環境切換可讓具有特有程式計數器的其他執 行%境在相同的程式引擎中執行。因此,當第一執行緒 Thread—0正在等候所讀取資料送回時,諸如等的另 85246-950810.doc 1315038 =仃緒可工作。在執行期間,Η存取⑽AM記 當/1"叶1存取該,且~心正在; 該SRAM單元工作時,母, #如Thread-2相-個新的執行緒現 在可在程式引擎16中工作。Threa〇可在某—段時間中工 作’直到Thread」需要存取記憶體或執行某—其他的長執 丁寺門(作業(例如取得一匯流排介面的控制權)為止。因此 ’多緒處理器12可以同時有一匯流排作業、-SRAM作業、 及^~DRAM作業,而其中一個程式引擎咐成或操作所有 孩等作業,且使-個或多個執行環境可執行更多的工作。 硬體執行環境切換亦使各工作的完成同步。例如,兩個 執行緒可存取諸如SRAM記憶體14b等的共用記憶體資源。 當諸如SRAM控制器18b及DRAM控制器l8a等的每一各別 的功能單元完成其中一個程式引擎的執行緒或執行環境所 要求的一工作時,將回報一通知完成了 一作業之旗標。當 程式引擎16a-16h接收該旗標時,程式引擎16&_1611可決定要 開啟哪一執行緒。 硬體式多緒處理器12的一個應用例子是作為一網路處理 器。作為一網路處理器時’硬體式多緒處理器12係連接到 諸如一媒體存取控制器(Media Access Controller ;簡稱 MAC)裝置等的網路裝置,例如一 1〇/1〇〇BaseT 〇ctal MAC 或一符合IEEE 802.3的高速以太網路(Gigabit Ethernet)裝 置。一般而言,作為一網路處理器時,硬體式多緒處理器 12可連接到任何類型的通訊裝置或介面,用以接收或傳送 大量的資料。於一連網應用中工作的電腦處理系統丨0可接 85246-950810.doc -10- 1315038 收網路封包,並以一種平行的方式處理這些封包。 程式引擎中之暫存器: 請參閱圖2,圖中示出該等程式引擎16中之一例示程式引 擎16 a。忒私式引擎16 a包含一控制儲存單元3 〇,該控制错 存單元30在一例子中包含一存有4〇96個指令之RAM,每一 指令為40位元的寬度。該RAM儲存程式引擎16a所執行的一 微程式。處理器核心20 (圖1)可載入控制儲存單元3〇中之該 微程式。 除了一執行緒所局部使用的事件信號之外,程式引擎“a 採用整體性的信號狀態(signaling state)。使用信號狀態時 ”執仃緒可將-信號狀態廣播到所有的程式引擎 及等I式引學中〈任—執^緒及所有的執行绪可分支這 些信號狀態。 =文所述’程式引擎16a支援八個執行環境的多緒執行 。=。的理由是:另-執行緒發出-記憶體查詢之後 員寺到該查詢完成後才能執行更多的工作,而多緒執 在該另一執行緒發出-記憶體查詢之後即 開始執仃。行對維持程以丨擎… 行是相當重要的,這是因,料《硬體執 。多緒執行可讓該等的:取時間是相當長的 -獨立工作,而隱藏記._的=丁=數個執行緒的有 程式引擎16a為了可以得到 有其本身的暫存器組、程二、的執行環境切換,而設 關的本地暫存器。使每 〜為、及與特定執行環境相 仃%境有—份拷貝時,在每一 85246-950810.doc 1315038 次執行環境切換時將無須移動與特定執行環境相關的資訊 進出共用的記憶體及程式引擎。當其他的執行環境等候通 常為外部記憶體存取的輸入-輸出(I/O)作業完成時,或等候 來自另一執行環境或硬體單元的一信號時,快速的執行環 境切換可讓一執行環境執行運算。 一般用途暫存器 程式引擎16a維護八個程式計數器及八組與執行環境相 關的暫存器,而執行八個執行環境。有若干種與執行環境 有關的暫存器,例如若干一般用途暫存器(General Purpose Register;簡稱GPR)32、若干程式間代理人暫存器(圖中未 示出)、若干靜態隨機存取記憶體(SRAM)輸入轉移暫存器 34、若干動態隨機存取記憶體(DRAM)輸入轉移暫存器36 、若干SRAM輸出轉移暫存器38、及若干DRAM輸出轉移暫 存器40。 該等GPR 32係用於一般的程式用途。係在程式的控制下 ,唯一地讀取及寫入該等GPR 32。當將該等GPR 32用來作 為一指令的來源時,會將運算元供應到一執行資料路徑 44 ° 該執行資料路徑44可取得一個或兩個運算元,執行一運 算,且或許會窝回一結果。執行資料路徑44包含一内容可 定址記憶體(Content Addressable Memory ;簡稱CAM)45。 CAM 45的每一資料項儲存一個32位元的值,可將該32位元 的值與一來源運算元比較。係以平行的方式比較所有的資 料項,且該查詢的結果是一個6位元的值。 85246-950810.doc -12- !315〇38 當鱗GPR32被用料為—指令巾之—目㈣時,係以 ,行資料路㈣的結果窝人該等咖32。程式引擎w亦包 f轉移暫存器34、36、38、及40,且係將該等ι/〇轉移暫 存Μ來將資料轉移進出程式引擎16a、以及諸如抓趙記 憶體14a及SRAM記憶體! 4b等在程式引擎i ^外部的各 整遵暫存器 程式引擎16a亦包含轉移暫存器34、36、38、及4〇。係將 轉移暫存器34、36、38、及40用來將資料轉移進出程式引 擎16a、〃及諸如DRAM&sram等在該程式引擎外部的各 =置。圖2中示出了四類的轉移暫存[亦即輸人轉移暫存 器及輸出轉移暫存器。 當將該等輸入轉移暫存器用來作為一指令中之—來源時 ,該等輸人轉移暫存器將各運算元供應到執行資料路㈣ ;而當將輸出轉移暫存器用來作為一指令中之一目的地時 ,係以來自執行資料路徑44的結果寫入該等輸出轉移暫存 器。 本地控制及狀態暫存器(CSRd 本地控制及狀態暫存器(Control and Status Register;簡 稱CSR)37係在執行資料路徑44的外部,且存放有特定用途 的資訊。可以特殊的指令(local一csr_rd&1〇eal—csr—讀取 及寫入該等本地CSR 3 7,且存取該等本地CSR 3 7的頻度通 常係小於存取資料路徑暫存器的頻度。 下一鄰近者暫存器 程式引擎16a亦包含一百二十八128個下一鄰近者(Next 85246-950810.doc •13- 1315038 簡稱岡暫存E,該等暫存器合而被稱為膽暫 存器35。當將每一 NN暫存器35用來作為一指令中之一來源 時,該顧暫存器35亦將運算元供應到執行資料路徑44^ 不限於一鄰近的程式引擎之一外部實體、或每一ΝΝ暫存器 35所在的相同私式引擎16a寫入每一暫存器h。當指令 中將暫存器編號變碼時,係由與執行環境相關的—作業選 擇特定的暫存器,或者作為一環式作業時,係經由諸如該 等CSR暫存器中之NN—put (丽窝入位址)及簡―^ (nn讀 取位址)而選擇特定的暫存器。 ’ 一=前一鄰近的程式引擎以NN_Put作為一目的地而執行 厂指令時,使用各NN一Put暫存器。寫入該暫存器中的值所 選擇之NN暫存器,然後遞增NN_Put中之值〇27的值將繞回 到〇)。將該暫存器中之值與NN—Get暫存器中之值比較,以 便決定何時要觸發NN_Ful]^ NN_Empty狀態信號。 一當NN暫存器35被用來作為指令中的來源欄位所指定的 了來源時,使用NN_Get暫存器。讀取該暫存器的值所選擇 之NN暫存器,然後遞減NN_Put中之值(127的值將繞回到〇) :將該暫存器中之值與NN_Put暫存器中之值比較,以便決 疋何時要觸發NN_Full及NN—Empty狀態信號。 更具體而言,當將每一NN暫存器35用來作為一指令中之 一目的地時,通常係將該指令的結果資料自程式引擎16&傳 送到另—鄰近的程式引擎。另一方面,當將該NN暫存器% 用來作為一指令中之一來源時,係將指令的結果資料寫到 程式引擎16a中所選擇的NN暫存器35。並非像在將每一 nn 85246-95〇81〇.d〇c 1315038 暫存器3 5用來作為一目的地時將該等資料傳送出程式引擎 1 6a。係以將於下文中說明的一種執行環境管線化方法來使 用每一 NN暫存器35。 亦使用一本地記憶體42。本地記憶體42包含位於程式亨丨 擎16 a中之可定址的儲存單元。係在程式的控制下,唯一地 讀取及寫入本地記憶體42。本地記憶體42亦包含所有程式 引擎16共用的一些變數。程式引擎16&_1611在諸如各功能性 管線階段期間於各指定的工作中修改共用的變數。
執行環境營绫化:
每一程式引擎16支援八個執行環境的多緒執行。此種^ 式的一個理由是:另一執行緒發出一記憶體查詢之後,.交 須等到該查詢完成後才能執行更多的工作,而多緒執行习 讓一執行緒在該另一執行緒發出一記憶體查詢之後即開茶 執行。此種多緒執行的特性對維持程式引擎…他的有動 ^硬體執行是相當重要的,這是因為記憶體的存取時間 是相當長的。換言之,如果只支援單緒執行,則程式引擎 為了等候查詢的完成,將間置相當多數目的週期,因而蜗 =整體的運算速率。多緒執行可讓—程以丨擎執行跨趣 固。執行緒的有用之獨立工作,而隱藏記憶體的存取時間。 =引擎l6a-16h (圖分別具有八個可用之執行環境。 環境3ΓΤ執行環境切換’程式引擎中的八個執行 „„ 母—執行環境都有其本身的暫存器組、程式計數 行環與特定執行環境相關的本地暫存11。使每一執 Μ -份拷貝時,在每一次執行環境切換時將無須移 85246-9508l0.doc -15· 1315038 動與特定執行環境相關的資訊進出共用的記憶體及程式引 擎暫存器。當其他的執行環境等候通常為外部記憶體存取 々一 〇作業70成時’或等候來自另K亍環境或硬體單元的 一信號時,快速的執行環境切換可讓_執行環境執行運算。 現在請參閱圖5,係利用CAM 45a-45c而在程式引擎 16a_16h上維護—特定的指定工作之執行環境。係利用丽 暫存器35a_35e而以—種類似於裝配線之管線化方式處理 封匕以便將資料自—程式引擎傳送到—後續的鄰近程式 丨擎係將資料自一階段9〇a傳送到—後續的階段_,然 =自階段90b傳送到該管線的階段心,其他依此類推。換 將資料傳送到該管線的次一階段,而讓處理器週 期中之各步驟重疊。犬盆杂不—# 里®尤其备正在執行一指令時,可提取次 一指令,此即意指:任何一车 ,、, 17時間可將一個以上的指令放在 “線,,中,且每一指令係在一不同的被處理階段。 欠例如,如圖5中之例子所示,可利用_暫存器仏仙將 為料自Μ管線中之—程式引擎16傳送到次一程式引擎Μ。 ,種實施管線化處理的方法之優點在於:每—階段術·。的 =45:4=^資訊對_階段的所有八個執行 貝地有效的。當被處理的封包之最少資料必須 Γ通過執行環境管線時,可使用該執行環境管線方法。、 _g貝取/寫入記憶體作f . 丨 在記憶體寫人作業中,係在發出“命令之前,先將寫 入資料載入輸出轉移 合人而丄… 面’對於記憶體讀取 έ ’係將自一記憶體讀取的資料送回到輸入轉移暫 85246-950810.doc -16- 1315〇38 存器。於完成-記憶體作業時’可通知 當涉及大量的資料時,A τ 钒仃%境。 ^ ± ㈣4了執行網路處理器所用的先存 再送資料之讀取/寫入作業,亦Τ 3 J的先存 r Έ .. θ 、不疋使用一極寬的單一記憶 體通運,而疋可使用多個記憶體 的多個記憶體通道用來將次料W 將/、各彀序相關聯 u米將貝料漬寫到這些通道時 極寬的單一通道記憶體之使用。
可實施多個記憶體通道,以便提供先存再送網路處理器 所需的頻寬、以及極高頻率的讀取_修改-寫入作業。在一多 通道設計中’需要交插區段位址(亦即”分解,,技術)來將存取 散佈到該等通道。因此,可將資料,,分解"為諸如64至128位 元组等的較小區段大小。記憶體命令亦指定—資料段長度 。換H可使用-單—的記憶體通道來傳送資料區段, 或者可將該等資料區段散佈到多個記憶體通道(例如兩個 記憶體通道)。使用兩個記憶體通道的程序符合諸如圖⑽ 示的多緒處理器12等的網路處理器之嚴峻的效能要求,其
中涉及顯著增加的資料通訊量、1進出所要求的記憶體的 頻繁之讀取及寫入作業。 當執行資料分解時,要追蹤該作業的完成。當使用一個 記憶體通道時,係將先進先出(First_In,Fim_〇ut ;簡稱 FIFO)規則應用於該等資料區段。然而,當將該等資料區段 散佈到兩個記憶體通道時,並非在每一通道上同時完成該 作業,因而可使用追蹤程式的完成之其他程序。 當可存取記憶體晶片中之不同的記憶庫時,具有大於一 個記憶位置的一長度之記憶體作業可跨越各記憶體單元, 85246-950810.doc •17- 1315038 或者可將該等記憶體作業分類成一記憶體内的若干各別的 命令。此外,將一完成指示送回到—發出一記憶體命令的 執行環境增加了決定何時完成了一分割記憶體查詢的兩個 部分之複雜性。 為了達到此一目的,可使用一信號匯聚器邏輯(例如一旗 標或正反器)。該信號匯聚器邏輯利用記憶體命令決定記憶 體查詢是否在一記憶體控制器内的各記憶體通道或各fif〇 之間有分割。此外,該信號匯聚器邏輯設定一狀態正反器 ,用以指示—特定的記憶體查詢是預期有-個或兩個信號 。如果在記憶體控制器發出一完成信號時只預期有一個信 號’則乂即將該信號傳送到發出的處理環境。如果在偵測 到該查詢的第一信號時預期有兩個信號,則設定另一個正 反器’以便在偵測到該查詢的第二信號時可於發出的處理 緒上設定該信號。 办即’將該信號匯聚器邏輯加入讀取/寫入命令, 示該資料區段是否被分割或散佈到兩個記㈣通道。如 7龍聚以輯指示並未發生任何散你,則應用FIF0 則於70成對取後一個資料區段的處理時 將-完成信號或旗標發出到一發出的; 指示該等資料區段被㈣到兩個記憶體 ^ 個信號:⑽完成第—記憶體通道時的=期有 於芜成第二記憶體通道時的一第二 、及丨 ,當記憶體控制器自每—記憶道^收=後一種情形 該記憶體控制器傳送—完成信號。接收心成信號時 B5246-950810.doc 1315038 為了達到此一目的,程式引擎1 6a-1 6h使用一種一般性執 仃绪L戒傳遞(Generalized加―簡稱GTS)技 術八中每一執行緒可對每一 I/O命令',確認訊息”指定1至16 個仏戒例如,多緒處理器12具有16個程式引擎,每一程 式引擎執仃8個執行環境或執行緒,將需要匯聚兩個正反器 狀心機的總共2,4〇8個信號(亦即,ι6χ16χ8=2〇48)。因此, 每處理緒可使用施加到多緒處理器12的16個信號,多緒 處理器12具有16個程式引擎,而每一程式引擎具有8個執行 環境或處理绪,因而得到2048個信號。 QTS信號傳遞機例:_ GTS信號傳遞機制可有利地取㈣號匿聚邏輯,即可讓 記憶體查詢跨越兩個記憶體通道。因&,可去除用來指示 貝料區段是否散佈到兩個記憶體通道的旗標。使用gts信 號傳遞機制時’即可不需要用於跨越兩個記憶體通道或被 刀d到记隐體控制器的兩個FIFO的記憶體查詢之信號匯 聚邏輯。 如前文所述,若沒有GTS最佳化,則記憶體資料作業將 需要三個旗標:⑴用來指示是否已剖析或散佈的一旗標( 信號匯聚器邏輯或硬體旗標);⑺用來指示第一記憶體通道 的完成之一旗標(邏輯旗標);以及(3)用來指示第二記憶體 通道的完成之一旗標(邏輯旗標)。 如前文所述,記憶體資料最佳化採用邏輯軟體旗標。記 憶體控制II檢查信號匯聚器邏輯的值1果信號匯聚器邏 輯的值指示並無散佈,則記憶體控制器撿查第一旗標的值 85246-950810.doc •19- 1315038 。當以%成該憶ft通道上的作業時,即更新該旗標。如 果这值扣π有一散佈,則記憶體控制器使用兩個邏輯旗標 ,而等候來自兩個記憶體通道的完成信號。 因此’右使用兩個邏輯旗標,即可取代信號匯聚器邏輯 硬體旗標,因而有利地提供了記憶體資料轉移及處理。第 -旗標指示第-記憶體通道中的記憶體作業之完成,而第 二旗標指示第二記憶體通道中的記憶體作業之完成,或者 在替代實施例中指示資料並未被散佈,在此種情形中,係 針對記憶體作業而考慮第一旗標。 在該等資料區段被散佈到兩個記憶體通道的情形中,記 fe·體控制器接收兩個完成信號。 |哟啕個叩令的記憶體命令 求-偶數的信號1在資料段傳輸開始時完成了 該部分時,即觸發記憶體命令中指定的偶數信號。^ 料段傳輸結束時完成了該命令的 ^貝 勺β邵为時,該記憶體 器觸發該信號,而該信號是高於該記憶體命令指默 之-信號。發出該記憶體命令的執行緒檢查兩 :: 記憶體命令中指定的偶數信號以及A ° ^ 號,以便以是否完成了該記憶體作業次—較高的奇數信 在記憶體命令並未被分割的情 未發生資料的分解。亦即,對於 进 ;亚未被分割的命人 當將命令中指定的偶數信號送回到該處理緒時 s, 制器會觸發一”無分割”信號。因 了 ’ β憶體相 Μ此’發出的勃 個信號,以便決定何時完成該記憶體 丁緒祆查译 ,而不必顧及驾 85246-950810.doc •20- 1315038 '•己隐體命令是否在記憶體控制器中被分割。由於GTS信號 傳遞機制&供了在母一執行環境切換中可重複使用的信號 ,所以將每一 DRAM命令中的兩個信號之處理成本降至最 低,同時可有利地將用於信號匯聚硬體的處理器使用能有 最大的節省。 請參閱圖3,圖中示出了圖!所示之程式引擎。程式引擎 16a、16b、及16c執行各執行環境發出的讀取、寫入、及 作業。例如,程式引擎16a、16b、及16c係經由多個記憶體 通道108、11〇、112、114、116、118而連接到記憶體控制 器18c、i8d、及18e,其中該等記憶體通道提供了先存再送 作業所需的頻寬、及高頻率的讀取/寫入/修改作業。 於冗成一記憶體命令的要求時,記憶體控制器18。l8d 、及18e將一信號傳送到發出的記憶體命令要求,而該信號 指示已完成了該作業。 在諸如圖3所示的一多通道設計中,交插的區段位址將存 取散佈到該等多個記憶體通道108、11〇、112、114、116、 118。 信號120、122及124代表GTS機制的"無分割"旗標。當以 孩等”無分割"旗標信號來設定該等多個記憶體通道丨丨〇、 114、及118時,將指示並未發生資料的分割,且該等多個 記憶體通道108、112、及116決定該記憶體作業的完成,亦 即只在一個通道中轉移資料。 請參閱圖4 ’圖中示出了一記憶體作業程序2〇〇。在步驟 202中,發出諸如一讀取或寫入要求等的一〗/〇記憶體命令 85246-950810.doc -21- 1315038 要求。在步驟204中,將該記憶體命令要求散佈到兩個通道 。在步驟206中,諸如記憶體控制器1 8c等的一記憶體控制 益在第一通道上執行該記憶體命令作業的一第—部分,且 在步驟206中完成該作業。在步驟206中完成該作業的該第 部分之後’記憶體控制器18c在步驟2丨〇中將—完成信號 傳送到程式引擎1 6a。在此同時,因為已分割了該命令,所 以圮憶體控制器丨8c在步驟2 12中於第二通道上執行該記憶 令作業的一第二部分,且在步驟2丨4中完成了該作業。 於疋成之後,記憶體控制器1 8c在步驟2 16中將一完成信號 傳运到程式引擎16&<}在步驟218中,程式引擎16a等候來自 孩第一作業(步驟206至步驟210)及第二作業(步驟212至步 驟216)的一完成信號’以便觸發該I/O記憶體命令要求已完 成之信號220。 換1之’係在各記憶體控制器中將I/O記憶體命令要求剖 析為兩個命令。當在資料段傳輸開始時完成了該命令的第 邵分時,即觸發該記憶體命令中指定的偶數信號。當在 貝料段傳輸結束時完成了該命令的第二部分時,該記憶體 控制器觸發高於該記憶體命令指定的信號之一信號。如前 文所述,發出該記憶體命令的執行緒檢查兩個信號(亦即, 孩I/O記憶體命令要求中指定的偶數信號、以及次一較高的 可數信號)’以便決定現在已完成了該記憶體作業程序2〇〇。 凊參閱圖5,圖中示出了—記憶體作業程序3〇()。如前文 所述,在步驟302中,發出了諸如讀取或寫入要求等的一 ι/〇 記憶體命令要求。在步驟3〇4中,並未將該記憶體命令要求 85246-950810.doc •22· !315〇38 政佈到兩個通道。諸如記憶體控制器丨8c等的一記憶體控制 器在步驟306中於第—通道中執行該記憶體命令作業,且在 步驟308中完成了該作業。在步驟3〇8中完成了該作業之後 ,记憶體控制器18c在步驟31〇中將一完成信號傳送到程式 引擎16a。於芫成之後,在此同時,記憶體控制器18c於步 驟3 12中將一”热分割”信號傳送到程式引擎丨。程式引擎 16a在步驟314中等候來自該記憶體控制器的一完成信號。 在此種情形中,因為並未分割該命令,所以程式引擎丨6a接 收到步驟312中所產生的該"無分割”信號。因此,在步驟316 中,只使用該記憶體控制器傳送到該程式引擎的唯一的完 成信號來決定該I/O記憶體命令要求的完成。 其他實施例: 在刖文中參照圖1-5所述之例子中,電腦處理系統1〇可利 用各種網路處理器、記憶體控制器、及記憶體通道來實施 各程式引擎16。 我們S 了解,雖然已參照本發明的詳細說明而說明了本 發明,但是前文中的說明係用來舉例說明,而非限制本發 明的範圍,且係由最後的申請專利範圍之範圍來界定本發 明的範圍《其他的方面、優點、及修改係在下文的申請專 利範圍之範圍内。 【圖式簡單說明】 圖1是一處理系統之一方塊圖。 圖2是可有利地實施本發明的一實施例的圖1所示處理系 統之一詳細方塊圖。 85246-950810.doc 23· 1315038 圖3是可有利地實施本發明的一實施例的一種一般性執 行緒信號傳遞機制之一方塊圖。 圖4是示出一記憶體資料轉移作業的細節之一流程圖。 圖5是示出另一記憶體資料轉移作業之一流程圖。 【圖式代表符號說明】 10 電腦處理系統 12 硬體式多緒網路處理器 14 記憶體系統 14a 動態隨機存取記憶體 14b 靜態隨機存取記憶體 16,16a - 16h 程式引擎 18a 動態隨機存取記憶體控制器 18b 靜態隨機存取記憶體控制器 20 核心處理器 30 控制儲存單元 32 一般用途暫存器 34 SRAM輸入轉移暫存器 35,35a - 35c 下一鄰近者暫存器 36 DRAM輸入轉移暫存器 37 本地控制及狀態暫存器 38 SRAM輸出轉移暫存器 40 DRAM輸出轉移暫存器 42 本地記憶體 44 執行資料路徑 85246-950810.doc -24- 1315038 45,45a - 45c 内容可定址記憶體 90a,90b,90c 階段 108,110,112, 記憶體通道 114,116,118 18c,18d,18e 記憶體控制器 120,122,124 信號 -25- 85246-950810.doc
Claims (1)
- c月*日修正/更正 Γ3 1 112586號專利申請案 中文申請專利範圍替換本(96年10⑴ 拾、申請專利範圍: 1. 一種用於轉移資料之女、1 具竹 < 万法,包含下列步驟: 使;用複數個記憶體通道將資料轉㈣複數㈣式引擎; 將该貝料剖析到該複數個記憶體通道中之有選擇地— 個通道或兩個通道;以及 建立有選擇地一個遥親此A(s > 、輯狀悲或兩個邏輯狀態,用以通知 一記憶體資料轉移作業的完成。 2_如申請專利範園第丨項之方 m .. 万去進一步包含下列步驟:利 用孩複數個記憶體通道自相 、 巩目相關於该複數個程式引擎的福 數個記憶體控制器讀取資料。 3.如申請專利範圍第1項之女,土 万去’進一步包含下列步 用孩複數個記憶體通道將資料 „ ^ 科寫目關於該複數個程式 引擎的複數個記憶體控制器。 4_如申請專利範圍第1項之方法 二一加Λ 進—步包含下列步驟:建 儿個一般性執行緒信號傳遞機制。 5. 7請專利範圍第4項之方法,其中該-般性執行緒作號 “機制指定用於記憶體資料轉移作業的各信號。, 6. 如申請專利範圍第5項之方法, 丄、, 其中孩等信號包含自一至 十7Τ個信號的一範圍。 主 7. 如申請專利範圍第4項之方法,進—步包含下列 立所要轉移的資料之一資料段傳輪長度。 …建 8. 如申請專利範圍第7項之方法,其 與該記憶體資料轉移作業相關聯。ι又專輸長度係 9. 如申請專利範圍第4項之方法,進一步包含下列步 85246-961024.doc ιυ 1315038 該記憶體資料轉移作業分佈到兩個記憶體通道。 Π).如申請專利範園“項之方法,纟中該等兩個邏輯狀態包 含該-般性執行緒信號傳遞機制中之兩個正反器信號。 U.如申請專㈣圍第1G項之方法,其中該等兩個錢器信 號中、帛正反器仏號指示該記憶體資料轉移作業攸 止於該複數個記憶料道巾之_第—記㈣通道。、’、 12·如申請專,範園第i㈣之方法,其中該等兩個正反器信 唬中义弟—正反器信號指示該記憶體資料轉移作業攸 止於該複數個記憶體通道中之—第—記憶體通道,立中 該資料係被散佈到該第一記情 狀 道。 己“通道及-弟二記憶體通 13·如申請專利範圍第1G項之方法,進—步包含下列步驟: 將該資料剖析到複數個資料區段。 M.如申請專利範圍第13項之方法,其中該等被剖析的資料 區段之大小範圍係自64位元組至128位元組。 15. -種其上儲存有用㈣移資料之若干指令之儲存媒體, 當一機器執行該等指令時,將導致下列的步驟: 使用複數個記憶體通道將資料轉移到複數個程式引擎. 將該資料剖析到該複數個記憶體通道中之有選擇地一 個通道或兩個通道;以及 一建立有選擇地一個邏輯狀態或兩個邏輯狀態,用以通知 €憶體資料轉移作業的完成。 16.::請:利範圍第15項之儲存媒體,其中該儲存媒體進 ’具有用來執行下列步辨夕沪人. 扣令.利用該複數個記憶 85246-961024.doc引擎的複數個記憶體控制 1315038 體通道自相關於該複數個程式 器讀取資料。 其中I亥儲存媒體進 •利用該複數個記憶 程式引擎的複數個記 17.如申請專利範圍第15項之儲存媒體 一步具有用來執行下列步驟之指令 體通道將資料寫到相關於該複數個 憶體控制器。 18. 如申請專利範圍第1 5項 一步具有用來執行下列 行緒信號傳遞機制。 之儲存媒體,其中該儲存媒體進 步驟之指令:建立一個一般性執 19. 如申請專利範園第18項之儲存媒體,其中該—般性 緒信號傳遞機制指定用於記憶體資料轉移作業的各信號 20. 如申晴專利範圍第19項之儲存媒體,其中該等信號包含 自一至十六個信號的一範圍0 21. 如中料利範圍第18項之儲存媒體,其中該儲存媒體進 一步具有用來執行下列步驟之指令:建立所要轉移的資 料之一資料段傳輸長度。 / 22. 如申4專利範園第21項之儲存媒體,其中該資料段傳輸 長度係與該記憶體資料轉移作業相關聯。 23·如申叩專利範園第18項之儲存媒體,其中該儲存媒體進 步具有用來執行下列步驟之指令:將該記憶體資料轉 移作業分佈到兩個記憶體通道。 24.如申^專利範園第18項之儲存媒體,其中該等兩個邏輯 狀〜匕i邊般性執行緒信號傳遞機制中之兩個正反器 85246-961024.doc 1315038 V年―月♦曰修正/更企/袖飞^ 信號。 25. 如申請專利範園第24項之儲存媒體,其中該等兩個正 器信號中之一第一正反器作號扣;今、泣Α 反 奋彳σ就扣不该記憶體資料轉移作 業終止於該複數個記憶體通道中之一第一記憶體通道 26. 如申請專利範圍第24項之儲存媒體,其中該等兩個正。 器信號中之一第二正反哭作骑扣-今 汉m彳„唬扣不孩記憶體資料轉移 業終止S «難記憶料道中之―第―記憶體 其中該資料係被散佈到該第一記憶體通道 體通道。 "己憶 其中該儲存媒體進 將該資料剖析到若 其中該等被剖析的 27. 如申請專利範圍第24項之儲存媒體 一步具有用來執行下列步驟之指令 干較小的資料區段。 28. 如申請專利範圍第27項之儲存媒冑7…^ 29 資料區段之大小範園係自64位元組至128位^组 一種多重處理系統,包含: 複數個程式引擎,每— 控制器,兮答 式引擎係相關於複數個記憶 制…寺複數個記憶體控制 利用複數個記愤靜诵、* + 丁 r 1,驟 签、f ^ "通道來轉移資料:將該資料剖析到 寺複數個記憶體通道 • 又有選擇地一個通道或兩個通 、 釋地—個邏輯狀態或兩個邏輯狀態, 以通知一記憶體資 ^ ^ 只竹轉移作業的完成。 30.如申^專利範園第29 A <多重處理系統,進一步句冬 個一般性執行緒俨 進艾包含 唬傳遞機制。 31· —種用於轉移資料 人万法’包含下列步驟: 85246-961024.doc 1315038 Ύ,γ ., 1 d ’d ..;D . 藉由將一資料剖析到有選擇地一個記憶體通道或兩個 记憶體通道以致能該資料至—程式引擎之多個轉移;以 及 建正一般性執行序信號傳遞機制,其中一程式引擎發 出一記憶體命令及一第一數量信號,及該程式引擎檢查 忒第數量彳s娩及一第二數量信號以決定該記憶體命令 的冗成。 32. 如申請專利範圍第31項之方法,其中該i數量信號係 為偶數數I信號,及該第二數量信號係為一奇數數量 信號。 33. 如:請專利範園第31項之方法,進-步包含下列步驟: 決定孩1己憶體命令是否需要剖析資料到兩個記憶體通遒 〇 34. ^申請專利範圍第31項之方法,進-步包含下列步驟: 右这记隐to V令需要剖析資料到一第一記憶體通道及— 第二記憶體通道’於資料之單位之一部份透過該第1己 隱’通迢《轉移%成時發送指定數量信號至該程式 ,及於資料之置a + 早兀义一剩餘部分透過該第二記憶體通道 之轉移完成時發送其他數量信號至該程式引擎。 ^ ^ β專利範圍第3 1項之方法,進-步包含下列步驟: 若H記憶體命令不需要剖析資料到兩個記憶體通道,於 及圮隐命令完成時發送該第一數量信號及該第二數量 信號至該程式引擎。 36. -種用於轉移資料之方法,包含下列步驟; 85246-961024.doc 1315038 從一程式引擎發出多個記憶體命令及相關多個數量信 號; 在多個記憶體控制器決定該等記憶體命令是否需要分 解貝料到一個或兩個記憶體通道,及於各個記憶體命令 完成時送回數量信號; 在該程式引擎偵測從該等記憶體控制器送回之該等數 量信號以決定該等記憶體命令是否已被完成。 3 7.如申請專利範圍第3 6項之方法,其中該等記憶體控制器於 各個記憶體命令完成時送回一偶數數量信號及一奇數數 量信號。 3 8 ·如申請專利範圍第3 6項之方法,進一步包含下列步驟:若 —記憶體命令需要分解資料到一第一記憶體通道及一第 一 δ己憶體通道’於該資料之一部分透過該第一記憶體通道 之轉移完成時’發送一相關於該記憶體命令之第一數量信 號至該程式引擎’及於該資料之剩餘部分透過該第二記憶 體通道之轉移完成時’發送一第二數量信號至該程式引擎 〇 39.如申請專利範圍第36項之方法,進一步包含下列步驟:若 一記憶體命令不需要分解資料到兩個記憶體通道,於該資 料透過一記憶體通道轉移完成時’發送一相關於該吃慘體 命令之第一數量信號及一第二數量信號至該程式引擎。 85246-961024.doc 1315038 柒、指定代表圖: (一) 本案指定代表圖為:第(2 )圖。 (二) 本代表圖之元件代表符號簡單說明: 30 控制儲存單元 32 一般用途暫存器 34 SRAM輸入轉移暫存器 35 下一鄰近者暫存器 36 DRAM輸入轉移暫存器 37 本地控制及狀態暫存器 38 SRAM輸出轉移暫存器 40 DRAM輸出轉移暫存器 42 本地記憶體 44 執行資料路徑 45 内容可定址記憶體 捌、本案若有化學式時,請揭示最能顯示發明特徵的化學式: 85246-950810.doc
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/142,372 US7376950B2 (en) | 2002-05-08 | 2002-05-08 | Signal aggregation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200405167A TW200405167A (en) | 2004-04-01 |
TWI315038B true TWI315038B (en) | 2009-09-21 |
Family
ID=29399884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092112586A TWI315038B (en) | 2002-05-08 | 2003-05-08 | Method and storage medium having instructions for transferring data and multiprocessing system |
Country Status (7)
Country | Link |
---|---|
US (1) | US7376950B2 (zh) |
EP (1) | EP1504349B1 (zh) |
AT (1) | ATE409910T1 (zh) |
AU (1) | AU2003269404A1 (zh) |
DE (1) | DE60323828D1 (zh) |
TW (1) | TWI315038B (zh) |
WO (1) | WO2003098452A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599361B2 (en) * | 2004-07-02 | 2009-10-06 | P-Cube Ltd. | Wire-speed packet management in a multi-pipeline network processor |
US7664127B1 (en) | 2005-04-05 | 2010-02-16 | Sun Microsystems, Inc. | Method for resolving mutex contention in a network system |
US20060236011A1 (en) * | 2005-04-15 | 2006-10-19 | Charles Narad | Ring management |
US20070245074A1 (en) * | 2006-03-30 | 2007-10-18 | Rosenbluth Mark B | Ring with on-chip buffer for efficient message passing |
US7926013B2 (en) * | 2007-12-31 | 2011-04-12 | Intel Corporation | Validating continuous signal phase matching in high-speed nets routed as differential pairs |
TWI425795B (zh) * | 2010-07-29 | 2014-02-01 | Univ Nat Chiao Tung | 追蹤網路封包之處理程序的方法 |
US20120166686A1 (en) * | 2010-12-22 | 2012-06-28 | Joerg Hartung | Method, apparatus and system for aggregating interrupts of a data transfer |
GB2495959A (en) | 2011-10-26 | 2013-05-01 | Imagination Tech Ltd | Multi-threaded memory access processor |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2526691B2 (ja) * | 1990-03-02 | 1996-08-21 | 三菱電機株式会社 | プログラマブルコントロ―ラの制御方法 |
AU2476192A (en) * | 1991-08-16 | 1993-03-16 | Multichip Technology | High-performance dynamic memory system |
EP0630499A4 (en) * | 1992-03-09 | 1996-07-24 | Auspex Systems Inc | ACCELERATION SYSTEM WITH NON-VOLATILE, PROTECTED, WRITABLE RAM CACHE. |
IL105638A0 (en) * | 1992-05-13 | 1993-09-22 | Southwest Bell Tech Resources | Storage controlling system and method for transferring information |
US5689678A (en) * | 1993-03-11 | 1997-11-18 | Emc Corporation | Distributed storage array system having a plurality of modular control units |
US5463643A (en) * | 1994-03-07 | 1995-10-31 | Dell Usa, L.P. | Redundant memory channel array configuration with data striping and error correction capabilities |
US5671377A (en) * | 1994-07-19 | 1997-09-23 | David Sarnoff Research Center, Inc. | System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream |
JPH08278916A (ja) * | 1994-11-30 | 1996-10-22 | Hitachi Ltd | マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路 |
US5615392A (en) * | 1995-05-05 | 1997-03-25 | Apple Computer, Inc. | Method and apparatus for consolidated buffer handling for computer device input/output |
US6308248B1 (en) | 1996-12-31 | 2001-10-23 | Compaq Computer Corporation | Method and system for allocating memory space using mapping controller, page table and frame numbers |
JPH10283329A (ja) * | 1997-04-02 | 1998-10-23 | Matsushita Electric Ind Co Ltd | メモリ排他制御方法 |
US6643746B1 (en) | 1997-12-24 | 2003-11-04 | Creative Technology Ltd. | Optimal multi-channel memory controller system |
US6397273B2 (en) * | 1998-12-18 | 2002-05-28 | Emc Corporation | System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory |
US6334159B1 (en) * | 1998-12-22 | 2001-12-25 | Unisys Corporation | Method and apparatus for scheduling requests within a data processing system |
US6708248B1 (en) * | 1999-07-23 | 2004-03-16 | Rambus Inc. | Memory system with channel multiplexing of multiple memory devices |
US6370668B1 (en) * | 1999-07-23 | 2002-04-09 | Rambus Inc | High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes |
US6370596B1 (en) * | 1999-08-03 | 2002-04-09 | Chameleon Systems, Inc. | Logic flag registers for monitoring processing system events |
US6983350B1 (en) * | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6785835B2 (en) * | 2000-01-25 | 2004-08-31 | Hewlett-Packard Development Company, L.P. | Raid memory |
US6622217B2 (en) * | 2000-06-10 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Cache coherence protocol engine system and method for processing memory transaction in distinct address subsets during interleaved time periods in a multiprocessor system |
US6622218B2 (en) * | 2000-06-10 | 2003-09-16 | Hewlett-Packard Development Company, Lp. | Cache coherence protocol engine and method for efficient processing of interleaved memory transactions in a multiprocessor system |
JP2005196490A (ja) * | 2004-01-07 | 2005-07-21 | Hitachi Ltd | データ多重化のためのシステム及び方法 |
-
2002
- 2002-05-08 US US10/142,372 patent/US7376950B2/en not_active Expired - Fee Related
-
2003
- 2003-05-02 AT AT03752992T patent/ATE409910T1/de not_active IP Right Cessation
- 2003-05-02 EP EP03752992A patent/EP1504349B1/en not_active Expired - Lifetime
- 2003-05-02 AU AU2003269404A patent/AU2003269404A1/en not_active Abandoned
- 2003-05-02 DE DE60323828T patent/DE60323828D1/de not_active Expired - Lifetime
- 2003-05-02 WO PCT/US2003/013687 patent/WO2003098452A1/en not_active Application Discontinuation
- 2003-05-08 TW TW092112586A patent/TWI315038B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US7376950B2 (en) | 2008-05-20 |
EP1504349B1 (en) | 2008-10-01 |
ATE409910T1 (de) | 2008-10-15 |
WO2003098452A1 (en) | 2003-11-27 |
DE60323828D1 (de) | 2008-11-13 |
US20030212852A1 (en) | 2003-11-13 |
TW200405167A (en) | 2004-04-01 |
EP1504349A1 (en) | 2005-02-09 |
AU2003269404A1 (en) | 2003-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US6629237B2 (en) | Solving parallel problems employing hardware multi-threading in a parallel processing environment | |
TWI229259B (en) | A method and related apparatus and computer program product for distributed memory control and bandwidth optimization | |
EP1236088B1 (en) | Register set used in multithreaded parallel processor architecture | |
US7546444B1 (en) | Register set used in multithreaded parallel processor architecture | |
CA2391833C (en) | Parallel processor architecture | |
US6668317B1 (en) | Microengine for parallel processor architecture | |
US7822885B2 (en) | Channel-less multithreaded DMA controller | |
US7302549B2 (en) | Processing packet sequence using same function set pipelined multiple threads spanning over multiple processing engines and having exclusive data access | |
US7526636B2 (en) | Parallel multithread processor (PMT) with split contexts | |
US6944850B2 (en) | Hop method for stepping parallel hardware threads | |
TWI226576B (en) | Registers for data transfers | |
US20050060705A1 (en) | Optimizing critical section microblocks by controlling thread execution | |
US20100045682A1 (en) | Apparatus and method for communicating between a central processing unit and a graphics processing unit | |
US7610451B2 (en) | Data transfer mechanism using unidirectional pull bus and push bus | |
TWI315038B (en) | Method and storage medium having instructions for transferring data and multiprocessing system | |
CN108845829A (zh) | 一种系统寄存器访问指令的执行方法 | |
US20150268985A1 (en) | Low Latency Data Delivery | |
US7191309B1 (en) | Double shift instruction for micro engine used in multithreaded parallel processor architecture | |
JP2006515446A (ja) | 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム | |
JPH0340169A (ja) | 多重プロセツサシステムおよび複数の処理装置を制御する方法 | |
JPH0816539A (ja) | データ転送方法、それを実現する分散メモリ型並列計算機および要素プロセッサ | |
JPH02136949A (ja) | 入出力制御装置 | |
JPH03223980A (ja) | 計算機方式 | |
JP2001184322A (ja) | マルチプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |