JP2004252825A - Simd type microprocessor capable of transferring data even when fault is occurred in pe - Google Patents
Simd type microprocessor capable of transferring data even when fault is occurred in pe Download PDFInfo
- Publication number
- JP2004252825A JP2004252825A JP2003043856A JP2003043856A JP2004252825A JP 2004252825 A JP2004252825 A JP 2004252825A JP 2003043856 A JP2003043856 A JP 2003043856A JP 2003043856 A JP2003043856 A JP 2003043856A JP 2004252825 A JP2004252825 A JP 2004252825A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- data transfer
- transfer
- address
- 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
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、マイクロプロセッサ、特にSIMD(Single Instruction−stream Multiple Data−stream)型マイクロプロセッサに関する。
【0002】
【従来の技術】
SIMD型マイクロプロセッサでは、複数のデータに対して1つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理(例えばデジタルコピアなどにおける画像処理)に係る用途において、頻用される。
【0003】
SIMD型マイクロプロセッサにおける通常の画像処理では、複数の演算ユニット(Processor Element [PE]; プロセッサエレメント)を主走査方向に並べ、同一の演算を同時に複数のデータに対して実行することによって、高速な演算処理を可能としている。
【0004】
ところで、近年、製造プロセスの微細化によってLSIの集積度は高まる一方であり、SIMD型マイクロプロセッサにおいてもPE数の増加が可能となってきた。ところが、SIMD型などのように並列プロセッサ構成を採るプロセッサでは、複数個搭載している演算ユニットの内の一つでも故障しているとプロセッサ全体として利用できなくなる虞がある。よって、従来技術のSIMD型マイクロプロセッサでは、例えば、冗長なPEを設けておき故障発生のPEと置き換えるというような手法が用いられてきた。
【0005】
下記の特許文献1、特許文献2及び特許文献3などでは、不良プロセッサを置き換えるための冗長PEを設ける技術を示している。該技術では、故障しているPEがある場合には、PEを特定する信号を、故障しているPEではなく冗長PEに割り当てることで並列プロセッサを救済している。更に特許文献2のプロセッサでは、プロセッサ外部とのデータの受け渡しに関して、外部出力バスに対し3ステートバッファで出力する形態を用いており、バッファの出力イネーブル信号自体が故障PEと冗長PEとで切り替わるように構成されている。これらの技術はPE数が少ない場合には有効な手法であるが、PE数が多い場合に(切り替えを想定して)設定を要する制御線の数が非常に多くなること、予め冗長なPEを必要とすること等の欠点がある。
【0006】
下記の特許文献4、特許文献5及び特許文献6に示される従来技術では、隣接したPEからの出力信号と自身が出力する信号とのマルチプレクサを各PEが有し、故障しているPEでは隣接したPEからの出力信号をバイパスして出力することで並列プロセッサを救済している。また特許文献4のプロセッサでは、プロセッサ外部とのデータの受け渡しをシフトレジスタ構成により行っている。これらの構成は比較的簡単なものである。しかし、シフトレジスタを用いているため、例えば一部のPEにおけるデータ転送を行う場合でも、全てのPEでのデータのシフトを行わなければならないことがある。よって、転送にかかる時間が多くなってしまうこともある。
【0007】
【特許文献1】
特開平9−22400号
【特許文献2】
特開平9−288652号
【特許文献3】
特許第3005243号
【特許文献4】
特開2000−148998
【特許文献5】
特開2002−169787
【特許文献6】
特表2001−527218
【0008】
【発明が解決しようとする課題】
本特許は、SIMD型マイクロプロセッサにおいて、故障のPEが生じた場合にも、データ転送を行うことができることをその目的としている。
【0009】
【課題を解決するための手段】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
複数のデータを処理するための複数のプロセッサエレメントを有するSIMD型マイクロプロセッサである。そのSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントが内蔵する汎用レジスタに外部からアクセスするためのデータ転送用ポートに、データ転送装置が接続し、
上記データ転送装置は、各プロセッサエレメントが故障しているか否かを示す記憶部を有し、
上記データ転送装置は、その記憶部のデータの内容により、故障しているプロセッサエレメントへのデータ転送を抑止するように制御する。
【0010】
本発明に係る請求項2に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントが正常に動作するか否かを検査するためのセルフテストが適時自動実行され、
その検査結果が上記データ転送装置の上記記憶部に自動格納される、
請求項1に記載のSIMD型マイクロプロセッサである。
【0011】
本発明に係る請求項3に記載のSIMD型マイクロプロセッサは、
上記データ転送装置が、
データ転送のときに転送が開始されるべきプロセッサエレメントのアドレスをデータとして設定する第1のレジスタと、
故障していないプロセッサエレメントのアドレスを発行した時にカウントアップする第1のカウンタとを含み、
上記の第1のカウンタの値が上記の第1のレジスタの値に等しくなるまで、データの転送を抑止する、
請求項1に記載のSIMD型マイクロプロセッサである。
【0012】
本発明に係る請求項4に記載のSIMD型マイクロプロセッサは、
上記の第1のカウンタの値が上記の第1のレジスタの値に等しくなったとき、そのときのプロセッサエレメントのアドレスの値が保持され、
全プロセッサエレメントに関してデータ転送が終了したときに、上記の第1のレジスタに上記のアドレスの値を設定する、
請求項3に記載のSIMD型マイクロプロセッサである。
【0013】
本発明に係る請求項5に記載のSIMD型マイクロプロセッサは、
上記データ転送装置が、
データ転送のときに転送が終了されるべきプロセッサエレメントのアドレスをデータとして設定する第2のレジスタと、
故障していないプロセッサエレメントのアドレスを発行した時にカウントアップする第1のカウンタとを含み、
上記の第1のカウンタの値が上記の第2のレジスタの値に等しくなったとき、そのときの上記データ転送装置の接続する外部メモリのアドレスの値が保持され、
全プロセッサエレメントに関してデータ転送が終了したときに、上記の第2のレジスタに上記外部メモリのアドレスの値を設定する、
請求項1に記載のSIMD型マイクロプロセッサである。
【0014】
本発明に係る請求項6に記載のSIMD型マイクロプロセッサは、
上記データ転送装置が、別のデータ転送装置と同期を取ってデータ転送を行うように構成され、
別のデータ転送装置が転送しているデータと、各プロセッサエレメントが故障しているか否かを示す記憶部のデータとの論理和によって、
データの転送の抑止が制御される、
請求項1に記載のSIMD型マイクロプロセッサである。
【0015】
【発明の実施の形態】
まず、本発明に係る好適な実施の形態を説明する前提として、図1、図2及び図3により、SIMD型マイクロプロセッサ2、メモリ4及びメモリコントローラ6の概略の構成を示す。
【0016】
図1は、本発明に係るSIMD型マイクロプロセッサ2、メモリ4及びメモリコントローラ6の概略ブロック図である。
【0017】
<グローバルプロセッサ>
このブロックは、いわゆるSISD(Single InstructionStream,Single Data Stream)タイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し各種制御信号を生成する(図2参照)。この制御信号は内蔵する各種ブロックの制御以外にもレジスタファイル16、演算アレイ14、及びメモリコントローラ6に供給される。また、GP(グローバルプロセッサ)命令実行時は内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理をおこなう。
【0018】
<レジスタファイル>
PE(プロセッサエレメント)命令で処理されるデータを保持している。PE命令はSIMD(Single Instruction Stream, Multiple Data Stream)タイプの命令であり、レジスタファイル16に保持されている複数のデータに対し同時に同じ処理をおこなう。このレジスタファイル16からのデータの読み出し/書き込みの制御はグローバルプロセッサ10からの制御によっておこなわれる。読み出されたデータは演算アレイ14に送られ、演算アレイ14での演算処理後にレジスタファイル16に書き込まれる。
【0019】
また、レジスタファイル16は外部インタフェース8を介してプロセッサ外部のメモリコントローラ6からのアクセスが可能であり、グローバルプロセッサ10の制御から独立して、外部から特定のレジスタを読み出し/書き込みが行なわれる。
【0020】
<演算アレイ>
PE命令の演算処理がおこなわれる。処理の制御はすべてグローバルプロセッサ10から行なわれる。
【0021】
<メモリコントローラ>
外部ポートにクロックとアドレス、リード/ライト制御を出力し、メモリ4にクロックとアドレス、リード/ライト制御を出力することで、任意のPEのレジスタ20とメモリ4間で、データ転送を行う。処理の制御はすべてグローバルプロセッサ10から行なわれる。
【0022】
図2は、本発明に係るSIMD型マイクロプロセッサ2のブロック図である。
【0023】
グローバルプロセッサ10には、本プロセッサのプログラム格納用のプログラムRAMと演算データ格納用のデータRAMが内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ退避、復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI、LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)が内蔵されている。
【0024】
これらのレジスタと図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路を使用してGP命令の実行がおこなわれる。
【0025】
また、PE命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、PE演算制御回路を使用して、レジスタファイル16の制御と演算アレイ14の制御をおこなう。
【0026】
レジスタファイル16には1つのPE単位に8ビットのレジスタ20が32本内蔵されており、256PE分の組みがアレイ構成になっている。レジスタ20は同一PE内ではR0、R1、R2、・・・R31と呼ばれる。それぞれのレジスタ20は演算アレイ14に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバスで演算アレイからアクセスされる。32本のレジスタの内、24本(R0〜R23)は外部インタフェース8を介してプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタ20を読み書きできる。
【0027】
レジスタ20の外部からのアクセスでは1つの外部ポートで各PEの1つのレジスタがアクセス可能である。その際には、外部から入力されたアドレスでPEの番号(0〜255)を指定する。したがって、レジスタアクセスの外部ポートは全部で24組搭載されている。
【0028】
なお、PEに対しては順に(例えば、図2の左から)0乃至255の番号が付されている。PEの番号の小さい方向を「前方」、PEの番号の大きい方向を「後方」と称している。
【0029】
また、上記の外部からのアクセスは、隣接する偶数番号目のPEと奇数番号目のPEとの一対の括りで、2つの(同じ)レジスタ20に対して同時になされる。つまり、1回のアクセスで16ビットデータがアクセスされる。
【0030】
演算アレイ14は、16ビットALU18、16ビットAレジスタ22、及びFレジスタ24を内蔵している。PE命令による演算は、レジスタ20から読み出されたデータ若しくはグローバルプロセッサ10から与えられたデータをALU18の片側の入力とし、Aレジスタ22の内容をもう片側の入力とする。その結果は、Aレジスタ22に格納される。即ち、Aレジスタ22のデータと、R0〜R31レジスタ20若しくはグローバルプロセッサ10から与えられたデータとの演算が、行なわれることとなる。
【0031】
レジスタ20とALU(演算部)18との接続に、7to1のマルチプレクサ26を置いている。並列するPEに関して、前方に1つ、2つ若しくは3つ離れたPEのレジスタ20のデータ、後方に1つ、2つ若しくは3つ離れたPEのレジスタ20のデータ、又は中央(即ち、当該ALU18)のPEのレジスタ20のデータを、演算対象として選択している。また、レジスタ20の8ビットのデータは、シフト&拡張回路により任意ビットの左シフトしてALU18に入力する。さらに、図2では示していない8ビットの条件レジスタ(T)(図3参照)により、PEごとに演算実行の無効/有効の制御をしており、特定のPEだけを演算対象として選択できる。
【0032】
≪第1の実施の形態≫
図3は、本発明の第1の実施の形態に係るSIMD型マイクロプロセッサ2の部分ブロック図である。図3のプロセッサ2は、いくつかのPEに故障が生じた場合に、それら故障のあるPEを除き更にプロセッサエレメントブロック12を再構成し、よって、プロセッサ全体の救済をすることが可能である。
【0033】
各PEは、電源起動時又はシステム初期化時において、グローバルプロセッサ10によって正常に動作するかどうかのセルフテストが行われる。セルフテストの結果、正常なPEには(後で説明する)不良フラグ30を“0”に設定し、故障しているPEには不良フラグ30を“1”に設定し、よってプロセッサエレメントグループ12の再構成が行われる。その後、実際のプログラムがプログラムRAMにダウンロードされプログラムが実行される。セルフテストのためのプログラムはROMに内蔵されているか、若しくは上位のホストプロセッサよりダウンロードされる。
【0034】
各PEは、不良フラグ30という1ビットのレジスタを内蔵している。不良フラグ30にはセルフテストの結果が設定される。不良フラグ30はシフトレジスタで構成され、グローバルプロセッサ10より値が設定され得る。不良フラグ30の値は、上記の条件レジスタ(Tレジスタ)32に入力されており、図5のように故障しているPEでは常に演算実行が無効になるように制御される。
【0035】
各PEは、並列するPEに関して、前方に1つ、2つ若しくは3つ離れたPEのレジスタ20のデータ、後方に1つ、2つ若しくは3つ離れたPEのレジスタ20のデータ、又は中央(即ち、当該ALU18)のPEのレジスタ20のデータを、演算対象として選択することが可能なように経路を有している。更に各PEは、これら対象となるべき7つのPEの内に故障しているものがあればそれを無視するため、予備の配線経路を前方に1つ、後方に1つ有している。
【0036】
すなわち、故障しているPEが無いならば、各PEは、並列するPEに関して、前方に1(L1と略記)、2(L2と略記)、3(L3と略記)、4(L4と略記)だけ離れたPEに係るデータが、後方に1(U1と略記)、2(U2と略記)、3(U3と略記)、4(U4と略記)だけ離れたPEに係るデータが、機能上参照可能である。
【0037】
参照するPEを選択するマルチプレクサ(PE選択部)26には、それ自身のPEのレジスタのデータを参照する経路以外に、上記、前方、後方に4つまで離れたPEのレジスタからのデータを参照する経路と、図示していないが、それ自身のPEよりも1、2、3だけ前方のPEの不良フラグ30からの経路と1、2、3だけ後方のPEの不良フラグ30からの経路とが入力されている。さらにグローバルプロセッサ10より、現在実行している命令が自身のPEから見て、前方、後方あるいは自分自身のどのレジスタのデータを参照する命令であるかを示す制御信号が入力されている。
【0038】
PE選択部26では、前後の不良フラグ30と制御信号とから、故障しているPEを避けて配線経路を開くように制御される。例えば、自身のPEの1つ前のPEが故障している場合に、1つ前のPEを参照する命令を発行している場合には、2つ前のPEからの経路を開くように、2つ前のPEを参照する命令を発行している場合には3つ前のPEからの経路を開くように制御される。
【0039】
図4は、あるPEの前方、あるいは後方の、3つのPEの中に故障があった場合に行なわれる制御のための概略の回路図である。
【0040】
C_en、L1_en〜L3_en、U1_en〜U3_enは、現在実行中の命令が、どのPEに格納されているデータを参照するかを示しており、順に、C_en(自身のPE参照)、L1_en(1つ前方のPE参照)、L2_en(2つ前方のPE参照)、L3_en(3つ前方のPE参照)、U1_en(1つ後方のPE参照)、U2_en(2つ後方のPE参照)、U3_en(3つ後方のPE参照)である。
【0041】
C_enable、L1_enable〜L4_enable、U1_enable〜U4_enableは、各PEで実際に開かれる配線経路がどれであるかを示しており、C_enable(自身のPEを参照するゲートが開く)、L1_enable(1つ前のPEを参照するゲートが開く)、L2_enable(2つ前のPEを参照するゲートが開く)、L3_enable(3つ前のPEを参照するゲートが開く)、L4_enable(4つ前のPEを参照するゲートが開く)、U1_enable(1つ後のPEを参照するゲートが開く)、U2_enable(2つ後のPEを参照するゲートが開く)、U3_enable(3つ後のPEを参照するゲートが開く)、U4_enable(4つ後のPEを参照するゲートが開く)である。
【0042】
図3に戻る。各PEは自身が何番目のPEであるかを示すIDレジスタ34を更に有している。IDレジスタ34の値は、データバスを介してALU18に入力されており、ALU18において(図3の)第2の即値データバス36に供給される即値データと比較した結果を、Tレジスタ32に反映することが可能なようになっている。
【0043】
IDレジスタ34の値は、セルフテストの際に故障しているとされたPEを除いて、0から順にインクリメントした数が格納される。画像処理においては、ディザテーブルのロードなどのように、例えば4つおきのPEに同一の値をロードするといった処理が必要になるが、IDレジスタ34を内蔵することによって故障しているPEがあっても対応が可能となる。かかる構成は、4つの連続したPEの中に2つ以上の故障(のPE)がなければ、プロセッサ全体が機能できる。確かに、予備の配線経路を増設すれば、2つ以上の故障がある場合でも対応可能であるが、それに伴う回路規模の増加と故障頻度とを衡量すると、本実施の形態程度が最適であると思料される。図6において、セルフテストのフローを示す。
【0044】
また、本実施の形態のプロセッサ2では、外部インタフェース8を介して、プロセッサ外部のメモリコントローラ6とPEのレジスタファイル16との間でのデータ転送が可能であるが、PEを特定するためのアドレス、リード/ライト制御、クロックなどの信号は、後で説明するメモリコントローラ6の適切な設定により、故障しているPEのことが考慮される必要がない。例えば、冗長なPEを設けてアドレス制御を入れ替えるなどの操作は全く不要である。
【0045】
図7は、本発明の第1の実施の形態に係るメモリコントローラ6の構成を示す。メモリコントローラ6は、メモリ4にデータ書き込みを行うためのライトバッファ部40、メモリ4からデータ読み取りを行うリードバッファ部42、PEのレジスタファイル16への制御を行っている外部インタフェース制御部44、メモリ4への制御を行うRAM制御部46、及びシーケンスユニット(SCU)48より構成されている。メモリコントローラ6は、外部インタフェース8内のデータ転送ポートを介してSIMD型マイクロプロセッサ2のレジスタファイル16と接続し、レジスタファイル16からメモリ4へのデータ転送、及びメモリ4からレジスタファイル16へのデータ転送を行っている。このデータ転送ポートは、出力ポートと入力ポートを備える。また、メモリコントローラ6が制御するレジスタは、I/O空間にマッピングされており、グローバルプロセッサ10からの指示に従いリード・ライト可能となっている。
【0046】
ライトバッファ部40には外部インタフェース8の出力ポートが接続され、リードバッファ部42には外部インタフェース8の入力ポートが接続される。データ転送ポートは、それぞれ(PE番号での)偶数PE用と奇数PE用の入力、出力ポートを独立して有しており、1サイクルで一度に偶数と(その直後方の)奇数との1組のPEのデータにアクセス可能である。一方、ライトバッファ部40・リードバッファ部42とメモリ4との間のデータバスは、それぞれ4PE分のデータ幅で構成されており、1サイクルで一度に4PE分のデータをアクセスできる。なお、本実施の形態では、1PE分のデータは8ビットということになる。よって、外部インタフェース8とライトバッファ部40及びリードバッファ部42との間のデータバスのビット幅は16ビットで構成される。メモリコントローラ6とメモリ4との間のデータバスのビット幅は32ビットで構成される。
【0047】
この結果、外部インタフェース8のデータ転送ポートとメモリコントローラ6間の転送を2回行う間に、メモリ4とメモリコントローラ6間の転送を1回実行すればよいことになる。
【0048】
メモリコントローラ6のライトバッファ部40は、外部インタフェース8より出力されたデータを2回取り込み、4個のPE分のデータに整形した後、メモリ4に転送する動作を行っている。また、リードバッファ部42は、メモリ4から読み出した4個のPE分のデータを2回に分けて、外部インタフェース8に転送する動作を行っている。
【0049】
図8は、第1の実施の形態のメモリコントローラ6を用いて、ライト転送(PEのレジスタファイルからメモリへの転送)の場合、及びリード転送(メモリからPEのレジスタファイルへの転送)の場合に、どのようにデータを転送するかを示している。
【0050】
メモリコントローラ6はデータ転送を行う場合に、各PEが故障しているかどうかを示す転送抑止データを用いてデータ転送を行っている。転送抑止データはデータ転送と同期して、後述する故障レジスタから読み出され、故障しているPEに関してデータ転送を抑止するために用いられる。転送抑止データは、正常なPEでは“0”、故障しているPEでは“1”が読み出される。ライト転送時には、転送抑止データが“0”であるPEのデータのみがメモリ4に格納され、転送抑止データが“1”であるPEのデータはメモリ4に格納されず間引かれる。またリード転送時には、転送抑止データが“1”であるPEに対しては一つPE番号が少ないPEに対して転送したデータと同一のデータを送るようにし、メモリ4からのデータを更新しないように(進めないように)する。
【0051】
図9は、本発明の第1の実施の形態に係るメモリコントローラ6の概略ブロック図である。ライトバッファ部40及びリードバッファ部42は、偶数PEと奇数PEとの専用のポートを持っていて、それぞれ1サイクルで2PE分のデータをアクセスする。
【0052】
ライトバッファ部40は、4PE分のデータがバッファに格納されると、メモリ4にライトアクセスを行うように構成されている。外部インタフェース8の転送ポートからライトバッファ部40に与えられる2PE分のデータは、まず初段のフリップフロップ402に格納された後、次段のフリップフロップ404に転送される。続いて、与えられる2PE分のデータは初段のフリップフロップ402に格納される。そして、フリップフロップ(402、404)に格納された4PE分のデータがそれぞれラッチ406に格納される。ライトバッファ部40は、4PE分のデータがラッチ406に格納されると、メモリにライトアクセスを行う。
【0053】
リードバッファ部42は、メモリ4から4PE分読み出されたデータをバッファとしてのフリップフロップ422に格納する。4PE分のデータから2PE分がマルチプレクサ424により選択され、ラッチ426に格納される。このラッチ426に格納されたデータが、外部インタフェース8を介してSIMD型マイクロプロセッサ2のレジスタファイル16に転送される。4PE分のデータの転送が終わると再びメモリ4にリードアクセスを行う。メモリ4は一度に4PE分のデータをアクセスできるので、2サイクルで一度のアクセスを実現できればSIMD型マイクロプロセッサ2とのインタフェースが取れることとなり、メモリ4のアクセスタイムの制限を緩和できる。
【0054】
RAM制御部46は、後述するシーケンスユニット48からの制御線によって制御され、メモリ4へのクロック、アドレス、リード/ライト制御、バイトセレクトを出力する。RAM制御部46は、RAMアドレス加減器462、ライトポインタレジスタ464、リードポインタレジスタ466、及びマルチプレクサ460等のブロックを含む。各ブロックはアドレス設定用バス(以降、ABと略す)468を介して接続されている。
【0055】
ライトポインタレジスタ464は、次にメモリ4にライトすべきポインタを格納しているレジスタであり、リードポインタレジスタ466は、同様に次にメモリ4からリードすべきポインタを格納しているレジスタである。ライトポインタレジスタ464、リードポインタレジスタ466は、そのポインタへのメモリ4のアクセスの後、RAMアドレス加減器462で更新されたポインタがAB468から入力され格納される。RAMアドレス加減器462は、ライトアクセス時にはライトポインタレジスタ464、リードアクセス時にはリードポインタレジスタ466の値にRAMアクセスサイズに応じた数を、FIFO動作モード時は加算、LIFO動作モード時は減算した値をAB468に出力する。
【0056】
外部インタフェース制御部44は、図7にも示したように外部インタフェース8にPEのアドレス、クロック、リード/ライト制御信号を出力するものであり、SIMD型マイクロプロセッサ2における各PEのレジスタ20のデータを読み書きすることを可能にしている。この外部インタフェース制御部44は、PEアドレスカウンタ4402、転送数カウンタ4404、有効データ数カウンタ4406、及び故障レジスタ部4408とからなる。PEアドレスカウンタ4402は、データ転送開始時に転送開始PEアドレスレジスタ4414に格納されている値が初期ロードされるアップカウンタであり、データ転送するPEのアドレスを生成する。転送数カウンタ4404は、転送するデータ数を初期ロードできるダウンカウンタであり、転送数を管理するのに使用される。転送数カウンタ4404にはライト転送の場合はライト数レジスタ4410の値が初期ロードされ、リード転送の場合はリード数レジスタ4412の値が初期ロードされる。
【0057】
有効データ数カウンタ4406は、メモリ4に格納済みの有効なデータ数を管理するカウンタであり、メモリ4からPEのレジスタファイル16にデータ転送する時に、転送数よりも有効データ数の方が多い時にのみ転送が実施されるようになっている。このように構成することで、データの欠落を防止している。
【0058】
故障レジスタ部4408には、各PEが故障しているかどうかが記録されている故障レジスタが格納されている。本実施の形態では16ビット幅のレジスタ16本(故障レジスタ0〜故障レジスタ15)で構成されており、電源起動時もしくはシステムの初期化時において各PEをテストした結果がGPから書き込まれる。つまり、故障レジスタ0にて、ビット0にはPE0の故障情報(正常:0、故障:1)が、ビット1にはPE1の故障情報(正常:0、故障:1)が、・・・(中略)・・・、ビット15にはPE15の故障情報(正常:0、故障:1)が格納される。同様に故障レジスタ1には、PE16〜PE31の故障情報が格納される。・・・(中略)・・・、故障レジスタ15には、PE240〜PE255の故障情報が格納される。
【0059】
故障レジスタの値は、PEアドレスカウンタ4402の値によって図10のように抽出されて、現在アクセスしている2PE分の故障情報が転送抑止データとしてシーケンスユニット48に出力される。このとき、転送数カウンタ4404及び有効データ数カウンタ4406の値のインクリメント(デクリメント)値を決定するのにも用いられる。
【0060】
シーケンスユニット48は、アドレスデコーダ、制御レジスタとからなる。グローバルプロセッサ10からは、I/O空間にマッピングされた制御レジスタをアクセスすることで、メモリコントローラ6全体の制御を行ったり、メモリコントローラ6の内部状態を監視することが可能になっている。ライト転送時には、シーケンスユニット48は、転送抑止データの値を検出して、転送抑止データが“0”である場合には、データをライトバッファ部内のバッファに書き込ませる。また、転送抑止データが“1”である場合には、データをライトバッファ部内のバッファに格納することを抑止する。ライトバッファ部40は、転送開始時及び転送終了時の例外を除き、4PE分のデータが格納されるまで、メモリ4への転送要求をRAM制御部46に対して出力しないため、ライトポインタレジスタ464の更新とメモリ4へのクロック、リード・ライト制御、バイトセレクトの出力は4PE分のデータがライトバッファ部40に格納されるまで行われない。SIMD型マイクロプロセッサ2のデータ転送ポートからのデータリードは、転送抑止データに拠らず継続する。またリード転送時には、シーケンスユニット48は、上記転送抑止データの値を検出して、“1”が立っている場合は、リードバッファ部42のマルチプレクサ424を制御して、1つ前のPEアドレスを持つPEのレジスタに転送すべきデータを、再度出力できるようにしている。リードバッファ部42は、転送開始時と転送終了時の例外を除き、メモリ4からリードされた4PE分のデータが全て不必要になるまで、RAM制御部46に対してメモリ4へのリードデータ転送要求を出力しないため(例えば、転送抑止データが常に“0”であれば2回のデータ転送ポートへのアクセスがあるまで、であり、逆に転送抑止データに“1”が立っている間はデータが不必要になることはない)、リードポインタレジスタ466の更新とメモリ4へのクロック、リード・ライト制御、バイトセレクトの出力は4PE分のデータが全て不必要になるまで行われない。SIMD型マイクロプロセッサ2の外部インタフェース8へのデータライトは転送抑止データに拠らず継続する。
【0061】
本実施の形態では、故障レジスタを外部インタフェース制御部44に内蔵したが、メモリコントローラ6が複数個ある場合には故障レジスタを複数個のメモリコントローラ6で参照できるように構成することでレジスタ数が削減できる。
【0062】
本実施の形態に係る構成によれば、故障しているPEがあっても、レジスタファイル16のアドレス、リード/ライト制御信号を再構成することなく、レジスタファイル16とメモリ4との間で正しくデータ転送を行うことが可能となる。
【0063】
≪第2の実施の形態≫
図11は、本発明の第2の実施の形態に係るメモリコントローラ6の外部インタフェース制御部44の概略ブロック図である。
【0064】
上記外部インタフェース部44は、図9の第1の実施の形態の構成に加えて、実効アドレスカウンタ4418と比較器4416とが設けられている。実効アドレスカウンタ4418は、正常なPEにアクセスしている時のみカウントアップするアップカウンタである。比較器4416は、実効アドレスカウンタ4418の値と転送開始PEアドレスレジスタ4414とが比較され、一致するまでは故障レジスタ部4408に対して転送抑止制御信号を出力するように構成される。転送抑止制御信号は、故障レジスタから選択(抽出)されたデータと論理和されることにより転送抑止データが生成される。更に転送抑止制御信号は、転送数カウンタ4404と有効データ数カウンタ4406のカウントアップ、カウントダウンを停止させるために用いられる。そのための回路構成は、図16に示される。PEアドレスカウンタ4402は、データ転送開始時に“0”が初期ロードされるアップカウンタで構成される。
【0065】
図9の第1の実施の形態の構成では、転送開始PEアドレスとして、故障しているPEの数だけのオフセットをつけた値が設定される必要があるが、第2の実施の形態の構成では、故障の無いPEにアクセスするときにカウントアップされる実効アドレスカウンタ4418が設定されているので、PEに係る故障を考慮せずに転送開始アドレスを設定することが可能となる。ただし転送開始PEアドレスレジスタ4414が“0”でない場合でも、常にPE番号「0」から転送開始されるため転送にかかる時間が若干増加する。
【0066】
≪第3の実施の形態≫
図12は、本発明の第3の実施の形態に係るメモリコントローラ6の外部インタフェース制御部44の概略ブロック図である。
【0067】
上記外部インタフェース制御部44は、PEアドレスカウンタ4402の初期ロード値として“0”もしくは転送開始PEアドレスレジスタ4414の値のどちらかが選択され得るようなマルチプレクサ4420が備わる。また、実効アドレスカウンタ4418の値と転送開始PEアドレスレジスタ4414の値とが(比較して)等しいときに、PEアドレスカウンタ4402の値を転送開始PEアドレスレジスタ4414にリロード(再ロード)する構成となっている。
【0068】
データ転送の際には、最初のデータ転送では、転送開始PEアドレスレジスタ4414に所定の値を設定し、PEアドレスカウンタ4402に初期ロードの値“0”を設定する。その後、転送開始PEアドレスレジスタ4414の値と実効アドレスカウンタ4418の値とが等しくなったときに、PEアドレスカウンタ4402の値がリロードされることになる。つまり、故障しているPEの数だけのオフセットをつけた値が転送開始PEアドレスレジスタ4414に格納されることになる。よって、2回目からのデータ転送では、PEアドレスカウンタ4402の初期ロード値を転送開始PEアドレスの値とすればよく、更に、転送開始PEアドレスレジスタ4414のリロードが実行されないようにすればよい。
【0069】
第3の実施の形態では、複数回繰り返されるデータ転送の開始時のみ転送にかかる時間が若干増加するだけで、2回目以降の転送ではデータ転送にかかる時間は第1の実施の形態の場合と同様に短縮される。
【0070】
ここで、主走査方向の画素数よりもPEの数が少ないSIMD型マイクロプロセッサ2を用いる場合の、画素データの転送方法について説明する。第3の実施の形態が利用される。
【0071】
図13は、主走査方向の画素数よりもPEの数が少ないSIMD型マイクロプロセッサ2を用いた場合の、画素データの転送方法についての説明図である。
【0072】
主走査方向の画素数よりPE数が少ない場合には、主走査方向の画素データが適宜分割され、SIMD型マイクロプロセッサ2は必要分演算処理を繰り返す。メモリコントローラ6は、SIMD型マイクロプロセッサ2のPEのレジスタファイル16に、分割された画素データをメモリ4から与える。
【0073】
通常、SIMD型マイクロプロセッサ2を用いた画像処理では、フィルター処理のような注目画素前後の画素データを参照する処理を含む処理を実施すると、「SIMD」(即ち、並列する全PEの並び)の両端のPEには無効なデータが格納されることになる。このため、PEのレジスタファイル16からメモリ4にデータを格納する際には、両端のデータを除いて格納する必要がある。一方、メモリ4からPEのレジスタファイル16にデータを転送する際には、注目画素前後の参照用の画素データも併せて転送する必要がある。つまり、フィルター処理などの重み付け処理における画素データの転送は、以下の順序で行われることになる。ここでは、参照用画素の個数をa個とする。
【0074】
(1)処理前画素データをメモリ4からSIMD型マイクロプロセッサ2のPEの対応するレジスタファイル16へ転送する。
(2)SIMD型マイクロプロセッサ2による画像処理を行う。このとき、「SIMD」(並列する全PEの並び)の両端a個のデータは、参照画素不存在により無効になる。つまり、図13における斜線部を施した部分が有効画素数になる。
(3)処理後画素データをSIMD型マイクロプロセッサ2からメモリ4に転送する。このとき、両端a個の画素を除いた有効画素がメモリ4に転送される。
【0075】
図13を参照して、メモリ4とSIMD型マイクロプロセッサ2との間の画素データの転送について説明する。SIMD型マイクロプロセッサ2は、n個のPE、即ち、PE0からPEn−1を備え、これらPEにメモリ4から画素データを送り、画像処理を行った後、これらPEからメモリ4に画素データが転送される。
【0076】
メモリ4には、画像処理前の画素データが、順にアドレス0から格納されているものとする。まず、最初の転送、すなわち、図中の1「SIMD」目の転送では、SIMD型マイクロプロセッサ2のPE並びの両端a個を参照画素として転送している。
【0077】
処理後の画素データをメモリ4に転送する場合、前後それぞれa個の画素データは無効なので、転送する画素データはPE0からPEn−1までのn画素の内、a〜(n−a−1)までの(n−2×a)画素である。
【0078】
2「SIMD」目の転送では、(n−a)〜(2n−3×a−1)までの画素を注目画素として処理を行うため、参照画素として(n−2×a)〜(n−a−1)及び、(2n−3×a)〜(2n−2×a−1)の画素データを併せて転送している。データ処理後、(n−a)〜(2n−3×a−1)の(n−2×a)画素がメモリ4に格納される。
【0079】
主走査方向の分割数が多い場合も、同様の処理を繰り返すだけである。以上の処理を実現するには、メモリ4へのデータライトの場合には、本実施の形態のPEの外部インタフェース制御部44において、転送開始PEアドレスレジスタ4414に“a”を設定し、転送数カウンタ4404に“(n−2×a)”を設定すればよい。
【0080】
上記の設定数は全てPEアドレスを基準としているため、「SIMD」ごとに設定を変更する必要がない。また、メモリ4からのデータリードの場合には、リードポインタレジスタ466を転送終了後に戻すという操作が必要である。上記の例では(n−2×a)に戻すことになる。第1の実施の形態に係るRAM制御部46においては、転送が終了した後に、リードポインタレジスタ466の値をグローバルプロセッサ10から設定する必要がある。また、メモリ4へのデータライトの場合には、ライトポインタレジスタ464への操作を行う必要はない。
【0081】
≪第4の実施の形態≫
図14は、本発明の第4の実施の形態に係るメモリコントローラ6の外部インタフェース制御部44の概略ブロック図である。図15は、本発明の第4の実施の形態に係るメモリコントローラ6のRAM制御部46の概略ブロック図である。
【0082】
外部インタフェース制御部44は、第3の実施の形態の構成と同一であるが、PEアドレス及び実効アドレスをRAM制御部46に対して出力する構成となっている。図15に示すRAM制御部46は、図9に示したRAM制御部46に、さらにリードオフセット生成器4610を設けたものである。このRAM制御部46は、リードオフセット生成器4610によりメモリ4からSIMD型マイクロプロセッサ2のPEの各レジスタファイル16へのデータ転送において、PEへの転送終了後に、リードポインタレジスタ466の値を戻すことができるように設定されている。
【0083】
リードオフセット生成器4610は、最初の転送の際には、マルチプレクサ4614により選択された実効アドレスを監視し、実効アドレスが設定された値と等しくなると、実効アドレスの値をリードオフセット値レジスタ4612にリロードし、またその時のリードポインタレジスタ466の値を保持し、設定された転送数を送り終えるまで転送を継続する。転送が終了すると、保持しておいた値をリードポインタレジスタ466にリロードする。2回目以降の転送の際には、マルチプレクサ4614により(実効アドレスに代わり)PEアドレスが選択されてリードオフセット生成器4610に入力される。またリードオフセット値レジスタ4612自身のリロードは行われないように制御するのがよい。上記図13で示す例では、“(n−2×a−1)”を設定することになる。設定値は全てPEアドレスを基準としているため、第1の実施の形態のRAM制御部46のように、「SIMD」ごとに設定を変更する必要がない。
【0084】
第4の実施の形態によると、図11の第2の実施の形態の場合と同様に、最初の転送の時のみPEアドレスカウンタ4402の初期ロード値として“0”を選択するだけでよいので、リードオフセット機能を用いる必要のある場合(即ち、フィルタ処理などのように左右画素参照の処理があるため、画像データを「SIMD」ごとにオーバラップさせた形で処理していく必要がある場合)にも、故障しているPEのことを考慮せずに処理を行うことができる。
【0085】
≪第5の実施の形態≫
図17は、本発明の第5の実施の形態に係るメモリコントローラ6の故障レジスタ部4408の概略ブロック図である。
【0086】
メモリコントローラ6には、ライト転送時に、隣接し合う偶数番号のPEと奇数番号のPEの、それぞれのデータを間引くかどうかを決定する外部ライト制御信号2本と、リード転送時に、隣接し合う偶数番号のPEと奇数番号のPEの、それぞれのデータを書き込む際に前と同じデータを重複して書き込むかどうかを決定する外部リード制御信号2本とが、入力されている。
【0087】
ライト転送において変倍を行う場合には、間引きライト信号がイネーブルとなり、故障レジスタより選択(抽出)されたデータと、メモリコントローラ6外部より入力された外部ライト制御信号との論理和が、転送抑止データとして出力される。リード転送において変倍を行う場合には、重複リード信号がイネーブルになり、故障レジスタより選択(抽出)されたデータと、メモリコントローラ6外部より入力された外部リード制御信号との論理和が、転送抑止データとして出力される。
【0088】
また、図示していないが、メモリコントローラ6は、外部ライト制御信号及び外部リード制御信号との同期を取るため、転送を開始するタイミングを取るための外部端子を有している。転送を開始する外部同期信号はシーケンスユニット48に入力されており、同期信号がアサートされるとシーケンスユニット48は転送を開始する。
【0089】
第5の実施の形態によると、故障しているPEがあっても、デジタルコピアやファクシミリなどでよく行われる変倍処理を行うことが可能となる。
【0090】
図18の上側は、デジタルコピアやファクシミリなどでよく行われる変倍処理の内、縮小を実現するための間引きライト動作について図示する。図18の上側では、PE0、PE2、PE3、PE5、PE6、・・・などの画素データはそのままメモリ4に格納され、PE1、PE4、PE7、・・・などの画素データがメモリ4に格納されずに間引かれている。
【0091】
図18の下側は、故障しているPEが有る場合の動作について図示したものである。図では、PE2、PE4、PE8、・・・に故障がある場合につき図示している。故障しているPEがある場合には、SIMD型マイクロプロセッサは故障しているPEを飛ばして再構成されるので、ライト制御データは図のように格納されていることになる。また画像データの方も同様に図のように格納されている。
【0092】
ライト制御データと故障PE情報との論理和を転送抑止データとすると、図のようにPE1、PE2、PE4、PE6、PE8のデータが間引かれることになり、メモリ4に格納されるデータは故障のない場合のデータの場合と全く同一であることがわかる。
【0093】
図19の上側は、デジタルコピアやファクシミリなどでよく行われる変倍処理の内、拡大を実現するための重複リード動作について図示する。図19の上側では、PE1、PE4、PE7、・・・などの画素データが直前のPEである、PE0、PE3、PE6に格納されるデータと同じ値のデータとなっている。
【0094】
図19の下側は、故障しているPEが有る場合の動作について図示したものである。図では、PE2、PE4、PE8、・・・に故障がある場合につき図示している。故障しているPEがある場合には、SIMD型マイクロプロセッサは故障しているPEを飛ばして再構成されるので、リード制御データは図のように格納されていることになる。また画像データの方も同様に図のように格納されている。
【0095】
リード制御データと故障PE情報との論理和を転送抑止データとすると、図のようにPE1、PE2、PE4、PE6、PE8に格納されるデータが直前のPEのデータと重複することになり故障のない場合にPEのレジスタファイルに格納されるデータと全く同一であることがわかる。(故障のあるPEを飛ばして順番にデータが格納されている。)
【0096】
つまり、第5の実施の形態によれば、故障しているPEがあっても変倍を正しく行うことが可能であることがわかる。
【0097】
【発明の効果】
本発明を利用することにより、以下のような効果を得ることができる。
【0098】
PEの故障診断を行ない、故障しているPEを除いてデータ転送を行うことができる。よって、故障しているPEがあってもSIMD型マイクロプロセッサを正常に動作させることができる。
【0099】
また、データ転送を行う場合に、データ転送を開始するPEあるいはデータ転送を終了するPEを指定することができるため、PE数が処理を行う画素データよりも少ない場合にデータのつなぎ目を考慮してデータ転送を行うことが可能となる。その場合、2回目以降のデータ転送においては、転送を開始するPEのアドレスを指定することもできるため、データ転送に必要なサイクル数を少なくできる。
【0100】
SIMD型マイクロプロセッサにおいて、故障しているPEがあっても画像処理の変倍処理を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明に係るSIMD型マイクロプロセッサ、メモリ及びメモリコントローラの概略ブロック図である。
【図2】本発明に係るSIMD型マイクロプロセッサのブロック図である。
【図3】本発明の第1の実施の形態に係るSIMD型マイクロプロセッサの部分ブロック図である。
【図4】本発明の第1の実施の形態に係るSIMD型マイクロプロセッサにおいて、あるPEの前方、あるいは後方の、3つのPEの中に故障があった場合に行なわれる制御のための概略の回路図である。
【図5】不良フラグが入力される部分のTレジスタの回路である。
【図6】不良フラグ確定のためのセルフテストのフローチャートである。
【図7】本発明の第1の実施の形態に係るメモリコントローラのブロック図である。
【図8】第1の実施の形態のメモリコントローラを用いて、ライト転送(PEのレジスタファイルからメモリへの転送)の場合、及びリード転送(メモリからPEのレジスタファイルへの転送)の場合に、どのようにデータを転送するかを示す模式図である。
【図9】本発明の第1の実施の形態に係るメモリコントローラの概略ブロック図である。
【図10】転送抑止データを生成する回路である。
【図11】本発明の第2の実施の形態に係るメモリコントローラの外部インタフェース制御部の概略ブロック図である。
【図12】本発明の第3の実施の形態に係るメモリコントローラの外部インタフェース制御部の概略ブロック図である。
【図13】主走査方向の画素数よりもPEの数が少ないSIMD型マイクロプロセッサを用いた場合の、画素データの転送方法についての説明図である。
【図14】本発明の第4の実施の形態に係るメモリコントローラの外部インタフェース制御部の概略ブロック図である。
【図15】本発明の第4の実施の形態に係るメモリコントローラのRAM制御部の概略ブロック図である。
【図16】転送数カウンタと有効データ数カウンタのカウントアップ、カウントダウンを停止させるために、転送抑止制御信号を用いる回路の構成である。
【図17】本発明の第5の実施の形態に係るメモリコントローラの故障レジスタ部の概略ブロック図である。
【図18】デジタルコピアやファクシミリで行われる変倍処理の内、縮小を実現するための間引きライト動作の模式図である。
【図19】デジタルコピアやファクシミリで行われる変倍処理の内、拡大を実現するための重複リード動作の模式図である。
【符号の説明】
2・・・SIMD型マイクロプロセッサ、4・・・メモリ、6・・・メモリコントローラ、8・・・外部インタフェース、16・・・レジスタファイル、20・・・レジスタ、40・・・ライトバッファ部、42・・・リードバッファ部、44・・・外部インタフェース制御部、46・・・RAM制御部、48・・・シーケンスユニット。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a microprocessor, and more particularly, to a SIMD (Single Instruction-Stream Multiple Data-stream) microprocessor.
[0002]
[Prior art]
In the SIMD type microprocessor, the same arithmetic processing can be simultaneously performed on a plurality of data with one instruction. With this structure, the calculation is frequently used in applications related to processing that is the same but has a very large amount of data (for example, image processing in a digital copier or the like).
[0003]
In ordinary image processing in a SIMD microprocessor, high-speed processing is performed by arranging a plurality of processing units (Processor Elements [PE]; processor elements) in the main scanning direction and simultaneously executing the same calculation on a plurality of data. Calculation processing is possible.
[0004]
By the way, in recent years, the degree of integration of LSIs has been increasing due to the miniaturization of the manufacturing process, and the number of PEs can be increased even in SIMD type microprocessors. However, in a processor adopting a parallel processor configuration, such as an SIMD type, if even one of the plurality of arithmetic units has failed, it may not be possible to use the entire processor. Therefore, in the conventional SIMD type microprocessor, for example, a method of providing a redundant PE and replacing it with a faulty PE has been used.
[0005]
[0006]
In the prior arts shown in
[0007]
[Patent Document 1]
JP-A-9-22400
[Patent Document 2]
JP-A-9-288652
[Patent Document 3]
Patent No. 3005243
[Patent Document 4]
JP 2000-148998
[Patent Document 5]
JP-A-2002-169787
[Patent Document 6]
Special table 2001-527218
[0008]
[Problems to be solved by the invention]
An object of the present invention is to enable a SIMD microprocessor to perform data transfer even when a faulty PE occurs.
[0009]
[Means for Solving the Problems]
The present invention has been made to achieve the above object. The SIMD type microprocessor according to
It is a SIMD type microprocessor having a plurality of processor elements for processing a plurality of data. In the SIMD type microprocessor,
A data transfer device is connected to a data transfer port for externally accessing a general-purpose register included in each processor element,
The data transfer device has a storage unit that indicates whether each processor element has failed,
The data transfer device controls the data transfer to the failed processor element based on the content of the data in the storage unit.
[0010]
The SIMD type microprocessor according to
A self-test for checking whether or not each processor element operates normally is automatically executed in a timely manner.
The inspection result is automatically stored in the storage unit of the data transfer device.
An SIMD type microprocessor according to
[0011]
The SIMD type microprocessor according to
The data transfer device is:
A first register for setting, as data, an address of a processor element from which transfer is to be started at the time of data transfer;
A first counter that counts up when an address of a processor element that has not failed has been issued,
Inhibiting data transfer until the value of the first counter is equal to the value of the first register;
An SIMD type microprocessor according to
[0012]
The SIMD type microprocessor according to
When the value of the first counter becomes equal to the value of the first register, the value of the address of the processor element at that time is held,
When the data transfer is completed for all processor elements, the value of the address is set in the first register.
An SIMD microprocessor according to
[0013]
The SIMD type microprocessor according to
The data transfer device is:
A second register for setting, as data, an address of a processor element whose transfer is to be terminated at the time of data transfer;
A first counter that counts up when an address of a processor element that has not failed has been issued,
When the value of the first counter becomes equal to the value of the second register, the value of the address of the external memory connected to the data transfer device at that time is held,
When the data transfer is completed for all processor elements, the value of the address of the external memory is set in the second register.
An SIMD type microprocessor according to
[0014]
The SIMD type microprocessor according to
The data transfer device is configured to perform data transfer in synchronization with another data transfer device,
By the logical OR of the data being transferred by another data transfer device and the data of the storage unit indicating whether or not each processor element has failed,
Suppression of data transfer is controlled,
An SIMD type microprocessor according to
[0015]
BEST MODE FOR CARRYING OUT THE INVENTION
First, as a premise for describing a preferred embodiment according to the present invention, a schematic configuration of a
[0016]
FIG. 1 is a schematic block diagram of a
[0017]
<Global processor>
This block is a so-called SISD (Single Instruction Stream, Single Data Stream) type processor, has a built-in program RAM and data RAM, and decodes a program to generate various control signals (see FIG. 2). This control signal is supplied to the
[0018]
<Register file>
It holds data processed by PE (processor element) instructions. The PE instruction is a SIMD (Single Instruction Stream, Multiple Data Stream) type instruction, and performs the same processing on a plurality of data held in the
[0019]
The
[0020]
<Calculation array>
Operation processing of the PE instruction is performed. All control of the processing is performed by the
[0021]
<Memory controller>
By outputting a clock, an address, and read / write control to an external port and outputting a clock, an address, and read / write control to the
[0022]
FIG. 2 is a block diagram of the
[0023]
The
[0024]
The GP instruction is executed using these registers and an unillustrated instruction decoder, ALU, memory control circuit, interrupt control circuit, external I / O control circuit, and GP operation control circuit.
[0025]
When the PE instruction is executed, the control of the
[0026]
The
[0027]
In access from outside the
[0028]
The
[0029]
The above-mentioned external access is made simultaneously to two (same) registers 20 by a pair of adjacent even-numbered PEs and odd-numbered PEs. That is, 16-bit data is accessed by one access.
[0030]
The
[0031]
A 7-to-1
[0032]
<< 1st Embodiment >>
FIG. 3 is a partial block diagram of the
[0033]
Each of the PEs is subjected to a self-test by the
[0034]
Each PE has a built-in 1-bit register called a defective flag 30. The result of the self test is set in the failure flag 30. The failure flag 30 is formed of a shift register, and a value can be set by the
[0035]
Each PE is associated with the data of the
[0036]
That is, if there is no faulty PE, each of the PEs is located ahead (abbreviated as L1), 2 (abbreviated as L2), 3 (abbreviated as L3), 4 (abbreviated as L4) with respect to the parallel PEs. The data related to the PEs separated by only 1 (abbreviated as U1), 2 (abbreviated as U2), 3 (abbreviated as U3), and 4 (abbreviated as U4) are referred to functionally. It is possible.
[0037]
The multiplexer (PE selection unit) 26 for selecting the PE to be referred to refers not only to the path for referring to the data of the register of the PE itself but also to the data from the registers of the PEs up to four in the forward and backward directions. A path from the failure flag 30 of the PE, which is not shown, but one, two, and three ahead of the own PE, and a path from the failure flag 30 of the PE one, two, and three behind. Is entered. Further, a control signal is input from the
[0038]
In the
[0039]
FIG. 4 is a schematic circuit diagram for control performed when a failure occurs in three PEs in front of or behind a certain PE.
[0040]
C_en, L1_en to L3_en, and U1_en to U3_en indicate which instruction the currently executing instruction refers to data stored in which PE. In this order, C_en (refer to own PE) and L1_en (one forward) , L2_en (see two PEs ahead), L3_en (see three PEs ahead), U1_en (see one PE behind), U2_en (see two PEs behind), U3_en (see three PE behind) PE).
[0041]
C_enable, L1_enable to L4_enable, and U1_enable to U4_enable indicate which wiring path is actually opened in each PE, and C_enable (the gate that refers to the own PE is open) and L1_enable (the previous PE). L2_enable (the gate that refers to the two previous PEs is open), L3_enable (the gate that refers to the three previous PEs is open), L4_enable (the gate that references the fourth PE is U1_enable (opens the gate that refers to the next PE), U2_enable (opens the gate that references the second PE), U3_enable (opens the gate that refers to the third PE), U4_enable (opens) A gate that refers to the next four PEs It is open).
[0042]
Referring back to FIG. Each PE further has an
[0043]
As the value of the
[0044]
Further, in the
[0045]
FIG. 7 shows a configuration of the
[0046]
The output port of the
[0047]
As a result, the transfer between the
[0048]
The
[0049]
FIG. 8 shows the case of write transfer (transfer from a PE register file to a memory) and the case of read transfer (transfer from a memory to a PE register file) using the
[0050]
When performing data transfer, the
[0051]
FIG. 9 is a schematic block diagram of the
[0052]
The
[0053]
The read
[0054]
The
[0055]
The
[0056]
The external
[0057]
The valid
[0058]
The
[0059]
The value of the fault register is extracted as shown in FIG. 10 based on the value of the
[0060]
The
[0061]
In the present embodiment, the fault registers are incorporated in the external
[0062]
According to the configuration according to the present embodiment, even if there is a faulty PE, the address between the
[0063]
<< 2nd Embodiment >>
FIG. 11 is a schematic block diagram of the external
[0064]
The
[0065]
In the configuration of the first embodiment shown in FIG. 9, a value with an offset equal to the number of failed PEs needs to be set as the transfer start PE address. Since the
[0066]
<< 3rd Embodiment >>
FIG. 12 is a schematic block diagram of the external
[0067]
The external
[0068]
At the time of data transfer, in the first data transfer, a predetermined value is set in the transfer start
[0069]
In the third embodiment, the time required for the transfer is slightly increased only at the start of the data transfer repeated a plurality of times, and the time required for the data transfer in the second and subsequent transfers is different from that in the first embodiment. It is similarly shortened.
[0070]
Here, a method of transferring pixel data when using the
[0071]
FIG. 13 is an explanatory diagram of a method of transferring pixel data when using a
[0072]
When the number of PEs is smaller than the number of pixels in the main scanning direction, the pixel data in the main scanning direction is appropriately divided, and the
[0073]
Normally, in the image processing using the
[0074]
(1) Transfer unprocessed pixel data from the
(2) Image processing by the
(3) The processed pixel data is transferred from the
[0075]
With reference to FIG. 13, transfer of pixel data between the
[0076]
It is assumed that the
[0077]
When the processed pixel data is transferred to the
[0078]
In the 2nd “SIMD” transfer, since the pixels from (na) to (2n−3 × a−1) are processed as the pixel of interest, (n−2 × a) to (n−) are used as reference pixels. a-1) and (2n−3 × a) to (2n−2 × a−1) pixel data. After the data processing, (n−2 × a) pixels (n−a) to (2n−3 × a−1) are stored in the
[0079]
Even when the number of divisions in the main scanning direction is large, the same processing is simply repeated. To implement the above processing, in the case of data writing to the
[0080]
Since the above setting numbers are all based on the PE address, there is no need to change the setting for each “SIMD”. In the case of reading data from the
[0081]
<< 4th Embodiment >>
FIG. 14 is a schematic block diagram of the external
[0082]
The external
[0083]
The read offset
[0084]
According to the fourth embodiment, as in the case of the second embodiment of FIG. 11, only “0” needs to be selected as the initial load value of the
[0085]
<< 5th Embodiment >>
FIG. 17 is a schematic block diagram of the
[0086]
The
[0087]
When scaling is performed in the write transfer, the thinning write signal is enabled, and the logical sum of the data selected (extracted) from the fault register and the external write control signal input from outside the
[0088]
Although not shown, the
[0089]
According to the fifth embodiment, even if there is a faulty PE, it is possible to perform a scaling process often performed in a digital copier, a facsimile, or the like.
[0090]
The upper part of FIG. 18 illustrates a thinning-out write operation for realizing reduction among the scaling processes often performed in a digital copier or a facsimile. In the upper part of FIG. 18, the pixel data such as PE0, PE2, PE3, PE5, PE6,... Is stored in the
[0091]
The lower side of FIG. 18 illustrates the operation when there is a faulty PE. The figure shows a case where there is a failure in PE2, PE4, PE8,... If there is a faulty PE, the SIMD microprocessor skips the faulty PE and is reconfigured, so that the write control data is stored as shown in the figure. The image data is also stored as shown in the figure.
[0092]
Assuming that the logical sum of the write control data and the fault PE information is transfer inhibition data, the data of PE1, PE2, PE4, PE6, and PE8 is thinned out as shown in the figure, and the data stored in the
[0093]
The upper part of FIG. 19 illustrates an overlapping read operation for realizing enlargement, out of scaling processing often performed in a digital copier, a facsimile, or the like. In the upper part of FIG. 19, the pixel data such as PE1, PE4, PE7,... Have the same value as the data stored in the immediately preceding PEs PE0, PE3, and PE6.
[0094]
The lower side of FIG. 19 illustrates the operation when there is a faulty PE. The figure shows a case where there is a failure in PE2, PE4, PE8,... If there is a faulty PE, the SIMD microprocessor skips the faulty PE and is reconfigured, so that the read control data is stored as shown in the figure. The image data is also stored as shown in the figure.
[0095]
Assuming that the logical sum of the read control data and the fault PE information is the transfer inhibition data, the data stored in PE1, PE2, PE4, PE6, and PE8 overlap the data of the immediately preceding PE as shown in FIG. It can be seen that when there is no data, the data is exactly the same as the data stored in the register file of the PE. (Data is stored in order, skipping faulty PEs.)
[0096]
That is, according to the fifth embodiment, it can be understood that scaling can be performed correctly even if there is a faulty PE.
[0097]
【The invention's effect】
By utilizing the present invention, the following effects can be obtained.
[0098]
Diagnosis of PE failure is performed, and data transfer can be performed except for the PE that has failed. Therefore, even if there is a faulty PE, the SIMD type microprocessor can operate normally.
[0099]
Also, when performing data transfer, it is possible to specify a PE for starting data transfer or a PE for ending data transfer. Therefore, when the number of PEs is smaller than the pixel data to be processed, a data joint is considered. Data transfer can be performed. In that case, in the second and subsequent data transfers, the address of the PE that starts the transfer can be specified, so that the number of cycles required for the data transfer can be reduced.
[0100]
In the SIMD type microprocessor, it is possible to perform the scaling process of the image processing even if there is a faulty PE.
[Brief description of the drawings]
FIG. 1 is a schematic block diagram of a SIMD microprocessor, a memory, and a memory controller according to the present invention.
FIG. 2 is a block diagram of a SIMD type microprocessor according to the present invention.
FIG. 3 is a partial block diagram of the SIMD type microprocessor according to the first embodiment of the present invention.
FIG. 4 is a schematic diagram of control for a SIMD microprocessor according to the first embodiment of the present invention which is performed when a failure occurs in three PEs in front of or behind a certain PE; It is a circuit diagram.
FIG. 5 is a circuit of a T register in a portion where a failure flag is input.
FIG. 6 is a flowchart of a self-test for determining a defective flag.
FIG. 7 is a block diagram of a memory controller according to the first embodiment of the present invention.
FIG. 8 shows the case of write transfer (transfer from a PE register file to a memory) and read transfer (transfer from a memory to a PE register file) using the memory controller of the first embodiment. FIG. 4 is a schematic diagram showing how data is transferred.
FIG. 9 is a schematic block diagram of a memory controller according to the first embodiment of the present invention.
FIG. 10 is a circuit for generating transfer suppression data.
FIG. 11 is a schematic block diagram of an external interface control unit of a memory controller according to a second embodiment of the present invention.
FIG. 12 is a schematic block diagram of an external interface control unit of a memory controller according to a third embodiment of the present invention.
FIG. 13 is an explanatory diagram of a method of transferring pixel data when using a SIMD microprocessor having a smaller number of PEs than the number of pixels in the main scanning direction.
FIG. 14 is a schematic block diagram of an external interface control unit of a memory controller according to a fourth embodiment of the present invention.
FIG. 15 is a schematic block diagram of a RAM control unit of a memory controller according to a fourth embodiment of the present invention.
FIG. 16 shows a configuration of a circuit that uses a transfer inhibition control signal to stop counting up and counting down of a transfer number counter and a valid data number counter.
FIG. 17 is a schematic block diagram of a fault register unit of a memory controller according to a fifth embodiment of the present invention.
FIG. 18 is a schematic diagram of a thinning-out write operation for realizing reduction in a scaling process performed by a digital copier or a facsimile.
FIG. 19 is a schematic diagram of an overlapping read operation for realizing enlargement in a scaling process performed by a digital copier or a facsimile.
[Explanation of symbols]
2 SIMD microprocessor, 4 memory, 6 memory controller, 8 external interface, 16 register file, 20 register, 40
Claims (6)
各プロセッサエレメントが内蔵する汎用レジスタに外部からアクセスするためのデータ転送用ポートに、データ転送装置が接続し、
上記データ転送装置は、各プロセッサエレメントが故障しているか否かを示す記憶部を有し、
上記データ転送装置は、その記憶部のデータの内容により、故障しているプロセッサエレメントへのデータ転送を抑止するように制御する、
SIMD型マイクロプロセッサ。In a SIMD type microprocessor having a plurality of processor elements for processing a plurality of data,
A data transfer device is connected to a data transfer port for externally accessing a general-purpose register included in each processor element,
The data transfer device has a storage unit that indicates whether each processor element has failed,
The data transfer device controls the data transfer to the failed processor element based on the content of the data in the storage unit.
SIMD type microprocessor.
その検査結果が上記データ転送装置の上記記憶部に自動格納される、
請求項1に記載のSIMD型マイクロプロセッサ。A self-test for checking whether or not each processor element operates normally is automatically executed in a timely manner.
The inspection result is automatically stored in the storage unit of the data transfer device.
The SIMD type microprocessor according to claim 1.
データ転送のときに転送が開始されるべきプロセッサエレメントのアドレスをデータとして設定する第1のレジスタと、
故障していないプロセッサエレメントのアドレスを発行した時にカウントアップする第1のカウンタとを含み、
上記の第1のカウンタの値が上記の第1のレジスタの値に等しくなるまで、データの転送を抑止する、
請求項1に記載のSIMD型マイクロプロセッサ。The data transfer device is:
A first register for setting, as data, an address of a processor element from which transfer is to be started at the time of data transfer;
A first counter that counts up when an address of a processor element that has not failed has been issued,
Inhibiting data transfer until the value of the first counter is equal to the value of the first register;
The SIMD type microprocessor according to claim 1.
全プロセッサエレメントに関してデータ転送が終了したときに、上記の第1のレジスタに上記のアドレスの値を設定する、
請求項3に記載のSIMD型マイクロプロセッサ。When the value of the first counter becomes equal to the value of the first register, the value of the address of the processor element at that time is held,
When the data transfer is completed for all processor elements, the value of the address is set in the first register.
The SIMD type microprocessor according to claim 3.
データ転送のときに転送が終了されるべきプロセッサエレメントのアドレスをデータとして設定する第2のレジスタと、
故障していないプロセッサエレメントのアドレスを発行した時にカウントアップする第1のカウンタとを含み、
上記の第1のカウンタの値が上記の第2のレジスタの値に等しくなったとき、そのときの上記データ転送装置の接続する外部メモリのアドレスの値が保持され、
全プロセッサエレメントに関してデータ転送が終了したときに、上記の第2のレジスタに上記外部メモリのアドレスの値を設定する、
請求項1に記載のSIMD型マイクロプロセッサ。The data transfer device is:
A second register for setting, as data, an address of a processor element whose transfer is to be terminated at the time of data transfer;
A first counter that counts up when an address of a processor element that has not failed has been issued,
When the value of the first counter becomes equal to the value of the second register, the value of the address of the external memory connected to the data transfer device at that time is held,
When the data transfer is completed for all processor elements, the value of the address of the external memory is set in the second register.
The SIMD type microprocessor according to claim 1.
別のデータ転送装置が転送しているデータと、各プロセッサエレメントが故障しているか否かを示す記憶部のデータとの論理和によって、
データの転送の抑止が制御される、
請求項1に記載のSIMD型マイクロプロセッサ。The data transfer device is configured to perform data transfer in synchronization with another data transfer device,
By the logical OR of the data being transferred by another data transfer device and the data of the storage unit indicating whether or not each processor element has failed,
Suppression of data transfer is controlled,
The SIMD type microprocessor according to claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043856A JP2004252825A (en) | 2003-02-21 | 2003-02-21 | Simd type microprocessor capable of transferring data even when fault is occurred in pe |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043856A JP2004252825A (en) | 2003-02-21 | 2003-02-21 | Simd type microprocessor capable of transferring data even when fault is occurred in pe |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004252825A true JP2004252825A (en) | 2004-09-09 |
Family
ID=33026739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003043856A Pending JP2004252825A (en) | 2003-02-21 | 2003-02-21 | Simd type microprocessor capable of transferring data even when fault is occurred in pe |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004252825A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005316887A (en) * | 2004-04-30 | 2005-11-10 | Ricoh Co Ltd | Microprocessor |
WO2015087684A1 (en) * | 2013-12-13 | 2015-06-18 | 株式会社東芝 | Information processing device, information processing method, and program |
-
2003
- 2003-02-21 JP JP2003043856A patent/JP2004252825A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005316887A (en) * | 2004-04-30 | 2005-11-10 | Ricoh Co Ltd | Microprocessor |
WO2015087684A1 (en) * | 2013-12-13 | 2015-06-18 | 株式会社東芝 | Information processing device, information processing method, and program |
JP2015115005A (en) * | 2013-12-13 | 2015-06-22 | 株式会社東芝 | Information processing device, information processing method and program |
US9952920B2 (en) | 2013-12-13 | 2018-04-24 | Kabushiki Kaisha Toshiba | Information processing device, information processing method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4934356B2 (en) | Video processing engine and video processing system including the same | |
US7430631B2 (en) | Access to a wide memory | |
US20090044044A1 (en) | Device and method for correcting errors in a system having at least two execution units having registers | |
JP2007041781A (en) | Reconfigurable integrated circuit device | |
WO2001090915A2 (en) | Processor array and parallel data processing methods | |
JP3971535B2 (en) | SIMD type processor | |
EP0305639A2 (en) | Vector computer | |
JP3797570B2 (en) | Apparatus and method using semaphore buffer for semaphore instructions | |
US8060726B2 (en) | SIMD microprocessor, image processing apparatus including same, and image processing method used therein | |
JP2004252825A (en) | Simd type microprocessor capable of transferring data even when fault is occurred in pe | |
US6785847B1 (en) | Soft error detection in high speed microprocessors | |
JP3821198B2 (en) | Signal processing device | |
JP2007073010A (en) | Simd processor and image processing method using the simd method processor and image processor | |
JP2006350907A (en) | Simd type microprocessor, data transfer unit, and data conversion unit | |
JP4403009B2 (en) | Microprocessor | |
JP2006155637A (en) | Apparatus for processing signal | |
US20100088493A1 (en) | Image processing device and data processor | |
US9129345B2 (en) | Data stream processing architecture enabling extension of neighborhood mask | |
JP4482356B2 (en) | Image processing method and image processing apparatus using SIMD processor | |
US20100031002A1 (en) | Simd microprocessor and operation method | |
JP4442907B2 (en) | SIMD type processor | |
JP2004206387A (en) | Image processing method, processor, and image processor | |
JP2001202351A (en) | Simd type processor | |
JP5369669B2 (en) | SIMD type microprocessor | |
JP2006293538A (en) | Calculation system |