JP5240424B2 - Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式 - Google Patents

Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式 Download PDF

Info

Publication number
JP5240424B2
JP5240424B2 JP2006542480A JP2006542480A JP5240424B2 JP 5240424 B2 JP5240424 B2 JP 5240424B2 JP 2006542480 A JP2006542480 A JP 2006542480A JP 2006542480 A JP2006542480 A JP 2006542480A JP 5240424 B2 JP5240424 B2 JP 5240424B2
Authority
JP
Japan
Prior art keywords
instruction
selection
instruction selection
information
control information
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.)
Expired - Fee Related
Application number
JP2006542480A
Other languages
English (en)
Other versions
JPWO2006049331A1 (ja
Inventor
昭倫 京
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2006542480A priority Critical patent/JP5240424B2/ja
Publication of JPWO2006049331A1 publication Critical patent/JPWO2006049331A1/ja
Application granted granted Critical
Publication of JP5240424B2 publication Critical patent/JP5240424B2/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • 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
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Image Processing (AREA)

Description

本発明は、SIMD型並列演算装置に関し、特に同一命令流に属する命令を並列に実行することが可能なVLIW(Very Long Instruction Word:超長命令語)方式に基づくプロセッシング・エレメント(PE)を有するSIMD型並列演算装置及びその制御方式に関する。
近年の技術の発展に伴い、多数のプロセッシング・エレメント(PE)を持った並列型の演算装置(以降、並列プロセッサ)が実用化されている。並列プロセッサの主な制御方式として、SIMD(Single Instruction Multiple Data stream:単一命令流・複数データ)方式とMIMD(Multiple Instruction Multiple Data stream:複数命令流・複数データ)方式とが存在する。
そのうちSIMD方式は、いわゆる「シーケンサ」と呼ばれる、プログラムメモリに格納された命令コードを解読し制御信号をPEへ送信する回路ブロックがPEの数に依存せず1つだけで済む構成であるため、各PEがそれぞれシーケンサを有して相異なる命令流で動作するMIMD方式と比べると、高い処理性能を実現するのに要する回路規模が数分の1(例えば8分の1)程度も少なくて済むという利点がある。
しかし、SIMD方式では、単一命令流によって多数のPEを制御することから、PE毎に演算の自律性がなく、処理すべき全データに対し同一の命令列を適用するタイプの処理(データ並列型処理)の場合は高い実効性能が得られるが、データの各部分集合毎にデータ値に依存した相異なる命令流を適用するタイプの処理(領域並列型処理)、あるいは、同一のデータセットに対し相異なる命令流を並列に適用するタイプの処理(タスク並列型処理)については、単一命令流による制御しかできないことから、多数のPEを有効に利用できず高い実効性能が得られないという問題が存在していた。
上記のような問題点を解決するために、例えば特開2001−273268号公報(文献1)では、先行する演算結果のフラグ値等により後続命令の動作を修飾するSIMD型並列プロセッサの回路構成を開示している。また、特表2001−523023号公報(文献2)では、各PEにプログラムメモリ並びに命令デコーダを付与し、単一のシーケンサから各PEへの動的なプログラムダウンロードやダウンロード済みプログラムの起動が行えるようなSIMD型並列プロセッサプロセッサの回路構成を開示している。
さらに、David E.Schimmel著「スーパースカラーSIMDアーキテクチャ」、「D.E.Schimmel:”Superscalar SIMD Architecture”,Proc.of 4th Symposium on the Frontiers of Massively Parallel Computation」、pp.573−576、1992年(文献3)では、単一シーケンサが同時に複数(例えばk個)の命令を全PEに放送(転送)すると共に、各PEは処理結果に応じて各自k命令の中から一つを選び実行する方式のSIMD型並列プロセッサを提案している。
上述した従来のSIMD型並列プロセッサにおいては、以下に述べるような問題が存在する。
文献1に開示されたSIMD型並列プロセッサでは、命令の動作を修飾する情報量が演算結果のフラグ値のビット幅程度に限定されていること、及び当該フラグ値が先行命令の演算結果で定義されているため、PE毎に非常に自由度の小さい演算の自律性しか実現できないという問題点がある。
また、文献2に開示されたSIMD型並列プロセッサでは、PE数に比例してプログラムメモリ分の回路規模が増加すること、及び実行時でのPE数に比例した分だけのプログラムダウンロード時間分のオーバーヘッドが増加するといった問題点がある。
さらに、文献3に開示されたSIMD型並列プロセッサでは、同時に複数(例えばk個)の命令を全PEに放送(転送)することから、命令放送のビット幅を複数倍(例えばk倍)に増やす必要があり、これにより回路規模が大きくなるという問題点がある。
本発明の目的は、回路規模を大きく増加させることなく、複数の命令流を同時に実行することができる命令流レベル並列性を実現することにより、SIMD型並列プロセッサ内のPEアレイの実行性能を改善するSIMD型並列プロセッサ及びその制御方式を提供することにある。
上記目的を達成するため本発明は、同一命令流に属する命令コードを並列に実行することが可能な超長命令語型のプロセッシング・エレメントを有するSIMD型並列演算装置であって、並列実行可能な命令コードの数以下の相異なる複数の命令流に属する並列実行可能な命令コードを、前記命令流に伴って放送される命令選択情報に基づいて選択し前記プロセッシング・エレメントで実行する構成としている。
本発明の好ましい態様では、k個の命令コード及び前記命令選択情報を前記各プロセッシング・エレメントに放送するシーケンサと、前記各プロセッシング・エレメントの前記命令流に対する動作非動作を指定するkビット以上の値を格納するマスクレジスタと、k個の命令コードを最大k個の相異なる命令流に復元する命令選択回路と、前記マスクレジスタの値と前記命令選択情報を入力とし、前記命令選択回路を制御するための命令選択制御信号を出力とする命令選択制御ユニットとを有する構成としている。
図1は、本発明のVLIW方式に基づくSIMD型並列演算装置の基本構成を示すブロック図である。
図2は、第1の実施の形態による、4命令並列実行を可能としたSIMD型並列演算装置の構成を示すブロック図である。
図3は、第1の実施の形態によるSIMD型並列演算装置のセレクタMXにおける、制御情報選択信号MCに基づく制御情報の選択動作を説明するフローチャートである。
図4は、k=4(4命令並列実行)とした第1の実施の形態によるSIMD型並列演算装置に放送される4つの命令流の例を示す図である。
図5は、図4に示す4つの命令流が放送された場合における、第1の実施の形態によるSIMD型並列演算装置の並列処理の動作を説明するための命令コード列の例を示す図である。
図6は、図4に示す4つの命令流が放送された場合における、第1の実施の形態によるSIMD型並列演算装置の並列処理の動作を説明するための命令コード列と制御情報X1〜X4による制御動作の内容を説明する図である。
図7は、第2の実施の形態による、4命令並列実行を可能としたSIMD型並列演算装置の構成を示すブロック図である。
図8は、k=4(4命令並列実行)とした第2の実施の形態によるSIMD型並列演算装置に放送される4つの命令流の例を示す図である。
図9は、図8に示す4つの命令流が放送された場合における、第2の実施の形態によるSIMD型並列演算装置の並列処理の動作を説明するための命令コード列の例を示す図である。
図10は、図8に示す4つの命令流が放送された場合における、第2の実施の形態によるSIMD型並列演算装置の並列処理の動作を説明するための命令コード列と制御情報X1〜X4による制御動作の内容を説明する図である。
図11は、第3の実施の形態による、4命令並列実行を可能としたSIMD型並列演算装置の、命令選択制御ユニットSUの構成を示すブロック図である。
図12は、第3の実施の形態による、4命令並列実行を可能としたSIMD型並列演算装置のサブ制御情報X10を用いて5ビットのマスクレジスタMRの中から4ビットを選び出すセレクタDXの動作を説明するフローチャートである。
図13は、第3の実施の形態による、4命令並列実行を可能としたSIMD型並列演算装置における、サブ制御情報X11の4つのセレクタM1〜M4を制御する制御内容示す図である。
図14は、第3の実施の形態によるSIMD型並列演算装置のセレクタMXにおける、制御情報選択信号MCに基づく制御情報の選択動作を説明するフローチャートである。
図15は、第3の実施の形態によるSIMD型並列演算装置に放送される5つの命令流の例を示す図である。
図16は、図15に示す命令流における条件の内容を示す図である。
図17は、図15に示す5つの命令流が放送された場合における、第2の実施の形態によるSIMD型並列演算装置の並列処理の結果を説明するための命令コード列の例を示す図である。
図18は、図15に示す5つの命令流が放送された場合における、第3の実施の形態によるSIMD型並列演算装置の並列処理の結果を説明するための命令コード列の例を示す図である。
図19は、図15に示す5つの命令流が放送された場合における、第3の実施の形態によるSIMD型並列演算装置の並列処理の動作を説明するための命令コード列と制御情報X10及び制御情報X2〜X4による制御動作の内容を説明する図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図中の符号の説明を以下に示す。
100:命令選択回路SEL、101:マスクレジスタMR、102:命令選択制御ユニットSU、103:シーケンサCP、104:命令スロットS1〜Sk、106:命令選択情報コードX、107:命令選択制御信号CX、108:命令レジスタIR1〜IRk、109:PEアレイ、110:PE、111:命令デコーダD1〜Dk、112:演算器E1〜Ek、113:汎用レジスタファイルREG、201:セレクタM1〜M4、202:制御情報X1〜X4、203:セレクタMX、204:制御情報選択信号MC、401:サブ制御情報X10、402:サブ制御情報X11、403:セレクタDX、404:デコーダDC、500、700、902:命令列
図1を参照すると、本発明のVLIW方式に基づくSIMD型並列演算装置は、最大k(kは2以上の整数)個の依存関係にない命令を同時実行できるkウェイのVLIW(Very Long Instruction Word:超長命令語)方式に基づくn個のPE(110)〜PEn(110)を結合することにより構成されたPEアレイ(109)、当該PEアレイ(109)を制御する1つのシーケンサCP(制御プロセッサ(Control Processor))(103)で構成されている。
シーケンサCP(103)は、k個の命令コードS1〜Sk(104)を各PEに放送する以外に、命令選択情報コードX(106)を各PE(110)〜PEn(110)に放送する。
各VLIW型PE(110)〜PEn(110)は、各PE1(110)〜PEn(110)が持つk個の命令レジスタIR1〜IRk(108)へ命令を格納する前に命令の選択を行う(k個の命令コードを最大k個の相異なる命令流に復元する)命令選択回路SEL(100)、最大W個の命令流の内のどれを実行するかを表すW(W≧k)ビットの排他的(Wビット中の任意の1ビットだけが1)マスクレジスタMR(101)、及びマスクレジスタMR(101)と命令選択情報コードX(106)を入力とし、命令選択情報コードX(106)をマスクレジスタMR(101)の値に基づきその一部を選択し、命令選択回路SEL(100)を制御する命令選択制御信号CX(107)として出力とする命令選択制御ユニットSU(102)とを有する。
最大k個の命令を同時実行できるVLIW型PEによって構成されたPEアレイを有するSIMD型並列演算装置は、これまで同一命令流内で隣接して存在する並列処理可能な命令の同時実行(命令レベル並列性)がk個に満たない場合に空き(NOP)となっていた命令コードS1〜Sk(104)を、命令流レベル並列性(タスクレベル並列性)が存在する場合に、最大k種類の命令流の同時放送に利用する。
その際、各PE1(110)〜PEn(110)において当該命令流を解読するのに必要な情報を命令選択情報コードX(106)として同時に全PEに向け放送する。
シーケンサCP(103)からの命令コードS1〜Sk(104)の放送を受けたPEアレイ109側では各PEが命令選択制御ユニットSU(102)において、各PE上でのデータ演算結果に基づき設定された(当該PEがどの命令流を実行すべきかを示す)マスクレジスタMR(101)の値を元に、シーケンサCP(103)から放送された命令選択情報コードX(106)の中から必要な部分を切り出し、それを命令選択制御信号CX(107)として命令選択回路(100)の制御に利用することで、CP(103)から放送されたk個の命令コードS1〜Sk(104)の中から0〜k個の命令を選択し命令レジスタ(108)へ投入し次クロック以降での実行に備える。
図2は、本発明の第1の実施の形態によるVLIW方式に基づくSIMD型並列演算装置(プロセッサ)の構成を示すブロック図である。なお、ここでは、説明を簡単にするため、kを4、命令コードのビット数を32ビットとした場合について説明する。
第1の実施の形態では、VLIW型PEアレイ109は、4(=k)つのPE1(110)〜PE4(110)を有しており、各PE1(110)〜PE4(110)は、それぞれ、4個の命令レジスタIR1(108)〜IR4(108)へ命令を格納する前に命令の選択を行う命令選択回路SEL(100)、最大4個の命令流の内のどれを実行するかを指定する4ビットの排他的(4ビット中の任意の1ビットだけが「1」)マスクレジスタMR(101)、シーケンサCP(103)から放送される命令選択情報コードX(106)を構成する制御情報X1〜X4の中からマスクレジスタMR(101)の制御情報選択信号MC(204)の値に基づき1つを選択し、その結果を命令選択回路SEL(100)を制御するための命令選択制御信号CX(107)として出力する命令選択制御ユニットSU(102)を備える。
また、各PE1(110)〜PE4(110)は、命令レジスタIR1(108)〜IR4(108)に格納された命令をデコードする命令デコーダD1(111)〜D4(111)、デコードされた命令によるデータ演算を行う演算器E1(112)〜E4(112)及びデータ演算の結果を格納する汎用レジスタファイルREG(113)を備える。
命令選択回路SEL(100)は、5つの入力から1つを選択する(k+11の選択)を行う4つのセレクタM1(201)〜M4(201)で構成されており、kが「4」の場合ではセレクタ毎に3ビット、計12ビットの制御信号でセレクタM1(201)〜M4(201)を制御することが可能である。
そこで、シーケンサCP(103)は、命令処理ステップ毎に、命令コードS1〜S4(104)に加え、12ビット×4(=k)セット、すなわち48ビットの命令選択情報コードX(106)を全PEに放送する。
各PE1(110)〜PE4(110)では、命令選択制御ユニットSU(102)内で、セレクタMX(203)が制御情報選択信号MC(204)に基づき制御情報X1〜X4の中から1つを選び、選択した制御情報を命令選択回路SEL(100)に対して命令選択制御信号CX(107)として出力する。
図3は、セレクタMX(203)における、制御情報選択信号MC(204)に基づく制御情報X1〜X4の選択動作を説明するフローチャートである。
図3において、セレクタMX(203)は、マスクレジスタMR(101)からの制御情報選択信号MC(204)が「1000」であれば制御情報X1を、「0100」であれば制御情報X2を、「0010」であれば制御情報X3を、「0001」であれば制御情報X4を、命令選択制御信号CX(107)として出力する。
また、制御情報選択信号MC(204)が上記の値の何れでもない場合には、セレクタM1(201)〜M4(201)のそれぞれでNOP(No Operation)を選択する制御情報を命令選択制御信号CX(107)として出力するものとする。
上記第1の実施の形態では、全PEに放送すべきデータのビット数は、命令コードS1(104)〜S4(104)について128(=32×4)ビットと、命令選択情報コードX(106)の48ビットの合計で176ビットであり、すなわち本発明を適用したことによる全PEへ放送すべき命令関連の情報量の増加は約38%程度に留まる。
一方、上記のように構成される第1の実施の形態によるVLIW方式に基づくSIMD型並列演算装置では、最大で4つの相異なる命令流を並列に処理できるようになる。以下、第1の実施の形態によるVLIW方式に基づくSIMD型並列演算装置の命令流の並列処理について説明する。
ここで、図4に示すような4つの並列に実行可能な命令流A〜Dの命令コード列が放送される場合を例にとって説明する。
図4の場合、各命令流A〜Dを逐次的に実行した場合では、命令流Aに6ステップ、命令流Bに8ステップ、命令流Cに5ステップ、命令流Dに4ステップの命令処理ステップがそれぞれ必要であり、合計23命令処理ステップが必要となる。
これに対して、本発明の第1の実施の形態によるVLIW方式に基づくSIMD型並列演算装置では、命令流A〜Dの命令コードを、図5に示すような命令列500に従って、その各行の命令コードをステップ毎にシーケンサCP(103)から全PE(PE1〜PE4)に放送し、同時にステップ毎に図6に示すようにセレクタM1(201)〜M4(201)の動作を制御するための制御情報X1〜X4からなる命令選択制御コードX(106)を全PEに放送すれば、8命令処理ステップで全命令流の処理が終了する。この場合、図4の各命令流A〜Dを逐次的に実行した場合に比べて約2.9倍の高速化が実現されることになる。
ただし、マスクレジスタMR(101)に設定される4ビットの制御情報選択信号MC(204)については、その第0ビット目から第3ビット目には以下のような規則に基づいて予め値が格納されている。
すなわち、制御情報選択信号MC(204)は、あるPEが命令流Aを実行する場合は第1ビット目に「1」(それ以外のビットは全てゼロ)、命令流Bを実行する場合は第2ビット目に「1」(それ以外のビットは全てゼロ)、命令流Cを実行する場合は第3ビット目に「1」(それ以外のビットは全てゼロ)、そして命令流Dを実行する場合は第4ビット目に「1」(それ以外のビットは全てゼロ)という規則に基づいた値が格納されているものとする。
この制御情報選択信号MC(204)の値は、各PE上での演算器E1〜E4でのデータ演算結果に基づいて設定される。
また、制御情報X1〜X4は、各PE1(110)〜PE4(110)のセレクタM1〜M4に対して命令コード(S1〜S4)を選択するかを指定する。
例えば、図6のステップ1では、各PEのセレクタM1でそれぞれ命令コードS1、S2、S3、S4が選択され、各命令流A〜Dの命令コードA1、B1、C1、D1がそれぞれ実行される。
このように、マスクレジスタMR(101)の制御情報選択信号MC(204)によって最大4つの命令流を各PEに割り当てると共に、各PEに対応する制御情報X1〜X4によって各PEのどのセレクタでどの命令コードを選択するかを指定することで、図6に示すような命令流の並列処理が実現される。
なお、命令選択回路SEL(100)内のセレクタM1〜M4については、図2で示した、5つの入力から1つを選択(k+11の選択)する論理以外の選択方法によって、命令コードS1〜S4(104)を選択することも可能である。例えば、セレクタM1〜M4を全て21の選択を行うセレクタとすることも可能である。このような構成とすれば、命令選択回路SEL(100)を実現するための回路規模、及び命令選択情報コードX(106)の全ビット数を減らすことが可能となる。ただし、その場合、シーケンサCP(103)から放送可能な命令列の組合せに対し制約が増加し、空きとなった命令コードS1〜S4(104)の有効利用が損なわれる可能性も発生する。
以上のように、第1の実施の形態におけるVLIW方式に基づくSIMD型並列演算装置によれば、最大k個の命令を同時に実行できるkウェイVLIW方式に基づくPEによって構成されたPEアレイを有するSIMD型並列演算装置が元来備わるk命令分の命令流経路を、その本来の目的である同一命令流内で隣接して存在する並列処理可能な命令の同時実行(命令レベル並列性と呼ぶ)に利用するのみならず、命令レベル並列性が不足するケースでは、複数命令流の同時実行(命令流レベル並列性)の実現にも利用できるようにし、それによりPEアレイの実行性能を改善すること可能となる。
図7は、本発明の第2の実施の形態によるVLIW方式に基づくSIMD型並列演算装置の構成を示すブロック図である。なお、説明を簡単にするため、上記第1の実施の形態と同様、kが「4」、命令コードのビット数が32ビットであるとする。
本発明の第2の実施の形態においては、命令選択回路SEL(100)のセレクタM1(201)〜M4(201)の構成をより簡単化した点、命令選択情報コードX(106)のビット幅を1とした点、そして命令コードトS1〜S4(104)のうちの一つ(図7では命令コードS4)を命令選択制御ユニットSU(102)に入力している点、そして命令選択制御ユニットSU(102)内部に新たなセレクタSX(305)を備える点において、第1の実施の形態と相違する。
以下、上記の第1の実施の形態との相違点について主に説明する。
命令選択回路SEL(100)は、セレクタM1〜M4がそれぞれ4つの入力から1つを選択する(41の選択)を行うセレクタが採用さえており、セレクタ毎に2ビット、合計8ビットの制御信号でセレクタM1(201)〜M4(201)を制御することが可能となっている。
また、命令選択制御ユニットSU(102)に追加されたセレクタSX(305)において、シーケンサCP(103)からの1ビットの命令選択情報コードX(106)の値が「0」である場合は、予め設定された既定制御情報X0(306)を命令選択制御信号CX(107)として出力するように構成されている。
この既定制御情報X0(306)は、命令選択回路SEL(100)内のセレクタM1がS1、セレクタM2がS2、セレクタM3がS3、そしてセレクタM4がS4を選択するように指定するものである。
命令選択情報コードX(106)の値が「1」の場合、セレクタSX(305)は、セレクタMX(203)で選択された制御情報X1〜X4を命令選択制御信号CX(107)として出力する。
ここで、セレクタMX(203)へ入力される、各8ビットで計32ビットの制御情報X1〜X4(202)には、命令コードS4を使用する。
上記のように第2の実施の形態では、4ウェイのVLIW方式に基づくPEアレイを有し、各命令コード(命令ワード)が32ビットで構成されているSIMD型並列演算装置において、シーケンサCP(103)が放送する命令関連の情報のビット幅を、命令選択制御コードX(106)の分の1ビット増加させるだけで、単一命令流動作(命令選択情報コードX(106)の値が「0」)の場合では同一命令流に属する最大4(=k)個の並列実行可能な命令コードを、複数命令流動作(命令選択情報コードX(106)の値が「1」)の場合では、最大3(=k−1)個の命令流に属する並列実行可能な命令コードを命令処理ステップ毎にPEアレイに放送することにより実行させることができるようになる。
以下、第2の実施の形態によるVLIW方式に基づくSIMD型並列演算装置の命令流の並列処理について説明する。
ここで、図8に示すような4つの並列に実行可能な命令流A〜Dの命令コード列が放送される場合における並列処理を例にとって説明する。
図8に示すような図4と同様の4つの並列に実行可能な命令流A〜Dの命令コード列が放送される場合、各命令流A〜Dを逐次的に実行すると合計23命令処理ステップが必要となることについては、第1の実施の形態で説明した通りである。
この第2の実施の形態に基づくSIMD型並列演算装置に、図9に示すような命令列(700)に従って、その各行の命令コードをステップ毎にシーケンサCP(103)から全PE(PE1〜PE4)に放送し、同時にステップ毎に図10に示すようにセレクタM1〜M4の選択動作を制御するための制御情報X1〜X4からなる命令選択制御信号X(106)を命令コードS4のパスを利用し全PEに放送すれば、9命令処理ステップで全命令流の処理を終了させることができるる。
この場合、図8の各命令流A〜Dを逐次的に実行した場合に比べて約2.6倍の高速化が実現される。
ただし、第1の実施の形態と同様、マスクレジスタMR(101)に設定される4ビットの制御情報選択信号MC(204)については、その第1ビット目から第4ビット目には以下のような規則に基づいて予め値が格納されている。
すなわち、制御情報選択信号MC(204)は、命令流Aを実行する場合は第1ビット目に「1」(それ以外のビットは全てゼロ)、命令流Bを実行する場合は第2ビット目に「1」(それ以外のビットは全てゼロ)、命令流Cを実行する場合は第3ビット目に「1」(それ以外のビットは全てゼロ)、命令流Dを実行する場合は第4ビット目に「1」(それ以外のビットは全てゼロ)という規則に基づいた値が格納されているものとする。
この制御情報選択信号MC(204)の値は、各PE上での演算器E1〜E4でのデータ演算結果に基づいて設定される。
本発明の第1と第2の実施の形態におけるハードウェアコストと効果を対比させると、第1の実施の形態ではシーケンサCP(103)から全PEへ放送する情報のビット数を48ビット増やす必要があるのに対し、本第2の実施の形態では1ビット増やすだけでよく、かつ当該1ビットの情報は単一命令流実行から複数命令流実行に切り替える際及びその逆の際に更新すればよい。命令選択回路SEL(100)に関しても、本第2の実施の形態の方が、第1の実施の形態よりも回路規模を小さくすることができる。
ただし、第1の実施の形態では最大4つの命令流を同時に4つの全てのPEに対し放送できるのに対し、本第2の実施の形態では最大3つの命令流までしか同時にPEに対し放送することができない。
例えば、図4から図6、図8から図10の例から分かるように、同じような4つの命令流A〜Dを処理するのに、第1の実施の形態を採った場合では8命令処理ステップ、第2の実施の形態を採った場合では9命令処理ステップ、というように性能差が発生する。
第1の実施の形態と第2の実施の形態の何れかを採用すべきかについては、回路規模と要求する性能とのトレードオフを考慮のうえ決定する必要がある。
以上のように、第2の実施の形態に従ったVLIW方式に基づくSIMD型並列演算装置によれば、第1の実施の形態と同様に、PEアレイの実行性能を改善すること可能であると共に、回路規模をより小さくすることができる。
図11は、本発明の第3の実施の形態によるVLIW方式に基づくSIMD型並列演算装置の命令選択制御ユニットSU(102)の構成を示すブロック図である。なお、説明を簡単にするため、上記第1及び第2の実施の形態と同様、kが「4」、命令コードのビット数が32ビットであるとする。
本発明の第3の実施の形態においては、第2の実施の形態と比べ、マスクレジスタMR(101)のビット数を、同一命令流に属する並列実行可能な命令コードの数k(本実施の形態の場合「4」)に制約されずに、kを超えたビット数とすることができる点、命令選択制御ユニットSU(102)内のセレクタMX(203)への入力である制御情報X1〜X4(202)のうち、制御情報X1(8ビット)の内容をさらにサブ制御情報X10(401)とサブ制御情報X11(402)の2組の4ビット情報に分け、サブ制御情報X10の4ビットで新たに追加されたセレクタDX(903)を制御し、4(=k)を超えるビット数を有するマスクレジスタMR(101)のビット列の中から4(=k)ビットを選び出すようにしている点、そしてサブ制御情報X11(402)をデコーダDC(404)を用いて8ビットに拡張した後、制御情報X1に代わりセレクタMX(203)へ入力している点において相違する。
この第3の実施の形態においては、命令選択制御ユニットSU(102)以外の構成については、上記第2の実施の形態の構成と同じである。
セレクタDX(903)は、4ビットのサブ制御情報X10(401)を用いることにより、4(=k)を超えるビット数を有するマスクレジスタMR(101)のビット列の中から4(=k)ビットを選び出すように動作する。
マスクレジスタMR(101)のビット数をkより「1」大きい「5」とした場合を例にとって、サブ制御情報X10(401)を用いて5ビットのマスクレジスタMR(101)の中から計4(=k)ビットを選び出すセレクタDX(903)の動作をフローチャートを図12に示す。
図12において、セレクタDX(903)は、4ビットのサブ制御情報X10(401)が「0000」であればマスクレジスタMR(101)の第1ビット、第2ビット、第3ビット、第4ビットを、それぞれ第1ビット、第2ビット、第3ビット、第4ビットとするビット列を出力し、「1000」であればマスクレジスタMR(101)の第2ビット、第3ビット、第4ビット、第5ビットを、それぞれ第1ビット、第2ビット、第3ビット、第4ビットとするビット列を出力し、「0100」であればマスクレジスタMR(101)の第1ビット、第3ビット、第4ビット、第5ビットを、それぞれ第1ビット、第2ビット、第3ビット、第4ビットとするビット列を出力し、「0010」であればマスクレジスタMR(101)の第1ビット、第2ビット、第4ビット、第5ビットを、それぞれ第1ビット、第2ビット、第3ビット、第4ビットとするヒット列を出力する。
また、サブ制御情報X10(401)が「0001」である場合、マスクレジスタMR(101)の第1ビット、第2ビット、第4ビット、第5ビットを、それぞれ第1ビット、第2ビット、第3ビット、第4ビットとするビット列を出力する。
デコーダDC(404)は、4ビットのサブ制御情報X11(402)を、4つのセレクタM1〜M4(201)制御するための8ビット制御信号であって、図13に示す制御内容を実行するための制御情報X10(400)に変換して出力する。
すなわち、図13の例では、サブ制御情報X11(402)の4ビットのうち、第1のビットがセレクタM1に、第2ビットがセレクタM2に、第3ビットがセレクタM3に、そして第4ビットがセレクタM4に対応しており、第1から第4のビットが「1」の場合にセレクタM1〜M4がそれぞれ命令コードS1〜S4を選択し、「0」の場合にNOPを選択するように制御する。
デコーダDC(404)によってサブ制御情報X11(402)を8ビットの制御情報X10(400)に変換するのは、セレクタMX(203)に入力する制御情報X2〜X4のビット数と整合性を持たせるためであり、例えば、サブ制御情報X11(402)の下位(第5ビット〜第8ビット)に4ビット分「0」をパディングすることで8ビットに変換する。
セレクタMX(203)は、制御情報選択信号MC(204)に基づき制御情報X10(400)及び制御情報X2〜X4(202)の中から1つを選択し、命令選択回路SEL(100)に対して命令選択制御信号CX(107)として出力する。
図14は、セレクタMX(203)における、制御情報選択信号MC(204)に基づく制御情報X10(400)及び制御情報X2〜X4の選択動作を説明するフローチャートである。
図14において、セレクタMX(203)は、マスクレジスタMR(101)からの制御情報選択信号MC(204)が「1000」であれば制御情報X10(400)を、「0100」であれば制御情報X2を、「0010」であれば制御情報X3を、「0001」であれば制御情報X4を、命令選択制御信号CX(107)として出力する。
また、制御情報選択信号MC(204)が上記の値の何れでもない場合には、セレクタM1(201)〜M4(201)のそれぞれがNOP(No Operation)を選択するように制御する制御情報を命令選択制御信号CX(107)として出力するものとする。
上記本発明の第3の実施の形態は、本発明の第2の実施の形態と比較して、上記のように同一命令流に属する並列実行可能な命令コードの数kよりも大きいビット数のマスクレジスタMR(101)を利用できるようになっているため、より多数の並列実行可能な命令流が存在する場合に、より効率よく命令処理ステップ数を短縮できるようになる。
以下、その理由について、第3の実施の形態によるVLIW方式に基づくSIMD型並列演算装置の命令流の並列処理の動作と共に説明する。
ここで、図15に示すような5つの並列に実行可能な命令流A〜Eの命令コード列が放送される場合における並列処理を例にとって説明する。
図15は、5つの並列に実行可能な命令流A〜Eの命令コード列が存在し、かつ命令流Eに関しては、図16に示すような条件が存在する例である。
図15に示すような5つの並列に実行可能な命令流A〜Eの命令コード列が放送される場合、各命令流A〜Eを逐次的に実行すると合計28命令処理ステップが必要となる。
また、上記の第2の実施の形態を用いた場合、マスクレジスタMR(101)のビット数がk(=4)であるため、同時には最大で4つの命令流までしか並列に実行できず、したがって命令処理ステップ数は、図17に示すように計14ステップかかってしまうことになる。
これに対し、本第3の実施の形態に基づくSIMD型並列演算装置に、図18に示すような命令列(902)に従って、その各行の命令コードを各ステップ毎に、シーケンサCP(103)から全PEに放送し、同時にステップ毎に図19に示すようにセレクタM1〜M4の選択動作を制御するための制御情報X10(400)と制御情報X2〜X4(202)からなる命令選択制御信号X(106)を全PEに放送し、かつ図19に示すようにセレクタDX(403)を制御することにより、5ビットのマスクレジスタMR(101)から4ビットを選び出し制御情報選択信号MC(204)としてセレクタMX(203)に供給すれば、9命令処理ステップで5つの全命令流の処理を終了させることができる。
この場合、第2の実施の形態を利用した場合の処理と比べて、約1.6倍の高速化を実現できるものである。
ただし、第1の実施の形態と同様、マスクレジスタMR(101)に設定される5ビットの制御情報選択信号MC(204)については、その第1ビット目から第5ビット目には以下のような規則に基づいて予め値が格納されている。
すなわち、制御情報選択信号MC(204)は、命令流Aを実行する場合は第1ビット目に「1」(それ以外のビットは全てゼロ)、命令流Bを実行する場合は第2ビット目に「1」(それ以外のビットは全てゼロ)、命令流Cを実行する場合は第3ビット目に「1」(それ以外のビットは全てゼロ)、命令流Dを実行する場合は第4ビット目に「1」(それ以外のビットは全てゼロ)、そして命令流Eを実行する場合は第5ビット目に「1」(それ以外のビットは全てゼロ)という規則に基づいた値が格納されているものとする。
このように本発明の第3の実施の形態によれば、本発明の第2の実施の形態を利用した場合と比べ、相異なる命令流同士が同一命令処理ステップにおいて同一命令を実行する場合に、より高速な処理を実現することができる。
特に、高級言語記述から命令コード列を自動生成するコンパイラを利用した場合には、同じ命令シーケンスが相異なる命令流中に同時に出現する可能性が高いため、本発明の第3の実施の形態の有効性が顕著となる。
以上好ましい複数の実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
例えば、上記第1から第3の実施の形態では、kを4、命令コードのビット数を32ビットとした場合の回路構成について説明したが、kが2以上であれば、上記以外の構成についても本発明を適用することができるのは言うまでもない。
本発明によれば、一つのシーケンサで複数の命令流を同時に実行することができるVLIW方式に基づくプロセッシングエレメントを有するSIMD方式の演算処理装置を実現することが可能となる。

Claims (18)

  1. 同一命令流に属する命令コードを並列に実行することが可能な超長命令語型のプロセッシング・エレメントを有するSIMD型並列演算装置であって、
    並列実行可能な命令コードの数以下の相異なる複数の命令流に属する並列実行可能な命令コードを、前記命令流に伴って放送される命令選択情報に基づいて選択し前記プロセッシング・エレメントで実行し、
    k(kは2以上の整数)個の命令コード及び前記命令選択情報を前記各プロセッシング・エレメントに放送するシーケンサと、
    前記各プロセッシング・エレメントの前記命令流に対する動作又は非動作を指定するkビット以上の値を格納するマスクレジスタと、
    k個の命令コードを最大k個の相異なる命令流に復元する命令選択回路と、
    前記マスクレジスタの値と前記命令選択情報を入力とし、前記命令選択回路を制御するための命令選択制御信号を出力とする命令選択制御ユニットとを有し、
    前記命令選択情報が、前記命令選択回路のセレクタの選択動作を制御するk個の制御情報からなる
    ことを特徴とするSIMD型並列演算装置。
  2. 前記命令選択回路が、
    k+1の入力から1を選択するk個のセレクタであって、k個の前記命令コードを選択するセレクタを備え、
    前記命令選択制御ユニットが、
    前記k個の制御情報を、前記マスクレジスタの値に基づいて選択し、前記命令選択制御信号として前記命令選択回路に出力することを特徴とする請求項1に記載のSIMD型並列演算装置。
  3. 前記シーケンサが放送する命令選択情報に応じ、前記各プロセッシング・エレメントが、単一命令流動作と複数命令流動作の切り替えを行い、
    前記命令選択制御ユニットが、
    前記単一命令流動作の場合、予め設定された既定値を前記命令選択制御信号として出力し、複数命令流動作の場合、k個の命令コードのうちの1つを前記命令選択情報として入力することを特徴とする請求項1に記載のSIMD型並列演算装置。
  4. 前記命令選択回路が、
    kの入力から1を選択するk個のセレクタであって、k−1個の前記命令コードを選択するセレクタを備え、
    前記命令選択制御ユニットが、
    前記シーケンサが放送する1ビットの命令選択情報の値に応じて、予め設定された既定値を前記命令選択制御信号として出力し、又は前記k個の制御情報を、前記マスクレジスタの値に基づいて選択し、前記命令選択制御信号として前記命令選択回路に出力することを特徴とする請求項3に記載のSIMD型並列演算装置。
  5. 前記各プロセッシング・エレメントの命令選択制御ユニットが、
    前記複数命令流動作の場合に、kより大きなビット数の前記マスクレジスタからk個のビットを選び出すためのセレクタを有することを特徴とする請求項3又は請求項4に記載のSIMD型並列演算装置。
  6. 前記制御情報の1つを2つのサブ制御情報に分け、一方の前記サブ制御情報をデコードして当該制御情報として利用すると共に、他方の前記サブ制御情報を、前記セレクタを制御して前記マスクレジスタからk個のビットを選択するのに利用することを特徴とする請求項5に記載のSIMD型並列演算装置。
  7. 同一命令流に属する命令コードを並列に実行することが可能な超長命令語型のプロセッシング・エレメントを有するSIMD型並列演算装置における制御方法であって、
    並列実行可能な命令コードの数以下の相異なる複数の命令流に属する並列実行可能な命令コードを、前記命令流に伴って放送される命令選択情報に基づいて選択するステップと、
    前記選択した前記命令コードを前記プロセッシング・エレメントで実行させるステップと、
    シーケンサが、k(kは2以上の整数)個の命令コード及び前記命令選択情報を前記各プロセッシング・エレメントに放送するステップと、
    命令選択制御ユニットが、前記各プロセッシング・エレメントの前記命令流に対する動作又は非動作を指定するkビット以上の値を格納するマスクレジスタの値と前記命令選択情報を入力とし、k個の命令コードを最大k個の相異なる命令流に復元する命令選択回路を制御するための命令選択制御信号を出力とするステップとを有し、
    前記命令選択情報が、前記命令選択回路のセレクタの選択動作を制御するk個の制御情報からなる
    ことを特徴とする制御方法。
  8. 前記命令選択回路が、k+1の入力から1を選択するk個のセレクタであって、k個の前記命令コードを選択するセレクタを備え、
    前記命令選択制御ユニットが、前記k個の制御情報を、前記マスクレジスタの値に基づいて選択し、前記命令選択制御信号として前記命令選択回路に出力するステップを有することを特徴とする請求項7に記載の制御方法。
  9. 前記シーケンサが放送する命令選択情報に応じ、前記各プロセッシング・エレメントが、単一命令流動作と複数命令流動作の切り替えを行い、
    前記命令選択制御ユニットが、前記単一命令流動作の場合、予め設定された既定値を前記命令選択制御信号として出力し、複数命令流動作の場合、k個の命令コードのうちの1つを前記命令選択情報として入力することを特徴とする請求項7に記載の制御方法。
  10. 前記命令選択回路が、kの入力から1を選択するk個のセレクタであって、k−1個の前記命令コードを選択するセレクタを備え、
    前記命令選択制御ユニットが、前記シーケンサが放送する1ビットの命令選択情報の値に応じて、予め設定された既定値を前記命令選択制御信号として出力し、又は前記k個の制御情報を、前記マスクレジスタの値に基づいて選択し、前記命令選択制御信号として前記命令選択回路に出力することを特徴とする請求項9に記載の制御方法。
  11. 前記各プロセッシング・エレメントの命令選択制御ユニットが、前記複数命令流動作の場合に、kより大きなビット数の前記マスクレジスタからk個のビットを選び出すことを特徴とする請求項9又は請求項10に記載の制御方法。
  12. 前記制御情報の1つを2つのサブ制御情報に分け、一方の前記サブ制御情報をデコードして当該制御情報として利用すると共に、他方の前記サブ制御情報を、前記セレクタを制御して前記マスクレジスタからk個のビットを選択するのに利用することを特徴とする請求項11に記載の制御方法。
  13. SIMD型並列演算装置を構成する同一命令流に属する命令コードを並列に実行することが可能な超長命令語型のプロセッシング・エレメントであって、
    並列実行可能な命令コードの数以下の相異なる複数の命令流に属する並列実行可能な命令コードを、前記命令流に伴って放送される命令選択情報に基づいて選択して実行し、
    シーケンサから放送されるk(kは2以上の整数)個の命令コード及び前記命令選択情報を入力し、
    前記命令流に対する動作又は非動作を指定するkビット以上の値を格納するマスクレジスタと、
    k個の命令コードを最大k個の相異なる命令流に復元する命令選択回路と、
    前記マスクレジスタの値と前記命令選択情報を入力とし、前記命令選択回路を制御するための命令選択制御信号を出力とする命令選択制御ユニットとを有し、
    前記命令選択情報が、前記命令選択回路のセレクタの選択動作を制御するk個の制御情報からなる
    ことを特徴とするプロセッシング・エレメント。
  14. 前記命令選択回路が、
    k+1の入力から1を選択するk個のセレクタであって、k個の前記命令コードを選択するセレクタを備え、
    前記命令選択制御ユニットが、
    前記k個の制御情報を、前記マスクレジスタの値に基づいて選択し、前記命令選択制御信号として前記命令選択回路に出力することを特徴とする請求項13に記載のプロセッシング・エレメント。
  15. 前記シーケンサが放送する命令選択情報に応じ、単一命令流動作と複数命令流動作の切り替えを行い、
    前記命令選択制御ユニットが、
    前記単一命令流動作の場合、予め設定された既定値を前記命令選択制御信号として出力し、複数命令流動作の場合、k個の命令コードのうちの1つを前記命令選択情報として入力することを特徴とする請求項13に記載のプロセッシング・エレメント。
  16. 前記命令選択回路が、
    kの入力から1を選択するk個のセレクタであって、k−1個の前記命令コードを選択するセレクタを備え、
    前記命令選択制御ユニットが、
    前記シーケンサが放送する1ビットの命令選択情報の値に応じて、予め設定された既定値を前記命令選択制御信号として出力し、又は前記k個の制御情報を、前記マスクレジスタの値に基づいて選択し、前記命令選択制御信号として前記命令選択回路に出力することを特徴とする請求項15に記載のプロセッシング・エレメント。
  17. 前記命令選択制御ユニットが、
    前記複数命令流動作の場合に、kより大きなビット数の前記マスクレジスタからk個のビットを選び出すためのセレクタを有することを特徴とする請求項15又は請求項16に記載のプロセッシング・エレメント。
  18. 前記制御情報の1つを2つのサブ制御情報に分け、一方の前記サブ制御情報をデコードして当該制御情報として利用すると共に、他方の前記サブ制御情報を、前記セレクタを制御して前記マスクレジスタからk個のビットを選択するのに利用することを特徴とする請求項17に記載のプロセッシング・エレメント。
JP2006542480A 2004-11-05 2005-11-04 Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式 Expired - Fee Related JP5240424B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006542480A JP5240424B2 (ja) 2004-11-05 2005-11-04 Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004322735 2004-11-05
JP2004322735 2004-11-05
JP2006542480A JP5240424B2 (ja) 2004-11-05 2005-11-04 Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式
PCT/JP2005/020681 WO2006049331A1 (ja) 2004-11-05 2005-11-04 Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式

Publications (2)

Publication Number Publication Date
JPWO2006049331A1 JPWO2006049331A1 (ja) 2008-05-29
JP5240424B2 true JP5240424B2 (ja) 2013-07-17

Family

ID=36319319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006542480A Expired - Fee Related JP5240424B2 (ja) 2004-11-05 2005-11-04 Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式

Country Status (3)

Country Link
US (1) US20070250688A1 (ja)
JP (1) JP5240424B2 (ja)
WO (1) WO2006049331A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730280B2 (en) * 2006-06-15 2010-06-01 Vicore Technologies, Inc. Methods and apparatus for independent processor node operations in a SIMD array processor
US8028150B2 (en) * 2007-11-16 2011-09-27 Shlomo Selim Rakib Runtime instruction decoding modification in a multi-processing array
KR100960148B1 (ko) * 2008-05-07 2010-05-27 한국전자통신연구원 데이터 프로세싱 회로
US8135941B2 (en) * 2008-09-19 2012-03-13 International Business Machines Corporation Vector morphing mechanism for multiple processor cores
JP5358315B2 (ja) * 2009-06-24 2013-12-04 本田技研工業株式会社 並列計算装置
US8817031B2 (en) * 2009-10-02 2014-08-26 Nvidia Corporation Distributed stream output in a parallel processing unit
JP5495707B2 (ja) * 2009-10-16 2014-05-21 三菱電機株式会社 並列信号処理装置
KR101292670B1 (ko) * 2009-10-29 2013-08-02 한국전자통신연구원 벡터 프로세싱 장치 및 방법
DE112011104770B4 (de) 2011-01-25 2022-08-25 Nxp Canada Inc. Apparat und Verfahren zum gemeinsamen Vektoreinheit Benutzen
JP5739779B2 (ja) 2011-09-26 2015-06-24 ルネサスエレクトロニクス株式会社 Simdプロセッサ及びコントロールプロセッサ並びにプロセッサ要素
US10402199B2 (en) * 2015-10-22 2019-09-03 Texas Instruments Incorporated Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668053A (ja) * 1992-08-20 1994-03-11 Toshiba Corp 並列計算機
JPH06110853A (ja) * 1992-09-30 1994-04-22 Hitachi Ltd 並列計算機システムおよびプロセッサ
US6366998B1 (en) * 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
JP2003076668A (ja) * 2001-08-31 2003-03-14 Nec Corp アレイ型プロセッサ、データ処理システム
JP3547139B2 (ja) * 1995-03-17 2004-07-28 株式会社 日立製作所 プロセッサ

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE362623T1 (de) * 1997-11-07 2007-06-15 Altera Corp Verfahren und gerät für effiziente, synchrone mimd-operationen mit ivliw pe-zu-pe kommunikationen

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668053A (ja) * 1992-08-20 1994-03-11 Toshiba Corp 並列計算機
JPH06110853A (ja) * 1992-09-30 1994-04-22 Hitachi Ltd 並列計算機システムおよびプロセッサ
JP3547139B2 (ja) * 1995-03-17 2004-07-28 株式会社 日立製作所 プロセッサ
US6366998B1 (en) * 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
JP2003076668A (ja) * 2001-08-31 2003-03-14 Nec Corp アレイ型プロセッサ、データ処理システム

Also Published As

Publication number Publication date
JPWO2006049331A1 (ja) 2008-05-29
WO2006049331A1 (ja) 2006-05-11
US20070250688A1 (en) 2007-10-25

Similar Documents

Publication Publication Date Title
JP5240424B2 (ja) Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式
KR100464406B1 (ko) 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
Hauck et al. The Chimaera reconfigurable functional unit
US5710902A (en) Instruction dependency chain indentifier
KR100190738B1 (ko) 데이타 처리 시스템 및 방법
KR102413832B1 (ko) 벡터 곱셈 덧셈 명령
CN109144568B (zh) 将有效位通道作为矢量断言暴露于cpu
US4435758A (en) Method for conditional branch execution in SIMD vector processors
EP2569694B1 (en) Conditional compare instruction
JP4484925B2 (ja) Simdデバイスにおける制御フロー管理のための方法及び装置
KR100715055B1 (ko) Vliw 프로세서, 인스트럭션 컴파일 방법, 머신 판독가능한 매체 및 컴퓨터 프로그램 실행 방법
EP0307166A2 (en) Data processor
JP2002333978A (ja) Vliw型プロセッサ
US8959276B2 (en) Byte selection and steering logic for combined byte shift and byte permute vector unit
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
US9965275B2 (en) Element size increasing instruction
CN108780395B (zh) 矢量预测指令
US10409604B2 (en) Apparatus and method for performing multiply-and-accumulate-products operations
EP3329363B1 (en) Vector arithmethic instruction
JP2005332361A (ja) プログラム命令圧縮装置および方法
GB2475653A (en) Select-and-insert instruction for a data processor
KR100880614B1 (ko) 단일 명령어 다중 데이터 처리
US20030037085A1 (en) Field processing unit
US20020059510A1 (en) Data processing system and control method
US6910123B1 (en) Processor with conditional instruction execution based upon state of corresponding annul bit of annul code

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130319

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

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees