JP2010522904A - 分類された命令のセットを使用した処理アーキテクチャ - Google Patents

分類された命令のセットを使用した処理アーキテクチャ Download PDF

Info

Publication number
JP2010522904A
JP2010522904A JP2009530595A JP2009530595A JP2010522904A JP 2010522904 A JP2010522904 A JP 2010522904A JP 2009530595 A JP2009530595 A JP 2009530595A JP 2009530595 A JP2009530595 A JP 2009530595A JP 2010522904 A JP2010522904 A JP 2010522904A
Authority
JP
Japan
Prior art keywords
instruction
instructions
processing
sequencing
sequencer
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
JP2009530595A
Other languages
English (en)
Other versions
JP5550099B2 (ja
Inventor
ジョナサン ブルームフィールド,
ジョン, デイヴィッド ロブソン,
ニコラス, ジェイ.エヌ. マーフィ,
Original Assignee
3ディーラブス インク., エルティーディー.
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 3ディーラブス インク., エルティーディー. filed Critical 3ディーラブス インク., エルティーディー.
Publication of JP2010522904A publication Critical patent/JP2010522904A/ja
Application granted granted Critical
Publication of JP5550099B2 publication Critical patent/JP5550099B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted 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
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode 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)

Abstract

命令がタイプアイデンティファイアを含むマイクロプロセッサ用のアーキテクチャであり、このタイプアイデンティファイアは複数のインタープリテーションレジスタの1つを選択する。インタープリテーションレジスタは、各命令のopコードを解釈するための情報を保持しており、これにより(タイプアイデンティファイアを用いて)圧縮された命令ストリームを解凍された命令ストリームに変換することができる。好ましくは、タイプアイデンティファイアは、処理要素命令からシーケンサー命令を区別することもでき、更には異なる種類のシーケンサー命令を区別することもできる(異なる種類の処理要素命令を区別することもできる)。

Description

本発明は、マイクロプロセッサのアーキテクチャにおける命令の処理に関し、特に並行処理アーキテクチャを使用したマルチメディア処理に関する。
あらゆるマイクロプロセッサ(又はアナログのプログラム可能なプログラマブルロジック)は命令ストリームをハードウエア内の電気的操作に変換しなければならない。最低でも、命令の論理的ビットが適切な電気信号に変換されて物理的装置(例えば、トランジスタ、ゲート、ラッチ、又はレジスタ)に送られなければならない。これを実行するための1つの一般的な方法がマイクロコード化された命令であり、この場合、既知のハードウエア構造内において多数のビットにより様々なラインに適用される信号が指定される。各命令に含まれる殆ど全ての出力が指定されるため、このような命令は必然的に大きくなる。更に、マルチプロセッサを搭載する場合、このような命令は更に扱いにくいものになる。
マイクロコード化されたプログラムのバルクを低減するために様々な試みがなされている。マイクロコードのバルクを低減するために提案されている1つの方法は、「垂直型」マイクロモードとして知られているものである。この方法は、格納要件を低減するために、復号テーブルを使用する。この復号テーブルが定義されることにより、各マイクロコード命令には、命令自体よりずっと短い固有の「名前」が与えられる。(例えば、命令の数が256個以下である場合、個別の命令の長さが数百ビットに及ぶ場合も、各々を8ビットの名前で呼ぶことができる。)命令の短い「名前」は垂直型マイクロコードと呼ばれ、実行可能な実際のマイクロコード命令は「水平型」マイクロコードと呼ばれる。この方法では、完全な命令ではなく命令フィールドをコード化するために時にルックアップテーブルが使用される。これにより、ルックアップのために必要なメモリスペースが低減される。適切なフィールドの組み合わせには追加的論理が必要である。垂直型マイクロコード方式は、時間が掛かりすぎるために今では殆ど使用されていない。
プロセッサは通常、限定された量の書き込み可能な制御記憶装置(「WCS」)しか有していない。一度にWCSに入れなければならないルーティンが多すぎるとき、何らかのオーバーレイフォームが必要である。設定時にマイクロコードをロードするためにシリアルループを使用することができるが、ホストが命令をロードするには常に非常に時間が掛かるため(例えば、ディスクアクセスにより100マイクロ秒〜3分/命令)、シリアルループを使用してオーバーレイをロードするのは現実的でない。一部のアレープロセッサはマイクロコードのオーバーレイ機能を提供するが、これらは通常(polled I/O又はDMAを使用する)ホスト駆動型であり、通常のマイクロコードロードメカニズムを介して使用される。
並行処理ハードウエアに対処する1つの方法では、命令レベルの並行性を使用する。この注目すべき例がVLIW(Very Long Instruction Word)アーキテクチャである。このアーキテクチャでは、単一の命令が、ハードウエアの別個の並行部分のための複数のフィールド、例えば並行化した別個のALUや、場合によっては選択的なロジック条件のための複数のフィールドを含むことができる。
分類された命令のセットを用いる処理アーキテクチャ
本出願は、新規のインダイレクションレイヤを加えたマイクロプロセッサ等のための新規のアーキテクチャについて記載する。命令のシーケンスには、個々の命令の変換方法を定義したタイプアイデンティファイアが含まれる。(必須ではないが好ましくは、タイプアイデンティファイアは一組のインタープリテーションレジスタを指し示し、選択されたレジスタは、解凍されて実行可能となった命令を生成するために元の命令のopコードと組み合わされる挿入物を含む。)
このアーキテクチャは、従来のVLIWアーキテクチャが持つ多くの欠点を克服し、様々な実施形態において、少なくとも以下に挙げる利点のうちの1つ以上を提供する。
・既存のプログラムとの下位互換性を維持しながら、命令セットを解凍することができる。
・プログラムコードの密度が従来のVLIW命令セットと比べて非常に高い。
・処理されるデータのタイプに関係なくアルゴリズムをコード化することができる。
ここに開示される本発明について、添付図面を参照して説明する。添付図面は、本発明の重要な例示的実施形態を示すものであり、ここで参照することにより本明細書に包含される。
適切な命令グループを取得するために適切なインタープリテーションレジスタ(この実施例ではタイプレジスタ)のオンザフライ選択を用いて命令を復号する方法の模式図である。 本発明を有利に実現することが可能なプロセッサアーキテクチャの一実施例を示す。(後述するように、本発明は多数の異なるアーキテクチャにおいても実現することができる。) 本発明を有利に実現することが可能な処理クラスターの一実施例を示す。(後述するように、本発明は多数の異なるアーキテクチャにおいても実現することができる。)
本出願の多数の新規な教示について、特に上記実施形態を参照して説明する。(例示を目的とするものであり、限定的なものではない。)
分類された命令のセットは、従来のVLIWアーキテクチャの欠点の多くを克服する新規の命令フォーマット及び復号スキームであり、少なくとも以下の利点を有する:
・既存のプログラムとの下位互換性を保持しながら、命令のセットを解凍することができる。
・従来のVLIWの命令セットと比較してプログラムコード密度が非常に高い。
・処理されるデータの種類に関係なくアルゴリズムをコード化することができる。
図1は、適切なインタープリテーションレジスタ(この実施例ではタイプレジスタ)のオンザフライ選択を用いて命令を復号することにより適切な命令グループを取得する方法を模式的に示す。図1に示すように、各命令は、タイプレジスタ(120)のアレーから1つのタイプレジスタを選択するために使用されるタイプIDフィールド(110)を含む。各タイプレジスタは使用するべき命令グループ(130)を保持しており、命令のOpコードフィールドには、マイクロプロセッサに提示される最終命令(140)を決定するための命令グループ用インデックスが付与されている。
この例示的な実施形態では、全ての命令は32ビットの固定サイズを有する。各命令は3ビットのタイプIDと、4ビットのOpコードフィールドと、条件付命令を示すための1ビットと、オペランドを指定するための24ビットとを含んでいる。命令は、シーケンサー命令又はPE(処理要素)命令とすることができる。この実施形態では、シーケンサー命令が単一のシーケンサーを導き、これは処理要素を制御するのに必要なハードウエアの償却を助ける。PE命令は別のレベルのインダイレクションを有する。
この例示的実施形態では、タイプIDは3ビットからなる。8つの可能なタイプIDの値のうちの2つが、シーケンサー命令を示すために保存され、残りの6つの値が処理要素(PE)命令を示し、且つ6つのタイプレジスタのうちの1つを選択する。
この例示的実施形態では、各タイプレジスタの幅は64ビットであり、それぞれが16個以内の命令を含むことができる64の可能な命令グループの中から1つを選択するための6ビットのフィールドを含む。各タイプレジスタの残りの58ビットは、オペランド制御情報を指定する。オペランド制御情報には、これらに限定されないが、ベクトル長、ベクトル要素間の間隔、各PEレジスタファイルを読み書きするときに各オペランドを入れ換えなければならないかどうか、及びPE内の様々なフラグ及びマスクレジスタを使用してベクトル演算の各要素を制御する方法が含まれる。
この例示的実施形態では、opコードは4ビットである。このコードは、命令グループに含まれる16個の命令から1の命令を決定するために使用される。典型的には、同じ数学的又は論理的演算(例えば、加算又はビット毎のXOR)が、複数の異なる命令グループ内の同じOpコード位置に定義されるが、これら命令グループの各々は、異なるオペランドデータフォーマット(例えば、32ビットの浮動小数点又は32ビットの整数)で動作するように定義される。16個の数学的又は論理的オペレータが同じオペランドデータフォーマットに必要であるとき、データフォーマット用に複数の命令グループを定義してもよい。24ビットのオペランド選択フィールドは、典型的には、プログラム実行制御フロー命令のための絶対的又は相対的アドレスを含む。
ごく一般的には、シーケンサー命令は次の5つのグループに分けることができる。
1)プログラム実行フローの制御(AbsJmp、RelJmp、AbsJsr、RelJsr、RetJmp、LnkJmp、GlcJmp、ElsJmp、OffJmp、Resume等)
2)シーケンサーモードレジスタの更新(SetMde、AddMde、MovMde、LdNxtU、SetFlg、UseNxt、SetBuf、SetOff、SetBSM、SetMsk等)
3)PEレジスタファイルの更新(LdImmd、Seq2Pe、GetMem、PutMem、GetInd、PutInd、RdFifo、WrFifo、GetSte、PutSte、GetVal、PutVal等)
4)命令キャッシュの制御(PFetch等)
5)同期(ChkPnt等)
シーケンサーモードレジスタの更新(上記グループ2)は、特にデータタイプレジスタに関し、これは例えばSetMdeを使用してロードされる。
このアーキテクチャの利点の1つは解凍可能な命令セットである。可能な64個の命令グループのうち9個だけが、DESアーキテクチャのS2実行用に定義され、残りの55個の命令は将来的な解凍に使用することができる。既存の命令セットとの間に何のコンフリクトも無く新規の命令グループを追加することが可能であり、これにより、将来生産されるハードウエアで既存のソフトウエアを実行することができる。
別の利点はVLIWコードの圧縮である。シーケンサー命令は、後続のPE命令に影響するタイプ情報を有するタイプレジスタをロードするために使用される。従来のVLIWアーキテクチャは全ての命令内にそのような情報を含まなければならないが、S2タイプレジスタはキャッシュとして働き、PE命令タイプの局所性を利用してこの情報に必要な更新頻度を減少させる。S2アセンブラ及びコンパイラは自動的にプログラムコードを分析してタイプレジスタの更新を行うために発行される命令の数を最小化する。各S2命令の幅は32ビットであるが、同じ命令セットをVLIW表示するためには1の命令につき約96ビットが必要であるので、プログラムの格納スペースを有意に増大する必要がある。
もう1つの利点はデータタイプの抽出である。処理されるデータのタイプとは関係なくアルゴリズムをコード化することができる。例えば、適切なタイプレジスタ内に指定されている命令グループを単に変更することにより、命令の全く同じシーケンスを実行して32ビットの浮動小数点又は32ビットの整数データを処理することができる。
図2は、本発明を有利に実現することが可能なプロセッサアーキテクチャの一実施例を示す。(後述するように、本発明は多数の異なるアーキテクチャにおいても実現することができる。)本明細書の説明には、DESアーキテクチャでS2を使用するためのレジスタビットフィールド及び命令のサイズに関する情報を含むが、これらの大きさは説明のみを目的とするものである。
S2は、全てが異なるレジスタファイルに保持される異なるデータの同じ演算に適用される複数の処理要素(例えば8個)を有するSIMD(single instruction multiple data)プロセッサのアレーである。図2は、そのような処理要素を2つ(220及び230)示している。処理要素の制御に必要なハードウエアを償却するために、単一のシーケンサー(210)が使用されている。各処理要素のRAM(221及び231)はレジスタファイルを格納する。シーケンサーのRAM(211)は命令を格納する。
図3は、本発明を有利に実現することが可能な処理クラスターの一実施例である。(後述するように、本発明は多数の異なるアーキテクチャにおいても実現することができる。)
メディア処理アレー(300)は、ビデオ、オーディオ、2Dグラフィック、及び3Dグラフィックを含む様々なメディア処理をサポートすることができるクラスターの複数の集まりである。ARM0(310)は、オペレーティングシステムを実行する制御プロセッサである。ARM1(320)は、単一のユーザーレベルの処理を実行する非同期のコプロセッサである。ARM1(320)は、プログラムを実行し、メディア処理アレー(300)に命令を発行する。ARM1(320)はまた、データストリームを様々なブロックに分類し、その後メディア処理アレー(300)の様々なクラスターにデータストリームを供給することができる。
ここに開示する様々な実施形態によれば、プログラム可能な論理演算装置が提供され、本装置は、1以上のプログラム可能な処理要素と、命令ストリーム内の復号命令に含まれるタイプIDの値によって指定される複数のインタープリテーションレジスタへのインダイレクト式の参照を使用して命令を復号し、それに従って前記処理要素にコマンドを送信するために接続される1のシーケンサーとを備える。
ここに開示する様々な実施形態によれば、一連の処理命令の実行方法が提供され、本方法は、a)前記命令のうちの1つのタイプIDフィールドに指定される各インタープリテーションレジスタを参照して命令の各々を解釈するステップ、及びb)前記ステップ(a)に従って前記命令を実行するステップを含む。
ここに開示する様々な実施形態によれば、一連の処理命令の実行方法が提供され、本方法は、a)前記命令のうちの1つのタイプIDフィールドに指定される各インタープリテーションレジスタへのインダイレクト式の参照を使用して命令の各々を解釈するステップであって、前記タイプIDフィールドがシーケンサー命令と処理要素命令とを区別し、且つ処理要素命令用の複数の異なるフォーマットを区別するステップ、及びb)前記ステップ(a)に従って前記命令を実行するステップを含む。
ここに開示する様々な実施形態によれば演算アーキテクチャが提供され、本アーキテクチャにおいては、各々がコマンドビットと複数のインタープリテーションレジスタからの選択を行うタイプIDの両方を含む処理命令が命令ストリームを形成しており、前記インタープリテーションレジスタの一部が、選択された前記インタープリテーションレジスタに応じて前記コマンドをそれぞれ解釈するための情報を含み、且つ前記インタープリテーションレジスタに蓄積された情報と組み合わせて、前記コマンドを解凍するために接続されているシーケンシング論理が、1以上の処理要素に送られるべき解凍済みの命令を生成する。
ここに開示する様々な実施形態によれば演算アーキテクチャが提供され、本アーキテクチャにおいては、処理命令がストリーム内でシーケンシング命令と混合され、少なくとも1つのシーケンサーが接続されて処理命令を受け取り、インタープリテーションレジスタを使用して処理命令の少なくとも一部を解凍することにより、1以上の処理要素のために実行可能なコマンドを生成し、前記接続されたシーケンサーは更に、シーケンシング命令を受け取って、少なくとも1つの前記シーケンシング命令に応じて前記インタープリテーションレジスタに含まれる値を変更することができる。
ここに開示する様々な実施形態によれば、上記のような複数の相互接続されたユニットを備える多重処理システムが提供される。
ここに開示する様々な実施形態によれば、命令にタイプアイデンティファイアが含まれており、このアイデンティファイアが複数のインタープリテーションレジスタのうちの1つを選択する構成のマイクロプロセッサ用のアーキテクチャが提供される。インタープリテーションレジスタは、各命令のopコードを解釈するための情報を保持しており、これにより(タイプアイデンティファイアを用いて)圧縮された命令ストリームを解凍された命令ストリームに変換することができる。好ましくは、タイプアイデンティファイアは、処理要素命令からシーケンサー命令を区別することもでき、更には異なる種類のシーケンサー命令を区別することもできる(異なる種類の処理要素命令を区別することもできる)。
修正と変更
当業者であれば分かるように、本明細書に記載された本発明の構想は、非常に広範な用途に亘って修正及び変更することが可能であり、従ってここに特許申請する主題の範囲は、本明細書に例示する特定の技術のいずれによっても限定されない。
例えば、好ましい実施形態はSIMDアーキテクチャ(最低のレベル)であるが、本発明の概念は、MIMDアーキテクチャ等の、もっと命令レベルの並行性の高い用途に使用することもできる。この簡単な実施例は、単純に別々の単一命令ストリームの命令を連結すること、例えば3つの32ビットの単一命令ストリームを連結して1つの96ビットストリームを形成し、3つ(又はそれ以上)のSIMDマシンに同報通信することであるが、当然ながらMIMDを利用する他の多くの場合が可能である。また、上述の好ましい実施形態がSIMD及びDIMDの両方であること、つまり最低レベルではSIMDであるがそれより高次のレベルではMIMDであることに注意されたい。
別の実施例として、本発明は、当然ながら他のSIMDアーキテクチャ、及び他のSIMD−MIMDハイブリッドアーキテクチャにも適用することができる。
また、本発明は、並行処理アークテクチャに適用できるだけでなく、多岐に亘るマイクロプロセッサ型のアーキテクチャ(例えば一般に汎用マイクロプロセッサ、デジタル信号プロセッサ、混合信号プロセッサ、その他専用プロセッサ、マイクロコンピュータ、マイクロコントローラ、統合システム内に埋め込まれたマイクロプロセッサコア、プログラム可能な統合電力装置、及びその他プログラム可能な統合回路装置を含む)にも適用可能である。しかしながら、本発明は、上述したように、並行処理メディアチップにおいて特に効果的である。
別の実施例では、好ましい実施形態のタイプIDフィールドのフォーマットの任意性が高く、使用するビット数を随意で増減させることができる。
別の実施例では、好ましい実施形態において「タイプIDフィールド」と呼ばれるものに他の専門用語を使用することができる。このフィールドには他の機能を加えることができる(又はそれに他のビットを組み合わせることができる)。
別の実施例では、更に大きな又は複数のタイプIDフィールドを使用して複数のインタープリテーションレジスタに適合させることができる。このような実施形態では、2つ(又はそれ以上)の独立のタイプIDスペシファイアを独立的に使用して、1又は複数のコマンドフィールドの2(又はそれ以上)のセグメントの解釈を指定することができる。
別の実施例では、登録された数ビットを有する後続の命令のタイプIDを変更又は無視するシーケンサーオプションを提供することができる。これは、例えば異なるデータタイプのためにアルゴリズムが返されているとき有効でありうる。
別の実施例では、タイプIDフィールドの定義を命令シーケンスによって体系的に変更することができる。この簡単な実施例は、命令2つ(又は4つ)毎にのみタイプIDを発行するか、或いは2つ(又は4つ)の連続する命令からなるシーケンスにタイプIDサブフィールドを広げることである。しかしながらこれはあまり好ましくない。
プログラマーは、多数の方法で複数のインタープリテーションレジスタを使用することができる。一実施例では、インタープリテーションレジスタを使用して、データ解像度及びデータタイプを変化させることができる。別の実施例では、レジスタを使用することにより、別個の変換ステップを何ら使用する必要無く、フォーマットの異なるデータソースからの入力(及び/又は異なるデータソースへの出力)を扱うことができる。別の実施例では、この能力を使用することにより、ビッグエンディアンとリトルエンディアン等の異なるデータフォーマットを容易に取扱うことができる。
変形例及び使用例を示すのに役立つ追加的な一般的背景は、Jerraya及びWolfによるMultiprocessor Systems-on-Chips (2004); A. TanenbaumによるStructured Computer Organization(2005年第5版);及びHennessy及びPattersonによるComputer Architecture(2002年第3版)といった文献に見出すことができ、これら全ての内容をここに参照したことにより本明細書に包含する。
本特許出願のいずれの記載も、いずれかの特定の要素、ステップ、又は機能が、請求の範囲に含まれなければならない必須の要素であることを意味するものではない。特許出願の主題の範囲は、請求の範囲によってのみ規定される。更に、それらの請求項のいずれもが、名詞に続く「〜の手段」という明確な用語が無い限り、米国特許法第35巻112条の第6パラグラフの行使を意図するものではない。
出願される請求の範囲は、可能な限り分かり易く表現されたものであり、いずれの主題も意図的に断念、譲与、又は放棄されていない。

Claims (34)

  1. 1以上のプログラム可能な処理要素、及び
    命令ストリームを形成する命令に含まれるタイプIDの値によって指定される複数のインタープリテーションレジスタへのインダイレクトな参照を使用して前記命令を復号し、それに従って前記処理要素にコマンドを送るために接続されるシーケンサー
    を備えるプログラム可能な論理演算装置。
  2. 前記命令ストリームが処理命令とシーケンシング命令の両方を含む、請求項1に記載の演算装置。
  3. 前記命令ストリームが処理命令とシーケンシング命令の両方を含み、前記処理命令と前記シーケンシング命令の両方が前記タイプIDを含み、且つ前記タイプIDも各命令が処理命令であるか又はシーケンシング命令であるかを示す、請求項1に記載の演算装置。
  4. 前記命令ストリームが処理命令とシーケンシング命令の両方を含み、前記シーケンシング命令が前記インタープリテーションレジスタの少なくとも一部の値を変更するコマンドを含むことができる、請求項1に記載の演算装置。
  5. 前記コマンドが少なくとも1つの前記シーケンサーによって解凍され、前記命令ストリームが処理命令とシーケンシング命令の両方を含み、且つ前記シーケンシング命令が、前記処理要素ではなく前記シーケンサーによって実行される設定コマンドであって、インタープリテーションレジスタの値を変更するコマンドを含む設定コマンドを含むことができる、請求項1に記載の演算装置。
  6. 前記コマンドが少なくとも1つの前記シーケンサーによって解凍され、且つ前記シーケンサーが、SIMDコンフィギュレーションに含まれる複数の処理要素に対し、単一の命令ストリームを同報通信する、請求項1に記載の演算装置。
  7. 前記命令の各々が単一のopコードのみを指定する、請求項1に記載の演算装置。
  8. 前記処理命令の各々が、前記インタープリテーションレジスタの各部分を選択するインデックス番号を含み、且つ前記シーケンサーが、前記インタープリテーションレジスタの各部分を使用することにより前記処理命令の各々を解凍する、請求項1に記載の演算装置。
  9. a)一連の処理命令に含まれる各命令のタイプIDフィールドに指定される各インタープリテーションレジスタを参照して命令の各々を解釈するステップ、及び
    b)前記ステップ(a)に従って、前記命令を実行するステップ
    を含む、前記一連の処理命令の実行方法。
  10. 前記命令ストリームが処理命令とシーケンシング命令の両方を含む、請求項9に記載の方法。
  11. 前記命令ストリームが処理命令とシーケンシング命令の両方を含み、且つ前記タイプIDも、各命令が処理命令であるか又はシーケンシング命令であるかを示す、請求項9に記載の方法。
  12. 前記命令ストリームが処理命令とシーケンシング命令の両方を含み、且つ前記シーケンシング命令が、前記インタープリテーションレジスタの少なくとも一部の値を変更するコマンドを含むことができる、請求項9に記載の方法。
  13. 前記コマンドが少なくとも1つのシーケンサーによって解凍され、前記命令ストリームが処理命令とシーケンシング命令の両方を含み、且つ前記シーケンシング命令が、前記処理要素ではなく前記シーケンサーによって実行される設定コマンドであって、インタープリテーションレジスタの値を変更するコマンドを含む設定コマンドを含むことができる、請求項9に記載の方法。
  14. 前記コマンドが少なくとも1つのシーケンサーによって解凍され、且つ前記シーケンサーが、SIMDコンフィギュレーションに含まれる複数の処理要素に対し、単一の命令ストリームを同報通信する、請求項9に記載の方法。
  15. 処理命令の各々の前記コマンドビットが単一のopコードのみを指定する、請求項9に記載の方法。
  16. 前記処理命令の各々が、前記インタープリテーションレジスタの各特定部分を選択するインデックス番号を含み、且つ前記インタープリテーションレジスタの各特定部分を使用することにより、前記シーケンサーが前記処理命令の各々を解凍する、請求項9に記載の方法。
  17. a)一連の処理命令の各々のタイプIDフィールドに指定される各インタープリテーションレジスタへのインダイレクトな参照を使用して命令の各々を解釈するステップであって、前記タイプIDフィールドがシーケンサー命令と処理要素命令とを区別し、更には処理要素命令の複数の異なるフォーマットを区別するステップ、及び
    b)前記ステップ(a)に従って、前記命令を実行するステップ
    を含む、前記一連の処理命令の実行方法。
  18. 前記シーケンサー命令が、前記インタープリテーションレジスタの少なくとも一部の値を変更するコマンドを含むことができる、請求項17に記載の方法。
  19. 前記コマンドが少なくとも1つのシーケンサーに従って解凍され、且つ前記シーケンサー命令は前記シーケンサーによってのみ実行される設定コマンドを含むことができる、請求項17に記載の方法。
  20. 前記シーケンサー命令が、インタープリテーションレジスタの値を変更するコマンドを含むことができる、請求項17に記載の方法。
  21. 前記コマンドが少なくとも1つのシーケンサーによって解凍され、且つ前記シーケンサーが、SIMDコンフィギュレーションに含まれる複数の処理要素に対し、単一の命令ストリームを同報通信する、請求項17に記載の方法。
  22. 前記処理命令の各々が単一のopコードのみを指定する、請求項17に記載の方法。
  23. 各々がコマンドビットと、複数のインタープリテーションレジスタからの選択を行うタイプIDの両方を含む複数の処理命令が、1つの命令ストリームを形成し、
    前記インタープリテーションレジスタの一部が、選択された前記インタープリテーションレジスタに応じて前記コマンドを解釈するための情報を含み、且つ
    前記インタープリテーションレジスタに格納された情報と組み合わせて、前記コマンドを解凍することにより、解凍された命令を生成して1以上の処理要素に送るシーケンシング論理が接続される
    演算アーキテクチャ。
  24. 前記命令ストリームが、前記処理命令と、前記シーケンシング論理によって実行されるシーケンシング命令の両方を含む、請求項23に記載のアーキテクチャ。
  25. 前記命令ストリームが前記処理命令とシーケンシング命令の両方を含み、前記処理命令と前記シーケンシング命令の両方が前記タイプIDを含み、且つ前記タイプIDも各命令が処理命令であるか又はシーケンシング命令であるかを示す、請求項23に記載のアーキテクチャ。
  26. 前記命令ストリームが前記処理命令とシーケンシング命令の両方を含み、シーケンシング命令がインタープリテーションレジスタの値を変更するコマンドを含むことができる、請求項23に記載のアーキテクチャ。
  27. 前記命令ストリームが、前記処理命令と、前記シーケンシング論理にインタープリテーションレジスタの値を変更させるシーケンシング命令の両方を含む、請求項23に記載のアーキテクチャ。
  28. 前記シーケンシング要素が、SIMDコンフィギュレーションに含まれる複数の処理要素に対し、単一の命令ストリームを同報通信する、請求項23に記載のアーキテクチャ。
  29. 前記処理命令の各々が単一のopコードのみを含む、請求項23に記載のアーキテクチャ。
  30. 1のストリーム内において処理命令とシーケンシング命令とが混合されており、
    処理命令を受け取り、インタープリテーションレジスタを使用して処理命令の少なくとも一部を解凍することにより、1以上の処理要素用の実行可能なコマンドを生成する少なくとも1つのシーケンサーが接続され、且つ
    前記接続されるシーケンサーはシーケンシング命令も受け取って、前記シーケンシング命令の少なくとも1つに応じて前記インタープリテーションレジスタの値を変更することができる
    演算アーキテクチャ。
  31. 前記命令ストリームが、前記処理命令とシーケンシング命令の両方を含み、前記処理命令と前記シーケンシング命令の両方が前記タイプIDを含み、且つ前記タイプIDも、各命令が処理命令であるか又はシーケンシング命令であるかを示す、請求項30に記載のアーキテクチャ。
  32. 前記シーケンサーが、SIMDコンフィギュレーションに含まれる複数の処理要素に対し、単一の命令ストリームを同報通信する、請求項30に記載のアーキテクチャ。
  33. 前記処理命令の各々が単一のopコードのみを含む、請求項30に記載のアーキテクチャ。
  34. 請求項1に記載の演算装置を複数個相互接続してなる多重処理システム。
JP2009530595A 2006-09-28 2007-09-27 分類された命令のセットを使用した処理アーキテクチャ Expired - Fee Related JP5550099B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/536,483 US8572354B2 (en) 2006-09-28 2006-09-28 Programmable logic unit and method for translating and processing instructions using interpretation registers
US11/536,483 2006-09-28
PCT/US2007/079678 WO2008039908A2 (en) 2006-09-28 2007-09-27 Processing architectures with typed instruction sets

Publications (2)

Publication Number Publication Date
JP2010522904A true JP2010522904A (ja) 2010-07-08
JP5550099B2 JP5550099B2 (ja) 2014-07-16

Family

ID=39230968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009530595A Expired - Fee Related JP5550099B2 (ja) 2006-09-28 2007-09-27 分類された命令のセットを使用した処理アーキテクチャ

Country Status (5)

Country Link
US (2) US8572354B2 (ja)
EP (1) EP2082325A4 (ja)
JP (1) JP5550099B2 (ja)
SG (1) SG174841A1 (ja)
WO (1) WO2008039908A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101595637B1 (ko) 2011-04-01 2016-02-18 인텔 코포레이션 벡터 친숙형 명령어 형식 및 그의 실행
US10157061B2 (en) 2011-12-22 2018-12-18 Intel Corporation Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks
US9804839B2 (en) 2012-12-28 2017-10-31 Intel Corporation Instruction for determining histograms
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03209522A (ja) * 1990-01-11 1991-09-12 Matsushita Electric Ind Co Ltd 命令コード解読装置
US20020199083A1 (en) * 2001-06-20 2002-12-26 Sunplus Technology Co.,Ltd High code-density microcontroller architecture with changeable instruction formats
JP2003233496A (ja) * 2002-02-08 2003-08-22 Mitsubishi Electric Corp マイクロプロセッサ
EP1278118B1 (de) * 2001-07-19 2006-07-26 Infineon Technologies AG Verfahren und Vorrichtung zum Verarbeiten von Befehlen, die in einer Mehrzahl von Gruppen gruppiert sind

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5890222A (en) 1995-01-04 1999-03-30 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indirect addressing mode
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
US6219776B1 (en) 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
US6263429B1 (en) * 1998-09-30 2001-07-17 Conexant Systems, Inc. Dynamic microcode for embedded processors
US6754809B1 (en) 1999-12-30 2004-06-22 Texas Instruments Incorporated Data processing apparatus with indirect register file access
US6779101B1 (en) * 2000-03-07 2004-08-17 University Of Washington Method and apparatus for processing compressed VLIW subinstruction opcodes
US7181730B2 (en) * 2000-06-21 2007-02-20 Altera Corporation Methods and apparatus for indirect VLIW memory allocation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03209522A (ja) * 1990-01-11 1991-09-12 Matsushita Electric Ind Co Ltd 命令コード解読装置
US20020199083A1 (en) * 2001-06-20 2002-12-26 Sunplus Technology Co.,Ltd High code-density microcontroller architecture with changeable instruction formats
EP1278118B1 (de) * 2001-07-19 2006-07-26 Infineon Technologies AG Verfahren und Vorrichtung zum Verarbeiten von Befehlen, die in einer Mehrzahl von Gruppen gruppiert sind
JP2003233496A (ja) * 2002-02-08 2003-08-22 Mitsubishi Electric Corp マイクロプロセッサ

Also Published As

Publication number Publication date
SG174841A1 (en) 2011-10-28
EP2082325A2 (en) 2009-07-29
WO2008039908A3 (en) 2008-10-30
US20080082799A1 (en) 2008-04-03
EP2082325A4 (en) 2009-11-25
JP5550099B2 (ja) 2014-07-16
US8572354B2 (en) 2013-10-29
US20140052964A1 (en) 2014-02-20
WO2008039908A2 (en) 2008-04-03

Similar Documents

Publication Publication Date Title
US9495153B2 (en) Methods, apparatus, and instructions for converting vector data
US20180189066A1 (en) Processor
US5995122A (en) Method and apparatus for parallel conversion of color values from a single precision floating point format to an integer format
JP5739055B2 (ja) ベクトルフレンドリ命令フォーマット及びその実行
US6480868B2 (en) Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
TWI647613B (zh) 用於產生按數字順序的連續整數序列之處理器、方法、系統及指令(三)
US6502115B2 (en) Conversion between packed floating point data and packed 32-bit integer data in different architectural registers
TWI617978B (zh) 用於向量索引載入和儲存之方法和設備
US6292815B1 (en) Data conversion between floating point packed format and integer scalar format
CN103827813A (zh) 用于提供向量分散操作和聚集操作功能的指令和逻辑
CN103827814A (zh) 用于提供利用跨越功能的向量加载操作/存储操作的指令和逻辑
US9575757B2 (en) Efficient zero-based decompression
JP2002533815A (ja) 動的コンパクト命令を有するスケーラブル命令セットアーキテクチャのための方法及び装置
CN102473093A (zh) 对多个通道中的紧缩数据解压缩
CN105453071A (zh) 用来提供向量族群计数功能的方法、设备、指令和逻辑
CN103827815A (zh) 用于提供利用跨越和掩码功能的向量加载和存储的指令和逻辑
CN105359129A (zh) 用于提供用于基因组测序和比对的族群计数功能的方法、装置、指令以及逻辑
CN105612509A (zh) 用于提供向量子字节解压缩功能性的方法、设备、指令和逻辑
JP5550099B2 (ja) 分類された命令のセットを使用した処理アーキテクチャ
JP4901754B2 (ja) 単一命令複数データ実行エンジンのフラグレジスタのための評価ユニット
JP3905552B2 (ja) 複数の命令セットを有するデータ処理装置内における命令エンコード
TW201741868A (zh) 將來源緊縮資料劃分為巷道的處理器、方法、系統及指令
IE56443B1 (en) Microprogram control
JPH11306015A (ja) 演算処理方法及びそれを用いたマイクロコンピュータ
JPH04152431A (ja) 水平型プロセッサの高速化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130314

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130322

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130416

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130423

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130515

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140213

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140317

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140515

R150 Certificate of patent or registration of utility model

Ref document number: 5550099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees