JP2004342132A - コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 - Google Patents
コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 Download PDFInfo
- Publication number
- JP2004342132A JP2004342132A JP2004225517A JP2004225517A JP2004342132A JP 2004342132 A JP2004342132 A JP 2004342132A JP 2004225517 A JP2004225517 A JP 2004225517A JP 2004225517 A JP2004225517 A JP 2004225517A JP 2004342132 A JP2004342132 A JP 2004342132A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- network
- group
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 title claims description 31
- 230000008569 process Effects 0.000 claims description 24
- 238000013519 translation Methods 0.000 claims description 5
- 102100029350 Testis-specific serine/threonine-protein kinase 1 Human genes 0.000 claims 18
- 101710116855 Testis-specific serine/threonine-protein kinase 1 Proteins 0.000 claims 18
- 102100029355 Testis-specific serine/threonine-protein kinase 2 Human genes 0.000 claims 3
- 101710116854 Testis-specific serine/threonine-protein kinase 2 Proteins 0.000 claims 3
- 239000000284 extract Substances 0.000 claims 2
- 238000010926 purge Methods 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 72
- 238000010586 diagram Methods 0.000 description 42
- 239000000872 buffer Substances 0.000 description 19
- 230000007704 transition Effects 0.000 description 19
- 239000013589 supplement Substances 0.000 description 13
- 238000012546 transfer Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 6
- MDKCFLQDBWCQCV-UHFFFAOYSA-N benzyl isothiocyanate Chemical compound S=C=NCC1=CC=CC=C1 MDKCFLQDBWCQCV-UHFFFAOYSA-N 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- GNWBLLYJQXKPIP-ZOGIJGBBSA-N (1s,3as,3bs,5ar,9ar,9bs,11as)-n,n-diethyl-6,9a,11a-trimethyl-7-oxo-2,3,3a,3b,4,5,5a,8,9,9b,10,11-dodecahydro-1h-indeno[5,4-f]quinoline-1-carboxamide Chemical compound CN([C@@H]1CC2)C(=O)CC[C@]1(C)[C@@H]1[C@@H]2[C@@H]2CC[C@H](C(=O)N(CC)CC)[C@@]2(C)CC1 GNWBLLYJQXKPIP-ZOGIJGBBSA-N 0.000 description 2
- 230000032683 aging Effects 0.000 description 2
- 239000007853 buffer solution Substances 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000712062 Patricia Species 0.000 description 1
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002431 foraging effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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
-
- 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/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
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)
- Advance Control (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【解決手段】 マルチタスクパイプラインプロセッサにおいて、連続する命令が種々のタスクによって実行され、前の命令を完了できないときに後の命令の命令実行パイプラインを取除く必要をなくす。タスクはタスク特定値をストアするレジスタを共用せず、それによって新しいタスクが実行のためにスケジュールされるときにレジスタをセーブまたはロードする必要をなくす。命令が利用不可なリソースにアクセスすれば、その命令はサスペンドされ、リソースが利用可となるまで他のタスクの命令が代わりに実行される。ハードウェアによってタスクスケジュールが行なわれ、オペレーティングシステムは必要ではない。
【選択図】 図1
Description
該当なし
(連邦政府資金による研究または開発に関する陳述)
該当せず
スキングプロセッサおよびリソースアクセス技術を提供する。
スク(たとえばT1)がリクエストFIFOおよびコマンドFIFOの双方にアクセスを許されるが、他のどのタスクもこれらのリソースにアクセスすることを許されない。一旦タスクT1がいずれかのリソースにアクセスし終わると、そのリソースに別のタスクがアクセスすることが許可され、さらにタスクT1は、そのリソースを共用する他のすべてのタスクがそのリソースにアクセスし終わるまでは再びそのリソースにアクセスすることを許されない。このため、リクエストFIFOにおけるフレームアドレスの順序はコマンドFIFOにおけるコマンドの順序と対応しており、チャネルがフレームアドレスとコマンドとを正確に一致させることができるようにする。この一致を確立するのに特殊なタグは何ら必要ではなく、この一致は単純なデータ構造であるFIFOを用いて確立される。
レットは回路250Eの出力からマイクロコントローラプログラムメモリ314(図6)にDMA転送によりロードされる。
ージ290DA.2において探索を行なう。
SN−−シーケンス番号(IGx.0、EGx.0では0、IGx.1、EGx.1では1)
I/E−−イングレスには0、イーグレスには1
タスクの総数はすなわち16である。
あり得る。各アクティブタスクは4クロックサイクルごとに実行がスケジュールされる(上の表1を参照のこと)。
(4) FIFOがタスク1により所有されている(状態機械704が状態710RS.1にある)か、または信号cfifordy[x] がローであり、FIFO「x」が空であることを示していること。(信号cfifordyは追補4に記載される。この信号は4つ目のサイクルごとにサンプリングされ、サンプリングされる際には有効である。)
FIFOがタスク0によって読まれておりそれ以外のどのタスクによっても読まれているのではないことは、タスク0がパイプラインステージt3にあることにより確証される。
exe _RfifoRd & mfsel[x] &(Ireqf |〜cfifordy[x] )である。
0に関して、信号Ereqf はそれぞれ対応のリクエストFIFOがイーグレスタスク1により所有されていることを示す。すなわち、Ereqf がIreqf と入れ代わっている。タスク制御320は各リクエストFIFOに対して別個の信号Ireqf またはEreqf を発生する。
ック信号は、マイクロコントローラ命令CMD(追補7)におけるLフラグから実行ユニット310により生成される。FIFOは、イングレスタスク0が「アンロック」信号がアサートされている状態でFIFOに書くまで状態S2に留まる。書かれた時点でFIFOは状態S1に移行する。
(1) パイプラインステージt3において、命令BITCまたはBITCIの実行がどれか他のタスクYによって成功したこと。この条件は表A1−3におけるリリース条件5の信号exe _bitcSemAccにより示される。
(1) タスクがパイプラインステージT3にあり、そのタスクがサーチマシンにコマンドを書くという命令を実行する(表A1−2においてexe _scmdWrとして示される、信号scmd_wr)か、またはサーチマシンから結果を読むという命令を実行すること(表A1−2においてexe _scmdRdとして示される、信号sres_rd)。追補7のマイクロコントローラ命令SMWR(サーチマシンコマンド書込)および追補6のレジスタscmd、scmde の記載を参照されたい。
(1) タスクがパイプラインステージt3にあること。
(1) cstrobe (追補4における表A4−1)がチャネル150によりアサートされ、csem[5]が0であり、チャネル150が、信号csem[4:0]により特定さ
れるスクラッチバッファ1610を内部フリーリストに戻そうとしていることを示していること。
のタスク(I0、I1、E0、E1)に対する可能なリリース条件のインデックスは追補1の表A1−3の左の欄に示される。
」ではないか、または状態出力はアクティブであるがタスクに対するサスペンド条件のいずれも真ではない場合)、タスクに対するリリースインデックス734_inは「ドントケア」である。
タスク制御ブロック
リソース
全リソースは特殊レジスタまたは専用マイクロコントローラコマンドによってアクセスされる。
サーチマシンは、マイクロコントローラによって書込まれるコマンドと結果との2個のリソースを有する。
チャネル制御はコマンドFIFO260、リクエストFIFO230およびステータスFIFO240との3種のリソースを有する。
データFIFOからのアプレットをプログラムメモリ314にダウンロードするのはDMAブロックである。このリソースは、転送前にDMAアドレスをセットし、転送完了時に最後のワードアドレスを読出すイーグレスタスクによって用いられる。転送の間に最後のワードアドレスが読出されると、最後のワードが転送されるまでタスクがサスペンドされる。また、最初の転送が完了していないときに別のイーグレスタスクによって新しいDMAアドレスを書込む試みもタスクサスペンドを引き起こす。
内部メモリにおけるスクラッチパッドエリア内のフリーバッファ1610(図17)を管理するのは内部メモリ管理である。メモリには32個のフリーバッファがある。タスクは、次の利用可能なフリーバッファを得ることを望むとき、フリーリスト(FreeL)リソース(追補6のレジスタIFREEL)にアクセスする。バッファが残されていなけ
れば、このタスクはサスペンドされる。このバッファを用いたチャネルコマンドによってバッファがリリースされるべきだと示されると、バッファはリリースされてフリーリストに戻る。
セマフォレジスタsemrは32ビットを有する。その各々がマイクロコントローラの即値ビット変更(BITCI)およびBITCコマンドを用いて直接的にアクセス可能である。セマフォは保護とタスク間の通信とのために用いられる。
タスクウェイト条件
ウエイト信号をアサートできる条件は2つある。
(1) レジスタスコアボード
マイクロコントローラにおけるレジスタごとに、そのステータスを表示する1スコアボードビットがある。このビットがセットされていれば、レジスタはダーティであり、すなわち、データがLSU330によってロードされるのを待っている。起こり得るシナリオは以下のとおりである。
(2) LSU FIFOフル
これはウエイト信号を発生するための別の条件である。ロード・ストアリクエストを待ち行列に格納しているLSU FIFOが一旦レディとなると、この条件はクリアされる。
以下の表はチャネル/マイクロコントローラインターフェイスにおいて用いられるいくつかの信号をリストにして挙げる。「I」は信号がチャネルのための入力であることを意味する。「O」は信号がチャネル出力であることを意味する。
メモリ
内部メモリ170のマップ
内部メモリマップを図16に示す。
このエリアはスクラッチパッド1610、データFIFOおよびコマンドFIFOのために用いられる。このエリアは相対アドレスを用いてアクセスされる。データエリアメモリマップを図17に示す。
このエリアにおけるレジスタタイプの1つは以下のとおりである。
各チャネルの方向ごとに1個、8個のCFGRレジスタがある。それらのフィールドは以下のとおりである。
DLEN (7ビット) データバッファ長(64バイト粒度)
CBASE (9ビット) コマンドバッファベースポインタ(64バイト整列)
CLEN (3ビット) コマンドバッファ長(64バイト粒度)
GAP (4ビット) フレーム制御ワードが無効であるときのデータ読出ポインタとデータ書込ポインタとの間の最小ギャップ(8バイト粒度)。
このエリアは上述の米国特許出願第09/055,044号の出願人書類番号M−4855 USに説明される。
マイクロコントローラレジスタ
レジスタファイルマップ
レジスタファイル312は8個のバンクへと分割される(図18)。各バンクは同じチャネル150.xからの1対のイングレスタスクとイーグレスタスクとの専用のものである。いくつかの実施例では、イングレス処理の方がより複雑なのでイングレスタスクがイーグレスタスクよりも多くのレジスタを用いる。また、いくつかの実施例では、タスクソフトウェアは、2つのタスク間に共通のレジスタがないようなものである。
マイクロコントローラにおける全レジスタがマイクロコントローラコマンドによって直接的にアクセス可能である。レジスタマップはレジスタファイル312および特殊レジスタ315という2領域に分割される。レジスタアドレスは7ビットからなる。特殊レジスタ315ではアドレスMSBが1であり、レジスタファイル312ではMSBが0である。
データメモリ316(図19)は変数の一時記憶と後述するいくつかのパラメータとのために用いられる。
PC (10ビット) プログラムカウンタ
G (1ビット) フラグ−より大きい
L (1ビット) フラグ−より小さい
E (1ビット) フラグ−等しい
C (1ビット) フラグ−桁上げ
G、L、EおよびCは読出専用である。
CHID (2ビット) チャネルId
SN (1ビット) シーケンス番号
I/E (1ビット) イングレス(0)/イーグレス(1)。
書込動作の間、これらの32ビットレジスタはサーチマシンのためのコマンドを形成する。読出動作の間、これらのレジスタは結果を与える。SCMDEはSCMDの前に書込まれるべきである。
このレジスタへの書込によって、1ブロックが外部メモリ200におけるフリーリストスタックに付加される。このレジスタからの読出によって、1ブロックがスタックから取除かれ得る。
Timer (32ビット) タイマ値。タイマはシステムクロックが8計時するごとに進む自走カウンタである。
Pointer (16ビット) ノードエリア開始ポインタ。このポインタはサーチノードエリアを定義する(このエリアの後部が0xFFFFである)。自動エイジング機構はこのエリア内でのみ実行される。
この読出専用レジスタはメモリ170のスクラッチパッドエリアにおけるフリーリスト内のエントリ数を含む。
これらは読出専用レジスタである(チャネルごとに2個)。各々がエイジリストの先頭を含む(チャネルごとに2個のエイジリストがある)。これらのレジスタのどの1つからの読出もレジスタをクリアさせる。ここで、ノード(追補8)におけるTSTMP(タイ
ムスタンプ)がこのリストにおけるノードを互いにリンクするために用いられる。レジスタが0なら、リストは空である。
これらのレジスタの各々は対応のエイジリストと関連したしきい値を含む。
OP (3ビット) 動作
000−nop
001−EPROM204からのロード
010−スイッチ120からのロード
111−リリース
EPA (13ビット) EPROM開始アドレス
LER (1ビット) ロードエラー
PMA (10ビット) プログラムメモリアドレス。
S[i] (1ビット) セマフォビット「i」。
F[i] (1ビット) メモリ170のスクラッチパッドエリアにおけるブロック「i」がフリーであるかどうかを示す。
BLKN (5ビット) フリーブロック番号(すなわち、スクラッチバッファ番号:図17参照)。このレジスタの読出によってスクラッチバッファBLKNがフリーリストから取除かれる。このレジスタへの書込によって、書込まれるBLKN値によって特定されるバッファがフリーリストに戻される。
このレジスタはMII制御インターフェイスによってイーサネット(登録商標)PHY装置と通信するために用いられる。
1000−スキャンオン
0000−スキャンオフ
0100−制御情報を送る
0010−ステータス読出
NV (1ビット) 有効でない。PHYからのデータが有効でないときにセットされる。
RGAD (5ビット) レジスタアドレス
Data (16ビット) データ。
マイクロコントローラ命令
3オペランド命令
これらの命令はオペランド_A とオペランド_B との間で算術論理演算を行なう。結果はオペランド_C に書込まれる。命令は以下のとおりである。
SUB−減算
OR−論理OR
AND−論理AND
XOR−論理XOR
SHL−左シフト
SHR−右シフト
BITC−ビット変更
命令サイズフィールドがオペランドサイズを特定する。
これらの命令はオペランド_A と即値バイトとの間で算術論理演算を行なう。結果はオペランド_C に書込まれる。命令は以下のとおりである。
SBI−即値減算
ORI−即値論理OR
ANDI−即値論理AND
XORI−即値論理XOR
SHLI−即値左シフト
SHRI−即値右シフト
BITCI−即値ビット変更
サイズフィールドがオペランドのサイズを特定する。
これらの命令は2つのオペランドの間で移動演算および比較演算を行なう。命令は以下のとおりである。
CMP−オペランドCとオペランドAとを比較する
命令のサイズフィールドがオペランドのサイズを特定する。
これらの命令はオペランドと即値フィールドとの間で移動演算および比較演算を行なう。命令は以下のとおりである。
MVIB−即値バイトを移動させる
CPIB−即値バイトを比較する
CPIW−即値ワードを比較する
命令のサイズフィールドがオペランド_C のサイズを特定する。
これらの命令は以下のようにオペランドCに対して演算を行なう。
CMD−チャネルコマンド書込
CASE−ケースステートメント
BTJ−ビットテストおよびジャンプ。
これらの命令はオペランドAとメモリ170または200との間でロードおよびストア演算を行なう。命令は以下のとおりである。
STORE
「dt」フィールド(行先タイプ)が以下のように行先のタイプを特定する。
この命令はCMDI(即値コマンド)である。これはコマンドFIFOに書込むために用いられる。
ADD、SUB、ADI、SBI
フラグ:
Eは結果が0に等しいときにセットされる
Cは(ADD、ADIのための)キャリーまたは(SUB、SBIのための)ボローが(オペランドopCのサイズに基づいて)発生されたときにセットされる。
フラグ:
Eは結果が0に等しいときにセットされる。
オペランド:ビット[31:25]=opC、[24:18]=opA、[17:16]=dt、[14:8]=opB、[7]=v
演算:opC<-opA[opB]<-v(すなわち、opCにおけるビット番号opBがvにセットされること以外では、opCがopAの値を受取る)
フラグ:Eは(opA[opB]==v)であるときにセットされる。
オペランド:ビット[31:25]=opC、[24:18]=opA、[17:16]=dt、[12:8]=imm、[7]=v
演算:opC<-opA[imm]<-v
フラグ:Eは(opA[imm]==v)であるときにセットされる。
オペランド;ビット[31:25]=opC、[24:18]=opA、[7:5]=オペランドサイズ
演算:opC?opA
フラグ:
Eは(opC==opA)であるときにセットされる
Gは(opC>opA)であるときにセットされる
Lは(opC<opA)であるときにセットされる。
オペランド:ビット[31:25]=opC、[23:8]=imm
演算:opC?imm
フラグ:
Eは(opC==imm)であるときにセットされる
Gは(opC>imm)であるときにセットされる
Lは(opC<imm)であるときにセットされる。
オペランド:バイト[31:25]=opC、[23:16]=bit _mask、[15:8]=imm
演算:(bit _mask & opC)?imm
フラグ:
Eは((bit _mask & opC)==imm)であるときにセットされる
Gは((bit _mask & opC)>imm)であるときにセットされる
Lは((bit _mask & opC)<imm)であるときにセットされる。
オペランド:ビット[31:25]=aop、[24:18]=opA、[17:16]=dt、[7]=i、[6]=f
演算:
if [dt==10] opA<-IM[{aop,imp }] ; imp=imp+i ;
if [dt==x1] opA<-XM[{aop,xmp }] ; xmp=xmp+i ;
IMは内部メモリ170であり、impは内部メモリポインタレジスタ(表A6−1)であり、XMは外部メモリ200であり、xpmは外部メモリポインタレジスタ(表A6−1)である。
オペランド:ビット[31:25] = aop, [24:18] = opA, [17:16] = dt, [7]= i
演算:
if [dt==10] opA->IM[{aop,imp }] ; imp=imp+i ;
if [dt==x1] opA->XM[{aop,xmp }] ; xmp=xmp+i ;
IM、XM、imp、xmpおよびaopがLOAD命令と同じ意味を有する。
オペランド:ビット[31:25] = opC, [23:8] = imm
演算:scmd<-{opC[63:16], imm }。
オペランド:ビット[31:8] = imm, [7] = L, [6] = P
演算:
Command _port <- {40'b0, imm}
ここで40′b0は40個の2進零を示す。
ifP=1, Command _port = cmd_e ; (イーグレスコマンド)
命令Lフラグ(1ビット)はロック/アンロック制御である(セットされると、命令のロック状態が変更される)。
オペランド:ビット[31:25] = opC, [23:8] = imm, [7] = L, [6] = P
演算:
Command _port <- {opC[63:16],imm}
ifP=0, Command _port = cmd_i ; (イングレスコマンド)
ifP=1, Command _port = cmd_e ; (イーグレスコマンド)
命令における1ビットLフラグがロック/アンロック制御である(セットされると、ロック状態が変更される)。
オペランド:ビット[31:25] = opC, [23:16] = bit_mask, [12:8] =シフト
演算:PC<-PC+ ((opC&bit _mask)>>シフト)+1。
オペランド:ビット[31:25] = opC, [24:13] = addr, [12:8] = ビット, [7] = v
演算:if(opC[bit]==v )then PC<-addr 。
サーチマシン
サーチマシンは周知のパトリシアツリー構造を用いる(1996年8月13日にG. C. Stone に発行され、引用によりここに援用される米国特許第5,546,390号「基数判定パケット処理のための方法および装置」(“Method and Apparatus for Radix Decision Packet Processing ”)を参照されたい。
内部メモリ、190 サーチマシン(SM)、200 外部メモリ、210 入力制御ブロック、220 データFIFO、230 リクエストFIFO、240 ステータスFIFO、250 出力制御、260 コマンドFIFO、310 マイクロコントローラ命令実行ユニット、312 レジスタファイル、314 マイクロコントローラプログラムメモリ、315 特殊レジスタブロック、316 データメモリ、318 ALU、320 タスク制御ブロック、330 ロード/ストアユニット(LSU)、340 DMAブロック、410 配線、704、720、740、804、820、840、920、930 ダイヤグラム、730 サスペンド条件、734 リリース条件、1304、1320、1322、1330、1350、1360、1362 ラッチ、1354 次の状態および条件発生器、1358 バス、1380 リソース次ステージ発生器、1390 回路、1394、1406 マルチプレクサ、1398 タスク次状態発生器、1401 サスペンド論理およびリリース条件発生器、1403 アービタ、1404 配線、1610 スクラッチバッファ。
Claims (40)
- 長さの等しい連続したタイムスロットにおいてネットワークデータを処理する複数の所定のグループ{G1}のタスクを実行するためのコンピュータプロセッサを含む装置であって、各タスクグループG1は複数のタスクを含み、前記コンピュータプロセッサは
各タイムスロットをタスクグループG1と関連づけ、かつ各タイムスロットに対し、関連づけられたタスクグループG1からのタスクのうちの1つを選択するタスク選択回路を含み、どの2個の連続したタイムスロットもそれぞれの異なるタスクグループG1と関連づけられており、前記コンピュータプロセッサはさらに
各タイムスロットにおいて、前記タイムスロットに対して選択された前記タスクに対する最大1個の命令の実行を開始する命令実行ユニットを含む、装置。 - 前記タスク選択回路は
グループG1における各タスクに対し、前記タスクが実行のために利用可能であるかどうかを判定するタスク情報に基づいて単一のタスクグループG1の前記タスクからあるタスクを選択するための選択回路と、
各々が1個のタスクグループG1に対する前記タスク情報を保持する複数のラッチ回路とを含み、各タイムスロットにおいて、各ラッチ回路の内容は次のラッチ回路に転送され、最後のラッチ回路の内容が前記選択回路に与えられる、請求項1に記載の装置。 - 各々がどの所与の時点においてもあるタスクに対して利用可能であるかもしれずまたは利用可能でないかもしれない複数のリソースをさらに含み、各リソースはただ1個のタスクグループG1のタスクによって共用される、請求項1に記載の装置。
- 前記装置は、1個以上のネットワークセグメントからデータのフレームを受信し、および/または1個以上のネットワークセグメントへデータのフレームを送信し、データの各フレームは前記タスクの単一のものによって処理されるものである、請求項1に記載の装置。
- 前記命令実行ユニットは、各タスクに対し、タスク特有の値をストアする1個以上のレジスタを含み、タスクが実行のためにスケジュールされているときは前記1個以上のレジスタのいずれのものもセーブもリストアもされる必要がないようにする、請求項1に記載の装置。
- 複数のネットワークポート上でネットワークデータを受信し、および/または前記ネットワークポート上でネットワークデータを送信するための複数の第1の回路をさらに含み、異なる第1の回路はそれぞれの異なるネットワークポート上でデータを受信および/または送信し、各タスクグループG1は前記第1の回路のうちの1つと関連づけられ、各タスクグループG1は関連づけられた第1の回路によって受信および/または送信されたネットワークデータを処理する、請求項1に記載の装置。
- 各第1の回路はただ1個のポート上でネットワークデータを受信および/または送信する、請求項6に記載の装置。
- 前記第1の回路は前記ネットワークポートとネットワークスイッチとの間のインターフェイスをもたらす、請求項6に記載の装置。
- 各々が1個以上のそれぞれのネットワークデータフロー上でネットワークデータを受信および/または送信する複数の第1の回路をさらに含み、異なる第1の回路はそれぞれの異なるフロー上でデータを受信および/または送信し、各タスクグループG1は前記第1
の回路のうちの1つと関連づけられており、各タスクグループG1は関連づけられた第1の回路によって受信および/または送信されたネットワークデータを処理する、請求項1に記載の装置。 - 各タスクグループG1はネットワークポートに対応し、各タスクグループG1の前記タスクは対応するネットワークポートへの、および対応するネットワークポートからのデータフローを処理する、請求項9に記載の装置。
- 各タスクグループG1は各データフローのデータを処理するため少なくとも2個のタスクを含む、請求項9に記載の装置。
- 各タスクに対してプログラムカウンタレジスタをさらに含み、
各タイムスロットにおいて、(a)前記タイムスロットに対してあるタスクが選択された場合、前記命令実行ユニットは、選択されたタスクのプログラムカウンタレジスタによって識別される命令に対する実行を開始し、(b)前記タイムスロットに対して選択されたタスクがない場合、前記実行ユニットはNOP命令の実行を開始する、請求項1に記載の装置。 - ネットワークデータを処理する複数の所定のグループ{G1}のタスクを実行するためのコンピュータプロセッサを含む装置であって、各タスクグループG1は複数のタスクを含み、前記コンピュータプロセッサは
連続したタスク選択動作を行なうためのタスク選択回路を含み、各タスク選択動作はグループG1と関連づけられ、関連づけられたグループG1からの前記タスクのうちの1つを選択し、どの2個の連続したタスク選択動作もそれぞれ異なるタスクグループG1と関連づけられており、前記コンピュータプロセッサはさらに
前記連続したタスク選択動作によって選択された前記タスクに対する命令を実行するための命令実行ユニットを含み、各タスク選択動作に対し、前記命令実行ユニットは対応する選択されたタスクに対して最大1個の命令の実行を開始する、装置。 - 前記タスク選択回路は
グループG1における各タスクに対し、前記タスクが実行のために利用可能であるかどうかを判定するタスク情報に基づいて単一のタスクグループG1の前記タスクからあるタスクを選択するための選択回路と、
各々が1個のタスクグループG1に対する前記タスク情報を保持する複数のラッチ回路とを含み、各タスク選択動作の後、各ラッチ回路の内容は次のラッチ回路へ転送され、最後のラッチ回路の内容は前記選択回路に与えられる、請求項13に記載の装置。 - 各々がどの所与の時点においてもあるタスクに対して利用可能であるかもしれずまたは利用可能ではないかもしれない複数のリソースをさらに含み、各リソースはただ1個のタスクグループG1のタスクによって共用される、請求項13に記載の装置。
- 前記リソースは、前記コンピュータプロセッサへのリクエストをストアしてネットワークデータを処理するためのリクエストFIFOと、ネットワークデータに適用すべき前記プロセッサからのコマンドをストアするためのコマンドFIFOとを含む、請求項15に記載の装置。
- 複数のネットワークポート上でネットワークデータを受信し、および/または前記ネットワークポート上でネットワークデータを送信する複数の第1の回路をさらに含み、異なる第1の回路はそれぞれの異なるネットワークポート上でデータを受信および/または送信し、各タスクグループG1は前記第1の回路のうちの1つと関連づけられ、各タスクグ
ループG1は関連づけられた第1の回路によって受信および/または送信されたネットワークデータを処理する、請求項13に記載の装置。 - 各第1の回路はただ1個のポート上でネットワークデータを受信および/または送信する、請求項17に記載の装置。
- 各々が1個以上のそれぞれのネットワークデータフロー上でネットワークデータを受信および/または送信する複数の第1の回路をさらに含み、異なる第1の回路はそれぞれの異なるフロー上でデータを受信および/または送信し、各タスクグループG1は前記第1の回路のうちの1つと関連づけられており、各タスクグループG1は関連づけられた第1の回路によって受信および/または送信されたネットワークデータを処理する、請求項13に記載の装置。
- 各タスクグループG1はネットワークポートに対応し、各グループの前記タスクは対応するネットワークポートへの、および対応するネットワークポートからのデータフローを処理する、請求項19に記載の装置。
- 命令実行回路を含む回路によって複数の所定のグループ{G1}のタスク{TSK1}を実行するステップを含む方法であって、前記タスクTSK1はネットワーク上で受信および/または送信されたネットワークデータを処理し、前記命令実行回路は長さの等しい複数の連続したタイムスロットにおける各タイムスロットT1において命令を実行することを始めるように動作可能であり、前記複数のタスクを実行するステップは
どの2個の連続したタイムスロットもそれぞれの異なるグループG1と関連づけられるように、前記所定のタスクグループのうちの1つであるタスクグループG1(T1)に各タイムスロットT1を関連づけるステップを含み、前記実行するステップはさらに
各タイムスロットT1に対し、タスク選択動作TSOP1(T1)を行なって前記タイムスロットT1と関連づけられた前記グループG1(T1)からあるタスクを選択するステップと、
各タイムスロットT1において、前記タスク選択動作TSOP1(T1)によってタスクがうまく選択された場合、前記命令実行回路が前記タイムスロットに対して選択された前記タスクに対する命令の実行を開始するステップとを含む、方法。 - 前記タスクTSK1は、各々がどの所与の時点においてもあるタスクに対して利用可能であるかもしれずまたは利用可能ではないかもしれないリソースを共用しており、各リソースはただ1個のタスクグループG1の前記タスクによって共用される、請求項21に記載の方法。
- 前記タスクTSK1は前記ネットワークデータからアドレス情報を抽出し、アドレス変換を行なう、請求項21に記載の方法。
- 前記タスクTSK1は、複数のネットワークデータフローのネットワークデータを処理し、ネットワークデータは複数の回路C1によって受信および/または送信され、各回路C1は、異なる回路C1がそれぞれの異なるフロー上でネットワークデータを受信および/または送信する態様で1個以上のそれぞれのデータフロー上でデータを受信および/または送信し、各回路C1は、そのタスクが前記回路C1によって受信および/または送信されたデータに対して動作するグループG1に対応する、請求項21に記載の方法。
- 各グループG1はネットワークポートに対応し、各グループG1の前記タスクは対応するネットワークポートへの、および対応するネットワークポートからのデータフローを処理する、請求項24に記載の方法。
- 命令実行回路を含む回路によって複数の所定のグループ{G1}のタスク{TSK1}を実行するステップを含む方法であって、前記タスクTSK1はネットワーク上で受信および/または送信されたネットワークデータを処理し、前記複数のタスクを実行するステップは
前記命令実行回路によって実行すべき各命令に対し、その命令が実行されるべきタスクTSK1を選択する選択動作を実行するステップを含み、各選択動作はグループG1に関連づけられ、前記グループG1が実行に利用可能であるタスクを有している場合に、前記グループG1からあるタスクを選択し、どの2個の連続した選択動作もそれぞれの異なるグループG1と関連づけられており、前記実行するステップはさらに
タスクの選択につながる各選択動作に対し、前記命令実行回路が、選択されたタスクに対する命令を実行するステップを含む、方法。 - 1個以上のネットワークセグメントからデータのフレームを受信するステップおよび/または1個以上のネットワークセグメントへデータのフレームを送信するステップをさらに含み、データの各フレームは単一のタスクTSK1によって処理される、請求項26に記載の方法。
- 前記タスクTSK1は、各々がどの所与の時点においてもあるタスクに対して利用可能であるかもしれずまたは利用可能ではないかもしれないリソースを共用しており、各リソースはただ1個のタスクグループG1の前記タスクによって共用される、請求項26に記載の方法。
- 前記タスクTSK1は前記ネットワークデータからアドレス情報を抽出し、アドレス変換を行なう、請求項26に記載の方法。
- 前記タスクTSK1は複数のネットワークポートに対するネットワークデータを処理し、ネットワークデータは、異なる回路C1がそれぞれの異なるネットワークポート上でネットワークデータを受信および/または送信する態様で複数の回路C1によって受信および/または送信され、各回路C1は、そのタスクが前記回路C1によって受信および/または送信されたデータに対して動作するグループG1に対応し、
前記回路C1は前記ネットワークポートとネットワークスイッチとの間のインターフェイスをもたらす、請求項26に記載の方法。 - 前記タスクTSK1は、複数のネットワークデータフローのネットワークデータを処理し、ネットワークデータは複数の回路C1によって受信および/または送信され、各回路C1は、異なる回路C1がそれぞれの異なるフロー上でネットワークデータを受信および/または送信する態様で1個以上のそれぞれのデータフロー上でネットワークデータを受信および/または送信し、各回路C1は、そのタスクが前記回路C1によって受信および/または送信されたデータに対して動作するグループG1に対応する、請求項26に記載の方法。
- 各グループG1はネットワークポートに対応し、各グループG1の前記タスクTSK1は対応するネットワークポートへの、および対応するネットワークポートからのデータフローを処理する、請求項31に記載の方法。
- 各グループG1は、各データフローのデータを処理するため少なくとも2個のタスクTSK1を含む、請求項31に記載の方法。
- 複数のタスクに対するコンピュータ命令を実行して複数のネットワークポートに対する
ネットワークデータを処理するステップを含む方法であって、ネットワークデータは、異なるポート回路がそれぞれの異なるネットワークポート上でネットワークデータを受信および/または送信する態様で複数のポート回路によって受信および/または送信され、各ポート回路は、前記ポート回路によって受信および/または送信されたデータに対して動作する複数の対応するタスクに対応し、
前記タスクに対して実行されるべき各コンピュータ命令に対し、前記方法は
どの2個の連続した命令もそれぞれ異なるポート回路に対して実行される態様で、前記命令が実行されるべきポート回路P1を定めるステップを含み、前記方法はさらに
タスク選択動作を行ない、前記ポート回路P1に対応する前記タスクのうちの1つを選択するステップと、
前記タスク選択動作によってタスクが選択された場合、選択されたタスクに対して命令を実行するステップと、
実行されるのに利用可能である前記ポート回路P1にいずれの前記タスクも対応していないことにより前記タスク選択動作によってタスクが選択されなかった場合、NOR命令を実行するステップとを含む、方法。 - 複数のネットワークポート上で受信されるネットワークデータおよび/または前記ネットワークポート上で送信されるネットワークデータを処理するポートインターフェイス回路を制御するパイプライン化されたネットワークプロセッサによって複数のソフトウェアタスクを実行するための方法であって、前記ポートインターフェイス回路は、異なるハードウェアタスクがそれぞれの異なるネットワークポートに対するネットワークデータを処理する態様で複数のハードウェアタスクを含み、各ソフトウェアタスクは前記ハードウェアタスクのうちの対応する1つによって処理されるデータに対して動作し、各ハードウェアタスクは複数の前記ソフトウェアタスクに対応し、
長さの等しい連続したタイムスロットの各々において、前記パイプライン化されたプロセッサは前の命令を実行し続けるとともに命令の実行を始めるように動作可能であり、
前記方法は
各タイムスロットをハードウェアタスクと関連づけるステップを含み、このため、各タイムスロットにおいて、前記プロセッサは、関連づけられたハードウェアタスクに対応するソフトウェアタスクが実行のために利用可能である場合に前記関連づけられたハードウェアタスクに対応するソフトウェアタスクの命令の実行を始め、どの2個の連続したタイムスロットもそれぞれの異なるハードウェアタスクと関連づけられており、前記方法はさらに
各タイムスロットに対し、前記タイムスロットに関連づけられた前記ハードウェアタスクに対応するソフトウェアタスクが実行のため利用可能である場合に前記タイムスロットに関連づけられた前記ハードウェアタスクに対応するソフトウェアタスクを選択するステップと、
各タイムスロットにおいて、前記タイムスロットに関連づけられた前記ハードウェアタスクに対応する前記ソフトウェアタスクが実行のため利用可能である場合に、前記タイムスロットに対して選択された前記ソフトウェアタスクからの命令の実行を開始するステップとを含む、方法。 - 長さの等しい連続したタイムスロットにおいてネットワークデータを処理する複数の所定のグループのタスクを実行するためのコンピュータプロセッサを含む装置であって、各所定のグループのタスクは複数のタスクを含み、前記コンピュータプロセッサは
各タイムスロットにおいて、所定のグループのタスクからあるタスクを選択するためのタスク選択回路を含み、どの2個の連続したタイムスロットにおいても、前記タスク選択回路はそれぞれの異なる所定のグループのタスクからタスクを選択し、前記コンピュータプロセッサはさらに
前記タスクが選択されるたびにタスクに対する最大1個の命令の実行を開始する命令実
行ユニットを含む、装置。 - 前記タスクは、各々がどの所与の時点においてもタスクに対して利用可能であるかもしれずまたは利用可能ではないかもしれないリソースを共用し、各リソースは前記所定のグループのタスクのうちのただ1個のグループのタスクによって共用される、請求項36に記載の装置。
- 各々が、1個以上のそれぞれのネットワークデータフロー上でネットワークデータを受信および/または送信する複数の第1の回路をさらに含み、異なる第1の回路はそれぞれの異なるフロー上でデータを受信および/または送信し、各所定のグループのタスクは、前記第1の回路のうちの1つと関連づけられており、各所定のグループのタスクは関連づけられた第1の回路によって受信および/または送信されたネットワークデータを処理する、請求項36に記載の装置。
- 長さの等しい連続したタイムスロットにおいて複数のタスクを実行するためのコンピュータプロセッサを含むネットワーク装置であって、各タスクは前記タスクに対応する1個以上のネットワークデータフロー上で受信された、および/または前記タスクに対応する1個以上のネットワークデータフロー上で送信されたネットワークデータを処理するものであり、前記コンピュータプロセッサは
各タイムスロットにおいてタスクを選択するためのタスク選択回路を含み、2個の連続したタイムスロットにおいて選択されたどの2個のタスクTSK1およびTSK2に対しても、前記タスクTSK1によって処理された前記1個以上のネットワークデータフローは前記タスクTSK2によって処理された前記1個以上のデータフローとは異なり、このため、前記タスクTSK1およびTSK2の双方によって処理されるデータフローがなく、前記コンピュータプロセッサはさらに
前記タスクが選択されるたびにタスクに対して最大1個の命令の実行を開始する命令実行ユニットを含む、ネットワーク装置。 - 複数のタスクを実行するためのコンピュータプロセッサを含むネットワーク装置であって、各タスクは対応するネットワークポート上で受信された、または対応するネットワークポート上で送信されたデータを処理するものであり、前記コンピュータプロセッサは
長さの等しい2個の連続したタイムスロットにおいて選択されたどの2個のタスクもそれぞれ異なるポートに対するデータを処理する態様で、各タイムスロットにおいてタスクを選択するためのタスク選択回路を含み、前記コンピュータプロセッサはさらに
タスクが選択されるたびに前記タスクに対する最大1個の命令の実行を開始する命令実行ユニットを含む、ネットワーク装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/055,033 US6330584B1 (en) | 1998-04-03 | 1998-04-03 | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09657099A Division JP3670160B2 (ja) | 1998-04-03 | 1999-04-02 | タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004342132A true JP2004342132A (ja) | 2004-12-02 |
JP4263147B2 JP4263147B2 (ja) | 2009-05-13 |
Family
ID=21995128
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09657099A Expired - Fee Related JP3670160B2 (ja) | 1998-04-03 | 1999-04-02 | タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 |
JP2004225517A Expired - Fee Related JP4263147B2 (ja) | 1998-04-03 | 2004-08-02 | コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09657099A Expired - Fee Related JP3670160B2 (ja) | 1998-04-03 | 1999-04-02 | タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6330584B1 (ja) |
EP (1) | EP0947926A3 (ja) |
JP (2) | JP3670160B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011028440A (ja) * | 2009-07-23 | 2011-02-10 | Nec Corp | マルチスレッドプロセッサ及びコンピュータプログラム |
JP2014042290A (ja) * | 1999-06-30 | 2014-03-06 | Apptitude Acquisition Corp | ネットワークにおけるトラフィックを監視する方法および装置 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60031515T2 (de) * | 1999-03-17 | 2007-08-23 | Broadcom Corp., Irvine | Netzwerkvermittlung |
US7643481B2 (en) * | 1999-03-17 | 2010-01-05 | Broadcom Corporation | Network switch having a programmable counter |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6985431B1 (en) * | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
AU2134301A (en) * | 1999-12-08 | 2001-06-18 | University Of British Columbia, The | Weighted fair queuing scheduler |
US7856633B1 (en) | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
JP3475900B2 (ja) * | 2000-03-29 | 2003-12-10 | 日本電気株式会社 | 調停方式及びそれを用いたアービタ回路 |
US6931641B1 (en) | 2000-04-04 | 2005-08-16 | International Business Machines Corporation | Controller for multiple instruction thread processors |
US7237022B1 (en) * | 2000-06-29 | 2007-06-26 | Microsoft Corporation | Suspension and reinstatement of reference handles |
US7847803B1 (en) * | 2000-07-26 | 2010-12-07 | Ati Technologies Ulc | Method and apparatus for interleaved graphics processing |
US6591358B2 (en) * | 2001-01-26 | 2003-07-08 | Syed Kamal H. Jaffrey | Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU |
US7130916B2 (en) * | 2001-02-23 | 2006-10-31 | International Business Machines Corporation | Linking frame data by inserting qualifiers in control blocks |
US6990101B1 (en) * | 2001-03-23 | 2006-01-24 | Advanced Micro Devices, Inc. | System and method for performing layer 3 switching in a network device |
WO2003030012A1 (en) * | 2001-09-28 | 2003-04-10 | Tidal Networks, Inc. | Multi-threaded packet processing engine for stateful packet pro cessing |
US20060218556A1 (en) * | 2001-09-28 | 2006-09-28 | Nemirovsky Mario D | Mechanism for managing resource locking in a multi-threaded environment |
US8782287B2 (en) * | 2001-12-21 | 2014-07-15 | Agere Systems Llc | Methods and apparatus for using multiple reassembly memories for performing multiple functions |
US7421693B1 (en) | 2002-04-04 | 2008-09-02 | Applied Micro Circuits Corporation | Logic for synchronizing multiple tasks at multiple locations in an instruction stream |
US6820170B1 (en) | 2002-06-24 | 2004-11-16 | Applied Micro Circuits Corporation | Context based cache indexing |
US7372864B1 (en) | 2002-08-01 | 2008-05-13 | Applied Micro Circuits Corporation | Reassembly of data fragments in fixed size buffers |
US6912596B2 (en) * | 2002-08-02 | 2005-06-28 | Texas Instruments Incorporated | Automatic resume from suspend for IEEE-1394 PHY |
US7254696B2 (en) * | 2002-12-12 | 2007-08-07 | Alacritech, Inc. | Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests |
US20040123298A1 (en) * | 2002-12-20 | 2004-06-24 | Shebanow Michael C. | Distributed resource allocation mechanism |
US7337438B1 (en) | 2003-03-31 | 2008-02-26 | Applied Micro Circuits Corporation | Macros to support structures for an assembler that does not support structures |
US7472390B2 (en) | 2003-10-01 | 2008-12-30 | Intel Corporation | Method and apparatus to enable execution of a thread in a multi-threaded computer system |
US7558890B1 (en) | 2003-12-19 | 2009-07-07 | Applied Micro Circuits Corporation | Instruction set for programmable queuing |
US7457241B2 (en) * | 2004-02-05 | 2008-11-25 | International Business Machines Corporation | Structure for scheduler pipeline design for hierarchical link sharing |
US9189230B2 (en) | 2004-03-31 | 2015-11-17 | Intel Corporation | Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution |
US7827558B2 (en) * | 2004-06-30 | 2010-11-02 | Devicevm, Inc. | Mechanism for enabling a program to be executed while the execution of an operating system is suspended |
US8745627B2 (en) | 2005-06-27 | 2014-06-03 | Qualcomm Incorporated | System and method of controlling power in a multi-threaded processor |
US7823158B2 (en) * | 2005-08-18 | 2010-10-26 | International Business Machines Corporation | Adaptive scheduling and management of work processing in a target context in resource contention |
US7643753B2 (en) | 2005-09-29 | 2010-01-05 | Broadlight Ltd. | Enhanced passive optical network (PON) processor |
US9059946B2 (en) * | 2005-09-29 | 2015-06-16 | Broadcom Corporation | Passive optical network (PON) packet processor |
US7861060B1 (en) * | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
US7865894B1 (en) * | 2005-12-19 | 2011-01-04 | Nvidia Corporation | Distributing processing tasks within a processor |
EP1868094B1 (en) * | 2006-06-12 | 2016-07-13 | Samsung Electronics Co., Ltd. | Multitasking method and apparatus for reconfigurable array |
DE102010003565A1 (de) * | 2010-03-31 | 2011-10-06 | Robert Bosch Gmbh | Zyklischer Priorisierungswechsel bei einer Datenverarbeitung |
DE102010003512A1 (de) | 2010-03-31 | 2011-10-06 | Robert Bosch Gmbh | Geteilte zentrale Verarbeitung von Daten |
US8817799B2 (en) | 2011-04-14 | 2014-08-26 | Broadcom Corporation | Network processor for supporting residential gateway applications |
US9141438B2 (en) | 2011-06-30 | 2015-09-22 | Net Navigation Systems, Llc | Logic for synchronizing multiple tasks |
US9465670B2 (en) | 2011-12-16 | 2016-10-11 | Intel Corporation | Generational thread scheduler using reservations for fair scheduling |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2686844A (en) | 1953-04-13 | 1954-08-17 | Bell Telephone Labor Inc | Telephone set |
FR2616604B1 (fr) | 1987-06-15 | 1989-09-22 | Lespagnol Albert | Equipement de reconstitution et multiplexage de trames d'origines diverses constituees de paquets de longueur fixe en nombre variable |
US5058144A (en) | 1988-04-29 | 1991-10-15 | Xerox Corporation | Search tree data structure encoding for textual substitution data compression systems |
JP2860661B2 (ja) | 1989-03-14 | 1999-02-24 | 国際電信電話 株式会社 | Atm交換機 |
JPH03150637A (ja) * | 1989-11-08 | 1991-06-27 | Oki Electric Ind Co Ltd | パイプライン対応のレジスタ割付け方式 |
US5233606A (en) | 1991-08-02 | 1993-08-03 | At&T Bell Laboratories | Arrangement for controlling shared-buffer-memory overflow in a multi-priority environment |
DE69129851T2 (de) | 1991-09-13 | 1999-03-25 | International Business Machines Corp., Armonk, N.Y. | Konfigurierbare gigabit/s Vermittlunganpassungseinrichtung |
US5983004A (en) * | 1991-09-20 | 1999-11-09 | Shaw; Venson M. | Computer, memory, telephone, communications, and transportation system and methods |
US5357617A (en) * | 1991-11-22 | 1994-10-18 | International Business Machines Corporation | Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor |
JPH05207062A (ja) | 1992-01-27 | 1993-08-13 | Nec Corp | パケット交換方式 |
SE515178C2 (sv) | 1992-03-20 | 2001-06-25 | Ericsson Telefon Ab L M | Förfaranden och anordningar för prioritering vid bufferthantering i paketnät |
US5457687A (en) | 1993-09-02 | 1995-10-10 | Network Equipment Technologies, Inc. | Method and apparatus for backward explicit congestion notification (BECN) in an ATM network |
JP2639335B2 (ja) | 1993-12-22 | 1997-08-13 | 日本電気株式会社 | Atm網における輻輳制御方式 |
GB9401092D0 (en) | 1994-01-21 | 1994-03-16 | Newbridge Networks Corp | A network management system |
EP0680173B1 (en) | 1994-04-28 | 2003-09-03 | Hewlett-Packard Company, A Delaware Corporation | Multicasting apparatus |
FI98774C (fi) | 1994-05-24 | 1997-08-11 | Nokia Telecommunications Oy | Menetelmä ja laitteisto liikenteen priorisoimiseksi ATM-verkossa |
US5633867A (en) | 1994-07-01 | 1997-05-27 | Digital Equipment Corporation | Local memory buffers management for an ATM adapter implementing credit based flow control |
IT1266895B1 (it) | 1994-07-26 | 1997-01-21 | Cselt Centro Studi Lab Telecom | Procedimento per l'allocazione ottimale delle risorse per il trasporto di flussi informativi a banda variabile su reti in tecnica atm, e nodo |
US5528588A (en) | 1994-09-14 | 1996-06-18 | Fore Systems, Inc. | Multicast shared memory |
US5633859A (en) | 1994-09-16 | 1997-05-27 | The Ohio State University | Method and apparatus for congestion management in computer networks using explicit rate indication |
ES2137296T3 (es) | 1994-09-28 | 1999-12-16 | Siemens Ag | Sistema de comunicacion atm para multiplexion estadistica de celulas. |
US5541912A (en) | 1994-10-04 | 1996-07-30 | At&T Corp. | Dynamic queue length thresholds in a shared memory ATM switch |
US5517495A (en) | 1994-12-06 | 1996-05-14 | At&T Corp. | Fair prioritized scheduling in an input-buffered switch |
EP0717532A1 (en) | 1994-12-13 | 1996-06-19 | International Business Machines Corporation | Dynamic fair queuing to support best effort traffic in an ATM network |
US5546390A (en) | 1994-12-29 | 1996-08-13 | Storage Technology Corporation | Method and apparatus for radix decision packet processing |
US5583863A (en) | 1995-01-31 | 1996-12-10 | Bell Atlantic Network Services, Inc. | Full service network using asynchronous transfer mode multiplexing |
JP2723071B2 (ja) | 1995-03-31 | 1998-03-09 | 日本電気株式会社 | Atm−lan接続装置及びatm−lan |
US5809024A (en) | 1995-07-12 | 1998-09-15 | Bay Networks, Inc. | Memory architecture for a local area network module in an ATM switch |
US5978359A (en) | 1995-07-19 | 1999-11-02 | Fujitsu Network Communications, Inc. | Allocated and dynamic switch flow control |
US5751951A (en) | 1995-10-30 | 1998-05-12 | Mitsubishi Electric Information Technology Center America, Inc. | Network interface |
US5689508A (en) | 1995-12-21 | 1997-11-18 | Xerox Corporation | Reservation ring mechanism for providing fair queued access in a fast packet switch networks |
US5944816A (en) * | 1996-05-17 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor configured to execute multiple threads including interrupt service routines |
US6128278A (en) | 1996-08-30 | 2000-10-03 | Mmc Networks, Inc. | Cell queuing in ATM switches |
US6233590B1 (en) * | 1996-12-13 | 2001-05-15 | Venson M. Shaw | Server apparatus for distributed communications supporting multiple user/application environment |
US6018759A (en) * | 1997-12-22 | 2000-01-25 | International Business Machines Corporation | Thread switch tuning tool for optimal performance in a computer processor |
-
1998
- 1998-04-03 US US09/055,033 patent/US6330584B1/en not_active Expired - Lifetime
-
1999
- 1999-03-23 EP EP99302248A patent/EP0947926A3/en not_active Withdrawn
- 1999-04-02 JP JP09657099A patent/JP3670160B2/ja not_active Expired - Fee Related
-
2004
- 2004-08-02 JP JP2004225517A patent/JP4263147B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014042290A (ja) * | 1999-06-30 | 2014-03-06 | Apptitude Acquisition Corp | ネットワークにおけるトラフィックを監視する方法および装置 |
JP2011028440A (ja) * | 2009-07-23 | 2011-02-10 | Nec Corp | マルチスレッドプロセッサ及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPH11327930A (ja) | 1999-11-30 |
EP0947926A3 (en) | 2006-10-11 |
US6330584B1 (en) | 2001-12-11 |
EP0947926A2 (en) | 1999-10-06 |
JP4263147B2 (ja) | 2009-05-13 |
JP3670160B2 (ja) | 2005-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4263147B2 (ja) | コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 | |
US9110714B2 (en) | Systems and methods for multi-tasking, resource sharing, and execution of computer instructions | |
US8762581B2 (en) | Multi-thread packet processor | |
US6665755B2 (en) | External memory engine selectable pipeline architecture | |
Thistle et al. | A processor architecture for Horizon | |
US7853951B2 (en) | Lock sequencing to reorder and grant lock requests from multiple program threads | |
US7873817B1 (en) | High speed multi-threaded reduced instruction set computer (RISC) processor with hardware-implemented thread scheduler | |
US7360067B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor wireless network | |
US6804815B1 (en) | Sequence control mechanism for enabling out of order context processing | |
US7131125B2 (en) | Method and system for sharing a computer resource between instruction threads of a multi-threaded process | |
US20060143415A1 (en) | Managing shared memory access | |
US6920562B1 (en) | Tightly coupled software protocol decode with hardware data encryption | |
US6981077B2 (en) | Global access bus architecture | |
TW200405208A (en) | A scalar/vector processor | |
GB2380834A (en) | Thread ending method | |
US20070044103A1 (en) | Inter-thread communication of lock protected data | |
May | The xmos xs1 architecture | |
US7139899B2 (en) | Selected register decode values for pipeline stage register addressing | |
JP2007510989A (ja) | 動的キャッシングエンジン命令 | |
US7441245B2 (en) | Phasing for a multi-threaded network processor | |
EP1631906B1 (en) | Maintaining entity order with gate managers | |
EP2860643A2 (en) | Collective communications apparatus and method for parallel systems | |
EP1760579B1 (en) | Data processor unit for high-throughput wireless communications | |
KR20140107404A (ko) | 디지털 신호 프로세서 | |
US20050128948A1 (en) | Locally stored portion of a calendar structure indicating when interfaces will become available to transmit packets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060324 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081126 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090127 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |