JP2002517811A - 複数の回路ブロックにコマンドを配信する方法と装置 - Google Patents

複数の回路ブロックにコマンドを配信する方法と装置

Info

Publication number
JP2002517811A
JP2002517811A JP2000552565A JP2000552565A JP2002517811A JP 2002517811 A JP2002517811 A JP 2002517811A JP 2000552565 A JP2000552565 A JP 2000552565A JP 2000552565 A JP2000552565 A JP 2000552565A JP 2002517811 A JP2002517811 A JP 2002517811A
Authority
JP
Japan
Prior art keywords
command
commands
word
group
memory
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
Application number
JP2000552565A
Other languages
English (en)
Other versions
JP4169931B2 (ja
Inventor
クラエス ハマー,
マグナス ヤコブソン,
ステファン ホカンソン,
Original Assignee
テレフォンアクチーボラゲット エル エム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テレフォンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフォンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2002517811A publication Critical patent/JP2002517811A/ja
Application granted granted Critical
Publication of JP4169931B2 publication Critical patent/JP4169931B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 コマンド記憶素子はコマンドをメモリワードとして記憶する。各コマンドはラベルフィールドとアクションフィールドを有する。コマンド記憶素子内での情報量を削減するために複数のコマンドが統合されている。制御ユニットは、ラベルフィールドの情報に従って、アクションフィールドを制御ワードに並べる。コマンドがコマンド記憶素子内で圧縮されているときは、並列処理されないコマンドは同じメモリワードに記憶されていてもよい。並列処理されるコマンドは、異なるメモリワードに記憶されていてもよい。制御ワード内のコマンドの順序は、例えば、コマンドが前のコマンドと並列処理されるべきか否かというようなラベルフィールドの情報に従って定められる。デコードされて時間の制約を受ける制御ワードになる一群のコマンド、あるいは、ジャンプコマンドの対象であるコマンドは、制御ワードを構成するコマンドが1クロックサイクル内で読み出されるようにメモリワードの境界部に並べられる。一群のコマンドは、直前のメモリワードに特別なコードかイリーガルコマンドを挿入することによって、メモリワードの境界部に配列することができる。コマンドは、コマンド記憶素子のサイズをさらに小さくするように一群のコマンドの中に位置付けることができる。条件付コマンドが一群のコマンドの中の最初のものであれば、当該条件はその群の中の全てのコマンドに対して適用される。条件付コマンドが一連のコマンドの中の最初のものでなければ、条件は直前のコマンドについてのみ適用される。

Description

【発明の詳細な説明】
【0001】 技術的背景 本発明はデータ処理に関し、より具体的には,チップ上のメモリに記憶された
コマンドに関する。 半導体技術の発展により,単一のチップ、チップセット又はボードに複雑な回
路ブロックを集積することが可能になった。単一のチップにI/Oセル、データ
パスオペレータ、記憶要素や制御ユニットを搭載することも可能である。回路ブ
ロックが異なれば機能(又は動作)が異なる。適切な回路ブロックが適切な時刻に
適切に作動することを確保することは制御構造の役目である。
【0002】 回路ブロックの一例は加算器である。加算器は、数を数える操作、フィルタあ
るいは積算操作のために使用される。レジスタは入力と出力が同時刻に到着する
ように、しばしば加算器の入力部と出力部に使用される。回路ブロックの他の例
は積算機である。積算機は相関、重畳、フィルタあるいは周波数演算等のデジタ
ル信号処理に使用される。
【0003】 回路ブロックの他の例としてはパリティ発生器、コンパレータ、ゼロ/ワン検
出器、ブーリーン演算子、算術論理ユニット(ALUs)およびシフタがある。
パリティ発生器は入力されたワードに含まれる1の数が偶数か奇数かを決定する
ために使用される。コンパレータは2値で表された2つの値の大きさを比較する
のに使用される。ゼロ/ワン検出器は、その数値が全てゼロ又は全て1であるか
否かを決定するために使用される。2値カウンタは2値であらわされた処理を所
定回繰り返すために使用される。シフタは、算術シフト、論理シフト及び回転シ
フトにとって重要である。
【0004】 記憶素子は、特に、回路ブロックへの入力コマンド及び回路ブロックからの出
力コマンドを記憶するために使用される。記憶素子は、通常3つのカテゴリに分
類される:ランダムアクセスメモリ、シリアルアクセスメモリ、及びコンテント
アクセスメモリである。ランダムアクセスメモリは、データの物理的な位置とア
クセス時間との間に関係がない記憶媒体と定義される。一般的にランダムアクセ
スメモリと称するものの中には、2つのカテゴリが含まれる:読み出し専用メモ
リ(ROM)と書き込み/読み出しメモリである。RAMという用語は、通常、書
き込み/読み出しメモリをさすものとして使用され、RAMは回路ブロックから
の出力を記憶するために使用される。
【0005】 「データ処理」という表現は、回路ブロックの間で、特定の機能を達成するた
めにデータを移動させることを意味する。このデータの移動は、クロックサイク
ルのたびに新たなコマンドを発生させる制御構造によって統括されている。シス
テムによっては、同時に処理されるコマンドは1つだけであるSISD(単一指
示ストリーム単一データストリーム)制御ユニットを使用している。コマンドが
1つだけであれば、SISDシステムの効率は通常、コマンドの長さを長くする
か、クロック周波数を高くすることによって改善される。
【0006】 スーパースカラーシステムでは、制御ユニットは同時に2つ以上のコマンドを
処理することによって同じクロックサイクル内で2つ以上の回路ブロックを(並
列に)動かすことが可能である。N個の回路ブロックがあれば、理論的にはスー
パースカラーシステムは同一クロック内に、N個の回路ブロックを動かすことが
できる。複数のコマンドを使うので、スーパースカラー制御ユニットは一般にS
ISD制御ユニットもよりも効率が高い。
【0007】 「パイプライン」という用語は、オンチップ記憶素子からコマンドを読み出し
(フェッチング)、種々の回路ブロックを動かすときにコマンドをデコードする
ことを意味する。制御ユニットは、パイプラインステージの間でコードされたコ
マンドをコマンドパスに保持することができる。コマンドパスは、コマンドのフ
ェッチ、コマンドのデコード、レジスタの読み取り、実行及び/または書き込み
からなる異なるステージに分化することができる。制御ユニットは、パスアラウ
ンドを許容し、処理が適切な順序で行われるように比較を行うことができる。
【0008】 ほとんどのシステムでは、超長コマンドワード(VLIW)制御装置を使用し
ている。VLIW制御装置では、制御プログラムは、それぞれのワードが特定の
クロックサイクルに対応するようにオンチップ記憶素子に記憶されている。それ
ぞれのVLIWはそれぞれの回路ブロック用に、たとえそれが当該VLIWでは
動作していない回路ブロックであっても、少なくとも1ビットを有している。V
LIW制御装置の問題は、回路ブロックの数が多くなると、制御プログラムの長
さと大きさが大きくなることである。特に複雑なシステムでは、制御プログラム
を書き込むためのチップスペースが足りなくなる。個々の回路ブロックを動かす
ためにのコマンドを記憶するために、チップの大部分を使用せざるを得ないこと
になる。
【0009】 クロックサイクルごとに見ると、ほとんどのシステムでは、回路ブロックのう
ちで動いているのはほんの小さなサブセットだけである。換言すれば、制御ワー
ドが長いほど、貴重なチップエリアが無駄に使用されることになる。アプリケー
ションによっては、コマンド記憶素子を1つのチップに搭載することはもはや不
可能である。複数の回路ブロックを動かすことができ、貴重なチップエリアを無
駄に使用することなく並行してコマンドを作成することができる制御構造及びコ
マンド記憶素子が必要とされている。
【0010】 発明の要旨 従来の制御ユニットが有していた上記の課題、問題および限界は、コマンドを
統括して、コマンド記憶素子に記憶されるべき情報の量を少なくすることによっ
て解決することができる。前記制御装置は、指示を解釈して統括に際して取り除
かれた順序を回復させる。
【0011】 本発明の1つの側面によれば、コマンドはコマンド記憶素子にメモリワードと
して隣り合わせに記憶される。それぞれのコマンドは、ラベルフィールドとアク
ションフィールドを有する。制御ユニットはメモリワードとして集合的に参照さ
れる一群のコマンドを受け取る。制御ユニットはコマンドをデコードして、ラベ
ルフィールドの情報に基づいてアクションフィールドを並べ替える。制御ユニッ
トは、制御ワードをレジスタに記憶して、レジスタからの制御ワードを複数の回
路ブロックに配布する。
【0012】 コマンドがコマンド記憶素子に圧縮されて記憶されているときは、並行して実
施しないコマンドは同じメモリ内に記憶されていても良い。並行して実施される
コマンドは、異なるメモリワードに記憶することができる。制御ワード内のコマ
ンドの順序は、コマンドが前のコマンドと並行して実行されるかどうかというよ
うなラベルフィールドにある情報によって決定される。
【0013】 本発明の別の側面によれば、時間の制約を受ける制御ワードまたはジャンプコ
マンドの対象である制御ワードはメモリワードの境界部に配列させられる。もし
、一群のコマンドが1つのメモリワードから出発して次のメモリワードで終了す
るなら、制御ユニットは両方のメモリワードを読み込まなければならない。もし
、一群のコマンドがジャンプコマンドの対象であれば、一群のコマンドが完全に
利用可能になるには2クロックサイクルが必要である。時間の制約を受けるアプ
リケーションでは、そのコマンドグループが利用できるようになるために2クロ
ックサイクル待たなければならないことは好ましいことではない。しかし、もし
一群のコマンドがメモリワードの境界に配列されていたなら、制御ユニットはメ
モリワードを1つだけ読めば良く、その制御ワードは直ぐに利用可能になる。特
定の実施態様では、前のメモリワードに特別なコード又はイリーガルコマンドが
挿入されて、一群のコマンドは次のメモリワードの冒頭部分から開始する。
【0014】 本発明の他の側面によれば、コマンド記憶素子の大きさをさらに削減するため
に、コマンドは一群のコマンドの中に置かれることになる。例えば、条件付コマ
ンドは条件を評価するために特別な回路ブロックを必要とするコマンドである。
条件が満たされれば他のコマンドが実施される。本発明の実施例では、一群のコ
マンドのうちの最初のものが条件付コマンドであれば、当該一群のコマンドに属
する全てのコマンドにその条件が課される。もし条件付コマンドがそのグループ
のコマンドの中で最初のものではなければ、条件はそのコマンドの直前のコマン
ドにだけ適用される。つまり、一群のコマンドの中でのコマンドの位置が追加の
情報をもたらす。
【0015】 本発明の利点は、コマンド記憶素子が休止状態の回路ブロックのコマンドのた
めに貴重なチップエリアを占領することがない点である。コマンド記憶素子の大
きさはチップエリアの使用領域を最も少なくするよう最小限にされている。 本発明のその他の利点は、特定のシステムの平衡性の程度(独立パス又はパイ
プラインの数)とは無関係に同じコントローラと同じコマンドセットを使用でき
ることである。 本発明のその他の重要な利点は、大部分の回路ブロックを再利用するようチッ
プをわずかに変更するだけで同じ制御フィールドが使用可能な点である。回路ブ
ロックの再利用は、新たなシステムを製造するための時間とコストを低減するた
めに重要である。
【0016】 本発明の他の重要な利点は、時間の制約を受けるアプリケーションの場合に、
一群のコマンドをメモリワード境界周辺に配列して単一のクロックサイクルでの
読み出しを可能にできる点である。
【0017】 本発明に関する上述の目的、特徴及び利点は、図を参照して以下に記載する本
発明の詳細な説明によって一層明瞭になるはずである。
【0018】 発明の詳細な説明 以下の本発明の詳細な説明では、発明の完全な理解を可能にするために、詳細
について具体的に記載する。しかし、下記の具体的な記載とは異なる形で本発明
を実施できることは当業者にとって明らかである。また、本発明に関する詳細な
説明が希薄化してしまわないように、周知の方法や回路についての説明は割愛し
た。
【0019】 図1は制御ユニット20を有するシステムのブロック図である。制御ユニット
20は、デコーダ22とシーケンサ24を有する。コマンド記憶素子10は、ビ
ットフィールドにコマンドを記憶するオンチップメモリである。コマンドのうち
のいくつかは、ジャンプあるいはコマンド呼び出しのような制御伝達コマンドで
あり、あるいは数式又は論理演算のようなALUクラスのコマンドである。コマ
ンドはそれぞれ、ラベルフィールドとアクションフィールドからなる少なくとも
2つの部分を有する。
【0020】 制御ユニット20は、コマンド記憶素子10に対してコマンド42を取り込む
ようにアドレス41を送る。制御ユニット20は、コマンド記憶素子10から集
合的にメモリワードとして参照される一群のコマンドを受け取る。制御ユニット
20は、デコーダ22を使ってメモリをデコードする。シーケンサ24が、ラベ
ルフィールドの情報に従ってアクションフィールドを制御ワードのコマンドとし
て並べ替える。シーケンサ24は、制御ワードをパイプラインレジスタ(図示し
ない)に記憶させる。コマンドの順序はコマンド42、チップ60の他の部分の
状況61、および回路ブロック51から59の状況によって定まる。
【0021】 制御ワードは並列(または、1つのクロックサイクルで)実行される一連のコ
マンドである。デコードされて制御ワードを構成する複数のコマンドはコマンド
記憶素子10の内部に隣接して、メモリワードの一部として記憶される。コマン
ド記憶素子10は、不要なビットフィールドを除去し同一メモリワードで並列処
理されるコマンドと並列処理されないコマンドとを統合することによってサイズ
を圧縮されている。デコードされて制御ワードを形成する一群のコマンドは、1
つのメモリワードで始まって他のメモリワードで終了するものであっても良い。
コマンドはコマンド記憶素子10の中で圧縮されているので、メモリワード内の
ビット位置によってコマンドを識別することは不可能である。その代わり、シー
ケンサ24は、それぞれのコマンドのラベルフィールドの情報を用いて、デコー
ドされたコマンドを順序付け、独立させる際に失われた順序を回復させる。
【0022】 制御ユニット20が、コマンド記憶素子10から一連のコマンドを受け取ると
、制御ユニット20は、対応するアクションフィールドの長さを認識するために
ラベルフィールドを用いることができる。例えば、それぞれのラベルフィールド
は、当該コマンドが前のコマンドと並列処理されるべきか、制御ユニット20が
この情報に基づいて制御ワードを形成する一群のコマンドの開始と終了位置を識
別することができるか否かを表示する。制御ユニット20は、ラベルフィールド
、アクションフィールド、又は一群のコマンドの中における当該コマンドの位置
情報を、対応するアクションフィールドを実行する回路ブロックを決定するため
に使用することができる。一群のコマンドが特定の回路ブロックを対象としたコ
マンドを有していなければ、制御ユニット20は、回路ブロックがその時点では
動いていないことを理解することができる。回路ブロックが動いていなければ、
そのブロックを対象としたコマンドを含む制御ワードが受け取られるまでは当該
ブロックは休止させる。
【0023】 制御ユニット20は、クロック30から各クロックサイクル毎に制御バス43
に制御ワードを送り出す。制御ユニット20は、クロック30以降の各クロック
サイクルに全制御ワードが利用できるように十分なレートでメモリ10から予め
コマンド42を読み出す。制御ワードは回路ブロック51、52、53と59に
送られる。制御ワードは回路ブロック51、52、53と59に対して、システ
ムデータバス44にデータを送り出すかシステムバスからデータを受け取るよう
に指示する。制御ユニット20は、複数のシーケンスレジスタ及び/または複数
のデータバスを有していてもよい。
【0024】 制御ユニット20は、動いている回路ブロックに対してコマンドを含む制御ワ
ードを送り出す。制御ワードを形成する一群のコマンドが特定の回路ブロックに
対するコマンドを含んでいなければ、制御ユニット20はその時当該回路ブロッ
クが休止状態であることを理解する。回路ブロックが動いていなければ、次に当
該回路ブロックに対するコマンドを含む制御ワードが受け取られるまで休止状態
のままである。もし、制御ユニット20が制御ワードを構成する一群のコマンド
をデコードし、当該一群のコマンドが回路ブロック51と52に対するコマンド
を含んでいるが、回路ブロック53と59に対するコマンドを含んでいなければ
、制御ユニット20は回路ブロック51と52に対する制御ワードを送り出す。
【0025】 図2は、コマンド記憶素子の中でコマンドがメモリワードとして記憶される様
子を示した模式図である。図2に示されているように、コマンド記憶素子10は
、メモリワード11,12,13,14,15,・・・19を有している。コマ
ンド71,72,・・・85は、デコードされた後に配列されて制御ワードを構
成する。アプリケーションによっては、制御ワードの最大長はデータ及び制御バ
スの数のようなハードウエアの制限を受ける。制御ワードの最大長は、制御が単
一のクロックサイクルでコマンド記憶素子から読み出すビット数による制約も受
ける。
【0026】 例示した実施態様においては、制御ワードは8ビットや16ビットの基本長の
倍数である。例えば、図2では、1つのクロックサイクルに読み出されるデータ
ビットの最大数は64ビットである。メモリワードの長さは64ビットで、コマ
ンドは16ビットか32ビットのいずれかである。デコードされて制御ワードを
構成する一群のコマンドは、16、32、48又は64ビットの長さをとること
ができる、つまり、コマンド長の1、2、3または4倍長である。制御ワードは
1つのメモリワードから始まって次のメモリワードで終了することも可能である
。例えば、コマンド71が最初の制御ワードであれば、コマンド72、73、7
4及び75が次の制御ワードを構成するものであっても良い。
【0027】 メモリワード11は、コマンド71、72、73及び74によって構成される
。コマンド71、72、73及び74は制御ワードを構成することができる。コ
マンド71、72、73と74がデコードされて1つの制御ワードを構成するな
ら、コマンド71、72、73及び74は同じくロックサイクル内で(並列に)
実行される。各コマンドは少なくとも2つの部分を有する:ラベルフィールドと
アクションフィールドである。例示した実施態様では、ラベルフィールドは4か
ら7ビットの長さを有する。ラベルフィールドはアクションフィールドの対象を
特定する。もし、コマンド71が回路ブロック51に対するものであれば、コマ
ンド71のラベルフィールドは対象回路ブロックとして、回路ブロック51を指
定する。メモリワード11が特定の回路ブロックに対するコマンドを有していな
ければ、制御ユニット20は当該回路ブロックがその時休止していることを理解
する。コマンドのいくつかは制御ユニット20に対するものである。もしコマン
ドが制御ユニット20に対するものであれば、制御バス43に対してコマンドを
送り出す必要はない。
【0028】 制御ワードの長さは、ラベルフィールド内の情報によって決定される。ラベル
フィールドは、従来はもっと長い制御ワードのビット位置によって与えられてい
た情報を提供することができる。さらに、処理対象となる回路ブロックを特定す
ることに加えて、ラベルフィールドは、当該コマンドを直前のコマンドと並列に
実行すべきか否かを指示する。2つのコマンドが並列処理される場合は、これら
は同じ制御ワードに含まれる。コマンドのデコードと順序付けは制御ユニット2
0によって行われる。例えば、コマンド71、72、73及び74が1つの制御
ワードを構成するものであれば、コマンド72、72及び74のラベルフィール
ドは、これらのコマンドが直前のコマンドと並列処理されるべきであることを示
す。しかし、もしコマンド74がその制御ワードの一部でなければ、コマンド7
4のラベルフィールドは直前のコマンド73と並列処理すべきことを示していな
い。
【0029】 制御ワードは数種類のコマンドのうちの任意の1つであってもよい。コマンド
は通常4つの基本的な動作のうちの1つである。移動コマンドは回路ブロック間
のデータの移動を制御する。処理コマンドは、回路ブロックによって行われる処
理を制御する。プログラムフローコマンドは、コマンドの順序を制御する。条件
コマンドは条件を評価する。コマンドはまた、場合によっては異なる数種類のコ
マンドの組み合わせである。
【0030】 本発明の例示した実施態様では、コマンドは一群のコマンドの中にあってデコ
ードされて制御ワードを構成し、情報を追加すると共にコマンド記憶素子の大き
さをさらに小さくする。例えば、条件コマンドの結果である動作は一群のコマン
ドの中の条件コマンドの位置によるとすることもできる。例えば、条件コマンド
が一群のコマンド中の最初のものであれば、条件はそれに続く全てのコマンドに
適用される。つまり、仮に条件が満たされれば、それに続く全てのコマンドが実
行される。もし条件が満たされなければ、何れのコマンドも実行されない。一方
、条件コマンドが一群のコマンドのうちの最初のコマンドでなければ、条件は直
前のコマンドにだけ適用される。
【0031】 図3は、制御ユニットによるコマンドの順序付けを模式的に表す図である。制
御ユニットの中のコマンドの順序は、コマンドそのものと回路ブロックとチップ
の他の部分からの条件に依存する。例示した実施態様では、3つのパイプライン
段階が存在する:コマンドフェッチ段階、コマンドデコード段階、実行/書き込
み段階である。フェッチ段階では、メモリワードはコマンド記憶素子から読み出
され、メモリワードを構成するコマンドがパイプラインレジスタに記憶される。
デコード段階では、制御ユニットは各ラベルフィールドを読み、それぞれのラベ
ルフィールドの情報に基づいて対応するアクションフィールドの位置を特定する
。アクションフィールドはコマンドがコマンド記憶素子において圧縮されたとき
に失われた位置情報を回復できるように、制御ワードの中に位置付けられる。実
行/書き込み段階では、制御ワードは回路ブロックに与えられる。回路ブロック
はデータの移動等の処理を行う。結果として得られるデータは対象となるレジス
タ又はメモリに記憶される。
【0032】 図3に示した例では、制御ユニットは(図2に示した)クロックサイクル0で
メモリワード11を取り込む。上述のように、制御ユニットはコマンド記憶素子
からメモリワードを読み出し、これを各クロックサイクルで完全な制御ワードが
得られるレートでパイプラインレジスタに記憶させる。クロックサイクル1の間
、制御ユニットはメモリワード12を読み出し(図2参照)、メモリワードをデ
コードする。クロックサイクル2においては、制御ユニットはメモリワード13
を読み出し(図2参照)、メモリワード12をデコードし、制御ワードの全長が
使用できる状態なら、回路ブロックに送る。クロックサイクル3では、制御ユニ
ットはメモリワード14を読み出し(図2参照)、メモリワード13をデコード
し、次の制御ワードを実行する。クロックサイクル4では、制御ユニットはメモ
リワード15を読み出し(図2参照)、メモリワード14をデコードし、次の制
御ワードを実行する。場合によっては、制御ワードは1つのメモリワードから開
始して次のメモリワードで終了することもできることに留意する必要がある。図
に示した例では、コマンド81、82、83がデコードされて制御ワードを形成
する。従って、コマンド81がクロック3でデコードされるが、クロック5まで
は実行されることはない。並列処理されるべきコマンドは全てのコマンドが実行
可能になるまでは実行されないのが普通である。
【0033】 一般には、同一の命令によって、コマンドはデコードされて制御ワードを構成
し、同じメモリ10に記憶される。しかし、メモリ10は、次の制御ワードがメ
モリの別の場所から開始することを指示するコマンドを含むこともできる。例え
ば、デコードされて1つの制御ワードを構成する一群のコマンドのうちの1つが
、ジャンプコマンドの対象になっている場合もある。コマンドの1つがジャンプ
コマンドの対象であれば、この一群のコマンドはメモリワードの境界部に配列さ
れなければならない。
【0034】 図4は、コマンドが、次の制御ワードがメモリの別の場所から開始し、一群の
コマンドがメモリワード境界には配列されていないこと指示する場合の、制御ユ
ニットのコマンドシーケンスを模式的に示すものである。図に示した例の場合は
、コマンド81はコマンド81、82と83で構成される制御ワードの最初のコ
マンドである。図2に示した図では、コマンド81はメモリワード13内に記憶
され、コマンド82と83とはメモリワード14内に記憶されている。
【0035】 クロックサイクル0において、ジャンプコマンドが実行されて、かつ、コマン
ド81がジャンプコマンドの対象であるとすれば、制御ユニットから読み出され
る次のメモリワードはメモリワード13である。しかし、コマンド81、82と
83の全てがメモリワード13に記憶されているわけではない。つまり、制御ワ
ードの全てが利用可能になるには2クロックを要することを意味する。クロック
サイクル2では、制御ユニットはメモリワード14を読み出す。制御ワードを構
成するために必要なコマンドを読み出すのに2クロックを要するので、制御ワー
ドはクロックサイクル3では未だ準備ができていない。時間に関して制約の厳し
いアプリケーションの場合には、制御ワードは各クロックサイクルごとに使用可
能でなければならない。従って、時間の制約が厳しい制御ワードを構成するため
にデコードされた一群のコマンドは、1クロックサイクルで読み出し可能なよう
にメモリワードの境界部に配列されていなければならない。
【0036】 図5は、一群のコマンドがメモリワード境界に選択的に配列されているコマン
ド記憶素子内の制御ワードを構成する一群のコマンドの記憶状態を模式的に示す
ものである。図に示した例では、コマンド81はコマンド81、82と83から
構成される制御ワードの最初のコマンドである。図2では、コマンド81はメモ
リワード13内の最後のコマンドであった。図5では、コマンド90がメモリワ
ード13に挿入されている。結果として、コマンド81は、メモリワード14の
中の最初のコマンドになった。
【0037】 メモリワードを構成する方法は種々存在する。コマンド90は制御ユニットが
認識することができるものであればどのようなコマンドであっても良い。情報ワ
ードを構成する他の方法はイリーガルコードを使用することである。制御ユニッ
トはコマンドのラベルフィールドコマンド90がイリーガルコマンドであること
を、当該ラベルフィールドの数ビットを読んだだけで認識することができる。
【0038】 制御ユニットが、コマンド90がイリーガルコマンドであると認識するための
他の方法は、コマンド90がデコードされて制御ワードを構成する一群のコマン
ドの最大長を超えるか、あるいは、制御ワードの最大長を超えることである。コ
マンド77、78、79と80が制御ワードを構成するもので有るとすれば、コ
マンド90は最大長を越えている。ラベルフィールドのビットが、コマンド90
がコマンド77、78、79及び80と並行処理されなければならないことを示
しているとすれば、制御ユニットはコマンド90がイリーガルコマンドであり、
次の制御ワードが次のメモリワードから開始することを知ることができる。
【0039】 情報ワードを書き込む別の方法は、プログラムフローコマンドを使用する方法
である、説明のために示した例のうちのいくつかでは、プログラムフローコマン
ドは常に一群のコマンドの中の最初のコマンドである。もしプログラムフローコ
マンドが一群のコマンドの中の最初のものでなければ、制御ユニットは、プログ
ラムフローコマンドがイリーガルコマンドであることを認識することができる。
一群のコマンドは、メモリワードに対して常に唯一のプログラムフローコマンド
が存在するように構成することもできる。もし1つ以上のプログラムフローコマ
ンドがあれば、制御ユニットは2番目のプログラムフローコマンドはイリーガル
コマンドであることを認識することができる。制御ユニットが特別なコードかイ
リーガルコマンドを読み込むと、制御ユニットは、次の制御ワードが次のメモリ
ワードから開始することを認識する。
【0040】 図6は、コマンドが、次の制御ワードを構成する一群のコマンドがメモリの別
の位置から開始するものであり、一群のコマンドはメモリワード境界部に選択的
に配列されていることを示す場合の、コントロールユニットによるコマンド配列
を模式的に示した図である。図の例においては、コマンド81はコマンド81、
82と83によって構成される制御ワードの最初のコマンドである。図5に示し
たように、コマンド81はメモリワード14に記憶された最初のコマンドである
。結果として、一群のコマンド81、82と83は同じクロックサイクル中に読
み出すことができる。
【0041】 クロックサイクル0の間に、ジャンプコマンドが実行され、コマンド81がジ
ャンプコマンドの対象であるとすると、制御ユニットによって読み出される次の
メモリワードはメモリワード14である。クロックサイクル1において、制御ユ
ニットはメモリワード14を読み出す。図4に示した例とは異なり、制御ワード
を構成する一群のコマンドは単一のクロックサイクル内で読み出される。クロッ
クサイクル2では、メモリワード14がデコードされて、クロックサイクル3で
コマンド81、82と83から構成された制御ワードが実行される。図4の場合
とは異なり、制御ワードは各クロックサイクルに対して使用可能な状態である。
制御ワードは1つのメモリワードからスタートして次のメモリワードで終了する
ことができるが、デコードされた制御ワードが時間の制約を受ける一群のコマン
ドは、メモリワードの境界部に配列されている必要がある。
【0042】 ラベルフィールドはコマンドの長さとアクションフィールドが対象としている
回路ブロックに関する情報を含むことができるので、制御メモリと制御ユニット
は別の回路ブロックに関して再利用することができる。同様に、回路ブロックは
別のコマンド記憶素子と制御ユニットに対して再利用することができる。
【0043】 好ましい実施例に関する上述の説明は当業者が本発明を利用することができる
ように記載したものである。上述の実施例を種々の方法で変更することは当業者
にとっては自明であり、本発明の範囲と思想を逸脱することなく上記の基本原理
を適用することも可能である。従って、本発明は上述の実施例に限定されるもの
ではなく、添付の請求項の記載の最も広い解釈に基づくべきものである。
【図面の簡単な説明】
【図1】 図1は、制御ユニットを有するシステムのブロック図である。
【図2】 図2は、コマンド記憶素子内にメモリワードとしてコマンドを記
憶する様子を模式的に示す図である。
【図3】 図3は、制御ユニットによる一連のコマンドを模式的に示す。
【図4】 図4は、コマンドが、次の制御ワードを構成する一群のコマンド
が記憶素子内の別の位置から開始しメモリワード境界に整列していないことを表
示する場合のコマンドの並びを模式的に示す図である。
【図5】 図5は、一群のコマンドがメモリワードの境界に選択的に配列さ
れたコマンド記憶素子内の制御ワードを構成する一群のコマンドの記憶状況を模
式的に示すものである。
【図6】 図6は、コマンドが、次の制御ワードを構成する一群のコマンド
が記憶素子内の別の位置から開始しメモリワード境界に選択的に整列されている
ことを表示する場合のコマンドの並びを模式的に示す図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,UZ,VN,YU,ZA,Z W (72)発明者 ホカンソン, ステファン スウェーデン国 エス‐974 32 ルレオ, ストルスティゲン 14 Fターム(参考) 5B013 AA16 DD05 5B033 BE05 DC08

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 複数の回路ブロックに対してコマンドを配信する装置であっ
    て、 ラベルフィールドとアクションフィールドを有するコマンドをメモリワード内
    に相互に隣接させて記憶するコマンド記憶素子と、 メモリワードを受け取り、メモリワードをデコードし、ラベルフィールドの情
    報に基づいてアクションフィールドのコマンドを配列させ、レジスタ内に制御ワ
    ードを記憶させる制御ユニットと、 制御ワードをレジスタから複数の回路ブロックに配信する手段とを具備した装
    置。
  2. 【請求項2】 メモリワードのうちの1つに、並列処理されるコマンドと並
    列処理されないコマンドを統合することによってコマンド記憶素子のサイズを縮
    小した請求項1に記載の装置。
  3. 【請求項3】 制御ワードを構成するためにデコードされた一群のコマンド
    は、第1のメモリワードから開始し、第2のメモリワードで終了する請求項2に
    記載の装置。
  4. 【請求項4】 各ラベルフィールドが当該コマンドは前のコマンドと並列処
    理されるべきか否かを表示するものである請求項3に記載の装置。
  5. 【請求項5】 制御ワードを構成するためにデコードされた一群のコマンド
    は、メモリワード境界に配列されて一群のコマンドが第1のメモリから開始して
    第2のメモリで終了することがない請求項1に記載の装置。
  6. 【請求項6】 前記一群のコマンドは先行するメモリワードに特別なコード
    を挿入することによってメモリワード境界に配列された請求項5に記載の装置。
  7. 【請求項7】 前記一群のコマンドは、先行するメモリワードにイリーガル
    コマンドを挿入することによってメモリワード境界に配列された請求項5に記載
    の装置。
  8. 【請求項8】 各制御ワードは可能な最大長を有しており、シーケンサは可
    能な最大長を越えた長さを有するものをイリーガルコマンドと認識する請求項7
    に記載の装置。
  9. 【請求項9】 異なる種類のコマンドが存在し、そのうちの1つはジャンプ
    コマンドであり、各ジャンプコマンドは対象コマンドを有し、 デコードされて1つの制御ワードを構成する一群のコマンドのうちの1つが前
    記対象コマンドであれば、当該一群のコマンドがメモリワードの境界に並列され
    る請求項1に記載の装置。
  10. 【請求項10】 複数の種類のコマンドが存在し、コマンドのうちの一種は
    条件を評価するために回路ブロックを指定し、条件が満足されていれば、コマン
    ド記憶素子に記憶されている少なくとも1つの別のコマンドを実行し、条件が満
    足されていなければ当該少なくとも1つの他のコマンドは実行されない請求項1
    に記載の装置。
  11. 【請求項11】 デコードされて1つの制御ワードを構成する一群のコマン
    ドのうちの最初のコマンドが条件コマンドであれば、条件は当該一群のコマンド
    内の全てのコマンドに対して適用される請求項10に記載の装置。
  12. 【請求項12】 デコードされて1つの制御ワードを構成する一群のコマン
    ドの最初のものが条件コマンドでなければ、条件は当該一群のコマンドの他の全
    てに対しては適用されない請求項10に記載の装置。
  13. 【請求項13】 回路ブロックにコマンドを配信する方法であって、 ラベルフィールドとアクションフィールドを有する複数のコマンドをメモリワ
    ードとしてコマンド記憶素子内に記憶し、 コマンド記憶素子からメモリワードを取り出し、 メモリワードをデコードし、 ラベルフィールドの情報に基づいてコマンドのアクションフィールドをレジス
    タ内に位置付け、 レジスタから回路ブロックに対してコマンドを配信するステップを有する方法
  14. 【請求項14】 さらに、メモリワードにおいて、並列処理されるコマンド
    と並列処理されないコマンドを別個に置くことによってコマンド記憶素子の大き
    さを縮小するステップを有する請求項13に記載の方法。
  15. 【請求項15】 さらに、並列処理されるべき一群のコマンドを同じメモリ
    ワード内に位置させるステップを有する請求項14に記載の方法。
JP2000552565A 1998-05-29 1999-05-18 複数の回路ブロックにコマンドを配信する方法と装置 Expired - Fee Related JP4169931B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/086,618 US6345355B1 (en) 1998-05-29 1998-05-29 Method and apparatus for distributing commands to a plurality of circuit blocks
US09/086,618 1998-05-29
PCT/SE1999/000847 WO1999063417A2 (en) 1998-05-29 1999-05-18 Method and apparatus for distributing commands to a plurality of processing units

Publications (2)

Publication Number Publication Date
JP2002517811A true JP2002517811A (ja) 2002-06-18
JP4169931B2 JP4169931B2 (ja) 2008-10-22

Family

ID=22199787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000552565A Expired - Fee Related JP4169931B2 (ja) 1998-05-29 1999-05-18 複数の回路ブロックにコマンドを配信する方法と装置

Country Status (8)

Country Link
US (1) US6345355B1 (ja)
EP (1) EP1080399A2 (ja)
JP (1) JP4169931B2 (ja)
KR (1) KR100612193B1 (ja)
CN (1) CN1127018C (ja)
AU (1) AU765179B2 (ja)
CA (1) CA2333563C (ja)
WO (1) WO1999063417A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039790B1 (en) 1999-11-15 2006-05-02 Texas Instruments Incorporated Very long instruction word microprocessor with execution packet spanning two or more fetch packets with pre-dispatch instruction selection from two latches according to instruction bit
EP1102165A1 (en) * 1999-11-15 2001-05-23 Texas Instruments Incorporated Microprocessor with execution packet spanning two or more fetch packets
CN105446700B (zh) * 2014-05-30 2018-01-02 华为技术有限公司 一种指令执行方法以及顺序处理器
CN109947479A (zh) * 2019-01-29 2019-06-28 安谋科技(中国)有限公司 指令执行方法及其处理器、介质和系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692139A (en) 1988-01-11 1997-11-25 North American Philips Corporation, Signetics Div. VLIW processing device including improved memory for avoiding collisions without an excessive number of ports
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
EP0825529A3 (en) 1990-05-04 1998-04-29 International Business Machines Corporation System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
US5214763A (en) 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US5163139A (en) 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
EP0488819B1 (en) * 1990-11-30 1999-01-13 Kabushiki Kaisha Toshiba Conditional branch instructions execution apparatus
US5446850A (en) 1991-01-15 1995-08-29 International Business Machines Corporation Cross-cache-line compounding algorithm for scism processors
JP2642529B2 (ja) 1991-04-30 1997-08-20 株式会社東芝 並列プロセッサーの命令分配処理装置
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
JPH0793152A (ja) 1993-09-20 1995-04-07 Fujitsu Ltd マイクロプロセッサ制御装置
EP0950946B1 (en) 1993-11-05 2001-08-16 Intergraph Corporation Software scheduled superscaler computer architecture
JPH07219769A (ja) 1994-02-07 1995-08-18 Mitsubishi Electric Corp マイクロプロセッサ
US6009508A (en) * 1994-06-21 1999-12-28 Sgs-Thomson Microelectronics Limited System and method for addressing plurality of data values with a single address in a multi-value store on FIFO basis
US5724331A (en) * 1994-08-25 1998-03-03 Discovision Associates Disk drive system having improved cartridge-loading apparatus including direct drive gear train and methods for making and operating same
US5742784A (en) 1995-01-25 1998-04-21 International Business Machines Corporation System for reordering of instructions before placement into cache to reduce dispatch latency
US5699537A (en) * 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions

Also Published As

Publication number Publication date
US6345355B1 (en) 2002-02-05
CA2333563A1 (en) 1999-12-09
KR100612193B1 (ko) 2006-08-16
CA2333563C (en) 2011-07-12
JP4169931B2 (ja) 2008-10-22
KR20010043891A (ko) 2001-05-25
WO1999063417A2 (en) 1999-12-09
WO1999063417A3 (en) 2000-03-16
CN1127018C (zh) 2003-11-05
EP1080399A2 (en) 2001-03-07
CN1310818A (zh) 2001-08-29
AU765179B2 (en) 2003-09-11
AU4661499A (en) 1999-12-20

Similar Documents

Publication Publication Date Title
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
US6775766B2 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
CN102346689B (zh) 用于暂停处理器中执行过程的方法和装置
US6845445B2 (en) Methods and apparatus for power control in a scalable array of processor elements
EP0042442B1 (en) Information processing system
US7263624B2 (en) Methods and apparatus for power control in a scalable array of processor elements
JP2003510682A (ja) プレディケーションを用いたマスクに基づくパックされたデータからのデータ要素の選択的書き込み
US20080120494A1 (en) Methods and Apparatus for a Bit Rake Instruction
JP2006508447A (ja) データ・プロセッサ用ループ制御回路
US20110078418A1 (en) Support for Non-Local Returns in Parallel Thread SIMD Engine
JP2620511B2 (ja) データ・プロセッサ
EP1483675B1 (en) Methods and apparatus for multi-processing execution of computer instructions
KR19980018874A (ko) 파이프라인 방식 프로세서 (processor with pipelining-structure)
JPH11272474A (ja) レジスタの複数割当てを利用した演算の処理中に割込み可能な複数実行装置
US20050050300A1 (en) Dataflow graph compression for power reduction in a vector processor
EP0497485A2 (en) Computer for implementing two-operand instructions
JP2002517811A (ja) 複数の回路ブロックにコマンドを配信する方法と装置
US7805592B2 (en) Early resolving instructions
US5590359A (en) Method and apparatus for generating a status word in a pipelined processor
US7047396B1 (en) Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
EP0933703A2 (en) Method and apparatus for processing program loops
US20060168433A1 (en) Method and apparatus for efficient and flexible sequencing of data processing units extending VLIW architecture
US7742544B2 (en) System and method for efficient CABAC clock
US20020083306A1 (en) Digital signal processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080523

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: 20080708

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: 20080806

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees