JP2002149424A - 共有コプロセッサ・リソースに対する複数の論理インタフェース - Google Patents
共有コプロセッサ・リソースに対する複数の論理インタフェースInfo
- Publication number
- JP2002149424A JP2002149424A JP2001265792A JP2001265792A JP2002149424A JP 2002149424 A JP2002149424 A JP 2002149424A JP 2001265792 A JP2001265792 A JP 2001265792A JP 2001265792 A JP2001265792 A JP 2001265792A JP 2002149424 A JP2002149424 A JP 2002149424A
- Authority
- JP
- Japan
- Prior art keywords
- coprocessor
- thread
- clp
- execution
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 52
- 239000000872 buffer Substances 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 24
- 238000011022 operating instruction Methods 0.000 claims description 2
- 239000002131 composite material Substances 0.000 abstract 1
- 230000009977 dual effect Effects 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 42
- 238000012546 transfer Methods 0.000 description 19
- 238000003491 array Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 102100022983 B-cell lymphoma/leukemia 11B Human genes 0.000 description 1
- 101000574654 Homo sapiens GTP-binding protein Rit1 Proteins 0.000 description 1
- 101001005708 Homo sapiens MARVEL domain-containing protein 1 Proteins 0.000 description 1
- 102100025069 MARVEL domain-containing protein 1 Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7864—Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
Abstract
ル・プロセッサ・ユニット(PPU)とコプロセッサと
の通信効率を上げる。 【解決手段】 組み込みプロセッサ複合体は複数のプロ
トコル・プロセッサ・ユニット(PPU)を含む。各ユ
ニットに少なくとも1つの、好適には2つの個別に機能
するコア言語プロセッサ(CLP)が含まれる。各CL
Pは、各PPUに用いられる複数の専用コプロセッサと
の論理コプロセッサ実行/データ・インタフェースを通
してデュアル・スレッドをサポートする。操作命令によ
り、PPUが待ち時間の長いイベントと短いイベントを
識別し、この識別をもとにスレッド実行の優先順位を制
御し切り替える。また操作命令により、指定された特定
のイベントの発生時または非発生時、特定のコプロセッ
サ・オペレーションの条件付き実行が可能になる。
Description
ロセッサ・システムに関し、特に1つ以上のプロトコル
・プロセッサ・ユニット(PPU)を含む組み込みプロ
セッサ複合体に関する。プロセッサ装置内でPPUと複
数のコプロセッサを相互接続するインタフェースを通し
て、それらの間でデータや命令を転送するため、PPU
とともに複数のコプロセッサが用いられる。
ング機能を実現し、これを制御するためプロトコル・プ
ロセッサ・ユニットが用いられていることは周知の通り
である。同様に、コンピュータ・システム処理複合体ア
ーキテクチャを設計する際に、PPUとともにコプロセ
ッサが用いられることも一般的になっている。リアルタ
イム処理を必要とする処理イベントの遅れは、システム
性能に直接影響を与える問題である。PPUによりタス
クを実行するのではなく、特定のコプロセッサにタスク
を割当てることによって、コンピュータ・システムの効
率と性能を上げることができる。PPUがコプロセッサ
と効率よく通信することが重要である。この通信を改良
し続けることが求められる。
以上のコア言語プロセッサ(CLP)を含み、各CLP
が複数のスレッドを持ち、論理コプロセッサ・インタフ
ェースを通して特別タスク・コプロセッサに指示を与え
るプロトコル・プロセッサ・ユニット(PPU)を使用
することである。
リソースにアクセスするため(プログラマから見て)複
数の論理コプロセッサ・インタフェースを使用すること
である。コプロセッサ・リソースは、PPU内の複数の
処理スレッドにより共有されることがあり、複数のPP
U間で1つのコプロセッサ・リソースが共有されること
もある。
セッサのインタフェース側で有効になる特定の操作に関
する。この操作の1つは、コプロセッサ命令を条件付き
で実行する機能である。これは特にカウンタ・コプロセ
ッサで有効であるが、一般には他のコプロセッサにも適
用できる。コプロセッサ・インタフェースは、特定のコ
プロセッサ・コマンドに関する予測応答時間に従って、
待ち時間の長いイベントと短いイベントを識別する機能
を持つ。この識別により、スレッドを実行する優先順位
が制御される。
ッサ・インタフェースに比べてフレキシビリティと効率
が向上したコプロセッサ・インタフェースを提供するこ
とである。
を含めて、以下に述べるようにして達成される。
グ機能を制御する組み込みプロセッサ複合体の動作につ
いて説明する。プロセッサ複合体は、複数のプロトコル
・プロセッサ・ユニット(PPU)を含み、PPUはそ
れぞれ1つ以上のコア言語プロセッサ(CLP)を含
む。CLPはそれぞれ複数のコード・スレッドを持つ。
各PPUが、PPUに対して特定のタスクを実行する上
で有用な複数のコプロセッサを利用する。複合体は、複
数の論理コプロセッサ・インタフェースを使用し、CL
Pとの共有コプロセッサ・リソースにアクセスする。C
LPにより特定の動作命令が実行され、これによりコプ
ロセッサにコマンドが送られる。これらの命令の1態様
は、特定のコプロセッサ命令の条件付き実行を可能にす
ることである。命令は、特定のコプロセッサ・コマンド
に関する予測応答時間に従って、待ち時間の長いイベン
トと短いイベントを識別することができる。これにより
複合体は、処理されている待ち時間の長さとタイプに応
じて、制御をスレッドからスレッドへ切り替えることが
できる。
・プロセッサのプログラミング機能を提供し制御する埋
め込みプロセッサ複合体の文脈で説明する。複合体の実
施形態は通常、ハードウェア・アクセラレータと連携し
て高速パターン検索、データ操作、内部チップ管理機
能、フレーム解析、及びデータのプリフェッチをサポー
トする8つのメイン処理ユニットまたはプロトコル・プ
ロセッサ・ユニット(PPU)を含む。各PPUはそれ
ぞれ構造コンポーネントを含み、構造コンポーネントは
2つのCLPと、少なくとも1つ、好適には数個の専用
/共有コプロセッサ・ユニット、及びメイン処理ユニッ
トと各コプロセッサ・ユニットのインタフェースを含
む。
トワーク・タスクを実行することができる。メイン処理
ユニットは、記憶プログラムの一連の命令を実行する。
コプロセッサ・ユニットはそれぞれ、該メイン処理ユニ
ットを担当し、メイン処理ユニットの制御下で特定のタ
スクを効率よく実行するようにされる。メイン処理ユニ
ットと各コプロセッサ・ユニットのインタフェースによ
り、次の機能のうち1つ以上が有効になる。各コプロセ
ッサ・ユニットの構成、各コプロセッサ・ユニットによ
り完了する特定のタスクの起動、各コプロセッサ・ユニ
ットに関するステータス情報へのアクセス、及び各コプ
ロセッサ・ユニットにより完了する特定のタスクに関す
る結果を返す手段の提供である。メイン処理ユニットと
コプロセッサ・ユニットはそれぞれ1つ以上の専用レジ
スタを含む。インタフェースは、専用レジスタを該メイ
ン処理ユニットとコプロセッサ・ユニットから共通アド
レス・マップにマップすることができる。
ロセッサ(CLP)及び数個の専用コプロセッサを含
む。PPUに複数のCLPが含まれるとき、コプロセッ
サはCLP間で共有される。
ト(ALU)を含み、2つのコード・スレッドをサポー
トする(PPU毎に合計4つのスレッド)。CLPとコ
プロセッサは、スカラ・レジスタとアレイ・レジスタを
含む専用レジスタの個別コピーを格納する。特定のコプ
ロセッサは、CLPからコプロセッサのアレイ・レジス
タやスカラ・レジスタへのコプロセッサ・コマンドの転
送を調整するFIFOバッファを含む。CLPは一度に
1つのスレッド・コマンドのみ実行する。プログラマか
ら見ると、各スレッドはそれぞれ自体のコプロセッサま
たはコプロセッサ・セットに見える。コプロセッサのほ
とんどは、専用機能を実行し、相互に並行して、またC
LPとともに動作することができる。
外部メモリの両方により与えられる。例えば即時アクセ
スには内部SRAMを、高速アクセスには外部ZBT
SRAMを、大容量が求められる場合にはDDR SD
RAMを使用できる。
クサム・コプロセッサ20、ストリング・コピー・コプ
ロセッサ22、エンキュー・コプロセッサ24、データ
ストア・コプロセッサ26、制御アクセス・バス・コプ
ロセッサ28、カウンタ・コプロセッサ30、及びポリ
シ・コプロセッサ32を含む数個のコプロセッサとのデ
ータ・インタフェース14と実行インタフェース16を
維持するプロトコル・プロセッサ・ユニット(PPU)
10を示す。
のペア34及び36を含む。各CLPに命令フェッチ・
デコード/実行ユニット、複数の専用レジスタ、汎用レ
ジスタ、及び2つのスレッドが含まれる。コプロセッサ
実行インタフェース(CPEI)アービタ40は、2つ
のCLPとコプロセッサ間で命令を調停する。コプロセ
ッサ・データ・インタフェース(CPDI)アービタ4
2は、コプロセッサとCLP34及び36間で通信の優
先順位を確認する。CLPの命令は全て命令メモリ(図
1には示していない)に保存される。
ードウェア・クラシファイア(classifier)からの通信
を受信する。ハードウェア・クラシファイアは、ディス
パッチャからの刺激を与え、新しいパケットの処理を開
始する。CLPは、命令メモリからのフェッチ命令をバ
ス48を通して送り、新しいパケットを処理する。同様
にCLP36は、バス50を通してハードウェア・クラ
シファイアから分類結果を受信し、バス52を通して命
令メモリ・インタフェースに要求を送る。命令メモリ・
インタフェースとハードウェア・クラシファイアはPP
Uの外部にあり、図1には示していない。
を通して外部完了ユニット(図示せず)に命令を送る。
データストア・コプロセッサ26は、データをバス62
を通して入口データストア・インタフェースに、または
バス64を通して出口データストア・インタフェースに
送る。制御データのフローは、バス68を通して外部制
御アクセス・バス・アービタ(図示せず)により調停さ
れる。アクセスの調整は、書込まれているか読取られて
いるデータがバス70を通して流れている間にCABア
ービタ68上で行われる。データ・アクセスはバス70
を通して入力または出力される。カウンタ・コプロセッ
サ30とポリシ・コプロセッサ32はそれぞれ、カウン
タ・マネージャとポリシ・マネージャへのアクセスを、
それぞれバス72及び74を通して提供する。
の詳細を示す。各CLPはそれぞれ汎用レジスタ80と
専用レジスタ82を含む。これら専用レジスタは複数の
スカラ・レジスタ84とアレイ・レジスタ86を含む。
また命令フェッチ/デコード/実行の機能88も含む。
施例では、サーバが8つのプロトコル・プロセッサ・ユ
ニット(PPU)を使用する。各PPUに、複数(図で
は7つ)のコプロセッサを共有する1つ以上のCLPが
含まれる。PPUは、フレームを転送し、テーブルを更
新し、ネットワーク処理ユニットを維持するためのコー
ドを実行する。
ードを並行して実行する。各CLPはコアと3ステージ
のパイプライン、16のGPR(汎用レジスタ)、及び
ALU(演算論理ユニット)を含む。コプロセッサは操
作を互いに並行して、またCLPと並行して実行するこ
とができる。コプロセッサは、CLPとインタフェース
を取る際、基本CLP命令とレジスタ・モデルを拡張す
る。各コプロセッサのコマンドは新しいアセンブラ・ニ
ーモニックとして現れ、コプロセッサのレジスタは、C
LPプログラマから見て新しいスカラ・レジスタ、及び
アレイ・レジスタとして現れる。アレイ・レジスタの一
部は共有メモリ・プール44に位置する。コプロセッサ
はCLPと非同期に実行可能である。これによりCLP
は、コプロセッサがコマンドを実行している間に命令の
処理を続けることができる。CLPは、待機命令により
コプロセッサのコマンド実行が完了するまで待機する。
AMで構成される。これらは、初期化時にロードされ、
フレームを転送し、システムを管理するプログラム命令
を格納する。命令メモリは、データ転送タスク、管理ト
ラフィック、及び制御タスクのため16Kの命令を保持
する。
ドの使用を管理し、新しいフレームをフェッチしアイド
ル・スレッドにディスパッチする。データ・フレーム
は、次に使用できるPPUにディスパッチされる。これ
によりアップ/ダウン・ディスパッチャ・キュー(up
−GDQ、up−GCQ、dn−GRO/1、dn−G
BO/1、及びdn−GCQ)からフレーム・アドレス
のエンキューが解除される。エンキュー解除の後、ディ
スパッチャ・ユニットはアップ/ダウン・データストア
(DS)からフレーム・ヘッダの一部を読取り、これを
共有メモリ・プール44に保存する。CLPがアイドル
になるとすぐ、ディスパッチャ・ユニットがコード命令
アドレス(CIA)等の対応する制御情報をバス46ま
たは50を介してCLPに渡す。ディスパッチャは別の
バス58を使用してヘッダ情報を共有メモリ・プール4
4に送る。ディスパッチャはまたタイマと割込みを処理
するため、それらの機能の作業を利用できるスレッドに
ディスパッチする。
0。内部と外部に複数の共有メモリ位置があり、各CL
Pから利用できる。このメモリは共有されるので、アー
ビタはメモリ・アクセス制御に用いられる。TSMはコ
ードによって直接アクセスでき、例えばTSMにルーテ
ィング・テーブルを保存するため使用できる。またTS
Mは、ツリー検索時にTSE12によりアクセスされ
る。
つの機能を実行する。第1に、CLPとUp/Dn E
DS(エンキュー、エンキュー解除、及びアイランドの
スケジュール(Schedule Island)のインタフェースを
取る。EDSはエンキュー操作を実行し、これによりフ
レーム・アドレスがFCBPageと呼ばれるパラメー
タとともに転送キュー、破棄キュー、またはディスパッ
チャ・キューにエンキューされる。ターゲットが転送キ
ューのとき、ハードウェアにより構成されるフロー制御
機構によって、フレームを転送キューにエンキューする
か、破棄キューにエンキューするか確認される。第2
に、完了ユニットはフレーム・シーケンスを保証する。
同じフローに属するフレームは複数のスレッドによって
処理される可能性があるので、それらのフレームがUp
/Dn転送キューに正しい順序でエンキューされるよう
な予防措置が必要である。完了ユニットは、フレーム・
ディスパッチ時にハードウェア・クラシファイア54に
より生成されるラベルを使用する。
ィスパッチ・ユニットとPPUの間のデータ・パスに置
かれる。分類を行い、宛先スレッドに情報を提供する。
Upフレームの場合、ハードウェア・クラシファイア・
アシストがフレーム・フォーマットの周知のケースにつ
いて分類を行う。分類結果は、フレーム・ディスパッチ
の間、CIA(コード命令アドレス)及び4つのGPR
(汎用レジスタ)の内容の形でCLPに渡される。Dn
フレームの場合、ハードウェア・クラシファイア・アシ
ストが、フレーム・ヘッダに応じてCIAを確認する。
ハードウェア・クラシファイア・アシストは、Up及び
Dn両方のフレーム・ディスパッチでは、フレーム・シ
ーケンスを維持するため完了ユニットにより用いられる
ラベルを生成する。
とアービタ。各スレッドからデータストア・コプロセッ
サ26を通してUp/Dnデータストアにアクセスする
ことができる。"他のデータ"を読取るときは読取りアク
セスができ、データプールの内容をデータストアに書戻
すときは書込みアクセスができる。複数のスレッドがあ
り、Upデータストアに一度にアクセスできるのは1ス
レッドのみ、Dnデータストアに一度にアクセスできる
のも1スレッドのみなので、データストア毎に1つのア
ービタが必要である。
WEBWatchインタフェース。CABアービタはC
ABへのアクセスをスレッド間で調停する。スレッドは
全て、CABコプロセッサ28を通してCABにアクセ
スすることができる。これによりプロセッサ・ユニット
にある全てのメモリ及びレジスタの機能にアクセスでき
る。またどのスレッドも、全ての構成領域を変更または
読取ることができる。CABは、プロセッサ・ユニット
のメモリ・マップと考えることができる。
のチップI/Oを使用して、チップ外部からCAB全体
へのアクセスを提供する。
御。CABにより、GCHスレッドまたはCABWat
chが各スレッドを制御することができる。例えばGF
HスレッドまたはCABWatchがCABを使用し
て、シングル・ステップ実行モードで選択されたスレッ
ドを実行することができる。
ーク・サーバは、そのアーキテクチャで数種類のCLP
を利用する。CLPの種類は、それぞれ特定の機能を処
理するようにプログラムされる。
フレームの転送に用いられる。通常、GDHはそれぞれ
専用制御プロセッサを持つ。制御プロセッサはそれぞ
れ、本発明に従って複数のコプロセッサを使用する。シ
ステムに必要なCLPの数は一般に、パフォーマンス評
価により求められる。アーキテクチャと構造は完全にス
ケーラブルであり、シリコン領域によってのみ制限され
る。CLPの数が増えると、シリコン領域に含まれるア
ービタと命令メモリが大きくなる。
ェアはGDHと同じであるが、管理フレームはGCHに
よってのみ処理できる。GCHがデータ・フレームも処
理するようになっている場合はWeb(CLP対応レジ
スタ)上でプログラミングできる(その場合GDHの役
割を担う)。GCHは、ツリーの挿入や削除を行うた
め、GDHハードウェア・アシストにはないハードウェ
アを含む。GCHは、管理セル関連コードの実行、エー
ジングのようなチップ、ツリー管理関連コードの実行、
及びCPや他のGCHとの制御情報の交換に用いられ
る。そのような実行タスクがない場合、GCHはフレー
ム転送関連コードを実行し、その場合はGDHと全く同
じように動作する。
のプロセッサは、Power PCに接続されるハードウェア・
メールボックスにアクセスする。RIT1/2にはPowe
r PCはないので、GPHはGDHと全く同じように動作
する。
リーの挿入、ツリーの削除、及びロープの管理を行うた
め、GDH及びGCHハードウェア・アシストにはない
ハードウェアがある。GTHは、GPQにツリー管理コ
マンドを含むフレームがないときデータ・フレームを処
理する。
令フェッチ/デコード/実行ユニット88、汎用レジス
タ80、及びスカラ・レジスタ84とアレイ・レジスタ
86が含まれる専用レジスタ82を含む。CLP#2
36も同種のコンポーネントを含む。
実行ユニット102内で命令を完全に実行する。2つの
例外は、図4の直接/間接コプロセッサ実行命令417
である。これら2つの命令は、接続されたコプロセッサ
のうち1つでコマンド処理を開始する。コプロセッサは
コマンドを互いに並行して実行でき、またCLP内の命
令処理と並行して実行できる。CLP命令にコプロセッ
サがかかわるときは、コプロセッサ識別子と呼ばれ、操
作のため選択されたコプロセッサを示す0乃至15の範
囲内の4ビットの数が指定される。
の少なくとも一部に対するアレイ・レジスタを保持す
る。PPUで動作する全てのスレッドにより用いられ
る。各スレッドにより1Kバイトが用いられ、次の領域
に分けられる。FCBpage(エンキュー・コプロセ
ッサのアレイ・レジスタと見なされる)、データ・フェ
ッチ、スクラッチ・メモリ領域(CLPのアレイ・レジ
スタと見なされる)、及びシステム領域である。プール
はスレッド数に応じて、等しいセグメントに分けられて
いると見なすことができる。各セグメントでは、アドレ
ス・スペースがCLP及びアレイ・レジスタを必要とす
る各種コプロセッサのアレイ・レジスタに分けられる。
プールのアドレス・ラインのうち2つは、どのCLPが
アクティブか、どのスレッドがアクティブかに応じて駆
動される。
ぞれ専用ハードウェア・アシスト・エンジンであり、コ
アに組み込まれた場合は、大量の直列化コードを必要と
するような機能を実行する。コプロセッサはCLPと並
列に動作し、IPヘッダの変更、フロー制御アルゴリズ
ムに用いられるフロー情報の維持、CABを介した内部
レジスタへのアクセス、フロー制御及び管理情報ブロッ
ク(MIB)のカウントの維持(標準とプロプライエタ
リ)、転送されるフレームのエンキュー等、データの移
動に用いられる機能を提供する。プロセッサはそれぞ
れ、他に明記しない限り、PPUの各スレッドに対する
スカラ・レジスタとアレイのセットを維持する。
コア言語プロセッサ34、36と接続された数個のコプ
ロセッサ12、20、22、24、26、28、30及
び32を含む。これらのコプロセッサは、高速パターン
検索、データ操作、内部チップ管理機能、フレーム解
析、及びデータ・フェッチ等、特定のネットワーク処理
タスクについてハードウェア・アクセラレーションを実
現する。
て説明する。
ジン(TSE)コプロセッサ12には、コプロセッサ識
別子2が割当てられる。TSEは、ツリー管理とアービ
タ110を介したツリー検索メモリへの直接アクセスに
関するコマンドを持つ。LPM(可変長の一致を必要と
する最長プレフィックス一致パターン)、FM(正確な
一致のある固定サイズ・パターン)、及びSMT(範囲
またはビット・マスク・セットを定義するパターンを伴
うソフトウェア管理ツリー)の検索を行うアルゴリズム
を持ち、フレームの転送、及び変更情報を取得する。コ
プロセッサ識別子1が割当てられるデータストア・コプ
ロセッサ26は、フレーム・データの収集、変更、また
はネットワーク・プロセッサのフレーム・データ・メモ
リ112への導入に用いられる。本発明に有用なツリー
検索のアーキテクチャや動作の詳細については、米国特
許出願ドケット番号RAL9990139、同RAL9
990140、及びRAL9990141を参照された
い。
ックサム・コプロセッサ20は、インターネット・チェ
ックサムを計算するため提供されるアルゴリズムを使用
してチェックサムを計算し検証する。その際、ハーフワ
ード・データに対してチェックサム操作を実行し、ハー
フワード・チェックサム結果を返す。次のコマンドを使
用できる。 ・チェックサム生成、及び ・チェックサム確認
ステイク・スカラ・レジスタに置かれる。累算スカラ・
レジスタは、チェックサム計算の結果を格納し、ステイ
ク・スカラ・レジスタは、チェックサムに含まれる最後
のハーフワードに続くバイト位置を格納する。チェック
サム・コプロセッサのデータは共有メモリ・プールに置
かれる。
ションを含む。 1)IPヘッダ:IPヘッダが指示されたとき、レイヤ
3ヘッダの開始位置(つまりステイク)が渡される。ハ
ードウェアが、ヘッダ長フィールドからIPヘッダの長
さを確認し、この値を長さスカラ・レジスタにロードす
る。チェックサムを生成する際、現在のチェックサムを
格納したハーフワードの代わりに0の値が用いられる。 2)データ・ブロック:共有メモリ・プールにあるデー
タは、データのブロックとして処理され、チェックサム
を生成または確認することができる。共有メモリ・プー
ルの開始位置及び長さが渡される。データのブロックを
確認する際、チェックサムは累算スカラ・レジスタに置
かれる。データのブロックをチェックする際、チェック
サムは累算レジスタに置かれている。
コプロセッサ24は2つの機能を提供する。 1)コードにより、ワーキングFCBPageと呼ば
れ、アップ/ダウンFCBページを作成するため用いら
れる256ビット・レジスタ、FCB(フレーム制御ブ
ロック)ページを作成することができる。レジスタは、
フレームをEDS(エンキュー、デキュー/スケジュー
リング)アップまたはEDSダウンでエンキューするた
め必要な全てのパラメータを格納する。レジスタに格納
されるパラメータの例として、アップのFCBアドレ
ス、ターゲット・パート番号、フレーム変更情報、及び
次ループID等がある。 2)CLPと完了ユニット(CU)のインタフェースを
提供する。CUはCLPから独立して動作するが、CL
Pプロセッサ毎にReady FCBPageというレ
ジスタを格納する。レジスタは、エンキューの後、CU
にコピーされ、その後、エンキューはエンキュー・プロ
セッサにより引き継がれる。その際、CLPが解放され
て次のフレームが処理される。EQはそのレディ・ビッ
ト(?)を設定する。ただし、CUのReady FC
BPageが空でない場合、EQは、EQレジスタが空
になるまでCLPからCUへの転送をブロックし、その
後転送を可能にする。エンキュー・コプロセッサは、ス
レッドと完了ユニットの間のインタフェース及び共有メ
モリ・プールに維持されるFCBPageの使用を管理
する。各スレッドに3つのFCBPage位置があり、
フレームに関するエンキュー情報をそこに維持すること
ができる。ページのうち2つは、連続したエンキュー間
で2つのページをスワップすることによって、完了ユニ
ット・インタフェースに対するパフォーマンスを改良す
るため用いられる。スレッドに対して書かれるアセンブ
リ言語コードは、ハードウェアによって管理されるので
これら2つのページを区別しない。3番目のページは、
コードにより新しいフレームを作成できるようにするた
めスレッドにより用いられる。この例として、学習のた
めの管理トラフィック(guided traffic for learnin
g)の作成がある。これはGTHスレッドにより実行さ
れるように再エンキューされる。
発行すると、FCBPageは使用中と指示される。他
の位置が使用できる場合は、エンキュー・コプロセッサ
からの応答を待たずに新しいフレームがスレッドにディ
スパッチされる。完了ユニットは、エンキュー・コプロ
セッサを通して共有メモリ・プールからFCBPage
をフェッチし、これをEDS(エンキュー・コマンドに
より示される入口または出口)に提供する。これが起こ
るとFCBPageはフリーと指示される。両方のFC
BPageが使用中と指示された場合、第3のフレーム
は起動できない。
ドがサポートされる。 ・エンキュー入口(ENQUP)は、完了ユニットを介
して入口フロー制御/スケジューラにエンキューする。 ・エンキュー出口(ENQDN)は、完了ユニットを介
して出口フロー制御/スケジューラにエンキューする。 ・エンキュー・クリア(ENQCLR)は、現在のFC
BPageをクリアする(全フィールドを0に設定す
る)。
セッサ26は次の機能を実行する。 1)アップ・データストア及びダウン・データストアと
のインタフェースを取る。 2)タイマ・イベントのディスパッチまたは割込みのと
き構成情報を受信する。 3)フレームのチェックサムを計算する。 このコプロセッサは通常、320バイトのデータ・バッ
ファ及びそれぞれ128ビットのワード8個のメモリを
含む。
セッサを通してアクセスされ、メディアから受信された
フレームを格納する入口データストアと、パケット・ル
ーティング・スイッチから受信され再アセンブルされた
フレームを格納する出口データストアとのインタフェー
スが取られる。また、タイマ・イベントのディスパッチ
や割込みのとき構成情報も受信される。
リ・プールで定義されたアレイを使用する。アレイはデ
ータプールであり、8つのクォドワード及び2つのスク
ラッチ・アレイを保持でき、スクラッチ・アレイの1つ
は8つのクォドワード、もう1つは4つのクォドワード
を保持する。データストア・コプロセッサには、入口、
出口のデータストアとの間のアレイ内容の読取り、書込
みの制御に用いられる別のスカラ・レジスタが維持され
る。データストア・コプロセッサによりサポートされる
スレッド毎に、アレイとスカラ・レジスタの1セットが
定義されている。
ータストア・コプロセッサの作業領域になる。データス
トアを直接読取りまたはそこに直接書込む代わりに、大
量のフレーム・データがデータストアからこれら共有メ
モリ・プールのアレイに読取られるか、または大量のデ
ータがこれらアレイからデータストアに書込まれる。転
送単位はクォドワードであり、クォドワードは16バイ
トとして定義される。
ンドを使用できる。 1)出口データストア書込み(WRDNDS):CLP
により出口データストアへの書込みができる。書込みは
クォドワード単位の倍数でのみ発生する。データはデー
タストア・コプロセッサのアレイのいずれか(データプ
ールまたはスクラッチ・アレイ)から取られる。 2)出口データストア読取り(RDDNDS):CLP
により出口データストアからデータを読取り、データス
トア・コプロセッサのアレイの1つに入れることができ
る。読取りは、出口データストアに対して、クォドワー
ド単位の倍数でのみ発生する。 3)入口データストア書込み(WRUPDS):CLP
により入口データストアへデータを書込むことができ
る。読取りは、入口データストアに対して、クォドワー
ド単位の倍数でのみ発生する。 4)入口データストア読取り(RDUPDS):CLP
により入口データストアからデータを読取ることができ
る(クォドワード単位の倍数でのみ)。 5)出口データストアからの他のフレーム・データの読
取り(RDMOREDN):出口データストアからのハ
ードウェア・アシスト読取り。RDMOREDNは、最
後の読取りが停止したところからフレームの読取りを続
け、データをデータプールに置く。データはデータプー
ルに移されるので、ハードウェアは、読取られているフ
レームの現在位置を管理し、次のツイン・バッファの位
置を確認するためツイン・バッファからリンク・ポイン
タをキャプチャする。このアドレスは、ツインが尽きて
次のツインが読取られるまで、後続のRDMOREDN
要求のためハードウェアにより用いられる。データプー
ルの内容はツインの内容のマップなので、データプール
内でフレーム・データがラップされる可能性がある。コ
ードによりデータプール内のデータの位置が管理され
る。 6)入口データストアからの他のフレーム・データの読
取り(RDMOREUP):入口データストアからのハ
ードウェア・アシスト読取り。RDMOREUPは、最
後の読取りが停止したところからフレームの読取りを続
け、データをデータプールに置く。データはデータプー
ルに移されるので、ハードウェアは、読取られているフ
レームの現在位置を管理し、フレームの次のデータ・バ
ッファの位置を確認するためバッファ制御ブロック領域
に維持されたリンクをキャプチャする。このアドレス
は、データ・バッファが尽きて次のバッファが読取られ
るまで、後続のRDMOREUP要求のためハードウェ
アにより用いられる。コードによりデータプール内のフ
レームのデータの位置が管理される。 7)リース・ツイン・バッファ(LEASETWI
N):フリー・ツイン・バッファ(出口データストアで
新しいデータを作成するときに用いられる)のアドレス
を返す。
サ:このコプロセッサ28では、ネットワーク・プロセ
ッサが、ネットワーク・プロセッサ・システム全体で、
選択されたレジスタを制御することができる。システム
初期化等のために特定のレジスタを初期化でき、システ
ム診断やメンテナンスのため特定のレジスタを読取るこ
とができる。
体(EPC)Webアービタとインタフェースを取る。
アービタはCLPとWebウォッチ間の調停を行う。こ
れによりCLPは全てWeb上で読取り、書込みができ
る。
関してCABアービタと制御アクセス・バスにインタフ
ェースを与える。スレッドは、CABのアドレス、デー
タ等、CABアクセスのオペランドをロードする必要が
ある。その場合、CABにアクセスするプロトコルは、
CABインタフェース・コプロセッサにより処理され
る。CABインタフェース・コプロセッサは次のコマン
ドを提供する。 ・CABアクセス調停(WEBARB):CABへのア
クセスを取得するためスレッドにより用いられる。アク
セスが取得されると、スレッドはCABを解放するまで
CABの制御を維持する。 ・CAB読取り/書込み(WEBACCESS):CA
B及びCABからアクセスできる接続されたレジスタと
の間でデータを移動する。PPU内の送信元と宛先は汎
用レジスタ(GPR)である。 ・CAB優先使用(WEBPREEMPT):GFHス
レッドによってのみ用いられ、これによりGFHは、1
回の読取り/書込みアクセスについて、CABがすでに
他のスレッドに与えられている場合でもCABの制御を
取得する。
ー、CABの各コプロセッサのアーキテクチャ、動作に
関する他の詳細については、整理番号RAL99900
83の米国特許出願、"String Copy(StrCopy)Coproce
ssor"を参照されたい。
CLPの機能を拡張し、データのブロックを移動する。
データは共有メモリ・プール内でのみ移動する。次のコ
マンドが使用できる。 ・ストリング・コピー(Strcopy):このコマンドは、
アレイ間でデータの複数のバイトを移動するため用いら
れる。コマンドは、ソース・データ・ブロックとシンク
・データ・ブロックの開始バイト位置及び移動するバイ
ト数を渡す。
ロセッサ30は、全PPU間で共有できるカウンタ・マ
ネージャ(図示せず)へのアクセスをバス72を通して
提供する。コプロセッサは、全てのカウンタ・プログラ
ムとインタフェースを取り、カウンタの更新を行う。ス
カラ・レジスタとコプロセッサ実行インタフェース16
間のFIFOバッファ76で実装される。アレイ・レジ
スタとコプロセッサ・データ・インタフェース14間に
第2FIFOバッファ78が置かれる。スレッドはそれ
ぞれ自体のカウンタ・コプロセッサを持っているかのよ
うに動作する。このコプロセッサには外部(PPUに対
して)アドレス/データ・バスが用いられる。これによ
り、外部バスを通してカウンタ・コプロセッサを使用す
るため2つ以上のPPUが調停を行えるようにシステム
を実装することができる。
してカウンタの更新を要求し、カウンタ・マネージャが
操作を完了するのを待たずに処理を続けることができ
る。カウンタ・コプロセッサはその要求をカウンタ・マ
ネージャに通知し、カウンタ・アクセス・コマンドのオ
ペランドを処理のためカウンタ・マネージャに渡す。カ
ウンタ・コプロセッサには、PPUで動作する4つのス
レッドにより発行されたカウンタ・アクセス・コマンド
を入れる8ディープ・キューがある。カウンタ・コプロ
セッサは次のコマンドを提供する。
ウンタを増分するかまたはカウンタに値を追加する。コ
マンド・オペランドは、カウンタ識別子(カウンタ・メ
モリの形)、インデックスとオフセット、増分もしくは
追加コマンド、値フィールド、カウントの読取りもしく
は書込み、またはカウント値の読取りとクリアである。
スレッドは、カウンタ・コプロセッサ・キューが一杯で
なければ、コマンドの実行を待たない。
て詳しくは、整理番号RAL920000078US1
の米国特許出願、"Coprocessor for Managing Large Co
unter Arrays"を参照されたい。
ッサ32は、スレッドに関してポリシ・マネージャ(図
示せず)とのインタフェース74を提供する。スカラ・
レジスタとコプロセッサ実行インタフェース16間のF
IFOバッファ76で実装される。アレイ・レジスタと
コプロセッサ・データ・インタフェース14間には第2
FIFOバッファ78が置かれる。スレッドは、このイ
ンタフェースを通してフレームの"カラー"の更新を要求
する。フレームのカラーは、ネットワーク・プロセッサ
の構成可能なフロー制御機構の一部として用いられ、こ
の機構によりフレームに対する処理が決定される。スレ
ッドはポリシ・マネージャが、ポリシ・コプロセッサを
介して結果を返すまで待機する必要がある。ポリシ・マ
ネージャは、このフレームがメンバーであるフローにつ
いてポリシ制御ブロックにアクセスする。オペランドに
は、ポリシ制御ブロック・アドレス、パケット長、フレ
ームに現在割当てられているカラー等がある。返される
結果はフレームの新しいカラーである。
サ実行インタフェース16とコプロセッサ・データ・イ
ンタフェース14の2つのインタフェースを通してコプ
ロセッサ12、20、22、24、26、28、30及
び32に接続される。これらのインタフェースの機能に
ついては図4で詳しく説明する。
ット・コプロセッサ識別子により識別される。各コプロ
セッサが最大256の専用レジスタをサポートする。コ
プロセッサ内の専用レジスタは、0乃至255の範囲の
8ビット・レジスタ番号により識別される。コプロセッ
サ番号(CP#)とレジスタ番号の組み合わせにより、
PPU内のレジスタが識別される。スカラ・レジスタと
アレイ・レジスタの2種類の専用レジスタがある。
スタに予約されている。スカラ・レジスタは最小1ビッ
ト、最大32ビットである。スカラ・レジスタのビット
には0乃至31までの番号が振られ、0は右端またはL
SB(least significant bit)、31は左端またはM
SB(most significant bit)である。32ビット未満
の長さのスカラ・レジスタは右揃えされ、残りのビット
は非実装と見なされる。CLPが32ビット未満の長さ
のスカラ・レジスタを読取るとき、非実装ビットの値は
ハードウェアに依存する。非実装ビットへの書込みは無
効である。
レジスタに予約されている。アレイ・レジスタは最小2
バイト、最大256バイトである。CLPはアレイ・レ
ジスタを読取るか書込み、共有メモリ・プール44内で
一度に2バイト(ハーフワード)、一度に4バイト(ワ
ード)、または一度に16バイト(クォドワード)パー
ティションをきる。
り、ここでは一般的なことについて述べる。プログラマ
から見た汎用レジスタは2通りある。汎用レジスタは、
0、2、4、...14の集合から4ビット数で表され
る32ビット・ラベルで示されるように、32ビット・
レジスタと見なすこともできる。この意味でプログラマ
は8個の32ビット汎用レジスタを扱う。またプログラ
マは汎用レジスタを、0、1、2、...15の集合か
らの4ビット数として表される16ビット・ラベルに従
って、16ビット・レジスタとして扱うこともできる。
この意味でプログラマは16個の16ビット・レジスタ
を扱う。
からの情報を格納するステータス・レジスタが含まれ
る。このレジスタは、所与のコプロセッサが利用できる
か、またはビジー状態かどうかをプログラマに示す。コ
プロセッサ完了コード・レジスタが図4のOK/K.
O.フィールド415からの情報を格納する。従って、
プログラマは、所与のコプロセッサがビジーかまたは利
用できるか知る必要のある場合、この情報をコプロセッ
サのステータス・レジスタから取得することができる。
同様にコプロセッサ完了コード・レジスタが、コプロセ
ッサ・タスクの完了についてプログラマに情報を提供す
る。
レジスタが含まれる。プログラム・カウンタ・レジス
タ、プログラム・ステータス・レジスタ、リンク・レジ
スタ、及びキー長レジスタである。タイムスタンプ・レ
ジスタと乱数ジェネレータ・レジスタの2つの32ビッ
ト・レジスタも追加される。前記レジスタそれぞれにス
カラ・レジスタ番号も与えられる。
考えられる。プログラマは汎用レジスタを32ビット・
レジスタと見なすことができ、16ビット・レジスタと
見なすこともできる。
号を通してプログラマに知られる。
16とコプロセッサ・データ・インタフェース14を通
してCLP34をそのコプロセッサ401に接続するイ
ンタフェース信号を示す。個々のワイヤ接続数は、個々
の割当てアイテムの矢印の横にある番号ラベルに示して
ある。ここの説明では、選択コプロセッサ20、2
2、...は、コプロセッサ識別子が、後述する操作に
応じて411、420、または429に現れるコプロセ
ッサ識別子に一致するコプロセッサを表す。
より、任意のコプロセッサ20、22、...上でコマ
ンドの実行を開始することができる。コプロセッサ番号
411は、コマンドのターゲットとして16のコプロセ
ッサのうち1つを選択する。CLTにより開始フィール
ド410が論理"1"になると、コプロセッサ番号411
により示される選択コプロセッサ450が、6ビットO
pフィールド412により指定されたコマンドの実行を
開始する。Op引数413は、44ビットのデータで、
コプロセッサ450により処理されるようにコマンドと
ともに渡される。ビジー信号414は16ビット・フィ
ールドで、各コプロセッサ401に1ビットであり、コ
プロセッサがコマンドを実行していてビジーか(ビット
=1)または、そのコプロセッサがコマンドを実行して
いない(ビット=0)ことを示す。これら16ビットは
スカラ・レジスタに保存され、レジスタのビット0はコ
プロセッサ0に、ビット1はコプロセッサ1に、以下同
様に対応する。OK/K.O.フィールド415は16
ビット・フィールドで、各コプロセッサ401に1ビッ
トである。これは1ビット戻り値コードであり、コマン
ドに依存する。例えば、コプロセッサ401に与えられ
たコマンドが失敗に終わったか、コマンドが成功したか
をCLP34に示すためこれを使用できる。この情報は
CLPスカラ・レジスタ内に保存され、レジスタのビッ
ト0はコプロセッサ0に、ビット1はコプロセッサ1
に、以下同様に対応する。直接/間接フィールド417
は、コプロセッサ実行命令のどのフォーマットが実行さ
れているかを選択コプロセッサ450に示す。直接/間
接=0のとき、直接フォーマットが実行されている。直
接/間接=1のときは間接フォーマットが実行されてい
る。
4は3つの信号グループを含む。書込みインタフェース
419、420、421、422、423、424は、
コプロセッサ内のスカラ・レジスタまたはアレイ・レジ
スタにデータを書込むときに関係する。読取りインタフ
ェース427、428、429、430、431、43
2、433は、コプロセッサ内のスカラ・レジスタ84
またはアレイ・レジスタ86のいずれかの専用レジスタ
82からデータを読取るときに関係する。第3のグルー
プ425、426、427は、スカラ・レジスタまたは
アレイ・レジスタの読取りと書込みの両方で用いられ
る。読取りインタフェースと書込みインタフェース両方
に対する複製機能は、レジスタからレジスタへデータを
移動するための同時読取り/書込みをサポートするよう
に働く。
ド419を使用して、コプロセッサ番号420により示
されるコプロセッサ450を選択する。書込みフィール
ド419は、CLP34が選択コプロセッサにデータを
書込もうとするときに1に設定される。コプロセッサ・
レジスタ識別子421は、CLP34が選択コプロセッ
サ内450に書込もうとすることをレジスタに示す。コ
プロセッサ・レジスタ識別子421は8ビット・フィー
ルドで、よって256のレジスタがサポートされる。0
乃至239の範囲のコプロセッサ・レジスタ識別子はス
カラ・レジスタへの書込みを示す。240乃至255の
範囲のコプロセッサ・レジスタ識別子はアレイ・レジス
タへの書込みを示す。アレイ・レジスタ書込みの場合、
オフセット・フィールド422は、アレイ・レジスタの
データ書込み操作の開始点を示す。このフィールドは8
ビットで、従ってアレイ内で256のアドレスをサポー
トする。データ出力フィールドは、コプロセッサ450
に書込まれるデータを入れる。これは128ビットの大
きさで、従って最大128ビットの情報を一度に書込む
ことができる。書込み有効フィールド424は、コプロ
セッサ450がデータの受信をいつ終了したかをCLP
34に示す。これによりCLP34は、コプロセッサ4
50がデータを取る間、一時停止し、データを有効な状
態に保つことができる。
タフェース16と構造は似ているが、データはコプロセ
ッサから読取られる。読取りフィールド428は書込み
フィールド419に対応し、選択コプロセッサ450で
読取り操作がいつ実行されるか示すためCLP34によ
り用いられる。コプロセッサ番号識別子フィールド42
9は、どのコプロセッサ450が選択されているかを示
す。レジスタ番号フィールド430、オフセット・フィ
ールド431、及び読取り有効フィールド433は、書
込みインタフェースの421、422及び424に対応
する。データ入力フィールド432は、コプロセッサ4
50からCLP34へのデータを入れる。
のうちいずれか1つをとる。16ビットが転送されるこ
とを示すハーフワード、32ビットが転送されることを
示すワード、及び128ビットが転送されることを示す
クォドワードである。読取りデータ432と書込みデー
タ423は128ビット幅である。128ビット未満の
データ転送は右揃えされる。信号425及び426は、
データ転送サイズを示す。16ビットの転送は425と
426が両方とも0で示され、32ビットの転送は42
5と426がそれぞれ1と0で示され、128ビットの
転送は425と426がそれぞれ0と1で示される。
たはデータ書込みの操作で用いられる。コプロセッサは
それぞれ、コプロセッサのハードウェア・デザイナによ
り定義された独自の方法でその意味を解釈する。これに
よりプログラマは、読取りまたは書込みの操作のときに
ハードウェアに対して情報ビットを追加指定することが
できる。データストア・コプロセッサは、パケット・バ
ッファのリンク・リストでパケット・バッファのリンク
・フィールドを省略することができる。
Pは、命令の実行を続けるか、またはコプロセッサでタ
スクが完了するまで実行を中断することができる。CL
Pが、コプロセッサ内のタスク実行と並行して命令の実
行を続ける場合、後の時点で、メイン・プロセッサ・ユ
ニットによるWAIT命令の実行のため、1つ以上のコ
プロセッサでのタスク実行が完了するまで他の命令の実
行が中断する。WAIT命令は、形式によっては1つ以
上のコプロセッサ内でタスクが完了するまでCLP上の
実行を中断させる。その時点でCLPは命令の実行をW
AIT命令に続く命令から再開する。他の形では、WA
IT命令により、特定のコプロセッサ内でタスクが完了
するまでCLPの実行が中断する。そのタスクが完了す
ると、CLPはコプロセッサからの1ビット戻りコード
を、WAIT命令からの1ビットとともに調べ、WAI
T命令に続く命令から命令の実行を再開するか、実行を
プログラマにより指定された他の命令に分岐するか確認
する。
のコマンド処理を真似るため、図1のコプロセッサ実行
インタフェース16の"開始"信号を1に設定する。図5
乃至8を参照する。コプロセッサ識別子520は、命令
フィールド500から取得され、開始信号を介して選択
コプロセッサを示す。6ビット・コプロセッサ・コマン
ドは命令フィールド501から取得され、どのコマンド
の実行を開始するかを信号により選択コプロセッサに示
す。開始信号がアクティブにされ1になると、選択コプ
ロセッサはそのビジー信号をアクティブにし(1にす
る)、コマンドの実行を完了するまで1のままにしてお
く。コマンドの実行が完了すると、この信号を0にする
(非アクティブ化)。CLPは継続して16ビットの信
号を読取り、それらをそのスカラ・レジスタに入れる。
コマンドの完了後、選択コプロセッサはこのステータス
をスカラ・レジスタに入れる。
期実行フィールド502が0のとき、CLPはコマンド
の完了を示すため、そのビジー信号を無効化する。その
とき、CLPは命令のフェッチと実行を再開する。命令
の非同期実行フィールド502が1のとき、CLPは、
ビジー信号の状態にかかわらず命令のフェッチと実行を
続ける。
れると、CLPは44ビットの他のコマンド対応情報を
信号によりコプロセッサに与える。この情報は、図5乃
至図8に示すように命令フォーマットに応じて4つの方
法のいずれかで引き出される。
は、上位12ビット523のコマンド情報を命令フィー
ルド504から取得する。下位32ビットのコマンド情
報524は32ビット汎用レジスタ505から取得され
る。選択レジスタは、値{0、2、4、...14}に
制限された4ビット命令フィールド503により求めら
れる。こうしてそのレジスタから32ビット・レジスタ
が選択される。CLPは信号を1に設定し、これが命令
の間接フォームであることを選択コプロセッサに示す。
フォーマットを図6に示す。ここで命令は、満足した特
定の条件をもとに図5と同じように実行される。条件を
満足しない場合、命令は実行されない。命令は、CLP
のALUコードをもとに実行される。条件付き実行には
4ビットが使用され、その結果Opフィールドは2ビッ
トに短縮される。従って考えられる64のコマンドのう
ち4つに対して条件付き実行が可能になる。他のコマン
ドは0と見なされる。よって長い待ち時間と短い待ち時
間をもとにした条件付き実行を実現することができる。
コプロセッサ命令の条件付き実行は特に、カウンタ・コ
プロセッサの動作と関連するときに有益である。
は、下位16ビット527のコマンド情報を命令フィー
ルド506から取得する。上位28ビット526のコマ
ンド情報は0に設定される。CLPは信号を0に設定
し、これが命令の直接形式であることを選択コプロセッ
サに示す。
トを、図7と同じように実行されるように構成された形
で図8に示す。図6と同様、条件付き実行では、4ビッ
トが使用され、その結果Opフィールドは2ビットに短
縮される。よって、考えられる64のコマンドのうち4
つに対して条件付き実行が可能になる。
ットを示す。CLPは、コプロセッサ・ステータス・レ
ジスタで、命令フィールド600から取得された16ビ
ット・マスクに対してビット単位でAND演算を行う。
結果が0でない、つまり1つ以上のコプロセッサが現在
まだコマンドを実行している場合、CLPは命令のフェ
ッチと実行を中断する。ただし、前記AND演算の実行
は、結果が0になるまで継続する。
マットを示す。コプロセッサ識別子フィールド601
は、コプロセッサ・ステータスの特定のビットがテスト
されることを示す。例えばフィールド601に1がある
とき、コプロセッサ・ステータス・レジスタのビット1
がテストされる。識別子フィールド601に15がある
とき、コプロセッサ・ステータスのビット15がテスト
される。テストされるビットの値が1で、対応するコプ
ロセッサがコマンドの実行をまだ完了していないことを
示す場合、CLPは命令のフェッチと実行を中断する。
ただし前記の演算はテスト・ビットの値が0、つまり対
応するコプロセッサがコマンドの実行を完了するまで継
続する。この時点で、命令のOKフィールド602の値
と、コプロセッサ識別子601により選択された、スカ
ラ・レジスタのコプロセッサ完了コードのビットの値に
応じて、2つの処理のうちいずれかが発生する。CLP
は、下表に応じて、次のシーケンシャル命令のフェッチ
と実行を再開するか、または分岐して、命令フィールド
603により示される命令アドレスから命令のフェッチ
と実行を再開する。
るときの命令の実行については、米国特許出願第548
109号、"Coprocessor Structure and Method for a
Communications System Network Processor"を参照され
たい。
行スレッド(それぞれ、処理中の別々のパケットに関係
する)それぞれの独立したプロセス及びデータ・アクセ
ス時の待ち時間の処理に関する。実行スレッドはそれぞ
れ独立したプロセスであり、スレッドがコプロセッサ・
ハードウェアにアクセスできるときに命令のシーケンス
を実行する。ツリー検索コプロセッサは、パイプライン
にされ、ツリー検索パイプラインで複数の実行スレッド
がそれぞれ同時に、ただし異なるフェーズで(オーバラ
ップして)アクセスすることができる。本発明は、好適
には、オーバヘッド0で複数の命令実行スレッドを採用
し、実行をスレッドからスレッドに切り替える。スレッ
ドはキューにされ、共有メモリに対するアクセスが高速
に配信される。スレッドをキューにすることで、長い待
ち時間のイベントに対して優先順位が最大のスレッドを
可能な限り速く得ることができる。
レッド毎に1つ、複数の命令プリフェッチ・バッファを
含む。これらのプリフェッチ・バッファにより、アクテ
ィブな実行スレッドにより命令の帯域幅が十分利用され
ていないインターバル時、アイドル中の実行スレッドの
ため命令のプリフェッチが可能になる。これにより、制
御が新しい実行スレッドに切り替わったとき、そのスレ
ッドの命令プリフェッチ・バッファが一杯になりやす
く、よって、実行に利用できる命令が足りないために新
しいスレッドがすぐ中断する可能性がなくなる。こうし
て、命令メモリに対するアクセス優先順位は、現在実行
中のスレッドが最大の優先順位になり、現在のスレッド
が中断したときに制御を取る立場にある実行スレッドが
第2の優先順位を与えられるように制御される。同様
に、実行キューの下端にある実行スレッドには、命令フ
ェッチ・アクセスで最後の優先順位が与えられる。
索等)、アクティブなスレッドの実行が中断したとき、
次のスレッドにフル制御が与えられるか、または待ち時
間の短いイベント(ローカル・データ・ストレージでの
コプロセッサの操作もしくは命令フェッチ待ち時間)の
ため実行が中断したときは、一時的制御が次のスレッド
に与えられる。一時的制御が他のスレッドに与えられた
場合、制御は、ブロックが解除されるとすぐに元のスレ
ッドに返される。逆に他のスレッドにフル制御が与えら
れた場合、その他のスレッドは、ブロックされるまで制
御を保つ。これにより待ち時間の短いイベントでのサイ
クルの無駄が避けられるが、1次実行スレッドが待ち時
間の長いイベントに届くまでの時間は短くなる。他の場
合、複数の実行スレッドがほぼ同じ時間に待ち時間の長
いイベントに届く可能性があり、1つのスレッドのPP
U実行を他のスレッドのツリー検索とオーバラップする
メリットは少なくなる。待ち時間をもとに制御を割当て
ることについて詳しくは、整理番号RAL920000
008の米国特許出願第542189号、"NetworkProc
essor with Multiple Instruction Threads"を参照され
たい。この割当てとスレッド実行制御の詳細は次のよう
になる。
き、各CLPスレッドは初期化状態にある。パケットが
プロセッサにディスパッチされると、対応するスレッド
がレディ状態に変わり、その時点で実行サイクル要求を
開始する。
ブール式に従って実行サイクルをスレッドに与える。サ
イクルが与えられた場合、スレッドはレディ状態から実
行状態に移る。実行状態のスレッドは、待ち時間イベン
トまたは処理されているパケットがエンキューされ、よ
ってそのパケットに対するコードの作業が終了したこと
が示されたため実行が中断するまで要求を出し続ける。
サイクルが与えられなくなると、これは他のスレッドが
制御を取ったことを示す。これは、アービタがサイクル
を与えない唯一の理由である。ただし、これら2つの状
態のいずれか(レディまたは実行)で、スレッドは、パ
ケット処理が終わりに達し、次のパケットがディスパッ
チのためキューに入るまで、新しい実行サイクルを要求
し続け、待ち時間イベントで一時停止する。システムは
そこで初期化状態に戻り、次のパケットを待機する。待
機状態は、待ち時間の長いイベントまたは短いイベント
を扱う。どのイベントが発生するかにかかわらず、プロ
セッサは中断し、アクティブなスレッドはデフォルトで
待機状態になる。スレッドはそこで、待ち時間イベント
が完了するまで実行サイクルの要求を停止する。
すのと同じディスパッチ操作により、スレッド番号がF
IFOバッファに入り、第1パケットがディスパッチさ
れるスレッドは、優先順位が最高のスレッドになる。後
のディスパッチ操作では、他のスレッド番号がFIFO
に送られる。FIFOの優先順位が最大のスレッド番号
は、待ち時間の長いイベントに出会うまでその位置にと
どまり、その後、スレッドはFIFOの始めに戻り、最
大優先順位から最小優先順位のスレッドに変わる。待ち
時間の短いイベントによってスレッドがFIFOバッフ
ァで優先順位を失うことはない。
パケットは、出力ポートに転送するためエンキューさ
れ、スレッド番号がFIFOバッファから移される。
ーラ(図示せず)からディスパッチされる。このコント
ローラはスレッドとプロセッサを選択して各パケットを
処理する。この決定により入力コマンドがFIFOバッ
ファに送られる。また入力が状態機械に送られ、初期化
状態からレディ状態に移行することが状態機械に指示さ
れる。外部コントローラからのそのコマンドとともに、
パケットのディスパッチ先であるスレッド番号もコント
ローラからFIFOに送る必要がある。
在のプログラムの流れで短い割込みになるイベントと長
い割込みになるイベントの2種類ある。短い割込みは、
プログラムの流れが変わったため命令プリフェッチ・キ
ューを再び埋める必要のある分岐命令により発生するこ
とがある。或いはまた、プログラムはコプロセッサがプ
ロセッサのローカル・メモリでデータ関連タスクを実行
するのを待機している間に中断することがある。この例
は、チェックサム・コプロセッサが、変更されたヘッダ
・フィールドで新しいチェックサムを計算する場合であ
る。待ち時間が25プロセッサ・サイクル未満のとき、
イベントは、短い割込みと見なされる。待ち時間の長い
イベントは通常、25を超える待ち時間を伴い、通常は
50プロセッサ・サイクル乃至100プロセッサ・サイ
クルを超える。これらは全体のパフォーマンスに大きな
影響を与える。
確認する手段は他に多数ある。待ち時間の長さはプログ
ラマが制御でき、その場合ハードウェアやその構成は確
認の際の要素にはならない。一方、しきい値レジスタを
25サイクルのしきい値で設定することもでき、その場
合、操作に必要になるサイクル数はハードウェアにより
確認され、その確認をもとに自動的な判断が行われる。
る命令の1タイプである。フィールドのビットの一部
は、どのコプロセッサが対象かを示す。1ビットによ
り、特定の命令が待ち時間の長いイベントまたは短いイ
ベントとして定義される。従って、プログラマは、同じ
アクセスを2つ定義することができる。1つは待ち時間
の長いイベントとして、もう1つは待ち時間の短いイベ
ントとして定義される。スレッド実行制御関数は、こう
した待ち時間の長いイベントの影響を最小にするために
設計されている。よって待ち時間の長いイベントによ
り、フル制御が別の実行スレッドに切り替わり、待ち時
間の短いイベントにより一時的にのみ他のスレッドへの
切り替えが起こる。
U)とコア言語プロセッサの詳細は、当業者には周知の
通りであり、本発明の一部を構成しないが、それらは、
変更或いは実装することでネットワーク・プロセッサ・
システム全体のアーキテクチャの一部になっており、特
定の機能コプロセッサやシステムの他のコンポーネント
と連携する。本発明で有用な個々のコプロセッサのアー
キテクチャやプログラミングを含めた詳細は、本発明の
一部を構成するものと見なされない。
の事項を開示する。
ラミング機能を制御する組み込みプロセッサ複合体のオ
ペレーションであって、該プロセッサ複合体は、複数の
プロトコル・プロセッサ・ユニット(PPU)を含み、
各PPUは少なくとも1つのコア言語プロセッサ(CL
P)を含み、各CLPは少なくとも2つのコード・スレ
ッドを持ち、各PPUはPPUの特定のタスクを実行す
る上で有用な複数のコプロセッサ及び複数の論理コプロ
セッサ・インタフェースを利用し、各CLPと該コプロ
セッサ間のアクセスを実現する、オペレーション。 (2)前記コプロセッサは、各CLPの複数のコード・
スレッドをサポートする専用コプロセッサを含む、前記
(1)記載のオペレーション。 (3)前記コプロセッサは、ツリー検索コプロセッサ、
チェックサム・コプロセッサ、ストリングコピー・コプ
ロセッサ、エンキュー・コプロセッサ、データストア・
コプロセッサ、CABコプロセッサ、カウンタ・コプロ
セッサ、及びポリシ・コプロセッサを含むグループから
選択される、前記(1)記載のオペレーション。 (4)複数のスレッド間の優先順位を確認するためコプ
ロセッサ実行インタフェース・アービタを含む、前記
(3)記載のオペレーション。 (5)データ・スレッド間の優先順位を確認するためコ
プロセッサ・データ・インタフェース・アービタを含
む、前記(3)記載のオペレーション。 (6)各スレッドと少なくとも1つのコプロセッサ間に
FIFOバッファを含む、前記(3)記載のオペレーシ
ョン。 (7)前記FIFOバッファは各スレッドと前記カウン
タ・コプロセッサの間にある、前記(6)記載のオペレ
ーション。 (8)前記FIFOバッファは各スレッドと前記ポリシ
・コプロセッサの間にある、前記(6)記載のオペレー
ション。 (9)ネットワーク・プロセッサのプログラミング機能
を制御する組み込みプロセッサ複合体を含むネットワー
ク処理システムであって、該複合体は複数のプロトコル
・プロセッサ・ユニット(PPU)を含み、各PPU
は、それぞれ少なくとも2つのコード・スレッドを持つ
少なくとも1つのコア言語プロセッサ(CLP)と、前
記システムの特定のタスクを実行する複数のコプロセッ
サ及び該コプロセッサのリソースにアクセスし各CLP
と共有する複数のコプロセッサ・インタフェースと、を
含む、システム。 (10)前記コプロセッサ・インタフェースは、各CL
Pのコード・スレッドをサポートすることにのみ用いら
れる、前記(9)記載のネットワーク処理システム。 (11)前記コプロセッサは、ツリー検索コプロセッ
サ、チェックサム・コプロセッサ、ストリングコピー・
コプロセッサ、エンキュー・コプロセッサ、データスト
ア・コプロセッサ、CABコプロセッサ、カウンタ・コ
プロセッサ、及びポリシ・コプロセッサを含むグループ
から選択される、前記(10)記載のネットワーク処理
システム。 (12)各スレッドと前記コプロセッサのうち少なくと
も1つの間にFIFOバッファを含む、前記(10)記
載のネットワーク処理システム。 (13)前記FIFOバッファは各スレッドと前記カウ
ンタ・コプロセッサの間にある、前記(12)記載のネ
ットワーク処理システム。 (14)前記FIFOバッファは各スレッドと前記ポリ
シ・コプロセッサの間にある、前記(12)記載のネッ
トワーク処理システム。 (15)前記CLPのスレッドにより実行される特定の
操作命令を含み、該実行の結果、コプロセッサ・オペレ
ーションを制御するコマンドが得られ、該コマンドは前
記CLPとコプロセッサ間のインタフェースを流れる、
前記(9)記載のネットワーク処理システム。 (16)前記命令は、特定のコプロセッサ・オペレーシ
ョンの条件付き実行を可能にするように働く、前記(1
5)記載のネットワーク処理システム。 (17)前記命令により、前記システムが、特定のコプ
ロセッサ・コマンドに応答してデータにアクセスするた
めの予測応答時間に従って、待ち時間の長いイベントと
待ち時間の短いイベントを識別し、アクティブなスレッ
ドの実行が待ち時間の長いイベントにより中断したとき
に他のスレッドにフル制御を与えるか、またはアクティ
ブなスレッドの実行が待ち時間の短いイベントにより中
断したときに他のスレッドに一時的制御を与える、前記
(15)記載のネットワーク処理システム。 (18)複数のプロトコル・プロセッサ・ユニット(P
PU)を含む組み込みプロセッサ複合体内の命令の実行
を制御する方法であって、該プロトコル・プロセッサ・
ユニットはそれぞれ少なくとも1つのコア言語プロセッ
サ(CLP)を含み、該CLPはそれぞれ少なくとも2
つのコード・スレッドを持ち、該方法は、該PUに対す
る特定のタスクを実行するため、各PPUによる複数の
コプロセッサの使用、及び該コプロセッサと各CLP間
のアクセスを提供する複数の論理コプロセッサ・インタ
フェースの使用を含む、方法。 (19)前記PPUの複数のコード・スレッドをサポー
トする専用コプロセッサの使用を含む、前記(18)記
載の方法。 (20)前記コプロセッサの1つ以上は、ツリー検索コ
プロセッサ、チェックサム・コプロセッサ、ストリング
コピー・コプロセッサ、エンキュー・コプロセッサ、デ
ータストア・コプロセッサ、CABコプロセッサ、カウ
ンタ・コプロセッサ、及びポリシ・コプロセッサを含む
グループから選択される、前記(19)記載の方法。 (21)実行スレッド間の優先順位を確認するためコプ
ロセッサ実行インタフェース・アービタが用いられる、
前記(20)記載の方法。 (22)データ・スレッド間の優先順位を確認するため
コプロセッサ・データ・インタフェース・アービタが用
いられる、前記(20)記載の方法。 (23)各スレッドと前記コプロセッサのうち少なくと
も1つの間にFIFOバッファを提供するステップを含
む、前記(20)記載の方法。 (24)前記FIFOバッファは各スレッドと前記カウ
ンタ・コプロセッサの間にある、前記(23)記載の方
法。 (25)前記FIFOバッファは各スレッドと前記ポリ
シ・コプロセッサの間にある、前記(23)記載の方
法。 (26)前記CLPにより実行される特定の操作命令を
提供するステップを含み、該実行の結果、コプロセッサ
・オペレーションを制御するコマンドが得られ、該コマ
ンドは前記CLPとコプロセッサの間のインタフェース
を流れる、前記(18)記載の方法。 (27)前記操作命令により特定のコプロセッサ・オペ
レーションの条件付き実行が可能になる、前記(26)
記載の方法。 (28)前記実行は直接的または間接的である、前記
(27)記載の方法。 (29)前記システムが、特定のコプロセッサ・コマン
ドに関する予測応答時間に従って、待ち時間の長いイベ
ントと待ち時間の短いイベントを識別し、アクティブな
スレッドの実行が待ち時間の長いイベントにより中断し
たときに他のスレッドにフル制御を与えるか、またはア
クティブなスレッドの実行が待ち時間の短いイベントに
より中断したときに他のスレッドに一時的制御を与え
る、命令を提供するステップを含む、前記(18)記載
の方法。
つプロトコル処理ユニットを示す図である。
ンタフェースを取るプロトコル処理ユニットを示す図で
ある。
のインタフェースを示す図である。
ロセッサを複数のコプロセッサに接続するコプロセッサ
・データ・インタフェースを示す図である。
ある。
ある。
ある。
ある。
ある。
である。
ビタ 42 コプロセッサ・データインタフェース(CPD
I)アービタ 44 共有メモリ・プール 56 命令メモリ 68 CABアービタ 74 インタフェース 76、78 FIFOバッファ 80 汎用レジスタ 82 専用レジスタ 84 スカラ・レジスタ 86 アレイ・レジスタ 88 命令フェッチ/デコード/実行ユニット 102 実行ユニット 110 ツリー検索メモリ(TSM)アービタ 112 フレーム・データ・メモリ 401、450 コプロセッサ 413 Op引数 414 ビジー信号 419、420、421、422、423、424 書
込みインタフェース 421 コプロセッサ・レジスタ識別子 427、428、429、430、431、432、4
33 読取りインタフェース 450 選択コプロセッサ 505 32ビット汎用レジスタ 520 コプロセッサ識別子 523 上位12ビット 524 コマンド情報
Claims (29)
- 【請求項1】ネットワーク・プロセッサのプログラミン
グ機能を制御する組み込みプロセッサ複合体のオペレー
ションであって、該プロセッサ複合体は、複数のプロト
コル・プロセッサ・ユニット(PPU)を含み、各PP
Uは少なくとも1つのコア言語プロセッサ(CLP)を
含み、各CLPは少なくとも2つのコード・スレッドを
持ち、各PPUはPPUの特定のタスクを実行する上で
有用な複数のコプロセッサ及び複数の論理コプロセッサ
・インタフェースを利用し、各CLPと該コプロセッサ
間のアクセスを実現する、オペレーション。 - 【請求項2】前記コプロセッサは、各CLPの複数のコ
ード・スレッドをサポートする専用コプロセッサを含
む、請求項1記載のオペレーション。 - 【請求項3】前記コプロセッサは、ツリー検索コプロセ
ッサ、チェックサム・コプロセッサ、ストリングコピー
・コプロセッサ、エンキュー・コプロセッサ、データス
トア・コプロセッサ、CABコプロセッサ、カウンタ・
コプロセッサ、及びポリシ・コプロセッサを含むグルー
プから選択される、請求項1記載のオペレーション。 - 【請求項4】複数のスレッド間の優先順位を確認するた
めコプロセッサ実行インタフェース・アービタを含む、
請求項3記載のオペレーション。 - 【請求項5】データ・スレッド間の優先順位を確認する
ためコプロセッサ・データ・インタフェース・アービタ
を含む、請求項3記載のオペレーション。 - 【請求項6】各スレッドと少なくとも1つのコプロセッ
サ間にFIFOバッファを含む、請求項3記載のオペレ
ーション。 - 【請求項7】前記FIFOバッファは各スレッドと前記
カウンタ・コプロセッサの間にある、請求項6記載のオ
ペレーション。 - 【請求項8】前記FIFOバッファは各スレッドと前記
ポリシ・コプロセッサの間にある、請求項6記載のオペ
レーション。 - 【請求項9】ネットワーク・プロセッサのプログラミン
グ機能を制御する組み込みプロセッサ複合体を含むネッ
トワーク処理システムであって、該複合体は複数のプロ
トコル・プロセッサ・ユニット(PPU)を含み、各P
PUは、 それぞれ少なくとも2つのコード・スレッドを持つ少な
くとも1つのコア言語プロセッサ(CLP)と、 前記システムの特定のタスクを実行する複数のコプロセ
ッサ及び該コプロセッサのリソースにアクセスし各CL
Pと共有する複数のコプロセッサ・インタフェースと、 を含む、システム。 - 【請求項10】前記コプロセッサ・インタフェースは、
各CLPのコード・スレッドをサポートすることにのみ
用いられる、請求項9記載のネットワーク処理システ
ム。 - 【請求項11】前記コプロセッサは、ツリー検索コプロ
セッサ、チェックサム・コプロセッサ、ストリングコピ
ー・コプロセッサ、エンキュー・コプロセッサ、データ
ストア・コプロセッサ、CABコプロセッサ、カウンタ
・コプロセッサ、及びポリシ・コプロセッサを含むグル
ープから選択される、請求項10記載のネットワーク処
理システム。 - 【請求項12】各スレッドと前記コプロセッサのうち少
なくとも1つの間にFIFOバッファを含む、請求項1
0記載のネットワーク処理システム。 - 【請求項13】前記FIFOバッファは各スレッドと前
記カウンタ・コプロセッサの間にある、請求項12記載
のネットワーク処理システム。 - 【請求項14】前記FIFOバッファは各スレッドと前
記ポリシ・コプロセッサの間にある、請求項12記載の
ネットワーク処理システム。 - 【請求項15】前記CLPのスレッドにより実行される
特定の操作命令を含み、該実行の結果、コプロセッサ・
オペレーションを制御するコマンドが得られ、該コマン
ドは前記CLPとコプロセッサ間のインタフェースを流
れる、請求項9記載のネットワーク処理システム。 - 【請求項16】前記命令は、特定のコプロセッサ・オペ
レーションの条件付き実行を可能にするように働く、請
求項15記載のネットワーク処理システム。 - 【請求項17】前記命令により、前記システムが、特定
のコプロセッサ・コマンドに応答してデータにアクセス
するための予測応答時間に従って、待ち時間の長いイベ
ントと待ち時間の短いイベントを識別し、アクティブな
スレッドの実行が待ち時間の長いイベントにより中断し
たときに他のスレッドにフル制御を与えるか、またはア
クティブなスレッドの実行が待ち時間の短いイベントに
より中断したときに他のスレッドに一時的制御を与え
る、請求項15記載のネットワーク処理システム。 - 【請求項18】複数のプロトコル・プロセッサ・ユニッ
ト(PPU)を含む組み込みプロセッサ複合体内の命令
の実行を制御する方法であって、該プロトコル・プロセ
ッサ・ユニットはそれぞれ少なくとも1つのコア言語プ
ロセッサ(CLP)を含み、該CLPはそれぞれ少なく
とも2つのコード・スレッドを持ち、該方法は、該PP
Uに対する特定のタスクを実行するため、各PPUによ
る複数のコプロセッサの使用、及び該コプロセッサと各
CLP間のアクセスを提供する複数の論理コプロセッサ
・インタフェースの使用を含む、方法。 - 【請求項19】前記PPUの複数のコード・スレッドを
サポートする専用コプロセッサの使用を含む、請求項1
8記載の方法。 - 【請求項20】前記コプロセッサの1つ以上は、ツリー
検索コプロセッサ、チェックサム・コプロセッサ、スト
リングコピー・コプロセッサ、エンキュー・コプロセッ
サ、データストア・コプロセッサ、CABコプロセッ
サ、カウンタ・コプロセッサ、及びポリシ・コプロセッ
サを含むグループから選択される、請求項19記載の方
法。 - 【請求項21】実行スレッド間の優先順位を確認するた
めコプロセッサ実行インタフェース・アービタが用いら
れる、請求項20記載の方法。 - 【請求項22】データ・スレッド間の優先順位を確認す
るためコプロセッサ・データ・インタフェース・アービ
タが用いられる、請求項20記載の方法。 - 【請求項23】各スレッドと前記コプロセッサのうち少
なくとも1つの間にFIFOバッファを提供するステッ
プを含む、請求項20記載の方法。 - 【請求項24】前記FIFOバッファは各スレッドと前
記カウンタ・コプロセッサの間にある、請求項23記載
の方法。 - 【請求項25】前記FIFOバッファは各スレッドと前
記ポリシ・コプロセッサの間にある、請求項23記載の
方法。 - 【請求項26】前記CLPにより実行される特定の操作
命令を提供するステップを含み、該実行の結果、コプロ
セッサ・オペレーションを制御するコマンドが得られ、
該コマンドは前記CLPとコプロセッサの間のインタフ
ェースを流れる、請求項18記載の方法。 - 【請求項27】前記操作命令により特定のコプロセッサ
・オペレーションの条件付き実行が可能になる、請求項
26記載の方法。 - 【請求項28】前記実行は直接的または間接的である、
請求項27記載の方法。 - 【請求項29】前記システムが、特定のコプロセッサ・
コマンドに関する予測応答時間に従って、待ち時間の長
いイベントと待ち時間の短いイベントを識別し、アクテ
ィブなスレッドの実行が待ち時間の長いイベントにより
中断したときに他のスレッドにフル制御を与えるか、ま
たはアクティブなスレッドの実行が待ち時間の短いイベ
ントにより中断したときに他のスレッドに一時的制御を
与える、命令を提供するステップを含む、請求項18記
載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/656,582 US6829697B1 (en) | 2000-09-06 | 2000-09-06 | Multiple logical interfaces to a shared coprocessor resource |
US09/656582 | 2000-09-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002149424A true JP2002149424A (ja) | 2002-05-24 |
Family
ID=24633666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001265792A Pending JP2002149424A (ja) | 2000-09-06 | 2001-09-03 | 共有コプロセッサ・リソースに対する複数の論理インタフェース |
Country Status (6)
Country | Link |
---|---|
US (1) | US6829697B1 (ja) |
JP (1) | JP2002149424A (ja) |
KR (1) | KR100422491B1 (ja) |
CN (1) | CN1188794C (ja) |
SG (1) | SG100751A1 (ja) |
TW (1) | TW581950B (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006039711A1 (en) * | 2004-10-01 | 2006-04-13 | Lockheed Martin Corporation | Service layer architecture for memory access system and method |
JP2008243203A (ja) * | 2007-03-28 | 2008-10-09 | Internatl Business Mach Corp <Ibm> | 仮想化されたデータ処理環境におけるワークロード管理 |
JP2008299740A (ja) * | 2007-06-01 | 2008-12-11 | Seiko Epson Corp | 非同期マイクロプロセッサ、電子情報装置 |
JP2009009477A (ja) * | 2007-06-29 | 2009-01-15 | Toshiba Corp | 演算方式を制御して情報を処理する装置、方法およびプログラム |
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
US7987341B2 (en) | 2002-10-31 | 2011-07-26 | Lockheed Martin Corporation | Computing machine using software objects for transferring data that includes no destination information |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
DE59710317D1 (de) | 1996-12-27 | 2003-07-24 | Pact Inf Tech Gmbh | 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 |
US7003660B2 (en) | 2000-06-13 | 2006-02-21 | Pact Xpp Technologies Ag | Pipeline configuration unit protocols and communication |
US20140325175A1 (en) * | 2013-04-29 | 2014-10-30 | Pact Xpp Technologies Ag | Pipeline configuration protocol and configuration unit communication |
JP2003505753A (ja) | 1999-06-10 | 2003-02-12 | ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング | セル構造におけるシーケンス分割方法 |
US6985431B1 (en) * | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
US6865663B2 (en) * | 2000-02-24 | 2005-03-08 | Pts Corporation | Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7080238B2 (en) * | 2000-11-07 | 2006-07-18 | Alcatel Internetworking, (Pe), Inc. | Non-blocking, multi-context pipelined processor |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
WO2005045692A2 (en) | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
EP1402382B1 (de) | 2001-06-20 | 2010-08-18 | Richter, Thomas | Verfahren zur bearbeitung von daten |
GB2378271B (en) * | 2001-07-30 | 2004-12-29 | Advanced Risc Mach Ltd | Handling of coprocessor instructions in a data processing apparatus |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
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 |
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 |
EP1483682A2 (de) | 2002-01-19 | 2004-12-08 | PACT XPP Technologies AG | Reconfigurierbarer prozessor |
US7073048B2 (en) * | 2002-02-04 | 2006-07-04 | Silicon Lease, L.L.C. | Cascaded microcomputer array and method |
AU2003214003A1 (en) | 2002-02-18 | 2003-09-09 | Pact Xpp Technologies Ag | Bus systems and method for reconfiguration |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US8015303B2 (en) * | 2002-08-02 | 2011-09-06 | Astute Networks Inc. | High data rate stateful protocol processing |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
AU2003250575A1 (en) * | 2002-08-07 | 2004-02-25 | Mmagix Technology Limited | Apparatus, method and system for a synchronicity independent, resource delegating, power and instruction optimizing processor |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
AU2003256870A1 (en) * | 2002-08-09 | 2004-02-25 | Intel Corporation | Multimedia coprocessor control mechanism including alignment or broadcast instructions |
US7392368B2 (en) * | 2002-08-09 | 2008-06-24 | Marvell International Ltd. | Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements |
JP4388895B2 (ja) | 2002-09-06 | 2009-12-24 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | リコンフィギュアラブルなシーケンサ構造 |
US7596621B1 (en) | 2002-10-17 | 2009-09-29 | Astute Networks, Inc. | System and method for managing shared state using multiple programmed processors |
US7814218B1 (en) | 2002-10-17 | 2010-10-12 | Astute Networks, Inc. | Multi-protocol and multi-format stateful processing |
US8151278B1 (en) | 2002-10-17 | 2012-04-03 | Astute Networks, Inc. | System and method for timer management in a stateful protocol processing system |
US7802001B1 (en) | 2002-10-18 | 2010-09-21 | Astute Networks, Inc. | System and method for flow control within a stateful protocol processing system |
US20040190555A1 (en) * | 2003-03-31 | 2004-09-30 | Meng David Q. | Multithreaded, multiphase processor utilizing next-phase signals |
US20050055594A1 (en) * | 2003-09-05 | 2005-03-10 | Doering Andreas C. | Method and device for synchronizing a processor and a coprocessor |
US7539760B1 (en) | 2003-09-12 | 2009-05-26 | Astute Networks, Inc. | System and method for facilitating failover of stateful connections |
US7058424B2 (en) * | 2004-01-20 | 2006-06-06 | Lucent Technologies Inc. | Method and apparatus for interconnecting wireless and wireline networks |
US8006071B2 (en) * | 2004-03-31 | 2011-08-23 | Altera Corporation | Processors operable to allow flexible instruction alignment |
US7451397B2 (en) | 2004-12-15 | 2008-11-11 | Microsoft Corporation | System and method for automatically completing spreadsheet formulas |
CN101167077A (zh) * | 2005-02-01 | 2008-04-23 | 梅塔利克斯有限公司 | 电子通信分析和可视化 |
US7395517B2 (en) * | 2005-09-20 | 2008-07-01 | International Business Machines Corporation | Data aligner in reconfigurable computing environment |
US7330964B2 (en) * | 2005-11-14 | 2008-02-12 | Texas Instruments Incorporated | Microprocessor with independent SIMD loop buffer |
TWI335521B (en) * | 2005-12-19 | 2011-01-01 | Via Tech Inc | Dsp system with multi-tier accelerator architecture and method for operating the same |
EP1974265A1 (de) | 2006-01-18 | 2008-10-01 | PACT XPP Technologies AG | Hardwaredefinitionsverfahren |
JP2007200180A (ja) * | 2006-01-30 | 2007-08-09 | Nec Electronics Corp | プロセッサシステム |
US9665970B2 (en) * | 2006-09-19 | 2017-05-30 | Imagination Technologies Limited | Variable-sized concurrent grouping for multiprocessing |
JP4770664B2 (ja) * | 2006-09-20 | 2011-09-14 | 株式会社デンソー | マイクロプロセッサおよびそれを用いたマイクロコンピュータ |
US8438365B2 (en) * | 2006-10-06 | 2013-05-07 | Calos Fund Limited Liability Company | Efficient data loading in a data-parallel processor |
US7627744B2 (en) * | 2007-05-10 | 2009-12-01 | Nvidia Corporation | External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level |
US7669036B2 (en) * | 2007-06-14 | 2010-02-23 | Qualcomm Incorporated | Direct path monitoring by primary processor to each status register in pipeline chained secondary processors for task allocation via downstream communication |
JP2009026136A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
US8806181B1 (en) * | 2008-05-05 | 2014-08-12 | Marvell International Ltd. | Dynamic pipeline reconfiguration including changing a number of stages |
US20130138921A1 (en) * | 2011-11-28 | 2013-05-30 | Andes Technology Corporation | De-coupled co-processor interface |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
US9792117B2 (en) | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US9582287B2 (en) | 2012-09-27 | 2017-02-28 | Intel Corporation | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions |
US11113054B2 (en) | 2013-09-10 | 2021-09-07 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression |
US9430390B2 (en) | 2013-09-21 | 2016-08-30 | Oracle International Corporation | Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications |
US9465618B2 (en) | 2014-01-08 | 2016-10-11 | Oracle International Corporation | Methods and systems for optimally selecting an assist unit |
US10362093B2 (en) * | 2014-01-09 | 2019-07-23 | Netronome Systems, Inc. | NFA completion notification |
CN104901901B (zh) * | 2014-03-07 | 2019-03-12 | 深圳市中兴微电子技术有限公司 | 一种微引擎及其处理报文的方法 |
ES2929626T3 (es) * | 2015-05-21 | 2022-11-30 | Goldman Sachs & Co Llc | Arquitectura de computación paralela de propósito general |
US10210134B2 (en) * | 2015-05-21 | 2019-02-19 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
US11449452B2 (en) * | 2015-05-21 | 2022-09-20 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
US10025823B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Techniques for evaluating query predicates during in-memory table scans |
US10067954B2 (en) | 2015-07-22 | 2018-09-04 | Oracle International Corporation | Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations |
US9929858B2 (en) * | 2015-09-21 | 2018-03-27 | Nxp B.V. | Method and system for detecting fault attacks |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
AU2018248439C1 (en) * | 2017-04-06 | 2021-09-30 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
US10528414B2 (en) * | 2017-09-13 | 2020-01-07 | Toshiba Memory Corporation | Centralized error handling in application specific integrated circuits |
US10540219B2 (en) * | 2017-09-13 | 2020-01-21 | Toshiba Memory Corporation | Reset and error handling in application specific integrated circuits |
US10877766B2 (en) * | 2018-05-24 | 2020-12-29 | Xilinx, Inc. | Embedded scheduling of hardware resources for hardware acceleration |
CN112513809A (zh) * | 2019-12-27 | 2021-03-16 | 深圳市大疆创新科技有限公司 | 处理器、任务响应方法、可移动平台、及相机 |
US11210104B1 (en) * | 2020-09-11 | 2021-12-28 | Apple Inc. | Coprocessor context priority |
CN114071222B (zh) * | 2021-11-15 | 2023-07-25 | 深圳Tcl新技术有限公司 | 音视频数据共享装置及电子设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4809169A (en) * | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US4876643A (en) * | 1987-06-24 | 1989-10-24 | Kabushiki Kaisha Toshiba | Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests |
US5008816A (en) * | 1987-11-06 | 1991-04-16 | International Business Machines Corporation | Data processing system with multi-access memory |
JP2741867B2 (ja) * | 1988-05-27 | 1998-04-22 | 株式会社日立製作所 | 情報処理システムおよびプロセツサ |
EP0519348B1 (en) * | 1991-06-19 | 1999-07-28 | Hewlett-Packard Company | Co-processor supporting architecture adapted to a processor which does not natively support co-processing |
US5404469A (en) * | 1992-02-25 | 1995-04-04 | Industrial Technology Research Institute | Multi-threaded microprocessor architecture utilizing static interleaving |
US5748468A (en) * | 1995-05-04 | 1998-05-05 | Microsoft Corporation | Prioritized co-processor resource manager and method |
US5928322A (en) * | 1996-11-20 | 1999-07-27 | Silicon Graphics, Inc. | Low-latency real-time dispatching in general purpose multiprocessor systems |
US6226738B1 (en) * | 1997-08-01 | 2001-05-01 | Micron Technology, Inc. | Split embedded DRAM processor |
US6505290B1 (en) * | 1997-09-05 | 2003-01-07 | Motorola, Inc. | Method and apparatus for interfacing a processor to a coprocessor |
DE69737750T2 (de) * | 1997-12-17 | 2008-03-06 | Hewlett-Packard Development Co., L.P., Houston | Erst- und Zweitprozessoren verwendetes Verfahren |
US6016542A (en) * | 1997-12-31 | 2000-01-18 | Intel Corporation | Detecting long latency pipeline stalls for thread switching |
KR100308618B1 (ko) * | 1999-02-27 | 2001-09-26 | 윤종용 | 단일 칩 상의 마이크로프로세서-코프로세서 시스템을 구비한 파이프라인 데이터 처리 시스템 및 호스트 마이크로프로세서와 코프로세서 사이의 인터페이스 방법 |
US6829666B1 (en) * | 1999-09-29 | 2004-12-07 | Silicon Graphics, Incorporated | Modular computing architecture having common communication interface |
US6865663B2 (en) * | 2000-02-24 | 2005-03-08 | Pts Corporation | Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode |
-
2000
- 2000-09-06 US US09/656,582 patent/US6829697B1/en not_active Expired - Fee Related
-
2001
- 2001-08-24 SG SG200105184A patent/SG100751A1/en unknown
- 2001-08-30 KR KR10-2001-0052864A patent/KR100422491B1/ko not_active IP Right Cessation
- 2001-09-03 JP JP2001265792A patent/JP2002149424A/ja active Pending
- 2001-09-03 TW TW090121753A patent/TW581950B/zh not_active IP Right Cessation
- 2001-09-05 CN CNB011324570A patent/CN1188794C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7987341B2 (en) | 2002-10-31 | 2011-07-26 | Lockheed Martin Corporation | Computing machine using software objects for transferring data that includes no destination information |
US8250341B2 (en) | 2002-10-31 | 2012-08-21 | Lockheed Martin Corporation | Pipeline accelerator having multiple pipeline units and related computing machine and method |
WO2006039711A1 (en) * | 2004-10-01 | 2006-04-13 | Lockheed Martin Corporation | Service layer architecture for memory access system and method |
US7487302B2 (en) | 2004-10-01 | 2009-02-03 | Lockheed Martin Corporation | Service layer architecture for memory access system and method |
US7676649B2 (en) | 2004-10-01 | 2010-03-09 | Lockheed Martin Corporation | Computing machine with redundancy and related systems and methods |
US7809982B2 (en) | 2004-10-01 | 2010-10-05 | Lockheed Martin Corporation | Reconfigurable computing machine and related systems and methods |
US8073974B2 (en) | 2004-10-01 | 2011-12-06 | Lockheed Martin Corporation | Object oriented mission framework and system and method |
JP2008243203A (ja) * | 2007-03-28 | 2008-10-09 | Internatl Business Mach Corp <Ibm> | 仮想化されたデータ処理環境におけるワークロード管理 |
JP2008299740A (ja) * | 2007-06-01 | 2008-12-11 | Seiko Epson Corp | 非同期マイクロプロセッサ、電子情報装置 |
JP2009009477A (ja) * | 2007-06-29 | 2009-01-15 | Toshiba Corp | 演算方式を制御して情報を処理する装置、方法およびプログラム |
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20020020186A (ko) | 2002-03-14 |
CN1342940A (zh) | 2002-04-03 |
TW581950B (en) | 2004-04-01 |
US6829697B1 (en) | 2004-12-07 |
KR100422491B1 (ko) | 2004-03-11 |
CN1188794C (zh) | 2005-02-09 |
SG100751A1 (en) | 2003-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002149424A (ja) | 共有コプロセッサ・リソースに対する複数の論理インタフェース | |
US5251306A (en) | Apparatus for controlling execution of a program in a computing device | |
US5185868A (en) | Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy | |
US7360217B2 (en) | Multi-threaded packet processing engine for stateful packet processing | |
US8230144B1 (en) | High speed multi-threaded reduced instruction set computer (RISC) processor | |
US5499349A (en) | Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution | |
JP3461704B2 (ja) | 条件コードを使用する命令処理システムおよびコンピュータ | |
US5560029A (en) | Data processing system with synchronization coprocessor for multiple threads | |
US4829425A (en) | Memory-based interagent communication mechanism | |
US20040172631A1 (en) | Concurrent-multitasking processor | |
US20100205608A1 (en) | Mechanism for Managing Resource Locking in a Multi-Threaded Environment | |
JP2001350638A (ja) | 多重スレッド使用方法、多重スレッド処理システム、スレッド実行コントローラおよびバッファ使用方法 | |
US8001547B2 (en) | Logic for synchronizing multiple tasks at multiple locations in an instruction stream | |
US8595747B2 (en) | Efficient task scheduling by assigning fixed registers to scheduler | |
Melvin et al. | A massively multithreaded packet processor | |
JPH0778088A (ja) | プロセッサシステムで複数個の割込を処理するための装置、プロセッサシステムで複数個の割込トリガからの割込に応動する方法、ならびに複数個のプロセッサ間の同時タスクのための方法および装置 | |
US20090138880A1 (en) | Method for organizing a multi-processor computer | |
GB2582784A (en) | Booting tiles of processing units | |
US20170147345A1 (en) | Multiple operation interface to shared coprocessor | |
US7155718B1 (en) | Method and apparatus to suspend and resume on next instruction for a microcontroller | |
WO2002046887A2 (en) | Concurrent-multitasking processor | |
WO2021013727A1 (en) | Processor | |
US20240095103A1 (en) | System and Method for Synchronising Access to Shared Memory | |
WO2007039837A2 (en) | Implied instruction set computing (iisc) / dual instruction set computing (disc) / single instruction set computing (sisc) / recurring multiple instruction set computing (rmisc) based computing machine / apparatus / processor | |
JPH0340169A (ja) | 多重プロセツサシステムおよび複数の処理装置を制御する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050209 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050428 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050809 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060404 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060628 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060704 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061205 |