JP4234612B2 - SIMD type processor - Google Patents
SIMD type processor Download PDFInfo
- Publication number
- JP4234612B2 JP4234612B2 JP2004007974A JP2004007974A JP4234612B2 JP 4234612 B2 JP4234612 B2 JP 4234612B2 JP 2004007974 A JP2004007974 A JP 2004007974A JP 2004007974 A JP2004007974 A JP 2004007974A JP 4234612 B2 JP4234612 B2 JP 4234612B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- register
- test
- value
- flag register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
- Image Processing (AREA)
Description
本発明は、マイクロプロセッサ、特にSIMD(Single Instruction−stream Multiple Data−stream)型マイクロプロセッサに関する。 The present invention relates to a microprocessor, and more particularly to a SIMD (Single Instruction-stream Multiple Data-stream) type microprocessor.
SIMD型マイクロプロセッサでは、複数のデータに対して1つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理、例えば、デジタルコピアなどにおける画像処理に係る用途において、頻用されている。 In the SIMD type microprocessor, the same arithmetic processing can be executed simultaneously on a plurality of data with one instruction. Due to this structure, the calculation is the same but the data amount is very large, for example, in the application related to the image processing in the digital copier, etc.
SIMD型マイクロプロセッサにおける通常の画像処理では、複数の演算ユニット(Processor Element [PE];プロセッサエレメント)を主走査方向に並べ、同一の演算を同時に複数のデータに対して実行することによって高速な演算処理が可能となっている。 In normal image processing in a SIMD type microprocessor, a plurality of arithmetic units (Processor Element [PE]; processor elements) are arranged in the main scanning direction, and high-speed arithmetic is performed by simultaneously executing the same arithmetic on a plurality of data. Processing is possible.
近年、製造プロセスの微細化によってLSIの集積度は高まる一方であり、SIMD型プロセッサにおいてもPE数の増加が可能となってきた。しかしながら、SIMD型などのように、並列プロセッサ構成を採るプロセッサでは、複数個搭載しているプロセッサの内の一つでも故障していると、プロセッサ全体として故障となってしまうため、従来は冗長なPEを設けておき、故障しているPEと置き換えるという手法が取られてきた(例えば、特許文献1ないし3参照)。
In recent years, the degree of integration of LSIs has been increasing due to miniaturization of the manufacturing process, and it has become possible to increase the number of PEs even in SIMD type processors. However, in a processor adopting a parallel processor configuration such as SIMD type, if even one of a plurality of installed processors fails, the entire processor will fail. A technique has been adopted in which a PE is provided and replaced with a faulty PE (see, for example,
上記特許文献1ないし3などに示すように、従来は、不良プロセッサを置き換えるための冗長PEを設けておき、故障しているPEがある場合には、PEを特定する信号を故障しているPEではなく、冗長PEに割り当てることで並列プロセッサを救済している。
As shown in
また、隣接したPEからの出力信号と、自身が出力する信号とのマルチプレクサを各PEが有し、故障しているPEでは隣接したPEからの出力信号をバイパスして出力することで並列プロセッサを救済するものも提案されている(例えば、特許文献4ないし6参照)。
上記した各特許文献においては、PEをどのように検査していくかの記述はない。ところで、これらの構成のプロセッサにおいて、PEのセルフテストの仕組みについて考えると、まず、検査の過程において任意のPEにテストデータを入力し、また任意のPEのレジスタに格納されているデータをテスト装置がチェックする方法と、全てのPEにテストデータおよびテストデータに伴うテスト結果の期待値を入力し、テスト結果と期待値の比較を各PEが備えるALUにて行わせる方法の2通りが考えられる。しかし、後者の方法では各PEが備えるALUが正常でなければ正しい検査が行えないので、前者の方法に比べて故障PEを検出できない確率が高くなってしまう。 In each of the above patent documents, there is no description of how to inspect PE. By the way, considering the mechanism of the PE self-test in the processor of these configurations, first, test data is input to an arbitrary PE in the process of inspection, and the data stored in the register of the arbitrary PE is used as a test device. There are two methods: a method of checking the test data, and inputting the test data and the expected value of the test result accompanying the test data to all PEs, and comparing the test result and the expected value with the ALU included in each PE. . However, in the latter method, since the correct inspection cannot be performed unless the ALU included in each PE is normal, the probability that a failed PE cannot be detected is higher than that in the former method.
さらに、上記した特許文献1ないし3などで開示されているプロセッサにおいては、各PEを選択するための制御線を持っていることが前提となっているので、セルフテストの際もこの制御線を用いて各PEを選択し、テストしていく処理が考えられる。しかし、プロセッサが備えるPE数が増加した場合に、冗長PEと切り換えるための制御線が非常に多くなるという問題が生じる。
Further, the processors disclosed in the above-mentioned
一方、特許文献4ないし6などで開示されているプロセッサにおいては、各PEが、外部記憶装置や外部制御装置にアクセスできる記憶装置としてシフトレジスタを有している構成であるため、セルフテストの際もこのレジスタを用いて各PE毎にテストデータの書き込みと、テスト結果の読み出しを行うことが可能であるが、シフトレジスタを使用しているため回路規模が大きくなってしまうという問題が生じる。 On the other hand, in the processors disclosed in Patent Documents 4 to 6, etc., each PE has a shift register as a storage device that can access the external storage device or the external control device. However, although it is possible to write test data and read test results for each PE using this register, there is a problem that the circuit scale becomes large because the shift register is used.
本発明は、上記のことに鑑みなされたものにして、故障PEの救済方法を備えたSIMD型プロセッサにおいて、各PEのセルフテストを少ない回路追加によって行うための方法と、セルフテストの結果に基づいて、故障しているPEの動作を停止させ、故障しているPEがあってもプロセッサ全体として正常に動作できるように並列プロセッサを再構成することを目的としている。 The present invention has been made in view of the above, and is based on a method for performing a self-test of each PE by adding a small number of circuits in a SIMD type processor equipped with a method for relieving a faulty PE, and a result of the self-test. The purpose of this is to stop the operation of the faulty PE and to reconfigure the parallel processor so that the entire processor can operate normally even if there is a faulty PE.
請求項1に記載の発明では、各PEに各PEの動作の稼動/停止を決定することができるフラグレジスタを持たせた構成のSIMD型プロセッサにおいて、このフラグレジスタを用いて各PEを選択してテストしていき、そのテスト結果に基づいて故障しているPEの動作を停止させるという手法を用いることによって、少ない回路追加によって各PEのテストと故障PEの回避を行うことのできる仕組みを提供するものである。即ち、この請求項1に記載の発明のSIMD型プロセッサは、各PEはフラグレジスタを備え、プロセッサにセルフテストを行う機能部を備え、前記フラグレジスタの値によって各PEの動作の稼動もしくは停止を決定することができ、セルフテストを行う機能部は前記フラグレジスタの値を所定数のPEだけが稼動状態になるように設定し、稼動状態になっているPEについてのみテストを行ってそのPEが正常であるか故障しているかを判定し、所定数のPEについてのテストが終了すると前記フラグレジスタの値を所定数シフトして次の所定数のPEを稼動状態にしてその所定数のPEをテストしていく処理を繰り返すことで全てのPEについてのテストを行うように構成され、全てのPEについてのテストが終了するとその結果に基づいて各PEのフラグレジスタの値を決定し、故障しているPEの動作を停止することを特徴とする。 According to the first aspect of the present invention, in the SIMD type processor having a configuration in which each PE has a flag register that can determine whether each PE is activated or stopped, each PE is selected using this flag register. Provides a mechanism that enables testing of each PE and avoiding the faulty PE by adding a small number of circuits by using a method of stopping the operation of the faulty PE based on the test results. To do. That is, in the SIMD type processor according to the first aspect of the present invention, each PE includes a flag register, and the processor includes a function unit that performs a self test, and the operation of each PE is activated or stopped according to the value of the flag register. The function unit that performs the self-test sets the value of the flag register so that only a predetermined number of PEs are in an operating state, performs a test only on the PEs that are in an operating state, and It is determined whether it is normal or faulty, and when the test for a predetermined number of PEs is completed, the value of the flag register is shifted by a predetermined number to bring the next predetermined number of PEs into operation and the predetermined number of PEs are set. It is configured to perform tests for all PEs by repeating the testing process, and when the tests for all PEs are completed, based on the results. There determines the value of the flag register of each PE, characterized in that it stops the operation of the PE that has failed.
請求項2に記載の発明では、請求項1に加えて、複数のPEの中から自身を特定するための番号を格納するIDレジスタを持たせた構成のSIMD型プロセッサにおいて、各PEのセルフテスト実行時に、故障PEを回避しながらIDレジスタの値を設定することが可能な手法を提示することで、セルフテスト実行時に各PEのIDレジスタに初期値を持たせる必要がなくなるため、PEのセルフテストに伴う回路の増加をできるだけ抑えることができる仕組みを提供するものである。即ち、この請求項2に記載の発明のSIMD型プロセッサは、各PEはフラグレジスタと複数あるPEの中から自身を特定するための番号を格納するIDレジスタを備え、プロセッサにセルフテストを行う機能部を備え、前記フラグレジスタの値によって各PEの動作の稼動もしくは停止を決定することができ、セルフテストを行う機能部は前記フラグレジスタの値を所定数のPEだけが稼動状態になるように設定し、稼動状態になっているPEについてのみテストを行ってそのPEが正常であるか故障しているかを判定し、PEが正常であればIDレジスタにユニークな番号を設定し、所定数のPEについてのテストが終了すると前記フラグレジスタの値を所定数シフトして次の所定数のPEを稼動状態にしてその所定数のPEをテストしていく処理を繰り返すことで全てのPEについてのテストとIDレジスタの値を設定していく処理を行うように構成され、全てのPEについてのテストが終了するとその結果に基づいて各PEのフラグレジスタの値を決定し、故障しているPEの動作を停止することを特徴とする。
In the invention according to claim 2, in addition to
請求項1に記載の発明においては、各PEが備える例えば1ビットのシフトレジスタからなるフラグレジスタを用いて各PEの稼動/停止を決定することができるので、少ない回路追加で各PEの検査、および故障PEの動作停止を行うことができる。また、各PEのテストを行う際に、フラグレジスタのみが正常であれば正しくテストが行えるので、故障PEの検出、および故障PEの動作停止を高い確率で行うことができる。
In the invention according to
請求項2に記載の発明においては、各PEのセルフテスト実行時に、故障PEを回避しながらIDレジスタの値を設定することができ、IDレジスタに初期値を持たせる必要がなくなるため、PEのセルフテストに伴う回路の増加をできるだけ抑えることができる。また、このIDレジスタを用いて、複数あるPEの中から所定のPEを選択して処理を行わせたり、各PEが備えている外部インターフェイスとの通信経路を持つ汎用レジスタに対して、各PE毎にデータの書き込み/読み出しを行わせることができる。 According to the second aspect of the present invention, when the self-test of each PE is executed, the value of the ID register can be set while avoiding the faulty PE, and it is not necessary to have an initial value in the ID register. It is possible to suppress the increase of the circuit accompanying the self test as much as possible. In addition, by using this ID register, a predetermined PE is selected from a plurality of PEs to perform processing, or each PE is connected to a general-purpose register having a communication path with an external interface included in each PE. Data can be written / read every time.
以下、本発明の実施形態につき図面を参照して説明する。まず、本発明が適用されるSIMD型プロセッサの全体構成につき図1に従い説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. First, the overall configuration of a SIMD type processor to which the present invention is applied will be described with reference to FIG.
本発明のSIMD型プロセッサは、グロバールプロセッサ(GP)1と、レジスタファイル2と演算アレイ3とからなるプロセッサエレメントブロックで構成される。グローバルプロセッサ1は、いわゆるSISD(Single Instruction−stream, Single Data−stream)タイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し、各種制御信号を生成する。
The SIMD type processor of the present invention comprises a processor element block including a global processor (GP) 1, a register file 2, and an
この制御信号は、内蔵する各種ブロックの制御以外にもレジスタファイル2、演算アレイ3にも供給される。また、GP(グローバルプロセッサ)命令実行時は内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理をおこなう。
This control signal is supplied to the register file 2 and the
レジスタファイル2は、PE(プロセッサエレメント)命令で処理されるデータを保持している。PE命令は、SIMDタイプの命令であり、レジスタファイル2に保持されている複数のデータに対して同時に同じ処理をおこなう。このレジスタファイル2からのデータの読み出し/書き込みの制御はGP1からの制御によって行われる。読み出されたデータは演算アレイ3に送られ、演算アレイ3での演算処理後にレジスタファイル2に書き込まれる。また、レジスタファイル2はプロセッサ外部からのアクセスが可能であり、GP1の制御とは別に外部から特定のレジスタに対して読み出し/書き込みが行われる。
The register file 2 holds data processed by a PE (processor element) instruction. The PE instruction is a SIMD type instruction, and simultaneously performs the same processing on a plurality of data held in the register file 2. Control of reading / writing data from the register file 2 is performed by control from the
演算アレイ3は、PE命令の演算処理が行われる。処理の制御は、すべてGP1から行われる。
The
図2は、この発明が適用されるSIMD型プロセッサの詳細な構成を示すブロック図である。GP1には、本プロセッサのプログラム格納用のプログラムRAMと演算データ格納用のデータRAMが内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ退避、復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI、LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)が内蔵されている。これらのレジスタと図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路を使用してGP命令の実行が行われる。また、PE命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、PE演算制御回路を使用して、レジスタファイル2の制御と演算アレイ3の制御を行う。
FIG. 2 is a block diagram showing a detailed configuration of a SIMD type processor to which the present invention is applied. GP1 includes a program RAM for storing the program of this processor and a data RAM for storing operation data. Furthermore, a program counter (PC) that holds the address of the program, G0 to G3 registers that are general-purpose registers for storing data for arithmetic processing, and a stack pointer that holds the address of the save destination data RAM at the time of register saving and restoration SP), a link register (LS) that holds the address of the caller at the time of the subroutine call, LI and LN registers that hold the branch source addresses at the time of IRQ and NMI, and a processor status register (P) that holds the state of the processor ) Is built-in. The GP instruction is executed using these registers and an instruction decoder, ALU, memory control circuit, interrupt control circuit, external I / O control circuit, and GP operation control circuit (not shown). When executing the PE instruction, the register decoder 2, the register file control circuit (not shown), and the PE operation control circuit are used to control the register file 2 and the
レジスタファイル2には、この実施形態では、1つのPE単位に8ビットのレジスタ20が32本内蔵されており、256PE分の組みがアレイ構成になっている。レジスタ20はPEごとにR0、R1、R2、...R31と呼ばれている。それぞれのレジスタ20は演算アレイ3に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバス21で演算アレイ3からアクセスされる。
In this embodiment, the register file 2 includes 32 8-
32本のレジスタ20の内、24本はプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタを読み書きできる。レジスタ20の外部からのアクセスは1つの外部ポートで各PEの1つのレジスタがアクセス可能であり、外部から入力されたアドレスでPEの番号(0〜255)を指定する。したがって、レジスタアクセスの外部ポートは全部で24組搭載されている。また、外部からのアクセスは偶数のPEと奇数のPEの1組で16ビットデータとなっており、1回のアクセスで2つのレジスタが同時にアクセスしている。
Of the 32
演算アレイ3は、16ビットALU31と16ビットAレジスタ32、Fレジスタ33を内蔵している。
The
PE命令による演算は、基本的にレジスタファイル2から読み出されたデータをALU31の片側の入力としてもう片側にはAレジスタ32の内容を入力として結果をAレジスタ32に格納する。したがって、Aレジスタ32とR0〜R31レジスタとの演算が行われることとなる。レジスタファイル2と演算部3との接続に7to1のマルチプレクサからなるPE選択部40を置いており、PE方向で左に1、2、3つ離れたデータと右に1、2、3つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル2の8ビットのデータはシフト&拡張回路41により、任意ビットを左シフトしてALU31に入力する。さらに、図示していない8ビットの条件レジスタ(T)により、PEごとに演算実行の無効/有効の制御をしており、特定のPEだけを演算対象として選択できる。
In the operation by the PE instruction, basically, data read from the register file 2 is input to one side of the
図3は、この発明の第1の実施形態の構成を示すブロック図である。前述したように、レジスタファイル2のうち24本はプロセッサ外部からアクセス可能であり、外部から外部インタフェース4を介してクロックとアドレス、リード/ライトが与えられ、これらクロックとアドレス、リード/ライトがレジスタコントローラ22に与えられ、このレジスタコントローラ22により外部からアクセスされた任意のレジスタを読み書きできる。また、外部からのアクセスは偶数のPEと奇数のPEの1組で16ビットデータとなっており、1回のアクセスで2つのレジスタが同時にアクセスしている。
FIG. 3 is a block diagram showing the configuration of the first embodiment of the present invention. As described above, 24 of the register file 2 can be accessed from outside the processor, and the clock, address, and read / write are given from the outside via the external interface 4, and the clock, address, and read / write are stored in the register. An arbitrary register given to the
本実施形態のプロセッサは、PEをセルフテストするためのプログラムが書き込まれたROMを内蔵しており、このテストプログラムをGP1が備えるプログラムRAMに転送して、GPが各PEのセルフテストを行う。また、GP1は各PEへの書き込み経路として、図3に図示している即値データバス11,12を、読み出し経路として例えば、オープンドレインバスなどで構成されるテスト用データバス13を有しており、各PEの各レジスタ20にテストデータを書き込んだり、Aレジスタ32からテスト結果を読み出すことが可能な構成になっている。
The processor according to the present embodiment has a built-in ROM in which a program for self-testing the PE is written. The test program is transferred to a program RAM included in the
この実施形態では、各PEは1ビットのシフトレジスタからなるフラグレジスタ34を有しており、アレイ状に配置されたPEの内で最もGP1に近いPEのフラグレジスタ34はGP1からのデータ転送が可能な通信経路を有している。フラグレジスタ34はシフトレジスタ構成になっており、隣接するPEでGP1から遠ざかる方のPEのフラグレジスタ34に対して、データを書き込むことが可能な通信経路を有している。
In this embodiment, each PE has a
また、フラグレジスタ34の値は自身のPEのAレジスタ32、Fレジスタ33、Tレジスタ(図示せず)、及びR0からR31レジスタ20に対して図4のように入力されている。Aレジスタ32にはALU31またはデータバス13からのデータがマルチプレクサ35により選択されて与えられる。フラグレジスタ34からの反転出力とAレジスタ書き込みイネーブル信号がアンド回路36に与えられ、この回路36の出力がAレジスタ32のラッチ信号として与えられる。Aレジスタ32の出力は3ゲートバッファ37,38に与えられ、3ゲートバッファ37からデータバス13に出力される。3ゲートバッファ37,38の制御信号としてフラグレジスタ34の出力が与えられる。
Further, the value of the
この構成により、フラグレジスタ34の値が0の時には、読み出し側については各レジスタ20からデータバス13への出力信号をネゲートし、書き込み側については各レジスタ20のライト・イネーブル信号をネゲートすることができるので、そのPEの動作を停止させることができる。フラグレジスタ34の値が1の時には、各レジスタ20はデータの読み出し/書き込み共に行えるので、そのPEは通常通り動作する。つまり、フラグレジスタ34は、各PEの選択フラグ、もしくはイネーブル・ディスイネーブルフラグとして使用することができる。
With this configuration, when the value of the
以上の構成において、電源起動時、もしくはシステム初期化時に、GP1との距離が近いPEから順番にフラグレジスタ(シフトレジスタ)34の値に1を格納してPEを1つずつ選択してテストしていき、その結果に基づいて故障しているPEの動作を停止させるまでの処理の流れについて以下に示す。 In the above configuration, when power is turned on or the system is initialized, 1 is stored in the value of the flag register (shift register) 34 in order from the PE with the closest distance to GP1, and the PE is selected one by one for testing. The flow of processing until the operation of the faulty PE is stopped based on the result is shown below.
ステップ(Step)1:テストプログラムをROMからGPが内蔵しているプログラムRAMに転送する。
ステップ(Step)2:全てのPEのフラグレジスタ34に0を格納し、全てのPEを非選択状態にする。
ステップ(Step)3−1:GP1との距離が最も近いPE(PE0)のフラグレジスタ34に1を格納し、そのPE0だけを選択状態にする。
ステップ(Step)3−2:選択しているPE0に対してテストし、PE0が正常であるか、故障しているかを判定する。
ステップ(Step)3−3:PE0のテスト結果をデータRAMに格納する。
ステップ(Step)4−1:フラグレジスタ34の値を1PE分シフトして、次のPE(PE1)を選択状態にする。
ステップ(Step)4−2:選択しているPE1に対してテストし、PE1が正常であるか、故障しているかを判定する。
ステップ(Step)4−3:PE1のテスト結果をデータRAMに格納する。
ステップ(Step)4−4:Step4−1からStep4−3までと同等の処理を全てのPEについてのテストが終了するまで繰り返す。
ステップ(Step)5:データRAMに格納されているテスト結果に基づいて、故障と判定されたPEのフラグレジスタ34には0を格納し、正常と判定されたPEのフラグレジスタ34には1を格納する。
Step (Step) 1: The test program is transferred from the ROM to the program RAM built in the GP.
Step (Step) 2: 0 is stored in the flag registers 34 of all PEs, and all PEs are set in a non-selected state.
Step (Step) 3-1: 1 is stored in the
Step (Step) 3-2: A test is performed on the selected PE0 to determine whether the PE0 is normal or faulty.
Step (Step) 3-3: The test result of PE0 is stored in the data RAM.
Step (Step) 4-1: The value of the
Step (Step) 4-2: The selected PE1 is tested to determine whether the PE1 is normal or faulty.
Step (Step) 4-3: The test result of PE1 is stored in the data RAM.
Step (Step) 4-4: The same processing as Step 4-1 to Step 4-3 is repeated until the test for all PEs is completed.
Step 5: Based on the test result stored in the data RAM, 0 is stored in the
続いて、図3で図示している構成において、並列プロセッサが故障PEを回避しながら動作している例について説明する。 Next, an example in which the parallel processor operates while avoiding the failure PE in the configuration illustrated in FIG. 3 will be described.
各PEは、マルチプレクサ40でPE方向で前方に1、2、3つ離れたデータと後方に1、2、3つ離れたデータ、中央のデータを演算対象として選択することが可能なように経路を有しているが、故障しているPEがあっても正しくデータを参照することが可能なように、予備の配線経路を前方に1つ、後方に1つ有している。すなわち、故障しているPEがなければ、各PEはPE方向で前方に1(L1と略記)、2(L2と略記)、3(L3と略記)、4(L4と略記)までのデータが、後方に1(U1と略記)、2(U2と略記)、3(U3と略記)、4(U4と略記)までのデータが参照可能である。
Each PE is routed so that the
参照するPEを選択するためのマルチプレクサ(PE選択部)40には、自身のレジスタ以外に、上記、前方、後方に4つまで離れたPEのレジスタからのデータを参照する経路と、図示はしていないが、自身のPEよりも1、2、3だけ前方のPEのフラグレジスタ34の値と1、2、3だけ後方のPEのフラグレジスタ34の値とが入力されている。
In addition to its own register, the multiplexer (PE selection unit) 40 for selecting a PE to be referred to includes a path for referring to data from the above-mentioned PE registers that are separated forward and backward by up to four. However, the value of the
さらに、GP1より現在実行している命令が自身のPEに対して前方、後方あるいは自分自身のどのレジスタのデータを参照する命令であるかを示す制御信号が入力されている。 Further, a control signal indicating whether the instruction currently being executed from GP1 is an instruction for referring to data of which register in front, rearward, or its own with respect to its own PE is input.
PE選択部40では前後のフラグレジスタ34と制御信号とから、故障しているPEを避けて配線経路を開くように制御される。例えば、自身のPEの1つ前のPEが故障している場合に、1つ前のPEを参照する命令を発行している場合には、2つ前のPEからの経路を開くように、2つ前のPEを参照する命令を発行している場合には3つ前のPEからの経路を開くようにする。
The
図5は、あるPEの前方、あるいは後方に3つのPEの中に故障があった場合に、どのように制御を行うかを図示している。 FIG. 5 illustrates how control is performed when a failure occurs in three PEs in front of or behind a certain PE.
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参照命令)である。 C_en, L1_en to L3_en, and U1_en to U3_en indicate which PE is currently executing an instruction for referring to data stored in PE, and in order C_en (own PE reference instruction) , L1_en (one forward PE reference instruction), L2_en (two forward PE reference instructions), L3_en (three forward PE reference instructions), U1_en (one backward PE reference instruction), U2_en (two backwards) PE reference instruction), U3_en (three backward PE reference instructions).
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を参照するゲートが開く)である。 C_enable, L1_enable to L4_enable, U1_enable to U4_enable indicate which wiring path is actually opened in each PE, and C_enable (a gate that references its own PE is opened), L1_enable (the previous PE) L2_enable (the gate referring to the previous PE is opened), L3_enable (the gate referring to the previous PE is opened), L4_enable (the gate referring to the previous PE is opened) U1_enable (a gate that references the next PE is opened), U2_enable (a gate that references the next PE is opened), U3_enable (a gate that references the next PE is opened), U4_enable ( Gate referring to PE after 4 We are open).
かかる構成であれば、4つの連続したPEの中に2つ以上の故障がなければプロセッサ全体を救済できる。 With this configuration, the entire processor can be relieved if there are no two or more failures in the four consecutive PEs.
尚、上記した実施形態においては、1つのPEずつ選択してテストを行う方法について説明したが、複数のPEを同時、例えば、2つのPEずつ同時にテストを行い、PEの故障の有無を検証するように構成することも出来る。このように、構成することで、テストにかかる時間を短縮することができる。ただし、この場合には、同時にテストしたPEのうち、1つでも故障のPEがあると、同時にテストしたPE全てを故障として処理しなければならない。 In the above-described embodiment, the method of selecting and testing one PE at a time has been described. However, a plurality of PEs are tested simultaneously, for example, two PEs are tested simultaneously to verify the presence or absence of a PE failure. It can also be configured as follows. By configuring in this way, the time required for the test can be shortened. However, in this case, if there is at least one failed PE among the simultaneously tested PEs, all the simultaneously tested PEs must be processed as failures.
図6は、この発明の第2の実施形態の構成を示すブロック図である。この第2の実施形態ののプロセッサでは、図3で開示したプロセッサの構成に加えて、各PEに複数のPEの中から自身を特定するための番号を格納するためのIDレジスタ39を持たせた構成を採る。IDレジスタ39は、自身の値を各PEのデータバスに出力する経路と、GP1より自身の値を変更するための入力経路を有している。ある特定のPEを選択して処理を行わせる場合などは、各PEのALU31において、各PEのIDレジスタ39の値と、GP1から与えられたデータとの比較を行い、これら2つの値が等しい時、比較結果を各PEのTレジスタ(図示せず)に反映するように構成されている。また、IDレジスタ39には、フラグレジスタ34の値が図4と同様に入力されており、フラグレジスタ34の値が1である時のみ、IDレジスタ39への書き込みが行える構成となっている。つまり、セルフテスト時に選択されているPEにおいてのみ、IDレジスタ39の値の変更が可能となる。
FIG. 6 is a block diagram showing the configuration of the second embodiment of the present invention. In the processor of the second embodiment, in addition to the configuration of the processor disclosed in FIG. 3, each PE has an
以上の構成において、電源起動時、もしくはシステム初期化時に、GP1との距離が近いPEから順番にフラグレジスタ(シフトレジスタ)34の値に1を格納してPEを1つずつ選択してテストしていき、その結果に基づいて故障しているPEの動作を停止させ、また、故障PEを回避して、正常なPEのIDレジスタ39にのみPEを特定するためのID番号を例えば昇順に設定する処理の流れについて以下に示す。
In the above configuration, when power is turned on or the system is initialized, 1 is stored in the value of the flag register (shift register) 34 in order from the PE with the closest distance to GP1, and the PE is selected one by one for testing. Based on the result, the operation of the faulty PE is stopped, the faulty PE is avoided, and the ID number for specifying the PE only in the normal
ステップ(Step)1:テストプログラムをROMからGPが内蔵しているプログラムRAMに転送する。
ステップ(Step)2:全てのPEのフラグレジスタ34に0を格納し、全てのPEを非選択状態にする。
ステップ(Step)3−1: GP1との距離が最も近いPE(PE0)のフラグレジスタ34に1を格納し、PE0だけを選択状態にする。
ステップ(Step)3−2:選択しているPE0に対してテストし、PE0が正常であるか、故障しているかを判定する。
ステップ(Step)3−3:テストした結果PE0が正常であれば、IDレジスタ39に0を格納する。
ステップ(Step)3−4:PE0のテスト結果をデータRAMに転送する。
ステップ(Step)4−1:フラグレジスタ34の値を1PE分シフトして、次のPE(PE1)を選択状態にする。
ステップ(Step)4−2:選択しているPE1に対してテストし、PE1が正常であるか、故障しているかを判定する。
ステップ(Step)4−3:PE1が故障しているならば、PE1のIDレジスタ39には特に値を設定しない。PE1が正常であるなば、PE0も正常であった場合には、PE1のIDレジスタに1を格納する。PE0が故障している場合には、PE1のIDレジスタに0を格納する。
ステップ(Step)4−4:Step4−1からStep4−3までと同等の処理を全てのPEについてのテストが終了するまで繰り返す。
ステップ(Step)5:データRAMに格納されているテスト結果に基づいて、故障と判定されたPEのフラグレジスタ34には0を格納し、正常と判定されたPEのフラグレジスタ34には1を格納する。
Step (Step) 1: The test program is transferred from the ROM to the program RAM built in the GP.
Step (Step) 2: 0 is stored in the flag registers 34 of all PEs, and all PEs are set in a non-selected state.
Step (Step) 3-1: 1 is stored in the
Step (Step) 3-2: A test is performed on the selected PE0 to determine whether the PE0 is normal or faulty.
Step (Step) 3-3: If the test result PE0 is normal, 0 is stored in the
Step (Step) 3-4: The test result of PE0 is transferred to the data RAM.
Step (Step) 4-1: The value of the
Step (Step) 4-2: The selected PE1 is tested to determine whether the PE1 is normal or faulty.
Step (Step) 4-3: If PE1 fails, no value is set in the
Step (Step) 4-4: The same processing as Step 4-1 to Step 4-3 is repeated until the test for all PEs is completed.
Step 5: Based on the test result stored in the data RAM, 0 is stored in the
各PEのIDレジスタ39にユニークな値が設定されると、このIDレジスタ39の値を用いて所定のPEを選択することができることは既に述べた。また、各PEが備える外部インターフェイス4との通信経路を有する汎用レジスタ20に関しては、各PE毎に外部インターフェイス4とのデータの読み出し/書き込みを行わせることが可能な構成になっているが、これは各PEにおいて、これらの汎用レジスタ20に対する制御装置であるレジスタコントローラ22に対して、IDレジスタ39の値を入力することができる構成になっており、レジスタコントローラ22は、このIDレジスタ39の値と、外部インターフェイス4から入力される所定のPEを特定するための値とを比較して、一致していれば、各レジスタ20に対してライトイネーブル信号、もしくはリードイネーブル信号を入力し、データの書き込み、もしくは読み出しを可能にすることで実現している。
As described above, when a unique value is set in the
1 グローバルプロセッサ(GP)
2 レジスタファイル
3 演算アレイ
4 外部インターフェース
31 ALU
32 Aレジスタ
33 Fレジスタ
34 フラグレジスタ
39 IDレジスタ
1 Global processor (GP)
32 A register 33 F register 34
Claims (2)
A SIMD type processor having a plurality of processor elements for processing a plurality of data, each processor element including a flag register and an ID register for storing a number for identifying itself among the plurality of processor elements, The processor includes a function unit that performs a self-test, and can determine whether the operation of each processor element is activated or stopped according to the value of the flag register. The function unit that performs the self-test sets the value of the flag register to a predetermined number of processors. Set so that only the element is in the operating state, and test only the processor element that is in the operating state to determine whether the processor element is normal or faulty. If the processor element is normal, the ID A unique number for the register When the test is completed for a predetermined number of processor elements, the value of the flag register is shifted by a predetermined number, the next predetermined number of processor elements are put into operation, and the predetermined number of processor elements are tested. It is configured to repeat the test for all the processor elements and the process of setting the ID register values. When the test for all the processor elements is completed, the flag register of each processor element is based on the result. A SIMD type processor characterized by determining a value and stopping the operation of a faulty processor element.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004007974A JP4234612B2 (en) | 2004-01-15 | 2004-01-15 | SIMD type processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004007974A JP4234612B2 (en) | 2004-01-15 | 2004-01-15 | SIMD type processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005202657A JP2005202657A (en) | 2005-07-28 |
JP4234612B2 true JP4234612B2 (en) | 2009-03-04 |
Family
ID=34821465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004007974A Expired - Fee Related JP4234612B2 (en) | 2004-01-15 | 2004-01-15 | SIMD type processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4234612B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5049802B2 (en) | 2008-01-22 | 2012-10-17 | 株式会社リコー | Image processing device |
-
2004
- 2004-01-15 JP JP2004007974A patent/JP4234612B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005202657A (en) | 2005-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788551B2 (en) | System and method for repairing a memory | |
US5396641A (en) | Reconfigurable memory processor | |
KR100388550B1 (en) | Changing the thread capacity of a multithreaded computer processor | |
JP5014899B2 (en) | Reconfigurable device | |
EP0716421B1 (en) | A method for testing an array of Random Access Memories (RAMs) | |
US20090161458A1 (en) | Circuit and method for testing multi-device systems | |
KR20110016840A (en) | Memory errors and redundancy | |
US7506225B2 (en) | Scanned memory testing of multi-port memory arrays | |
JPH10187552A (en) | System and method for data processing with memory array redundancy | |
US7519875B2 (en) | Method and apparatus for enabling a user to determine whether a defective location in a memory device has been remapped to a redundant memory portion | |
US7797594B1 (en) | Built-in self-test of 3-dimensional semiconductor memory arrays | |
JP7473755B2 (en) | Processor and data path reconfiguration method | |
US7085966B2 (en) | Methods and arrangements for repairing ports | |
US20100313081A1 (en) | Cache memory, processor, and production methods for cache memory and processor | |
JP4234612B2 (en) | SIMD type processor | |
JP2004280893A (en) | Semiconductor device | |
US7124213B2 (en) | Device having spare I/O and method of using a device having spare I/O | |
JP2001307497A (en) | Semiconductor integrated circuit device | |
US7434151B2 (en) | Read control systems and methods | |
KR100538286B1 (en) | Automatic generation of user definable memory bist circuitry | |
JP3021577B2 (en) | RAM test circuit | |
US20070118778A1 (en) | Method and/or apparatus to detect and handle defects in a memory | |
JP2005010995A (en) | Multiprocessor system and process for dealing with trouble of write-back thereof | |
JPS62210547A (en) | Diagnosing method for error detection circuit | |
JP2005316887A (en) | Microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081128 |
|
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: 20081209 |
|
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: 20081211 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4234612 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131219 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |