TW544629B - Thread signaling in multi-threaded network processor - Google Patents

Thread signaling in multi-threaded network processor Download PDF

Info

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
Application number
TW089127208A
Other languages
English (en)
Inventor
Gilbert Wolrich
Donald Hooper
William Wheeler
Debra Bernstein
Matthew J Adiletta
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW544629B publication Critical patent/TW544629B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (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)
  • Time-Division Multiplex Systems (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Exchange Systems With Centralized 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)

  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頁
TW089127208A 1999-12-28 2000-12-19 Thread signaling in multi-threaded network processor TW544629B (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI408547B (zh) * 2004-09-14 2013-09-11 Co Ware Inc 在一多重核心處理器架構內的監視執行緒執行過程的方法以及執行緒層級偵錯控制器
US9038076B2 (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)

* Cited by examiner, † Cited by third party
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
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.)
EP1329816B1 (de) * 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
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
US7065050B1 (en) * 1998-07-08 2006-06-20 Broadcom Corporation Apparatus and method for controlling data flow in a network switch
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
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
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
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
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
ATE437476T1 (de) * 2000-10-06 2009-08-15 Pact Xpp Technologies Ag Zellenanordnung mit segmentierter zwischenzellstruktur
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
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
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
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices 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
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
WO2002103532A2 (de) * 2001-06-20 2002-12-27 Pact Xpp Technologies Ag Verfahren zur bearbeitung von daten
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
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
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
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とモデム
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
EP1436724A4 (en) * 2001-09-28 2007-10-03 Consentry Networks Inc MORE THREAD PACKAGE PROCESSING ENGINE FOR CAREFUL PACKAGE 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
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7180887B1 (en) * 2002-01-04 2007-02-20 Radisys Patent Properties Routing and forwarding table management for network processor architectures
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
EP1470478A2 (en) * 2002-01-18 2004-10-27 PACT XPP Technologies AG Method and device for partitioning large computer programs
DE10392560D2 (de) * 2002-01-19 2005-05-12 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
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
KR20040101231A (ko) * 2002-03-05 2004-12-02 인터내셔널 비지네스 머신즈 코포레이션 외부적으로 트리거링되는 이벤트와 연관된 데이터/명령을예비 인출하는 방법
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
WO2003081454A2 (de) * 2002-03-21 2003-10-02 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 情報収集システム、アプリケーションサーバ、情報収集方法、およびプログラム
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
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
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
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
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7924828B2 (en) 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US8015567B2 (en) * 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
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
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
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
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
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
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
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US7500239B2 (en) * 2003-05-23 2009-03-03 Intel Corporation Packet processing system
WO2006082091A2 (en) * 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
JP4432388B2 (ja) * 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
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
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7735088B1 (en) * 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
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
JP2005276165A (ja) * 2004-02-27 2005-10-06 Sony Corp 情報処理装置、ネットワークシステム状況呈示方法およびコンピュータプログラム
JP4586526B2 (ja) 2004-02-27 2010-11-24 ソニー株式会社 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
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
US7426630B1 (en) 2004-06-30 2008-09-16 Sun Microsystems, Inc. Arbitration of window swap operations
US7178005B1 (en) 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor
US7185178B1 (en) 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in a multithreaded processor
US7774393B1 (en) 2004-06-30 2010-08-10 Oracle America, Inc. Apparatus and method for integer to floating-point format conversion
US7383403B1 (en) 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
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
US7519796B1 (en) 2004-06-30 2009-04-14 Sun Microsystems, Inc. Efficient utilization of a store buffer using counters
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7747771B1 (en) 2004-06-30 2010-06-29 Oracle America, Inc. Register access protocol in a multihreaded multi-core processor
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
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
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
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
US7861063B1 (en) 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a processor
US7676655B2 (en) * 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US7890734B2 (en) * 2004-06-30 2011-02-15 Open Computing Trust I & II Mechanism for selecting instructions for execution in a multithreaded processor
US7343474B1 (en) 2004-06-30 2008-03-11 Sun Microsystems, Inc. Minimal address state in a fine grain multithreaded processor
US7370243B1 (en) 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain 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
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
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US8225034B1 (en) 2004-06-30 2012-07-17 Oracle America, Inc. Hybrid instruction buffer
US7373489B1 (en) 2004-06-30 2008-05-13 Sun Microsystems, Inc. Apparatus and method for floating-point exception prediction and recovery
US20060009265A1 (en) * 2004-06-30 2006-01-12 Clapper Edward O Communication blackout feature
US8095778B1 (en) 2004-06-30 2012-01-10 Open Computing Trust I & II Method and system for sharing functional units of a multithreaded processor
US7702887B1 (en) 2004-06-30 2010-04-20 Sun Microsystems, Inc. Performance instrumentation in a fine grain multithreaded multicore 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
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7523330B2 (en) * 2004-06-30 2009-04-21 Sun Microsystems, Inc. Thread-based clock enabling in a multi-threaded processor
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
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
US7418543B2 (en) 2004-12-21 2008-08-26 Intel Corporation Processor having content addressable memory with command ordering
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
US7480781B2 (en) * 2004-12-30 2009-01-20 Intel Corporation Apparatus and method to merge and align data from distributed memory controllers
US7703094B2 (en) * 2004-12-30 2010-04-20 Intel Corporation Adaptive and dynamic filtering of threaded programs
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
US7430643B2 (en) * 2004-12-30 2008-09-30 Sun Microsystems, Inc. Multiple contexts for efficient use of translation lookaside buffer
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US7415035B1 (en) 2005-04-04 2008-08-19 Sun Microsystems, Inc. Device driver access method into a virtualized network interface
US7987306B2 (en) * 2005-04-04 2011-07-26 Oracle America, Inc. Hiding system latencies in a throughput networking system
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
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
US7779164B2 (en) * 2005-04-04 2010-08-17 Oracle America, Inc. Asymmetrical data processing partition
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
US7567567B2 (en) * 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
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
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
US7664127B1 (en) 2005-04-05 2010-02-16 Sun Microsystems, Inc. Method for resolving mutex contention in a network system
US7843926B1 (en) 2005-04-05 2010-11-30 Oracle America, Inc. System for providing virtualization of network interfaces at various layers
US8762595B1 (en) 2005-04-05 2014-06-24 Oracle America, Inc. Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness
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
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
KR20080013993A (ko) * 2005-05-04 2008-02-13 에이알엠 리미티드 데이터 처리장치 내의 데이터 엔진의 사용
US7853951B2 (en) * 2005-07-25 2010-12-14 Intel Corporation Lock sequencing to reorder and grant lock requests from multiple program threads
US20070044103A1 (en) * 2005-07-25 2007-02-22 Mark Rosenbluth Inter-thread communication of lock protected data
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
JP2009524134A (ja) * 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
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
US20080140762A1 (en) * 2006-10-05 2008-06-12 Holt John M Job scheduling amongst multiple computers
US9794378B2 (en) * 2006-11-08 2017-10-17 Standard Microsystems Corporation Network traffic controller (NTC)
US7926058B2 (en) 2007-02-06 2011-04-12 Mba Sciences, Inc. 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
US20090109967A1 (en) * 2007-10-31 2009-04-30 Anirban Banerjee Method and system for remotely configuring an ethernet switch using ethernet packets
US8059650B2 (en) * 2007-10-31 2011-11-15 Aruba Networks, Inc. Hardware based parallel processing cores with multiple threads and multiple pipeline stages
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
US8713290B2 (en) * 2010-09-20 2014-04-29 International Business Machines Corporation Scaleable status tracking of multiple assist hardware threads
US8793474B2 (en) 2010-09-20 2014-07-29 International Business Machines Corporation Obtaining and releasing hardware threads without hypervisor involvement
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)

* Cited by examiner, † Cited by third party
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
US5142683A (en) 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
US4866664A (en) 1987-03-09 1989-09-12 Unisys Corporation Intercomputer communication control apparatus & method
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
FR2625340B1 (fr) 1987-12-23 1990-05-04 Labo Electronique Physique Systeme graphique avec controleur graphique et controleur de dram
JP2572136B2 (ja) 1988-03-14 1997-01-16 ユニシス コーポレーシヨン 多重処理データシステムにおけるロック制御方法
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
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
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
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
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
DE69231957T2 (de) 1991-10-21 2002-04-04 Toshiba Kawasaki Kk Hochgeschwindigkeitsprozessor zum fähiger Abhandeln mehrerer Unterbrechungen
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
CA2128393C (en) * 1992-12-23 2001-10-02 Jean-Felix Perotto 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
PL182423B1 (pl) * 1995-12-29 2001-12-31 Tixi Com Gmbh Telecomm Sposób i uklad mikrokomputerowy do bezposredniego transferu danych PL PL PL
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
US6463527B1 (en) * 1997-03-21 2002-10-08 Uzi Y. Vishkin 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
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
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
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
US6366998B1 (en) * 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
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
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
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6324624B1 (en) * 1999-12-28 2001-11-27 Intel Corporation Read lock miss control and queue management
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
US6671827B2 (en) * 2000-12-21 2003-12-30 Intel Corporation Journaling for parallel hardware threads in multithreaded processor
US6944850B2 (en) * 2000-12-21 2005-09-13 Intel Corporation Hop method for stepping parallel hardware threads
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

Cited By (7)

* Cited by examiner, † Cited by third party
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 在一多重核心處理器架構內的監視執行緒執行過程的方法以及執行緒層級偵錯控制器
US9038076B2 (en) 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
US9038070B2 (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
DE60030767D1 (de) 2006-10-26
US6625654B1 (en) 2003-09-23
CN1643499A (zh) 2005-07-20
WO2001048606A3 (en) 2002-07-11
HK1046050A1 (en) 2002-12-20
US20040098496A1 (en) 2004-05-20
US7111296B2 (en) 2006-09-19
AU4311601A (en) 2001-07-09
EP1242883A2 (en) 2002-09-25
EP1242883B1 (en) 2006-09-13
US20020013861A1 (en) 2002-01-31
WO2001048606A2 (en) 2001-07-05
ATE339724T1 (de) 2006-10-15
DE60030767T2 (de) 2007-11-08
CN100351798C (zh) 2007-11-28
SG145543A1 (en) 2008-09-29

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
US20190317802A1 (en) Architecture for offload of linked work assignments
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
US7058735B2 (en) Method and apparatus for local and distributed data memory access (“DMA”) control
EP1282862B1 (en) Distributed memory control and bandwidth optimization
US8537832B2 (en) Exception detection and thread rescheduling in a multi-core, multi-thread network processor
US20070022429A1 (en) Lock sequencing
JP2014500549A (ja) 処理クラスタのためのロード/ストア回路要素
US10146468B2 (en) Addressless merge command with data item identifier
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
EP2437159A1 (en) Operation apparatus and control method thereof
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