JP2008071037A - Simd型マイクロプロセッサ - Google Patents
Simd型マイクロプロセッサ Download PDFInfo
- Publication number
- JP2008071037A JP2008071037A JP2006247912A JP2006247912A JP2008071037A JP 2008071037 A JP2008071037 A JP 2008071037A JP 2006247912 A JP2006247912 A JP 2006247912A JP 2006247912 A JP2006247912 A JP 2006247912A JP 2008071037 A JP2008071037 A JP 2008071037A
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- signal line
- processor element
- processor
- 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
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
【課題】全PEに格納されているデータの中から、ある閾値以上のデータであるというような特定の条件を満たしているデータのみを、PE番号の小さい方から順に収集するSIMD型マイクロプロセッサを提供する。
【解決手段】各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、個々のプロセッサエレメントから出力された上記第1の信号線は、プライオリティ・エンコーダに入力され、上記プライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とするSIMD型マイクロプロセッサを提供する。
【選択図】図3
【解決手段】各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、個々のプロセッサエレメントから出力された上記第1の信号線は、プライオリティ・エンコーダに入力され、上記プライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とするSIMD型マイクロプロセッサを提供する。
【選択図】図3
Description
本発明は、条件付き命令に対応した、1つの演算命令により複数の画像データ等を並列処理するSIMD(Single Instruction Multiple Data)型マイクロプロセッサに関する。
画像処理を実行するマイクロプロセッサでは、SIMD型を採用することが多い。なぜならば、一つの命令で複数のデータに対して、同時に同一の演算処理が実行可能であるSIMD型マイクロプロセッサの特徴が画像処理に適しているからである。SIMD型マイクロプロセッサは、プロセッサエレメント(以下、PEという。)と呼ばれる単位において演算部とレジスタを備えており、更にそのようなPEを複数個有する。これら複数個のPEが同時に演算処理を行うことで、一つの命令で複数のデータに対して同時に同一の演算処理を実行する。SIMD型マイクロプロセッサでは、処理速度の向上、及び、命令供給装置や命令制御装置の共有化が可能となる。
ところで、SIMD型マイクロプロセッサは、全てのPEが同時動作をすることにおいては、その性能をよく発揮できる。しかし、PEによって処理内容を変える必要があるような処理、若しくは演算結果によって処理内容を変えるような処理においては、性能を十分に発揮できない。
PE毎に処理を変える方法は、各PEにフラグビットを持たせそのフラグの値によって処理を実行するかどうか決定するように構成すれば、実現可能である。
例えば、特許文献1、特許文献2、特許文献3、及び特許文献4に開示されているように、各PEでの演算結果から、或いは全体制御回路から、各PEのフラグビットを変更することで、PE毎に演算の実行、非実行を設定することが可能となる。ただし、PEでの演算結果によって全体の制御を変更することは不可能である。特許文献5には、各PEの持つフラグビットのOR結果をグローバルプロセッサに転送することで全体の制御を変更することが可能となるということにつき開示されている。
また、画像処理においては、全PEに格納されているデータの中で、特定の条件に合致したデータを主走査方向の(例えば)左側の画素データから順に収集する処理が必要になることがある。例えば、パターンマッチングを行い、パターンとマッチしたPEのアドレスを収集するなどといった処理である。
従来のSIMD型マイクロプロセッサにおいては、特定の条件に合致しているデータを収集するには、全PEからデータを収集するためのバスを設け、PEのアドレス(PE番号)の小さい方から順番にデータ収集した上で、そのデータが条件に合致するかどうかの判定を行い、合致したものだけを例えばデータメモリに格納するといった処理が必要になる。このようにすることには膨大なサイクル数がかかる。
特許文献1、特許文献2、特許文献3、又は特許文献4に示されるプロセッサの構成を採用し、各PEにおいて各々のデータが条件に合致するかどうかの判定を行い、その結果を各PEのフラグビットに格納するようにし、そしてデータとフラグビットを収集するようにすれば、サイクル数を削減することは可能である。
また、パターンマッチングした結果のデータの全てではなく、データの分類だけを目的にするような場合には、特許文献5に示されるプロセッサの構成を採用して、各PEが持つフラグビットに比較結果を格納するようにし、更に全てのPEのフラグビットのOR(論理和)演算結果をグローバルプロセッサに転送することで、複数ある所望のパターンとの一致に係る演算を全PEで行い、フラグビットに比較結果を残すようにすれば、目的は一応達せられる。しかし、この場合には、データをPEのアドレスの小さい方から順に収集することができない。
特許文献6には、PEを2進木状に配置することでデータ収集を行うことのできる構成を有するSIMD型マイクロプロセッサが開示されている。この構成において、データのみではなく各PEのアドレス値もあわせて転送するようにすれば、条件に合致しているデータを収集することが可能である。しかし、PE数が多くなると配線数が増大してしまい、動作速度、コストの面で不利である。
特許文献7及び特許文献8には、演算アレイの外部に別途、全PEのレジスタのデータを対象にした演算を実行できる演算器を装備することによって、データを逐次に処理することができるプロセッサにつき開示されている。ここでの追加ハードウェアは規模としては大きくはないが、ハードウェアとして実装するための汎用性に乏しいこと、収集する対象データが少ない場合にも全PEのデータに逐次にアクセスしないと処理が終了しないこと、という欠点を持つ。
特開平5−189585号公報
特開平6−176176号公報
特開平9−198231号公報
特開平11−53189号公報
特開平10−289305号公報
特公平8−014816号公報
特開平8−30577号公報
特開平8−235149号公報
本発明は、全PEに格納されているデータの中から、ある閾値以上のデータであるというような特定の条件を満たしているデータのみを、PE番号の小さい方から順に収集するSIMD型マイクロプロセッサを提供することを目的とする。
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
複数のデータを処理するための複数のプロセッサエレメントを有するSIMD型マイクロプロセッサである。そのようなSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第1の信号線は、プライオリティ・エンコーダに入力され、
上記プライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とする。
複数のデータを処理するための複数のプロセッサエレメントを有するSIMD型マイクロプロセッサである。そのようなSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第1の信号線は、プライオリティ・エンコーダに入力され、
上記プライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とする。
本発明に係る請求項2に記載のSIMD型マイクロプロセッサは、
複数のデータを処理するための複数のプロセッサエレメントを有するSIMD型マイクロプロセッサである。そのようなSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
プロセッサエレメントは、複数のグループに分けられており、
上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第1の信号線は、各グループに搭載される第1のプライオリティ・エンコーダに入力され、
上記第1のプライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの下位ビットとして検出し、
更に、各グループにおける第1の信号線の論理和は、各グループに備わる第2の信号線を介して出力され、
個々のグループから出力された上記第2の信号線は、第2のプライオリティ・エンコーダに入力され、
上記第2のプライオリティ・エンコーダは、上記第2の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの上位ビットとして検出することを特徴とする。
複数のデータを処理するための複数のプロセッサエレメントを有するSIMD型マイクロプロセッサである。そのようなSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
プロセッサエレメントは、複数のグループに分けられており、
上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第1の信号線は、各グループに搭載される第1のプライオリティ・エンコーダに入力され、
上記第1のプライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの下位ビットとして検出し、
更に、各グループにおける第1の信号線の論理和は、各グループに備わる第2の信号線を介して出力され、
個々のグループから出力された上記第2の信号線は、第2のプライオリティ・エンコーダに入力され、
上記第2のプライオリティ・エンコーダは、上記第2の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの上位ビットとして検出することを特徴とする。
本発明に係る請求項3に記載のSIMD型マイクロプロセッサは、
上記プライオリティ・エンコーダが上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときには、
上記第1の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項1に記載のSIMD型マイクロプロセッサである。
上記プライオリティ・エンコーダが上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときには、
上記第1の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項1に記載のSIMD型マイクロプロセッサである。
本発明に係る請求項4に記載のSIMD型マイクロプロセッサは、
上記第1のプライオリティ・エンコーダが上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときであり、且つ、上記第2のプライオリティ・エンコーダが上記第2の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないとき、
上記第1の信号線及び上記第2の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項2に記載のSIMD型マイクロプロセッサである。
上記第1のプライオリティ・エンコーダが上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときであり、且つ、上記第2のプライオリティ・エンコーダが上記第2の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないとき、
上記第1の信号線及び上記第2の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項2に記載のSIMD型マイクロプロセッサである。
本発明を利用することにより、SIMD型マイクロプロセッサにおいて、各PEに対してPE番号の少ない方から順に特定の条件を満たすデータを収集することを短いサイクルで実施することが可能になる。また、このような機能をより小さい回路規模で且つ高速に実現することも可能である。更に、信号線の構成を工夫することにより回路規模をより削減できる。
以下、図面を参照して本発明に係る好適な実施形態を説明する。
図1は、本発明に係るSIMD型マイクロプロセッサ2の概略の構成を示すブロック図である。
(1)グローバルプロセッサ4
グローバルプロセッサ4は、いわゆるSISD(Single Instruction Stream, Single Data Stream)タイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し各種制御信号を生成する。この制御信号は、内蔵する各種ブロックの制御以外にも、(後述する)レジスタファイル14、演算アレイ16、及びメモリコントローラ10に供給される。また、GP(グローバルプロセッサ)命令実行時は、内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理を行う。
(1)グローバルプロセッサ4
グローバルプロセッサ4は、いわゆるSISD(Single Instruction Stream, Single Data Stream)タイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し各種制御信号を生成する。この制御信号は、内蔵する各種ブロックの制御以外にも、(後述する)レジスタファイル14、演算アレイ16、及びメモリコントローラ10に供給される。また、GP(グローバルプロセッサ)命令実行時は、内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理を行う。
(2)レジスタファイル14
PE(プロセッサエレメント)命令で処理されるデータを保持するファイルである。つまり、各PE(図2参照)のレジスタ部分の集合体である。PE命令は、SIMD(Single Instruction Stream, Multiple Data Stream)タイプの命令であり、レジスタファイルに保持されている複数のデータに対して、同時に同じ処理を行う命令である。このレジスタファイル14からのデータの読み出し/書き込みの制御は、グローバルプロセッサ4からの制御によって行われる。読み出されたデータは、(後述する)演算アレイ16に送られ、演算アレイ16での演算処理後にレジスタファイル14に書き込まれる。
PE(プロセッサエレメント)命令で処理されるデータを保持するファイルである。つまり、各PE(図2参照)のレジスタ部分の集合体である。PE命令は、SIMD(Single Instruction Stream, Multiple Data Stream)タイプの命令であり、レジスタファイルに保持されている複数のデータに対して、同時に同じ処理を行う命令である。このレジスタファイル14からのデータの読み出し/書き込みの制御は、グローバルプロセッサ4からの制御によって行われる。読み出されたデータは、(後述する)演算アレイ16に送られ、演算アレイ16での演算処理後にレジスタファイル14に書き込まれる。
また、レジスタファイル14は、外部インタフェース8を介してプロセッサ2外部のメモリコントローラ10からのアクセスが可能であり、グローバルプロセッサ4の制御とは別に外部から特定のレジスタに対する読み出し/書き込みが行われる。
(3)演算アレイ16
PE命令の演算処理が行われる部位である。つまり、各PE(図2参照)の(ALUを含む)演算部の集合体である。処理の制御はすべてグローバルプロセッサから行われる。
PE命令の演算処理が行われる部位である。つまり、各PE(図2参照)の(ALUを含む)演算部の集合体である。処理の制御はすべてグローバルプロセッサから行われる。
(4)メモリコントローラ10
外部ポート18にクロックとアドレス、リード/ライト制御信号を出力し、シングルポートメモリ12にクロックとアドレス、リード/ライト制御信号を出力することで、任意のPEのレジスタとシングルポートメモリとの間で、データ転送が行われる。処理の制御はすべてグローバルプロセッサから行われる。
外部ポート18にクロックとアドレス、リード/ライト制御信号を出力し、シングルポートメモリ12にクロックとアドレス、リード/ライト制御信号を出力することで、任意のPEのレジスタとシングルポートメモリとの間で、データ転送が行われる。処理の制御はすべてグローバルプロセッサから行われる。
図2は、本発明に係るSIMD型マイクロプロセッサ2のより詳細な構成を示すブロック図である。
グローバルプロセッサ4には、当該プロセッサのプログラム格納用のプログラムRAM20と演算データ格納用のデータRAM22が内蔵されている。更に、プログラムのアドレスを保持するプログラムカウンタ(PC)24、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ(26、28、30、32)、レジスタ退避、復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)34、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)36、同じくIRQ時とNMI時の分岐元アドレスを保持するLIレジスタ38、LNレジスタ40、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)42が内蔵されている。
これらのレジスタと、図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部インタフェース制御回路、及びGP演算制御回路を使用してGP命令の実行が行われる。また、PE命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、PE演算制御回路を使用して、レジスタファイル14の制御と演算アレイ16の制御をおこなう。
レジスタファイルには1つのPE単位に8ビットのレジスタ50が32本内蔵されており、256PE分の組がアレイ構成になっている(一つのPEは、符号44で示される点線の枠内に相当する部位であり、レジスタ46と演算部48とからなる。)。レジスタ50は、PE毎にR0、R1、R2、...R31と呼ばれるものが備わる。夫々のレジスタ50は、演算部48に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバスで演算部48からアクセスされる。32本のレジスタ50の内、24本(R0〜R23)は外部インタフェース8を介してプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御信号が入力されて任意のレジスタ50が読み書きされ得る。
レジスタ50の外部からのアクセスでは、1つの外部ポートで各PEの1つのレジスタ50がアクセス可能であり、外部から入力されたアドレスでPEの番号(0〜255)が指定される(PEには、図面の右側から順に0〜255の番号がPE番号として付されている。PE番号はPEアドレスともいう。)。したがって、レジスタアクセスのための外部ポートは、全部で24組搭載されている。また、外部からのアクセスは、隣接する偶数のPEと奇数のPEの組の16ビット単位で行われ、1回のアクセスで2つのレジスタが同時にアクセスされる。
演算部48は、16ビットALU52、Aレジスタ54、及びFレジスタ56を内蔵している。PE命令による演算では、レジスタ50から読み出されたデータ、若しくはグローバルプロセッサ4から与えられたデータをALU52の片側の入力とし、もう片側にはAレジスタ54の内容を入力として、結果をAレジスタ54に格納する。したがって、Aレジスタ54と、R0〜R31レジスタもしくはグローバルプロセッサ4から与えられたデータとの演算が行われることになる。なお、図2に示すSIMD型マイクロプロセッサ2では、16ビットALU52、Aレジスタ54、及びFレジスタ56につき、上位の16ビットのためのものと下位の16ビットのためのものとが備えられている。
更に、レジスタ50と演算部48との接続部分に、7対1のマルチプレクサ58が設けられており、PE並列方向で前方(番号の小さい方)に1、2、3つ離れたレジスタ50のデータと、後方(番号の大きい方)に1、2、3つ離れたレジスタ50のデータと、中央の(即ち、同一PEの)レジスタ50のデータを演算対象として選択できるように設定されている。また、レジスタ50の8ビットのデータは、シフト拡張回路60により任意ビット分左シフトされてALU52に入力することもある。
更に、図2では示していない8ビットの条件レジスタ(Tレジスタ)(図3〜6参照)により、PE毎の演算実行の無効/有効の制御がなされている。これにより、特定のPE44だけを演算対象として選択できる。
[第1の実施形態]
図3は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2のブロック図である。
図3は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2のブロック図である。
各PE44のAレジスタ54は、3ステートバッファ62を介してデータ収集バス64に接続されており、特定のPE44のAレジスタ54の値をデータ収集バス64を介してグローバルプロセッサ4に転送することが可能になっている。
また、各PE44が内蔵している8ビットの条件レジスタ(Tレジスタ)66の中から1ビットを選択された値は、各PE44に1本ずつ専用に設けられた第1の信号線68を介してグローバルプロセッサ4内のプライオリティ・エンコーダ70に入力されている。
図4は、条件レジスタ(Tレジスタ)66の内部の構成を示すブロック図である。Tレジスタ66のT1〜T7には、DIN(データイン)とCLR(クリア)とにより“0”又は“0”が設定される。T0は恒常的に“1”のみを出力するように設定されている。
プライオリティ・エンコーダ70は、256本の第1の信号線68の内で、アクティブなものでPE番号の最も小さいものを出力し、その値をグローバルプロセッサ4内の第1の汎用レジスタ72に格納するように構成されている。
グローバルプロセッサ4は、第1の汎用レジスタ72に格納されているデータをPE指定バス74に出力することが可能である。更に、各PE44が内蔵している比較器76にて、各PE44のPE番号とPE指定バス74のデータとを比較して、合致しているPE44において条件レジスタ(Tレジスタ)66の任意のビットに1を格納したり(若しくはリセットしたり)、命令の実行の有無を制御したりすることが可能になっている。
ALU52からは、C(キャリー)、V(オーバフロー)、N(ネガティブフラグ)、及びZ(ゼロフラグ)といった演算フラグが出力される。これらC、V、N及びZの演算フラグは、CCT(コンディション・コード・テーブル)ブロック78を介して、条件レジスタ(Tレジスタ)66の任意のビット(図4参照)に値を設定することができるように構成されている。ここで、CCTブロック78は、CMP(比較)命令にて、設定された条件とALU52から出力されるC、V、N、Zの演算フラグとの論理演算を行い、条件が合致したら“1”(真)を、合致しなかったら“0”(偽)を出力するブロックである。
上記のようなPEの演算部48の構成によれば、以下のような手順に従って、特定の条件に合致したPEのデータを収集することが可能となる。
(ステップ1−(1));各PE44にて、所望の条件を設定したCMP(比較)命令をCCTブロック78を介して実行し、条件レジスタ(Tレジスタ)66の中の任意の1ビットに真(1)又は偽(0)を格納する。
(ステップ2−(1));条件レジスタ(Tレジスタ)66の中の上記任意の1ビットの値をプライオリティ・エンコーダ70に出力し、当該ビットが真であるPEの中で最もPE番号の小さいもののPE番号値を、グローバルプロセッサ4内の第1の汎用レジスタ72に取り込む命令を実行する。
(ステップ2−(2));第1の汎用レジスタ72に格納された値を、PE指定バス74に出力し、比較器76の比較演算で自身のPE番号と合致したPE44の、Aレジスタ54のデータをデータ収集バス64を介して第2の汎用レジスタ80に取り込む命令を実行する。
(ステップ2−(3));第2の汎用レジスタ80のデータを、(例えば)データメモリなどに格納する。
(ステップ2−(4));第1の汎用レジスタ72に格納された値を、PE指定バス74に出力し、比較器76の比較演算で自身のPE番号と合致したPE44だけが、条件レジスタ(Tレジスタ)66の中の上記任意の1ビットの値をリセットする命令を実行する。
(ステップ3−(1));上記ステップ2−(1)と同じ処理を実行する。即ち、上記ステップ2−(1)において次に条件に合致しているPE番号値が第1の汎用レジスタ72に取り込まれる。
(ステップ3−(2));上記ステップ2−(2)と同じ処理を実行する。即ち、次に条件に合致しているPE番号値を持つPEのAレジスタ54のデータが、第2の汎用レジスタ80に取り込まれる。
(ステップ3−(3));上記ステップ2−(3)と同じ処理を実行する。
(ステップ3−(4));上記ステップ2−(4)と同じ処理を実行する。即ち、上記ステップ3−(1)から上記ステップ3−(3)で対象になっていたPEの条件レジスタ(Tレジスタ)66の中の上記任意の1ビットの値をリセットする。
更に、次のPEへと処理を移行する。
以降、上記処理の繰り返しで、条件に合致している全PEのデータを収集することが可能になる。
[第2の実施形態]
図5は、本発明の第2の実施形態に係るSIMD型マイクロプロセッサ2のブロック図である。第2の実施形態に係るSIMD型マイクロプロセッサは、第1の実施形態に係るSIMD型マイクロプロセッサと略同様のものである。従って、同一部位には同一符号を付して説明を省略する。
図5は、本発明の第2の実施形態に係るSIMD型マイクロプロセッサ2のブロック図である。第2の実施形態に係るSIMD型マイクロプロセッサは、第1の実施形態に係るSIMD型マイクロプロセッサと略同様のものである。従って、同一部位には同一符号を付して説明を省略する。
上述の第1の実施形態に係るSIMD型マイクロプロセッサ2では、PE数と同じビット幅のプライオリティ・エンコーダ70が必要となる。そうすると、全体の回路規模が大きくなり、動作速度がそれ程上がらないことも想定され得る。
第2の実施形態に係るSIMD型マイクロプロセッサ2では、全PEにつき16個のPEで1つのグループとして16個のグループが構成されている。各PE44が内蔵している8ビットの条件レジスタ(Tレジスタ)66の中から1ビットを選択された値は、各PE44に1本ずつ専用に設けられた第1の信号線68を介して、PE16個のグループに1つ搭載される第1のプライオリティ・エンコーダ82に入力される。第1のプライオリティ・エンコーダ82は、16本の第1の信号線68の内で、アクティブなものでPE番号の最も小さいものを出力し、その値を16PEデータ管理ブロック88内の第3の汎用レジスタ84に格納するように構成されている。なお、16PEデータ管理ブロック88は、PEの16個のグループに1つ備わる。
更に、上記16本の第1の信号線68は、16PEデータ管理ブロック88内の論理和(OR)回路86に入力する。上記16本の第1の信号線68の論理和(OR)の結果データが、各16PEデータ管理ブロック88専用の第2の信号線94を介して、グローバルプロセッサ4内の第2のプライオリティ・エンコーダ90に入力される。第2のプライオリティ・エンコーダ90は、16本の第2の信号線94の内で、アクティブなもので(16PEデータ管理)ブロック番号の最も小さいものを出力し、その値をグローバルプロセッサ4内の第1の汎用レジスタ92に格納するように構成されている。なお、PEの16個のグループにも、PE番号と同様に図5の右側から順に、16PEデータ管理ブロック番号が付されている。
グローバルプロセッサ4に搭載される第2のプライオリティ・エンコーダ90と、各16PEデータ管理ブロック88に1つずつ搭載される第1のプライオリティ・エンコーダ82は、何れも第1の実施形態に係るSIMD型マイクロプロセッサ2におけるプライオリティ・エンコーダ70と同一構成である。即ち、16個の信号線の内で、アクティブなものでPE番号又は(16PEデータ管理)ブロック番号の最も小さいものを出力するように構成されている。
上記ステップ2−(1)や上記ステップ3−(1)にて条件に合致したPEのPE番号値は、上位4ビットについてはグローバルプロセッサ4の第1の汎用レジスタ92に格納されており、下位4ビットについては各16データ管理ブロック88の第3の汎用レジスタ84に格納されている。従って、上記ステップ2−(2)や上記ステップ3−(2)では、PE指定のためのPE番号値として、第1の汎用レジスタ92の格納値と第3の汎用レジスタ84の格納値とを合わせて使うことになる。
このような第2の実施形態に係るSIMD型マイクロプロセッサ2によれば、第1の実施形態に係るSIMD型マイクロプロセッサと同様の手順に基づいて、所望の条件に合致している全てのPEのデータを収集することが可能である。
[第3の実施形態]
図6は、本発明の第3の実施形態に係るSIMD型マイクロプロセッサ2のブロック図である。第3の実施形態に係るSIMD型マイクロプロセッサは、第2の実施形態に係るSIMD型マイクロプロセッサと略同様のものである。従って、同一部位には同一符号を付して説明を省略する。
図6は、本発明の第3の実施形態に係るSIMD型マイクロプロセッサ2のブロック図である。第3の実施形態に係るSIMD型マイクロプロセッサは、第2の実施形態に係るSIMD型マイクロプロセッサと略同様のものである。従って、同一部位には同一符号を付して説明を省略する。
本発明の第3の実施形態に係るSIMD型マイクロプロセッサ2では、データ収集バスとプライオリティ・エンコーダへの信号線とを、同一のものにしている。
各PE44のAレジスタ54に格納される値は、個々のビット毎に、16個の3ステートバッファ96を介して16本の第1の信号線に、Wired−ORの形で出力される。また、条件レジスタ(Tレジスタ)66に格納される値も、3ステートバッファ94を介して1本の(当該PEのための)第1の信号線に出力される。第1の信号線は、PEの16個のグループ毎に1つ備えられる16PEデータ管理ブロック88’に入力される。
各PE44においては、上記手順のステップ2−(1)及びステップ3−(1)では、条件レジスタ(Tレジスタ)66のデータを出力するように、グローバルプロセッサ4からの制御線で3ステートバッファ94が制御される。更に、上記手順のステップ2−(2)及びステップ3−(2)では、Aレジスタ54のデータを出力するように、グローバルプロセッサからの制御線で3ステートバッファ96が制御される。
これらの制御について詳しく図示していないが、グローバルプロセッサ4からの制御線と条件レジスタ(Tレジスタ)の値との論理積(AND)信号が、3ステートバッファ94の出力イネーブル信号となる、というような制御となる。
16PEデータ管理ブロック88’は、上記手順のステップ2−(1)及びステップ3−(1)においては、第2の実施形態に係るSIMD型マイクロプロセッサ2の16PEデータ管理ブロック88と同じ動作を行い同じ機能を果たす。
一方で、16PEデータ管理ブロック88’は、上記手順のステップ2−(2)及びステップ3−(2)においては、Aレジスタ54からのデータを第1の信号線を介して受け取り、更に、第2の信号線を介してグローバルプロセッサ4内の第2の汎用レジスタ80’へとデータ転送を行うように構成される。なお、図6では図示の都合により、図5に示す16PEデータ管理ブロック88の第1のプライオリティ・エンコーダ82、第3のレジスタ84、論理和(OR)回路86をまとめて、16PEデータ管理ブロック88’として示している。
このような第3の実施形態に係るSIMD型マイクロプロセッサ2によれば、第2の実施形態に係るSIMD型マイクロプロセッサと同じ性能を保持しつつ、信号線の本数を削減でき回路規模を削減することが可能となる。
2・・・SIMD型マイクロプロセッサ、4・・・グローバルプロセッサ、52・・・ALU、54・・・Aレジスタ、66・・・条件レジスタ(Tレジスタ)。
Claims (4)
- 複数のデータを処理するための複数のプロセッサエレメントを有するSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第1の信号線は、プライオリティ・エンコーダに入力され、
上記プライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とするSIMD型マイクロプロセッサ。 - 複数のデータを処理するための複数のプロセッサエレメントを有するSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
プロセッサエレメントは、複数のグループに分けられており、
上記条件レジスタの値は、各プロセッサエレメントに備わる第1の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第1の信号線は、各グループに搭載される第1のプライオリティ・エンコーダに入力され、
上記第1のプライオリティ・エンコーダは、上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの下位ビットとして検出し、
更に、各グループにおける第1の信号線の論理和は、各グループに備わる第2の信号線を介して出力され、
個々のグループから出力された上記第2の信号線は、第2のプライオリティ・エンコーダに入力され、
上記第2のプライオリティ・エンコーダは、上記第2の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの上位ビットとして検出することを特徴とするSIMD型マイクロプロセッサ。 - 上記プライオリティ・エンコーダが上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときには、
上記第1の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項1に記載のSIMD型マイクロプロセッサ。 - 上記第1のプライオリティ・エンコーダが上記第1の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときであり、且つ、上記第2のプライオリティ・エンコーダが上記第2の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないとき、
上記第1の信号線及び上記第2の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項2に記載のSIMD型マイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006247912A JP2008071037A (ja) | 2006-09-13 | 2006-09-13 | Simd型マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006247912A JP2008071037A (ja) | 2006-09-13 | 2006-09-13 | Simd型マイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008071037A true JP2008071037A (ja) | 2008-03-27 |
Family
ID=39292576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006247912A Pending JP2008071037A (ja) | 2006-09-13 | 2006-09-13 | Simd型マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008071037A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2103789A1 (en) | 2008-03-19 | 2009-09-23 | Honda Motor Co., Ltd. | Warming-up system for vehicle |
WO2010095476A1 (ja) | 2009-02-18 | 2010-08-26 | 日本電気株式会社 | プロセッサ及びデータ収集方法 |
-
2006
- 2006-09-13 JP JP2006247912A patent/JP2008071037A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2103789A1 (en) | 2008-03-19 | 2009-09-23 | Honda Motor Co., Ltd. | Warming-up system for vehicle |
WO2010095476A1 (ja) | 2009-02-18 | 2010-08-26 | 日本電気株式会社 | プロセッサ及びデータ収集方法 |
JP2010191696A (ja) * | 2009-02-18 | 2010-09-02 | Nec Corp | プロセッサ及びデータ収集方法 |
JP4539889B2 (ja) * | 2009-02-18 | 2010-09-08 | 日本電気株式会社 | プロセッサ及びデータ収集方法 |
EP2400399A1 (en) * | 2009-02-18 | 2011-12-28 | Nec Corporation | Processor and data collection method |
EP2400399A4 (en) * | 2009-02-18 | 2013-05-29 | Nec Corp | PROCESSOR AND METHOD FOR COLLECTING DATA |
US8688958B2 (en) | 2009-02-18 | 2014-04-01 | Nec Corporation | System for data collection from processing elements in a SIMD processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4913685B2 (ja) | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 | |
US5606520A (en) | Address generator with controllable modulo power of two addressing capability | |
US20080072011A1 (en) | SIMD type microprocessor | |
EP0539595A1 (en) | Data processor and data processing method | |
JP4934356B2 (ja) | 映像処理エンジンおよびそれを含む映像処理システム | |
US7500089B2 (en) | SIMD processor with exchange sort instruction operating or plural data elements simultaneously | |
JP4801605B2 (ja) | Simd型マイクロプロセッサ | |
JP2008071037A (ja) | Simd型マイクロプロセッサ | |
JP2006350907A (ja) | Simd型マイクロプロセッサ、データ転送装置、及びデータ変換装置 | |
US20130212362A1 (en) | Image processing device and data processor | |
JP2007073010A (ja) | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 | |
JP4408113B2 (ja) | 信号処理方法 | |
JP4482356B2 (ja) | Simdプロセッサを用いた画像処理方法及び画像処理装置 | |
JP4868607B2 (ja) | Simd型マイクロプロセッサ | |
JP2005189966A (ja) | 画像処理装置 | |
JP4451433B2 (ja) | 並列プロセッサ | |
JP3837293B2 (ja) | 定数選択機能を有するsimd型マイクロプロセッサ | |
US20100031002A1 (en) | Simd microprocessor and operation method | |
JP4516495B2 (ja) | Simd型マイクロプロセッサにおけるデータ処理方法 | |
JP2006515446A (ja) | 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム | |
JP3969580B2 (ja) | データ処理装置、画像処理装置、画像形成装置、プログラム及び記憶媒体 | |
JP4442907B2 (ja) | Simd型プロセッサ | |
JP2007102799A (ja) | ソート機能を有するsimd型マイクロプロセッサ | |
JP4346039B2 (ja) | データ処理装置 | |
JP2011134042A (ja) | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサのデータ整列方法 |