TW544629B - Thread signaling in multi-threaded network processor - Google Patents
Thread signaling in multi-threaded network processor Download PDFInfo
- Publication number
- TW544629B TW544629B TW089127208A TW89127208A TW544629B TW 544629 B TW544629 B TW 544629B TW 089127208 A TW089127208 A TW 089127208A TW 89127208 A TW89127208 A TW 89127208A TW 544629 B TW544629 B TW 544629B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- thread
- register
- processing
- patent application
- Prior art date
Links
- 230000011664 signaling Effects 0.000 title description 2
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 9
- 238000005538 encapsulation Methods 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 16
- 238000004891 communication Methods 0.000 abstract description 14
- 238000012546 transfer Methods 0.000 description 19
- 239000013598 vector Substances 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 101100532856 Arabidopsis thaliana SDRA gene Proteins 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 206010011224 Cough Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007790 scraping Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Exchange Systems With Centralized Control (AREA)
- Time-Division Multiplex Systems (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
- Bus Control (AREA)
Description
544629 五、發明說明α) 本發明係有關網路封包處理。 平行處理是在一計算處理同時發生事件資訊處理的一有 效率形式。平行處理要求可在一電腦同時執行許多程式, 而與循序處理不同。在一平行處理器的内文中,平行包括 可同時執行超過一件事情。不像所有工作在單一平台循續 執行的一範例、或工作在指定平台上執行的一管線機器, 隨著平行處理,複數個平台之其中每一者可執行所有工作 。即是,大體上,全部或複數個平台在一問題的相同或共 同元件上同時工及個別工作。某些問題適於透過應用平行 處理解決。 發明概述 根據本發明的一觀點,網路封包處理的一方法用包括接 收網路封包及在具有複數個程式執行緒的網路封包上操作 ,以影響該等封包的處理。 圖式之簡單說明 圖1係採用一以硬體為基礎之多重執行緒處理器的一通 訊系統方塊圖。 圖2是圖1的該以硬體為基礎之多重執行緒處理器的一詳 細方塊圖。 圖3是在圖1和2的以硬體為基礎之多重執行緒處理器所 採用的一微型引擎功能單元方塊圖。 圖4是使用在以硬體為基礎之多重執行緒處理器所使用 的提高頻寬操作一記憶體控制器方塊圖。 圖5是在以硬體為基礎之多重執行緒處理器使用的延遲 544629 五、發明說明(2) 受限制操作之一記憶體控制器方塊圖。 圖6是描述程式執行緒發信所使用硬體的圖1處理器内的 一通訊匯流排介面方塊圖。 圖7A-7B是有助於了解在讀暫存器使用一清除發信的程 式執行緒之一圖式與流程圖。 圖8是在執行緒間發信方法的流程圖。 圖9是一程式執行緒狀態報告程序流程圖。 詳細說明 結構: 請即參考圖1 ,一通訊系統1 〇包括一平行以硬體為基礎 之多重執行緒處理器12。以硬體為基礎之多重執行緒處理 器1 2是輕合到一匯流排,例如一週邊元件互接(P C I )匯流 排1 4、一記憶體系統1 6、及一第二匯流排1 8。系統1 0尤其 有助對於工作分成平行附屬工作或功能。明確而言,以硬 體為基礎之多重執行緒處理器12對於頻寬導向而不是延遲 導向的工作是有用。以硬體為基礎之多重執行緒處理器12 具有多重微型引擎22,每個微型引擎具有可在一工作上同 時動作與個別工作的多重硬體控制程式執行緒。 以硬體為基礎之多重執行緒處理器1 2亦包括一中央控制 器20,其有助於載入以硬體為基礎之多重執行緒處理器12 的其他資源的微碼控制,並且執行其他一般目的電腦類型 功能,例如處理協定、異常、封包處理的額外支援,其中Φ 該等微型引擎可傳送封包,用以例如邊界情況的更詳細處 理。在一具體實施例中,處理器20是一以Strong Arm® ’ 544629 五、發明說明(3) ' --- (Arm是英國的ARM Limited公司商標)為基於的結構。一 目的微處理機20具有一有作業系統。藉由此作業系統,^ 統處理器20可呼叫功能,以便在微型弓丨擎22a_22f上操、 。處理器2 0可使用任何支援的作業系統,理想是一即時作 業系統。對於一以Strong Arm結構實施的核心處理器而言· ’例如微軟公司的N T即時、V X W 〇 r k s、與# c U S的作業系統 可使用在網際網路免費獲得的作業系統。 .....· 以硬體為基礎之多重執行緒處理器12亦包括複數個微型 弓I擎22a-22f °微型引擎22a-22f的每個可在硬體維持複數 個程式計數器及與該等程式計數器有關的狀態。事實上,
對應複數組的程式執行緒可在該等微型引擎2 2 a - 2 2 f之其着麵 中每一者上同時工作,而實際只有一可隨時工作。 I 在一具體實施例中,有6個微型引擎22a - 22f,每個具有 處理4個硬體程式執行緒的能力。6個微型引擎22a-22f可 共用資源操作,包括記憶體系統1 6與匯流排介面2 4和2 8。 記憶體系統1 6包括一同步動態隨機存取記憶體(SDRAM)控 制器26a、及一靜態隨機存取記憶體(SRAM)控制器26b。 SDRAM記憶體16a與SDRAM控制器26a典型可用於處理大量資 料,例如,來自網路封包的網路負荷處理。SRAM控制器 2 6b與SRAM記憶體1 6b可用於低延遲、快速存取工作的一網 路實施,例如,存取查詢表、核心處理器2 〇的記憶體等。 硬體内文交換允許其他内文與唯一程式計數器在相同的Φ 微型引擎上執行。硬體内文交換亦使工作的完成同步。例 如,兩程式執行緒可要求例如S R A Μ的相同共用資源。當例 一
第8頁 544629 五、發明說明(4) 如FBUS介面28 、SRAM控制器26a 、與SDRAM控制器26b的這 些個別功能單元完成來自該等微型引擎程式執行緒内文之 其中一者的一要求工作時,他們的其中每一者可傳回一旗 號’以發信一操作的完成。當微型引擎接收旗號時,微型 引擎便可決定要啟動的程式執行緒。 例如一路由器的一媒體處理器,以硬體為基礎之多重執 行緒處理器1 2可與/例如一 ίο/loo BaseT Octal MAC 13a或
一Gigabit乙太網路裝置丨3b的例如一媒體存取控制器裝置 之網路裝置一起形成介面。大體上,如同一網路處理器, 硬體為基礎之多重執行緒處理器丨2可與接收/傳送大量資 料的任何類型通訊裝置或介面形成介面。網路處理器能可 在裝置13a、13b之中的網路應用路徑網路封包以一平行方 式當作一路由器1 〇的功能使用。隨著以硬體為基礎之多重 執行緒處理器1 2,每個網路封包可個別處理。 1處理器1 y包括一匯流排介面2 8,其係耦合到第二匯流排 ^的處理器。在一具體實施例中,匯流排介面2 8是將處理 ^12搞合到所謂FBUS 18 (FIFO匯流排)。FBUS介面28負責 及形成處理器12與FBUS 18的介面。FBUS 18是一 64位 =見的FIF〇匯流排,其可用來形成媒體存取控制器(MAC)
» ^ 丨面二處理器1 2包括例如一 p c I匯流排介面2 4之一 =一介面’ §亥第二介面是耦合到存在處理器12的PCI 14匯 排上的i ΐ系統元件。 ,等功ι單元是耦合到一或多個内部匯流排。内部匯流 疋雙3 2位tl匯流排(亦即,一匯流排用於讀及另一匯流
第9頁 544629 五、發明說明(5) 排用於寫)。以硬體為基礎之多重執行緒處理器1 2亦構成 ,以致於處理器1 2的内部匯流排頻寬之總和超過耦合到處 理器1 2的外部匯流排頻寬。處理器1 2包括一内部核心處理 器匯流排32,例如一ASB匯流排(進階系統匯流排),其可 如下述將處理器核心2 0耦合到記憶體控制器2 6 a、2 6 b及 · ASB轉換器30。該ASB匯流排是可與Strong Arm處理器核心· 使用的一部分所謂AMBA匯流排。處理器1 2亦包括一專屬匯 流排34,其是將微型引擎單元耦合到SRAM控制器26b、ASB 轉換器3 0與F B U S介面2 8。一記憶體匯流排3 8可將記憶體控 制器2 6 a、2 6 b耦合到匯流排介面2 4和2 8,而且記憶體系統 1 6包括可用於啟動操作等的快閃唯讀記憶體1 6 c。 || 請即參考圖2,該等微型引擎22a-22f之其中每一者包括 檢查旗號的一仲裁器,以決定可用的程式執行緒可操作。 來自任何微型引擎22a-22f的任何程式執行緒可存取SDRAM 控制器26a、SDRAM控制器26b、或FBUS介面28。SDRAM控制 器2 6a與SDRAM控制器26b之每個包括複數個佇列,以儲存 未解決的記憶體參考要求。佇列可維持記憶體參考的順序 或配置記憶體參考,以便使記憶體頻寬最佳化。 如果記憶體子系統1 6充滿事實上獨立的記憶體要求,處 理器1 2可執行記憶體參考分類。記憶體參考分類可減少發 生在SRAM存取的滯後時間或一泡沫。記憶體參考分類允許 處理器1 2組織記憶體的參考,以致於在讀長字串後可接著❹ 寫長字串。 參考分類有助於維持平行硬體内文程式執行緒。參考分 —
第10頁 544629 五、發明說明(6) 類允許從一 S D R A Μ排列到另外一排列的預充電潛伏。如果 圯憶體系統1 6 b組織成一奇數排列及一偶數排列,當處理 器在奇數排列上操作時,記憶體控制器2 6 b便可開始預充 電偶數排列。如果記憶體參考是在奇數與偶數排列之間改 變’預充電是可能的。透過分類記憶體參考以改變存取相 對排列’處理器1 2可改善s D R A Μ頻寬。此外,其他最佳化 可使用。例如,操作可被合併之合併最佳化是在記憶體存 取前合併,開啟頁最佳化,其中可透過檢查位址,記憶體 之一開啟頁不再開啟,允許鄰接記憶體參考與更新機構的 特殊處理之連鎖可採用。 , FBUS介面28可支援一MAC裝置支援的每個埠之傳送與接 收旗號,而連同的一中斷旗號可表示何時服務可確保。 FBUS介面28亦包括一控制器28a,其可執行從FBUS 18送入 封包的標題處理。控制器28a可擷取封包標題,而且在 SRAM可執行一 4私式化來源/目的地/協定雜凑查表(用於 位址流暢)。如果雜湊不能成功解決,封包標題便可傳送 給處理器核心20供額外處理。FBUS介面28可支援下列内部 資料處理: 來/回於微型引擎。 從SDRAM單元寫入。 讀到SDRAM 。 FBUS單元(共用匯流排SRAM) FBUS單元(經由專屬匯流排) FBUS單元(經由Mbus)
而 FBUS 18是一標準工業匯流排,並且包括例如64位元寬 的一資料匯流排、及用於位址與讀/寫控制的邊帶控制。 FBUS介面28可透過使用一連串輸入與輸出FIF〇 29a_29b
第11頁
544629 五、發明說明(7) 提供輸入大量資料的能力。從FIFOs 29a-29b,微型引擎 22a-22f可從SDRAM控制器26a取得資料、或使SDRAM控制器 2 6 a從一接收的F I F 0移動資料,其中資料是從匯流排1 8上 的一裝置送入FBUS介面28。資料可經由一直接記憶體存取 而藉由記憶體控制器26a傳送給SDRAM記憶體1 6a。同樣地 ,微型引擎可將資料從SDRAM 26a移到介面28,經由FBUS 介面28而輸出到FBUS18。 資料功能可在微型引擎之中分配。連接到SRAM 26a、 SDRAM 26b和FBUS 28是經由命令要求。一命令要求可以是 一記憶體要求或一 F B U S要求。例如,一命令要求可將資料 從位在一微型引擎2 2 a的暫存器移到一共用資源,例如一 SDRAM位置、SRAM位置、快閃記憶體、或某些MAC位址。命 令可送出給該等功能單元與該等共用資源之其中每一者。 然而,共用資源不需要維持資料的區域緩衝。理想上,該 等共用資源可存取位在微型引擎内的分配資料。此允許微 型引擎22a-22f可區域存取資料,而不是一匯流排上的存 取仲裁與匯流排的風險爭議。隨著此特徵,具有一 〇週期 滯後等待微型引擎22a-22f的内部資料。 核心處理器2 0亦可存取共用資源。核心處理器2 〇可經由 匯流排32而直接與SDRAM控制器26a、匯流排介面24、與 SRAM控制器26b通訊。若要存取微型引擎22a-22f與位在該 等微型引擎22a-22f之其中任何一者的轉移暫存器,核心 處理器20可在匯流排34上經由ASB轉換器30存取微型引擎 22a - 22f 〇ASB轉換器30可在FBUS微型引擎轉移暫存器位置
第12頁 544629 五、發明說明(8) 與核心處理器位址(亦即,A S β匯流排)之間執行一位址轉 換,俾核心處理器20可存取屬於微型引擎22a-22c的暫在 器。 雖然微型引擎2 2可使用暫存器交換資料。一高速暫存記 憶體2 7亦提供,以允許微型·引擎將資料寫出到記憶體供其 他微型引擎讀取。高速暫存記憶體27是耦合到匯流排34 了 微型引聱: 請即參考圖3,其顯示該等微型引擎22a-22f之其中一範 例,例如微型引擎22f。微型引擎包括一控制儲存,其 在一實施是包括32位元的1,024字的一隨機存取記憶體 (RAM)。RAM儲存可由核心處理器2〇載入的微程式。微型引 擎22f亦包括控制器邏輯72。該控制器邏輯包括一指令解 碼器73與程式計數器(PC)單元72a-72d。四個微程式計數 器7 2a- 7 2d是以硬體維護。微型引擎22f亦包括内文事件轉 變邏輯74。内文事件邏輯74可從例如SRAM 26a、SDRAM 2 6 b、或處理器核心2 0、控制與狀態暫存器等的該等共用 資源之其中每一者接收訊息(例如SEQ_#_E VENTURES PONS E ;FBI 一EVENT一RESPONSE ; SRAM —EVENT一RESPONSE ; SDRAM_EVENT —RESPONSE ;與 A.SB_E VENT —RESPONSE ) 〇 這些 訊息可在一要求功能是否完成上提供資訊。基於一程式執 行緒所要求的一功能是否完成與發信完成,程式執行緒需 要等待完成信號,而且如果程式執行緒允許操作,那麼程 式執行緒便可放置在一可用程式執行緒清單(未在圖顯示) 。微型引擎2 2 f可具有最大ά,例如’ 4個可用的程式執行
第13頁 544629
Μ可採用全域的發信^ ^的^域事件信號之外,微型引擎 執行緒可將一信號狀離g播^著信號狀態,一執行的程式 的任何程式執行緒可;;二fb = 7有微型引擎22 °微型引擎 信狀態可用來決定—資=传狀態上造成分枝。該等發 束。 貝,原的有效性、或一資源是否服務結 該内文事件邏輯74呈古πη,,、 一具體實施例中,該^ | θ (4 )個程式執行緒的仲裁。在 ,包括權限仔列或加權丨循環法。其他技術可使用 執行方塊盒(ΕΒ0Χ)資料列。微型引擎22f亦包括一 76a與一般目的暫存器H76丄其包括—算術邏輯單元 術與邏輯功能與移位功嶄j·術邏輯單元7 6 a可執行算 般目的暫存器。在此眘= 存器組7 6b具相當大量的一 個一般目的暫存5| ,一】—面,一第一排列Bank A具有64 暫存器。一妒目^Ϊ二排列Bank β具有64個一般目的 址。 又 、 子器經窗框處理,俾可相對與絕對定 微型弓丨擎22f亦 堆疊80。這4b 括寫轉移暫存器堆疊78與-讀轉移 寫轉移暫存器堆二78'!:=理’俾可相對與絕對定址。 讀取暫左的:田且 疋— 貝源的寫資料所在於。同樣地, 或同時次^隹豐80是從一共用資源傳回的資料所在。隨後 SRAM Ϊ【ϋ到達,來1相對共用資源的一事件信號,例如 提# ^制為26&、SDRAM控制器26b、或核心處理器20將可 ’、、、°内文事件仲裁器了 4,其然後可警示程式執行緒資料
544629
五、發明說明(ίο) 可使用或已傳送。兩轉移暫存器排列78和8〇 次 路徑而連接到執行方塊盒(Εβ〇χ) 76。在一眚/山一貝/ 轉移暫存器具有64個暫存器,而且寫轉移 1中,該讀 暫存器。 3 W #暫存器具有64個
每個微型引擎22a-22f可支援4個内文 。此的一理由是允許一程式執行緒可二菫執仃緒執仃 出一記憶體參考之後開始執行,# f 一程式執行緒送 必須等待,直到參考完成為止。此> f執行更多工作之前 的有效率硬體執行是重要的,因 f為對於維持微型引擎 換句話說,如果只支援單—程式^ f憶體延遲是明顯的。 會閒置營顯數個週期,以等待^ 订緒執f,微型引擎將 算的輸貫量。多重執行緒執行二^返回,藉使減少整個計 程式執行緒上執行有用的獨立工$ —微型引擎透過在數個 兩同步機構可供應,為了要允許—,可隱藏記憶體延遲。 或SDRAM參考,然後隨即可同步1 ~程式執行緒送出一SRAM 一機構是立即同步。在立即同;牛該+參考完成的時間點。 參考,並且立即該内文置換。卷二’該微型引擎可送出 可被通知。只要通知,當一内二罢應的參考完成時,内文 行時,内文便可置換返回執行。換事件^生及輪到它執 的觀點,在送出m e m參考之後,與〜此從單内文指令流 參考完成為止。 喊子組不會執行,直到該 同步中,微型引擎可送❶ 的一些其他有用的工作 需要使程式執行緒的執- 一第二機構是延遲同步。在延遲 出參考,並且持續執行與參考無_ 。稍後,在執行進一步工作之前,
544629 五、發明說明(11) 行流 執行 且稍 參考 如 存器 便可 轉移 考是 那麼 一内 有一 同步 ,當 後將 已完 果記 有效 產生 暫存 與轉 當參 文只 顯著 於送出參考的完成。在此點上, 參考完成時,其可從目前程式執 它置換回,或持續執行目前的程 成。延遲同步可透過使用兩不同 憶體參考是與一轉移暫存器有關 位元設定或清除時,來自程式執 。例如,當A的有效位元設定時: 器A的一 SRAM讀取將被發信通知( 移FIFO或接收FIFO有關,而不是 考在SDRAM控制器26a完成時,信 有一信號狀態可保存在微型引擎 的信號可存在此方法。 一同步微字組可 行緒置換出,而 式執行緒,因為 發信方法實施: ,當對應轉移暫 行緒觸發的信號 將資料存放在 ,如果記憶體參 一轉移暫存器, 號便可產生。每 排程器,如此只 請即參考圖4,SDRAM記憶體控制器26a包括記憶體參考 仵列9 0 ’其中記憶體參考要求是從各種不同的微型引擎 2 2a-22f到達。記憶體控制器26a包括一仲裁器91 ,其可選 取微型引擎參考要求以進入該等功能單元之其中任何一功 能單元。假設該等微型引擎之其中一者正提供一參考要求 ,該參考要求便可通過位址與命令佇列90進入SDRAM控制 器26a。如果參考要求具有稱為,,最佳化MEM位元π的一位元 設定,送入的參考要求便可分類成偶數排列佇列9 〇 a或奇 數排列佇列9 0 b。如果記憶體參考要求沒有一記憶體最佳 化位元設定,預設值將進入一分類佇列9 0 c。S D R A Μ控制器$ 26是在FBUS介面28、核心處理器》〇、與pci介面24之中共 用的一資源。S D R A Μ控制器2 6亦可維持一狀態機器,用以 ·
第16頁 544629 五、發明說明(12) 執行READ-MODIFY-Write 自動 y 行來自SDRAM的資料要求之位輞作。SWAM控制器26亦可執 分類佇列9 0 C可維持來自微刮 箸一連串奇數與偶數排列參考'丨一擎^的參考要求分類。隨 記憶體參考便傳送給奇數盥偶4 仏號需要在完成一連串 將記憶體參考分類成奇數;列g = = °如果微型引擎22f 偶數排列的該等排列之其中一排排列參考,而且例如 ,但是信號是在最後偶數參考上雒=在^數排列之f送出 或許可發信返回記憶體要求完成的、视記憶體控制器26a 排列參考未服務。此發生以的=引擎,即使奇數 ,允許-微型引擎具有多會重、記V體連參貫考㈣,中。只分有 後的記憶體參考需要發信一完成。 /、中有匕最< 們控制器26a亦包括一高權限佇列90d。在高權限佇 中’來㈣等微型引擎之其中一者的送入記憶體參 ΐ:ί Ϊ進入:ί ί佇列’ i且以高於其他佇列的其他記 隐肢參考之一較咼榷限操作。所有的這些佇列,偶數 列9〇1、奇數排列仔列90b、分類仔列90c、與高權FT符 =能以單一RAM結構實施,其邏輯處理可分成四個不同的 面框,每個窗框具有它本身的起頭與結尾指標。既然填入 與送出操作只是單一輸入與單一輸出,他們可放在相同的 KAM結構,以增加RAM結構的密度。 S D R A Μ控制器2 6 a亦包括核心:匯流排介面邏輯,亦即A s B ( 匯流排9 2。A S B匯流排介面邏輯9 2可形成核心處理器2 〇與 SDRAM控制器26a的介面。如果資料經由ASB介面92從核心
544629 五、發明說明(13) $理f 20送入’資料便可儲存在MEM ASB裝置98,而且隨 藉由SDRAM介面110而從MEM ASB裝置98移到SDRAM記憶 吃a。雖然未在圖顯示,但是相同佇列結構供可提供用 “ί :=AM控制器26a亦包括一引擎97,以拉矣來自微 里引擎與p C I匯流排的資料。
>額外彳宁列包括可維持許多要求的p(M位址佇列94與ASB 寫佇列96。該等記憶體要求可經由多工器1〇6而傳送給 长AM介面11〇。多工器1〇6可透過SDRM仲裁器91的控制, 該SDRAM仲裁器可俛測該等佇列之其中每一者是否填滿與 要求的狀態,並且可從基於在一權限服務控制暫存器丨〇〇 儲存的一可程式值而決定權限。 δ月即參考圖5,其顯示S R A Μ的記憶體控制器2 6 b。記憶體 ,制器261)包括一位址與命令佇列12〇。記憶體控制器^13 是基於記憶體操作的類型而最佳化,亦即讀或寫。位址與 命令仔列1 2 0包括一高權限仔列1 2 〇 a ; —讀仔列1 2 〇 b,其 是一SRAM執行的主要記憶體參考功能;及一分類佇列12^ ,其大體上包括非最佳化的SRAM之所有寫及讀:雖然未在 圖顯示,但是位址與命令佇列丨2 〇亦可包括一寫佇列'。 SRAM控制器26b亦包括核心匯流排介面邏輯,亦即ASB匯 流排1 2 2。A S B匯流排介面邏輯1 2 2是形成核心處理器2 〇與 SRAM控制器26b的介面。SRAM控制器26b亦包括一引擎127
,以便從微型引擎與PCI匯流排拉曳資料。 該等記憶體要求可經由多工器126傳送給SRAM介面14〇。 多工器1 2 6是受到S R A Μ仲裁器1 3 1的控制,以偵測該等仔列 544629 、發明說明(14) 母者否填滿與要求狀態,並且基於在一趨阳β 務控制暫存哭130内搜f ΛΑ _ ., 推限服 杬幻夕 内儲存的一可程式值而決定權限。口亞 器126選取一記憶體參考要求,該記憶體參
牌σ,廷給一解碼器丨3 8,其中該記憶體參考要求 碼,並且產生一位址。 』破解 SRAM單元可維持記憶體映射非晶片SRAM與擴充R0M的控 制。SRAM控制器26b可定址例如丨6 MBytes與映射SRAM lib 的8 MBytes、8 Mbytes保留給特殊功能,其包括:經由快 閃ROM 16c的啟動空間;及MAC裝置丨3a、i 3b的控制槔存取 及存取有關的(RM0N)計數器。SRAM可用於區域查詢表與佇 列管理功能。 ^ S R A Μ控制器2 6 b可支援下列處理: 微型引擎要求(經由專屬匯流排)到/來自S R A Μ。 核心處理器 (經由ASB匯流排) 到/來自SRAM。 位址與命令佇列1 2 0亦包括一讀鎖失敗佇列1 2 0 d。讀鎖 失敗佇列1 2 0 d可用來保持失敗的記憶體參考要求,因為在 一部分記憶體上存在一鎖定。 請即參考圖6,其顯示在微型引擎22與FBUS介面邏輯 (FBI)之間的通訊。一網路應用的FBUS介面28可執行從 FBUS 18送入的封包標題處理。如果雜湊不能成功解決, FBUS介面執行的一主要功能便可擷取在SRAM的封包標題及 一微程式原始/目的/協定雜湊查詢表,封包標題可提供給® 核心處理器2 8供更複雜的處理。 _
FBI 28 包含一傳送FIFO 182、一接收FIFO 183、一HASH
第19頁 544629 五、發明說明(15) 單元188、及FBI控制與狀態暫存器189。 由SRAM匯流排38的一時間多工存取而與微型一引擎=通 ,SRAM匯流排是連接到微型引擎的轉移暫存㈣、8卜即 是,來回於微型引擎的所有通訊是經由轉移暫存器78、8〇 。F BUS介面28包括一推入狀態機器2〇Q,用以在時間週期 $程中將資料推人轉移暫存器’其中SRAM並未使謂·資 料匯流排(部份匯流排38);及一拉良狀態機器2〇2,用以 從相對微型引擎的轉移暫存器取得資料。 雜湊單元包括一對FIFO,s 188a、188b。雜湊單元可決 定FBI 28是否接收一 FBI —雜湊要求。雜湊單元188可從呼 叫微型引擎22取得雜湊鍵。在該等雜湊鍵取得與雜湊之後 ’該等指標便可傳回給呼叫微型引擎2 2。多達3個雜湊可 在單一 FBI 一雜湊要求下執行。匯流排34和38之每個是單向 性:SDRAM一push/pull一data 、與Sbus—Push/puU一data 。 該等匯流排之其中每一者需要控制信號,其可將^/寫控 制提供給適當微型引擎2 2轉移暫存器。 ” 通常,轉移暫存器需保護控制他們的内文,以保註讀的 正確性。特別是,如果thread一1使用一寫轉移暫存器以便 將資料提供給SDRAM 16a ’thread 一 1並不會重寫此暫存 ’直到從SDRAM控制器26a送回的信號表示此暫存器可促使 再用。母個寫不需要從目的地送回的一信號以表示功能是 否完成,因為如果程式執行緒以多重要求寫到在該目的地隹 的相同命令佇列,完成的順序便可在該命令仔列内保紐, 如此’只有最後命令需要發信給程式執行緒。然而如果
第20頁 544629 五、發明說明(16) 程式執行緒使用多重命今t 令要求便可分成個別的内刀類與讀取)’㉛麼這些命 置換而維持。在此方法的g =作,所以該分類可經由内文 使用將FBUS狀態資訊從FB & °上所表不的異常情形是有關 作。為了要保護轉移暫存器推二級,暫存器的某類型的操 ^ ί I ?i βΪ sW" ; Ξ ^ 2i ^ ^# # 旗號。如果旗號未確定,那- 擎之刖必須測试保護 22存取。如果該Ρ麼轉移暫存器便可由微型引擎 之前應該等;;二 ES 〇 , , 數實際是由推入的韓移暫左 ,然後“鄰:i:二5 j f ϊ韓微型引擎可測試此旗號 擎不會存器移到㈣,所 ,=:=:’二之=術二進行狀態通訊而言 暫存器212可用於封包處理。咳解執灯緒完成 thread — done暫存器212可當作控狀暫^ 與一 。他們已清楚顯示在標示CSR方塊外部,、二器189實施 路功能是透過使用例如處理網路封文"面28。網( 行緒而在網路處理器實施。例如,排以;=;;
544629
五、發明說明(17) 例如2 2 a的該等微程式引擎之其中一者執行,然而 '處, 程式執行緒可在例如22b-22f的其餘引擎執行。程式/執^^ 緒(處理或排程程式執行緒)使用執行緒間通訊以進行狀〜、 通訊。 < 程式執行緒可指定例如接收與傳送排程、接收$理、, 傳送處理等的特殊工作。工作指定與工作完成是藉由執打· 緒間發信而在程式執行緒之間通訊,具有例如自我解建構 暫存器210與thread-done暫存器212的特殊化讀與寫特佳 之暫存器、SRAM 16b與在造成例如位元設定、與位元清除 操作的内部高速暫存記憶體1 8 6 (圖6 )儲存的資料。 網路處理器1 0包括一般内文通訊發信協定,允許任何内¥ 文設定任何其他内文可偵測的一信號。此允許程式執行緒 使用一信號,如此便可透過使用微碼控制處理協調運作。 網路封包的處理可使用複程式執行緒。典型上,對於網 路處理而言,有一接收排程器、一傳送排程器與處理程式 執行緒。一排程器(接收或傳送)程式執行緒可透過處理程 式執行緒達成工作量與工作序列。排程器程式執行緒可將 工作指定給處理程式執彳亍緒’而且在某些情況,處理程式 執行緒可將工作指定給其他處理程式執行緒。例如,二^ 程器可決定哪些埠需要服務,並且透過平行處理多重程式 執行緒而指定及協調工作處理程式執行緒,以克服固有^ 記憶體延遲。 在某些範例,對於慢速埠而言,一處理程式執行緒可在 一部分封包上執行處理’而且一第二處理程式執行緒可處·
五 544629 、發明說明(18) 理其餘的封包,或在某些情況, 程式執行緒。隨著能以fi4個#; /柱态了使用下一 Wgabit埠的快速位=組封包非常快速接 用的程式執行緒Λ等程式:二㈣個封包指定給 肖的浐々拙二I这等私式執订緒可彼此發信哪些 I的私式執仃緒已處理及其狀態。 一 當程:ί::ΐ:t ΐ以處理一封包的最初6 4個位 :iii 執行緒具有資料可設 式執行緒可寫入一暫存器及在例如言,士執二 疋记憶體位置中的暫存器位址。g 2斋之 …在封包的接著-些位元組上工作的下一; 請即參考圖7A-7B,自我解建構 轾式執行緒(在圖7B的23〇),以 ^ 1()允井一 程式執行緒Pa-Pn要求服務。可存更取:=求服^ 建構暫存器210的例如Pi之第—:二(抽在圖7B的232) "自我解建構暫存器” 210會被執行緒可接受垄 讀取時將它清除(在圖7B的2 34 )、。\ /即在一程式 執行緒不再提供一主動要求。例如°要^求服務的其+ 暫存器210 —程式内文可要求指定认p透過寫到自我 工作。一内文可透過讀取"自我解=備第一内^ 一指定。如果自解建構暫存器建構^存器” 210 作可用來指定給程式執行緒。此表 ,目前沒肩 程式執行緒將本身指定給工作及、、主二;又有新的工作 户及/月除自己解建構暫 可用的 收的例 下一可 部分封 元組。 定信號 緒。程 預先指 信號以 式執行 排程器 勺多重 自我解 求。 執行緒 匕程式 解建構 ‘的一 而檢查 .新工 或另一 器 544629 五、發明說明(19) 210。如果值不是零,自我 以決定工作,而且暫存器可在 子器的内容可被解譯矣 取用以指定的此暫存器之内 j C除。因此"貝 工作指令寫入。 又τ 4待暫存器隨後使用下一 請即參考圖8,對於網路而言,业 用可用來執行特殊的系統工作。該等工不冋t 接收處理内文、傳送仲裁考.作i括接收排私 器核心通訊。& _裁裔、傳达排程、傳送填滿與處理 轸5 2 2以42可透過將-命令傳送給FBI介面28而開始 以::例如64或128個位元組的一接收操作,該命令 "曰^FBI介面的一埠以擷取資料與接收FIFO元件 ,以便用來緩衝該資料及微型引擎内文,而該微型引擎内 文可在接收資料取得時被通知。 接收排程器執行緒2 44可將一信號傳送給使一指定内文 動作的,定微型引擎程式執行緒。内文可讀取FBi接收控 制暫存器,以為獲得用以處理(亦即琿、接收F I F 〇元件位 置、位元組計數、封包開始、封包結束、錯誤狀態)的必 要接收資訊。如果封包的一開始表示接收排程器程式執^ ,負責決定在SDR AM何處儲存資料(亦即,插入封包的輪I 〇列)及將封包資料寫入SDRAM。如果它不是一封包的開妒 ’那麼接收程式執行緒便可決定此封包的較早資料儲存^ 置、,為了要持續處理24 6封包。當封包結束指示接收248 (或在如果接收傳輸延遲最佳化的最初6 4個位元組之後)時 ’接收程式執行緒便可將封包加入由該處理該封包標題所
第24頁 544629
I五、發明說明(20) 決定的佇列 程式執行緒可藉由提供一位 除機構而亦與一共用資源通訊 別位元及執行一測試,並且設 共用資源。該位元向量可發作 收程式執行緒佇列一封包時, 元。傳送排程器可檢查該位元 態0 元向量的位元設定與位元/月 。此機構允許設定與清除個 定該等個別位元,以控制一 輸出佇列是非空白。當一接 接收排程器2 5 0可設定一位 向量以決定所有佇列的狀 在位το向量上的位元設定與位元清除操作可在高速暫存 IkRAM或SRAM發生。如果排程器是在相同微型引擎22的程 式執行緒之間通訊,位元向量可儲存在暫存器組,因為每^ 一内文可讀取其他内文的暫存器。例如,每個輸出佇列的 一空白或非空白狀態可透過内部高速暫存記憶體的一位元 向里支援。當一接收程式執行緒佇列一封包g,接收程式 執行緒便可使用高速位元設定命令設定佇列狀態位元向量 的一位元,以表示佇列目·前具有至少一登錄。傳送仲裁器 掃描非空白(例如’位元設定)的符列位元向量,以 ϋ準備傳送的封包。當如果符列2 74空白而從一仔列移 除2 7 2 —封包,傳送仲裁器2 7 6便可將位元清除命令傳送給 佇列位元向量的對應位元。 請即參考圖9,執行緒完成暫存器亦在”! 28,而且是 位元可從不同程式執行緒設定的一暫存器。每個程式執行❶ 緒可使用例如兩個位元將它的狀態與所有其他的程式執行 緒通訊。而且,一排程器程式執行緒可讀取2 9 2它處理程-
第25頁 544629 五、發明說明(21) 式執行緒的所有狀態。只要穿& π程式執行緒2 84便可將一完成:接收工作2 8 2,一’’接收 變成不動作2 8 6。接收程式執彳^ ^,接收程式執行緒會 號,以表示指定的另-接收//會等待來自FBI的另一信 "thread — donej "的2位元襴位作。程式^行緒卜1 6具有 有"thread_done_2"的2位元棚朽且程_式執行緒I7-24具 執行緒與工作完成的不同層級通訊2。位70攔位允許一程式 例如’排程器可使用兩位元 ^ 到SDRAM,封包的處理仍然在凡狀悲,以表示資料是否移 1 0表示資料是否移到SDRAM,封^的产^ f存指標;位兀 且不儲存指標;及位元U表示封封包勺的/^仍然在進行,而t 2 9 6 a可由接收器排程程式绪二g :=成。因此,狀悲 緒’以便當資料變成可用時;用2定297“ -執行 29“可由接收排程器使用理一 ,然而,狀態 資料可用時能持續處理。 相同執行、緒,以便當 訊息的正確解譯可透過一 程式執行緒所呼叫的_裡,^排釭裔耘式執行緒與排程菇 例所確定。即是,狀^ ^式執打緒之間決定的一軟體慣 傳輪等而改變。大”二°,= Z根據慣例是如上述否接接、 碌"、π非忙碎作蓉往,· 。1狀態訊息包括11忙碌的π 、π非忙 目前程式執行'緒士成一。=忙碌但等待"的狀態訊息表示 時,預期可少#为的封包處理,而且當資料可用 預期來自一 = 執行一隨後工作。t程式執行緒 阜的貝枓且未儲存内文時,它便可使用,所以
544629 五、發明說明(22) 它可處理該封包的其餘部分。 排程器程式執行緒可讀取"執行緒完成”暫存器,以決定 指定給其他程式執行緒的工作的完成狀態。π執行緒完成" 暫存器可當作一寫暫存器實施以清除暫存器,允許排程器 只清除已確認的欄位。 其他具體實施例 可了解到雖然本發明已詳細描述,但是前述只是說明而 不是對本發明範圍的限制,其已在附錄申請專利範圍定義 。其他的觀點、優點、與修改是在下列申請專利的範圍 内。 〇
第27頁 544629
第28頁
Claims (1)
- 544629 六、申請專利範圍 1. 一種網路封包處理之方法,其包含: 接收網路封包;及 在具有複數個程式執行緒的網路封包上操作,以影響 該等封包的處理。 2. 如申請專利範圍第1項之方法,其中該操作包含: : 使用至少一程式執行緒檢查該封包的一標題部分。 _ 3. 如申請專利範圍第1項之方法,其中該操作進一步包 含: 透過一封包標題已處理之至少一程式執行緒發信。 4. 如申請專利範圍第1項之方法,其中複數個程式執行 緒根據該排程器程式執行緒所指定的工作分配可以是排程4 器程式執行緒,以排程用以處理的工作順序;及處理封包 的處理程式執行緒。 5. 如申請專利範圍第1項之方法,其中每個程式執行緒 可將一訊息寫入一暫存器,以表示其目前狀態。 6. 如申請專利範圍第5項之方法,其中該訊息的解譯係 透過在一排程器程式執行緒與透過該排程器程式執行緒所 呼叫的程式執行緒之間決定的一軟體慣例修理而確定。 7 ·如申請專利範圍第5項之方法,其中該等狀態訊息包 括忙碌、非忙碌、非忙碌但在等待。 8.如申請專利範圍第5項之方法,其中一狀態訊息包括 非忙碌但在等待,其中非忙碌但在等待狀態的信號是目前@ 程式執行緒完成一部分封包處理,而且當資料可用於持續 程式執行緒的處理時,預期可在該封包上指定執行一隨後 。第29頁 544629 六、申請專利範圍 工作。 9.如申請專利範圍第5項之方法,其中該暫存器是一通 用可存取的暫存器,其可透過所有目前的程式執行緒讀取 或寫入。 1 0 .如申請專利範圍第4項之方法,其中該排程器程式執 ' 行緒可排程複數個處理程式執行緒之其中任何一者,以處 -理一工作的進行。 1 1.如申請專利範圍第1 0項之方法,其中該排程器程式執 行緒能以一位址寫入一暫存器,而該位址是對應複數個處 理程式執行緒之一資料位置。 1 2.如申請專利範圍第1 1項之方法,其中複數個處理程式4 執行緒之其中選取一者可處理讀取該暫存器的工作,以獲 得資料的位置。 1 3.如申請專利範圍第1 2項之方法,其中複數個處理程式 執行緒之其中選取一者可讀取暫存器,以獲得資料的位置 ,並且指定本身以處理該排程器程式執行緒所要求的工 作。 1 4.如申請專利範圍第1 2項之方法,其中複數個處理工作 之其中選取一者可讀取該暫存器,以獲得資料的位置,而 該暫存器可透過程式執行緒讀取該暫存器清除,以指定本 身處理工作。 1 5.如申請專利範圍第1 3項之方法,其中當指定給該工作〇 的複數個處理程式執行緒之其中另一者在暫存器清除後嘗 _ 試讀取該暫存器時,其可提供一 NULL值,以表示目前沒有第30頁 544629 六、申請專利範圍 指定給該處理程式執行緒。 一種用以接收網路封包的以平行硬體為基礎之多重執 其包含: 一般目的處理器,其可協調系統功能運作;及 微型引擎,其可支援多重程式執行緒,並且可 個程式執行緒的網路封包上工作,以影響封包 工作16. 行緒處理器 在具 的處 17. 擎之 擎的 18. 用執 入該 19. 可透 所呼20. 複數 暫存 讀取 程式 取暫 21 · 複數個 有複數 理。 如申請 其中一 其餘部 如申請 行緒狀 通用狀 如申請 過在一 叫的處 如申請 一讀一 個處理 器,而 暫存器 執行緒 存器而 如申請 專利 者可 分可 專利 態暫 態暫 專利 排程 理程 專利 次暫 程式 且當 ,以 所要 清除 專利 範圍 執行 執行 範圍 存裔 存器 範圍 器程 式執 範圍 存器 執行 複數 獲得 求的 第16項 排程器 處理程 第16項 ,其中 ,以表 第18項 式執行 行緒之 第16項 ,其中 緒的一 個處理 資料的 工作, 之處理器 程式執行 式執行緒 之處理器 每個程式 示其目前 之處理器 緒與該處 間決定的 之處理器 該排程器 資料位置 程式執行 位置,指 而暫存器 ,其中複數個微型引 緒,而且該等微型引 ,其進一 執行緒可 的狀態。 ,其中該 理排程器 一軟體慣 ,其進一 步包含一通 將一訊息寫 訊息的解譯 程式執行緒 例所確定。 步包含: 程式執行緒可將對應 之一位址寫到讀一次 選取一者可 緒之其中 定本身處 可透過程 理該排程器 式執行緒讀 範圍第2 0項之處理器,其中當指定給工作第31頁 544629 六、申請專利範圍 的複數個處 清除後嘗試 以表22. 存媒 置可 理程式執行緒之 讀取該讀一次暫 示目前沒有工作指定給 一種包含一機器可讀儲 體具有供網路處理的可 其中另一者可在讀一次暫存器 存器時,其可提供一NULL值, 該處理程式執行緒。 存媒體之裝置,該機器可讀儲 執行指令,該等指令允許該裝 該等23. 可進24. 令以 ;及 行緒25. 可將26· 用存 寫27. 行緒 寫到 接收網 在具有 封包的 路封 複數 處理 如申請專利 一步包含下 包;及 個程式執行 使用至 如申請 提供排 提供處 所指定 如申請 一訊息 如申請 取暫存 少一 專利 程器 理程 的工 專利 寫到 專利 器, 範圍 列的 程式 範圍 程式 式執 作分 範圍 暫存 範圍 其可 第22項 指令: 執行緒 第22項 執行緒 行緒, 配處理 第22項 器,以 第2 5項 透過所 如申請專利範圍第2 2項 可將對應複數個處理程 一暫存器,而且複數個 緒的網路封包上操作,以影響 之裝置,其中該等指令的操作 以檢查該封包的一標題部分。 之裝置,其進一步包含該等指 ,以便排程供處理的工作順序 以便根據由該等排程器程式執 封包。 之裝置,其中每一程式執行緒 表示其目前的狀態。 之裝置,其中該暫存器是一通 有目前的程式執行緒而讀取或 之裝置,其中該排程器程式執 式執行緒的一資料位置的位址 處理程式執行緒之其中選取一 ❿第32頁 544629 六、申請專利範圍 者可處理讀取該暫存器的工作,以獲得該資料的位置,並 且在程式執行緒讀取之後清除該暫存器。 2 8.如申請專利範圍第2 7項之裝置,其中當指定給工作的 複數個處理程式執行緒之其中另一者可在該暫存器清除後 嘗試讀取該暫存器時,其可提供一NULL值,以表示目前沒 有工作指定給該處理程式執行緒。第33頁
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/473,799 US6625654B1 (en) | 1999-12-28 | 1999-12-28 | Thread signaling in multi-threaded network processor |
Publications (1)
Publication Number | Publication Date |
---|---|
TW544629B true TW544629B (en) | 2003-08-01 |
Family
ID=23881024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089127208A TW544629B (en) | 1999-12-28 | 2000-12-19 | Thread signaling in multi-threaded network processor |
Country Status (10)
Country | Link |
---|---|
US (3) | US6625654B1 (zh) |
EP (1) | EP1242883B1 (zh) |
CN (1) | CN100351798C (zh) |
AT (1) | ATE339724T1 (zh) |
AU (1) | AU4311601A (zh) |
DE (1) | DE60030767T2 (zh) |
HK (1) | HK1046050A1 (zh) |
SG (1) | SG145543A1 (zh) |
TW (1) | TW544629B (zh) |
WO (1) | WO2001048606A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI408547B (zh) * | 2004-09-14 | 2013-09-11 | Co Ware Inc | 在一多重核心處理器架構內的監視執行緒執行過程的方法以及執行緒層級偵錯控制器 |
US9038070B2 (en) | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
TWI652578B (zh) | 2016-12-20 | 2019-03-01 | 聯發科技股份有限公司 | 複數個執行緒的記憶體存取方法及系統 |
Families Citing this family (210)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2728559B1 (fr) * | 1994-12-23 | 1997-01-31 | Saint Gobain Vitrage | Substrats en verre revetus d'un empilement de couches minces a proprietes de reflexion dans l'infrarouge et/ou dans le domaine du rayonnement solaire |
US7266725B2 (en) * | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
WO2002029600A2 (de) * | 2000-10-06 | 2002-04-11 | Pact Informationstechnologie Gmbh | Zellenarordnung mit segmentierterwischenzellstruktur |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
JP3961028B2 (ja) * | 1996-12-27 | 2007-08-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) * | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US7002982B1 (en) * | 1998-07-08 | 2006-02-21 | Broadcom Corporation | Apparatus and method for storing data |
US20030095967A1 (en) * | 1999-01-25 | 2003-05-22 | Mackay Fabienne | BAFF, inhibitors thereof and their use in the modulation of B-cell response and treatment of autoimmune disorders |
WO2002013000A2 (de) * | 2000-06-13 | 2002-02-14 | Pact Informationstechnologie Gmbh | Pipeline ct-protokolle und -kommunikation |
WO2000077652A2 (de) | 1999-06-10 | 2000-12-21 | Pact Informationstechnologie Gmbh | Sequenz-partitionierung auf zellstrukturen |
US7017020B2 (en) * | 1999-07-16 | 2006-03-21 | Broadcom Corporation | Apparatus and method for optimizing access to memory |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6631430B1 (en) * | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US7480706B1 (en) * | 1999-12-30 | 2009-01-20 | Intel Corporation | Multi-threaded round-robin receive for fast network port |
US6952824B1 (en) * | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7051330B1 (en) * | 2000-11-21 | 2006-05-23 | Microsoft Corporation | Generic application server and method of operation therefor |
US7131125B2 (en) * | 2000-12-22 | 2006-10-31 | Nortel Networks Limited | Method and system for sharing a computer resource between instruction threads of a multi-threaded process |
US7844796B2 (en) * | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US20070299993A1 (en) * | 2001-03-05 | 2007-12-27 | Pact Xpp Technologies Ag | Method and Device for Treating and Processing Data |
US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
US7581076B2 (en) * | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
US9037807B2 (en) * | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US20090300262A1 (en) * | 2001-03-05 | 2009-12-03 | Martin Vorbach | Methods and devices for treating and/or processing data |
US7444531B2 (en) * | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
ATE478381T1 (de) * | 2001-06-20 | 2010-09-15 | Richter Thomas | Verfahren zur bearbeitung von daten |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7216204B2 (en) * | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
US7225281B2 (en) * | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7434191B2 (en) * | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
JP2003099272A (ja) * | 2001-09-20 | 2003-04-04 | Ricoh Co Ltd | タスク切替システムと方法およびdspとモデム |
SG155038A1 (en) * | 2001-09-28 | 2009-09-30 | Consentry Networks Inc | A multi-threaded packet processing engine for stateful packet processing |
US7126952B2 (en) * | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
EP1868111A1 (en) * | 2001-09-28 | 2007-12-19 | ConSentry Networks, Inc. | A multi-threaded packet processing engine for stateful packet processing |
US6904040B2 (en) * | 2001-10-05 | 2005-06-07 | International Business Machines Corporaiton | Packet preprocessing interface for multiprocessor network handler |
US7577822B2 (en) * | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
US7107413B2 (en) * | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7180887B1 (en) * | 2002-01-04 | 2007-02-20 | Radisys Patent Properties | Routing and forwarding table management for network processor architectures |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US6934951B2 (en) * | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
WO2003071418A2 (en) * | 2002-01-18 | 2003-08-28 | Pact Xpp Technologies Ag | Method and device for partitioning large computer programs |
EP1483682A2 (de) * | 2002-01-19 | 2004-12-08 | PACT XPP Technologies AG | Reconfigurierbarer prozessor |
US7610451B2 (en) * | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
DE10390689D2 (de) | 2002-02-18 | 2005-02-10 | Pact Xpp Technologies Ag | Bussysteme und Rekonfigurationsverfahren |
WO2003075154A2 (en) * | 2002-03-05 | 2003-09-12 | International Business Machines Corporation | Method of prefetching data/instructions |
US8914590B2 (en) * | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
EP1518186A2 (de) * | 2002-03-21 | 2005-03-30 | PACT XPP Technologies AG | Verfahren und vorrichtung zur datenverarbeitung |
GB0209670D0 (en) * | 2002-04-26 | 2002-06-05 | Easics Nv | Efficient packet processing pipelining device and method |
US7376950B2 (en) | 2002-05-08 | 2008-05-20 | Intel Corporation | Signal aggregation |
US7269752B2 (en) * | 2002-06-04 | 2007-09-11 | Lucent Technologies Inc. | Dynamically controlling power consumption within a network node |
US20030231627A1 (en) * | 2002-06-04 | 2003-12-18 | Rajesh John | Arbitration logic for assigning input packet to available thread of a multi-threaded multi-engine network processor |
US20030233485A1 (en) * | 2002-06-13 | 2003-12-18 | Mircrosoft Corporation | Event queue |
JP2004062446A (ja) * | 2002-07-26 | 2004-02-26 | Ibm Japan Ltd | 情報収集システム、アプリケーションサーバ、情報収集方法、およびプログラム |
US7124196B2 (en) * | 2002-08-07 | 2006-10-17 | Intel Corporation | Processing a network packet using queues |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
AU2003286131A1 (en) * | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7657861B2 (en) * | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US7577816B2 (en) * | 2003-08-18 | 2009-08-18 | Cray Inc. | Remote translation mechanism for a multinode system |
JP4388895B2 (ja) * | 2002-09-06 | 2009-12-24 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | リコンフィギュアラブルなシーケンサ構造 |
US7627721B2 (en) * | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US7961723B2 (en) | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US8015567B2 (en) * | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US7346757B2 (en) | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US9088474B2 (en) * | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
US20050033889A1 (en) * | 2002-10-08 | 2005-02-10 | Hass David T. | Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip |
US8176298B2 (en) * | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US8037224B2 (en) * | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US7984268B2 (en) * | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US7924828B2 (en) | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
US8478811B2 (en) * | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US7039914B2 (en) | 2003-03-07 | 2006-05-02 | Cisco Technology, Inc. | Message processing in network forwarding engine by tracking order of assigned thread in order group |
EP1611528A2 (de) * | 2003-04-04 | 2006-01-04 | PACT XPP Technologies AG | Verfahren und vorrichtung für die datenverarbeitung |
US7500239B2 (en) * | 2003-05-23 | 2009-03-03 | Intel Corporation | Packet processing system |
EP1634182A2 (en) * | 2003-06-17 | 2006-03-15 | PACT XPP Technologies AG | Data processing device and method |
JP4432388B2 (ja) | 2003-08-12 | 2010-03-17 | 株式会社日立製作所 | 入出力制御装置 |
US7735088B1 (en) * | 2003-08-18 | 2010-06-08 | Cray Inc. | Scheduling synchronization of programs running as streams on multiple processors |
US7421565B1 (en) | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
US7743223B2 (en) * | 2003-08-18 | 2010-06-22 | Cray Inc. | Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system |
US8307194B1 (en) | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
JP4700611B2 (ja) * | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
US7376952B2 (en) * | 2003-09-15 | 2008-05-20 | Intel Corporation | Optimizing critical section microblocks by controlling thread execution |
US20050096999A1 (en) * | 2003-11-05 | 2005-05-05 | Chicago Mercantile Exchange | Trade engine processing of mass quote messages and resulting production of market data |
US7213099B2 (en) * | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
JP4586526B2 (ja) | 2004-02-27 | 2010-11-24 | ソニー株式会社 | 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム |
JP2005276165A (ja) * | 2004-02-27 | 2005-10-06 | Sony Corp | 情報処理装置、ネットワークシステム状況呈示方法およびコンピュータプログラム |
US20060048156A1 (en) * | 2004-04-02 | 2006-03-02 | Lim Soon C | Unified control store |
US7418582B1 (en) | 2004-05-13 | 2008-08-26 | Sun Microsystems, Inc. | Versatile register file design for a multi-threaded processor utilizing different modes and register windows |
US7185178B1 (en) | 2004-06-30 | 2007-02-27 | Sun Microsystems, Inc. | Fetch speculation in a multithreaded processor |
US7571284B1 (en) | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US7330988B2 (en) * | 2004-06-30 | 2008-02-12 | Sun Microsystems, Inc. | Method and apparatus for power throttling in a multi-thread processor |
US7370243B1 (en) | 2004-06-30 | 2008-05-06 | Sun Microsystems, Inc. | Precise error handling in a fine grain multithreaded multicore processor |
US20060009265A1 (en) * | 2004-06-30 | 2006-01-12 | Clapper Edward O | Communication blackout feature |
US7890734B2 (en) | 2004-06-30 | 2011-02-15 | Open Computing Trust I & II | Mechanism for selecting instructions for execution in a multithreaded processor |
US8225034B1 (en) | 2004-06-30 | 2012-07-17 | Oracle America, Inc. | Hybrid instruction buffer |
US7366829B1 (en) | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7523330B2 (en) * | 2004-06-30 | 2009-04-21 | Sun Microsystems, Inc. | Thread-based clock enabling in a multi-threaded processor |
US7216216B1 (en) | 2004-06-30 | 2007-05-08 | Sun Microsystems, Inc. | Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window |
US7543132B1 (en) | 2004-06-30 | 2009-06-02 | Sun Microsystems, Inc. | Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes |
US7941642B1 (en) | 2004-06-30 | 2011-05-10 | Oracle America, Inc. | Method for selecting between divide instructions associated with respective threads in a multi-threaded processor |
US7343474B1 (en) | 2004-06-30 | 2008-03-11 | Sun Microsystems, Inc. | Minimal address state in a fine grain multithreaded processor |
US7676655B2 (en) * | 2004-06-30 | 2010-03-09 | Sun Microsystems, Inc. | Single bit control of threads in a multithreaded multicore processor |
US7533248B1 (en) | 2004-06-30 | 2009-05-12 | Sun Microsystems, Inc. | Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor |
US7774393B1 (en) | 2004-06-30 | 2010-08-10 | Oracle America, Inc. | Apparatus and method for integer to floating-point format conversion |
US7702887B1 (en) | 2004-06-30 | 2010-04-20 | Sun Microsystems, Inc. | Performance instrumentation in a fine grain multithreaded multicore processor |
US8095778B1 (en) | 2004-06-30 | 2012-01-10 | Open Computing Trust I & II | Method and system for sharing functional units of a multithreaded processor |
US7290116B1 (en) | 2004-06-30 | 2007-10-30 | Sun Microsystems, Inc. | Level 2 cache index hashing to avoid hot spots |
US7747771B1 (en) | 2004-06-30 | 2010-06-29 | Oracle America, Inc. | Register access protocol in a multihreaded multi-core processor |
US7383403B1 (en) | 2004-06-30 | 2008-06-03 | Sun Microsystems, Inc. | Concurrent bypass to instruction buffers in a fine grain multithreaded processor |
US7373489B1 (en) | 2004-06-30 | 2008-05-13 | Sun Microsystems, Inc. | Apparatus and method for floating-point exception prediction and recovery |
US7478225B1 (en) | 2004-06-30 | 2009-01-13 | Sun Microsystems, Inc. | Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor |
US7434000B1 (en) | 2004-06-30 | 2008-10-07 | Sun Microsystems, Inc. | Handling duplicate cache misses in a multithreaded/multi-core processor |
US7426630B1 (en) | 2004-06-30 | 2008-09-16 | Sun Microsystems, Inc. | Arbitration of window swap operations |
US7353364B1 (en) | 2004-06-30 | 2008-04-01 | Sun Microsystems, Inc. | Apparatus and method for sharing a functional unit execution resource among a plurality of functional units |
US7178005B1 (en) | 2004-06-30 | 2007-02-13 | Sun Microsystems, Inc. | Efficient implementation of timers in a multithreaded processor |
US7861063B1 (en) | 2004-06-30 | 2010-12-28 | Oracle America, Inc. | Delay slot handling in a processor |
US7401206B2 (en) * | 2004-06-30 | 2008-07-15 | Sun Microsystems, Inc. | Apparatus and method for fine-grained multithreading in a multipipelined processor core |
US7437538B1 (en) | 2004-06-30 | 2008-10-14 | Sun Microsystems, Inc. | Apparatus and method for reducing execution latency of floating point operations having special case operands |
US7509484B1 (en) | 2004-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Handling cache misses by selectively flushing the pipeline |
US7519796B1 (en) | 2004-06-30 | 2009-04-14 | Sun Microsystems, Inc. | Efficient utilization of a store buffer using counters |
US7890735B2 (en) * | 2004-08-30 | 2011-02-15 | Texas Instruments Incorporated | Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture |
US7277990B2 (en) | 2004-09-30 | 2007-10-02 | Sanjeev Jain | Method and apparatus providing efficient queue descriptor memory access |
US20060067348A1 (en) * | 2004-09-30 | 2006-03-30 | Sanjeev Jain | System and method for efficient memory access of queue control data structures |
US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
US8037250B1 (en) | 2004-12-09 | 2011-10-11 | Oracle America, Inc. | Arbitrating cache misses in a multithreaded/multi-core processor |
US8756605B2 (en) * | 2004-12-17 | 2014-06-17 | Oracle America, Inc. | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline |
US7418543B2 (en) | 2004-12-21 | 2008-08-26 | Intel Corporation | Processor having content addressable memory with command ordering |
US7555630B2 (en) | 2004-12-21 | 2009-06-30 | Intel Corporation | Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit |
US20060140203A1 (en) * | 2004-12-28 | 2006-06-29 | Sanjeev Jain | System and method for packet queuing |
US7467256B2 (en) * | 2004-12-28 | 2008-12-16 | Intel Corporation | Processor having content addressable memory for block-based queue structures |
US7703094B2 (en) * | 2004-12-30 | 2010-04-20 | Intel Corporation | Adaptive and dynamic filtering of threaded programs |
US7430643B2 (en) * | 2004-12-30 | 2008-09-30 | Sun Microsystems, Inc. | Multiple contexts for efficient use of translation lookaside buffer |
US7480781B2 (en) * | 2004-12-30 | 2009-01-20 | Intel Corporation | Apparatus and method to merge and align data from distributed memory controllers |
US8279886B2 (en) * | 2004-12-30 | 2012-10-02 | Intel Corporation | Dataport and methods thereof |
US7477641B2 (en) * | 2004-12-30 | 2009-01-13 | Intel Corporation | Providing access to data shared by packet processing threads |
JP2008530642A (ja) * | 2005-02-07 | 2008-08-07 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | 低レイテンシーの大量並列データ処理装置 |
US7992144B1 (en) | 2005-04-04 | 2011-08-02 | Oracle America, Inc. | Method and apparatus for separating and isolating control of processing entities in a network interface |
US7415035B1 (en) | 2005-04-04 | 2008-08-19 | Sun Microsystems, Inc. | Device driver access method into a virtualized network interface |
US7779164B2 (en) * | 2005-04-04 | 2010-08-17 | Oracle America, Inc. | Asymmetrical data processing partition |
US7415034B2 (en) * | 2005-04-04 | 2008-08-19 | Sun Microsystems, Inc. | Virtualized partitionable shared network interface |
US7987306B2 (en) * | 2005-04-04 | 2011-07-26 | Oracle America, Inc. | Hiding system latencies in a throughput networking system |
US7443878B2 (en) * | 2005-04-04 | 2008-10-28 | Sun Microsystems, Inc. | System for scaling by parallelizing network workload |
US7865624B1 (en) | 2005-04-04 | 2011-01-04 | Oracle America, Inc. | Lookup mechanism based on link layer semantics |
US7529245B1 (en) | 2005-04-04 | 2009-05-05 | Sun Microsystems, Inc. | Reorder mechanism for use in a relaxed order input/output system |
US7843926B1 (en) | 2005-04-05 | 2010-11-30 | Oracle America, Inc. | System for providing virtualization of network interfaces at various layers |
US7353360B1 (en) | 2005-04-05 | 2008-04-01 | Sun Microsystems, Inc. | Method for maximizing page locality |
US8510491B1 (en) | 2005-04-05 | 2013-08-13 | Oracle America, Inc. | Method and apparatus for efficient interrupt event notification for a scalable input/output device |
US7567567B2 (en) * | 2005-04-05 | 2009-07-28 | Sun Microsystems, Inc. | Network system including packet classification for partitioned resources |
US7664127B1 (en) | 2005-04-05 | 2010-02-16 | Sun Microsystems, Inc. | Method for resolving mutex contention in a network system |
US8762595B1 (en) | 2005-04-05 | 2014-06-24 | Oracle America, Inc. | Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness |
US7889734B1 (en) | 2005-04-05 | 2011-02-15 | Oracle America, Inc. | Method and apparatus for arbitrarily mapping functions to preassigned processing entities in a network system |
US20060236011A1 (en) * | 2005-04-15 | 2006-10-19 | Charles Narad | Ring management |
US7920584B2 (en) * | 2005-05-04 | 2011-04-05 | Arm Limited | Data processing system |
WO2006117504A1 (en) * | 2005-05-04 | 2006-11-09 | Arm Limited | Use of a data engine within a data processing apparatus |
US7630388B2 (en) * | 2005-05-04 | 2009-12-08 | Arm Limited | Software defined FIFO memory for storing a set of data from a stream of source data |
US20070044103A1 (en) * | 2005-07-25 | 2007-02-22 | Mark Rosenbluth | Inter-thread communication of lock protected data |
US7853951B2 (en) * | 2005-07-25 | 2010-12-14 | Intel Corporation | Lock sequencing to reorder and grant lock requests from multiple program threads |
US20070124728A1 (en) * | 2005-11-28 | 2007-05-31 | Mark Rosenbluth | Passing work between threads |
US20070157030A1 (en) * | 2005-12-30 | 2007-07-05 | Feghali Wajdi K | Cryptographic system component |
WO2007082730A1 (de) * | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
US20070192766A1 (en) * | 2006-02-13 | 2007-08-16 | Ketan Padalia | Apparatus and methods for parallelizing integrated circuit computer-aided design software |
US20070245074A1 (en) * | 2006-03-30 | 2007-10-18 | Rosenbluth Mark B | Ring with on-chip buffer for efficient message passing |
US20080004876A1 (en) * | 2006-06-30 | 2008-01-03 | Chuang He | Non-enrolled continuous dictation |
US7711807B2 (en) * | 2006-07-27 | 2010-05-04 | Intel Corporation | Selective filtering of exception data units |
US20080134189A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Job scheduling amongst multiple computers |
US9794378B2 (en) | 2006-11-08 | 2017-10-17 | Standard Microsystems Corporation | Network traffic controller (NTC) |
WO2008098070A1 (en) * | 2007-02-06 | 2008-08-14 | Mba Sciences, Inc. | A resource tracking method and apparatus |
US8898438B2 (en) | 2007-03-14 | 2014-11-25 | XMOS Ltd. | Processor architecture for use in scheduling threads in response to communication activity |
US7680909B2 (en) * | 2007-03-21 | 2010-03-16 | Ittiam Systems (P) Ltd. | Method for configuration of a processing unit |
WO2008137616A1 (en) * | 2007-05-04 | 2008-11-13 | Nuance Communications, Inc. | Multi-class constrained maximum likelihood linear regression |
US7958333B2 (en) * | 2007-05-30 | 2011-06-07 | XMOS Ltd. | Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected |
US8059650B2 (en) * | 2007-10-31 | 2011-11-15 | Aruba Networks, Inc. | Hardware based parallel processing cores with multiple threads and multiple pipeline stages |
US20090109967A1 (en) * | 2007-10-31 | 2009-04-30 | Anirban Banerjee | Method and system for remotely configuring an ethernet switch using ethernet packets |
US7926013B2 (en) * | 2007-12-31 | 2011-04-12 | Intel Corporation | Validating continuous signal phase matching in high-speed nets routed as differential pairs |
US9063778B2 (en) * | 2008-01-09 | 2015-06-23 | Microsoft Technology Licensing, Llc | Fair stateless model checking |
US9596324B2 (en) * | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
CN101237346B (zh) * | 2008-02-29 | 2012-01-11 | 中兴通讯股份有限公司 | 网络处理器及网络处理器的读写串口的方法 |
US20100115494A1 (en) * | 2008-11-03 | 2010-05-06 | Gorton Jr Richard C | System for dynamic program profiling |
US8024719B2 (en) | 2008-11-03 | 2011-09-20 | Advanced Micro Devices, Inc. | Bounded hash table sorting in a dynamic program profiling system |
US8478948B2 (en) * | 2008-12-04 | 2013-07-02 | Oracle America, Inc. | Method and system for efficient tracing and profiling of memory accesses during program execution |
US8667253B2 (en) | 2010-08-04 | 2014-03-04 | International Business Machines Corporation | Initiating assist thread upon asynchronous event for processing simultaneously with controlling thread and updating its running status in status register |
US8793474B2 (en) | 2010-09-20 | 2014-07-29 | International Business Machines Corporation | Obtaining and releasing hardware threads without hypervisor involvement |
US8713290B2 (en) * | 2010-09-20 | 2014-04-29 | International Business Machines Corporation | Scaleable status tracking of multiple assist hardware threads |
US8732711B2 (en) * | 2010-09-24 | 2014-05-20 | Nvidia Corporation | Two-level scheduler for multi-threaded processing |
US8634415B2 (en) | 2011-02-16 | 2014-01-21 | Oracle International Corporation | Method and system for routing network traffic for a blade server |
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 |
GB2495959A (en) | 2011-10-26 | 2013-05-01 | Imagination Tech Ltd | Multi-threaded memory access processor |
US8984183B2 (en) | 2011-12-16 | 2015-03-17 | Nvidia Corporation | Signaling, ordering, and execution of dynamically generated tasks in a processing system |
US8625422B1 (en) | 2012-12-20 | 2014-01-07 | Unbound Networks | Parallel processing using multi-core processor |
US9563561B2 (en) * | 2013-06-25 | 2017-02-07 | Intel Corporation | Initiation of cache flushes and invalidations on graphics processors |
EP3066568B1 (en) * | 2013-11-05 | 2019-09-11 | Oracle International Corporation | System and method for supporting efficient packet processing model and optimized buffer utilization for packet processing in a network environment |
US9489327B2 (en) | 2013-11-05 | 2016-11-08 | Oracle International Corporation | System and method for supporting an efficient packet processing model in a network environment |
CN103955445B (zh) * | 2014-04-30 | 2017-04-05 | 华为技术有限公司 | 一种数据处理方法、处理器及数据处理设备 |
CN104899006B (zh) * | 2015-05-25 | 2018-03-30 | 中孚信息股份有限公司 | 一种多系统平台的多进程并行处理方法 |
CN105183553A (zh) * | 2015-10-31 | 2015-12-23 | 山东智洋电气股份有限公司 | 软总线程序并发资源分配方法 |
US10706101B2 (en) | 2016-04-14 | 2020-07-07 | Advanced Micro Devices, Inc. | Bucketized hash tables with remap entries |
CN111459630B (zh) * | 2020-03-24 | 2023-12-08 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 采用硬件多线程机制的网络处理器 |
Family Cites Families (165)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3373408A (en) | 1965-04-16 | 1968-03-12 | Rca Corp | Computer capable of switching between programs without storage and retrieval of the contents of operation registers |
US3478322A (en) | 1967-05-23 | 1969-11-11 | Ibm | Data processor employing electronically changeable control storage |
BE795789A (fr) | 1972-03-08 | 1973-06-18 | Burroughs Corp | Microprogramme comportant une micro-instruction de recouvrement |
IT986411B (it) | 1973-06-05 | 1975-01-30 | Olivetti E C Spa | Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario |
US4016548A (en) | 1975-04-11 | 1977-04-05 | Sperry Rand Corporation | Communication multiplexer module |
CH584488A5 (zh) | 1975-05-05 | 1977-01-31 | Ibm | |
US4075691A (en) | 1975-11-06 | 1978-02-21 | Bunker Ramo Corporation | Communication control unit |
US4130890A (en) | 1977-06-08 | 1978-12-19 | Itt Industries, Inc. | Integrated DDC memory with bitwise erase |
JPS56164464A (en) | 1980-05-21 | 1981-12-17 | Tatsuo Nogi | Parallel processing computer |
US4400770A (en) | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
CA1179069A (en) | 1981-04-10 | 1984-12-04 | Yasushi Fukunaga | Data transmission apparatus for a multiprocessor system |
US4831358A (en) | 1982-12-21 | 1989-05-16 | Texas Instruments Incorporated | Communications system employing control line minimization |
JPS6031648A (ja) * | 1983-07-29 | 1985-02-18 | Sharp Corp | マルチ・タスク制御方法 |
US4745544A (en) | 1985-12-12 | 1988-05-17 | Texas Instruments Incorporated | Master/slave sequencing processor with forced I/O |
US4788640A (en) | 1986-01-17 | 1988-11-29 | Intel Corporation | Priority logic system |
US5297260A (en) | 1986-03-12 | 1994-03-22 | Hitachi, Ltd. | Processor having a plurality of CPUS with one CPU being normally connected to common bus |
US4866664A (en) | 1987-03-09 | 1989-09-12 | Unisys Corporation | Intercomputer communication control apparatus & method |
US5142683A (en) | 1987-03-09 | 1992-08-25 | Unisys Corporation | Intercomputer communication control apparatus and method |
FR2625340B1 (fr) | 1987-12-23 | 1990-05-04 | Labo Electronique Physique | Systeme graphique avec controleur graphique et controleur de dram |
US5115507A (en) | 1987-12-23 | 1992-05-19 | U.S. Philips Corp. | System for management of the priorities of access to a memory and its application |
WO1989008883A1 (en) | 1988-03-14 | 1989-09-21 | Unisys Corporation | Record lock processor for multiprocessing data system |
US5155854A (en) | 1989-02-03 | 1992-10-13 | Digital Equipment Corporation | System for arbitrating communication requests using multi-pass control unit based on availability of system resources |
US5155831A (en) | 1989-04-24 | 1992-10-13 | International Business Machines Corporation | Data processing system with fast queue store interposed between store-through caches and a main memory |
US5168555A (en) | 1989-09-06 | 1992-12-01 | Unisys Corporation | Initial program load control |
US5263169A (en) | 1989-11-03 | 1993-11-16 | Zoran Corporation | Bus arbitration and resource management for concurrent vector signal processor architecture |
DE3942977A1 (de) | 1989-12-23 | 1991-06-27 | Standard Elektrik Lorenz Ag | Verfahren zum wiederherstellen der richtigen zellfolge, insbesondere in einer atm-vermittlungsstelle, sowie ausgangseinheit hierfuer |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
EP0446721B1 (en) | 1990-03-16 | 2000-12-20 | Texas Instruments Incorporated | Distributed processing memory |
US5390329A (en) | 1990-06-11 | 1995-02-14 | Cray Research, Inc. | Responding to service requests using minimal system-side context in a multiprocessor environment |
US5193167A (en) * | 1990-06-29 | 1993-03-09 | Digital Equipment Corporation | Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system |
US5404482A (en) | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills |
US5347648A (en) | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
US5432918A (en) | 1990-06-29 | 1995-07-11 | Digital Equipment Corporation | Method and apparatus for ordering read and write operations using conflict bits in a write queue |
AU630299B2 (en) | 1990-07-10 | 1992-10-22 | Fujitsu Limited | A data gathering/scattering system in a parallel computer |
US5367678A (en) | 1990-12-06 | 1994-11-22 | The Regents Of The University Of California | Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically |
KR960001273B1 (ko) * | 1991-04-30 | 1996-01-25 | 가부시키가이샤 도시바 | 단일칩 마이크로컴퓨터 |
US5255239A (en) | 1991-08-13 | 1993-10-19 | Cypress Semiconductor Corporation | Bidirectional first-in-first-out memory device with transparent and user-testable capabilities |
US5623489A (en) | 1991-09-26 | 1997-04-22 | Ipc Information Systems, Inc. | Channel allocation system for distributed digital switching network |
US5392412A (en) | 1991-10-03 | 1995-02-21 | Standard Microsystems Corporation | Data communication controller for use with a single-port data packet buffer |
GB2260429B (en) | 1991-10-11 | 1995-05-24 | Intel Corp | Versatile cache memory |
US5392391A (en) | 1991-10-18 | 1995-02-21 | Lsi Logic Corporation | High performance graphics applications controller |
US5557766A (en) | 1991-10-21 | 1996-09-17 | Kabushiki Kaisha Toshiba | High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank |
US5452437A (en) | 1991-11-18 | 1995-09-19 | Motorola, Inc. | Methods of debugging multiprocessor system |
US5442797A (en) | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
JP2823767B2 (ja) | 1992-02-03 | 1998-11-11 | 松下電器産業株式会社 | レジスタファイル |
US5459842A (en) | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
DE4223600C2 (de) | 1992-07-17 | 1994-10-13 | Ibm | Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems |
US5404484A (en) | 1992-09-16 | 1995-04-04 | Hewlett-Packard Company | Cache system for reducing memory latency times |
WO1994015287A2 (en) * | 1992-12-23 | 1994-07-07 | Centre Electronique Horloger S.A. | Multi-tasking low-power controller |
US5448702A (en) | 1993-03-02 | 1995-09-05 | International Business Machines Corporation | Adapters with descriptor queue management capability |
EP0617361B1 (en) * | 1993-03-26 | 2001-11-28 | Cabletron Systems, Inc. | Scheduling method and apparatus for a communication network |
US5522069A (en) | 1993-04-30 | 1996-05-28 | Zenith Data Systems Corporation | Symmetric multiprocessing system with unified environment and distributed system functions |
CA2122182A1 (en) | 1993-05-20 | 1994-11-21 | Rene Leblanc | Method for rapid prototyping of programming problems |
JPH0740746A (ja) | 1993-07-29 | 1995-02-10 | Aisin Seiki Co Ltd | 車両用サンルーフ装置のチエツク機構 |
CA2107299C (en) | 1993-09-29 | 1997-02-25 | Mehrad Yasrebi | High performance machine for switched communications in a heterogenous data processing network gateway |
US5446736A (en) * | 1993-10-07 | 1995-08-29 | Ast Research, Inc. | Method and apparatus for connecting a node to a wireless network using a standard protocol |
US5450351A (en) | 1993-11-19 | 1995-09-12 | International Business Machines Corporation | Content addressable memory implementation with random access memory |
US5740402A (en) | 1993-12-15 | 1998-04-14 | Silicon Graphics, Inc. | Conflict resolution in interleaved memory systems with multiple parallel accesses |
US5490204A (en) | 1994-03-01 | 1996-02-06 | Safco Corporation | Automated quality assessment system for cellular networks |
US5835755A (en) | 1994-04-04 | 1998-11-10 | At&T Global Information Solutions Company | Multi-processor computer system for operating parallel client/server database processes |
JP3547482B2 (ja) * | 1994-04-15 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
US5542088A (en) | 1994-04-29 | 1996-07-30 | Intergraph Corporation | Method and apparatus for enabling control of task execution |
US5721870A (en) | 1994-05-25 | 1998-02-24 | Nec Corporation | Lock control for a shared main storage data processing system |
US5544236A (en) | 1994-06-10 | 1996-08-06 | At&T Corp. | Access to unsubscribed features |
US5574922A (en) | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
US5781774A (en) | 1994-06-29 | 1998-07-14 | Intel Corporation | Processor having operating modes for an upgradeable multiprocessor computer system |
JP3810449B2 (ja) | 1994-07-20 | 2006-08-16 | 富士通株式会社 | キュー装置 |
US5568476A (en) | 1994-10-26 | 1996-10-22 | 3Com Corporation | Method and apparatus for avoiding packet loss on a CSMA/CD-type local area network using receive-sense-based jam signal |
JP3169779B2 (ja) * | 1994-12-19 | 2001-05-28 | 日本電気株式会社 | マルチスレッドプロセッサ |
US5550816A (en) | 1994-12-29 | 1996-08-27 | Storage Technology Corporation | Method and apparatus for virtual switching |
US5784712A (en) | 1995-03-01 | 1998-07-21 | Unisys Corporation | Method and apparatus for locally generating addressing information for a memory access |
US5701434A (en) | 1995-03-16 | 1997-12-23 | Hitachi, Ltd. | Interleave memory controller with a common access queue |
US5649157A (en) | 1995-03-30 | 1997-07-15 | Hewlett-Packard Co. | Memory controller with priority queues |
US5886992A (en) | 1995-04-14 | 1999-03-23 | Valtion Teknillinen Tutkimuskeskus | Frame synchronized ring system and method |
US5758184A (en) * | 1995-04-24 | 1998-05-26 | Microsoft Corporation | System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads |
US5592622A (en) | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
JPH08320797A (ja) | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | プログラム制御システム |
US5828746A (en) | 1995-06-07 | 1998-10-27 | Lucent Technologies Inc. | Telecommunications network |
US5828863A (en) | 1995-06-09 | 1998-10-27 | Canon Information Systems, Inc. | Interface device connected between a LAN and a printer for outputting formatted debug information about the printer to the printer |
US5613071A (en) | 1995-07-14 | 1997-03-18 | Intel Corporation | Method and apparatus for providing remote memory access in a distributed memory multiprocessor system |
US5680641A (en) | 1995-08-16 | 1997-10-21 | Sharp Microelectronics Technology, Inc. | Multiple register bank system for concurrent I/O operation in a CPU datapath |
US5940612A (en) | 1995-09-27 | 1999-08-17 | International Business Machines Corporation | System and method for queuing of tasks in a multiprocessing system |
US5689566A (en) * | 1995-10-24 | 1997-11-18 | Nguyen; Minhtam C. | Network with secure communications sessions |
US5809530A (en) | 1995-11-13 | 1998-09-15 | Motorola, Inc. | Method and apparatus for processing multiple cache misses using reload folding and store merging |
KR0150072B1 (ko) | 1995-11-30 | 1998-10-15 | 양승택 | 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치 |
US5796413A (en) | 1995-12-06 | 1998-08-18 | Compaq Computer Corporation | Graphics controller utilizing video memory to provide macro command capability and enhanched command buffering |
US5940866A (en) | 1995-12-13 | 1999-08-17 | International Business Machines Corporation | Information handling system having a local address queue for local storage of command blocks transferred from a host processing side |
US5850530A (en) | 1995-12-18 | 1998-12-15 | International Business Machines Corporation | Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data |
US5699537A (en) | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
JP2000515332A (ja) * | 1995-12-29 | 2000-11-14 | ティクシ.コム ゲゼルシャフト ミット ベシュレンクテル ハフツング テレコミュニケイション システムズ | 自動的で安全かつダイレクトなデータ伝送のための方法およびマイクロコンピュータシステム |
US6201807B1 (en) * | 1996-02-27 | 2001-03-13 | Lucent Technologies | Real-time hardware method and apparatus for reducing queue processing |
US5761507A (en) | 1996-03-05 | 1998-06-02 | International Business Machines Corporation | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
US5764915A (en) | 1996-03-08 | 1998-06-09 | International Business Machines Corporation | Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack |
US5809235A (en) | 1996-03-08 | 1998-09-15 | International Business Machines Corporation | Object oriented network event management framework |
US5784649A (en) | 1996-03-13 | 1998-07-21 | Diamond Multimedia Systems, Inc. | Multi-threaded FIFO pool buffer and bus transfer control system |
US5797043A (en) | 1996-03-13 | 1998-08-18 | Diamond Multimedia Systems, Inc. | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
US6199133B1 (en) * | 1996-03-29 | 2001-03-06 | Compaq Computer Corporation | Management communication bus for networking devices |
KR100219597B1 (ko) | 1996-03-30 | 1999-09-01 | 윤종용 | 씨디-롬 드라이브에서의 큐잉 제어 방법 |
GB2311882B (en) * | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
JP3541335B2 (ja) * | 1996-06-28 | 2004-07-07 | 富士通株式会社 | 情報処理装置及び分散処理制御方法 |
US5937187A (en) | 1996-07-01 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for execution and preemption control of computer process entities |
JPH1049381A (ja) * | 1996-07-04 | 1998-02-20 | Internatl Business Mach Corp <Ibm> | 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム |
US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
US5745913A (en) | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
US5928736A (en) | 1996-09-09 | 1999-07-27 | Raytheon Company | Composite structure having integrated aperture and method for its preparation |
US5812868A (en) | 1996-09-16 | 1998-09-22 | Motorola Inc. | Method and apparatus for selecting a register file in a data processing system |
US6072781A (en) * | 1996-10-22 | 2000-06-06 | International Business Machines Corporation | Multi-tasking adapter for parallel network applications |
US5860158A (en) | 1996-11-15 | 1999-01-12 | Samsung Electronics Company, Ltd. | Cache control unit with a cache request transaction-oriented protocol |
US6212542B1 (en) * | 1996-12-16 | 2001-04-03 | International Business Machines Corporation | Method and system for executing a program within a multiscalar processor by processing linked thread descriptors |
US5905876A (en) | 1996-12-16 | 1999-05-18 | Intel Corporation | Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system |
US5854922A (en) | 1997-01-16 | 1998-12-29 | Ford Motor Company | Micro-sequencer apparatus and method of combination state machine and instruction memory |
US6256115B1 (en) * | 1997-02-21 | 2001-07-03 | Worldquest Network, Inc. | Facsimile network |
US6269391B1 (en) * | 1997-02-24 | 2001-07-31 | Novell, Inc. | Multi-processor scheduling kernel |
US5742587A (en) | 1997-02-28 | 1998-04-21 | Lanart Corporation | Load balancing port switching hub |
US5905889A (en) | 1997-03-20 | 1999-05-18 | International Business Machines Corporation | Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use |
AU6586898A (en) * | 1997-03-21 | 1998-10-20 | University Of Maryland | Spawn-join instruction set architecture for providing explicit multithreading |
US5918235A (en) * | 1997-04-04 | 1999-06-29 | Hewlett-Packard Company | Object surrogate with active computation and probablistic counter |
US6535878B1 (en) * | 1997-05-02 | 2003-03-18 | Roxio, Inc. | Method and system for providing on-line interactivity over a server-client network |
US5983274A (en) * | 1997-05-08 | 1999-11-09 | Microsoft Corporation | Creation and use of control information associated with packetized network data by protocol drivers and device drivers |
US6092158A (en) * | 1997-06-13 | 2000-07-18 | Intel Corporation | Method and apparatus for arbitrating between command streams |
US6182177B1 (en) * | 1997-06-13 | 2001-01-30 | Intel Corporation | Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues |
US6067585A (en) * | 1997-06-23 | 2000-05-23 | Compaq Computer Corporation | Adaptive interface controller that can operate with segments of different protocol and transmission rates in a single integrated device |
US5870597A (en) * | 1997-06-25 | 1999-02-09 | Sun Microsystems, Inc. | Method for speculative calculation of physical register addresses in an out of order processor |
KR100216371B1 (ko) * | 1997-06-30 | 1999-08-16 | 윤종용 | 고장 감내형 대용량 ATM 스위치 및 2nXn 다중화스위치에서의 셀프라우팅 방법 |
US5887134A (en) | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
US6393483B1 (en) * | 1997-06-30 | 2002-05-21 | Adaptec, Inc. | Method and apparatus for network interface card load balancing and port aggregation |
US6247025B1 (en) * | 1997-07-17 | 2001-06-12 | International Business Machines Corporation | Locking and unlocking mechanism for controlling concurrent access to objects |
US6170051B1 (en) * | 1997-08-01 | 2001-01-02 | Micron Technology, Inc. | Apparatus and method for program level parallelism in a VLIW processor |
US6014729A (en) * | 1997-09-29 | 2000-01-11 | Firstpass, Inc. | Shared memory arbitration apparatus and method |
US6085294A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computer Corporation | Distributed data dependency stall mechanism |
US6061710A (en) * | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
US5915123A (en) | 1997-10-31 | 1999-06-22 | Silicon Spice | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements |
DE69822591T2 (de) * | 1997-11-19 | 2005-03-24 | Imec Vzw | System und Verfahren zur Kontextumschaltung über vorbestimmte Unterbrechungspunkte |
US6360262B1 (en) * | 1997-11-24 | 2002-03-19 | International Business Machines Corporation | Mapping web server objects to TCP/IP ports |
US6070231A (en) * | 1997-12-02 | 2000-05-30 | Intel Corporation | Method and apparatus for processing memory requests that require coherency transactions |
JPH11203860A (ja) * | 1998-01-07 | 1999-07-30 | Nec Corp | 半導体記憶装置 |
US6415338B1 (en) * | 1998-02-11 | 2002-07-02 | Globespan, Inc. | System for writing a data value at a starting address to a number of consecutive locations equal to a segment length identifier |
US6223238B1 (en) * | 1998-03-31 | 2001-04-24 | Micron Electronics, Inc. | Method of peer-to-peer mastering over a computer bus |
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
KR100280460B1 (ko) * | 1998-04-08 | 2001-02-01 | 김영환 | 데이터 처리 장치 및 이의 복수의 스레드 처리 방법 |
US6092127A (en) * | 1998-05-15 | 2000-07-18 | Hewlett-Packard Company | Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available |
US6373848B1 (en) * | 1998-07-28 | 2002-04-16 | International Business Machines Corporation | Architecture for a multi-port adapter with a single media access control (MAC) |
US6073215A (en) * | 1998-08-03 | 2000-06-06 | Motorola, Inc. | Data processing system having a data prefetch mechanism and method therefor |
US6393026B1 (en) * | 1998-09-17 | 2002-05-21 | Nortel Networks Limited | Data packet processing system and method for a router |
US6347344B1 (en) * | 1998-10-14 | 2002-02-12 | Hitachi, Ltd. | Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor |
US6366998B1 (en) * | 1998-10-14 | 2002-04-02 | Conexant Systems, Inc. | Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model |
US6212611B1 (en) * | 1998-11-03 | 2001-04-03 | Intel Corporation | Method and apparatus for providing a pipelined memory controller |
US6389449B1 (en) * | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US6338078B1 (en) * | 1998-12-17 | 2002-01-08 | International Business Machines Corporation | System and method for sequencing packets for multiprocessor parallelization in a computer network system |
US6466898B1 (en) * | 1999-01-12 | 2002-10-15 | Terence Chan | Multithreaded, mixed hardware description languages logic simulation on engineering workstations |
US6356692B1 (en) * | 1999-02-04 | 2002-03-12 | Hitachi, Ltd. | Optical module, transmitter, receiver, optical switch, optical communication unit, add-and-drop multiplexing unit, and method for manufacturing the optical module |
US6256713B1 (en) * | 1999-04-29 | 2001-07-03 | International Business Machines Corporation | Bus optimization with read/write coherence including ordering responsive to collisions |
US6427196B1 (en) * | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6529983B1 (en) * | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US6532509B1 (en) * | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) * | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6324624B1 (en) * | 1999-12-28 | 2001-11-27 | Intel Corporation | Read lock miss control and queue management |
US6307789B1 (en) * | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6560667B1 (en) * | 1999-12-28 | 2003-05-06 | Intel Corporation | Handling contiguous memory references in a multi-queue system |
US6584522B1 (en) * | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US6952824B1 (en) * | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
US6944850B2 (en) * | 2000-12-21 | 2005-09-13 | Intel Corporation | Hop method for stepping parallel hardware threads |
US6671827B2 (en) * | 2000-12-21 | 2003-12-30 | Intel Corporation | Journaling for parallel hardware threads in multithreaded processor |
US6934951B2 (en) * | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
-
1999
- 1999-12-28 US US09/473,799 patent/US6625654B1/en not_active Expired - Fee Related
-
2000
- 2000-12-08 WO PCT/US2000/042716 patent/WO2001048606A2/en active IP Right Grant
- 2000-12-08 AU AU43116/01A patent/AU4311601A/en not_active Abandoned
- 2000-12-08 CN CNB008191794A patent/CN100351798C/zh not_active Expired - Fee Related
- 2000-12-08 DE DE60030767T patent/DE60030767T2/de not_active Expired - Lifetime
- 2000-12-08 AT AT00992412T patent/ATE339724T1/de not_active IP Right Cessation
- 2000-12-08 EP EP00992412A patent/EP1242883B1/en not_active Expired - Lifetime
- 2000-12-08 SG SG200401921-2A patent/SG145543A1/en unknown
- 2000-12-19 TW TW089127208A patent/TW544629B/zh not_active IP Right Cessation
-
2001
- 2001-05-29 US US09/867,064 patent/US20020013861A1/en not_active Abandoned
-
2002
- 2002-10-21 HK HK02107607A patent/HK1046050A1/xx not_active IP Right Cessation
-
2003
- 2003-07-08 US US10/615,280 patent/US7111296B2/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI408547B (zh) * | 2004-09-14 | 2013-09-11 | Co Ware Inc | 在一多重核心處理器架構內的監視執行緒執行過程的方法以及執行緒層級偵錯控制器 |
TWI474162B (zh) * | 2004-09-14 | 2015-02-21 | Synopsys Inc | 在一多重核心處理器架構內的監視執行緒執行過程的方法以及執行緒層級偵錯控制器 |
US9038070B2 (en) | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
US9038076B2 (en) | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
US9129050B2 (en) | 2004-09-14 | 2015-09-08 | Synopys, Inc. | Debug in a multicore architecture |
US9830241B2 (en) | 2004-09-14 | 2017-11-28 | Synopsys, Inc. | Debug in a multicore architecture |
TWI652578B (zh) | 2016-12-20 | 2019-03-01 | 聯發科技股份有限公司 | 複數個執行緒的記憶體存取方法及系統 |
Also Published As
Publication number | Publication date |
---|---|
US7111296B2 (en) | 2006-09-19 |
HK1046050A1 (en) | 2002-12-20 |
EP1242883B1 (en) | 2006-09-13 |
SG145543A1 (en) | 2008-09-29 |
US20040098496A1 (en) | 2004-05-20 |
DE60030767T2 (de) | 2007-11-08 |
WO2001048606A2 (en) | 2001-07-05 |
EP1242883A2 (en) | 2002-09-25 |
CN1643499A (zh) | 2005-07-20 |
ATE339724T1 (de) | 2006-10-15 |
DE60030767D1 (de) | 2006-10-26 |
US6625654B1 (en) | 2003-09-23 |
US20020013861A1 (en) | 2002-01-31 |
WO2001048606A3 (en) | 2002-07-11 |
AU4311601A (en) | 2001-07-09 |
CN100351798C (zh) | 2007-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW544629B (en) | Thread signaling in multi-threaded network processor | |
US6532509B1 (en) | Arbitrating command requests in a parallel multi-threaded processing system | |
CN103999051B (zh) | 用于着色器核心中着色器资源分配的策略 | |
US7443836B2 (en) | Processing a data packet | |
US6631462B1 (en) | Memory shared between processing threads | |
US8738886B2 (en) | Memory mapping in a processor having multiple programmable units | |
TW546585B (en) | Method of operating a processor and computer program product | |
EP1282862B1 (en) | Distributed memory control and bandwidth optimization | |
US7853951B2 (en) | Lock sequencing to reorder and grant lock requests from multiple program threads | |
JP2014500549A (ja) | 処理クラスタのためのロード/ストア回路要素 | |
WO2004109432A2 (en) | Method and apparatus for local and distributed data memory access ('dma') control | |
KR20160117108A (ko) | 다수의 링크된 메모리 리스트들을 사용하기 위한 방법 및 장치 | |
US10146468B2 (en) | Addressless merge command with data item identifier | |
US7293158B2 (en) | Systems and methods for implementing counters in a network processor with cost effective memory | |
US20070044103A1 (en) | Inter-thread communication of lock protected data | |
US20070016906A1 (en) | Efficient hardware allocation of processes to processors | |
US9442759B2 (en) | Concurrent execution of independent streams in multi-channel time slice groups | |
US7130936B1 (en) | System, methods, and computer program product for shared memory queue | |
US20070079077A1 (en) | System, method, and computer program product for shared memory queue | |
US9804959B2 (en) | In-flight packet processing | |
US9703739B2 (en) | Return available PPI credits command | |
Ward et al. | EDS hardware architecture | |
US9559988B2 (en) | PPI allocation request and response for accessing a memory system | |
CN118012510A (zh) | 一种网络处理器、网络数据处理装置和芯片 | |
US9699107B2 (en) | Packet engine that uses PPI addressing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |