JP3971535B2 - Simd型プロセッサ - Google Patents
Simd型プロセッサ Download PDFInfo
- Publication number
- JP3971535B2 JP3971535B2 JP25686599A JP25686599A JP3971535B2 JP 3971535 B2 JP3971535 B2 JP 3971535B2 JP 25686599 A JP25686599 A JP 25686599A JP 25686599 A JP25686599 A JP 25686599A JP 3971535 B2 JP3971535 B2 JP 3971535B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processor
- register
- processor element
- assigned
- 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
Links
- 239000000872 buffer Substances 0.000 claims description 30
- 230000015654 memory Effects 0.000 description 89
- 238000000034 method Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- VKYKSIONXSXAKP-UHFFFAOYSA-N hexamethylenetetramine Chemical class C1N(C2)CN3CN1CN2C3 VKYKSIONXSXAKP-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
この発明は、一つの演算命令により複数の画像データ等を並列処理するSIMD(Single Instruction Stream Multiple Data Stream)型プロセッサに関するものである。
【0002】
【従来の技術】
近年、デジタル複写機やファクリミリ装置等において、画素数を増加させたり、或いはカラー対応にするなど画像の向上が図られている。そして、この画像の向上に伴い、処理すべきデータ数が増加している。ところで、複写機などにおけるデータ処理は全ての画素に対して同じ演算処理を施すことが多い。そこで、1つの命令で複数のデータに対して同時に同じ演算処理を行うSIMD型プロセッサが用いられるようになっている。ここで、演算処理は複数の演算器を並べることで実現できるが、演算の対象となるデータは演算速度に見合う速度でメモリ等をアクセスする必要があり、この速度に間に合わない場合はデータのアクセス速度でプロセッサの性能が決定してしまう。通常タイプのSISD(Single Instruction Single Data)型プロセッサでは、演算データはプロセッサのプログラムによりメモリから逐次アクセスするが、この場合にデータのアクセス速度はメモリのビット幅と転送時間で決定する。SIMD型プロセッサにおいてもこの方法を用いると演算は並列処理であるのに対して、データのアクセスは逐次処理となりSISD型プロセッサ程度に処理能力は低下してしまう。
【0003】
このため、SIMD型プロセッサでは、演算対象データのアクセスはプロセッサの命令では行わず、外部のメモリデータ転送装置からプロセッサ内部の入出力用のレジスタに直接アクセスするように構成している。即ち、プロセッサでの演算実行と同時に、外部に備えられたメモリデータ転送装置が次に演算処理されるデータを入力用レジスタへ転送したり、演算処理されたデータを出力レジスタからメモリデータ転送装置を介してメモリへ転送することで、データ処理の高速化を図っている。
【0004】
プロセッサと外部メモリデータ転送装置での処理フローは以下のように行われる。
(1)外部メモリデータ転送装置が演算対象データを入力用レジスタに転送。
(2)プロセッサは外部から演算データを転送済みである入力用のレジスタから演算対象データを演算用のレジスタに転送し演算を開始。
(3)プロセッサが所定の演算を実行する。この間に外部メモリデータ転送装置が次の演算対象データを入力用レジスタに転送。また、演算処理済みデータ(結果データ)が出力用レジスタにある場合には外部メモリデータ転送装置が結果データを出力用レジスタからメモリへ転送。
(4)プロセッサは演算を終了し、結果データを出力用レジスタに転送。
【0005】
上記のように、プロセッサの演算実行時に同時に外部のメモリデータ転送装置が演算データを転送することで高速化を実現している。
【0006】
このデータ転送方式として、シフトレジスタ方式、或いはシリアルアクセスメモリ方式が採用されている。このシフトレジスタ方式は、例えば特開平5−67203号公報に記載されているように、クロック入力に同期して、レジスタに保持されているデータがビット毎に順次シフトされる方式である。このシフトレジスタ方式によれば、例えば256個のプロセッサエレメントを持つSIMD型プロセッサの場合、1回目に転送されたデータは0番目のプロセッサエレメントの入力レジスタに保持され、次のクロック入力により1ビットシフトされて1番目のプロセッサエレメントの入力レジスタに保持される。そして、1回目に転送されたデータが、255番目のプロセッサエレメントの入力レジスタに保持されるまでには、合計256回のクロック入力が必要となる。
【0007】
また、シリアルアクセスメモリ方式は、例えば特開平6−4690号公報に記載されているように、入力ポインタが一つのプロセッサエレメントに論理“H”を立てた入力ポインタ信号を発生し、論理“H”で指定されたプロセッサエレメントの入力SAM(シリアルアクセスメモリ)に入力データが書き込まれる方式である。このシリアルアクセスメモリ方式では、入力ポインタ信号はクロック入力に同期してビット毎に順次シフトしていく。従って、このシリアルアクセスメモリ方式によれば、例えば256個のプロセッサエレメントを持つSIMD型プロセッサの場合、1回目のデータ転送では、入力ポインタ信号が0番目のプロセッサエレメントを指定し、0番目のプロセッサエレメントの入力SAMにデータが保持される。次いで、2回目のデータ転送では、入力ポインタ信号がクロック入力に同期して1ビットシフトして1番目のプロセッサエレメントを指定し、1番目のプロセッサエレメントの入力SAMにデータが保持される。このようにして、255番目のプロセッサエレメントの入力SAMにデータが保持されるまでには、合計256回目のクロック入力が必要となる。
【0008】
【発明が解決しようとする課題】
しかし、これらの方式によると、データを偶数番目のプロセッサエレメントにだけ転送したいような場合であっても、奇数番目のプロセッサエレメントにも転送しなければならないという問題があった。また、データを後半のプロセッサエレメント(128番目〜255番目)にだけ転送したいような場合であっても、全部のプロセッサエレメントに転送しなければならないという問題があった。即ち、特定のプロセッサエレメントにだけデータを直接転送することはできないという問題があった。そのため、必要なデータを転送するのに、必要以上に時間を要し、データ処理が遅くなるという問題があった。
【0009】
また、プロセッサで行うデータ処理においては、入力データの保持に必要な入力レジスタのビット幅、出力データの保持に必要な出力レジスタのビット幅、一時的にデータを保持するのに必要なレジスタのビット幅は実行するアプリケーションにより異なる。従来のSIMD型プロセッサにおいては、入力レジスタ、出力レジスタ、一時的にデータを保持するレジスタで保持できるデータのビット幅が固定であった。そのため、データがこれらのレジスタで保持できるビット幅を越えるとデータ処理できないという問題があった。
【0010】
また、従来技術では入出力レジスタと入出力ポートのビット幅は同じであり、全プロセッサエレメント(PE)のデータを転送するのにはPE数だけのアクセスが必要であり、転送時間が多くなる問題があった。
【0011】
また、アプリケーションによっては多数のラインバッファが必要となりプロセッサエレメントに内蔵するレジスタをこの用途に使用している。しかし、レジスタ数は固定であるため、この値を超えるラインバッファが必要なアプリケーションには対応できない問題があった。
【0012】
この発明は、斯かる従来の問題に着目してなされたものであり、データを任意のプロセッサエレメントに直接に転送することを可能にすることで、データの転送を高速にし、延いてはデータ処理を高速にすることを目的とする。また、レジスタの使用用途を柔軟にすることで、データのビット数に柔軟に対応したデータ処理を可能にすることを目的とする。
【0013】
【課題を解決するための手段】
この発明のSIMD型プロセッサは、データを演算処理する演算手段及び当該演算手段で演算処理されるデータを保持するとともに当該演算手段で演算処理されたデータを保持するデータ保持手段を備える複数のプロセッサエレメントと、このプロセッサエレメントそれぞれに接続されるデータ転送バスと、前記プロセッサエレメントに割り付けられたアドレスにより所定のプロセッサエレメントを指定する指定手段と、を備え、前記プロセッサエレメントに偶数番号或いは奇数番号を割り付けて、偶数番号が割り付けられたプロセッサエレメントと奇数番号が割り付けられたプロセッサエレメントとを一組とするとともに、偶数番号が割り付けられたプロセッサエレメント用の前記データ転送バス或いは奇数番号が割り付けられたプロセッサエレメント用の前記データ転送バスを各組毎のプロセッサエレメントにそれぞれ割り当て、前記指定手段により指定された所定の組のプロセッサエレメントにおける前記データ保持手段はそれぞれ割り当てられた前記データ転送バスよりデータを取得或いは出力することを特徴とする。
【0014】
これによれば、一組になっているプロセッサエレメントを一度指定することにより、偶数番号、奇数番号が割り付けられた2つのプロセッサエレメントはそれぞれに割り当てられたデータ転送バスを介して、データの転送ができる。従って、データ転送が一度により多くできるため、データ転送回数を少なくできる。これに伴いデータ転送を高速にでき、データ処理を高速にできる。
【0015】
また、この発明は、データを演算処理する演算手段及び当該演算手段で演算処理されるデータを保持するとともに当該演算手段で演算処理されたデータを保持するレジスタ手段を備える複数のプロセッサエレメントと、このプロセッサエレメントそれぞれに接続されるデータ転送バスと、前記プロセッサエレメントに割り付けられたアドレスにより所定の プロセッサエレメントを指定する指定手段と、前記プロセッサエレメントを構成する前記レジスタ手段とは別に所定数設けられたバッファ記憶手段と、を備え、処理数単位を分割して前記バッファ記憶手段からデータを取り込むとともに、前記指定手段が所定のプロセッサエレメントをアドレス指定することにより、このアドレス指定されたプロセッサエレメントの前記レジスタ手段はデータを前記データ転送バスより取得或いは出力することを特徴とする。
【0016】
これにより、プロセッサエレメントのレジスタ手段の容量を越えるデータの処理が可能になる。例えば、1ラインの処理数(画素数)が多くなっても、外部のデータ保持手段で保持して、このバッファ記憶手段から処理数単位を分割してデータを取り込み、繰り返し同じ処理を行うことで、画素数の増加にも容易に対応できる。
【0017】
【発明の実施の形態】
以下、この発明に係るSIMD型プロセッサ1の前提となる形態を、図1乃至図4に基づいて説明する。
【0018】
SIMD型プロセッサ1は、図1に示すように、グローバルプロセッサ2、本実施形態では256組の後述するプロセッサエレメント3aからなるプロセッサエレメントブロック3、メモリコントローラ5と接続される外部インターフェース4から構成される。メモリコントローラ5はグローバルプロセッサ2の命令に基づき、メモリ6から演算対象データをプロセッサ内部の入出力用のレジスタフィル31に直接アクセスする。
【0019】
まず、メモリコントローラ5につき説明する。図1に示すように、メモリーコントローラ4は、SIMD型プロセッサ1のレジスタファイル31と外部インタフェース4のデータ転送ポートを介して接続されていて、レジスタファイル31からメモリ6へのデータ転送、メモリ6からレジスタファイル31へのデータ転送を行っている。メモリコントローラ5が制御するレジスタは、I/O空間にマッピングされており、グローバルプロセッサ2からの指示に従い、アドレス、クロック、及びリード・ライト制御を出力することでリード、ライト可能となっている。
【0020】
グローバルプロセッサ2からメモリコントローラ5へはI/O用のアドレス、データ、コントロール信号がバスを介して与えられる。グローバルプロセッサ2がメモリコントローラ5のいくつかの動作設定レジスタ(図示せず)へ動作方法等のコマンドを設定している。最後にグローバルプロセッサ2は、メモリコントローラ5のスタートレジスタ(図示せず)にスタートコードを書き込むことで、メモリコントローラ5は自動的に設定に従った動作を行う。このように構成することで、プロセッサの命令制御による演算と同時にレジスタファイル31のデータを入出力する。
【0021】
図2は、この発明に用いられるメモリコントローラ5の構成を示したものである。メモリコントローラ5は、メモリ6にデータライトを行うライトバッファ部54と、メモリ6からデータリードを行うリードバッファ部55と、PEレジスタファイルの制御を行っているPE制御部52、メモリ6の制御を行うRAM制御部53、及びシーケンスユニット(SCU)51より構成されている。
【0022】
ライトバッファ部54にはSIMD方式プロセッサ1の外部インタフェース4の出力ポートが接続され、リードバッファ部55には外部インタフェース4の入力ポートが接続される。
【0023】
グローバルプロセッサ2は、図3に示すように、グローバルプロセッサ2、プロセッサエレメントブロック3、外部インタフェース4及びメモリコントローラ5を制御するためのプログラムが格納されたプログラムRAM21、及びこのプログラムRAM21に基づきグローバルプロセッサ2、プロセッサエレメントブロック3、外部インタフェース4、メモリコントローラ5を制御するシーケンスユニット22を備える。具体的には、このシーケンスユニット22は、グローバルプロセッサ2に備えられている後述する算術論理演算器23(以下、「ALU23」という。)等を制御する。
【0024】
また、このシーケンスユニット22は、プロセッサエレメントブロック3を構成する後述するレジスタファイル31、及び後述する演算アレイ36を制御する。この演算アレイ36は、マルチプレクサ32、シフト拡張回路33、算術論理演算器34(以下、「ALU34」という)、及びレジスタ35を備える。なお、このグローバルプロセッサ2は、いわゆるSISD型であり、一つの演算命令に対して一つの演算処理を行うものである。
【0025】
さらに、このシーケンスユニット22は、後述するメモリコントローラ5に対してデータ転送のための動作設定用データ及びコマンド等を送る。メモリコントローラ5は、シーケンスユニット22の動作設定用データ及びコマンドに基づき、プロセッサエレメント3aのアドレス指定のためのアドレス制御信号、プロセッサエレメント3aを構成する後述するレジスタ31bにデータのリード/ライトを指示するためのリード/ライト制御信号、クロック信号を与えるためのクロック制御信号を外部インタフェース4に与える。
【0026】
ここで、リード/ライト制御信号のうちライト制御信号とは、演算処理されるデータを後述するデータバス41dより取得して、プロセッサエレメント3aのレジスタ31bに保持させるための信号をいう。一方、リード/ライト制御信号のうちリード制御信号とは、プロセッサエレメント3aのレジスタ31bが保持している演算処理されたデータを、後述するデータバス41dへ与えるようレジスタ31bに指示するための信号をいう。
【0027】
メモリコントローラ5は、グローバルプロセッサ2からのコマンドを受けて、プロセッサエレメントブロック3を構成するプロセッサエレメント3aのアドレスを指定する信号(以下、「アドレス指定信号」という。)を作成し、外部インターフェース4からアドレスバス41aを介してプロセッサエレメント3aの後述するレジスタコントローラ31aヘ送る。また、メモリコントローラ5は、後述するようにプロセッサエレメント3aを構成するレジスタ31bに対して、データのリード/ライトを指示するための信号(以下、「リード/ライト指示信号」という。)を、リード/ライト信号41bを介してプロセッサエレメント3aの後述するレジスタコントローラ31aヘリード/ライト信号が与えられる。また、メモリコントローラ5は、外部インタフェース4からクロック信号41cを介してプロセッサエレメント3aの後述するレジスタコントローラ31aへクロック信号を与える。
【0028】
また、メモリコントローラ5は、上述したように、SIMD型プロセッサ1の外部に設けられたメモリ6に格納されているデータを、本実施形態では8ビットのパラレルデータとして、データバス41dに置く。この8ビットのパラレルデータについては、データに応じて適宜変更しても問題ない。このデータバス41dは、レジスタ31bに保持されている演算処理されたデータが、SIMD型プロセッサ1の外部に設けられたメモリ6に送られる時にも使用される。
【0029】
なお、メモリ6は演算処理されるデータを格納するとともに、演算処理されたデータを格納するものであり、これらのメモリ6はSIMD型プロセッサ1の内部に設けても問題ない。また、メモリコントローラ5とメモリ6との間のデータ転送についても、本実施形態では8ビットのパラレルデータとして転送されるものとして扱うが、データに応じて適宜変更しても問題ない。なお、メモリコントローラ5が行うその他の動作については後述する。
【0030】
また、グローバルプロセッサ2は、上記シーケンスユニット22からの命令により、算術論理演算を行うALU23、演算データを格納するデータRAM24を備える。さらに、グローバルプロセッサ2は、演算処理されるデータ等を保持するためのレジスタ群25を備える。
【0031】
このレジスタ群25は、プログラムのアドレスを保持するプログラムカウンタPC、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ待避、復帰時に待避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI、LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)を内蔵している。
【0032】
また、レジスタ群25は、プロセッサエレメントブロック3の後述するレジスタ35に接続されており、このレジスタ35との間でシーケンスユニット22の制御によりデータの交換が行われる。
【0033】
プロセッサエレメントブロック3は、図1及び図3に示すように、レジスタファイル31、マルチプレクサ32、シフト・拡張回路33、算術論理演算器34(以下、「ALU34」という。)、レジスタ35、を一単位とする複数のプロセッサエレメント3aを備える。レジスタファイル31には、1つのプロセッサエレメント3a単位に8ビットのレジスタが32本内蔵されており、本実施形態では256プロセッサエレメント分の組がアレイ構成になっている。レジスタファイル31は1つのプロセッサエレメント(PE)3aごとにR0、R1、R2、...R31と呼ばれているレジスタが内蔵されている。それぞれのレジスタファイル31は演算アレイ36に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバスで演算アレイ36からアクセスされる。32本のレジスタの内、24本はプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタを読み書きできる。
【0034】
レジスタの外部からのアクセスは1つの外部ポートで各プロセッサエレメント(PE)の1つのレジスタがアクセス可能であり外部から入力されたアドレスでプロセッサエレメント(PE)の番号(0〜255)を指定する。したがって、レジスタアクセスの外部ポートは全部で24組搭載されている。また、外部からのアクセスは偶数のプロセッサエレメント(PE)と奇数のプロセッサエレメント(PE)の1組で16ビットデータとなっており、1回のアクセスで2つのレジスタを同時にアクセスしている。
【0035】
本形態では、プロセッサエレメント3aの数を256個として説明するが、これに限定されるものでなく適宜変更して使用してもよい。このプロセッサエレメント3aには、グローバルプロセッサ2のシーケンスユニット22により、外部インタフェース4に近い順に0から255までのアドレスが割り付けられる。
【0036】
プロセッサエレメント3aのレジスタファイル31は、レジスタコントローラ31a、2種類のレジスタ31b、31cを備える。本形態では、図3及び図4に示すように、一単位のプロセッサエレメント3a毎に、レジスタコントローラ31aとレジスタ31bとを24組備え、さらにレジスタ31cを8個備えている。なお、図4では2組のプロセッサエレメント3aにおけるレジスタファイル31の一部を表しており、図3、4中の1PEとは1つのプロセッサエレメント3aを表している。ここで、本形態では、レジスタ31b、31cを8ビットのものとして扱うが、これに限定されるものでなく適宜変更して使用してもよい。
【0037】
レジスタコントローラ31aは、図4に示すように、外部インタフェース4と、上述したアドレスバス41a、リード/ライト信号41b、クロック信号41cを介して接続されている。このレジスタコントローラ31aは、メモリコントローラ5から外部インタフェース4に与えられ、アドレスバス41aを介してアドレス指定信号が送られてくると、そのアドレス指定信号をデコードする。そして、デコードしたアドレスと、自己のプロセッサエレメント3aに割り付けられたアドレスとが一致する場合には、メモリコントローラ5から外部インタフェース4に与えられ、クロック信号41cからのクロック信号に同期して、リード/ライト信号41bを介してメモリコントローラ5から送られてきたリード/ライト指示信号を得る。このリード/ライト指示信号は、レジスタ31bへ与えられる。
【0038】
レジスタ31bは、後述するALU34でこれから演算される外部から入力されたデータを保持したり、或いはALU34で演算処理されたデータを外部へ出力するために保持するものであり、いわゆる入力レジスタとしても、或いは出力レジスタとしても機能する。また、演算処理されるデータ、或いは演算されたデータを一時的に保持するといった、後述するレジスタ31cとしての機能も有する。なお、本実施形態では、レジスタ31bは8ビットのデータを保持できるものとして扱うが、データに応じて適宜変更しても問題ない。上述したレジスタコントローラ31aからライト指示信号が与えられると、レジスタ31bは演算処理されるデータをデータバス41dより取得して保持する。一方、レジスタコントローラ31aからリード指示信号が送られてくると、レジスタ31bは保持している演算処理されたデータをデータバス41dへ与える。このデータは外部インタフェース4からメモリコントローラ5のライトバッファ部54に与えられ、ライトバッファ部54からメモリ6へ格納される。
【0039】
また、レジスタ31bは、本実施形態においては8ビットデータをパラレルで転送するデータバス36を介してマルチプレクサ32に接続されている。ALU34で演算処理されるデータ、或いはALU34で演算処理されたデータは、このデータバス36を介して、レジスタ31bとの間で転送される。この転送は、グローバルプロセッサ2のシーケンスユニット22からの指示によって、グローバルプロセッサ2に接続されたリード信号26a、ライト信号26bを介して行われる。具体的には、グローバルプロセッサ2のシーケンスユニット22から、リード信号26aを介してリード指示信号が送られてくると、レジスタ31bはデータバス36を介して送られてきたALU34で演算処理されたデータを保持する。一方、グローバルプロセッサ2のシーケンスユニット22から、ライト信号26bを介してライト指示信号が送られてくると、レジスタ31bは保持している演算処理されるデータをデータバス36へ置く。このデータはALU34へ送られ演算処理される。
【0040】
レジスタ31cは、レジスタ31bより与えられた演算処理されるデータ、或いは演算されたデータがレジスタ31bに与えられる前に、そのデータを一時的に保持するものである。このレジスタ31cは、上述したレジスタ31bと異なり、メモリコントローラ5を介して、メモリ6との間においてデータ転送はしない。
【0041】
演算アレイ36は、マルチプレクサ32シフト/拡張回路33、16ビットALU34及び16ビットのレジスタ35を備えている。このレジスタ35には、16ビットAレジスタ、Fレジスタを内蔵している。
【0042】
プロセッサエレメント(PE)3aの命令による演算は、基本的にレジスタファイル31から読み出されたデータをALU34の片側の入力としてもう片側にはレジスタ35のAレジスタの内容を入力として結果をAレジスタに格納する。したがって、Aレジスタとレジスタファイル31のR0〜R31レジスタとの演算が行われることとなる。レジスタファイル31と演算アレイ36との接続に(7to1)のマルチプレクサ32を置いており、プロセッサエレメント(PE)方向で左に1、2、3つ離れたデータと右に1、2、3つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル31の8ビットのデータはシフト/拡張回路33により任意ビットの左シフトしてALU34に入力される。さらに、図示していない8ビットの条件レジスタ(T)により、プロセッサエレメント3aごとに演算実行の無効/有効の制御をしており、特定のプロセッサエレメント3aだけを演算対象として選択できるように構成している。
【0043】
上記したように、マルチプレクサ32は、自己のプロセッサエレメント3aに備えられた上記データバス36に接続されるとともに、両隣3つのプロセッサエレメント3aに備えられたデータバス36にも接続されている。このマルチプレクサ32は7つのプロセッサエレメント3aから1つを選択し、その選択したプロセッサエレメント3aにおけるレジスタレジスタ31b、31cで保持されているデータをALU34へ送る。或いはALU34で演算処理されたデータを、選択したプロセッサエレメント3aにおけるレジスタレジスタ31b、31cへ送る。これによって、隣のプロセッサエレメント3aにおけるレジスタレジスタ31b、31cで保持されているデータを利用した演算処理が可能になり、SIMD型プロセッサ1の演算処理能力を高めることができる。
【0044】
シフト/拡張回路33は、マルチプレクサ32から送られてきたデータを所定ビットシフトしてALU34へ送る。或いはALU34から送られてきた演算処理されたデータを所定ビットシフトしてマルチプレクサ32へ送る。
【0045】
ALU34は、シフト/拡張回路33から送られてきたデータと、レジスタ35に保持されているデータとに基づき算術論理演算を行う。なお、本実施形態では、ALU34は16ビットのデータに対応できるものとして扱うが、データに応じて適宜変更しても問題ない。演算処理されたデータは、レジスタ35に保持され、シフト/拡張回路33へ転送されたり、或いはグローバルプロセッサ2の汎用レジスタ25へ転送される。
【0046】
次に、外部からプロセッサエレメント3aのレジスタファイル31へのアクセスにつき図4を参照して説明する。この図4では、外部インターフェース4の外部ポートは8ビットのアドレス、ハイレベル時にリード動作をローレベル時にライト動作を示すリード/ライト選択信号、転送のタイミングを示すクロック、転送データである8ビットデータで構成されている。これらの信号はプロセッサの外部インタフェース4に接続され、ここでタイミングおよびバッファリングされ、プロセッサ内部の信号としてアドレス、リード/ライト、クロック、データに変換される。
【0047】
これらの信号はレジスタファイル31の各レジスタに供給されるが、各プロセッサエレメント3a…ごとにアドレスをデコードして各プロセッサエレメント3a…を示すアドレスと一致したプロセッサエレメント3aだけがリード/ライトの動作をおこなう。そのため各プロセッサエレメント3aごとにアドレスのデコードとリード/ライトの制御を行うレジスタコントローラ31aを備える。そして、入出力レジスタ31bには、リード/ライト信号41bから与えられるリードライト指示信号(ライト信号W1、リード信号R1)に基づき、外部インタフェース4と接続されたデータバス41dとデータの転送をおこなう。入出力レジスタ31bは演算アレイ36ともデータの転送をおこなうため、もう一方の入出力ポートを持ち、命令によりグローバルプロセッサ2で作成され、リード信号26a及びライト信号26bから与えられるたライト(W2)、リード(R2)制御信号により、演算アレイ36と接続されたデータバス37(D2)からデータの転送をおこなう。
【0048】
図4では2個のプロセッサエレメント3a分の構成だけを図示しているが、図3の256個のプロセッサエレメント3a…の構成と合わせるためには、レジスタコントローラ31aとレジスタファイル31bは256組必要となる。また、256組を選択するためにアドレスのビット幅は8ビットとなっている。従って、プロセッサエレメント3aの数の増減によりアドレスのビット幅も変化することとなる。また、データのビット幅もここでは8ビットとしているが1度に転送するデータ量により変化する。
【0049】
このように構成される本形態におけるSIMD型プロセッサ1は、以下のような動作を行うため、以下のような利点を得ることができる。
【0050】
メモリコントローラ5が、メモリ6に格納されているデータをプロセッサエレメント3aに送る場合、プロセッサエレメント3aに割り付けられたアドレスを指定することにより、1回のクロック信号が入力されるだけで、その指定したプロセッサエレメント3aにデータを送ることができる。例えばデータを偶数番目のプロセッサエレメント3aにだけ転送したい場合には、偶数番目のプロセッサエレメント3aをアドレス指定すればよい。よって、奇数番目のプロセッサエレメント3aに、データを転送する必要がないため、データ転送が高速になり、延いてはデータ処理を高速にすることができる。
【0051】
また、これとは逆に、レジスタ31bに保持されている演算処理されたデータをメモリ5に転送する場合においても、メモリコントローラ5が、プロセッサエレメント3aに割り付けられたアドレスを指定することにより、1回のクロック信号が入力されるだけで、指定したプロセッサエレメント3aのレジスタ31bに保持されているデータをメモリ6に転送できる。従って、この場合においても、必要なデータのみを転送できるため、データ転送が高速になり、延いてはデータ処理を高速にすることができる。
【0052】
一つのプロセッサエレメント3aにつき、24個づつ備えられているレジスタ31bは、上述したように、演算処理されるデータを保持したり、或いは演算処理されたデータを保持するものであり、いわゆる入力レジスタとしても、或いは出力レジスタとしても機能する。例えば、メモリコントローラ5からプロセッサエレメント3aに送られるデータ、即ち入力データが56ビットのものであり、プロセッサエレメント3aからメモリコントローラ5に送るデータ、即ち出力データが32ビットのものであり、一時的に保持されるべきデータが80ビットである場合のアプリケーションを考える。この場合、7個のレジスタ31bを56ビットの入力データを保持するものとして利用し(8ビット×7個=56ビット)、4個のレジスタ31bを32ビットの出力データを保持するものとして利用することができる(8ビット×4個=32ビット)。このように、入力データのビット数及び出力データのビット数それぞれのビット数に係わらず、入力データのビット数と出力データのビット数との合計が、8ビット×24個=192ビットを越えなければ、そのアプリケーションの演算実行ができる。
【0053】
また、データを一時的に保持するレジスタ31cは、本実施形態では、一つのプロセッサエレメント3aにつき8個づつ備えられている。そのため、8ビット×8個=64ビット分を保持できる。しかし、この例のように、一時的に保持されるべきデータが80ビットである場合には、レジスタ31cだけでは16ビット(=80ビット−64ビット)分のデータが保持できない。この場合においても、本実施形態においてレジスタ31bは、上述したようにデータを一時的に保持する機能も有するため、使用していない11個(=24個−7個−4個)のレジスタ31bのうち、2個(8ビット×2個=16ビット)を一時的なデータ保持のために使用すればよい。
【0054】
このように、レジスタ31bの使用用途が柔軟であるため、データのビット数に柔軟に対応したデータ処理が可能である。このことは、このSIMD型プロセッサ1で演算処理できるアプリケーションの幅が増えることになり、使用用途が広がるという利点がある。
【0055】
上記した形態においては、外部インタフェース4の外部ポートは外部端子として説明しているが、図5の形態のように、転送先のメモリ6とメモリ転送ブロック7が同一チップ上に搭載され、特に外部端子として外部ポートを出力しない場合でも、図3のプロセッサエレメント3a…単位でのアドレスデコードとリード/ライトコントロールにより、同一チップに搭載されたメモリ転送ブロック7等で各プロセッサエレメント3a…の任意のレジスタをアクセスすることが可能である。
【0056】
次に、上記の形態の変更例につき図6に従い説明する。図6に示す構成は、図4の基本構成を2つ搭載している。即ち、図3に示す実施の形態では、入出力レジスタ31bは全部で24個あり、8個は演算アレイ36からのみアクセス可能な演算処理用の一時的なデータ保持に使用される演算レジスタ31cである。この2種類のレジスタが合計で32個あるため、例えば、入力データが56ビット、出力データが32ビット、一時的なデータ保持に80ビットが必要なアプリケーションでは、7個の入出力レジスタ31bを外部入力レジスタ用に、4個の入出力レジスタ31bを外部出力レジスタに、8個の演算レジスタ31cと2個の入出力レジスタ31bの合計10個を一時的なデータ保持に割り当てることで実現できる。つまり、入力データと出力データのビット幅の合計が192ビットまでで、一時的なデータ保持のビット幅を加えた合計のビット幅が256ビットまでのアプリケーションであれば自由にレジスタの使用方法を設定して実現できることになる。これに対して、従来のプロセッサでは入力レジスタ、出力レジスタ、演算レジスタが固定のビット幅であったため、いずれかのビット幅を超えるアプリケーションは実現できなかった。
【0057】
(第1の実施形態)
本発明に係るSIMD型プロセッサ1の第1の実施形態を図7を参照して以下説明する。なお、ここでは上述した本発明の前提となる形態と異なる点について説明することとし、同じ点については説明を省略する。また、上述した本発明の前提となる形態と同じ構成部分については、同一の符号を付する。
【0058】
この第1実施形態におけるSIMD型プロセッサ1は、互いに隣り合う2つのプロセッサエレメント3aに偶数番号、奇数番号を割り付けて一組とするとともに、この一組のプロセッサエレメント3aには、同一のアドレスを割り付けていることを特徴とする。さらに、偶数番号が割り付けられたプロセッサエレメント3a用の偶数用データバス46aと、奇数番号が割り付けられたプロセッサエレメント3a用の奇数用データバス46bと、を各組毎のプロセッサエレメント3aにそれぞれ割り当てていることを特徴とする。また、メモリコントローラ4とSIMD型プロセッサ1の外部に設けられたメモリ5、6との間において、データは本発明の前提となる形態のように8ビットではなく、16ビットがパラレルで転送されることも特徴とする。この16ビットのデータは、偶数番号が割り付けられたプロセッサエレメント3aに与えられる8ビットと、奇数番号が割り付けられたプロセッサエレメント3aに与えられる8ビットとから構成されている。以下、具体的にこの実施形態について説明する。
【0059】
まず、グローバルプロセッサ2からメモリコントローラ5へはI/O用のアドレス、データ、コントロール信号がバスを介して与えられる。グローバルプロセッサ2がメモリコントローラ5のいくつかの動作設定レジスタ(図示せず)へ動作方法等のコマンドを設定している。最後にグローバルプロセッサ2は、メモリコントローラ5のスタートレジスタ(図示せず)にスタートコードを書き込むことで、メモリコントローラ5は自動的に設定に従った動作を行う。
【0060】
外部インタフェース4は、メモリコントローラ5からアドレス制御信号を受けると、アドレス指定信号をアドレスバス41aを介してプロセッサエレメントブロック3ヘ送る。これにより、一組のプロセッサエレメント3a、即ち2つのプロセッサエレメント3aが同時にアドレス指定される。レジスタコントローラ31aは、送られてきたアドレス指定信号をデコードし、デコードしたアドレスと、自己に割り付けられたアドレスとが一致する場合には、メモリコントローラ5からクロック信号41cを介して送られてきたクロック信号に同期して、リード/ライト信号45a或いは45bを介してメモリコントローラ4から送られてきたリード/ライト指示信号を得る。具体的には、偶数番号が割り付けられているレジスタコントローラ31aは、偶数用リード/ライト信号45aを介してメモリコントローラ4から送られてきたリード/ライト指示信号を得る。一方、奇数番号が割り付けられているレジスタコントローラ31aは、奇数用リード/ライト信号45bを介してメモリコントローラ4から送られてきたリード/ライト指示信号を得る。このとき一組を構成するプロセッサエレメント3aのレジスタコントローラ31aへ送られるリード/ライト指示信号はそれぞれ異なるものであってもよい。即ち、偶数番号が割り付けられているレジスタコントローラ31aへ送られる指示信号がリード指示であるとき、奇数番号が割り付けられているレジスタコントローラ31aへ送られる指示信号はライト指示であってもよい。そして、このリード/ライト指示信号はレジスタ31bに与えられる。
【0061】
レジスタコントローラ31aから双方のプロセッサエレメント3aに対し、ライト指示信号が送られてきた場合には、偶数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されるデータ(8ビット)を偶数用データバス46aより取得して保持する。また、奇数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されるデータ(8ビット)を奇数用データバス46bより取得して保持する。一方、レジスタコントローラ31aから双方のプロセッサエレメント3aに対し、リード指示信号が送られてきた場合には、偶数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されたデータ(8ビット)を偶数用データバス46aへ送る。また、奇数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されたデータ(8ビット)を奇数用データバス46bへ送る。
【0062】
このように、一度のアドレス指定により、偶数番号が割り付けられたプロセッサエレメント3aにデータ転送できるとともに、奇数番号が割り付けられたプロセッサエレメント3aにもデータ転送できる。このため、データの転送回数を少なくすることができ、データ転送を高速にできる。よって、データ処理を高速にできる。また、本実施形態においても、上記第1実施形態と同様に、プロセッサエレメント3aをアドレス指定していることより、上記第1実施形態と同様の利点を得ることができる。
【0063】
次に、上記実施の形態の変更例につき図8に従い説明する。図8に示す構成は、図7の基本構成を2つ搭載している。即ち、図3に示す形態では、入出力レジスタ31bは全部で24個あり、8個は演算アレイ36からのみアクセス可能な演算処理用の一時的なデータ保持に使用される演算レジスタ31cである。この2種類のレジスタが合計で32個あるため、例えば、入力データが56ビット、出力データが32ビット、一時的なデータ保持に80ビットが必要なアプリケーションでは、7個の入出力レジスタ31bを外部入力レジスタ用に、4個の入出力レジスタ31bを外部出力レジスタに、8個の演算レジスタ31cと2個の入出力レジスタ31bの合計10個を一時的なデータ保持に割り当てることで実現できる。つまり、入力データと出力データのビット幅の合計が192ビットまでで、一時的なデータ保持のビット幅を加えた合計のビット幅が256ビットまでのアプリケーションであれば自由にレジスタの使用方法を設定して実現できることになる。
【0064】
(第2の実施形態)
本発明に係るSIMD型プロセッサ1の第2の実施形態を、図9を参照して以下説明する。上述した第2実施形態においては、プロセッサエレメント3aをアドレス指定しているが、本実施形態はプロセッサエレメント3aの指定をアドレス指定する方式ではなく、ポインタ指定する方式、即ちシリアルアクセスメモリ方式に応用するものである。なお、ここでは上述した第2実施形態と異なる点について説明することとし、同じ点については説明を省略する。また、上述した第1実施形態と同じ構成部分については、同一の符号を付する。
【0065】
まず、グローバルプロセッサ2からメモリコントローラ5へはI/O用のアドレス、データ、コントロール信号がバスを介して与えられる。グローバルプロセッサ2がメモリコントローラ5のいくつかの動作設定レジスタ(図示せず)へ動作方法等のコマンドを設定している。最後にグローバルプロセッサ2は、メモリコントローラ5のスタートレジスタ(図示せず)にスタートコードを書き込むことで、メモリコントローラ5は自動的に設定に従った動作を行う。メモリコントローラ5は、グローバルプロセッサ2のコマンドに基づき、このリセット信号を生成し、外部インタフェース4からリセット信号47を介してプロセッサエレメントブロック3ヘ送る。これにより、レジスタコントローラ31aは、リセットされる。そして、外部インタフェース4に最も近いレジスタコントローラ31aへメモリコントローラ5から外部インタフェース4、クロック信号41cを介してクロック信号が送られる。このクロック信号に同期して、レジスタコントローラ31aは、リード/ライト信号45a或いは45bを介してメモリコントローラ5から送られてきたリード/ライト指示信号を得る。このリード/ライト指示信号は、偶数番号が割り付けられたプロセッサエレメント3aのレジスタ31b、及び奇数番号が割り付けられたプロセッサエレメント3aのレジスタ31bにそれぞれ与えられる。このとき一組を構成するプロセッサエレメント3aのレジスタコントローラ31aへ送られるリード/ライト指示信号は、上記第2実施形態の場合と同様それぞれ異なるものであってもよい。
【0066】
これにより、上述した第1実施形態の場合と同様、一度のポインタ指定により、偶数番号が割り付けられたプロセッサエレメント3aにデータ転送できるとともに、奇数番号が割り付けられたプロセッサエレメント3aにもデータ転送できる。このため、データの転送回数を少なくすることができ、データ転送を高速にできる。よって、データ処理を高速にできる。
【0067】
(第3実施形態)
本発明に係るSIMD型プロセッサ1の第3の実施形態を、図11及び図12を参照して以下説明する。なお、ここでは上述した本発明の前提となる形態と異なる点について説明することとし、同じ点については説明を省略する。また、上述した本発明の前提となる形態と同じ構成部分については同一の符号を付する。
【0068】
本実施形態においては、図10に示すように、ラインバッファ61をプロセッサエレメント3aの外部に別途設けることを特徴とする。この図10では、ラインバッファ61を2つ示しているが、ラインバッファ61の数は適宜変更してもよい。このラインバッファ61には、演算処理が終了しているが、注目画素の上下の画素を参照するために必要なデータを保持したり、或いは1ラインの画素数が多い場合にプロセッサエレメント3a…を越える処理画素数を保持することなどに使用される。図10では、入出力レジスタファイル31にラインバッファ61を接続しており、入出力レジスタファイル31に保持されている一部のデータが、このラインバッファ61に送られ保持される。また、ラインバッファ61に保持されているデータは、必要に応じて入出力レジスタファイル31に送られ、演算処理のデータとして使用される。なお、ここで、入出力レジスタファイル31の各ブロックは、図2において横に一列に並んでいる256個のレジスタコントローラ31a及びレジスタ31bを意味する。
【0069】
上記した実施形態のように、256個のプロセッサエレメント3a…を備えたプロセッサでは、256画素までは内部のレジスタファイル31にデータを置くことが可能である。それを超える画素数の場合、複数の本数のレジスタに同一ラインを分割して保持することになる。上記のようにラインバッファ61を外部に持つことで、256画素ずつラインバッファ61からデータを取り込むことが可能となり、256画素以上のラインでも繰り返し同じ処理を行うことで、画素数をいくらでも増加させることができる。但し、画像数の上限はラインバッファ61の容量で決まる。このように、外部にラインバッファ61を備えることにより、1ラインの画素数が多くなっても容易にその処理を行うことができる。
【0070】
また、入出力レジスタファイル31で保持しているデータを、ラインバッファ61で保持させることで、空いた入出力レジスタファイル31を他の演算処理のために使用でき、演算処理を効率的に行うことができる。即ち、プロセッサエレメント3aのレジスタ31bの容量を越えるデータの処理が可能になる。
【0071】
なお、レジスタファイルの種類に関係なく、ラインバッファ61をプロセッサエレメント3aの外部に別途設けることができる。即ち、図11に示すように、演算処理されるデータを取得して保持するだけの機能を持つ入力レジスタファイル、演算処理されたデータをデータバス41dに出力するだけの機能を持つ出力レジスタファイルに接続して設けてもよい。この場合、出力レジスタファイルに保持されている一部のデータが、ラインバッファ61に送られ保持される。また、ラインバッファ61に保持されているデータは、必要に応じて入力レジスタファイルに送られ、演算処理のデータとして使用される。
【0072】
【発明の効果】
以上詳述したように、この発明によれば、演算処理されるデータは、アドレス指定されたプロセッサエレメントのデータ保持手段に保持されるため、データを任意のプロセッサエレメントに直接に転送できる。また、演算手段で演算処理されたデータを出力する場合にも、アドレス指定されたプロセッサエレメントのデータ保持手段に保持されているデータを出力する。そのため、データの転送を高速にでき、延いてはデータ処理を高速にできる。
【0073】
また、データ保持手段は入力レジスタとしての機能を有するとともに、出力レジスタとしての機能を有する。このように、データ保持手段の使用用途を柔軟にすることで、データのビット数に柔軟に対応したデータ処理が可能になる。
【0074】
また、一組になっているプロセッサエレメントを一度指定することにより、偶数番号、奇数番号が割り付けられた2つのプロセッサエレメントはそれぞれに割り当てられたデータ転送バスを介して、データの転送ができるため、データの転送回数を少なくすることができ、データ転送を高速にできる。よって、データ処理を高速にできる。
【0075】
さらに、プロセッサエレメントのデータ保持手段とは別のデータ保持手段を備えるため、プロセッサエレメントの個数を超えたデータの処理も処理数単位を分割してデータ保持手段から取り込み、繰り返し同じ処理を行うことでき、処理数が多くなっても容易にその処理を行うことができる。
【図面の簡単な説明】
【図1】 本発明の前提となる形態におけるSIMD型プロセッサを示すブロック図である。
【図2】 この発明に用いられるメモリコントローラ5の構成を示すブロック図である。
【図3】 本発明の前提となる形態におけるSIMD型プロセッサの内部構成を示す図である。
【図4】 本発明の前提となる形態におけるプロセッサエレメントの内部構成を示す図である。
【図5】 転送先のメモリとメモリ転送ブロックが同一チップ上に搭載された実施の形態を示すブロック図である。
【図6】 本発明の前提となる形態におけるプロセッサエレメントの内部構成を示す図である。
【図7】 本発明の第1実施形態におけるプロセッサエレメントの内部構成を示す図である。
【図8】 本発明の第1実施形態におけるプロセッサエレメントの内部構成を示す図である。
【図9】 本発明の第2施形態におけるプロセッサエレメントの内部構成を示す図である。
【図10】 本発明の第3実施形態におけるラインバッファの接続を説明するブロック図である。
【図11】 本発明の第3実施形態におけるラインバッファの接続を説明するブロック図である。
【符号の説明】
1 SIMD型プロセッサ
2 グローバルプロセッサ
4 外部インタフェース
5 メモリコントローラ
26aリード信号
26bライト信号
31aレジスタコントローラ
31bレジスタ
34 ALU
41aアドレスバス
41bリード/ライト信号
41dクロック信号
45a偶数用リード/ライト信号
45b奇数用リード/ライト信号
46a偶数用データバス
46b奇数用データバス
47 リセット信号
Claims (4)
- データを演算処理する演算手段及び当該演算手段で演算処理されるデータを保持するとともに当該演算手段で演算処理されたデータを保持するデータ保持手段を備える複数のプロセッサエレメントと、このプロセッサエレメントそれぞれに接続されるデータ転送バスと、前記プロセッサエレメントに割り付けられたアドレスにより所定のプロセッサエレメントを指定する指定手段と、を備え、
前記プロセッサエレメントに偶数番号或いは奇数番号を割り付けて、偶数番号が割り付けられたプロセッサエレメントと奇数番号が割り付けられたプロセッサエレメントとを一組とするとともに、偶数番号が割り付けられたプロセッサエレメント用の前記データ転送バス或いは奇数番号が割り付けられたプロセッサエレメント用の前記データ転送バスを各組毎のプロセッサエレメントにそれぞれ割り当て、前記指定手段により指定された所定の組のプロセッサエレメントにおける前記データ保持手段はそれぞれ割り当てられた前記データ転送バスよりデータを取得或いは出力することを特徴とするSIMD型プロセッサ。 - 前記プロセッサエレメントを構成する前記データ保持手段とは別のデータ保持手段を所定数備えることを特徴とする請求項1に記載のSIMD型プロセッサ。
- 処理数単位を分割して前記別のデータ保持手段から取り込み、分割した単位の処理を行うことを特徴とする請求項2に記載のSIMD型プロセッサ。
- データを演算処理する演算手段及び当該演算手段で演算処理されるデータを保持するとともに当該演算手段で演算処理されたデータを保持するレジスタ手段を備える複数のプロセッサエレメントと、このプロセッサエレメントそれぞれに接続されるデータ転送バスと、前記プロセッサエレメントに割り付けられたアドレスにより所定のプロセッサエレメントを指定する指定手段と、前記プロセッサエレメントを構成する前記レジスタ手段とは別に所定数設けられたバッファ記憶手段と、を備え、処理数単位を分割して前記バッファ記憶手段からデータを取り込むとともに、前記指定手段が所定のプロセッサエレメントをアドレス指定することにより、このアドレス指定されたプロセッサエレメントの前記レジスタ手段はデータを前記データ転送バスより取得或いは出力することを特徴とするSIMD型プロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25686599A JP3971535B2 (ja) | 1999-09-10 | 1999-09-10 | Simd型プロセッサ |
US09/658,860 US6785800B1 (en) | 1999-09-10 | 2000-09-08 | Single instruction stream multiple data stream processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25686599A JP3971535B2 (ja) | 1999-09-10 | 1999-09-10 | Simd型プロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006259487A Division JP4413905B2 (ja) | 2006-09-25 | 2006-09-25 | Simd型プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001084229A JP2001084229A (ja) | 2001-03-30 |
JP3971535B2 true JP3971535B2 (ja) | 2007-09-05 |
Family
ID=17298499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25686599A Expired - Fee Related JP3971535B2 (ja) | 1999-09-10 | 1999-09-10 | Simd型プロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US6785800B1 (ja) |
JP (1) | JP3971535B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001506B2 (en) | 2008-01-22 | 2011-08-16 | Ricoh Company, Ltd. | SIMD image forming apparatus for minimizing wiring distance between registers and processing devices |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US7315934B2 (en) | 2002-03-06 | 2008-01-01 | Matsushita Electric Industrial Co., Ltd. | Data processor and program for processing a data matrix |
JP4698242B2 (ja) * | 2004-02-16 | 2011-06-08 | パナソニック株式会社 | 並列演算プロセッサ、並列演算プロセッサの動作を制御する制御プログラム及び制御方法、並びに並列演算プロセッサを搭載した画像処理装置 |
JP2006053662A (ja) * | 2004-08-10 | 2006-02-23 | Matsushita Electric Ind Co Ltd | 多重プロセッサ |
JP2007164286A (ja) * | 2005-12-09 | 2007-06-28 | Sony Corp | 情報信号処理装置、機能ブロックおよび機能ブロックの制御方法 |
JP4989899B2 (ja) * | 2006-01-27 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 半導体演算処理装置 |
JP4913685B2 (ja) * | 2007-07-04 | 2012-04-11 | 株式会社リコー | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 |
JP5369669B2 (ja) * | 2008-12-24 | 2013-12-18 | 株式会社リコー | Simd型マイクロプロセッサ |
JP5760532B2 (ja) * | 2011-03-14 | 2015-08-12 | 株式会社リコー | プロセッサ装置及びその演算方法 |
JP5680466B2 (ja) | 2011-03-29 | 2015-03-04 | 三菱重工業株式会社 | 並列処理システム及び並列処理システムの動作方法 |
JP6060853B2 (ja) * | 2013-08-21 | 2017-01-18 | 日本電気株式会社 | プロセッサおよびプロセッサの処理方法 |
WO2016024508A1 (ja) * | 2014-08-12 | 2016-02-18 | 高田 周一 | マルチプロセッサ装置 |
US9772852B2 (en) | 2015-04-23 | 2017-09-26 | Google Inc. | Energy efficient processor core architecture for image processor |
US12061910B2 (en) * | 2019-12-05 | 2024-08-13 | International Business Machines Corporation | Dispatching multiply and accumulate operations based on accumulator register index number |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4621339A (en) * | 1983-06-13 | 1986-11-04 | Duke University | SIMD machine using cube connected cycles network architecture for vector processing |
JPH0567203A (ja) | 1991-09-10 | 1993-03-19 | Sony Corp | 信号処理用プロセツサ |
CA2073516A1 (en) * | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
US5872988A (en) * | 1992-06-17 | 1999-02-16 | U.S. Philips Corporation | Parallel data processing device having a concatenated data path between elementary processors |
JPH064690A (ja) | 1992-06-18 | 1994-01-14 | Sony Corp | リニアアレイ型の並列dspプロセッサ |
US5450603A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
WO1995009399A1 (fr) * | 1993-09-27 | 1995-04-06 | Ntt Mobile Communications Network Inc. | Multiprocesseur |
US5790879A (en) * | 1994-06-15 | 1998-08-04 | Wu; Chen-Mie | Pipelined-systolic single-instruction stream multiple-data stream (SIMD) array processing with broadcasting control, and method of operating same |
JPH0830577A (ja) * | 1994-07-15 | 1996-02-02 | Mitsubishi Electric Corp | Simdプロセッサ |
US5758176A (en) * | 1994-09-28 | 1998-05-26 | International Business Machines Corporation | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system |
JPH08235130A (ja) * | 1995-02-24 | 1996-09-13 | Sony Corp | 並列プロセッサ |
JPH0969061A (ja) * | 1995-08-30 | 1997-03-11 | Sony Corp | ビデオ信号用プロセツサ |
US6047366A (en) * | 1996-12-31 | 2000-04-04 | Texas Instruments Incorporated | Single-instruction multiple-data processor with input and output registers having a sequential location skip function |
JP4156794B2 (ja) * | 1997-11-07 | 2008-09-24 | アルテラ コーポレイション | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 |
US6216223B1 (en) * | 1998-01-12 | 2001-04-10 | Billions Of Operations Per Second, Inc. | Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor |
-
1999
- 1999-09-10 JP JP25686599A patent/JP3971535B2/ja not_active Expired - Fee Related
-
2000
- 2000-09-08 US US09/658,860 patent/US6785800B1/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001506B2 (en) | 2008-01-22 | 2011-08-16 | Ricoh Company, Ltd. | SIMD image forming apparatus for minimizing wiring distance between registers and processing devices |
Also Published As
Publication number | Publication date |
---|---|
US6785800B1 (en) | 2004-08-31 |
JP2001084229A (ja) | 2001-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3971535B2 (ja) | Simd型プロセッサ | |
EP0539595A1 (en) | Data processor and data processing method | |
JP2009223758A (ja) | 画像処理装置 | |
EP0910014B1 (en) | Program loading method and apparatus | |
JP3821198B2 (ja) | 信号処理装置 | |
JP4408113B2 (ja) | 信号処理方法 | |
JP2683489B2 (ja) | データ転送制御装置 | |
JP4413905B2 (ja) | Simd型プロセッサ | |
JP4442905B2 (ja) | 画像データの処理方法 | |
JP2812292B2 (ja) | 画像処理装置 | |
JP3971543B2 (ja) | Simd型プロセッサ | |
JP4294190B2 (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JP3971559B2 (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JP2003186854A (ja) | Simd型プロセッサ及びその検証装置 | |
JP2007109253A (ja) | 並列プロセッサ | |
JP2005148899A (ja) | Simd型プロセッサ | |
JP4244619B2 (ja) | 画像データ処理装置 | |
JPH10334038A (ja) | データ転送装置 | |
JPS6343784B2 (ja) | ||
JPH01233515A (ja) | 情報処理装置 | |
JPH0468459A (ja) | ディジタル信号処理装置 | |
JP2005322198A (ja) | データ処理装置 | |
JP2001084171A (ja) | 画像処理装置 | |
JPH01107295A (ja) | メモリ制御装置 | |
JPH0193868A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040318 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060925 |
|
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: 20070605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070608 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130615 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |