JP2008071130A - Simd型マイクロプロセッサ - Google Patents

Simd型マイクロプロセッサ Download PDF

Info

Publication number
JP2008071130A
JP2008071130A JP2006249375A JP2006249375A JP2008071130A JP 2008071130 A JP2008071130 A JP 2008071130A JP 2006249375 A JP2006249375 A JP 2006249375A JP 2006249375 A JP2006249375 A JP 2006249375A JP 2008071130 A JP2008071130 A JP 2008071130A
Authority
JP
Japan
Prior art keywords
condition
arithmetic logic
arithmetic
data
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006249375A
Other languages
English (en)
Inventor
Hidehito Kitamura
秀仁 北村
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006249375A priority Critical patent/JP2008071130A/ja
Priority to US11/898,292 priority patent/US20080072011A1/en
Publication of JP2008071130A publication Critical patent/JP2008071130A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Abstract

【課題】PE毎に複数の演算器を有するSIMD型マイクロプロセッサにおいて、条件付き命令実行の際に各演算器で演算を実施するか否かを決定できるようにする。
【解決手段】本発明に係るSIMD型マイクロプロセッサは、複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成し、各プロセッサエレメントが夫々、M個(Mは2以上の自然数)の算術論理演算回路、及び、個々の算術論理演算回路に対応するM個の演算結果格納用レジスタを装備するSIMD型マイクロプロセッサである。そのようなSIMD型マイクロプロセッサにおいて、更に、各プロセッサエレメントが、個々の算術論理演算回路から演算出力された条件データを格納する条件レジスタ部をM個装備しており、条件付き命令実行の際に、条件レジスタ部に格納された条件データにより、対応する算術論理演算回路の夫々が演算を実行するか否かを決定することを特徴とする。
【選択図】図1

Description

本発明は、条件付き命令に対応した、1つの演算命令により複数の画像データ等を並列処理するSIMD(Single Instruction Multiple Data)型マイクロプロセッサに関する。
画像処理を実行するマイクロプロセッサでは、SIMD型を採用することが多い。なぜならば、一つの命令で複数のデータに対して、同時に同一の演算処理が実行可能であるSIMD型マイクロプロセッサの特徴が画像処理に適しているからである。SIMD型マイクロプロセッサは、プロセッサエレメント(以下、PEという。)と呼ばれる単位において演算部とレジスタを備えており、更にそのようなPEを複数個有する。これら複数個のPEが同時に演算処理を行うことで、一つの命令で複数のデータに対して同時に同一の演算処理を実行する。SIMD型マイクロプロセッサでは、処理速度の向上、及び、命令供給装置や命令制御装置の共有化が可能となる。
SIMD型マイクロプロセッサ8は、概略、グローバルプロセッサ2、及びプロセッサエレメントアレイ部6を含む(図3参照)。プロセッサエレメントアレイ部6は複数のPE4の配列体である。各PE4は演算器(算術論理演算回路)、及びレジスタファイル部を含む。グローバルプロセッサ2は、プログラムを読み込み実行する独立のプロセッサであると同時に、各々のPE4に対し動作の指示を出すコントローラである。グローバルプロセッサ2には、制御回路、プログラムを格納するProgram−RAM、データを一時格納するData−RAM、及び各種レジスタ(図示せず。)が装備されている。
ところでSIMD型マイクロプロセッサでは、PE毎に演算対象データは異なるが、全てのPEでの演算処理機能は同じである。つまり、PE毎に異なる処理をすることができない。例えば、あるデータ群に対して、あるデータと比較演算した結果から判断して、一致した演算のデータだけ“0”に置き換えるというような処理の実行が困難である。このような条件付き命令が実行できることは、処理速度の向上に繋がる。さらに、条件付き命令の際に、判断条件となるデータをより多く保持できるならば、処理の選択肢が拡がり処理速度の向上にも繋がる。
また、SIMD型マイクロプロセッサでは、1PEにつき1個の演算器(算術論理演算回路)を割り当てることが多いが、そうしてしまうと、演算データのサイズによっては、合理性を欠く程大きな回路規模を必要とすることが生じ得る。例えば、16ビットデータの演算が多く、希に32ビットデータの演算が必要になるようなSIMD型マイクロプロセッサにおいては、最大データ幅の演算器を各PEに備えておかねばならない。そうすると、回路全体や装置全体が有効に使われないことになってしまう。
特許文献1に開示される発明は、一つの命令で複数のデータを並列処理する演算処理装置であって、演算フラグに基づいて、演算結果格納用レジスタに、演算結果を書き込むか否かを制御する書き込みイネーブル信号が生成され、複数の演算器の演算結果に従ったマスク処理を条件付き命令を実行することなく行い、処理速度を高速化しているものである。但し、条件付き命令に関する開示はなく、プロセッサエレメントの概念もない。
特許文献2に開示される発明は、一つの命令で複数のデータを並列処理する演算処理装置であって、演算ユニットごとに、演算フラグ制御回路を備え、一つの命令で複数の演算ユニットの条件付き演算を可能にし、処理速度を増大させるものである。また、命令供給回路を経ることなしに条件付き処理を可能にしており、条件付き命令を用いる方法に比較して、処理速度が増大している。但し、プロセッサエレメントの概念はない。
特許文献3に開示される発明は、一つの命令で複数のデータを並列処理する演算処理装置であって、演算データサイズに応じて、演算器を連動もしくは、分割して、条件付き命令の実行を可能にするものである。そして、処理速度を増大させている。但し、プロセッサエレメントの概念はない。
特許文献4に開示される発明は、一つの命令で複数のデータを並列処理する演算処理装置であって、PEごとに、演算器、フラグ情報記憶手段、データ選択手段を備えており、条件付き命令に対して条件の成立の有無に応じて、演算対象となるデータを一つの命令コードで選択し処理ステップ数を軽減するものである。但し、プロセッサエレメント毎に、複数のデータを処理することについて開示はない。
特許文献5に開示される発明は、オペランドで指定したデータを複数に分割した各データに対して、条件実行命令が、条件が成立したデータに対してのみ演算を行い、結果として高速の演算が可能なプロセッサである。該プロセッサでは、オペランドデータを一つのデータとしても条件を検証することが独立に可能であり、このことでプログラムの融通性が増す。但し、プロセッサエレメントの概念はない。
特許第2806346号公報 特開平5−189585号公報 特許第3652518号公報 特開2004−334297公報 特開2001−265592公報
従来技術のSIMD型マイクロプロセッサは、PE毎に複数の演算器(算術論理演算回路)を持ち、条件付き命令の際に、各演算器(算術論理演算回路)で演算を実施するか否かを決定できるような回路を備えていないといえる。
本発明は、SIMD型マイクロプロセッサにおいて、PE毎に、複数の、条件レジスタ部を含む演算器(算術論理演算回路)を持ち、後続の条件付き命令実行の際に各演算器(算術論理演算回路)で演算を実施するか否かを決定できるようにして、処理速度を向上させることを目的とする。
また、演算データサイズが大きい場合には、1つのPE内の複数の演算器(算術論理演算回路)を統合させて処理し、後続の条件付き命令実行の際に、演算を実施するか否かを決定できるようにして、回路規模を有効に利用することを目的とする。更に、条件データのビット数を増やして、後続の条件付き命令処理の条件数を増やし、処理速度を向上させることを目的とする。
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成し、
各プロセッサエレメントが夫々、
M個(Mは2以上の自然数)の算術論理演算回路、及び、個々の算術論理演算回路に対応するM個の演算結果格納用レジスタを装備するSIMD型マイクロプロセッサにおいて、
更に、各プロセッサエレメントが、個々の算術論理演算回路から演算出力された条件データを格納する条件レジスタ部をM個装備しており、
条件付き命令実行の際に、条件レジスタ部に格納された条件データにより、対応する算術論理演算回路の夫々が演算を実行するか否かを決定することを特徴とする。
本発明に係る請求項2に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントは、N個(2≦N≦M)の算術論理演算回路を統合させて処理する手段を有し、
上記手段によりN個の算術論理演算回路が統合されるとき、該N個の算術論理演算回路で生成される条件データを一つに統合して、該N個の算術論理演算回路に対応するN個の条件レジスタ部のうちの1個の条件レジスタ部に格納し、
条件付き命令実行の際に、
その条件レジスタ部に格納された条件データにより、統合された算術論理演算回路が演算を実行するか否かを決定することを特徴とする請求項1に記載のSIMD型マイクロプロセッサである。
本発明に係る請求項3に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントが、N個(2≦N≦M)の算術論理演算回路を統合させて処理する場合に、
N個の条件レジスタ部を統合して、条件レジスタ部におけるビット構成をN倍とすることを特徴とする請求項2に記載のSIMD型マイクロプロセッサである。
本発明を利用することにより、複数の演算器(算術論理演算回路)を備えるPEを多数含むSIMD型マイクロプロセッサにおいて、条件付き命令実行の際に各演算器(算術論理演算回路)で演算を実施するか否かを決定できるようにして、処理速度を向上させることができる。また、その際、演算データサイズが大きい場合にも機動的に適宜対処できる。更に、条件付き命令実行の際の条件データのビット数を増やすこともできる。
以下図面を参照しつつ、本発明に係る好適な実施形態を説明する。
《第1の実施形態》
以下の第1から第3の実施形態に係るSIMD型マイクロプロセッサ8は、複数のPEがPEアレイ部を構成し、各PEがM個(Mは2以上の自然数)の算術論理演算回路、M個の演算結果格納用レジスタを装備する。
図1は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。各PEは、2個の算術論理演算回路(ALU1、ALU2)、2個の演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)、及び2個の条件レジスタ部(条件レジスタ部1、条件レジスタ部2)を含む。
算術論理演算回路(ALU1、ALU2)は、16ビットデータを入力として、外部からの制御信号によって動作する。演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)は、算術論理演算回路での演算結果データを格納する16ビットレジスタである。
図12は、条件レジスタ部(条件レジスタ部1、条件レジスタ2)の構成を示す構成図である。条件レジスタ部1と条件レジスタ部2は共に同じ構成であり、T0〜T7の(各1ビットの)部分レジスタ部と、T8〜T15の(各1ビットの)部分レジスタ部を、夫々含む。条件レジスタ部は、1ビットの条件データを入力とする。T0〜T7、及びT8〜T15の夫々のビットに対して、T0_en〜T7_en、及びT8_en〜T15_enの書き込みイネーブル信号が入力されており、条件データは、条件レジスタのT0〜T7、もしくはT8〜T15のいずれかに格納される。
出力については、T0〜T7の8ビットから1ビットを選択して出力し、及びT8〜T15の8ビットから1ビットを選択して出力する構成となっている。このT0〜T7、及びT8〜T15に格納された条件データが、後続の条件付き命令の際に演算を実行するかどうかを直接に決定するデータである。夫々の条件レジスタ部は、条件を8個まで保持していることになる。
第1の実施形態に係るPEでは、16ビットデータを2個処理する場合に、算術論理演算回路(ALU1、ALU2)から演算出力された条件データが、直接条件レジスタ部(条件レジスタ部1、条件レジスタ部2)に格納される。条件レジスタ部1と条件レジスタ部2からの条件データが、夫々、ALU1とALU2とに供給されており、この(これらの)条件データにより後続の条件付き命令の演算実行をするか否かが決定される。
《第2の実施形態》
図2は、本発明の第2の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。各PEは、図1に示す第1の実施形態に係るPEと同様に、2個の算術論理演算回路(ALU1、ALU2)、2個の演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)、及び2個の条件レジスタ部(条件レジスタ部1、条件レジスタ部2)を含み、更に、2個のフラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)、及び2個の条件デコード部(CCT1、CCT2)を含む。
フラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)は、4ビットのレジスタであり、フラグデータを一度保持する。ここで、フラグデータは、
N:符号フラグ
V:オーバーフローフラグ
Z:ゼロフラグ
C:キャリーフラグ
であり、算術論理演算回路(ALU1、ALU2)における演算により出力される。条件デコード部(CCT1、CCT2)は、それらフラグデータを入力として、後続の条件付き命令の条件データ1ビットを生成する。例えば、生成される条件データは、フラグデータのNとVの排他的論理和であってもよく、Cの反転であってもよい。
第2の実施形態に係るPEでは、16ビットデータを2個処理する場合に、条件デコード部(CCT1、CCT2)から演算出力された条件データが、直接条件レジスタ部(条件レジスタ部1、条件レジスタ部2)に格納される。条件レジスタ部1と条件レジスタ22からの条件データが、夫々、ALU1とALU2に供給されており、この(これらの)条件データにより後続の条件付き命令の演算実行をするか否かが決定される。
第2の実施形態に係るSIMD型マイクロプロセッサでは、算術論理演算回路から条件レジスタ部へ1サイクルで条件データを格納することが不可能なときなどに、フラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)で一旦フラグデータ若しくは条件データを保持し次サイクルで条件レジスタ部(条件レジスタ部1、条件レジスタ部2)へ転送することが可能である。
更に、条件デコード部(CCT1、CCT2)によって、多数の複雑な条件データを生成することが可能となり、このことにより演算速度が増大され得る。
《第3の実施形態》
図3は、本発明の第3の実施形態に係るSIMD型マイクロプロセッサ8の一部の回路図である。各PEは、2個の算術論理演算回路(下位ALU、上位ALU)、2個の演算結果格納用レジスタ(下位Aレジスタ、上位Aレジスタ)、及び2個の条件レジスタ部(下位条件レジスタ、上位条件レジスタ)を含む。更にPE数が4個である。
グローバルプロセッサ2より、各PE4に制御信号が供給され、条件付き命令に対応した演算を4個のPE夫々において、2個の演算器(算術論理演算回路)で実行する。
なお、以下の実施形態では、1個のPE内での構成についてのみ示す。
《第4の実施形態》
以下の第4から第5の実施形態に係るSIMD型マイクロプロセッサ8は、複数のPEがPEアレイ部を構成し、各PEがM個(Mは2以上の自然数)の算術論理演算回路、M個の演算結果格納用レジスタを装備する。更に、各PEは、N個(2≦N≦M)の演算器(算術論理演算回路)を統合させて処理する手段を有する。
図4は、本発明の第4の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。各PEは、第1の実施形態と同様に、2個の算術論理演算回路(ALU1、ALU2)、2個の演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)、及び2個の条件レジスタ部(条件レジスタ部1、条件レジスタ部2)を含む。
更に、第4の実施形態では、各PEは、2個の演算器(算術論理演算回路)を統合させて処理する手段を有する。即ち、PEは、統合回路12、2個の選択器(選択器1、選択器2)、及びALU1とALU2の間でALU1からALU2へのキャリーを伝播する経路10を装備している。
算術論理演算回路(ALU1、ALU2)は、16ビットデータを入力として、外部からの制御信号によって動作する。演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)は、算術論理演算回路での演算結果データを格納する16ビットレジスタである。統合回路12は、算術論理演算回路(ALU1、ALU2)からの条件データを選択する回路である。選択器(選択器1、選択器2)は、条件レジスタ部1と条件レジスタ部2とから条件データを選択して、夫々、算術論理演算回路(ALU1、ALU2)にその条件データを供給する。
キャリーを伝播する経路10は、2個の演算器(算術論理演算回路(ALU1、ALU2))を統合する場合に有効となる。32ビットデータを1個処理する場合に、2個の演算器(算術論理演算回路(ALU1、ALU2))は統合して動作する。
統合した場合に、ALU2からの条件データが有効となり、統合回路12でそれを選択して条件レジスタ部1に格納できる。そして、後続の条件付き命令の際に、条件レジスタ部1の条件データを選択器1と選択器2が選択して2個の算術論理演算回路(ALU1、ALU2)に供給し、ALU1及びALU2は演算実行をするか否かを決定する。このように、第4の実施形態に係るマイクロプロセッサは32ビットデータを1個処理する場合にも対応できる。
《第5の実施形態》
図5は、本発明の第5の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。各PEは、第2の実施形態と同様に、2個の算術論理演算回路(ALU1、ALU2)、2個の演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)、2個の条件レジスタ部(条件レジスタ部1、条件レジスタ部2)、2個のフラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)、及び2個の条件デコード部(CCT1、CCT2)を含む。
更に、第5の実施形態では、各PEは、2個の演算器(算術論理演算回路)を統合させて処理する手段を有する。即ち、PEは、フラグ統合回路14、2個の選択器(選択器1、選択器2)、及びALU1とALU2の間でALU1からALU2へのキャリーを伝播する経路10を装備している。
算術論理演算回路(ALU1、ALU2)は、16ビットデータを入力として、外部からの制御信号によって動作する。演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)は、算術論理演算回路での演算結果データを格納する16ビットレジスタである。フラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)は、4ビットのレジスタであり、フラグデータを一度保持する。選択器(選択器1、選択器2)は、条件レジスタ部1と条件レジスタ2とから条件データを選択して、夫々、算術論理演算回路(ALU1、ALU2)にその条件データを供給する。
キャリーを伝播する経路10は、2個の演算器(算術論理演算回路(ALU1、ALU2))を統合する場合に有効となる。
フラグ統合回路14は、算術論理演算回路(ALU1、ALU2)からのフラグデータを演算選択する回路である。図11は、フラグ統合回路14の回路図である。フラグ統合回路14は、N1とN2を選択する回路、V1とV2を選択する回路、C1とC2を選択する回路、及び、フラグレジスタ群1のZ1か、Z1とZ2の論理和をとった値かを選択する回路で構成されている。
32ビットデータを1個処理する場合に、2個の演算器(算術論理演算回路(ALU1、ALU2))は統合して動作する。
統合した場合には、フラグレジスタ群2のN2、V2、C2のフラグデータが有効となるのでフラグ統合回路14でそれを選択し、Zフラグに関しては、Z1とZ2の論理和をとった結果を選択して、条件レジスタ部1に格納する。そして、後続の条件付き命令の際に、条件レジスタ部1の条件データを選択器1と選択器2が選択して2個の算術論理演算回路(ALU1、ALU2)に供給し、ALU1及びALU2は演算実行をするか否かを決定する。このように、第5の実施形態に係るマイクロプロセッサは32ビットデータを1個処理する場合にも対応できる。
第5の実施形態に係るSIMD型マイクロプロセッサでは、算術論理演算回路から条件レジスタ部へ1サイクルで条件データを格納することが不可能なときなどに、フラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)で一旦フラグデータ若しくは条件データを保持し次サイクルで条件レジスタ部(条件レジスタ部1、条件レジスタ部2)へ転送することが可能である。
更に、条件デコード部(CCT1、CCT2)によって、多数の複雑な条件データを生成することが可能となり、このことにより演算速度が増大され得る。
《第6の実施形態》
以下の第6から第10の実施形態に係るSIMD型マイクロプロセッサ8は、複数のPEがPEアレイ部を構成し、各PEが、M個(Mは2以上の自然数)の算術論理演算回路、M個の演算結果格納用レジスタ、及びM個の条件レジスタ部を装備する。各PEは、N個(2≦N≦M)の演算器(算術論理演算回路)を統合させて処理する手段を有し、更に、N個の演算器を統合させて処理する際にN個の条件レジスタ部を統合する手段を有する。
図6は、本発明の第6の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。各PEは、第4の実施形態と同様に、2個の算術論理演算回路(ALU1、ALU2)、2個の演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)、及び2個の条件レジスタ部(条件レジスタ部1、条件レジスタ部2)を含み、加えて、2個の演算器(算術論理演算回路)を統合させて処理する手段を有する。即ち、PEは、統合回路12、2個の選択器(選択器1、選択器2)、及びALU1とALU2の間でALU1からALU2へのキャリーを伝播する経路10を装備している。
更に、第6の実施形態に係るPEでは、図4に示す第4の実施形態の構成に加えて、条件レジスタ部2の直前にマルチプレクサ16が装備される。
第6の実施形態に係るPEでは、32ビットデータを1個処理する場合には、2個の演算器(算術論理演算回路(ALU1、ALU2))は統合して動作する。統合した場合に、ALU2からの条件データが有効となり、統合回路12でそれを選択できる。次に、統合回路12から出力される条件データが、条件レジスタ部1に格納されるか、若しくは、条件レジスタ部2の直前のマルチプレクサ16で選択されて条件レジスタ部2に格納される。そして、後続の条件付き命令の際に、条件レジスタ部1若しくは条件レジスタ部2の条件データを選択器1と選択器2とにおいて選択し、2個の算術論理演算回路(ALU1、ALU2)に供給し、ALU1及びALU2は演算実行をするか否かを決定する。このとき、条件付き命令実行の際に、条件レジスタ部1と条件レジスタ部2に保持されている16ビットの条件を使用できるということになる。即ち、第4の実施の形態の場合に比べて、2倍の条件数を条件付き命令実行の際に使用できる。
《第7の実施形態》
図7は、本発明の第7の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。各PEは、第5の実施形態と同様に、2個の算術論理演算回路(ALU1、ALU2)、2個の演算結果格納用レジスタ(演算結果レジスタ1、演算結果レジスタ2)、2個の条件レジスタ部(条件レジスタ部1、条件レジスタ部2)、2個のフラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)、及び2個の条件デコード部(CCT1、CCT2)を含み、加えて、2個の演算器(算術論理演算回路)を統合させて処理する手段を有する。即ち、PEは、フラグ統合回路14、2個の選択器(選択器1、選択器2)、及びALU1とALU2の間でALU1からALU2へのキャリーを伝播する経路10を装備している。
更に、第7の実施形態に係るPEでは、図5に示す第5の実施形態の構成に加えて、第6の実施形態と同様に、条件レジスタ部2の直前にマルチプレクサ16が装備される。
第7の実施形態に係るPEでは、32ビットデータを1個処理する場合には、2個の演算器(算術論理演算回路(ALU1、ALU2))は統合して動作する。統合した場合に、フラグレジスタ群2からのフラグデータが有効となり、フラグ統合回路14でそれを選択できる。次に、CCT1から出力された条件データが、条件レジスタ部1に格納されるか、若しくは、条件データ2の直前のマルチプレクサ16で選択されて条件レジスタ部2に格納される。そして、後続の条件付き命令の際に、条件レジスタ部1若しくは条件レジスタ部2の条件データを選択器1と選択器2とにおいて選択し、2個の算術論理演算回路ALU1、ALU2)に供給し、ALU1及びALU2は演算実行をするか否かを決定する。このとき、条件付き命令実行の際に、条件レジスタ部1と条件レジスタ部2に保持されている16ビットの条件を使用できるということになる。即ち、第5の実施形態に比べて、2倍の条件数を条件付き命令実行の際に使用できる。
また、第7の実施形態に係るSIMD型マイクロプロセッサでは、算術論理演算回路から条件レジスタ部へ1サイクルで条件データを格納することが不可能なときなどに、フラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)で一旦フラグデータ若しくは条件データを保持し次サイクルで条件レジスタ部(条件レジスタ部1、条件レジスタ部2)へ転送することが可能である。
更に、条件デコード部(CCT1、CCT2)によって、多数の複雑な条件データを生成することが可能となり、このことにより演算速度が増大され得る。
《第8の実施形態》
図8は、本発明の第8の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。第8の実施形態に係るSIMD型マイクロプロセッサは、第7の実施形態に係るSIMD型マイクロプロセッサと略同様のものである。
ただし、第8の実施形態に係るPEでは、図7に示す第7の実施形態に係るPEにおける条件デコード部(CCT1、CCT2)の替わりに、マルチプレクサ1及びマルチプレクサ2が設けられている。マルチプレクサ1及びマルチプレクサ2は、通常のマルチプレクサ回路である。
フラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2)におけるフラグデータを直接条件データとするような場合は、図11に示す条件デコード部のような回路は不必要である。即ち、このような場合には通常のマルチプレクサ回路の設定で十分な機能が備わることになる。通常のマルチプレクサ回路は小規模な回路であるから、図8に示すPEの回路は、図7に示すPEの回路よりも規模を縮小できる。
《第9の実施形態》
図9は、本発明の第9の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。第9の実施形態に係るSIMD型マイクロプロセッサを構成する各PEは、4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)、4個の演算結果格納用レジスタ、及び4個の条件レジスタ部を装備する。各PEは、4個の演算器(算術論理演算回路)を統合させて処理する手段を有し、更に、4個の演算器を統合させて処理する際に4個の条件レジスタ部を統合する手段を有する。
また、各PEは、4個の選択器(選択器1、選択器2、選択器3、選択器4)、フラグレジスタ群(フラグレジスタ群1、フラグレジスタ群2、フラグレジスタ群3、フラグレジスタ群4)、及び4個の条件デコード部(CCT1、CCT2、CCT3、CCT4)を含む。更に、条件デコード部1の直前にフラグ統合回路14が設けられ、算術論理演算回路間には、一方からのキャリーを伝播する経路(10a、10b、10c)が設けられる。
第9の実施形態に係るPEに含まれるフラグ統合回路16には、フラグレジスタ群1のN1、V1、Z1、C1と、フラグレジスタ群2のZ2と、フラグレジスタ群3のZ3と、フラグレジスタ群4のN4、V4、Z4、C4が入力される。フラグ統合回路16には、N、V、Cの3個から1個を選択する回路と、Zに関して4個のZ(Z1、Z2、Z3、Z4)の論理和かフラグレジスタ群1のZ1かを選択する回路とが、設けられている。
第9の実施形態に係るPEでは、64ビットデータを1個処理する場合に、条件レジスタ部1〜4の32ビットの条件データの中から1ビットが選択されて、4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)に供給される。4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)は、後続の条件付き命令実行の際に、この条件データに基づいて演算を実行するか否かを決定する。
また、16ビットデータを4個処理する場合に、条件レジスタ部1〜4の8ビットの条件データの中から1ビットが選択されて、4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)の夫々に供給される。4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)は、後続の条件付き命令実行の際に、条件データに基づいて演算を実行するか否かを決定する。
第9の実施形態に係るSIMD型マイクロプロセッサでは、64ビット1個の演算か、若しくは16ビット4個の演算かを選択できる。
《第10の実施形態》
図10は、本発明の第10の実施形態に係るSIMD型マイクロプロセッサ8のPE(プロセッサエレメント)4の一部の回路図である。第10の実施形態に係るSIMD型マイクロプロセッサは、第9の実施形態に係るSIMD型マイクロプロセッサと略同様のものである。
但し、第10の実施形態に係るPEでは、2個の演算器(算術論理演算回路)を統合させて処理する手段を有し、その際2個の条件レジスタ部を統合する。即ち、第10の実施形態に係るPEは、条件デコード部1の直前にフラグ統合回路14aを装備するだけでなく、条件デコード部3の直前にもフラグ統合回路14bを装備する。
フラグ統合回路(14a、14b)は、入力に対応する構成となっている。
第10の実施形態に係るPEでは、64ビットデータを1個処理する場合に、条件レジスタ部1〜4の32ビットの条件データの中から1ビットが選択されて、4個の算術論理演算(ALU1、ALU2、ALU3、ALU4)に供給される。4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)は、後続の条件付き命令実行の際に、この条件データに基づいて演算を実行するか否かを決定する。
また、32ビットデータを2個処理する場合に、条件レジスタ部1〜2の16ビットの条件データの中から1ビットが選択されて、ALU1とALU2の夫々に供給される。ALU1及びALU2は、後続の条件付き命令実行の際に、この条件データに基づいて演算を実行するか否かを決定する。同様に、条件レジスタ部3〜4の16ビットの条件データの中から1ビットが選択されて、ALU3とALU4の夫々に供給される。ALU3及びALU4は、後続の条件付き命令実行の際に、この条件データに基づいて演算を実行するか否かを決定する。
更に、16ビットデータを4個処理する場合に、条件レジスタ部1〜4の8ビットの条件データの中から1ビットが選択されて、4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)の夫々に供給される。4個の算術論理演算回路(ALU1、ALU2、ALU3、ALU4)は、後続の条件付き命令実行の際に、条件データに基づいて演算を実行するか否かを決定する。
第10の実施形態に係るSIMD型マイクロプロセッサでは、64ビット1個の演算か、32ビット2個の演算か、若しくは16ビット4個の演算かを選択できる。
本発明の第1の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第2の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第3の実施形態に係るSIMD型マイクロプロセッサの一部の回路図である。 本発明の第4の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第5の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第6の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第7の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第8の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第9の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 本発明の第10の実施形態に係るSIMD型マイクロプロセッサのPE(プロセッサエレメント)の一部の回路図である。 フラグ統合回路の回路図である。 条件レジスタ部(条件レジスタ部1、条件レジスタ2)の構成を示す構成図である。
符号の説明
2・・・グローバルプロセッサ、4・・・プロセッサエレメント(PE)、6・・・プロセッサエレメントアレイ部、8・・・SIMD型マイクロプロセッサ、12・・・統合回路、14・・・フラグ統合回路。

Claims (3)

  1. 複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成し、
    各プロセッサエレメントが夫々、
    M個(Mは2以上の自然数)の算術論理演算回路、及び、個々の算術論理演算回路に対応するM個の演算結果格納用レジスタを装備するSIMD型マイクロプロセッサにおいて、
    更に、各プロセッサエレメントが、個々の算術論理演算回路から演算出力された条件データを格納する条件レジスタ部をM個装備しており、
    条件付き命令実行の際に、条件レジスタ部に格納された条件データにより、対応する算術論理演算回路の夫々が演算を実行するか否かを決定することを特徴とするSIMD型マイクロプロセッサ。
  2. 各プロセッサエレメントは、N個(2≦N≦M)の算術論理演算回路を統合させて処理する手段を有し、
    上記手段によりN個の算術論理演算回路が統合されるとき、該N個の算術論理演算回路で生成される条件データを一つに統合して、該N個の算術論理演算回路に対応するN個の条件レジスタ部のうちの1個の条件レジスタ部に格納し、
    条件付き命令実行の際に、
    その条件レジスタ部に格納された条件データにより、統合された算術論理演算回路が演算を実行するか否かを決定することを特徴とする請求項1に記載のSIMD型マイクロプロセッサ。
  3. 各プロセッサエレメントが、N個(2≦N≦M)の算術論理演算回路を統合させて処理する場合に、
    N個の条件レジスタ部を統合して、条件レジスタ部におけるビット構成をN倍とすることを特徴とする請求項2に記載のSIMD型マイクロプロセッサ。
JP2006249375A 2006-09-14 2006-09-14 Simd型マイクロプロセッサ Pending JP2008071130A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006249375A JP2008071130A (ja) 2006-09-14 2006-09-14 Simd型マイクロプロセッサ
US11/898,292 US20080072011A1 (en) 2006-09-14 2007-09-11 SIMD type microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006249375A JP2008071130A (ja) 2006-09-14 2006-09-14 Simd型マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JP2008071130A true JP2008071130A (ja) 2008-03-27

Family

ID=39190050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006249375A Pending JP2008071130A (ja) 2006-09-14 2006-09-14 Simd型マイクロプロセッサ

Country Status (2)

Country Link
US (1) US20080072011A1 (ja)
JP (1) JP2008071130A (ja)

Cited By (3)

* 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型マイクロプロセッサ
US8024550B2 (en) 2008-01-22 2011-09-20 Ricoh Company, Ltd. SIMD processor with each processing element receiving buffered control signal from clocked register positioned in the middle of the group
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2217999A2 (de) * 2007-11-28 2010-08-18 Krass, Maren Compiler für rekonfigurierbare architekturen mit besonderem zwischenformat
JP2010033426A (ja) * 2008-07-30 2010-02-12 Ricoh Co Ltd Simd型マイクロプロセッサおよび演算方法
JP5499799B2 (ja) * 2010-03-17 2014-05-21 株式会社リコー セレクタ回路
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
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
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
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
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
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
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
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
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
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
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)
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9032189B2 (en) * 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198231A (ja) * 1996-01-22 1997-07-31 Nec Corp 演算処理装置
JPH1083381A (ja) * 1996-09-06 1998-03-31 Matsushita Electric Ind Co Ltd 信号処理装置
JPH1153189A (ja) * 1997-07-31 1999-02-26 Toshiba Corp 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
JP2000047998A (ja) * 1998-07-31 2000-02-18 Ricoh Co Ltd Simd方式の演算器及び演算処理装置
JP2002510418A (ja) * 1998-03-18 2002-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マトリックスのコサイン変換を計算するためのデータ処理装置およびその方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026484A (en) * 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority
US6282628B1 (en) * 1999-02-24 2001-08-28 International Business Machines Corporation Method and system for a result code for a single-instruction multiple-data predicate compare operation
GB2355084B (en) * 1999-07-21 2004-04-28 Element 14 Ltd Setting condition values in a computer
US20020083311A1 (en) * 2000-12-27 2002-06-27 Paver Nigel C. Method and computer program for single instruction multiple data management
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US7219213B2 (en) * 2004-12-17 2007-05-15 Intel Corporation Flag bits evaluation for multiple vector SIMD channels execution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198231A (ja) * 1996-01-22 1997-07-31 Nec Corp 演算処理装置
JPH1083381A (ja) * 1996-09-06 1998-03-31 Matsushita Electric Ind Co Ltd 信号処理装置
JPH1153189A (ja) * 1997-07-31 1999-02-26 Toshiba Corp 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
JP2002510418A (ja) * 1998-03-18 2002-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マトリックスのコサイン変換を計算するためのデータ処理装置およびその方法
JP2000047998A (ja) * 1998-07-31 2000-02-18 Ricoh Co Ltd Simd方式の演算器及び演算処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024550B2 (en) 2008-01-22 2011-09-20 Ricoh Company, Ltd. SIMD processor with each processing element receiving buffered control signal from clocked register positioned in the middle of the group
JP2011048735A (ja) * 2009-08-28 2011-03-10 Ricoh Co Ltd Simd型マイクロプロセッサ
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム

Also Published As

Publication number Publication date
US20080072011A1 (en) 2008-03-20

Similar Documents

Publication Publication Date Title
JP2008071130A (ja) Simd型マイクロプロセッサ
EP3513281B1 (en) Vector multiply-add instruction
JP4277042B2 (ja) 演算処理装置
US20140215189A1 (en) Data processing apparatus and method for controlling use of an issue queue
TWI450192B (zh) 用於處理器中之控制處理的裝置及方法
US10514919B2 (en) Data processing apparatus and method for processing vector operands
EP1206737A1 (en) Setting condition values in a computer
JP2009015556A (ja) Simd型マイクロプロセッサ
US20150212972A1 (en) Data processing apparatus and method for performing scan operations
US9965275B2 (en) Element size increasing instruction
WO2001006353A1 (en) Conditional instruction execution in a computer
JP2009271598A (ja) プロセッサ
JPH05150979A (ja) 即値オペランド拡張方式
EP1634163B1 (en) Result partitioning within simd data processing systems
US20060101240A1 (en) Digital signal processing circuit and digital signal processing method
US11080054B2 (en) Data processing apparatus and method for generating a status flag using predicate indicators
US9606798B2 (en) VLIW processor, instruction structure, and instruction execution method
JP4868607B2 (ja) Simd型マイクロプロセッサ
JP4516495B2 (ja) Simd型マイクロプロセッサにおけるデータ処理方法
JP4398965B2 (ja) Simdプロセッサにおけるデータ設定装置
JP3895267B2 (ja) Simdプロセッサ
JP2008071037A (ja) Simd型マイクロプロセッサ
JP3971557B2 (ja) Simdプロセッサにおけるデータ設定装置
JP2009086870A (ja) ベクトル処理装置
JPH1196001A (ja) プログラム実行装置及びプログラム変換方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101116