JP4277042B2 - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP4277042B2
JP4277042B2 JP2006520503A JP2006520503A JP4277042B2 JP 4277042 B2 JP4277042 B2 JP 4277042B2 JP 2006520503 A JP2006520503 A JP 2006520503A JP 2006520503 A JP2006520503 A JP 2006520503A JP 4277042 B2 JP4277042 B2 JP 4277042B2
Authority
JP
Japan
Prior art keywords
condition flag
instruction
value
register
arithmetic 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.)
Active
Application number
JP2006520503A
Other languages
English (en)
Other versions
JPWO2006112045A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2006112045A1 publication Critical patent/JPWO2006112045A1/ja
Application granted granted Critical
Publication of JP4277042B2 publication Critical patent/JP4277042B2/ja
Active 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

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

Description

本発明は、演算処理装置に関し、特に、条件フラグレジスタ備えたSIMD(Single Instruction Multiple Data)型の演算処理装置に関する。
従来、演算処理装置において、1つの命令で複数のデータを並列に処理するSIMD(Single Instruction Multiple Data)型の演算処理装置がある。この演算処理装置を用いることで、1つの命令制御装置で、複数のデータを並列に処理することができ、処理実行時間を短縮し、データ処理能力を向上させることができる(例えば、特許文献1参照。)。
また、このような処理高速化とは別に、演算処理自体を時系列に複数のステージに分割し、複数の独立したステージが、夫々、直列的に演算処理を実行するパイプライン型演算処理装置がある。この演算処理装置は、命令語が直列的に並んでいる場合には、最大の性能を発揮できることが知られている。しかし、条件分岐等の命令がある場合には、パイプラインの制御が乱れ、一時的に処理性能が低下する。これに対して、条件分岐を減らすためプレディケイト(以下、条件フラグと呼称する。)を用いる方法がある。ここで、条件フラグは、命令語を修飾し、その命令語の処理を実行するか否かを選択することで、条件分岐命令の使用頻度を削減することができ、演算処理性能を向上させることができる(例えば、特許文献2参照。)。
特開2000−47998号公報 特開平10−27102号公報
しかしながら、前記従来の技術においては、SIMD型の演算処理装置について、演算単位毎に異なるデータを取り扱うため、演算機能は同一であり、また、演算を実行するための命令語も全ての演算単位で同一のものであっても、演算単位毎に得られる演算結果は異なる。
例えば、比較命令を実行した場合には、演算単位毎に異なるデータを用いて演算を行うため、その演算結果である条件フラグも演算単位毎に異なる。そのため、条件フラグを用いて条件付き演算処理を実行する場合には、演算単位毎に独立した条件フラグを用いて演算の条件実行を行うことは容易である。
しかし、比較命令の結果を全ての演算単位で共通に用いるためには、共通の条件フラグ値を全ての演算単位で参照する必要がある。そのためには演算単位毎に、全ての演算単位の条件フラグ値の論理和、論理積を格納しておくレジスタも必要となり、多くのレジスタが必要となり実装面積が大きくなる。また、あくまで条件分岐命令で使用する条件フラグの生成方法の1つであり、条件分岐命令自体を削減はできないため、分岐命令発行によるペナルティが発生し、全体の演算処理性能が低下する。
また、SIMD型の演算処理装置においては、想定されるプログラムのうち、要求される演算処理性能が最大のものに合わせて演算単位の数が決定される。そのため、最大処理性能を必要としないプログラムを実行する場合には、一部の演算単位のみを使用し、残りの演算単位を使用しないようにすることもできる。
しかし、残りの演算単位を使用しないとすれば、使用しない演算単位は無効な演算を行う、又は低消費電力化を図るために演算動作そのものを停止する制御を実行し、このような場合において、比較命令を実行すると、不要な演算単位では有効でないデータを用いて比較命令が実行される、又は演算そのものが行われないため、その結果である条件フラグも有効でない値が格納される。そのため、演算単位間で条件フラグの演算を行う場合には、一部の演算単位にしか有効な条件フラグ値が格納されておらず、有効な値だけを選択する処理を追加する必要があり、演算単位間での条件フラグ演算を容易に行うことができない。
すなわち、SIMD型の演算処理装置において、演算処理装置全体で同一の条件フラグを用いて条件分岐を実行するときに、演算単位毎に生成された条件フラグを用いて共通に参照する条件フラグを生成する演算をできるだけ少ないステップ数で生成できないと高速化の効果を十分に得られないことがあるという問題がある。
そこで、本発明は、前記問題に鑑みてなされたものであり、演算単位毎に生成された条件フラグを用いて共通に参照する条件フラグを生成する演算をできるだけ少ないステップ数で生成できる演算処理装置を提供することを目的とする。
前記目的を達成するために、本発明に係る演算処理装置は、(a)1つの命令で複数のデータを並列に処理する演算処理装置であって、(b)命令レジスタに格納されている命令に基づいて、共通の演算を実行する複数のプロセッサ・エレメントと、(c)各プロセッサ・エレメントで保持されている条件フラグに対して論理演算、及び比較演算いずれかを実行し、実行した結果を各プロセッサ・エレメントに転送し、実行した結果に前記条件フラグを更新する条件フラグ演算器と、前記複数のプロセッサ・エレメントの個数と同じ数のビット幅を有し、各ビットが各プロセッサ・エレメントと1対1に対応する条件フラグマスクレジスタと、前記条件フラグ演算器において実行される論理演算が論理和演算である場合には、前記条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第1の論理値に変換し、前記条件フラグ演算器において実行される論理演算が論理積演算である場合には、前記条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第2の論理値に変換する条件フラグ変換器とを備えることとする。
これによって、各プロセッサ・エレメントで保持されている条件フラグを1ステップで更新することができ、全てのプロセッサ・エレメントで共通の条件フラグを高速に準備することができる。そして、従来では必要であった条件分岐を削減し、分岐処理によって生じるペナルティを減らし、ペナルティによる性能低下を抑えることができる。
なお、本発明は、演算処理装置として実現されるだけではなく、演算処理装置を制御する方法(以下、演算処理方法と呼称する。)、演算処理方法をコンピュータシステム等にエミュレーションさせる演算処理プログラム、演算処理プログラムを記録した記録媒体等として実現されるとしてもよい。
また、演算処理装置を構成する1乃至2以上の機能(以下、演算処理機能と呼称する。)が組み込まれたシステムLSI、演算処理機能をFPGA、CPLD等のプログラマブル・ロジック・デバイスに形成するIPコア(以下、演算処理コアと呼称する。)、演算処理コアを記録した記録媒体として実現されるとしてもよい。
以上、本発明に係る演算処理装置によれば、複数のプロセッサ・エレメントに含まれる条件フラグレジスタの値に対して演算を実行し、実行した結果を、各プロセッサ・エレメントに含まれる条件フラグレジスタに格納することが1ステップで可能となり、高速に全てのプロセッサ・エレメントで共通の条件フラグを準備することができる。そして、従来では必要であった条件分岐を削減し、分岐処理によるペナルティによる性能低下を抑えることができる。
さらに、条件フラグを更新し、さらに、条件分岐を実行する際に参照される条件フラグを生成する条件フラグ演算器を共用することで、プロセッサ・エレメント毎に実装する場合と比べると、実装面積を小さくすることが可能となる。
さらに、予め使用する条件フラグレジスタ情報をマスクレジスタに設定しておくことで、プログラム等の要因で使用する条件フラグレジスタ数が変わった場合でも全ての条件フラグレジスタを使用する場合から命令の発行方法を変更する必要がなくプログラムの記述が容易になる。
(実施の形態1)
以下、本発明に係る実施の形態1について、図面を参照しながら説明する。
実施の形態1における演算処理装置は、複数のプロセッサ・エレメントの夫々に、条件フラグレジスタを備え、条件フラグレジスタに保持されている条件フラグの値を演算した結果を、全てのプロセッサ・エレメント内に備わる条件フラグレジスタへ転送し、条件フラグレジスタに格納することを特徴とする。
これによって、全ての条件フラグレジスタを1ステップで更新することができ、全てのプロセッサ・エレメントで共通の条件フラグを高速に準備することができ、従来では必要であった条件分岐を削減し、分岐処理に必要なペナルティを減らし、ペナルティによる性能低下を抑えることができる。
「条件フラグ」とは、命令語を修飾し、その命令語の処理を実行するか否かを選択することで、条件分岐命令の使用頻度を削減することができ、演算処理性能を向上させることができるプレディケイトである。
以上の点を踏まえながら、実施の形態1における演算処理装置について説明する。
先ず、実施の形態1における演算処理装置の構成について説明する。
図1に示されるように、演算処理装置100は、命令レジスタ101に格納されている命令語をプロセッサ・エレメント(以下、PEと呼称する。)102,103に供給し、ひとつの命令で複数のデータの演算処理を並列に実行する装置である。
ここでは、一例として、演算処理装置100は、命令レジスタ101、PE102,103、条件フラグ演算器104等を備えることとする。
また、命令語は、条件実行の有無、使用する条件フラグ番号が指定されている条件フラグ指定フィールド(以下、CFフィールドと呼称する。)と、オペコードやオペランドが指定されているオペコード・オペランドフィールドとから構成される。
条件フラグ演算器104は、条件フラグのうち命令レジスタ101のCFフィールドに設定された条件フラグの値を、命令に基づいて、夫々、論理和演算、及び論理積演算のいずれかを実行する。そして、転送バス105を介して全てのPEに演算結果を転送する。以下、一例として、論理和演算についてのみ説明し、論理積演算については説明を省略する。
なお、プログラムが格納される命令キャッシュ、データが格納されるデータキャッシュ等の構成要素、及びALUによる演算方法については、周知の技術であるため、説明を省略する。
なお、PEの数は、2つである必要はなく、より多く、例えば、4つであってもよい。
なお、条件フラグ演算器104は、論理和演算、及び論理積演算以外の論理演算、例えば、排他的論理和演算などを実行するとしてもよい。また、論理演算の代わりに、比較演算を実行するとしてもよい。さらに、比較演算を実行する場合には、各PEから出力される複数ビットの条件フラグに対して比較演算を実行するとしてもよい。そして、例えば、各PEから出力された複数ビットの条件フラグに対して比較演算を実行した結果、全ての条件フラグが同一の場合には、全ビットが1である演算結果を全てのPEに転送するとしてもよい。また、同一でない場合には、全ビットが0である演算結果を全てのPEに転送するとしてもよいし、何も転送しないとしてもよい。
続いて、実施の形態1における演算処理装置のプロセッサ・エレメントについて説明する。ここでは、PE102の構成について説明し、PE103の構成については、PE102と同一の構成により、説明を省略する。
また、プロセッサ・エレメントにおいて演算の対象となるデータを供給するデータ供給装置、および演算した結果であるデータを格納するデータ格納装置については、それぞれ異なるものであってもよいし、一つで兼用するものとしてもよい。ここでは、データ供給装置、およびデータ格納装置を一つで兼用するデータ記録装置、具体的には、レジスタファイルを例に説明する。
PE102は、レジスタファイル121、ALU演算器122、セレクタ123、条件フラグレジスタ124、セレクタ125等を備える。
ALU演算器122は、命令レジスタ101に基づいて、レジスタファイル121に格納されているデータや即値を用いて演算処理する。
セレクタ123は、ALU演算器122から転送される演算結果、及び条件フラグ演算器124から条件フラグ転送信号線105を介して転送される演算結果のいずれかを選択し、選択した演算結果を条件フラグレジスタ124へ転送する。
条件フラグレジスタ124は、セレクタ123から転送された演算結果を保持する。
セレクタ125は、条件フラグレジスタ124が複数ある場合には、命令レジスタ101のCFフィールドの値に基づいて、いずれの条件フラグレジスタ124に保持されている条件フラグを転送するかを選択する。
レジスタ更新制御信号線126は、条件フラグの内容等に基づいて、レジスタファイル121、及び条件フラグレジスタ124のいずれかに、ALU演算器122の演算結果を格納するか否かを選択的に実行させる制御信号線である。
なお、レジスタファイル121は、任意のデータ値を使用することができるように、複数のデータを格納する領域が設けられている。
例えば、4つのデータ領域が設けられている場合において、一般的に、識別するために、R0、R1、R2、R3等の番号を割り振ることが行われる。
これに伴い、条件フラグレジスタ124についても、一般的に、C0、C1、C2、C3といった番号を割り振ることが行われる。
例えば、レジスタファイルのR1〜R4にベクタデータを格納する際に、8ビット長の2つのデータに、夫々、条件フラグを対応させ、C0に、対応させた2つの条件フラグを保持させるとしてもよい。このとき、C1に、16ビット長のデータに対応させた条件フラグを保持させ、C2に、16ビット長の2つのデータに、夫々、条件フラグを対応させ、対応させた2つの条件フラグを保持させ、C3に、32ビット長のデータに対応させた条件フラグを保持させるとしてもよい。
なお、条件フラグレジスタ124は、2つである必要はなく、より多く、例えば、4つとしてもよい。良く識別するためである。
続いて、実施の形態1における演算処理装置へ供給される命令列について説明する。
ここでは、図2A、図2Bに示されるように、一例として、ソースコード1をコンパイルし、命令列11が生成されるとする。
命令列11は、第1の命令(001)、第2の命令(002)、第3の命令(003)、第4の命令(004)を含む。
第1の命令(001)は、比較命令(cmpgt)である。
第2の命令(002)は、各PE間での条件フラグレジスタ値での論理積演算命令(cfand)である。
第3の命令(003)は、条件実行の加算命令([C0] add)である。
第4の命令(004)は、通常実行の加算命令(add)である。
なお、比較命令以外でも、移動命令、論理演算命令等のように、条件フラグを生成する命令において、同様に、各PE間での条件フラグレジスタ値での論理積演算命令が実行されるとしてもよい。
続いて、実施の形態1における演算処理装置の動作について説明する。ここでは、一例として、図2A、図2Bに示されるソースコード1から生成された命令列11を実行する場合について説明する。
演算処理装置100は、第1の命令(001)を実行し、レジスタファイル121のR0の値と即値”5”とを比較した結果、R0の値が即値”5”以上である場合には、第1の命令のCFフィールドに設定された各PEの条件フラグレジスタのC0に、”真”を示す”1”を格納する。一方、R0の値が即値”5”未満である場合には、各PEの条件フラグレジスタのC0に、”偽”を示す”0”を格納する。このとき、ALU演算器122から転送される値を選択するようにセレクタ123を設定する。
続いて、演算処理装置100は、第2の命令(002)を実行し、各PEの条件フラグレジスタC0の値を条件フラグ演算器104で論理積演算を実行する。実行した結果を、条件フラグ転送信号線105を介して各PEの条件フラグのC0に格納する。このとき、使用する条件フラグレジスタ番号は、命令レジスタ101のオペランドで設定されており、条件フラグ転送信号線105を介して転送される値を選択するようにセレクタ123を設定する。
続いて、演算処理装置100は、第3の命令(003)を実行し、命令語のCFフィールドで条件実行あり、使用する条件フラグレジスタ番号としてC0が設定されている場合において、レジスタファイル121からR1の値とR2の値とを読み出し、読み出したR1の値とR2の値とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。このとき、条件フラグレジスタ124のC0の値が真”1”であれば、加算した結果が格納されるように、演算結果更新制御信号線126を介してレジスタファイル121へ、Active信号を供給する。一方、条件フラグレジスタ124のC0の値が偽”0”であれば、加算した結果が格納されないように、Negative信号を供給する。
続いて、演算処理装置100は、第4の命令(004)を実行し、レジスタファイル121からR2の値を読み出し、読み出したR2の値と即値”1”とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。
以上、説明したように実施の形態1における演算処理装置100は、第2の命令(002)の各PEの条件フラグレジスタの値に対する演算、及び更新が1ステップで完了し、他にPE間で余計なデータ転送を必要とせず、また、条件分岐処理によるペナルティが発生しないため、条件分岐の実行が完了するまでのサイクル数を少なくすることが可能となる。
さらに、全ての条件フラグレジスタを1ステップで更新することができ、全てのプロセッサ・エレメントで共通の条件フラグを高速に準備することができる。そして、図3Bに示されるように、従来では必要であった条件分岐の命令(002)を削減し、分岐処理によって生じるペナルティを減らし、ペナルティによる性能低下を抑えることができる。
ここで、図3Bに示される命令列2は、従来の演算処理装置に対して供給される命令列であり、図3Aに示されるソースコード1をコンパイルして生成されたものである。
(実施の形態2)
次に、本発明に係わる実施の形態2について、図面を参照しながら説明する。
本発明に係る実施の形態2における演算処理装置は、条件フラグ演算器から転送される演算結果に基づいて、条件分岐を実行する機能を有する命令発行制御部を備えることを特徴とする。
以上の点を踏まえて、実施の形態2における演算処理装置について説明する。なお、実施の形態1における構成要素と同一の構成要素については、同一の符号を付して説明を省略する。
まず、実施の形態2における演算処理装置の構成について説明する。
に示されるように、演算処理装置200は、演算処理装置100と比べて、下記(1)〜(3)の点が異なる。
(1)命令レジスタ101の代わりに、命令レジスタ201を備える。
命令レジスタ201は、命令発行制御部206から転送される命令を保持する。
(2)条件フラグ演算器104の代わりに、条件フラグ演算器204を備える。
条件フラグ演算器204は、演算結果を命令発行制御部206にも転送する。
(3)新たに命令発行制御部206を備える。
命令発行制御部206は、条件分岐命令を含めた命令の発行を制御する。条件フラグ演算器204から転送される演算結果に基づいて、命令を発行し、発行した命令を命令レジスタ201へ転送する。
続いて、実施の形態2における演算処理装置へ供給される命令列について説明する。
ここでは、図5A、図5Bに示されるように、一例として、ソースコード1をコンパイルし、命令列21が生成されるとする。
命令列21は、第1の命令(001)、第2の命令(002)、第3の命令(003)、第4の命令(004)を含む。
第1の命令(001)は、比較命令(cmpgt)である。
第2の命令(002)は、各PE間での条件フラグレジスタ値での論理積演算命令([C0] br.all)である。
第3の命令(003)は、分岐処理を実行しなかった場合における加算命令(add)である。
第4の命令(004)は、分岐処理を実行した場合における加算命令(label1: add)である。
ここで、”br.all”とは、全PEの条件フラグが”1”であるときだけ、分岐系の命令”br”を実行することを示す。
なお、これ以外にも、”jump”、”loop”等の分岐系の命令に対しても、全PEの条件フラグが”1”のときだけ、分岐系の命令を実行することとしてもよい。
続いて、実施の形態2における演算処理装置の動作について説明する。ここでは、一例として、図5A、図5Bに示されるソースコード1から生成された命令列21を実行する場合について説明する。
演算処理装置200は、第1の命令(001)を実行し、レジスタファイル121のR0の値と即値”5”とを比較した結果、R0の値が即値”5”以上である場合には、第1の命令のCFフィールドに設定された各PEの条件フラグレジスタのC0に、”真”を示す”1”を格納する。一方、R0の値が即値”5”未満である場合には、各PEの条件フラグレジスタのC0に、”偽”を示す”0”を格納する。このとき、ALU演算器122から転送される値を選択するようにセレクタ123を設定する。
続いて、演算処理装置200は、第2の命令(002)を実行し、各PEの条件フラグレジスタの値を条件フラグ演算器204で論理積演算を実行する。実行した結果を、条件フラグ転送信号線105を介して各PEの条件フラグレジスタのC0に格納する。
また、演算処理装置200は、条件フラグ転送信号線105を介して命令発行制御部206へ転送する。そして、条件フラグ転送信号線105を介して命令発行制御部206へ転送された条件フラグの値が真”1”である場合には、分岐処理を実行し、命令発行制御部206から命令レジスタ201へ第4の命令(004)を転送し、第4の命令(004)を実行する。一方、条件フラグ転送信号線105を介して命令発行制御部206へ転送された条件フラグの値が偽”0”である場合には、分岐処理を実行せずに、命令発行制御部206から命令レジスタ201へ第3の命令(003)を転送し、第3の命令(003)を実行する。
続いて、演算処理装置200は、第3の命令(003)を実行し、各PEのレジスタファイルからR1の値とR2の値とを読み出し、読み出したR1の値とR2の値とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。
続いて、演算処理装置200は、第4の命令(004)を実行し、各PEのレジスタファイルからR2の値を読み出し、読み出したR2の値と即値”1”とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。
以上、説明したように実施の形態2における演算処理装置200は、条件分岐を実行するときに、条件フラグ演算器204を共通に使用することによって、実装面積を小さくすることが可能となる。
また、演算処理装置200は、論理積演算以外にも論理和演算を条件フラグ演算器204でおこなう命令(br.any)等がある。
ここで、”br.any”とは、全PEの条件フラグのうち1つでも”1”であれば、分岐系の命令”br”を実行することを示す。
なお、これ以外にも、”jump”、”loop”等の分岐系の命令に対しても、全PEの条件フラグのうち1つでも”1”であれば、分岐系の命令を実行することとしてもよい。
(実施の形態3)
次に、本発明に係わる実施の形態3について、図面を参照しながら説明する。
本発明に係る実施の形態3における演算処理装置は、複数のプロセッサ・エレメントの個数と同じ数のビット幅を有し、各ビットが各プロセッサ・エレメントと1対1に対応する条件フラグマスクレジスタと、(a)条件フラグ演算器において論理和演算を実行する場合には、条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第1の論理値に変換し、(b)条件フラグ演算器において論理積演算を実行する場合には、条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第2の論理値に変換する条件フラグ変換器を備えることを特徴とする。
以上の点を踏まえて、実施の形態3における演算処理装置について説明する。なお、実施の形態1における構成要素と同一の構成要素については、同一の符号を付して説明を省略する。
まず、実施の形態3における演算処理装置の構成について説明する。
図6に示されるように、演算処理装置300は、演算処理装置100と比べて、下記(1)の点が異なる。
(1)新たに条件フラグマスクレジスタ307、条件フラグ変換器381,382を備える。
条件フラグマスクレジスタ307は、設定値を保持する。
条件フラグ変換器381,382は、セレクタ125の出力値を”0”、及び”1”のいずれかに変換する。
続いて、実施の形態3における演算処理装置の動作について説明する。ここでは、一例として、図2A、図2Bに示されるソースコード1から生成された命令列11を実行する場合について説明する。
なお、演算処理装置300は、予め、条件フラグマスクレジスタ307において、PE102に対応するビットが”0”に設定され、PE103に対応するビットが”1”に設定され、条件フラグマスクレジスタ307に値”10”が格納されている。そして、命令列11に対して、PE102のみを使用し、PE103を使用しないとする。
演算処理装置300は、第1の命令(001)を実行し、レジスタファイル121のR0の値と即値”5”とを比較した結果、R0の値が即値”5”以上である場合には、第1の命令のCFフィールドに設定された各PEの条件フラグレジスタのC0に、”真”を示す”1”を格納する。一方、R0の値が即値”5”未満である場合には、各PEの条件フラグレジスタのC0に、”偽”を示す”0”を格納する。このとき、ALU演算器122から転送される値を選択するようにセレクタ123を設定する。
続いて、演算処理装置300は、第2の命令(002)を実行し、条件フラグマスクレジスタ307に基づいて、各条件フラグ変換器で変換し、変換後の各PEの条件フラグレジスタの値を条件フラグ演算器304で論理積演算を実行する。実行した結果を、条件フラグ転送信号線105を介して各PEの条件フラグレジスタのC0に格納する。このとき、使用する条件フラグレジスタ番号は、命令レジスタ101のオペランドに設定されており、条件フラグ転送信号線105を介して転送される値を選択するようにセレクタ123を設定する。
ここで、条件フラグマスクレジスタ307において、PE102に対応するビットが”0”に設定されているため、PE102の条件フラグレジスタ124の値が条件フラグ変換器381で変換されない。また、実行する命令が論理積演算命令であり、PE103に対応するビットが”1”に設定されているため、PE103の条件フラグ値が条件フラグ変換器382で”1”に変換される。
続いて、演算処理装置300は、第3の命令(003)を実行し、命令語のCFフィールドで条件実行あり、使用する条件フラグレジスタ番号としてC0が設定されている場合において、レジスタファイル121からR1の値とR2の値とを読み出し、読み出したR1の値とR2の値とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。このとき、条件フラグレジスタ124のC0の値が真”1”であれば、加算した結果が格納されるように、演算結果更新制御信号線126を介してレジスタファイル121へ、Active信号を供給する。一方、条件フラグレジスタ124のC0の値が偽”0”であれば、加算した結果が格納されないように、Negative信号を供給する。
続いて、演算処理装置300は、第4の命令(add)を実行し、レジスタファイル121からR2の値を読み出し、読み出したR2の値と即値”1”とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。
以上、説明したように実施の形態3における演算処理装置300は、第2の命令(002)を実行し、各PEの条件フラグレジスタの値に対して論理積演算を実行する前に、条件フラグ変換器382が無効なデータであるPE103の条件フラグレジスタ134の値を、論理積演算で結果に影響をおよぼさないフラグ値”1”に変換しておくことによって、有効な条件フラグ値のみで論理積演算が可能となる。
また、演算処理装置300は、PE103の条件フラグ値が有効である場合と無効である場合とで、条件フラグマスクレジスタ307の値を予め設定しておくだけで、命令の発行方法を変更する必要がないため、プログラムの作成が容易になる。
(実施の形態4)
次に、本発明に係わる実施の形態4について、図面を参照しながら説明する。
本発明に係る実施の形態4における演算処理装置は、条件フラグ演算器から転送される演算結果に基づいて、条件分岐を実行する機能を有する命令発行制御部を備えることを特徴とする。
以上の点を踏まえて、実施の形態4における演算処理装置について説明する。なお、実施の形態3における構成要素と同一の構成要素については、同一の符号を付して説明を省略する。
まず、実施の形態4における演算処理装置の構成について説明する。
図7に示されるように、演算処理装置400は、演算処理装置300と比べて、下記(1)〜(3)の点が異なる。
(1)命令レジスタ101の代わりに、命令レジスタ401を備える。
命令レジスタ401は、命令発行制御部406から転送される命令を保持する。
(2)条件フラグ演算器304の代わりに、条件フラグ演算器404を備える。
条件フラグ演算器404は、演算結果を命令発行制御部406にも転送する。
(3)新たに命令発行制御部406を備える。
命令発行制御部406は、条件付きの分岐系の命令を含めた命令の発行を制御する。条件フラグ演算器404から転送される演算結果に基づいて、命令を発行し、発行した命令を命令レジスタ401へ転送する。
なお、命令発行制御部406の詳細な構成については、周知の技術であるため、説明を省略する。
続いて、実施の形態4における演算処理装置の動作について説明する。ここでは、一例として、図5A、図5Bに示されるソースコード1から生成された命令列21を実行する場合について説明する。
なお、演算処理装置400は、予め、条件フラグマスクレジスタ307において、PE102に対応するビットが”0”に設定され、PE103に対応するビットが”1”に設定され、条件フラグマスクレジスタ307に値”10”が格納されている。そして、命令列21に対して、PE102のみを使用し、PE103を使用しないとする。
演算処理装置400は、第1の命令(001)を実行し、レジスタファイル121のR0の値と即値”5”とを比較した結果、R0の値が即値”5”以上である場合には、第1の命令のCFフィールドに設定された各PEの条件フラグレジスタのC0に、”真”を示す”1”を格納する。一方、R0の値が即値”5”未満である場合には、各PEの条件フラグレジスタのC0に、”偽”を示す”0”を格納する。このとき、ALU演算器122から転送される値を選択するようにセレクタ123を設定する。
続いて、演算処理装置400は、第2の命令(002)を実行し、条件フラグマスクレジスタ307に基づいて、各条件フラグ変換器で変換し、変換後の各PEの条件フラグレジスタの値を条件フラグ演算器404で論理積演算を実行する。実行した結果を、条件フラグ転送信号線105を介して各PEの条件フラグレジスタのC0に格納する。このとき、使用する条件フラグレジスタ番号は、命令レジスタ101のオペランドに設定されており、条件フラグ転送信号線105を介して転送される値を選択するようにセレクタ123を設定する。
ここで、条件フラグマスクレジスタ307において、PE102に対応するビットが”0”に設定されているため、PE102の条件フラグレジスタ124の値が条件フラグ変換器381で変換されない。また、実行する命令が論理積演算命令であり、PE103に対応するビットが”1”に設定されているため、PE103の条件フラグレジスタ134の値が条件フラグ変換器382で”1”に変換される。
また、演算処理装置400は、条件フラグ転送信号線105を介して命令発行制御部406へ転送する。そして、条件フラグ転送信号線105を介して命令発行制御部406へ転送された条件フラグの値が真”1”である場合には、分岐処理を実行し、命令発行制御部406から命令レジスタ101へ第4の命令(004)を転送し、第4の命令(004)を実行する。一方、条件フラグ転送信号線105を介して命令発行制御部406へ転送された条件フラグの値が偽”0”である場合には、分岐処理を実行せずに、命令発行制御部406から命令レジスタ101へ第3の命令(003)を転送し、第3の命令(003)を実行する。
続いて、演算処理装置400は、第3の命令(003)を実行し、各PEのレジスタファイルからR1の値とR2の値とを読み出し、読み出したR1の値とR2の値とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。
続いて、演算処理装置400は、第4の命令(004)を実行し、各PEのレジスタファイルからR2の値を読み出し、読み出したR2の値と即値”1”とをALU演算器122で加算し、加算した結果をレジスタファイル121のR2に格納する。
以上、説明したように実施の形態4における演算処理装置400は、第2の命令(002)を実行し、各PEの条件フラグレジスタの値に対して論理積演算を実行する前に、条件フラグ変換器382が無効なデータであるPE103の条件フラグレジスタ134の値を、論理積演算で結果に影響をおよぼさないフラグ値”1”に変換しておくことによって、有効な条件フラグ値のみで論理積演算が可能となる。
また、演算処理装置400は、PE103の条件フラグ値が有効である場合と無効である場合とで、条件フラグマスクレジスタ307の値を予め設定しておくだけで、命令の発行方法を変更する必要がなく、高速な条件分岐を実行することが可能となる。
(その他)
なお、プロセッサ・エレメントは、ALU演算器の代わりに、画素演算、所定の処理に特化した拡張演算器(XU演算器)等、その他の演算器を備えるとしてもよい。
なお、命令発行制御部は、別途、分岐系の命令用のフラグを有し、命令発行時に、そのフラグに従って命令を発行するとしてもよい。
なお、演算処理装置は、フルカスタムLSI(Large Scale Integration)によって実現されるとしてもよい。また、ASIC(Application Specific Integrated Circuit)等のようなセミカスタムLSIによって実現されるとしてもよい。また、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)等のようなプログラマブル・ロジック・デバイスによって実現されるとしてもよい。また、動的に回路構成が書き換え可能なダイナミック・リコンフィギュラブル・デバイスとして実現されるとしてもよい。
さらに、演算処理装置を構成する1以上の機能を、これ等のLSIに形成する設計データは、VHDL(Very high speed integrated circuit Hardware Description Language)、Verilog−HDL、SystemC等のようなハードウェア記述言語によって記述されたプログラム(以下、HDLプログラムと呼称する。)としてもよい。また、HDLプログラムを論理合成して得られるゲート・レベルのネットリストとしてもよい。また、ゲート・レベルのネットリストに、配置情報、プロセス条件等を付加したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータとしてもよい。
さらに、設計データは、コンピュータシステム、組み込みシステム等のようなハードウェアシステムに読み出され得るように、光学記録媒体(例えば、CD−ROM等。)、磁気記録媒体(例えば、ハードディスク等。)、光磁気記録媒体(例えば、MO等。)、半導体メモリ(例えば、RAM等。)等のようなコンピュータ読み取り可能な記録媒体に記録しておくとしてもよい。そして、記録媒体を介して他のハードウェアタシステムに読み取られた設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてもよい。
または、設計データは、ネットワーク等のような伝送路を経由して他のハードウェアシステムに取得され得るように、伝送路上のハードウェアシステムに保持しておくとしてもよい。さらに、ハードウェアシステムから伝送路を介して他のハードウェアタシステムに取得された設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてよい。
または、論理合成、配置、配線された設計データは、通電時にFPGAに転送され得るように、シリアルROMに記録しておくとしてもよい。そして、シリアルROMに記録された設計データは、通電時に、直接、FPGAにダウンロードされるとしてもよい。
または、論理合成、配置、配線された設計データは、通電時に、マイクロプロセッサによって生成されて、FPGAにダウンロードされるとしてもよい。
本発明は、条件フラグレジスタ、及び条件実行フラグ生成選択装置等を備え、複数のデータに対して同じ処理を高速にまた効率的に演算するSIMD型の演算処理装置等として、特に、静止画、動画などの画像処理をおこなう場合に有用なSIMD型の演算処理装置等として、利用することができる。
図1は、実施の形態1における演算処理装置の概略構成を示す図である。 図2Aは、実施の形態1における演算処理装置へ供給される命令列の一例を示す図である。 図2Bは、実施の形態1における演算処理装置へ供給される命令列の一例を示す図である。 図3Aは、従来の技術における演算処理装置へ供給する命令列の一例を示す図である。 図3Bは、従来の技術における演算処理装置へ供給する命令列の一例を示す図である。 図4は、実施の形態2における演算処理装置の概略構成を示す図である。 図5Aは、実施の形態2における演算処理装置へ供給される命令列の一例を示す図である。 図5Bは、実施の形態2における演算処理装置へ供給される命令列の一例を示す図である。 図6は、実施の形態3における演算処理装置の概略構成を示す図である。 図7は、実施の形態4における演算処理装置の概略構成を示す図である。
符号の説明
100,200,300,400 演算処理装置
101,201,401 命令レジスタ
102,103 プロセッサ・エレメント
104,204,304,404 条件フラグ演算器
105 条件フラグ転送信号線
121,131 レジスタファイル
122,132 ALU演算器
123,133 セレクタ
124,134 条件フラグレジスタ
125,135 セレクタ
126,136 演算結果更新制御信号線
206,406 命令発行制御部
307 条件フラグマスクレジスタ
381,382 条件フラグ変換器

Claims (5)

  1. 1つの命令で複数のデータを並列に処理する演算処理装置であって、
    命令レジスタに格納されている命令に基づいて、共通の演算を実行する複数のプロセッサ・エレメントと、
    各プロセッサ・エレメントで保持されている条件フラグに対して論理演算、及び比較演算のいずれかを実行し、実行した結果を各プロセッサ・エレメントに転送し、実行した結果に前記条件フラグを更新する条件フラグ演算器と
    前記複数のプロセッサ・エレメントの個数と同じ数のビット幅を有し、各ビットが各プロセッサ・エレメントと1対1に対応する条件フラグマスクレジスタと、
    前記条件フラグ演算器において実行される論理演算が論理和演算である場合には、前記条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第1の論理値に変換し、前記条件フラグ演算器において実行される論理演算が論理積演算である場合には、前記条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第2の論理値に変換する条件フラグ変換器と
    を備えることを特徴とする演算処理装置。
  2. 前記演算処理装置は、さらに、
    前記条件フラグ演算器から転送される演算結果に基づいて、条件分岐を実行する機能を有する命令発行制御手段
    を備えることを特徴とする請求項1に記載の演算処理装置。
  3. 各プロセッサ・エレメントは、さらに、
    前記条件フラグを保持する1つ以上の条件フラグレジスタと、
    データを供給するデータ供給装置と、
    前記データに対する演算結果を格納するデータ格納装置と、
    前記データ供給装置から供給されるデータに対して所定の演算を実行し、前記データ格
    納装置、及び前記条件フラグレジスタへ、実行した結果を転送する演算器と、
    前記条件フラグ演算器から転送される結果、及び前記演算器から転送される結果のいずれかを選択し、選択した結果を前記条件フラグレジスタへ転送する第1のセレクタと、
    前記1つ以上の条件フラグレジスタから1つのレジスタの値を選択し、前記データ格納装置、及び前記条件フラグ演算器へ、選択した値を転送する第2のセレクタと
    を含むことを特徴とする請求項1に記載の演算処理装置。
  4. 各プロセッサ・エレメントは、さらに、
    前記条件フラグを保持する1つ以上の条件フラグレジスタと、
    データを供給し、前記データに対する演算結果を格納するデータ記録装置と、
    前記データ記録装置から供給されるデータに対して所定の演算を実行し、前記データ記録装置、及び前記条件フラグレジスタへ、実行した結果を転送する演算器と、
    前記条件フラグ演算器から転送される結果、及び前記演算器から転送される結果のいずれかを選択し、選択した結果を前記条件フラグレジスタへ転送する第1のセレクタと、
    前記1つ以上の条件フラグレジスタから1つのレジスタの値を選択し、前記データ記録装置、及び前記条件フラグ演算器へ、選択した値を転送する第2のセレクタと
    を含むことを特徴とする請求項1に記載の演算処理装置。
  5. 複数のプロセッサ・エレメント、及び条件フラグ演算器を有する装置において、1つの命令で複数のデータを並列に処理する演算処理方法であって、
    複数のプロセッサ・エレメントは、命令レジスタに格納されている命令に基づいて、共通の演算を実行する演算ステップと、
    条件フラグ演算器は、各プロセッサ・エレメントで保持されている条件フラグに対して論理演算、及び比較演算のいずれかを実行し、実行した結果を各プロセッサ・エレメントに転送し、実行した結果に前記条件フラグを更新する条件フラグ演算ステップと
    前記複数のプロセッサ・エレメントの個数と同じ数のビット幅を有し、各ビットが各プロセッサ・エレメントと1対1に対応する条件フラグマスクレジスタに対する処理であって、前記条件フラグ演算ステップにおいて実行される論理演算が論理和演算である場合には、前記条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第1の論理値に変換し、前記条件フラグ演算ステップにおいて実行される論理演算が論理積演算である場合には、前記条件フラグマスクレジスタのビットの値と対応するプロセッサ・エレメントからの条件フラグの値を第2の論理値に変換する条件フラグ変換ステップと
    を含むことを特徴とする演算処理方法。
JP2006520503A 2005-03-31 2005-08-24 演算処理装置 Active JP4277042B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005104107 2005-03-31
JP2005104107 2005-03-31
PCT/JP2005/015361 WO2006112045A1 (ja) 2005-03-31 2005-08-24 演算処理装置

Publications (2)

Publication Number Publication Date
JPWO2006112045A1 JPWO2006112045A1 (ja) 2008-11-27
JP4277042B2 true JP4277042B2 (ja) 2009-06-10

Family

ID=37114796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006520503A Active JP4277042B2 (ja) 2005-03-31 2005-08-24 演算処理装置

Country Status (5)

Country Link
US (1) US8086830B2 (ja)
EP (1) EP1870803A4 (ja)
JP (1) JP4277042B2 (ja)
CN (1) CN100552622C (ja)
WO (1) WO2006112045A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048735A (ja) * 2009-08-28 2011-03-10 Ricoh Co Ltd Simd型マイクロプロセッサ

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4228241B2 (ja) * 2006-12-13 2009-02-25 ソニー株式会社 演算処理装置
JP5193624B2 (ja) * 2008-02-19 2013-05-08 ルネサスエレクトロニクス株式会社 データプロセッサ
JP5481793B2 (ja) * 2008-03-21 2014-04-23 富士通株式会社 演算処理装置および同装置の制御方法
US8433885B2 (en) * 2009-09-09 2013-04-30 Board Of Regents Of The University Of Texas System Method, system and computer-accessible medium for providing a distributed predicate prediction
CN101980147B (zh) * 2010-11-04 2013-11-27 威盛电子股份有限公司 多线程处理器及其指令执行与同步方法
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US8924695B2 (en) 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9032189B2 (en) * 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
JP5610551B2 (ja) * 2013-02-04 2014-10-22 ルネサスエレクトロニクス株式会社 データプロセッサ
CN103645881B (zh) * 2013-12-13 2016-08-24 广西科技大学 浮点数加/减运算执行控制器
US10203960B2 (en) 2014-02-20 2019-02-12 Tsinghua University Reconfigurable processor and conditional execution method for the same
CN103853526B (zh) * 2014-02-20 2017-02-15 清华大学 可重构处理器及可重构处理器的条件执行方法
JP5767374B2 (ja) * 2014-07-30 2015-08-19 ルネサスエレクトロニクス株式会社 データプロセッサ
CN104966026A (zh) * 2015-06-03 2015-10-07 西安科技大学 数学运算***
JP6725482B2 (ja) * 2017-12-05 2020-07-22 矢崎総業株式会社 演算装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01116828A (ja) 1987-10-30 1989-05-09 Hitachi Ltd データ演算処理装置
US5349671A (en) * 1989-03-23 1994-09-20 Matsushita Electric Industrial Co., Ltd. Microprocessor system generating instruction fetch addresses at high speed
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
JP2793342B2 (ja) 1990-08-09 1998-09-03 株式会社東芝 演算処理装置
AU2902092A (en) * 1991-10-24 1993-05-21 Intel Corporation Data processing system
JPH05189585A (ja) 1992-01-14 1993-07-30 Nippon Telegr & Teleph Corp <Ntt> 並列処理における条件付き演算制御回路
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5815680A (en) * 1993-09-27 1998-09-29 Ntt Mobile Communications Network, Inc. SIMD multiprocessor with an interconnection network to allow a datapath element to access local memories
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
JP2806346B2 (ja) 1996-01-22 1998-09-30 日本電気株式会社 演算処理装置
JP3442225B2 (ja) * 1996-07-11 2003-09-02 株式会社日立製作所 演算処理装置
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US20010049780A1 (en) * 1998-03-27 2001-12-06 Shreekant Thakkar Method and apparatus for performing integer operations in response to a result of a floating point operation
JP4096133B2 (ja) 1998-04-21 2008-06-04 日本ケミコン株式会社 電解コンデンサ用電解液
JP3652518B2 (ja) 1998-07-31 2005-05-25 株式会社リコー Simd方式の演算器及び演算処理装置
JP2001265592A (ja) 2000-03-17 2001-09-28 Matsushita Electric Ind Co Ltd 情報処理装置
US20020083311A1 (en) * 2000-12-27 2002-06-27 Paver Nigel C. Method and computer program for single instruction multiple data management
US6677869B2 (en) * 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
JP3851228B2 (ja) * 2002-06-14 2006-11-29 松下電器産業株式会社 プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム
JP2004062401A (ja) 2002-07-26 2004-02-26 Matsushita Electric Ind Co Ltd 演算プロセッサおよび当該演算プロセッサを用いたカメラ装置
JP2004334297A (ja) 2003-04-30 2004-11-25 Asahi Kasei Corp 並列演算処理装置及び並列演算処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048735A (ja) * 2009-08-28 2011-03-10 Ricoh Co Ltd Simd型マイクロプロセッサ

Also Published As

Publication number Publication date
US8086830B2 (en) 2011-12-27
EP1870803A4 (en) 2008-04-30
JPWO2006112045A1 (ja) 2008-11-27
US20090228691A1 (en) 2009-09-10
CN101111818A (zh) 2008-01-23
WO2006112045A1 (ja) 2006-10-26
CN100552622C (zh) 2009-10-21
EP1870803A1 (en) 2007-12-26

Similar Documents

Publication Publication Date Title
JP4277042B2 (ja) 演算処理装置
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US11188330B2 (en) Vector multiply-add instruction
JP3547139B2 (ja) プロセッサ
US8443170B2 (en) Apparatus and method for performing SIMD multiply-accumulate operations
JP5762440B2 (ja) 高効率の埋め込み型均一マルチコアプラットフォーム用のタイルベースのプロセッサアーキテクチャーモデル
JP3442225B2 (ja) 演算処理装置
US20210216318A1 (en) Vector Processor Architectures
JP6373425B2 (ja) 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令
KR100681199B1 (ko) 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
US20120011349A1 (en) Data exchange and communication between execution units in a parallel processor
JP2006012182A (ja) データ処理システムとその方法
JP2008071130A (ja) Simd型マイクロプロセッサ
JP2005525651A (ja) 拡張可能なプロセッサアーキテクチャ中にアドバンスド命令を追加するための方法および装置
US7013321B2 (en) Methods and apparatus for performing parallel integer multiply accumulate operations
JP2001027945A (ja) Simd演算を実行するために標準macユニットを利用する浮動小数点ユニット
Wolf et al. AMIDAR project: lessons learned in 15 years of researching adaptive processors
JP4002151B2 (ja) 情報処理装置
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
EP1194835A2 (en) Method and apparatus for loose register encoding within a pipelined processor
Gass et al. Programmable DSPs
JP4444305B2 (ja) 半導体装置
JP2003241960A (ja) プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法
JP2008090744A (ja) プロセッサおよびオブジェクトコード生成装置
US11263014B2 (en) Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090114

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090309

R150 Certificate of patent or registration of utility model

Ref document number: 4277042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140313

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250