JP2003525476A - プログラムの命令を実行するための装置及び方法 - Google Patents

プログラムの命令を実行するための装置及び方法

Info

Publication number
JP2003525476A
JP2003525476A JP2000532793A JP2000532793A JP2003525476A JP 2003525476 A JP2003525476 A JP 2003525476A JP 2000532793 A JP2000532793 A JP 2000532793A JP 2000532793 A JP2000532793 A JP 2000532793A JP 2003525476 A JP2003525476 A JP 2003525476A
Authority
JP
Japan
Prior art keywords
instruction
data
instructions
memory
type
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
Application number
JP2000532793A
Other languages
English (en)
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 JP2003525476A publication Critical patent/JP2003525476A/ja
Pending 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

(57)【要約】 本発明は、第1の命令デコーダと、アドレスデコーダと、複数の計算ユニットと、実行ロジックユニットとを有する、プログラムの命令を実行するためのデータ処理装置に関する。データ処理装置の特徴は、前記第1の命令デコーダが、前記装置が、異なる形式の命令の実行を開始する参照命令を実行するかどうかを区別することである。本発明はさらに、データ処理装置のための命令を実行する方法に関し、この方法の特徴は、参照命令をデコーディングすることに基づき、異なる形式の命令を参照命令に含まれた情報に従ってフェッチし、前記異なる形式の命令を、パラレルに実行すべき命令を決定するためにデコーディングするステップが実行されることである。

Description

【発明の詳細な説明】
【0001】 本発明は、請求項1の上位概念部によるプログラムの命令を実行するためのデ
ータ処理装置に関する。本発明は、さらに、請求項8の上位概念部による、デー
タ処理装置のための命令を実行する方法に関する。
【0002】 最近では、DSPプロセッサのための2つの主たるアーキテクチャが存在する
。両アーキテクチャは、処理速度とプログラムメモリ容量との間でトレードオフ
を行い、処理速度又はプログラムメモリ容量がより大きな利益を得る。第1の主
たるアーキテクチャは、レギュラーマシンとも呼ばれ、単一命令がマシンサイク
ル毎に実行されることを意味する。第2のアーキテクチャは、一般的にVLIW
(長大命令語)アーキテクチャと呼ばれる。VLIWアーキテクチャの場合、複
数の命令が1つのマシンサイクル内で実行される。
【0003】 マシンサイクルごとに単一の命令を実行するレギュラーマシンは、比較的小さ
なプログラムデータバスを特徴とする。通常、このようなプログラムデータバス
は32ビット幅である。DSPプロセッサ環境においては、プロセッサの実行ユ
ニットにおける計算ユニットの数は、通常、上に述べた第2のアーキテクチャに
比べて少ない。プログラムデータバス幅と計算ユニットの数とは、プロセッサの
電力消費量に直接に比例する。したがって、レギュラープロセッサアーキテクチ
ャは、通常、他の進歩したアーキテクチャよりも消費する電力が少ない。しかし
ながら、レギュラーアーキテクチャの主たる欠点は、MIPS(毎秒実行される
メガ命令)の数が、上に述べたVLIWアーキテクチャに比べ少ないことである
【0004】 レギュラーマシンは、例えば、米国特許第5163139号明細書、“Instru
ction Preprocessor for Conditionally Combining Short Memory Instructions
into Virtual Long Instructions”に記載されている。このレギュラーマシン
は、2つの計算ユニットと、通常のプログラムデータ幅の主プログラムメモリと
を有している。この特許明細書において提案されているマシンは、さらに、命令
プリプロセッサユニットを有しており、この命令プリプロセッサユニットは、プ
ログラムメモリにおける2つの連続した命令が有効に結合されて、これにより新
たな命令語を形成することができるかどうかをチェックする。この新たな命令語
は、次いで解釈され、マシンの2つの計算ユニットによって実行される。米国特
許第5163139号明細書のマシンは、所定の基準を満たす命令の対のみを結
合することができるという点で制限されている。したがって、マシンは、プログ
ラムコードの開発の際にプログラマを大きく制限する。
【0005】 上に述べたような第2のアーキテクチャ(VLIW)は、命令セットの考え方
に基づいており、この場合、コンパイラが、多数の単純で相互依存しないオペレ
ーションを同じ命令語にまとめる。この形式のアーキテクチャは、もともと、1
983年6月に第10回コンピュータアーキテクチャに関する年次シンポジウム
の議事における“Very Long Instruction Word Architectures and the ELI-512
”においてJ.A.フィッシャによって提案された。VLIWアーキテクチャは、プ
ロセッサにおける多数の計算ユニットと、プログラムメモリから読み取られた命
令を分析する複数のデコーディングユニットとを前提にしている。VLIWアー
キテクチャは、複数のオペレーションがパラレルに実行され、ひいてはプロセッ
サのMIPSパフォーマンスを増大させるという利点を有している。しかしなが
ら、VLIWプロセッサは、より大きなビット幅のプログラムメモリを必要とす
る。このことは、プロセッサアーキテクチャを実現するために必要なチップ面積
及び電力消費に対して負担となる。また、プログラマに必要とされるプログラミ
ングスキルが、VLIWプロセッサのためのコードを記述するために必然的に高
くなる。なぜなら、プロセッサの並列性を考慮することが必要とされるからであ
る。
【0006】 特定のVLIWプロセッサが、米国特許第5450556号明細書、“VLIW
Processor Which Uses Path Information Generated by a Branch Control Uni
t to Inhibit Operations Which Are Not on a Correct Path”に提案されてい
る。この特許は、VLIWプログラムにおけるジャンプ命令を効率的に処理する
ための解決法を提案している。この問題を克服するために、パス表現フィールド
をVLIW命令に付与することが提案されている。このパス表現フィールドは、
プロセッサ内のブランチ制御ユニットによって読み出され、このブランチ制御ユ
ニットは、条件的ブランチオペレーションの速度を高めるために動作する。前記
の全てのVLIWプロセッサアーキテクチャのように、米国特許第545055
6号明細書に提案された構造は、VLIW命令を保存するために比較的大きなプ
ログラムメモリを必要とするので不都合である。このことは、特に程度の小さな
並列性しか許容しない実行ステップの場合に当てはまる。
【0007】 本発明は、高度に並列的なコンピュータアーキテクチャは大きなプログラムメ
モリ空間を必要とするという問題に基づく。したがって、本発明は、高度に並列
的に命令を実行するプロセッサの能力を維持しつつ、必要なプログラムメモリを
低減することを課題とする。
【0008】 前記課題は、請求項1の特徴を有するデータ処理装置により解決される。前記
課題は、請求項8の特徴を有するデータ処理装置のための命令を実行する方法に
よっても解決される。本発明の装置及び本発明の方法の有利な実施は、それぞれ
の従属請求項に記載されている。
【0009】 プログラムの命令を実行するための有利なデータ処理装置は、第1の命令デコ
ーダと、アドレスデコーダと、複数の計算ユニットと、実行ロジックユニットと
を有している。第1の命令デコーダは、第1の形式のプログラム命令を第1のプ
ログラムメモリから連続的に読み出し、前記第1の形式の命令をデコードする。
アドレスデコーダは、データメモリからロードされる又はデータメモリへ戻され
るデータのアドレスを決定する。前記複数の計算ユニットのそれぞれは、データ
に基づきオペレーションを前記第1の命令デコーダの解釈に従って実行し、これ
らのオペレーションの結果を提供する。実行ロジックは前記複数の計算ユニット
にデータを提供し、前記複数の計算ユニットのオペレーションを前記第1の形式
の命令に従い制御する。データ処理装置の特徴は、前記第1の命令デコーダが、
前記装置が参照命令を実行するか否かを区別することである。参照命令は、次い
で、第2の形式の命令の実行を開始する。
【0010】 これにより、本発明のデータ処理装置は、2つの形式のプログラム命令を実行
することができる。有利には、2つの形式の命令は、著しく異なるビット幅を有
しており、前記第1の形式の命令はより短いビット幅を有している。実行すべき
実際の命令に応じて、処理装置は、比較的短いビット幅の命令語を実行するか、
又は比較的大きなビット幅の命令を実行する。これにより、フレキシブルなプロ
グラムメモリの編成が可能となり、ひいては、特定のプログラムの所要メモリ全
体を減じることができる。
【0011】 本発明の装置の有利な実施例は、さらに、第2の命令デコーダを有しており、
この第2の命令デコーダは、前記第2の形式の命令をフェッチする。さらに有利
な実施例においては、前記第2の形式の命令が第2のプログラムメモリに格納さ
れる。したがって、前記第2の命令デコー前記第2の形式の命令をダは、前記第
2のプログラムメモリからフェッチし、引き続き前記第2の形式の命令をデコー
ドする。
【0012】 別個のメモリユニットを前記第1の形式及び前記第2の形式の命令のそれぞれ
に対して設けることにより、頻繁に使用される前記第2の形式の命令を保存し、
これらの命令に容易に前記データ処理装置によってアクセスすることが可能であ
る。有利には、前記第1及び第2のプログラムメモリのそれぞれのビット幅は、
一定の長さに設定される。したがって、有利なデータ処理装置のアーキテクチャ
は、前記第1の形式及び前記第2の形式の命令を効率的に扱うように構成可能で
ある。
【0013】 本発明の装置の有利な実施例は、さらに、前記第2の形式の命令が複数のオペ
レータを有し、これらのオペレータは、オペランドのデータ割当情報及び結果の
データ割当情報を含む。さらに有利には、前記実行ロジックは、前記第2の形式
の命令を解釈するための手段を有している。
【0014】 本発明の特に有利な実施例においては、前記参照命令はアドレス情報を有して
いる。アドレス情報は、第2の形式の命令が実行されるデータに関連しており、
この第2の形式の命令が前記参照命令に参照される。本発明の装置のこの有利な
構成により、前記第2の形式の命令がデコードされる間にデータをフェッチする
ことができる。これにより、本発明の装置のパフォーマンスを著しく増大させる
ことができる。
【0015】 本発明の装置の有利な実施例においては、第1又は第2の形式のいずれかの命
令をパイプライン方式で実行できるように構成されている。この構成は特にオペ
レーションの同時実行を容易にする。
【0016】 データ処理装置のための命令を実行する有利な方法は、第1の形式の命令を第
1のプログラムメモリからフェッチし、前記第1の形式の前記命令を、実行すべ
きオペレーションを決定するために解析し、オペランドをデータメモリ又は前記
データレジスタから、前記第1の形式の前記命令に含まれたオペランドアドレス
情報に従い読み出し、前記オペランドに基づきオペレーションを実行し、前記オ
ペレーションの結果を前記データメモリ又は前記データレジスタへ、前記第1の
形式の前記実行に含まれた結果アドレス情報に従い書き込むステップを有する。
本発明の方法は、それ自体解析されるように所定の情報を含む参照命令を解析す
る場合に、第2の形式の命令を前記参照命令に含まれた情報に基づき読み取り、
パラレルに実行したいオペレーションを決定するために前記第2の形式の前記命
令を解析するステップが行われる、ことを特徴とする。
【0017】 上に述べた、本発明の有利なデータ処理装置に関して既に説明したように、有
利な方法は、メモリ空間のフレキシブルな利用を可能にする。なぜならば、2つ
の形式の命令を使用するからである。特定のパラレルオペレーションを実行する
ために必要な付加的な情報は、別の命令情報(前記第2の形式の命令)を前記第
1の形式の命令において参照することにより得られる。
【0018】 本発明による方法のさらに有利な実施例は、前記参照命令が、実質的に前記参
照命令のデコーディング時に解析されるアドレス情報を有していることを特徴と
する。この特徴により処理速度が著しく増大する。なぜならば、命令に対して必
要とされ、参照命令に参照されるデータが、参照命令のデコーディング時にロー
ドされるからである。
【0019】 本発明の方法のさらに有利な実施例では、参照命令をデコードするステップと
第2の形式の命令をフェッチするステップとが実質的に同時に実行され、この場
合、前記参照命令と前記第2の形式の命令とは互いに関連している。これにより
処理速度をより一層増大することができる。なぜならば、前記第2の形式の命令
を実行するために必要な情報が前記参照命令を解析する時には既に提供されるか
らである。
【0020】 本発明の方法のさらに有利な実施例では、前記オペランドをデータメモリから
読み出すステップと前記第2の形式の命令をデコードするステップとが実質的に
同時に実行され、この場合、読み出されたオペランドは、解析された命令に関連
している。この有利な特徴により処理速度をより一層増大することができる。な
ぜならば、全ての情報が、データ処理装置の計算ユニットに対して利用可能であ
り、前記第2の形式の命令に従いオペレーションを実行できる。
【0021】 本発明を使用することの利点、特徴及び可能性が、本発明の有利な実施例の以
下の記述において説明されている。この記述は、添付の図面を参照して読まれる
べきものである。
【0022】 図1には、本発明によるデータ処理装置の有利な実施例の基本的なアーキテク
チャが示されている。特にデジタル信号処理に適したデータ処理装置は、複数の
オペレーションのパラレルな実行のために構成されており、ひいては、複数の計
算ユニットを有している。有利な実施例では、4つの計算ユニットが設けられて
おり、これらの計算ユニットには61〜64の符号が割り当てられている。各計
算ユニット61〜64にはオペランドデータが実行ロジックユニット7から提供
される。他方で各計算ユニットは、計算の結果を、マルチポートレジスタ5の列
の1つ又は2つ以上のレジスタへ又はデータメモリ3へ、前記計算ユニット61
〜64を前記データメモリ3に接続するデータバスラインを介して伝送する。前
記データバスは、rビットのビット幅を有する。有利な実施例では2つの結果が
、16ビットのデータビット幅を有する前記データメモリへ直接に書き込まれて
よい。つまり、ビット幅rは2×16ビットに等しい。
【0023】 前記各マルチポートレジスタ5のコンテンツが、ビット幅nのバスラインを介
して前記実行ロジックユニット7へ戻される。前記マルチポートレジスタ5のコ
ンテンツは、アドレスデコーダ4にも提供され、これにより前記マルチポートレ
ジスタ5からのデータを前記データメモリ3へ選択的に書き込む。したがって、
マルチポートレジスタ5は前記アドレスデコーダ4へ、やはりnビットのビット
幅を有するバスラインを介して接続されている。有利な実施例においては、各レ
ジスタは16ビットのデータビット幅を有している。さらに、マルチポートレジ
スタ5の列は全部で16個のレジスタを有している。したがって、データ処理装
置の有利な実施例においては、nは16×16ビット=256ビットにセットさ
れている。
【0024】 この種の有利な実施例の構成により、本発明のデータ処理装置は、レジスタ−
メモリアーキテクチャマシン又はメモリ−メモリアーキテクチャマシンとして動
作することができる。一方では、実行ロジックユニット7は前記マルチポートレ
ジスタ5からのみならず前記データメモリ3から直接にデータを受け取る。他方
では、計算ユニット61〜64は前記マルチポートレジスタ5のみならず前記デ
ータメモリにも直接に書き込む。当業者に明らかなように、本発明は、本発明の
範囲を逸脱することなくロード−保存アーキテクチャ(択一的にレジスタ−レジ
スタアーキテクチャとも呼ばれる)においても同様に実施することができる。
【0025】 既に上で説明したように、実行ロジックユニット7は、オペランドデータを、
前記マルチポートレジスタ5からのみならず前記データメモリ3から、oビット
のビット幅を有するバスラインを介して受け取る。前記データメモリ3と前記実
行ロジックユニット7との間のデータバスのビット幅oは、前記データメモリか
らロードされるオペランドの数及び各オペランドのビット幅に比例する。有利な
実施例では、最大で4つのオペランドが前記データメモリ3から前記実行ロジッ
クユニット7へロードされる。各オペランドは、16ビットのビット幅を有し、
ひいては4×16ビット=64ビットのバス幅を形成している。
【0026】 実行ロジックユニット7は、デコードされた命令情報をレギュラー命令デコー
ダ1から受け取る。したがって、実行ロジックユニット7は特定の命令を実行す
るためのオペランドを前記マルチポートレジスタ5及び/又は前記データメモリ
3から受取り、これらのオペランドを、デコードされたレギュラー命令によって
示されたように前記計算ユニット61〜64へ伝送する。実行ロジックユニット
7はさらにデコードされた命令をCLIW(Configurable Length Instruction
Word)命令デコーダ9から受け取るための手段8を有している。デコードされた
CLIW命令が受け取られると、前記実行ロジックユニット7内の前記受取り手
段8が以下のことを保証する。すなわち、実行が、前記レギュラー命令デコーダ
から受け取られた情報に従って行われるのではなく、前記CLIW命令デコーダ
9から受け取られたようなデコードされた命令にのみ従って行われるということ
である。前記受取り手段8は、前記レギュラー命令デコーダ1からの全ての情報
を、前記CLIW命令デコーダ9から受け取られた情報と置き換える。
【0027】 前記レギュラー命令デコーダ1は、コードのラインを、レギュラープログラム
メモリ2から、メモリ内にコード化された命令をデコードするために受け取る。
データ処理装置の連続的なオペレーションのために、レギュラープログラムメモ
リ2はプログラムカウンタ15の出力によってアドレスを与えられる。レギュラ
ー命令デコーダ1は、デコードされた命令情報を前記実行ロジックユニット7へ
伝送し、特定の命令においてコード化されたアドレスを前記アドレスデコーダ4
へ提供する。レギュラー命令デコーダ1はさらに、CLIW命令が次に解析され
るべきであるということを示すために前記CLIW命令デコーダ9に接続されて
いる。
【0028】 アドレスデコーダ4は、前記レギュラー命令デコーダ1からアドレス情報を受
け取る特定の命令にコード化されたアドレスをデコードする。デコードされたア
ドレスは、mビットのビット幅を有するバスラインを介して前記データメモリへ
伝送される。ビット幅mは、アドレスの数と、一回にアドレスすべきアドレスご
とのビットの数とに比例する。有利な実施例では、アドレスデコーダ4は、それ
ぞれ16ビットのビット幅を有する4つのアドレスをデコードし、これにより、
前記アドレスデコーダ4と前記データメモリ3とを接続するバスラインに対し6
4ビットのビット幅mを提供する。前記データメモリ3はさらに、前記レギュラ
ー命令デコーダ1に、前記データメモリ3を指したラインR/Wを介して接続さ
れており、特定化されたアドレスにおけるデータがメモリから読まれるか又はメ
モリへ書き込まれる。
【0029】 前記CLIW命令デコーダ9は、CLIWメモリ10に接続されており、この
CLIWメモリ10には、CLIW命令を表すコードのラインが保存されている
。前記CLIWメモリ10から読まれるべき特定の命令は、前記レギュラー命令
デコーダ1によって、前記レギュラー命令デコーダ1を前記CLIWメモリ10
に接続させたラインPを介して示される。したがって、レギュラー命令デコーダ
1は、前記CLIWメモリ10の特定の保存位置を指し、CLIWメモリに保存
されたCLIW命令が、前記CLIW命令デコーダ9に供給される。
【0030】 本発明の有利な実施例の概略的なオペレーションは以下のように説明すること
ができる。実行ロジックユニット7は、前記レギュラープログラムメモリ2から
連続的に読まれた命令に従い動作する。前記レギュラー命令デコーダ1が特別な
命令をデコードしない限り、前記CLIW命令デコーダ9と前記CLIWメモリ
10とのオペレーションは実用的に抑制される。しかしながら前記レギュラー命
令デコーダ1が特別な命令2(参照命令と呼ぶこともできる)をデコードすると
、前記CLIW命令デコーダ9とCLIWメモリ10との機能が起動される。こ
れにより、実行ロジックユニット7aは次いで、前記レギュラー命令デコーダ1
から受け取られる情報の代わりに前記CLIW命令デコーダ9から受け取られた
情報に従ってのみ動作する。
【0031】 本発明の有利な実施例においては、前記レギュラープログラムメモリ2からの
特別な命令はアドレス情報を含んでおり、このアドレス情報をレギュラー命令デ
コーダ1は前記アドレスデコーダ4へ供給する。データ処理マシンがこのような
特別な命令を実行するために、前記特別な命令からの命令情報と、関連したCL
IW命令からの命令情報とが組み合わされる。
【0032】 図2aは、従来の長大命令語の典型的な構造を示している。図2aの命令語1
4は基本的に4つのセグメントから成っている。第1のセグメントには複数のオ
ペレーションが規定されている。第2のセグメントではオペランドがこれらのオ
ペレーションのそれぞれに割り当てられている。第3のセグメントでは結果がこ
れらのセグメントのそれぞれに割り当てられている。最後に第4のセグメントに
おいては、メモリアドレスが、前記第2及び前記第3のセグメントにおいて割り
当てられたオペランド及び結果のために個々に規定されている。
【0033】 図2bは本発明に関連して使用される命令語の構造を示している。ここには、
kビットの長さを有するレギュラー(短い)命令11が示されている。レギュラ
ー命令11は、オペレーションコード(opコード)を含む命令ヘッダを含んで
おり、このオペレーションコードが命令の形式を規定する。図2bはさらに、参
照命令12の構造をも示しており、この参照命令12もやはりkビットの長さを
有している。特別なopコードは、参照命令12のopコードヘッダに保存され
ており、このopコードは参照命令12を他のレギュラー命令11から区別する
。参照命令12は複数のメモリアドレスをも有しており、これらのメモリアドレ
スに基づき特定の参照命令が実行される。最後に、参照命令はポインタPを有し
ており、このポインタPはCLIW命令を指す。
【0034】 図2bはCLIW命令13の構造をも示している。構造は基本的に図2aのV
LIW命令14のうちの1つと同一であるが、CLIW命令13がいかなるメモ
リアドレスも有していない点が異なる。実際には、特定のCLIW命令のための
アドレスが参照命令12に含まれており、この参照命令12は、ポインタPを介
して特定のCLIW命令13を指す。CLIW命令は1ビットのビット長さを有
するように示されている。
【0035】 レギュラーな命令11と参照命令12とがレギュラープログラムメモリ2に保
存されているのに対し、CLIW命令はCLIWメモリ10に保存されている。
したがって、レギュラープログラムメモリ2とCLIWメモリ10とは、これら
のメモリに保存された命令語の個々のビット長さを備えて形成されている。有利
な実施例ではレギュラー命令11と参照命令12とは48ビットのビット長さを
有している。これに対してCLIW命令13は96ビットのビット長さを有して
いる。レギュラー命令デコーダ1は前記レギュラープログラムメモリ2から命令
を連続的にデコードしている間、前記CLIWメモリ10からの付加的な命令情
報は、前記レギュラー命令デコーダ1が参照命令をデコードしたときに前記実行
ロジックユニット7に供給される。この時点で、CLIW命令デコーダ9からの
デコードされた命令は、前記レギュラー命令デコーダ1によって通常供給される
全ての情報に代わるために、実行ロジックユニット7の受取り手段8へ供給され
る。
【0036】 図3aは、従来技術による、5ステージパイプラインを備えた、プロセッサに
おける通常のVLIW命令の実行を示すテーブルである。図3aのテーブルは、
命令フェッチ、命令デコード、オペランド読取り、実行、オペランド書込みのス
テップを示している。
【0037】 図3bは、本発明による、プログラムのパイプライン方式の実行を示すテーブ
ルである。レギュラープログラム命令を処理する点については、オペレーション
のシーケンスは図3aのテーブルに示したシーケンスと同じである。しかしなが
ら、参照命令が読み取られた場合、2つの付加的なステップが挿入される。参照
命令としてデコードされるレギュラー命令をデコードする時点で、参照命令に参
照されるCLIW命令が読み取られる。例えば、マシンサイクル2からマシンサ
イクル6までの“命令デコード及びCLIW読取り”というラインヘッダを有す
るラインが参照される。また、オペランドがメモリから読み取られた時点で、前
のマシンサイクルにおいて読み取られたCLIW命令がデコードされる。このこ
とが可能なのは、参照命令12が、必要とされるオペランドを読むための全ての
アドレス情報を含んでいるからである。参照命令12は特定のCLIW命令に対
するポインタを含んでおり、この特定のCLIW命令はフェッチ及びデコードさ
れ、読み取るべきデータを用いて実行される。図3bに示したテーブルの“オペ
ランド読取り及びCLIWデコード”というラインヘッダを有するラインにおけ
るマシンサイクル3から7までが参照される。特定の命令に対してパイプライン
式に行われるオペレーションのシーケンスは、矢印によって示したようなテーブ
ルにおける対角線をたどる。
【0038】 多数の実行ユニットをパラレルに1つのVLIW命令によって制御する従来の
プロセッサは、通常、データ処理装置のパラレルな実行の最適な利用のために大
きなプログラムメモリ空間を必要とする。本発明は、長い命令の使用を、極めて
時間のかかるアルゴリズムの部分に、所謂インナループに制限する。したがって
、頻繁に実行される命令は高度にパラレルな形式で実行されるが、パラレルに実
行できない命令のためのプログラムコードのための所要のメモリ空間を著しく減
じる。従来技術のVLIW命令のコードは、各実行ステップのためにオペレーシ
ョンコードと、オペランド割当と、出力割当と、メモリアドレスとを決定する。
このような様々な構成は、各VLIW命令の大きなビット幅を生ぜしめる。VL
IW命令は各実行ステップに対する完全符号化フレキシビリティを提供し、ひい
ては常に最大の並列性をサポートするが、プログラムコードは、特に完全にパラ
レルなオペレーションを行わない実行ステップに対しては、大容量のプログラム
メモリを消費する。
【0039】 デジタル信号プロセッサのための典型的なプログラムは、一般的に、インナル
ープから成っており、このインナループにおいて、いくつかの命令が極めて頻繁
に繰り返される。インナループにおける命令は、デジタル信号プロセッサの最大
の並列性によってサポートされるべきである。なぜならば、インナループにおけ
る命令は、所要のラン時間を著しく減じることができるからである。
【0040】 本発明は、構成可能長さ命令語(configurable length instruction words(
CLIW))と組み合わされた短い命令を使用することによってこの問題を解決
した。すなわち、本発明は、インナループの実行効率と、これらのインナループ
の外部のプログラムコードのための制限されたプログラム空間を最大限にすると
いう利点を提供する。
【0041】 インナループの外部のレギュラー命令は、連続的に実行される。レギュラー命
令は、実行ユニットのある頻繁なコネクション及びオペレーション並びに必要な
オペランドのためだけのものである。全てのレギュラー命令はレギュラープログ
ラムメモリから直接にフェッチされる。さらに、CLIW命令は専用のCLIW
メモリ10に保存されている。特別な参照命令がCLIW命令の実行を開始する
ために使用される。参照命令はCLIW命令をCLIWメモリ10からロードす
る。読み取りたいCLIW命令のアドレスPは参照命令によって規定される。
【0042】 CLIW命令13は、全ての可能な形式のオペレーション、オペランドコネク
ション及び出力コネクションを規定する。参照命令はオペレーションのための全
ての所要のメモリアドレスを含んでおり、このオペレーションは、オペレーショ
ンに関連したCLIW命令に規定されている。すなわち、参照命令は、関連した
CLIW命令と相俟って、従来のVLIW命令が必要とする全ての情報を有して
いる。
【0043】 レギュラープログラム命令(ひいては参照命令)のビット幅は、有利にはCL
IW命令のビット幅よりも著しく小さくなるように形成されているので、VLI
W命令のみを用いるよりも著しくコンパクトなプログラムコードを書くことが可
能である。
【0044】 同じCLIW命令の各実行のためのプログラムコードは、別のレギュラー(短
い)参照命令12を含んでいる。通常、(例えばマトリックスオペレーションの
実行のための)パラレルオペレーション及び結合の形式はCLIW命令のセット
内では変化しないので、参照命令におけるメモリアドレスを変化させるだけでC
LIWのためのプログラム空間を保護することが可能である。
【0045】 したがって、特定のCLIW命令13への参照とは無関係に参照命令12内の
オペランドのメモリアドレスを特定することが有利である。これにより、同じC
LIW命令で種々異なるメモリオペランドを使用できるだけでなく、パイプライ
ン式実行を使用する場合にプロセッサ内の命令フロー実行を加速することができ
る。
【0046】 インナループにおける所要のCLIW命令の数は実際のプログラムに依存する
。CLIWメモリにおける決まった数の使用可能なCLIW命令を増大する可能
性が存在する。初期化の後、CLIWメモリは参照命令を呼び戻すことによって
ダイナミックに再構築することができる。CLIW命令の異なるパケットを、ア
ルゴリズムの種々異なる部分において使用することができる。この特徴は、ラン
時間にCLIWメモリパケットをリロードすることにより可能となる。
【0047】 CLIWメモリのサイズはユーザが決定することができる。通常CLIWメモ
リのサイズはプログラムメモリよりも著しく小さい。常にCLIWメモリの一定
のセットを含むCLIWメモリの部分は、読出し専用メモリ(ROM)として実
現することができる。ROMに符号化されたCLIW命令は、依然として、種々
異なるメモリアドレスにおけるデータと一緒に呼び出すことができる。なぜなら
ば、アドレス情報が参照命令に含まれているからである。
【図面の簡単な説明】
【図1】 本発明による有利なデータ処理装置の回路図を示している。
【図2a】 従来技術において使用されるような長大命令語の構造例を示している。
【図2b】 本発明の有利な実施例において使用されるような2つの異なる形式の命令の構
造を示している。
【図3a】 従来のデータ処理装置におけるパイプライン式命令のシーケンスを示すテーブ
ルである。
【図3b】 本発明の有利な実施例による命令のシーケンスを示すテーブルである。
【符号の説明】
1 命令デコーダ、 2 プログラムメモリ、 3 データメモリ、 4 ア
ドレスデコーダ、 5 レジスタ、 61,62,63,64 計算ユニット、
7 実行ロジックユニット、 8 受取り手段、 9 CLIW命令デコーダ
、 10 CLIWメモリ、 11 レギュラー命令、 12 参照命令、 1
3 CLIW命令、 14 VLIW命令
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成11年11月15日(1999.11.15)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アナート ヘルシュコ イスラエル国 アゾール ハシクマ スト リート 3 (72)発明者 ハイム グラノット イスラエル国 アゾール ハシクマ スト リート 3 (72)発明者 エラン ワインガルテン イスラエル国 テル ハショマー ドクタ ー エリアフ ストリート 77 (72)発明者 ロベルト クヌート ドイツ連邦共和国 ミュンヘン ヴェッデ ィゲンシュトラーセ 7 (72)発明者 アムノン ロム イスラエル国 アゾール ハシクマ スト リート 3 (72)発明者 メニー ヤンニ イスラエル国 アゾール ハシクマ スト リート 3 (72)発明者 ゲオルギー シェンデロヴィッチ イスラエル国 アゾール ハシクマ スト リート 3 (72)発明者 エリオット コーヘン イスラエル国 ラーナナ ランバン スト リート 38 Fターム(参考) 5B013 AA15 DD00 5B033 BA02 DC08

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令から成るプログラムの命令を実行するためのデー
    タ処理装置において、該装置が: 第1の形式のプログラム命令(11)を第1のプログラムメモリ(2)から連
    続的にフェッチするための及び前記第1の形式の命令をデコードするための第1
    の命令デコーダ(1)と、 データメモリ(3)からロードすべき又は該データメモリに書き込むべきデー
    タのアドレスを決定するためのアドレスデコーダ(4)と、 オペレーションをデータに基づき、前記第1の命令デコーダ(7)の解釈に従
    い実行するための及びこれらのオペレーションの結果を提供するための、複数の
    計算ユニット(61,62,63,64)と、 前記複数の計算ユニット(61,62,63,64)にデータを提供するため
    の及び前記複数の計算ユニット(61,62,63,64)のオペレーションを
    前記第1の形式の命令(11)に従って制御するための実行ロジックユニット(
    7)とを有している形式のものにおいて、 前記第1の命令デコーダ(1)が、前記装置が第2の形式の命令(13)の実
    行を開始させる参照命令(12)を実行するかどうかを決定するようになってい
    ることを特徴とする、複数の命令から成るプログラムの命令を実行するためのデ
    ータ処理装置。
  2. 【請求項2】 前記第2の形式の命令(13)をフェッチしかつ前記第2の
    形式の命令(13)をデコードするための第2の命令デコーダ(9)が設けられ
    ている、請求項1記載の装置。
  3. 【請求項3】 前記第2の形式の命令(13)が、オペランドのデータ割当
    情報及び結果のデータ割当情報を含む複数のオペレータから成っている、請求項
    2又は3記載の装置。
  4. 【請求項4】 前記実行ロジックユニット(7)が、前記第2の形式の命令
    (13)を解釈するための手段(8)から成っている、請求項1から3までのい
    ずれか1項記載の装置。
  5. 【請求項5】 前記参照命令(12)が、前記第2の形式の命令(13)を
    実行するデータのアドレス情報を含んでいる、請求項1から4までのいずれか1
    項記載の装置。
  6. 【請求項6】 前記装置が、第1又は第2の形式のいずれかの命令(11,
    12;13)をパイプライン方式で実行するように形成されている、請求項1か
    ら5までのいずれか1項記載の装置。
  7. 【請求項7】 前記第2の形式の命令(13)が第2のプログラムメモリ(
    10)に保存されている、請求項2から6までのいずれか1項記載の装置。
  8. 【請求項8】 パラレルに動作することができる複数の計算ユニット(61
    ,62,63,...,6n)とデータレジスタ(5)とを有するデータ処理装
    置のための命令を実行する方法において、該方法が、 第1の形式の命令(11)を第1のプログラムメモリ(2)からフェッチし(
    IF1,IF2,...,IF5)、 前記第1の形式の命令(11)を、実行すべきオペレーションを決定するため
    にデコーディングし(ID1,ID2,...,ID5)、 オペランドをデータメモリ(3)又は前記データレジスタ(5)から読み出し
    (OR1,OR2,...,OR5)、 オペレーションを前記オペランドに基づき実行し(E1,E2,...,E5
    )、 前記オペレーションの結果を前記データメモリ(3)又は前記データレジスタ
    (5)に書き込む(OW1,OW2,...,OW5) ステップを有する方法において、 それ自体がデコードされるための所定の情報を含む参照命令(12)のデコー
    ディングに基づき、 第2の形式の命令(13)を前記参照命令(12)に含まれた情報に従いフェ
    ッチし(CF1,CF2,...CF5)、 前記第2の形式の命令(12)を、パラレルに実行すべきオペレーションを決
    定するためにデコーディングする ステップが行われることを特徴とする、パラレルに動作することができる複数の
    計算ユニット(61,62,63,...,6n)を有するデータ処理装置のた
    めの命令を実行する方法。
  9. 【請求項9】 前記参照命令(12)が、オペランドアドレスと結果アドレ
    スとを含むアドレス情報を含んでおり、該情報が、実質的に前記参照命令(12
    )のデコーディングの時にデコードされる、請求項8記載の方法。
  10. 【請求項10】 参照命令(12)をデコーディングする前記ステップと、
    特定の参照命令(12)に関連した前記第2の形式の命令(13)をフェッチす
    る前記ステップとが、実質的に同時に実行される、請求項8又は9記載の方法。
  11. 【請求項11】 オペランドをデータメモリ(3)から読み出す前記ステッ
    プと、前記オペランドに関連した前記第2の形式の命令(13)をデコーディン
    グする前記ステップとが、実質的に同時に実行される、請求項8から10までの
    いずれか1項記載の方法。
  12. 【請求項12】 データ処理装置によってパイプライン方式で実行される、
    請求項8から11までのいずれか1項記載の方法。
JP2000532793A 1998-02-19 1999-02-04 プログラムの命令を実行するための装置及び方法 Pending JP2003525476A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP98102925A EP0942359B1 (en) 1998-02-19 1998-02-19 An apparatus for executing instructions of a program
EP98102925.9 1998-02-19
PCT/EP1999/000849 WO1999042922A1 (en) 1998-02-19 1999-02-04 An apparatus for and a method of executing instructions of a program

Publications (1)

Publication Number Publication Date
JP2003525476A true JP2003525476A (ja) 2003-08-26

Family

ID=8231450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000532793A Pending JP2003525476A (ja) 1998-02-19 1999-02-04 プログラムの命令を実行するための装置及び方法

Country Status (5)

Country Link
EP (1) EP0942359B1 (ja)
JP (1) JP2003525476A (ja)
CN (1) CN1114857C (ja)
IL (1) IL136246A0 (ja)
WO (1) WO1999042922A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1050798A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Decoding instructions
JP2003529151A (ja) * 2000-03-27 2003-09-30 インフィネオン テクノロギーズ アーゲー 構成可能な長命令語(cliw)を使用するプロセッサにユーザ定義の実行ユニットを追加するための方法と装置
US6959378B2 (en) 2000-11-06 2005-10-25 Broadcom Corporation Reconfigurable processing system and method
JP3754418B2 (ja) * 2000-11-27 2006-03-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多くのオペランドを扱う命令を有するデータ処理装置
US7529912B2 (en) 2002-02-12 2009-05-05 Via Technologies, Inc. Apparatus and method for instruction-level specification of floating point format
US7181596B2 (en) * 2002-02-12 2007-02-20 Ip-First, Llc Apparatus and method for extending a microprocessor instruction set
US7328328B2 (en) 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
US7315921B2 (en) 2002-02-19 2008-01-01 Ip-First, Llc Apparatus and method for selective memory attribute control
US7546446B2 (en) 2002-03-08 2009-06-09 Ip-First, Llc Selective interrupt suppression
US7395412B2 (en) 2002-03-08 2008-07-01 Ip-First, Llc Apparatus and method for extending data modes in a microprocessor
US7302551B2 (en) * 2002-04-02 2007-11-27 Ip-First, Llc Suppression of store checking
US7373483B2 (en) * 2002-04-02 2008-05-13 Ip-First, Llc Mechanism for extending the number of registers in a microprocessor
US7185180B2 (en) 2002-04-02 2007-02-27 Ip-First, Llc Apparatus and method for selective control of condition code write back
US7155598B2 (en) * 2002-04-02 2006-12-26 Ip-First, Llc Apparatus and method for conditional instruction execution
US7380103B2 (en) * 2002-04-02 2008-05-27 Ip-First, Llc Apparatus and method for selective control of results write back
US7380109B2 (en) 2002-04-15 2008-05-27 Ip-First, Llc Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor
CN100378653C (zh) * 2005-01-20 2008-04-02 西安电子科技大学 双算术逻辑单元精简指令集8位微控制器
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2245284C3 (de) * 1972-09-15 1975-11-13 Ibm Deutschland Gmbh, 7000 Stuttgart Datenverarbeitungsanlage
US5649135A (en) * 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions

Also Published As

Publication number Publication date
CN1291306A (zh) 2001-04-11
IL136246A0 (en) 2001-05-20
EP0942359B1 (en) 2012-07-04
EP0942359A1 (en) 1999-09-15
WO1999042922A1 (en) 1999-08-26
CN1114857C (zh) 2003-07-16

Similar Documents

Publication Publication Date Title
US5233694A (en) Pipelined data processor capable of performing instruction fetch stages of a plurality of instructions simultaneously
JP2550213B2 (ja) 並列処理装置および並列処理方法
US5958048A (en) Architectural support for software pipelining of nested loops
JP2003525476A (ja) プログラムの命令を実行するための装置及び方法
EP0427245B1 (en) Data processor capable of simultaneously executing two instructions
KR100266424B1 (ko) 롬(rom)용량을 저감한 데이타 프로세서
US5131086A (en) Method and system for executing pipelined three operand construct
KR100254007B1 (ko) 2개의 명령을 동시에 실행할 수 있는 데이타프로세서
JP2002536738A (ja) 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
JP3781519B2 (ja) プロセッサの命令制御機構
US20010016899A1 (en) Data-processing device
US7096344B2 (en) Processor for improving instruction utilization using multiple parallel processors and computer system equipped with the processor
US5768553A (en) Microprocessor using an instruction field to define DSP instructions
JP2682217B2 (ja) マイクロプロセッサ
US7356673B2 (en) System and method including distributed instruction buffers for storing frequently executed instructions in predecoded form
US6925548B2 (en) Data processor assigning the same operation code to multiple operations
JPH10214188A (ja) プロセッサの命令供給方法及び装置
US5072372A (en) Indirect literal expansion for computer instruction sets
JP2848727B2 (ja) 並列演算処理装置
JPH0524537B2 (ja)
COLEMAN FIELD AND BACKGROUND OF THE INVENTION
JPH0425937A (ja) 情報処理装置
JPH04162134A (ja) シングルチップ・マイクロコンピュータ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050218