JP2005332361A - プログラム命令圧縮装置および方法 - Google Patents

プログラム命令圧縮装置および方法 Download PDF

Info

Publication number
JP2005332361A
JP2005332361A JP2004343921A JP2004343921A JP2005332361A JP 2005332361 A JP2005332361 A JP 2005332361A JP 2004343921 A JP2004343921 A JP 2004343921A JP 2004343921 A JP2004343921 A JP 2004343921A JP 2005332361 A JP2005332361 A JP 2005332361A
Authority
JP
Japan
Prior art keywords
instruction
program
data path
program instructions
data processing
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
JP2004343921A
Other languages
English (en)
Other versions
JP2005332361A5 (ja
Inventor
Jan Guffens
グーフェンス ヤン
Ludwig Callewaert
カレワート ルートヴィヒ
Nieuwenhove Koenraad Van
ファン ニーウヴェンホーフェ コーエンラート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2005332361A publication Critical patent/JP2005332361A/ja
Publication of JP2005332361A5 publication Critical patent/JP2005332361A5/ja
Pending legal-status Critical Current

Links

Images

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/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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/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

【課題】異なるデータ処理オペレーションを独立して並列に実行する複数のデータ経路構成要素2、4、6、8を含むプロセッサを開示する。
【解決手段】プログラム命令18が与えられると、その命令を復号してデータ経路構成要素を制御する制御信号を発生する。複数の命令セットは、異なる命令セットの異なる命令の中で異なって符号化される同一データ経路構成要素が実行する同一データ処理オペレーションによってサポートされる。この動作により、並列処理を期待できない場合はコードが圧縮され、並列動作が可能な場合は、完全な並列動作が指定される。
【選択図】図4

Description

本発明は、データ処理の分野に関する。より詳細に説明すると、例えば、いわゆる超長命令語(very long instruction word:VLIW)プロセッサと、データ処理システムのプログラムコードのサイズを減らす手段のように、この発明は、プログラム命令によって指定されたデータ処理オペレーションを独立して並列に実行するように動作可能な複数のデータ経路構成要素を有するデータ処理システムに関する。
テキサス・インスツルメンツで製造される既存のTMS3206xxプロセッサは高速動作用(例えば1GHz)に設計されており、簡単な命令解読器を備えている。このプロセッサは32ビットの命令を使用する。命令は、8個の32ビット命令を含む256ビットのフェッチ・パケットでメモリからロードされる。各命令は、フェッチ・パケットの中の次の命令を同一クロックサイクルで実行することができるかどうかを示すビット(Pビット)を含む。同一クロックサイクルで実行する命令は実行パケットと呼ばれる。実行パケットはフェッチ・パケットの境界と交差することができないので、フェッチ・パケットの中の最後の命令のPビットは消去されなければならない。プロセッサ内部の機能ユニットが実行パケットの中の命令によってアドレス指定されない場合、プロセッサは、Nopのようなデフォルト・オペレーションを実行する。
StarCoreによって製造されるSC140プロセッサは、16ビット語から命令を構築する。大部分の命令は16ビット命令語で構成される。いくつかの命令は、2個の命令語を必要とする。命令プレフィックス語(16ビットまたは32ビット)を指定することができる。このプレフィックスは、アドレス指定可能なレジスタフィールドの数を拡張するために使用され、条件付きで命令を実行する(保護実行)ため、または1クロックサイクルで実行される命令の数を指定するために使用される。プレフィックス語が使用されていなければ、上に考察したTMS320C6xxプロセッサと同様、それらの命令は命令の中のビットを使用して相互にリンクされる。
SC140プロセッサの内部における命令は、128ビット単位(8×16ビット語)でメモリからフェッチされる。1クロックサイクルで最大6機能ユニットを制御することができる。1クロックサイクルで実行するこれらの命令は、128ビットの境界にまたがることができる。命令アラインメント回路は、命令がこのような境界にまたがる場合、必要なアラインメント動作を実行する。
ARM社によって製造されたThumbにより動作可能になるスカラプロセッサは、32ビットのARMコードまたは16ビットのThumbコードのいずれかを実行することができる。Thumb命令セットは、ARM命令セットの中で指定できるすべての命令を提供していない。
TMS320C6xxおよびSC140プロセッサのようなVLIWプロセッサは、データ処理オペレーションを高度に並列実行させる場合に有利である。しかし、実行する処理動作の複雑性が確実に増加するのに伴い、これらのVLIWプロセッサに関連するプログラムメモリ記憶装置の要求条件は非常に不利になる。
一態様から見ると、本発明は、データを処理する装置を提供しており、この装置は、
プログラム命令の中の1つまたは複数の命令フィールドを復号して少なくともいくつかの制御信号を発生するように動作可能な命令復号器と、
前記制御信号に応答し、前記プログラム命令によって指定されたそれぞれのデータ処理オペレーションを独立して並列に実行する複数のデータ経路構成要素であって、前記命令復号器によって復号された少なくともいくつかのプログラム命令は、それぞれのデータ経路構成要素の制御命令が独立に指定されることを可能にする前記複数のデータ経路構成要素と、
を含んでおり、
前記命令復号器は、データ経路構成要素によって実行される所与のデータ処理オペレーションが、異なるプログラム命令の中で異なって符号化された命令フィールドを使用して指定されうるように動作可能である。
本手法は、実際に実行すべき多数のアプリケーションを処理する場合、VLIWプロセッサがサポートする超長命令によって与えられる高水準の並列処理(parallelism)が活用されていないことを認識している。一例として、ピクセルの値のような大量の独立なデータ値にデジタル信号処理形式の動作を実行するプログラムループの中では高度な並列処理を得ることができるが、並列処理の可能性が期待できない制御コードと他形式のコードとを実行する場合には、かなりの時間が消費されるであろう。これら異なる型式の実際の動作を認識しているので、本手法は複数の命令符号化を提供し、異なる動作形式(different operational regimes)において同じデータ処理オペレーションを指定する異なる命令の符号化を目標とすることができる。一例として制御フロー形式の動作の中では、唯一のデータ経路構成要素がいかなる所定の時間にもアクティブであり、1つのデータ経路構成要素だけをアクティブにする圧縮された小型のプログラム命令を使用することができることが非常に一般的であることは明らかであろう。データ処理が実行されるすべての他のデータ経路構成要素がデータ処理オペレーションを示していない場合、プログラム命令はなんらかの指定されたデフォルト・オペレーションをとると仮定することによって、プログラムメモリのかなりのスペースを節約することができる。反対に、コンピュータプログラムの一部分が高度な並列処理を活用することができる状態になった場合、異なるプログラム命令の符号化を使用し、より広範なデータ経路構成要素を同時に制御して、これらのデータ経路構成要素の各素子上でより広範なデータ処理オペレーションを指定することを可能にすることができる。いくつかの中間長の符号化は、或るデータ経路構成要素の一般に使用する動作(例えば、加算など)を提供することが可能であるが、あまり一般的に使用されない動作(例えば、ビット方向反転)を提供することは不可能である。
独立したデータ経路構成要素に対して異なって符号化された各命令フィールドは、いろいろと異なる方法で符号化を変えることができ、符号化を変更してコードの圧縮を改善する特に有用な方法は、命令フィールドと命令フィールドのプログラム命令内部のビット位置とに対して使用されるビット長を変えることである。
好適実施例におけるプログラム命令は複数の命令セットに分割され、命令復号器は、プログラム命令の中のフィールドを識別する命令セットに応答して、そのプログラム命令の中のどのビットが、異なるデータ経路構成要素に対するそれぞれの命令フィールドに対応するか決定する。このように、高度な並列動作に適した大きな命令を持つ完全な機能を備えた命令セット、いかなる時にも(at any one time)高度に非並列な動作に適した1つのデータ経路構成要素だけが動作することができる高度に圧縮された命令セット、およびその形式の中では一般に遭遇する並列処理がサポートされるが、完全な水準の潜在的な並列処理ではサポートされない中間命令セットのような異なる動作形式に適した複数の異なる命令セットが提供される。
命令セット復号器は、システム内で可変プログラム命令長を扱うため、命令セット識別子(identifier)に応答して、プログラム命令長を決定するという利点がある。
異なって符号化された命令フィールドは、それぞれのデータ経路構成要素によって実行されうる異なるセットのデータ処理オペレーションを表す役目をする。望ましくは、これらのセットのいくつかは他のセットのサブセットであり、指定することが望まれる最も一般的に発生する処理動作を含む。
プログラム命令の圧縮を改善する他の好適な実施例は、レジスタ識別子の範囲、プログラム分岐のジャンプアドレスの範囲縮小、機能セットの縮小(例えば、サポート頻度の小さい動作形式)または即値(immediate values)の範囲縮小のような小型命令の中のオペランドの縮小をサポートすることである。
命令フィールドは、唯一の可能なデータ経路構成要素に関連することができる。代替方法として改善された圧縮は、命令セット識別子自体がどのデータ経路構成要素を制御するか指定する場合、いくつかの状況で達成されうる。このことは、処理動作の特定の状況に容易に適合しうるツリー構造の符号化/復号化の形式を効率的に発生する。
異なるプログラム命令を使用すると、異なる数のデータ経路構成要素がアクティブであるか、非アクティブであることは理解されるであろう。所与のプログラム命令によって特定の処理動作が指定されないデータ経路構成要素は、Nopのようなデフォルト・オペレーション、または、前に始まったマルチサイクル・オペレーションのような何らかのペンディング動作を実行する。
メモリの中にプログラムを格納できる能率は実施例の中で改善されており、これらの実施例におけるプログラム命令は、複数のプログラム命令の少なくともいくつかの部分を含む固定長のメモリアクセスで可読であり、回転およびアドレス増分機構は、命令復号器に供給するためのプログラム命令を揃えるために使用される。要求されるアラインメントの程度は、命令セット識別子自体が命令長を指定または暗黙指定する命令セット識別子から決定されうる。その上、消費されたプログラム命令のいくつかの部分を元に戻すために読み出すことを必要とするこれらのバンクだけが付勢されて電力を節約するように、それらのバンクにプログラムが分散する、異なるバンクにメモリを分割することが可能である。
他の態様から見ると、本発明はデータを処理する方法を提供しており、この方法は、
プログラム命令の中の1つまたは複数の命令フィールドを復号して少なくともいくつかの制御信号を発生するステップと、
前記制御信号に応答して複数のデータ経路構成要素を制御し、前記プログラム命令によって指定されたそれぞれのデータ処理オペレーションを並列に独立して実行し、少なくともいくつかのプログラム命令はそれぞれのデータ経路構成要素に対する制御信号が独立して指定されることを可能にするステップと、
を含み、
データ経路構成要素によって実行される所与のデータ処理オペレーションは、異なるプログラム命令の中で異なって符号化された命令フィールドを使用して指定されうる。
さらなる態様から見ると、本発明は、プログラム命令の中の1つまたは複数の命令フィールドを復号して少なくともいくつかの制御信号と、前記制御信号に応答して前記プログラム命令によって指定されたそれぞれのデータ処理オペレーションを並列に独立して実行するように動作可能なプログラム復号器を有するデータ処理装置を制御するコンピュータプログラム製品を提供しており、このコンピュータプログラム製品は、
第1の符号化がデータ経路構成要素によって実行される所与のデータ処理オペレーションを指定する、符号化された命令フィールドを含む少なくとも1つのプログラム命令と、
前記第1の符号化とは異なる第2の符号化が前記データ経路構成要素によって実行される前記所与のデータ処理オペレーションを指定する、異なる符号化がされる命令フィールドを含む少なくとも1つの異なるプログラム命令と、
を含む。
補完的な態様から見ると、本手法は、上に説明した機能に従ってコンピュータプログラムを生成するコンパイラプログラムであると考えられる。コンパイラは、効率的に復習の命令セットを有し、その中からコードをコンパイルしようとしているデータ処理オペレーションを実行するプログラム命令を選択することができる。
この発明の上記ほかの目的、機能および利点は、添付の図とともに読まれる以下の例示的な実施例の詳細な説明から明らかになるであろう。
図1は、例えば、加算器、乗算器、シフタ、論理演算回路(alu)、浮動小数点演算回路などの機能ユニットでありうる複数の独立に制御可能なデータ経路構成要素2、4、6、8を含むVLIWプロセッサの一部を示している。データ経路構成要素2、4、6、8は、制御可能なバス・ネットワーク14を介してレジスタファイル10、12に接続される。制御信号レジスタ16の中に格納される制御信号は、データ経路構成要素2、4、6、8、レジスタファイル10、12および制御可能なバス・ネットワーク14を構成して、所定のプロセッサクロックサイクルで所望のデータ処理オペレーション、つまりオペレーション・セットを並列に実行する。普通、これらの回路要素のすべてを制御するためには多数の制御信号が必要であるから、制御信号レジスタ16の幅は比較的広いことが判るであろう。命令メモリの中にプログラムとして制御信号を単純に格納することは可能であるが、プログラムメモリ記憶装置の要求条件の観点からは非常に非能率である。図1において制御信号レジスタ16の中の制御信号は、命令復号器から取り出される。後で説明するように、この命令復号器は、図1に示す回路要素を制御するために必要な制御信号のフルセット(full set)を発生するため簡潔な形で所望の挙動を表すプログラム命令を解凍する。
図2は、異なるプログラム命令で実行されうる異なる独立可能のデータ処理オペレーションを模式的に示す図である。この図から判るように、図2の命令サイクルの第1のセクションにおいては、データの依存性を介して、または同じ資源を要求することによって、各プログラム命令が前の命令が完了することに依存しているため、並列処理は一般に不可能である。図2の中間セクションにおけるコードの一部は、ピクセルや他の独立な信号値の並列処理のように、高度に並列動作が可能な状況になっている。この動作形式の場合、完全な幅のVLIW命令語によって指定されうるデータ処理オペレーションの完全なフレキシビリティと複雑性は、望ましいとともに利点がある。図2の最後の部分では、システムは並列動作を活用できない動作形式に再び戻っている。
図3は、本手法の一例による汎用プログラム命令を模式的に示している。このプログラム命令18は、命令識別子フィールド20と、VLIWコントローラが使用したい1つまたは複数のデータ経路構成要素に関する命令フィールドとともに、VLIWコントローラ自体の制御を指定するビットを含むセクション22を含む。この代表的な実施例においてプログラム命令を格納するメモリシステムは、Mビットが並列にアクセス可能な、Nビットのブロックでアクセス可能である。したがって、どのプログラム命令18もその最大幅はM×Nビットである。実際に、プログラム命令の長さをNビットの倍数に制限して、これらの命令の長さが、すべてM×Nビット以下にすることは便利である。
図4は、それぞれ異なる命令セットからの4個の異なるプログラム命令を模式的に示しており、これらの異なる命令セットのそれぞれは、異なる符号化を使用して実行される所定のデータ経路構成要素の動作を指定することができる命令フィールドを含む。プログラム命令24における命令セットは、1個のプログラム命令によって1個だけのデータ経路構成要素がアドレス指定されうる命令セットである。このプログラム命令は、その1つの命令フィールドの中に識別子を含み、その識別子のデータ経路構成要素は、データ経路構成要素を制御するために必要なオペコードとオペランドとともにアドレス指定されている。残りのデータ経路構成要素は、非アクティブであってNopを実行するか、前に開始したマルチサイクルの処理動作や何らかの前に確定した状態を継続するなど、ある種のデフォルト・オペレーションを実行するかのいずれかである。
第2のプログラム命令26の長さは他に比較して長く、1命令の中で複数のデータ経路構成要素をアドレス指定することができる。乗算器に関連する命令フィールド28のビット位置とビット長は、プログラム命令24と他の命令の中の命令フィールドと比較して変化する。命令フィールドの長さは他に比較して短いので、乗算器が使用できるデータ処理オペレーションのサブセットだけがこの短縮された命令フィールドの中で指定されうる。命令フィールド長のこの短縮を容易にするためには、レジスタ指定子(specifier)の範囲を小さくするとともに即値の範囲を小さくしてもよいし、またはそのいずれかを小さくしてもよい。より一般的に要求される命令は、このサブセットでサポートされるように選択される。他の代表的な命令において、更によい圧縮を可能にする制約のためにとくに好適な形式の変数は、ジャンプ識別子の範囲である。何故ならば、全アドレス空間のジャンプはほとんど無く、プログラム命令の流れの中では比較的短いジャンプが存在するのがより一般的だからである。この第2のプログラム命令26の中の命令フィールド28は、乗算器に専用の命令フィールドではなく、関連のある命令フィールドによって乗算器またはシフタのいずれかがアドレス指定されていることを指定するビットを含む。
第3のプログラム命令30における専用命令フィールド32は、乗算器をアドレス指定するだけに用意されている。この専用命令フィールド32は、命令フィールド28よりも小さく異なるビット位置のところにある。
最後に、第4に示すプログラム命令34は、VLIWコントローラ自体の制御パラメータを指定するVLIW制御フィールドを含むとともに、個別の命令フィールドに対するデータ経路構成要素すべてのアドレスを完全に指定する。
図5は、プログラム命令の中の入力命令フィールドを復号するために使用されうる復号ツリーを模式的に示す図である。各ノードにおける復号は、アドレス指定されている明確に指定されたデータ経路構成要素に分岐するか、何らかのさらなる分岐が実行されるさらなるノードに分岐するかのいずれかである。最終的には、復号ツリーが横断されるのに伴い、指定されたデータ経路構成要素のところで分岐は終了する。
図6は、プログラム命令を復号/解凍して要求される制御信号を形成する役目をするプロセッサの中の1つのデータ経路構成要素のための命令復号器のスライスを模式的に示している。命令セット識別子とフィールド識別番号(field identification)が2つの各ルックアップテーブル36、38に供給されると、次にルックアップテーブルは、マルチプレクサを制御する信号を発生する。復号器の中のマルチプレクサ42を含むブロックは、命令エクストラクタ(instruction extractor)の役目をして、関連のあるプログラム命令の中から適切な命令フィールドを抽出する。所与のデータ経路構成要素に対する命令フィールドのビット位置が異なる符号化と異なる命令セットに対して変化するので、マルチプレクサ40、42がプログラム命令語の全スパンから所望の命令フィールドを抽出することを選択することは理解されるであろう。
命令復号器の第2の部分は、選択した命令フィールドをとり、必要に応じてそれを展開し、そのデータ経路構成要素に要求される制御信号のフルセットを形成する。それは、マルチプレクサ42がこの制御信号のフルセットを直接与えるか、代替的にデフォルトのNopオペレーションが要求される場合、これらの信号が回路要素44によって発生するからである。制御信号の圧縮された符号化を使用して可能なデータ経路構成要素のオペレーションのサブセットを表している命令フィールドの場合、回路要素46は、この圧縮された表示を展開して次にマルチプレクサ48によって選択される制御信号のフルセットを形成することができる。
図7は、プログラム命令を格納するメモリが、それぞれNビットの幅を持つM個のメモリのセットとして実施されていることを模式的に示している。これらのM個のメモリは、すべて並列に読み出される。1個からM個の語の間は、プログラムステップごとにメモリから読み出される。読み出される語は、命令レジスタ54の中に格納される(図9に示す)。命令レジスタは、コード語のFIFOとして動作する。命令の抽出は、命令レジスタからのプログラム語の読み出しと、命令の復号のためにこれらの語をアラインするローテータを使用することから構成される。図7は、異なるメモリに関するプログラム語の分布の例である。
図7に示す命令の復号の流れは:
1.サイクル1:
a.命令1の3つのコード語と命令2の1つの語を命令レジスタの中に読み込む。
2.サイクル2
a.命令2の2つのコード語と命令3の1つのコード語を命令レジスタの中に読み込む。
b.MSBに対してローテータを使用し、命令1を1語以上回転することによって命令復号器の入力のところに命令1を揃えて命令1を復号する(これは1つのバイトの配列(endianess)例であるが、本手法はこのようなシステムに限定されない)。
3.サイクル3:
a.命令3の別の2つのコード語と命令4の1つのコード語を命令レジスタの中に読み込む。
b.MSBに対してローテータを使用し、命令2を2語以上回転することによって命令復号器の入力のところに命令2を揃えて命令2を復号する。
4.サイクル4:
a.命令4と命令5の2つのコード語を命令レジスタの中に読み込む。
b.MSBに対してローテータを使用し、命令3を3語以上回転することによって命令復号器の入力のところに命令3を揃えて命令3を復号する。
5.サイクル5:
a.命令6の3つのコード語を命令レジスタの中に読み込む。
b.命令4を復号する。
6.サイクル6:
a.命令6の最終コード語を命令レジスタの中に読み込む。
b.MSBに対してローテータを使用し、命令5を3語以上回転することによって命令復号器の入力のところに命令5を揃えて命令5を復号する。
7. (以下省略)
図8は、本手法を使用するVLIWプロセッサの代表的実施例を示す高度な模式図である。プログラムカウンタ50は、可変長プログラム命令を格納する命令メモリ52をアドレス指定するために使用される。これらの可変長プログラム命令は、固定長メモリアクセス語としてFIFO命令レジスタ54の中に読み出され、FIFO命令レジスタ54から個々のプログラム命令が抽出され、命令復号器58に供給される前に、ローテータ56によって揃えられる。命令復号器58は、必要に応じて、これらのプログラム命令を解凍し、制御レジスタ60の中に格納される制御信号を発生する。制御信号は異なるデータ経路構成要素62、64、66を構成して、所望のデータ処理オペレーションを実行し、その結果はVLIWコントローラ70にフィードバックする状態レジスタ68を更新するために使用される。VLIWコントローラ70は、プログラムカウンタを制御して命令メモリ52の中に格納されたプログラムを介して適切に増分する。
図9は、コントローラ70の一例を模式的に示している。プログラムカウンタの現在値とこれが増分された値は、所望のアクセスが揃えられず異なるメモリに回り込む場合、異なるメモリをアドレス指定する適切なメモリアドレスを発生することができる。命令セット復号器58によって分割された命令の長さは、ジャンプするプログラムの流れを強制的に制御するために必要なジャンプコマンドとともに、プログラムカウンタの進行を制御するために使用される。
以下の記述は、異なる命令セットをサポートすることが望まれるAluデータ経路構成要素の可能なサブセットの模範的な例示である。他のデータ経路構成要素の命令セットも同様な方法で選択/構成される。
このAluには、独立に制御できる4つの制御ポート、すなわち、cmd0、cmd1、cmd2およびcmd3がある。ALUの一部だけがアプリケーションで使用される場合、マイクロコードからその一部のすべてを駆動することは意味をなさない。ユーザはこの目的で命令セットの定義を使用することができる。
Aluは別のコマンドバスから制御される複数の独立ユニットから構成される。これらのコマンドバスごとにオペレーション・セットを定義しなければならない。ユーザがどの命令セットも指定しなかった場合、ALUの「完全な(full)」命令セット「alu_1」は次の通りである。
Figure 2005332361
オペレーション・セットのコード幅は、そのセットの中の命令の数によって決定される。例えば、ceil(log2(#instructions in set))。
Figure 2005332361
そのためALU命令のフルセットは、ALUの入力ピンに接続されたレジスタの、およびALUの全制御ポートの「全」オペレーション・セットの読出しアドレスから成る単一control_group「CG_alu_1」によって表示される。
制御グループの幅は含まれるオペレーション・セットの幅の総和である。
ALUの制限された機能によって命令セットを定義できるためには、新しいオペレーション・セットと制御グループを定義する必要がある。これが実行される前は、ユーザは、特定の命令セットの中でユーザが欲しい機能の一部分がどれであるかを決定する必要がある。
例1:ALUがフラグ制御ユニット(flag control unit)として使用されているだけの場合、次の定義を使用しなければならない。
Figure 2005332361
制御グループ「CG_fcu_alu_1」は、入力レジスタの読み出しアドレスと「cmd0」制御ポートに対する命令を格納する3ビットを含むだけであろう。命令セット復号器は、cmd1とcmd3制御ポートに対してはデフォルト命令を、cmd2制御ポートに対してpass命令を適用するであろう。
例2:シフトユニットのないALU(ALU without shift unit)に対する命令セットは、次のように指定される。
Figure 2005332361
制御ビットは、「cmd」制御ポートに新しいオペレーション・セットを定義することによって取得される。例えば、logical=0とabsminmax=0に対しては次のようになる。
Figure 2005332361
オペレーション・セット
Figure 2005332361

は、上記制御グループの定義の中で、
Figure 2005332361

で置き換えられる。
例3:ALU NOFLAGは、次の定義によって説明されうる。
Figure 2005332361
次の例は、データ経路構成要素が1ALU、1RAMと定数発生器の3個あるプロセッサの完全な命令セット復号器の定義を示している。次の命令セットが定義される。
Figure 2005332361
制御グループは、命令セットの定義の中で同一方法で扱われる制御語を単純にグループ化したものである。次の制御グループが定義される。
Figure 2005332361
命令フィールドは制御グループで構成される。いかなるクロックサイクル中でも命令フィールドあたりアクティブになりうるのは1つの制御グループだけである。次の命令フィールドが定義される。
Figure 2005332361
命令セットは、命令フィールドの連接として定義される。次の命令セットが定義される。
Figure 2005332361
IS_VLIWは、すべてのデータ経路構成要素を並列に制御する。IS_RISC1はRAMと、定数発生器またはaluの完全な機能のいずれかを制御する。IS_RISC2は、RAMと、aluの機能のサブセットを制御する。
上記手法に従ってVLIWプロセッサを制御するとともに、混在した命令セットの命令を含むコンピュータプログラムは、本発明の他の態様を表している。これらのコンピュータプログラムは、(例えば、ディスク、ROMなどの)データ記憶媒体やダウンロードできるファイル、あるいは、他の方法などの製品の形で提供されうる。
コンパイラサポートに言及すると、命令セットは、セットの中で可能になった並列動作または両者の競合動作の明確なモデルを作るデータ構造体の中に格納される。同じではないデータセット上で動作する同一資源を使用する場合、動作は競合する。このデータ構造は、命令を選択するとともにコードを発生するコンパイラによって使用される。コンパイラによって生成された命令語は、定義された命令セットのどれかから選択される。一例では、この競合モデルはMapステップ、コンパイルステップおよびコード発生ステップで使用されうる。Mapは命令を選択し、選択した命令を個別のデータ経路構成要素に割り当てる。コンパイルは命令の順番を付けるとともにコードの最適化を実行する。コンパイルの終了時点で、コードが送出され、最後の命令セットの選択が実行される。このコード発生ステップの間にコードの中のジャンプアドレスの再コード化が実行され、可変長命令語が複数のメモリに分散して格納されることを可能にする。これら3ステップの中で、(サイズの観点から)命令セットのコストが配慮される。
添付の図面を参照しつつ本発明の例示的実施例を詳細に説明してきたが、本発明は、これらの的確な実施例に限定されないことと、特許請求の範囲によって定義される通り、本発明の範囲と趣旨を逸脱することなく当業者によって異なる変更と修正が実施されうることを理解すべきである。
VLIW処理システムのデータ経路を模式的に示す図である。 データ処理システムの動作における異なる命令サイクルで達成されうる並列処理の程度を模式的に示す図である。 現手法で使用されるのに適したVLIWプロセッサを制御する一般的なプログラム命令を模式的に示す図である。 所定のデータ経路構成要素によって実行される所定のデータ処理オペレーションを指定するために使用される4個の独自に符号化された命令フィールドを有する4個の模範的なプログラム命令を示す図である。 命令圧縮手法の一部として使用されうる復号化/符号化ツリーを模式的に示す図である。 命令復号器の1つの制御語の一部を模式的に示す図である。 固定幅メモリアクセスで読み出されるメモリの中のプログラム命令の配置の一例を模式的に示す図である。 VLIWプロセッサがサポートする複数の命令セットと、それらのいくつかは解凍するために復号される前記複数の命令セットを模式的に示す図である。 メモリからプログラム命令をフェッチしてアラインする回路を模式的に示す図である。
符号の説明
2、4、6、8 データ経路構成要素
14 バス・ネットワーク
10、12 レジスタファイル
16 制御信号レジスタ信号
18 プログラム命令
20 命令識別子フィールド
22 命令フィールドの制御ビットを含むセクション
24 プログラム命令
26 第2のプログラム命令
28 乗算器に関連する命令フィールド
30 第3のプログラム命令
32 専用命令フィールド
34 第4のプログラム命令
36、38 ルックアップテーブル
40、42、48 マルチプレクサ
44、46 回路要素
50 プログラムカウンタ
52 命令メモリ
54 命令レジスタ
56 ローテータ
58 命令復号器
60 制御レジスタ
62、64、66 データ経路構成要素
68 状態レジスタ
70 VLIWコントローラ

Claims (49)

  1. プログラム命令の中の1つまたは複数の命令フィールドを復号して少なくともいくつかの制御信号を発生するように動作可能な命令復号器と、
    前記制御信号に応答し、前記プログラム命令によって指定されたそれぞれのデータ処理オペレーションを独立して並列に実行する複数のデータ経路構成要素であって、前記命令復号器によって復号された少なくともいくつかのプログラム命令は、それぞれのデータ経路構成要素のための制御命令が独立に指定されることを可能にする前記複数のデータ経路構成要素と
    を含み、
    前記命令復号器は、データ経路構成要素によって実行されるべき所与のデータ処理オペレーションが、異なるプログラム命令において異なって符号化された命令フィールドを使用して指定されうるように動作可能であるデータ処理装置。
  2. 請求項1に記載の装置において、前記データ処理オペレーションを表す前記異なって符号化された命令フィールドは、前記異なるプログラム命令の中に異なるビット長を有する前記装置。
  3. 請求項1に記載の装置において、前記データ処理オペレーションを表す前記異なって符号化された命令フィールドは、前記異なるプログラム命令の中に異なるビット位置を有する前記装置。
  4. 請求項1に記載の装置において、前記プログラム命令は複数の命令セットに分割され、前記命令復号器は、プログラム命令の中のフィールドを識別する少なくともある命令セットに応答して、前記プログラム命令の中のどのビットが、どのデータ経路構成要素に対する命令フィールドに対応するかを制御する前記装置。
  5. 請求項1に記載の装置において、前記プログラム命令は、可変プログラム命令長を有し、前記命令復号器は、前記命令セット識別子に応答してプログラム命令のプログラム命令長を決定する前記装置。
  6. 請求項1に記載の装置において、前記異なって符号化された命令フィールドは、前記データ経路構成要素によって実行されうるデータ処理オペレーションの異なるセットを表すように動作可能である前記装置。
  7. 請求項6に記載の装置において、プログラム命令の中の前記異なって符号化された命令フィールドの少なくとも1つは、異なるプログラム命令の中の前記異なって符号化された命令フィールドの異なる1つによって表されうるデータ処理オペレーションのサブセットを表すように動作可能である前記装置。
  8. 請求項7に記載の装置において、前記サブセットは、データ処理オペレーションの前記最大のセットと比較して減少したオペランド範囲を有する前記装置。
  9. 請求項8に記載の装置において、前記オペランド範囲は、
    レジスタ指定子と、
    プログラムの中の実行点におけるジャンプを表すジャンプアドレス指定子と、
    アラインメント指定子と、
    即値と、
    の中の1つである前記装置。
  10. 請求項1に記載の装置において、プログラム命令自身の中の少なくとも1つの命令フィールドが、前記複数のデータ経路構成要素のうちのどれが前記少なくとも1つの命令フィールドによって制御されるかを指定する前記装置。
  11. 請求項1に記載の装置において、異なるプログラム命令に応答して、前記複数のデータ経路構成要素の可変個数のデータ経路構成要素が、アクティブであるかまたは非アクティブである前記装置。
  12. 請求項11に記載の装置において、所与のデータ経路構成要素に対して、データ処理オペレーションが指定されていないかまたはペンディングになっている場合、前記所与のデータ経路構成要素は非アクティブであり、Nopオペレーションを行なう前記装置。
  13. 請求項5に記載の装置であって、前記プログラム命令を格納するように動作可能であるとともに固定長メモリアクセスで可読な命令メモリを含む前記装置。
  14. 請求項13に記載の装置において、固定長メモリアクセスは、複数のプログラム命令の少なくともいくつかの部分を含む前記装置。
  15. 請求項14に記載の装置であって、前記命令復号器に供給するための所定位置に前記メモリアクセスの中のプログラム命令を揃えるように動作可能なローテータとプログラムカウンタ増分器(incrementer)とを含む前記装置。
  16. 請求項5に記載の装置であって、前記命令復号器に供給するための所定位置に前記メモリアクセスの中のプログラム命令を揃えるように動作可能なローテータとプログラムカウンタ増分器とを含み、前記ローテータは、前記命令セット識別子に応答して、前記プログラム命令を揃えるためにいかなる回転を与えるべきかを決定する前記装置。
  17. プログラム命令の中の1つまたは複数の命令フィールドを復号して少なくともいくつかの制御信号を発生するステップと、
    前記制御信号に応答して複数のデータ経路構成要素を制御し、前記プログラム命令によって指定されたそれぞれのデータ処理オペレーションを並列に独立して実行し、少なくともいくつかのプログラム命令はそれぞれの各データ経路構成要素に対する制御信号が独立して指定されることを可能にするステップと
    を含み、
    データ経路構成要素によって行なわれる所与のデータ処理オペレーションは、異なるプログラム命令の中で異なって符号化された命令フィールドを使用して指定されうる方法。
  18. 請求項17に記載の方法において、前記データ処理オペレーションを表す前記異なって符号化された命令フィールドは、前記異なるプログラム命令の中に異なるビット長を有する前記方法。
  19. 請求項17に記載の方法において、前記データ処理オペレーションを表す前記異なって符号化された命令フィールドは、前記異なるプログラム命令の中に異なるビット位置を有する前記方法。
  20. 請求項17に記載の方法において、前記プログラム命令は複数の命令セットに分割され、前記命令復号器は、プログラム命令の中のフィールドを識別する少なくともある命令セットに応答して、前記プログラム命令の中のどのビットが、どのデータ経路構成要素に対する命令フィールドに対応するかを制御する前記方法。
  21. 請求項17に記載の方法において、前記プログラム命令は可変プログラム命令長を有し、前記命令復号器は、前記命令セット識別子に応答してプログラム命令のプログラム命令長を決定する前記方法。
  22. 請求項17に記載の方法において、前記異なって符号化された命令フィールドは、前記データ経路構成要素によって実行されうるデータ処理オペレーションの異なるセットを表すように動作可能である前記方法。
  23. 請求項22に記載の方法において、プログラム命令の中の少なくとも1つの前記異なって符号化された命令フィールドは、異なるプログラム命令の中の前記異なって符号化された命令フィールドの異なる1つによって表されうるデータ処理オペレーションのサブセットを表すように動作可能である前記方法。
  24. 請求項23に記載の方法において、前記サブセットは、データ処理オペレーションの前記最大のセットと比較して減少したオペランド範囲を有する前記方法。
  25. 請求項24に記載の方法において、前記オペランド範囲は、
    レジスタ指定子と、
    プログラムの中の実行点におけるジャンプを表すジャンプアドレス指定子と、
    アラインメント指定子と、
    即値と、
    の中の1つである前記方法。
  26. 請求項17に記載の方法において、プログラム命令自身の中の少なくとも1つの命令フィールドが、前記複数のデータ経路構成要素のうちのどれが前記少なくとも1つの命令フィールドによって制御されるかを指定する前記方法。
  27. 請求項17に記載の方法において、異なるプログラム命令に応答して、前記複数のデータ経路構成要素の可変個数のデータ経路構成要素が、アクティブであるかまたは非アクティブである前記方法。
  28. 請求項27に記載の方法において、所与のデータ経路構成要素に対してデータ処理オペレーションが指定されていないかまたはペンディングになっている場合、前記所与のデータ経路構成要素は非アクティブでありNopオペレーションを実行する前記方法。
  29. 請求項21に記載の方法において、命令メモリは、前記プログラム命令を格納するように動作可能であるとともに固定長メモリアクセスで可読である前記方法。
  30. 請求項29に記載の方法において、固定長メモリアクセスは、複数のプログラム命令の少なくともいくつかの部分を含む前記方法。
  31. 請求項30に記載の方法において、ローテータとプログラムカウンタ増分器とは、前記命令復号器に供給するための所定位置に前記メモリアクセスの中のプログラム命令を揃えるように動作可能である前記方法。
  32. 請求項21に記載の方法において、ローテータとプログラムカウンタ増分器とは、前記命令復号器に供給するための所定位置に前記メモリアクセスの中のプログラム命令を揃えるように動作可能であり、前記ローテータは、前記命令セット識別子に応答して、前記プログラム命令を揃えるためにいかなる回転を与えるべきかを決定する前記方法。
  33. プログラム命令の中の1つまたは複数の命令フィールドを復号して、少なくともいくつかの制御信号を発生するように動作可能な命令復号器と、前記制御信号に応答して前記プログラム命令によって指定されたそれぞれのデータ処理オペレーションを独立して並列に実行する複数のデータ経路構成要素とを有するデータ処理装置を制御するコンピュータプログラム製品であって、
    第1の符号化が、データ経路構成要素によって行なわれる所与のデータ処理オペレーションを指定する、符号化された命令フィールドを含む少なくとも1つのプログラム命令と、
    前記第1の符号化とは異なる第2の符号化が、前記データ経路構成要素によって行なわれる前記所与のデータ処理オペレーションを指定する、異なって符号化された命令フィールドを含む少なくとも1つの異なるプログラム命令と
    を含むコンピュータプログラム製品。
  34. 請求項33に記載のコンピュータプログラム製品において、前記データ処理オペレーションを表す前記異なって符号化された命令フィールドは、前記異なるプログラム命令の中の異なるビット長を有する前記コンピュータプログラム製品。
  35. 請求項33に記載のコンピュータプログラム製品において、前記データ処理オペレーションを表す前記異なって符号化された命令フィールドは、前記異なるプログラム命令の中に異なるビット位置を有する前記コンピュータプログラム製品。
  36. 請求項33に記載のコンピュータプログラム製品において、前記プログラム命令は複数の命令セットに分割され、前記命令復号器は、プログラム命令の中のフィールドを識別する少なくともある命令セットに応答して、前記プログラム命令の中のどのビットが、どのデータ経路構成要素に対する命令フィールドに対応するかを制御する前記コンピュータプログラム製品。
  37. 請求項33に記載のコンピュータプログラム製品において、前記プログラム命令は、可変プログラム命令長を有し、前記命令復号器は、前記命令セット識別子に応答してプログラム命令のプログラム命令長を決定する前記コンピュータプログラム製品。
  38. 請求項33に記載のコンピュータプログラム製品において、前記異なって符号化された命令フィールドは、前記データ経路構成要素によって実行されうるデータ処理オペレーションの異なるセットを表すように動作可能である前記コンピュータプログラム製品。
  39. 請求項38に記載のコンピュータプログラム製品において、プログラム命令の中の前記異なって符号化された命令フィールドの少なくとも1つは、異なるプログラム命令の中の前記異なって符号化された命令フィールドの異なる1つによって表されうるデータ処理オペレーションのサブセットを表すように動作可能である前記コンピュータプログラム製品。
  40. 請求項39に記載のコンピュータプログラム製品において、前記サブセットは、データ処理オペレーションの前記最大のセットと比較して減少したオペランド範囲を有する前記コンピュータプログラム製品。
  41. 請求項40に記載のコンピュータプログラム製品において、前記オペランド範囲は、
    レジスタ指定子と、
    プログラムの中の実行点におけるジャンプを表すジャンプアドレス指定子と、
    アラインメント指定子と、
    即値と、
    の中の1つである前記コンピュータプログラム製品。
  42. 請求項33に記載のコンピュータプログラム製品において、プログラム命令自身の中の少なくとも1つの命令フィールドが、前記複数のデータ経路構成要素のうち、どれが前記少なくとも1つの命令フィールドによって制御されるかを指定する前記コンピュータプログラム製品。
  43. 請求項33に記載のコンピュータプログラム製品において、異なるプログラム命令に応答して、前記複数のデータ経路構成要素のうちの可変個数のデータ経路構成要素が、アクティブであるかまたは非アクティブである前記コンピュータプログラム製品。
  44. 請求項43に記載のコンピュータプログラム製品において、所定のデータ経路構成要素に対してデータ処理オペレーションが指定されていないかまたはペンディング、保留になっている場合、前記所与のデータ経路構成要素は非アクティブでありヌルオペレーションを実行する前記コンピュータプログラム製品。
  45. 請求項37に記載のコンピュータプログラム製品において、命令メモリは、前記プログラム命令を格納するように動作可能であるとともに固定長メモリアクセスで可読である前記コンピュータプログラム製品。
  46. 請求項45に記載のコンピュータプログラム製品において、固定長メモリアクセスは、複数のプログラム命令の少なくともいくつかの部分を含む前記コンピュータプログラム製品。
  47. 請求項46に記載のコンピュータプログラム製品において、ローテータとプログラムカウンタ増分器とは、前記命令復号器に供給するための所定位置に前記メモリアクセスの中のプログラム命令を揃えるように動作可能である前記コンピュータプログラム製品。
  48. 請求項37に記載のコンピュータプログラム製品において、
    ローテータとプログラムカウンタ増分器とは、前記命令復号器に供給するための所定位置に前記メモリアクセスの中のプログラム命令を揃えるように動作可能であり、前記ローテータは、前記命令セット識別子に応答して、前記プログラム命令を揃えるためにいかなる回転を与えるべきかを決定する前記コンピュータプログラム製品。
  49. 請求項33に記載のコンピュータプログラムを発生するように動作可能なコンピュータプログラムコンパイラ。
JP2004343921A 2004-05-17 2004-11-29 プログラム命令圧縮装置および方法 Pending JP2005332361A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0410986A GB2414308B (en) 2004-05-17 2004-05-17 Program instruction compression

Publications (2)

Publication Number Publication Date
JP2005332361A true JP2005332361A (ja) 2005-12-02
JP2005332361A5 JP2005332361A5 (ja) 2007-02-22

Family

ID=32527186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004343921A Pending JP2005332361A (ja) 2004-05-17 2004-11-29 プログラム命令圧縮装置および方法

Country Status (3)

Country Link
US (1) US7302552B2 (ja)
JP (1) JP2005332361A (ja)
GB (1) GB2414308B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015143991A (ja) * 2006-09-22 2015-08-06 インテル コーポレイション 文字列を処理するための命令及び論理回路
US10416888B2 (en) 2016-09-09 2019-09-17 Fujitsu Limited Parallel processing device, method for controlling parallel processing device, and controller used in parallel processing device

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
GB2420884B (en) * 2004-12-03 2009-04-15 Picochip Designs Ltd Processor architecture
US7581082B2 (en) * 2005-05-13 2009-08-25 Texas Instruments Incorporated Software source transfer selects instruction word sizes
GB2430773A (en) * 2005-10-03 2007-04-04 Advanced Risc Mach Ltd Alignment of variable length program instructions
US20080077772A1 (en) * 2006-09-22 2008-03-27 Ronen Zohar Method and apparatus for performing select operations
US7624251B2 (en) * 2006-11-01 2009-11-24 Apple Inc. Instructions for efficiently accessing unaligned partial vectors
US7620797B2 (en) * 2006-11-01 2009-11-17 Apple Inc. Instructions for efficiently accessing unaligned vectors
CN101398752B (zh) * 2007-09-29 2011-08-31 国际商业机器公司 重叠指令存取单元和重叠指令存取方法
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US20100312991A1 (en) * 2008-05-08 2010-12-09 Mips Technologies, Inc. Microprocessor with Compact Instruction Set Architecture
CN102077195A (zh) * 2008-05-08 2011-05-25 Mips技术公司 具有紧凑指令集架构的微处理器
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
GB2484489A (en) 2010-10-12 2012-04-18 Advanced Risc Mach Ltd Instruction decoder using an instruction set identifier to determine the decode rules to use.
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US20160179542A1 (en) * 2014-12-23 2016-06-23 Patrick P. Lai Instruction and logic to perform a fused single cycle increment-compare-jump
KR20180031266A (ko) 2016-09-19 2018-03-28 삼성전자주식회사 전자 장치, vliw 프로세서 및 그 제어 방법들

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09512651A (ja) * 1994-05-03 1997-12-16 アドバンスド リスク マシーンズ リミテッド 複数命令セットのマッピング
JPH11194939A (ja) * 1995-07-12 1999-07-21 Mitsubishi Electric Corp データ処理装置
JP2002533815A (ja) * 1998-12-18 2002-10-08 ボプス インコーポレイテッド 動的コンパクト命令を有するスケーラブル命令セットアーキテクチャのための方法及び装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5057837A (en) * 1987-04-20 1991-10-15 Digital Equipment Corporation Instruction storage method with a compressed format using a mask word
US5826054A (en) * 1996-05-15 1998-10-20 Philips Electronics North America Corporation Compressed Instruction format for use in a VLIW processor
US5922065A (en) * 1997-10-13 1999-07-13 Institute For The Development Of Emerging Architectures, L.L.C. Processor utilizing a template field for encoding instruction sequences in a wide-word format
JP4502532B2 (ja) * 2001-02-23 2010-07-14 株式会社ルネサステクノロジ データ処理装置
EP1530755B1 (en) * 2002-08-16 2019-11-06 Intel Corporation Apparatus, method, and compiler enabling processing of variable length isntructions in a very long instruction word processor
AU2003253159A1 (en) * 2002-09-24 2004-04-19 Koninklijke Philips Electronics N.V. Apparatus, method ,and compiler enabling processing of load immediate instructions in a very long instruction word processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09512651A (ja) * 1994-05-03 1997-12-16 アドバンスド リスク マシーンズ リミテッド 複数命令セットのマッピング
JPH11194939A (ja) * 1995-07-12 1999-07-21 Mitsubishi Electric Corp データ処理装置
JP2002533815A (ja) * 1998-12-18 2002-10-08 ボプス インコーポレイテッド 動的コンパクト命令を有するスケーラブル命令セットアーキテクチャのための方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015143991A (ja) * 2006-09-22 2015-08-06 インテル コーポレイション 文字列を処理するための命令及び論理回路
US10416888B2 (en) 2016-09-09 2019-09-17 Fujitsu Limited Parallel processing device, method for controlling parallel processing device, and controller used in parallel processing device

Also Published As

Publication number Publication date
US7302552B2 (en) 2007-11-27
US20050257028A1 (en) 2005-11-17
GB0410986D0 (en) 2004-06-16
GB2414308B (en) 2007-08-15
GB2414308A (en) 2005-11-23

Similar Documents

Publication Publication Date Title
JP2005332361A (ja) プログラム命令圧縮装置および方法
US11669330B2 (en) Method for performing random read access to a block of data using parallel LUT read instruction in vector processors
KR102413832B1 (ko) 벡터 곱셈 덧셈 명령
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
JP4484925B2 (ja) Simdデバイスにおける制御フロー管理のための方法及び装置
US7509483B2 (en) Methods and apparatus for meta-architecture defined programmable instruction fetch functions supporting assembled variable length instruction processors
US6957321B2 (en) Instruction set extension using operand bearing NOP instructions
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
JP7002462B2 (ja) ベクトル述語命令
KR20000076285A (ko) 기계 판독가능 매체 및 초대형 인스트럭션 워드 프로세서와, 컴퓨터 프로그램의 실행 방법 및 컴파일 방법
US7313671B2 (en) Processing apparatus, processing method and compiler
US11307855B2 (en) Register-provided-opcode instruction
US9965275B2 (en) Element size increasing instruction
US7895417B2 (en) Select-and-insert instruction within data processing systems
US11397583B2 (en) Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor
US7231507B2 (en) Data access program instruction encoding
CN107851022B (zh) 向量长度查询指令
EP3655852A1 (en) Vector interleaving in a data processing apparatus
US20120260062A1 (en) System and method for providing dynamic addressability of data elements in a register file with subword parallelism
JPS623336A (ja) 条件付きブランチ方式
US6886091B1 (en) Replacing VLIW operation with equivalent operation requiring fewer issue slots
JP2002073325A (ja) データ処理装置及び方法
TW202307653A (zh) 陳述技術
JPH1173314A (ja) マイクロプロセッサ
JP2000215058A (ja) 計算機及び命令実行方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101015