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

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

Info

Publication number
JP2008217061A
JP2008217061A JP2007049387A JP2007049387A JP2008217061A JP 2008217061 A JP2008217061 A JP 2008217061A JP 2007049387 A JP2007049387 A JP 2007049387A JP 2007049387 A JP2007049387 A JP 2007049387A JP 2008217061 A JP2008217061 A JP 2008217061A
Authority
JP
Japan
Prior art keywords
arithmetic
processor element
processor
arithmetic units
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.)
Granted
Application number
JP2007049387A
Other languages
English (en)
Other versions
JP4801605B2 (ja
Inventor
Tomoaki Ozaki
智章 尾崎
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 JP2007049387A priority Critical patent/JP4801605B2/ja
Priority to US12/038,518 priority patent/US8060726B2/en
Publication of JP2008217061A publication Critical patent/JP2008217061A/ja
Application granted granted Critical
Publication of JP4801605B2 publication Critical patent/JP4801605B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Processing (AREA)

Abstract

【課題】各PEに演算回路を複数存在させ、演算回路を独立して、又は連動して動作させることで、PE数や演算ビット幅を実質的に変更できるSIMD型マイクロプロセッサにおいて、適切にPE番号を生成でき、それらPE番号を用いて適切に全体を制御できる。
【解決手段】グローバルプロセッサ、及び複数のプロセッサエレメントを備え、各プロセッサエレメントは複数の演算ユニットを含み、グローバルプロセッサからの制御によって、プロセッサエレメントにおける演算ユニットの連結構成を一律に変更し、演算ユニットが連結されて若しくは独立してなる演算単位のプロセッサエレメントでの数、及び、演算単位で処理されるデータのデータ幅を変更するSIMD型マイクロプロセッサにおいて、上記プロセッサエレメントにおける演算単位に対して、ラベル値を割り付け、割り付けたラベル値を処理に使用することを特徴とする。
【選択図】図1

Description

本発明は、マイクロプロセッサ、特にSIMD(Single Instruction−stream Multiple Data−stream)型マイクロプロセッサに関する。
SIMD型マイクロプロセッサでは、複数のデータに対して1つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理(例えばデジタル複写機などにおける画像処理)に係る用途において頻用される。
SIMD型マイクロプロセッサにおける通常の画像処理では、複数の演算ユニット(Processor Element [PE]; プロセッサエレメント)を主走査方向に並べ、同一の演算を同時に複数のデータに対して実行することによって高速演算処理を実現する。従って、SIMD型マイクロプロセッサが有するPE数は、画像処理の処理速度を決定する最も重要な要素の一つである。
一方、画像処理装置への要求性能として、出力画像の品質向上ということも挙げられる。このことは、各PEで一度に処理可能な演算データのビット幅に大きく依存する。つまり、PEに含まれる演算回路やデータ記憶回路のビット幅が大きく、このことにより演算精度を高くできるのであれば出力画像の品質は向上し得る。
但し、演算速度を高めるためのPE数の増加と、演算精度を高めるための演算回路やデータ記憶回路のビット幅の増加とは、回路規模の観点からトレードオフの関係にある。従って、対象とする画像処理の処理内容を適宜分析して適切に対応できる仕組みを構築することが重要であるといえる。
特許文献1では、こうした課題を踏まえ、各PEに演算回路を複数存在させ、状況に応じて、演算回路を独立、もしくは連動して動作させることで、実質のPE数、演算ビット幅を変更することが可能である構成のSIMD型プロセッサについて開示している。
このような構成のSIMD型マイクロプロセッサにおいて、例えば各PEに割り付けられる昇順の数字等であるPE番号について考えてみると、各PEが演算回路を複数備えているため、それら演算回路の構成の仕方によっては、PE番号と、演算(データ)の単位との対応が1対1の関係ではなくなってしまう。PE番号は特定の画像データを指定して利用するときなどに有用であるため、演算(データ)の単位とは1対1の関係である必要がある。
なお、特許文献2は、各PEに付与されたPE番号をSIMD処理の制御に利用することで、処理の効率化を図るSIMD型マイクロプロセッサを開示する。各PEに付与されたPE番号は固定である。
また、特許文献3は、複数あるPEをいくつかのグループに分け、グループ内に含まれるPEのローカルメモリ等のハードウェアリソースを共有化することで、プロセッサ全体としてPEを有効活用できるような手法を実現するSIMD型マイクロプロセッサを開示している。その中で、グループの中に含まれる複数のPEの中から特定のPEを指定するための識別コードを与える手法を用いている。この識別コードは、グループごとに同じ配列で与えているので、すべてのグループで同じ識別コードを持ったPEに対して、同一の処理を行うことが可能である。
更に、特許文献4は、外部からPE個別の値を設定するための個別定数レジスタを各PEに持たせ、これをSIMD処理の制御に利用することで、PEごとに固有の処理を実行させる手段を有するSIMD型マイクロプロセッサを開示している。
特開2006−260479号公報 特開2002−108832号公報 特開2002−7359号公報 特開2002−91929号公報
本発明は、各PEに演算回路を複数存在させ、状況に応じて、演算回路を独立して、若しくは連動して動作させることで、PE数や演算ビット幅を実質的に変更することが可能である構成のSIMD型マイクロプロセッサにおいて、適切にPE番号を生成でき、更に、それらPE番号を用いて適切に全体を制御できるSIMD型マイクロプロセッサとすることを目的とする。
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
グローバルプロセッサ、及び複数のプロセッサエレメントを備え、
各プロセッサエレメントは複数の演算ユニットを含み、
グローバルプロセッサからの制御によって、プロセッサエレメントにおける演算ユニットの連結構成を一律に変更し、演算ユニットが連結されて若しくは独立してなる演算単位のプロセッサエレメントでの数、及び、演算単位で処理されるデータのデータ幅を変更するSIMD型マイクロプロセッサである。そのようなSIMD型マイクロプロセッサにおいて、
上記プロセッサエレメントにおける演算単位に対して、ラベル値を割り付け、割り付けたラベル値を処理に使用することを特徴とする。
本発明に係る請求項2に記載のSIMD型マイクロプロセッサは、
上記プロセッサエレメントにおける演算単位に対して割り付けられるラベル値を、上記演算単位で使用するデータの一つとして生成する
ことを特徴とする請求項1に記載のSIMD型マイクロプロセッサである。
本発明に係る請求項3に記載のSIMD型マイクロプロセッサは、
上記ラベル値を、グローバルプロセッサからの指定により行う各プロセッサエレメントの各演算単位での範囲選択に用いる
ことを特徴とする請求項1又は2に記載のSIMD型マイクロプロセッサである。
本発明に係る請求項4に記載のSIMD型マイクロプロセッサは、
請求項3に記載のSIMD型マイクロプロセッサであって、
各プロセッサエレメントは2個の演算ユニットを含み、
(A)各プロセッサエレメントに含まれる2つの演算ユニットを一律に連動して動作させ、各プロセッサエレメントで一組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット2つずつに1つのラベル値を、そのラベル値がプロセッサエレメントの並びに対して昇順又は降順になるように付与する第1のラベル値割り付け、
(B)各プロセッサエレメントに含まれる2つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット2つに2つのラベル値を、そのラベル値が2つの演算ユニットにて昇順又は降順になるように付与し、
次いで、隣接するプロセッサエレメントに移り、続きとなるラベル値を用いて、再び、演算ユニット2つに2つのラベル値をそのラベル値が2つの演算ユニットにて昇順又は降順になるように付与する第2のラベル値割り付け、及び、
(C)各プロセッサエレメントに含まれる2つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット2つに2つのラベル値を、そのラベル値が2つの演算ユニットにて同じになるように付与し、
更に、プロセッサエレメントの並びに対して昇順又は降順になるように付与する第3のラベル値割り付け
の少なくとも3通りのラベル値の割り付けに、対応するものであり、
各プロセッサエレメントの2つの演算ユニットは、自らに割り付けられたラベル値が、グローバルプロセッサから指定される選択範囲内にあるか否かを判定する判定回路を夫々備えており、
まず、各プロセッサエレメントの各演算ユニットには上記(B)の第2のラベル値割り付けに従って、ラベル値が割り付けられており、
上記(A)の第1のラベル値割り付け、又は、上記(C)の第3のラベル値割り付けに対応する場合には、グローバルプロセッサからの選択範囲の指定値を2倍して、各プロセッサエレメントの各演算ユニットに与え、各演算ユニットに備わる判定回路は最下位1ビットを判定に加えない
ことを特徴とするSIMD型マイクロプロセッサである。
本発明を利用することにより、PE内部に複数の演算単位が存在する場合でも、演算単位ごとにSIMD処理の制御を行うことが可能となる。
[第1の実施形態]
図11は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2の概略の構成図である。SIMD型マイクロプロセッサ2は、概略、グローバルプロセッサ30、プロセッサエレメントグループ72、及び外部インターフェース70から構成される。プロセッサエレメントグループ72は複数のPEの配列体(集合体)であり、後で説明するように各PEの演算器が演算アレイ62に属しており、各PEのレジスタがレジスタファイル60に属している。
図12は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2のより詳しい構成図である。図12では、プロセッサエレメントグループ72の中央付近にある6個のPE4を中心に示している。図12の右部に示すグローバルプロセッサ30には、プログラム格納用のプログラムRAM(Program−RAM)52と演算データ格納用のデータRAM(Data−RAM)54が内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)42、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ(32、34、36、38)、レジスタ退避・復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)40、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)44、同じくIRQ時とNMI時の分岐元アドレスを保持するLIレジスタ46、LNレジスタ48、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)50が内蔵されている。これらのレジスタ、図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部I/O制御回路、及びGP演算制御回路を使用してグローバルプロセッサ命令の実行が行われる。
PE命令実行時には、グローバルプロセッサ30は、命令デコーダ、図示していないレジスタファイル制御回路、及びPE演算制御回路を使用して、レジスタファイル60の制御と演算アレイ62の制御をおこなう。
レジスタファイル60において、PE毎に16ビット・レジスタ(8、16)が複数本内蔵されており、PEの個数分の組でアレイ構成を形成している。それぞれのレジスタ(8、16)は、演算アレイ62に対してポートを備えており、16ビットのリード/ライト兼用のバス(以下、レジスタバスと言う。)10で演算アレイ62からアクセスされる。図12では便宜上、各PE4で6本のレジスタ(8、16)を示している。
各PE4の演算部14は、16ビットALU(18a、18b)、16ビットAレジスタ(20a、20b)、及びFレジスタ(22a、22b)を、下位ビット用と上位ビット用として2個ずつ内蔵している。PE命令による演算では、基本的にレジスタファイル60から読み出されたデータをALU(18a、18b)の一方の入力とし、Aレジスタ(20a、20b)にあるデータをALU(18a、18b)のもう一方入力とする。演算結果はAレジスタ(20a、20b)に格納される。つまり、Aレジスタ(20a、20b)にあるデータと、レジスタ(8、16)上のデータとの演算が行われることになる。
2個のALU(18a、18b)は、夫々16ビットの演算が可能である。また上位用ALU18bと下位用ALU18aとは連動できるように構成されており、上位用ALU18bと下位用ALU18aとが併せられると32ビットの演算が可能となる。それぞれのALUの動作はグローバルプロセッサ30から制御される。また、上位ALU18bと下位ALU18aを連動させるために、両ALU間には情報伝達経路が備わる。
レジスタ(8、16)と演算部14との接続部分に16ビット幅の7対1(7to1)のマルチプレクサ(7to1MUX)12が設けられている。各マルチプレクサ(7to1MUX)12は、PEが並ぶ方向(図12における左右の方向)において、左に1つ、2つ及び3つ離れたPE4のレジスタバスと、右に1つ、2つ及び3つ離れたPE4のレジスタバスと、当該PE4のレジスタバスとに接続し、それらレジスタバスに付属するレジスタのデータを演算対象として選択する。選択の制御は、グローバルプロセッサ30により行われる。
7to1MUX12とALU(18a、18b)の間には、シフタ(Shift Expand)16が設けられている。シフタ(Shift Expand)16は、レジスタ(8、16)から読み出されたデータのビットシフトと拡張とを行う。シフタの制御は、グローバルプロセッサ30により行われる。
レジスタファイル60に含まれる上段2つのレジスタ16は、マイクロプロセッサ外の外部メモリデータ転送装置(図示せず。)から内容の読み出し/書き込みがなされ得るレジスタである。マイクロプロセッサ外の外部メモリデータ転送装置からデータバスとコントロール信号を用いて、任意のレジスタ16の読み出し/書き込みが可能である。外部メモリデータ転送装置から任意のレジスタ16にアクセスするには、メモリにアクセスするのと同じようにアドレスによって行う。外部メモリデータ転送装置からアクセス可能なレジスタ16は夫々固有の番地を割り振られており、外部メモリデータ転送装置はアクセスするレジスタ固有の番地をアドレスとしてコントロール信号に含めて出力する。このバスに接続されたレジスタ16は、外部メモリデータ転送装置がアクセスするレジスタの番地と自身の番地を比較し、一致していればアクセスに対応する。
図1は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサにおけるPEの識別子の論理的構成を示す図である。本発明の第1の実施形態に係るSIMD型マイクロプロセッサは、図12を用いて説明したように、16ビット演算が可能な演算ユニットを2つ搭載している。それら2つの演算ユニットは、独立若しくは連結して動作するため、グローバルプロセッサ30からの制御によって以下の2通りの動作が可能である。
(A) PEごとに1つの32ビット演算を実行
(B) PEごとに2つの16ビット演算を同時に実行
通常PEには、特定のPEを指定できるように夫々のPEに対してユニークな識別子が割り付けられる。従前のように、1つのPEで1つの演算を行うならば、演算(データ)の単位とPEに割り付けられる識別子との対応が、1対1の関係であればよい。
しかしながら、本発明に係るSIMD型マイクロプロセッサでは、上記(B)の場合のように、1つのPEで2つ(若しくはそれ以上)の演算が実行可能であるため、演算の単位と識別子の対応が1対1ではないことがある。このため、本発明の第1の実施形態では、設定可能である演算単位毎に識別子の割り付けを行う。つまり、上記のプロセッサの状態(A)と状態(B)とで別々の識別子が割り付けられることになる。
図1は、上記状態(A)のときの識別子の割り付けと上記状態(B)のときの識別子の割り付けとを模式的に示している。つまり、図1(a)は上記状態(A)に対応する図であり、M個のPEに含まれるM個の演算単位に対して、順に具体的に{a、b、・・・、l}の識別子が割り付けられている様子を示す図である。図1(b)は上記状態(B)に対応する図であり、M個のPEに含まれるM×2個の演算単位に対して、順に具体的に{al、ah、bl、bh、・・・、ll、lh}の識別子が割り付けられている様子を示す図である。
図1に示されるようなPE(及び演算単位)に対する識別子として、昇順の番号が使われることが多い。従って、以下では識別子として昇順の番号を使用し、識別子をPE番号と称することとする。図2、図3、及び図4は、識別子として昇順のPE番号を用いた場合の、本発明の第1の実施形態に係るSIMD型マイクロプロセッサにおけるPEの識別子の論理的構成を示す図である。
まず、図2(a)は上記状態(A)に対応する図であり、M(Mは2以上の自然数)個の演算単位に対して、順に具体的に{0,1,2,・・・,M−1}の番号が割り付けられている様子を示す図である。図2(b)は上記状態(B)に対応する図であり、M×2個の演算単位に対して、{0,1,2,・・・,2×M−1}の番号が割り付けられている様子を示す図である。図2(b)では、同一PE内の演算単位に昇順に番号が割り付けられた後、隣接(図2では右側)PEへ移って同様に番号が割り付けられる。
次に、図3(a)は上記状態(A)に対応する図であり、M(Mは2以上の自然数)個の演算単位に対して、順に具体的に{0,1,2,・・・,M−1}の番号が割り付けられている様子を示す図である。図3(b)は上記状態(B)に対応する図であり、M×2個の演算単位に対して、{0,1,2,・・・,M−1}の番号が割り付けられている様子を示す図である。図2(b)では、同一PEに属する演算単位に対しては重複して同じ番号が割り付けられている。
次に、図4(a)は上記状態(A)に対応する図であり、M(Mは2以上の自然数)個の演算単位に対して、順に具体的に{0,1,2,・・・,M−1}の番号が割り付けられている様子を示す図である。図4(b)は上記状態(B)に対応する図であり、M×2個の演算単位に対して、{0,1,2,・・・,2×M−1}の番号が割り付けられている様子を示す図である。図4(b)では、まず、最初のPEから最後のPEまでPE内の一方の演算単位に昇順に番号が割り付けられた後、番号がその続きとなるように、再び最初のPEから最後のPEまでPE内のもう一方の演算単位に昇順に番号が割り付けられている。
[第2の実施形態]
図5は、本発明の第2の実施形態に係るSIMD型マイクロプロセッサ2の詳細な構成図である。本発明の第2の実施形態に係るSIMD型マイクロプロセッサ2は、上記の第1の実施形態に係るSIMD型マイクロプロセッサ2と略同様のものであり、同一部位には同一符号を付して説明を省略する。
図5に示されるSIMD型マイクロプロセッサでは、各PE4が備えるレジスタ(8、16)と同格に、PE番号発生回路66を備えている。PE番号発生回路66は、グローバルプロセッサ30からの制御に従って、図2から図5に示されるようなPE番号を発生させ、16ビットのレジスタバス10に出力する。
ここで、上記状態(A)の場合、16ビットのレジスタバスすべてが専有され得るので、0から216−1までのPE番号の生成が理論上可能である。上記(B)の場合、16ビットのレジスタバスを上位側と下位側で8ビットずつに分けた2つのデータが、一つのPE内に存在する2つの演算単位にそれぞれ割り当てられるため、0から2−1までのPE番号が理論上生成可能である。
図6、図7、及び図8は、本発明の第2の実施形態に係るPE番号発生回路66の構成例をその一部動作と共に示す図である。図6から図8までに示されるPE番号発生回路では、1つの16ビットの定数データKと、グローバルプロセッサ30によって制御される1つのマルチプレクサとを備える。まず、図2(a)、図3(a)及び図4(a)に示される状態(なお、これらはすべて同じ状態である。)に対応する場合には、16ビットの定数データKがそのまま16ビットのレジスタバスに出力される。このときの動作が図6に図示されている。
次に、図2(b)に示される状態に対応する場合には、16ビットのレジスタバスの下位8ビットには、2K(即ち、定数データKを左に1ビットシフトした値の下位8ビットデータ)を出力し、16ビットのレジスタバスの上位8ビットには、2K+1(即ち、定数データKを左に1ビットシフトした値の下位8ビットデータに、1[最下位ビットが1であるデータ]を加えたデータ)を出力する。このときの動作が図7に図示されている。
次に、図3(b)に示される状態に対応する場合には、16ビットのレジスタバスの下位8ビットと上位8ビットと共に、定数データKの下位8ビットを出力する。このときの動作が図8に図示されている。
また、図4(b)に示される状態に対応する場合には、図6から図8には図示していないが、同一PE内の片方の演算単位には、PE総数分だけオフセット量を付与する制御が行われればよい。
[第3の実施形態]
図9は、本発明の第3の実施形態に係るSIMD型マイクロプロセッサ2に含まれるプロセッサエレメント4の演算部14の詳細な構成図である。本発明の第3の実施形態に係るSIMD型マイクロプロセッサ2は、上記の第1又は第2の実施形態に係るSIMD型マイクロプロセッサ2と略同様のものであり、同一部位には同一符号を付して説明を省略する。
図9に示される演算部は、演算単位毎にPE番号エリア判定回路(26a、26b)を備える。このPE番号エリア判定回路(26a、26b)は、グローバルプロセッサ30から即値データで入力される範囲指定を示す下限のPE番号/上限のPE番号と、上記状態(A)又は状態(B)の状態に応じて演算単位毎に割り付けられるPE番号とを比較し、該当/非該当の結果を、各PEが演算単位毎に備えている実行条件レジスタT(24a、24b)に反映させる。各PEが備える2つのALU(18a、18b)は、夫々の実行条件レジスタT(24a、24b)の値に従って、演算の実行/非実行を決定する。従って、演算単位レベルでの演算実行(若しくは、非実行)の範囲指定が可能となる。
図9に示される演算部を含むSIMD型マイクロプロセッサ2では、各PEにつき演算単位が1つしかない場合でもPE番号エリア判定回路(26a、26b)が各PEに2つずつ存在することになる。このときには、下位用PE番号エリア判定回路26aと上位用PE番号エリア判定回路26bが同一の動作をするように制御されればよい。その場合の制御内容を、本発明の第3の実施形態に係るPEを示す図10を用いて、以下説明する。
図10に示されるSIMD型マイクロプロセッサ2は、図2(a)、図2(b)、図3(a)(図2(a)に同じ)、図3(b)の状態に対応できるものであり、演算ユニット(3a、3b)を2つ備える。従って、図10のSIMD型マイクロプロセッサは、演算ユニット毎にPE番号エリア判定回路(26a、26b)を備えるが、このPE番号エリア判定回路(26a、26b)が、以下に示すようにできるだけ小さくなるように構成されている。
まず、図2(a)又は図3(a)(図2(a)に同じ)の状態において、例えば、PE番号が“2”であるPEは、図2(b)の状態ではPE内に存在する2つの演算ユニット(3a、3b)に対して、それぞれ“4”と“5”のPE番号が割り付けられる。PE番号エリア判定回路(26a、26b)は、グローバルプロセッサ30から入力される上限のPE番/下限のPE番号と、演算ユニット自身に与えられている定数値とを比較し、定数値が範囲内であるか否かを判定する。図10に示される演算ユニット(3a、3b)では、この定数値を、図2(b)の状態のPE番号に対応した形で与えられることを特徴としている。つまり、図10に示されたPEが図2(a)又は図3(a)の状態で、例えばPE番号が“2”である場合には、下位側ALU18aに付随するPE番号エリア判定回路26aの定数値には“4”が、上位側ALU18bに付随するPE番号エリア判定回路26bの定数値には“5”が、与えられることになる。
まず、このようにすれば図2(b)の状態に対応することができる。
次に、図2(a)又は図3(a)(図2(a)に同じ)の状態に対応できることを示す。このとき、図10に示されるSIMD型マイクロプロセッサでは、グローバルプロセッサ30から入力される上限のPE番号/下限のPE番号が2倍された形でPE番号エリア判定回路(26a、26b)に与えられる。更にこのとき、上位側ALU26bに付随するPE番号エリア判定回路26bでは、最下位1ビットの比較を行わない(即ち、最下位1ビットの比較結果を無視する、考慮しない)構成となっている。
つまり、図10に示されたPEで下位側ALU18aのPE番号エリア判定回路26aの定数値には“4”が、上位側ALU18bのPE番号エリア判定回路26bの定数値には“5”が、与えられている場合には、上位側、下位側のどちらに付随するPE番号エリア判定回路(26a、26b)も、実質的に定数値“4”がグローバルプロセッサ30からのデータによる選択範囲内にあるか否かの判定が、されることとなる。
即ち、図2(a)、又は図3(a)(図2(a)に同じ)の状態のときの実際のPE番号“2”が2倍されたものが判定に利用されるため、グローバルプロセッサ30から入力する上限のPE番号/下限のPE番号も、2倍した値を与えている。
上記では説明を簡単にするために、具体的なPE番号を例にとったが、同様の説明がすべてのPE番号で成立する。更に、図3(b)の状態についても、このときと同様の方法で対応可能である。
本発明の第1の実施形態に係るSIMD型マイクロプロセッサにおけるPEの識別子の論理的構成を示す図である。 本発明の第1の実施形態に係るSIMD型マイクロプロセッサにおけるPE番号の論理的構成を示す図である。 本発明の第1の実施形態に係るSIMD型マイクロプロセッサにおけるPE番号の論理的構成を示す図である。 本発明の第1の実施形態に係るSIMD型マイクロプロセッサにおけるPE番号の論理的構成を示す図である。 本発明の第2の実施形態に係るSIMD型マイクロプロセッサの詳細な構成図である。 本発明の第2の実施形態に係るPE番号発生回路の構成例をその一部動作と共に示す図である。 本発明の第2の実施形態に係るPE番号発生回路の構成例をその一部動作と共に示す図である。 本発明の第2の実施形態に係るPE番号発生回路の構成例をその一部動作と共に示す図である。 本発明の第3の実施形態に係るSIMD型マイクロプロセッサに含まれるプロセッサエレメントの演算部の詳細な構成図である。 本発明の第3の実施形態に係るPEを示す図である。 本発明の第1の実施形態に係るSIMD型マイクロプロセッサの概略の構成図である。 本発明の第1の実施形態に係るSIMD型マイクロプロセッサのより詳しい構成図である。
符号の説明
2・・・SIMD型マイクロプロセッサ、3a、3b・・・演算ユニット、4・・・プロセッサエレメント、30・・・グローバルプロセッサ。

Claims (4)

  1. グローバルプロセッサ、及び複数のプロセッサエレメントを備え、
    各プロセッサエレメントは複数の演算ユニットを含み、
    グローバルプロセッサからの制御によって、プロセッサエレメントにおける演算ユニットの連結構成を一律に変更し、演算ユニットが連結されて若しくは独立してなる演算単位のプロセッサエレメントでの数、及び、演算単位で処理されるデータのデータ幅を変更するSIMD型マイクロプロセッサにおいて、
    上記プロセッサエレメントにおける演算単位に対して、ラベル値を割り付け、割り付けたラベル値を処理に使用することを特徴とするSIMD型マイクロプロセッサ。
  2. 上記プロセッサエレメントにおける演算単位に対して割り付けられるラベル値を、上記演算単位で使用するデータの一つとして生成する
    ことを特徴とする請求項1に記載のSIMD型マイクロプロセッサ。
  3. 上記ラベル値を、グローバルプロセッサからの指定により行う各プロセッサエレメントの各演算単位に対する範囲選択に用いる
    ことを特徴とする請求項1又は2に記載のSIMD型マイクロプロセッサ。
  4. 請求項3に記載のSIMD型マイクロプロセッサであって、
    各プロセッサエレメントは2個の演算ユニットを含み、
    (A)各プロセッサエレメントに含まれる2つの演算ユニットを一律に連動して動作させ、各プロセッサエレメントで一組ずつ演算データを処理する場合に、
    各プロセッサエレメントに含まれる演算ユニット2つずつに1つのラベル値を、そのラベル値がプロセッサエレメントの並びに対して昇順又は降順になるように付与する第1のラベル値割り付け、
    (B)各プロセッサエレメントに含まれる2つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
    各プロセッサエレメントに含まれる演算ユニット2つに2つのラベル値を、そのラベル値が2つの演算ユニットにて昇順又は降順になるように付与し、
    次いで、隣接するプロセッサエレメントに移り、続きとなるラベル値を用いて、再び、演算ユニット2つに2つのラベル値をそのラベル値が2つの演算ユニットにて昇順又は降順になるように付与する第2のラベル値割り付け、及び、
    (C)各プロセッサエレメントに含まれる2つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
    各プロセッサエレメントに含まれる演算ユニット2つに2つのラベル値を、そのラベル値が2つの演算ユニットにて同じになるように付与し、
    更に、プロセッサエレメントの並びに対して昇順又は降順になるように付与する第3のラベル値割り付け
    の少なくとも3通りのラベル値の割り付けに、対応するものであり、
    各プロセッサエレメントの2つの演算ユニットは、自らに割り付けられたラベル値が、グローバルプロセッサから指定される選択範囲内にあるか否かを判定する判定回路を夫々備えており、
    まず、各プロセッサエレメントの各演算ユニットには上記(B)の第2のラベル値割り付けに従って、ラベル値が割り付けられており、
    上記(A)の第1のラベル値割り付け、又は、上記(C)の第3のラベル値割り付けに対応する場合には、グローバルプロセッサからの選択範囲の指定値を2倍して、各プロセッサエレメントの各演算ユニットに与え、各演算ユニットに備わる判定回路は最下位1ビットを判定に加えない
    ことを特徴とするSIMD型マイクロプロセッサ。
JP2007049387A 2007-02-28 2007-02-28 Simd型マイクロプロセッサ Expired - Fee Related JP4801605B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007049387A JP4801605B2 (ja) 2007-02-28 2007-02-28 Simd型マイクロプロセッサ
US12/038,518 US8060726B2 (en) 2007-02-28 2008-02-27 SIMD microprocessor, image processing apparatus including same, and image processing method used therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007049387A JP4801605B2 (ja) 2007-02-28 2007-02-28 Simd型マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2008217061A true JP2008217061A (ja) 2008-09-18
JP4801605B2 JP4801605B2 (ja) 2011-10-26

Family

ID=39717260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007049387A Expired - Fee Related JP4801605B2 (ja) 2007-02-28 2007-02-28 Simd型マイクロプロセッサ

Country Status (2)

Country Link
US (1) US8060726B2 (ja)
JP (1) JP4801605B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122741A (ja) * 2008-11-17 2010-06-03 Kumamoto Univ データ処理装置
US8001506B2 (en) 2008-01-22 2011-08-16 Ricoh Company, Ltd. SIMD image forming apparatus for minimizing wiring distance between registers and processing devices
JP2012190389A (ja) * 2011-03-14 2012-10-04 Ricoh Co Ltd プロセッサ装置及びその演算方法
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム
WO2016024508A1 (ja) * 2014-08-12 2016-02-18 高田 周一 マルチプロセッサ装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996500B2 (en) * 2011-09-27 2018-06-12 Renesas Electronics Corporation Apparatus and method of a concurrent data transfer of multiple regions of interest (ROI) in an SIMD processor system
US11106268B2 (en) * 2018-07-29 2021-08-31 Redpine Signals, Inc. Method and system for saving power in a real time hardware processing unit

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260479A (ja) * 2005-03-18 2006-09-28 Ricoh Co Ltd Simd型マイクロプロセッサ及びデータ処理方法
JP2007034473A (ja) * 2005-07-25 2007-02-08 Ricoh Co Ltd Simd型マイクロプロセッサにおけるデータ処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods
JP2002007359A (ja) 2000-06-21 2002-01-11 Sony Corp Simd制御並列処理方法および装置
JP2002091929A (ja) 2000-09-11 2002-03-29 Matsushita Electric Ind Co Ltd Simd型並列処理装置
US7158141B2 (en) * 2002-01-17 2007-01-02 University Of Washington Programmable 3D graphics pipeline for multimedia applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260479A (ja) * 2005-03-18 2006-09-28 Ricoh Co Ltd Simd型マイクロプロセッサ及びデータ処理方法
JP2007034473A (ja) * 2005-07-25 2007-02-08 Ricoh Co Ltd Simd型マイクロプロセッサにおけるデータ処理方法

Cited By (6)

* Cited by examiner, † Cited by third party
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
JP2010122741A (ja) * 2008-11-17 2010-06-03 Kumamoto Univ データ処理装置
JP2012190389A (ja) * 2011-03-14 2012-10-04 Ricoh Co Ltd プロセッサ装置及びその演算方法
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム
WO2016024508A1 (ja) * 2014-08-12 2016-02-18 高田 周一 マルチプロセッサ装置
US10754818B2 (en) 2014-08-12 2020-08-25 ArchiTek Corporation Multiprocessor device for executing vector processing commands

Also Published As

Publication number Publication date
US8060726B2 (en) 2011-11-15
US20080209165A1 (en) 2008-08-28
JP4801605B2 (ja) 2011-10-26

Similar Documents

Publication Publication Date Title
JP4801605B2 (ja) Simd型マイクロプロセッサ
CN1127687C (zh) 带外部协处理器可访问的上下文切换寄存器组的risc处理器
US3537074A (en) Parallel operating array computer
EP0539595A1 (en) Data processor and data processing method
JPH06230969A (ja) プロセッサ
JPS61110256A (ja) 複数の演算部を有するプロセツサ
JP3971535B2 (ja) Simd型プロセッサ
WO2016024508A1 (ja) マルチプロセッサ装置
KR20010072491A (ko) 산술 논리 유닛 및 스택을 가지는 데이터 프로세서,멀티미디어 장치 및 컴퓨터 프로그램 제품
EP1220089B1 (en) Method for executing conditional branch instructions in a data processor and corresponding data processor
JP3935678B2 (ja) Simd積和演算方法、積和演算回路、および、半導体集積回路装置
JPS59106075A (ja) デ−タ処理システム
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
US20100088493A1 (en) Image processing device and data processor
JP4482356B2 (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
EP0177268B1 (en) Programmable data path width in a programmable unit having plural levels of subinstructions sets
JP2008071037A (ja) Simd型マイクロプロセッサ
US20090187738A1 (en) Simd-type microprocessor, method of processing data, image data processing system, and method of processing image data
KR20010072490A (ko) 레지스터 스택을 포함하는 데이터 프로세서, 그 처리방법, 컴퓨터 프로그램 제품 및 멀티미디어 장치
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
JPH06309349A (ja) プログラム制御のプロセッサ
JP2011118744A (ja) 情報処理装置
JP2002091929A (ja) Simd型並列処理装置
JP4413905B2 (ja) Simd型プロセッサ
JP2011134042A (ja) Simd型マイクロプロセッサおよびsimd型マイクロプロセッサのデータ整列方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110708

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

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

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees