JP2012059131A - Simd microprocessor and processing method thereof - Google Patents
Simd microprocessor and processing method thereof Download PDFInfo
- Publication number
- JP2012059131A JP2012059131A JP2010203381A JP2010203381A JP2012059131A JP 2012059131 A JP2012059131 A JP 2012059131A JP 2010203381 A JP2010203381 A JP 2010203381A JP 2010203381 A JP2010203381 A JP 2010203381A JP 2012059131 A JP2012059131 A JP 2012059131A
- Authority
- JP
- Japan
- Prior art keywords
- count value
- processor element
- type microprocessor
- simd type
- counter
- 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
Abstract
Description
本発明は、1つの演算命令によって複数のデータ等を並列処理するSIMD(Single Instruction stream Multiple Data stream)型マイクロプロセッサ及び当該SIMD型マイクロプロセッサの処理方法に関する。 The present invention relates to a single instruction stream multiple data stream (SIMD) type microprocessor that processes a plurality of data in parallel by one arithmetic instruction and a processing method of the SIMD type microprocessor.
画像処理専用のマイクロプロセッサでは、SIMD型マイクロプロセッサを採用することが多い(例えば、特許文献1参照。)。1つの命令で複数のデータに対して同時に同一の演算処理が実行可能であるというSIMD型マイクロプロセッサの特徴が画像処理に適しているためである。SIMD型マイクロプロセッサは、演算器及びレジスタをそれぞれ備えた複数のプロセッサエレメント(以下、PE(Processor Element)という。)を備えて構成され、複数のPEにおいて同時に演算処理を行うように制御することにより、画像処理の効率を高めている。各PEは、1個の画素に対応するデータの画像処理を担当するので、複数の画素に対応するデータに対して同時に演算処理を実行できる。 A microprocessor dedicated to image processing often employs a SIMD type microprocessor (see, for example, Patent Document 1). This is because the feature of the SIMD microprocessor that the same arithmetic processing can be executed simultaneously on a plurality of data with one instruction is suitable for image processing. The SIMD type microprocessor is configured to include a plurality of processor elements (hereinafter referred to as PE (Processor Element)) each including an arithmetic unit and a register, and by performing control so that arithmetic processing is simultaneously performed in the plurality of PEs. , Increase the efficiency of image processing. Since each PE is in charge of image processing of data corresponding to one pixel, it is possible to simultaneously perform arithmetic processing on data corresponding to a plurality of pixels.
しかしながら、画像データを取り扱う処理の中には、SIMD型マイクロプロセッサによる並列演算効果を得られない処理も存在する。例えば、画像データの階調値のメジアン(中央値)を得る処理などは、メジアンフィルタ処理や、特許文献2記載の画像処理において必要とされるが、並列演算では実現できていない。具体的には、メジアンを得るための手順としては、各画素の階調値を降べき順又は昇べき順に並び替えた後に、母数の2分の1に相当する順位の階調値を求めるか、あるいはヒストグラムを作成した後に度数累計が母数の2分の1に達したときの階調値を採用するなどの手法がある。しかしながら、前者は並び替え処理を行うので並列演算効果を得られず、後者はヒストグラムを作成するときに並列演算効果を得られない。従って、画像処理用のSIMD型マイクロプロセッサでは、ヒストグラムを高速に作成する技術が求められている。
However, among the processes that handle image data, there are processes that cannot obtain the parallel operation effect by the SIMD type microprocessor. For example, the process of obtaining the median (median value) of the gradation values of the image data is required in the median filter process and the image process described in
特許文献1には、各PEに固有のアドレスを割り当て、当該アドレスを指定することにより、外部データ転送装置などのSIMD型マイクロプロセッサの外部装置と、任意のPEとの間で画像データを送受信する方法が開示されている。図9を参照して、特許文献1記載の方法を用いて256階調の画素データの階調値のヒストグラムを生成するための従来技術に係るヒストグラム生成処理を説明する。
In
図9は、従来技術に係るSIMD型マイクロプロセッサ1Pの構成を示すブロック図である。図9において、SIMD型マイクロプロセッサ1Pは、グローバルプロセッサ(以下、GP(Global Processor)という。)10と、256個のプロセッサエレメントPE0P,PE1P,…,PE255Pとを備えて構成される。ここで、GP10は、SISD(Single Instruction Stream, Single Data Stream)タイプのプロセッサであり、SIMD型マイクロプロセッサ1Pの全体の動作、ならびにプロセッサエレメントPE0P〜PE255Pの各動作を制御するとともに、外部データ転送装置2に対して動作設定用データ及びデータ転送のためのコマンドなどを送信する。また、各プロセッサエレメントPEnP(n=0,1,…,255)は、デコーダ及びコントローラ11と、ポートレジスタ40と、算術論理演算回路(以下、ALU(Arithmetic Logic Unit)という。)14及びカウンタレジスタ15を備えた累積演算回路13と、演算データバス21及び22とを備えて構成される。また、各プロセッサエレメントPEnPにはプロセッサエレメント番号nに対応する固有のアドレスnが割り当てられている。
FIG. 9 is a block diagram showing a configuration of a SIMD type microprocessor 1P according to the prior art. 9, the SIMD type microprocessor 1P includes a global processor (hereinafter referred to as GP (Global Processor)) 10 and 256 processor elements PE0P, PE1P,..., PE255P. Here, the
また、図9において、外部データ転送装置2は、プロセッサエレメントPE0P〜PE255Pと接続されていて、データの読み出し又は書き込みを指示するための制御信号と、読み出し元又は書き込み先のプロセッサエレメントの固有アドレスを示すアドレス信号とを発生して、プロセッサエレメントPE0P〜PE255Pに出力する。各プロセッサエレメントPEnPにおいて、デコーダ及びコントローラ11は、入力されるアドレス信号に含まれるアドレスがプロセッサエレメントPEnPに割り当てられているアドレスnと一致し、かつ入力される制御信号がデータ読み出しを示すときに、データ読み出しを指示する指示信号S11をポートレジスタ40に出力し、これに応答して、ポートレジスタ40は当該ポートレジスタ40に格納されたデータを、データバスを介して外部データ転送装置2に出力する。また、各プロセッサエレメントPEnPにおいて、デコーダ及びコントローラ11は、入力されるアドレス信号に含まれるアドレスがプロセッサエレメントPEnPに割り当てられているアドレスnと一致し、かつ入力される制御信号がデータ書き込みを示すときに、データ書き込みを指示する指示信号S11をポートレジスタ40に出力し、これに応答して、外部データ転送装置2からデータバスに出力されたデータをポートレジスタ40に格納する。以上説明したように、データ転送装置2と各プロセッサエレメントPEnPとの間でのデータ転送が実行される。
In FIG. 9, the external
さらに、図9において、GP10は、各ポートレジスタ40に格納されたデータに対して、累積演算回路13などの演算回路を用いて演算処理を実行する。ここで、外部データ転送装置2と、GP10とは互いに独立して動作するので、GP10による演算処理を実行しているときに、外部データ転送装置2が各ポートレジスタ40内のデータを読み出して他の外部装置に転送し、又は、他の外部装置からのデータを各ポートレジスタ40に書き込むことができる。このため、GP10は、外部装置との間でのデータ転送処理のために命令ステップを費やすことがない。
Further, in FIG. 9, the
図9の外部データ転送装置2は、通常は、アドレスカウンタなどを用いてプロセッサエレメント番号nに従った順序で各プロセッサエレメントPEnPにアクセスする。このとき、各アドレスnを画素データの階調値nに対応づけることにより、以下に説明するように、SIMD型マイクロプロセッサ1Pを階調値のヒストグラムを生成するために用いることができる。
The external
まず始めに、GP10は、全てのカウンタレジスタ15をリセットする。その後、外部データ転送装置2は、入力される画素データの階調値(0から255までの間の値である。)をアドレスとして含むアドレス信号と、データ書き込みを示す制御信号とを各デコーダ及びコントローラ11に出力する(以下、データ転送処理という。)。これに応答して、書き込み対象のプロセッサエレメントPEnPのデコーダ及びコントローラ11は、対応するポートレジスタ40にデータ値「1」を書き込み、書き込み対象のプロセッサエレメントPEnP以外のデコーダ及びコントローラ11は、対応するポートレジスタ40にデータ値「0」を書き込む。さらに、各ポートレジスタ40は、格納されたデータC40を演算データバス21を介してALU14に出力し、各カウンタレジスタ15は、格納されたデータC15を演算データバス22を介してALU15に出力する。次に、GP10は、全てのALU14を、入力されるデータC40とデータC15とを加算して、加算結果のデータC15をカウンタレジスタ15に格納するように制御する(以下、並列加算処理という。)。上述した外部データ転送装置2によるデータ転送処理と、GP10による並列加算処理とを交互に繰り返して実行することにより、各プロセッサエレメントPE0P,PE1P,…,PE255Pのカウンタレジスタ15には、階調値0,1,…,255の度数がそれぞれ格納される。
First, the
しかしながら、従来技術に係るヒストグラム生成処理では、外部データ転送装置2によるデータ転送処理を1回実行する毎に、GP10による並列加算処理を実行する必要があり、ヒストグラムの生成に比較的長い時間を必要とする。また、ヒストグラム生成処理中は、SIMD型マイクロプロセッサ1Pはヒストグラム生成処理専用に用いられ、他の処理を同時に実行できないのでシステム全体のスループットが低下するという課題があった。
However, in the histogram generation processing according to the prior art, it is necessary to execute parallel addition processing by GP10 every time the data transfer processing by the external
本発明の目的は以上の問題点を解決し、従来技術に比較してヒストグラムを高速に生成でき、システム全体のスループットを向上できるSIMD型マイクロプロセッサ及びその処理方法を提供することにある。 An object of the present invention is to solve the above problems, and to provide a SIMD type microprocessor capable of generating a histogram at a higher speed than the prior art and improving the throughput of the entire system, and a processing method therefor.
第1の発明に係るSIMD型マイクロプロセッサは、
画素データの画素値をアドレスとして含むアドレス信号を順次入力し、複数の画素データの各画素値のヒストグラムを生成するSIMD型マイクロプロセッサにおいて、
画素値に対応する固有のアドレスをそれぞれ有する複数のプロセッサエレメントであって、所定の第1のビット幅を有しかつ当該固有のアドレスに対応する画素値の度数を格納する記憶手段を備えた累積加算手段と、上記第1のビット幅より小さい所定の第2のビット幅を有しかつ所定のカウント値を格納するカウンタ手段とをそれぞれ備えた複数のプロセッサエレメントと、
上記各プロセッサエレメントを制御する制御手段とを備え、
上記アドレス信号が上記SIMD型マイクロプロセッサに入力される毎に、当該入力されるアドレス信号に含まれるアドレスを有するプロセッサエレメントのカウンタ手段は、上記カウント値を1だけインクリメントし、
上記制御手段は、所定のタイミングで、上記各プロセッサエレメントのカウンタ手段に格納されたカウント値を、当該カウンタ手段に対応する記憶手段に格納された度数に累積加算するように上記各累積加算手段を制御する並列加算処理を実行するとともに、上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をリセットするように制御することを特徴とする。
The SIMD type microprocessor according to the first invention is:
In a SIMD type microprocessor that sequentially inputs an address signal including pixel values of pixel data as addresses and generates a histogram of each pixel value of a plurality of pixel data,
A plurality of processor elements each having a unique address corresponding to a pixel value, and a storage unit having a predetermined first bit width and storing a frequency of the pixel value corresponding to the unique address A plurality of processor elements each having an adding means and a counter means having a predetermined second bit width smaller than the first bit width and storing a predetermined count value;
Control means for controlling each of the processor elements,
Each time the address signal is input to the SIMD type microprocessor, the counter means of the processor element having the address included in the input address signal increments the count value by 1.
The control means sets the cumulative addition means so as to cumulatively add the count value stored in the counter means of each processor element to the frequency stored in the storage means corresponding to the counter means at a predetermined timing. The parallel addition process to be controlled is executed, and the count value stored in the counter means of each processor element is controlled to be reset.
上記SIMD型マイクロプロセッサにおいて、上記複数のプロセッサエレメントのカウンタ手段のうちの少なくとも1つのカウンタ手段に格納されたカウント値が、上記第2のビット幅に対応する所定のしきい値カウント値になったとき、割込要求信号を発生して上記制御手段に出力する割込要求信号発生手段をさらに備え、
上記制御手段は、上記割込要求信号に応答して、上記並列加算処理を実行するとともに上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をゼロにリセットするように制御することを特徴とする。
In the SIMD type microprocessor, the count value stored in at least one of the counter means of the plurality of processor elements becomes a predetermined threshold count value corresponding to the second bit width. And further comprising an interrupt request signal generating means for generating an interrupt request signal and outputting it to the control means,
In response to the interrupt request signal, the control means performs the parallel addition process and controls the count value stored in the counter means of each processor element to be reset to zero. .
また、上記SIMD型マイクロプロセッサにおいて、上記各プロセッサエレメントのカウンタ手段は、縦続接続された複数のレジスタを備えたシフトレジスタであることを特徴とする。 In the SIMD type microprocessor, the counter means of each processor element is a shift register including a plurality of cascade-connected registers.
さらに、上記SIMD型マイクロプロセッサにおいて、上記各プロセッサエレメントは、上記シフトレジスタに格納されたカウント値をバイナリデータに符号化して、当該シフトレジスタに対応する上記累積加算手段に出力するエンコーダをさらに備え、
上記各プロセッサエレメントの累積加算手段は、上記カウント値に代えて、当該累積加算手段に対応する上記エンコーダから入力されるバイナリデータを、上記記憶手段に格納された度数に累積加算することを特徴とする。
Further, in the SIMD type microprocessor, each processor element further includes an encoder that encodes a count value stored in the shift register into binary data and outputs the binary data to the cumulative addition unit corresponding to the shift register,
The cumulative addition means of each processor element is characterized in that instead of the count value, binary data input from the encoder corresponding to the cumulative addition means is cumulatively added to the frequency stored in the storage means. To do.
またさらに、上記SIMD型マイクロプロセッサにおいて、上記各プロセッサエレメントの累積加算手段は、上記累積加算のための算術論理演算回路を備えたことを特徴とする。 Still further, in the SIMD type microprocessor, the cumulative addition means of each processor element includes an arithmetic logic operation circuit for the cumulative addition.
また、上記SIMD型マイクロプロセッサにおいて、上記画素値は、階調値であることを特徴とする。 In the SIMD type microprocessor, the pixel value is a gradation value.
第2の発明に係るSIMD型マイクロプロセッサの処理方法は、
画素データの画素値をアドレスとして含むアドレス信号を順次入力し、複数の画素データの各画素値のヒストグラムを生成するSIMD型マイクロプロセッサの処理方法において、
上記SIMD型マイクロプロセッサは、
画素値に対応する固有のアドレスをそれぞれ有する複数のプロセッサエレメントであって、所定の第1のビット幅を有しかつ当該固有のアドレスに対応する画素値の度数を格納する記憶手段を備えた累積加算手段と、上記第1のビット幅より小さい所定の第2のビット幅を有しかつ所定のカウント値を格納するカウンタ手段とをそれぞれ備えた複数のプロセッサエレメントと、
上記各プロセッサエレメントを制御する制御手段とを備え、
上記処理方法は、
上記アドレス信号が上記SIMD型マイクロプロセッサに入力される毎に、当該入力されるアドレス信号に含まれるアドレスを有するプロセッサエレメントのカウンタ手段が、上記カウント値を1だけインクリメントするステップと、
上記制御手段が、所定のタイミングで、上記各プロセッサエレメントのカウンタ手段に格納されたカウント値を、当該カウンタ手段に対応する記憶手段に格納された度数に累積加算するように上記各累積加算手段を制御する並列加算処理を実行するとともに、上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をリセットするように制御するステップとを含むことを特徴とする。
The processing method of the SIMD type microprocessor according to the second invention is as follows:
In a processing method of a SIMD type microprocessor that sequentially inputs an address signal including a pixel value of pixel data as an address and generates a histogram of each pixel value of a plurality of pixel data,
The SIMD type microprocessor is
A plurality of processor elements each having a unique address corresponding to a pixel value, and a storage unit having a predetermined first bit width and storing a frequency of the pixel value corresponding to the unique address A plurality of processor elements each having an adding means and a counter means having a predetermined second bit width smaller than the first bit width and storing a predetermined count value;
Control means for controlling each of the processor elements,
The above processing method is
Each time the address signal is input to the SIMD type microprocessor, a counter means of a processor element having an address included in the input address signal increments the count value by one;
Each of the cumulative addition means is configured to cumulatively add the count value stored in the counter means of each processor element to the frequency stored in the storage means corresponding to the counter means at a predetermined timing. Performing parallel addition processing to be controlled, and controlling to reset the count value stored in the counter means of each processor element.
上記SIMD型マイクロプロセッサの処理方法において、上記SIMD型マイクロプロセッサは、上記複数のプロセッサエレメントのカウンタ手段のうちの少なくとも1つのカウンタ手段に格納されたカウント値が、上記第2のビット幅に対応する所定のしきい値カウント値になったとき、割込要求信号を発生して上記制御手段に出力する割込要求信号発生手段をさらに備え、
上記処理方法は、上記制御手段が、上記割込要求信号に応答して、上記並列加算処理を実行するとともに上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をゼロにリセットするように制御するステップをさらに含むことを特徴とする。
In the processing method of the SIMD type microprocessor, the SIMD type microprocessor has a count value stored in at least one of the counter means of the plurality of processor elements corresponding to the second bit width. An interrupt request signal generating means for generating an interrupt request signal and outputting it to the control means when a predetermined threshold count value is reached;
In the processing method, in response to the interrupt request signal, the control unit performs the parallel addition processing and controls the count value stored in the counter unit of each processor element to be reset to zero. The method further includes a step.
また、上記SIMD型マイクロプロセッサの処理方法において、上記各プロセッサエレメントのカウンタ手段は、縦続接続された複数のレジスタを備えたシフトレジスタであることを特徴とする。 Further, in the processing method of the SIMD type microprocessor, the counter means of each processor element is a shift register including a plurality of cascade-connected registers.
さらに、上記SIMD型マイクロプロセッサの処理方法において、上記各プロセッサエレメントは、上記シフトレジスタに格納されたカウント値をバイナリデータに符号化して、当該シフトレジスタに対応する上記累積加算手段に出力するエンコーダをさらに備え、
上記処理方法は、上記各プロセッサエレメントの累積加算手段が、上記カウント値に代えて、当該累積加算手段に対応する上記エンコーダから入力されるバイナリデータを、上記記憶手段に格納された度数に累積加算するステップをさらに含むことを特徴とする。
Furthermore, in the processing method of the SIMD type microprocessor, each processor element encodes a count value stored in the shift register into binary data, and outputs an encoder to the cumulative addition means corresponding to the shift register. In addition,
In the processing method, the cumulative addition means of each processor element cumulatively adds binary data input from the encoder corresponding to the cumulative addition means to the frequency stored in the storage means instead of the count value. The method further includes the step of:
またさらに、上記SIMD型マイクロプロセッサの処理方法において、上記各プロセッサエレメントの累積加算手段は、上記累積加算のための算術論理演算回路を備えたことを特徴とする。 Still further, in the processing method of the SIMD type microprocessor, the cumulative addition means of each processor element includes an arithmetic logic circuit for the cumulative addition.
また、上記SIMD型マイクロプロセッサの処理方法において、上記画素値は、階調値であることを特徴とする。 In the processing method of the SIMD type microprocessor, the pixel value is a gradation value.
本発明に係るSIMD型マイクロプロセッサ及びSIMD型マイクロプロセッサの処理方法によれば、SIMD型マイクロプロセッサの各プロセッサエレメントは画素値に対応する固有のアドレスをそれぞれ有し、所定の第1のビット幅を有しかつ当該固有のアドレスに対応する画素値の度数を格納する記憶手段を備えた累積加算手段と、上記第1のビット幅より小さい所定の第2のビット幅を有しかつ所定のカウント値を格納するカウンタ手段とをそれぞれ備える。また、アドレス信号がSIMD型マイクロプロセッサに入力される毎に、当該入力されるアドレス信号に含まれるアドレスを有するプロセッサエレメントのカウンタ手段は、上記カウント値を1だけインクリメントする。さらに、制御手段は、所定のタイミングで、各プロセッサエレメントのカウンタ手段に格納されたカウント値を、当該カウンタ手段に対応する記憶手段に格納された度数に累積加算するように上記各累積加算手段を制御する並列加算処理を実行するとともに、上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をリセットするように制御する。従って、従来技術に比較してヒストグラムを高速に生成でき、システム全体のスループットを向上できる。 According to the SIMD type microprocessor and the processing method of the SIMD type microprocessor according to the present invention, each processor element of the SIMD type microprocessor has a unique address corresponding to the pixel value, and has a predetermined first bit width. A cumulative addition means having storage means for storing the frequency of the pixel value corresponding to the unique address, a predetermined second bit width smaller than the first bit width, and a predetermined count value Counter means for storing. Each time an address signal is input to the SIMD type microprocessor, the counter means of the processor element having the address included in the input address signal increments the count value by one. Further, the control means adds each of the cumulative addition means so as to cumulatively add the count value stored in the counter means of each processor element to the frequency stored in the storage means corresponding to the counter means at a predetermined timing. The parallel addition processing to be controlled is executed, and the count value stored in the counter means of each processor element is controlled to be reset. Therefore, a histogram can be generated at a higher speed than in the prior art, and the throughput of the entire system can be improved.
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。 Hereinafter, embodiments according to the present invention will be described with reference to the drawings. In addition, in each following embodiment, the same code | symbol is attached | subjected about the same component.
第1の実施形態.
図1は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ1の構成を示すブロック図であり、図2は、図1のSIMD型マイクロプロセッサ1によって実行されるヒストグラム生成処理を示すシーケンス図である。なお、図1において、図9と同様のデータバスを記載しているが、以下の各実施形態に係るヒストグラム生成処理では用いられない。図1において、SIMD型マイクロプロセッサ1は、外部データ転送装置2に入力される256階調の画素データの階調値のヒストグラムを生成するために用いられる。SIMD型マイクロプロセッサ1は、GP10と、256個のプロセッサエレメントPE0,PE1,…,PE255とを備えて構成される。ここで、GP10は、SISDタイプのプロセッサであり、SIMD型マイクロプロセッサ1の全体の動作、ならびにプロセッサエレメントPE0〜PE255の各動作を制御するとともに、外部データ転送装置2に対して動作設定用データ及びデータ転送のためのコマンドなどを送信する。さらに、各プロセッサエレメントPEn(n=0,1,…,255)は、デコーダ及びコントローラ11と、マイクロカウンタ(小度数カウンタ)12と、ALU14及びカウンタレジスタ15を備えた累積加算回路13と、演算データバス21及び22とを備えて構成される。ここで、各プロセッサエレメントPEnには、プロセッサエレメント番号nに対応する固有のアドレスnが割り当てられている。
First embodiment.
FIG. 1 is a block diagram showing a configuration of a
図1において、外部データ転送装置2は、SIMD型マイクロプロセッサ1と同期して動作する。外部データ転送装置2は、メモリなどの外部装置から画素データを入力する毎に、入力される画素データの階調値をアドレスとして含むアドレス信号と、データ書き込みを示す制御信号とを発生して、各プロセッサエレメントPEnのデコーダ及びコントローラ11に出力する。各プロセッサエレメントPEnにおいて、デコーダ及びコントローラ11は、入力されるアドレス信号に含まれるアドレスとプロセッサエレメントPEnのアドレスnとが一致し、かつ制御信号がデータ書き込みを示すときは、カウントアップを指示する指示信号S11を発生してマイクロカウンタ12に出力する。また、マイクロカウンタ12は、GP10からのリセット命令に応答してカウント値C12をゼロにリセットし、データ書き込みを示す指示信号S11に応答して、カウント値C12を1だけインクリメントする。マイクロカウンタ12の出力端子は、演算データバス21を介してALU14の一方の入力端子に接続されている。
In FIG. 1, the external
さらに、図1において、カウンタレジスタ15は、ALU14からのカウント値C14をカウント値C15として格納するとともに、GP10からのリセット命令に応答してカウント値C15をゼロにリセットする。カウンタレジスタ15の出力端子は、演算データバス22を介してALU14の他方の入力端子に接続されている。ALU14は、GP10からの累積加算命令A0に応答して、入力されるカウント値C12とカウント値C15とを加算し、加算結果のカウント値C14をカウンタレジスタ15に出力する。
Further, in FIG. 1, the counter register 15 stores the count value C14 from the
ここで、図1において、カウンタレジスタ15は、従来技術に係るSIMD型マイクロプロセッサ1Pにおいても演算に用いられるレジスタであり、図2を参照して後述するヒストグラム生成処理専用に設けられる構成要素ではない。カウンタレジスタ15は、各プロセッサエレメントPEnにおいて処理されるデータを格納できるビット幅を有する。また、マイクロカウンタ12のビット幅は、カウンタレジスタ15及びALU14のビット幅よりも小さい。例えば、カウンタレジスタ15及びALU14のビット幅は16ビットであり、マイクロカウンタ12のビット幅は8ビットである。
Here, in FIG. 1, the
次に、図2を参照して、SIMD型マイクロプロセッサ1によって実行されるヒストグラム生成処理を説明する。まず始めに、GP10は、リセット命令を、各プロセッサエレメントPEnのマイクロカウンタ12及びカウンタレジスタ15に出力する。これに応答して、各プロセッサエレメントPEnにおいて、マイクロカウンタ12は、カウント値C12をゼロにリセットし、カウンタレジスタ15は、カウント値C15をゼロにリセットする。次に、GP10は、後述する処理A1を開始することを指示する処理開始命令を外部データ転送装置2に出力する。これに応答して、外部データ転送装置2は、処理A1を実行する。
Next, a histogram generation process executed by the
処理A1において、外部データ転送装置2は、外部装置から1つの画素データを入力すると、入力された画素データの階調値をアドレスとして含むアドレス信号と、データ書き込みを示す制御信号とを発生して、各プロセッサエレメントPEnのデコーダ及びコントローラ11に出力する。これに応答して、各プロセッサエレメントPEnのデコーダ及びコントローラ11は、入力されたアドレス信号に含まれるアドレスがnであり、かつ入力された制御信号がデータ書き込みを示すか否かを判断し、YESのときは、カウントアップを指示する指示信号S11を発生してマイクロカウンタ12に出力する一方、NOのときは、指示信号S11を発生しない。さらに、カウントアップを指示する指示信号S11に応答して、マイクロカウンタ12はカウント値C12を1だけインクリメントする。
In the process A1, when the external
データ転送装置2は、以上説明した処理A1を、マイクロカウンタ12によって計数可能なカウント値C12の最大値と等しい回数だけ繰り返す。具体的には、本実施形態においてカウント値C12の最大値は255であり、処理A1は255回だけ繰り返して実行される。これにより、各階調値nに対応するアドレスnを有するプロセッサエレメントPEnのマイクロカウンタ12には、入力される画素データのうち階調値nを有する画素データの個数に対応するカウント値C12が格納される。ただし、カウント値C12は0から255までの間の値しか表現できないので、処理A1を256回以上続けて繰り返して実行すると、特定の階調値を有する画素データのみが外部データ転送装置2に入力された場合には、その階調値に対応するアドレスを有するプロセッサエレメントのマイクロカウンタ12はオーバーフローを起こしてしまう。このため、処理A1を255回だけ繰り返して実行された後、以下に説明する並列加算処理PAが実行される。
The
図2の並列加算処理PAにおいて、GP10は累積加算命令A0を全てのプロセッサエレメントPE0〜PE255のALU14に出力する。これに応答して、各プロセッサエレメントPEnのALU14は、カウント値C12とカウント値C15とを加算し、加算結果のカウント値C14をカウンタレジスタ15に出力する。プロセッサエレメントPE0〜PE255の各ALU14による加算処理は、SIMD型マイクロプロセッサ1の並列演算機能によって実行されるので、比較的短時間で終了する。並列加算処理PAの次に、GP10は、リセット命令を各プロセッサエレメントPEnのマイクロカウンタ12に出力する。これに応答して、全てのマイクロカウンタ12のカウント値C12はゼロにリセットされる。
In the parallel addition process PA of FIG. 2, the
図2において、255回の処理A1と、並列加算処理PAと、それに続くマイクロカウンタ12のリセット処理とを含む処理B1は、最後の画素データに対する処理が終了するまで繰り返して実行される。これにより、各プロセッサエレメントPEnのカウンタレジスタ15には、階調値nの度数に対応するカウント値C15が格納される。その後、外部データ転送装置2は、最後の画素データを処理したことを示す処理終了通知をGP10に出力する。これに応答して、GP10は、各プロセッサエレメントPEnのカウンタレジスタ15に対して読み出し命令を出力し、これに応答して、各カウンタレジスタ15は、カウント値C15をGP10に出力し、ヒストグラム生成処理を終了する。
In FIG. 2, a process B1 including a process A1 of 255 times, a parallel addition process PA, and a subsequent reset process of the
以上説明したように、本実施形態に係るSIMD型マイクロプロセッサ1において、各プロセッサエレメントPEnは、階調値nに対応する固有のアドレスnをそれぞれ有する。また、各プロセッサエレメントPEnは、16ビットのビット幅を有しかつアドレスnに対応する階調値nの度数に対応するカウント値C15を格納するカウンタレジスタ15を備えた累積加算回路13と、8ビットのビット幅を有しかつカウント値C12を格納するマイクロカウンタ12とをそれぞれ備える。また、外部データ転送装置2からアドレス信号がSIMD型マイクロプロセッサ1に入力される毎に、当該入力されるアドレス信号に含まれるアドレスnを有するプロセッサエレメントPEnのマイクロカンタ12は、カウント値C12を1だけインクリメントする。さらに、グローバルプロセッサ10は、図2の処理A1を255回だけ繰り返して実行したタイミングで、各プロセッサエレメントPEnのマイクロカンタ12に格納されたカウント値C12を、マイクロカンタ12に対応するカウンタレジスタ15に格納されたカウント値C15に累積加算するように各累積加算回路13を制御する並列加算処理PAを実行するとともに、各プロセッサエレメンPEnのマイクロカウンタ12に格納されたカウント値C12をリセットするように制御する。
As described above, in the
従って、本実施形態によれば、各プロセッサエレメントPEnにマイクロカウンタ12を設けたので、処理対象の画素データ毎に累積加算命令A0を実行する必要がなく、従来技術に比較してヒストグラムを高速に生成できる。また、図2の処理A1をマイクロカウンタ12に格納されるカウント値C12の最大値に等しい回数だけ実行している期間中は、SIMD型マイクロプロセッサ1は他の処理を実行できるので、従来技術に比較してシステム全体のスループットが向上する。さらに、SIMD型マイクロプロセッサ1は、従来技術に係るSIMD型マイクロプロセッサ1P(図9参照。)に比較して、マイクロカウンタ12をさらに設けるだけで実現できる。一般に、従来技術に係るSIMD型マイクロプロセッサ1Pにおいて、ポートレジスタ40のビット幅は累積加算回路13のビット幅と等しい(例えば、16ビットである。)が、本実施形態に係るSIMD型マイクロプロセッサ1に設けられるマイクロカウンタ12のビット幅(本実施形態では、8ビットである。)は、ポートレジスタ40のビット幅より小さい。このため、従来技術に係るSIMD型マイクロプロセッサ1Pに新たに追加する構成要素のサイズは比較的小さくてすむ。
Therefore, according to the present embodiment, since the
なお、本実施形態において、処理A1を255回だけ繰り返して実行したが、本発明はこれに限らず、カウント値C12の最大値以下の回数だけ繰り返して実行すればよい。 In the present embodiment, the process A1 is repeatedly executed only 255 times. However, the present invention is not limited to this, and the process A1 may be repeatedly executed the number of times equal to or less than the maximum value of the count value C12.
また、各カウンタレジスタ15からカウント値C15を読み出した後に、処理対象の画素データを追加して、さらに処理B1を継続して実行してもよい。
Further, after reading the count value C15 from each
さらに、マイクロカンタ12のビット幅は8ビットであったが、本発明はこれに限らず、カウンタレジスタ15のビット幅より小さければよい。
Further, although the bit width of the
第2の実施形態.
図3は、本発明の第2の実施形態に係るSIMD型マイクロプロセッサ1Aの構成を示すブロック図であり、図4は、図3のSIMD型マイクロプロセッサ1Aによって実行されるヒストグラム生成処理を示すシーケンス図である。
Second embodiment.
FIG. 3 is a block diagram showing a configuration of a
図3において、SIMD型マイクロプロセッサ1Aは、GP10と、256個のプロセッサエレメントPE0A,PE1A,…,PE255Aと、GP10に接続されたIRQ(Interrupt ReQuest)信号線31と、所定の電源電圧Vccを出力する直流電源とIRQ信号線31との間に接続されたプルアップ抵抗32とを備えて構成される。各プロセッサエレメントPEnAには、プロセッサエレメント番号nに対応する固有のアドレスnが割り当てられている。ここで、各プロセッサエレメントPEnAは、第1の実施形態に係るプロセッサエレメントPEnに比較して、IRQ条件判定回路16と、Nチャネル型MOS電界効果トランジスタ(以下、nMOSFETという。)17とをさらに備えて構成されたことを特徴としている。
In FIG. 3, a
各プロセッサエレメントPEnAにおいて、nMOSFET17は、IRQ条件判定回路16に接続されたゲートと、IRQ信号線31に接続されたドレインと、接地されたソースとを有する。すなわち、全てのnMOSFET17は互いにワイヤードオア接続されている。また、各プロセッサエレメントPEnAにおいて、IRQ条件判定回路16は、マイクロカウンタ12のカウント値C12を検出し、検出されたカウント値C12がカウント値C12の最大値(本実施形態では、255である。)であるとき、nMOSFET17をオンするように制御する。以上のように構成することにより、少なくとも1つのnMOSFET17がオンしたとき、IRQ信号線31の電圧レベルがローレベルにされる。以下、IRQ信号線31の電圧レベルがローレベルにされことを、割込要求信号が発生されるという。プロセッサエレメントPE0A〜PE255Aの各IRQ条件判定回路16及びnMOSFET17と、IRQ信号線31と、プルアップ抵抗32とは、プロセッサエレメントPE0A〜PE255Aのマイクロカンタ12のうちの少なくとも1つのマイクロカンタ12に格納されたカウント値C12が、マイクロカウンタ12のビット幅に対応する所定のしきい値カウント値(本実施形態では、255である。)になったとき、割込要求信号を発生してGP10に出力する割込要求信号発生手段を構成する。割込要求信号に応答して、GP10は並列加算処理PAを実行する。
In each processor element PEnA, the
次に、図4を参照して、SIMD型マイクロプロセッサ1Aによって実行されるヒストグラム生成処理を説明する。まず始めに、GP10は、リセット命令を、各プロセッサエレメントPEnのマイクロカウンタ12及びカウンタレジスタ15に出力する。これに応答して、各プロセッサエレメントPEnAにおいて、マイクロカウンタ12は、カウント値C12をゼロにリセットし、カウンタレジスタ15は、カウント値C15をゼロにリセットする。次に、GP10は、図2の処理A1と同様の処理A1を開始することを指示する処理開始命令を外部データ転送装置2に出力する。これに応答して、外部データ転送装置2は、処理A1を実行する。本実施形態では、処理A1が実行される毎に、各プロセッサエレメントPEnのIRQ条件判定回路16は、入力されるカウント値C12が255であるか否かを判断し、NOのときは対応するnMOSFET17をオンするように制御する。これにより、上述したように割込要求信号が発生されてGP10に出力される。すなわち、少なくとも1つのプロセッサエレメントPEnAにおいてカウント値C12が255であるときに、割込要求信号が発生される。また、全てのプロセッサエレメントPE0A〜PE255Aにおいてカウント値C12が255未満であるときは、図4に示すように、処理A1と、IRQ条件判定回路16による判断処理とを含む処理A2が繰り返して実行される。すなわち、処理A2を実行すると、いずれか1つのマイクロカウンタ12のカウント値C12が1だけインクリメントされる。そして、処理A2を繰り返して実行すると、各マイクロカウンタ12のカウント値C12が増えていき、少なくとも1つのマイクロカウンタ12のカウント値C12が255になると、対応するIRQ条件判定回路16は割込要求信号を発生してGP10に出力する。
Next, a histogram generation process executed by the
GP10は、割込要求信号に応答して、処理A2を実行しないように外部データ転送装置2を制御し、図2と同様の並列加算処理PAを割込処理として実行し、リセット命令を各プロセッサエレメントPEnのマイクロカウンタ12に出力する。これに応答して、全てのマイクロカウンタ12のカウント値C12はゼロにリセットされる。また、GP10は、処理A2を実行するように外部データ転送装置2を制御する。図4において、処理A2と、並列加算処理PAと、それに続くマイクロカウンタ12のリセット処理とを含む処理B2は、最後の画素データに対する処理が終了するまで繰り返して実行される。これにより、各プロセッサエレメントPEnのカウンタレジスタ15には、階調値nの度数に対応するカウント値C15が格納される。その後、外部データ転送装置2は、最後の画素データを処理したことを示す処理終了通知をGP10に出力する。これに応答して、GP10は、各プロセッサエレメントPEnのカウンタレジスタ15に対して読み出し命令を出力し、これに応答して、各カウンタレジスタ15は、カウント値C15をGP10に出力し、ヒストグラム生成処理を終了する。
In response to the interrupt request signal, the
図4において、1回の処理B2に含まれる処理A1の実行回数は、処理対象の画素データの階調値の分布によって変化する。例えば、処理対象の画素データの階調値の分布に偏りがあるときは、1回の処理B2に含まれる処理A1の実行回数は、マイクロカウンタ12のカウント値C12の最大値(255である。)に比較的近くなる。しかしながら、処理対象の画素データの階調値の分布に偏りがないときは、1回の処理B2に含まれる処理A1の実行回数は、マイクロカウンタ12のカウント値C12の最大値よりも大きくなり、第1の実施形態に比較して、処理A1を255回繰り返して実行する毎にデータ転送装置2による処理を中断して並列加算処理PAを実行する必要が無く、中断間隔(すなわち、並列加算処理PAの実行間隔である。)を長くすることができる。これによりSIMD型マイクロプロセッサ1Aにより他の処理を実行できる期間が長くなり、システム全体のスループットがさらに向上する。
In FIG. 4, the number of executions of the process A1 included in one process B2 varies depending on the distribution of gradation values of the pixel data to be processed. For example, when the distribution of gradation values of the pixel data to be processed is biased, the number of executions of the process A1 included in one process B2 is the maximum value (255) of the count value C12 of the microcounter 12. ) Is relatively close. However, when the distribution of gradation values of the pixel data to be processed is not biased, the number of executions of the process A1 included in one process B2 is larger than the maximum value of the count value C12 of the
なお、本実施形態において、IRQ条件判定回路16は、カウント値C12が255に等しいか否かを判断したが、本発明はこれに限らず、カウント値C12がカウント値C12の最大値以下の所定のしきい値に等しいか否かを判断すればよい。
In the present embodiment, the IRQ
また、各カウンタレジスタ15からカウント値C15を読み出した後に、処理対象の画素データを追加して、さらに処理B2を継続して実行してもよい。
Further, after reading the count value C15 from each
さらに、GP10は、割込要求信号に応答して、処理A2を実行しないように外部データ転送装置2を制御したが、本発明はこれに限らず、処理A2の実行間隔が並列加算処理PAを実行するために必要とされる期間よりも十分に長いときは、GP10は、割込要求信号に応答して、処理A2を実行しないように外部データ転送装置2を制御する必要はない。
Furthermore, in response to the interrupt request signal, the
第3の実施形態.
図5は、本発明の第3の実施形態に係るSIMD型マイクロプロセッサ1Bの構成を示すブロック図であり、図6は、図5のSIMD型マイクロプロセッサ1Bによって実行されるヒストグラム生成処理を示すシーケンス図である。
Third embodiment.
FIG. 5 is a block diagram showing a configuration of a SIMD type microprocessor 1B according to the third embodiment of the present invention, and FIG. 6 is a sequence showing a histogram generation process executed by the SIMD type microprocessor 1B of FIG. FIG.
図5において、SIMD型マイクロプロセッサ1Bは、GP10と、256個のプロセッサエレメントPE0B,PE1B,…,PE255Bと、GP10に接続されたIRQ信号線31と、所定の電源電圧Vccを出力する直流電源とIRQ信号線31との間に接続されたプルアップ抵抗32とを備えて構成される。各プロセッサエレメントPEnBには、プロセッサエレメント番号nに対応する固有のアドレスnが割り当てられている。ここで、各プロセッサエレメントPEnBは、第2の実施形態に係るプロセッサエレメントPEnAに比較して、デコーダ及びコントローラ11に代えてデコーダ及びコントローラ11Aを備え、マイクロカウンタ12に代えてシフトレジスタ12Aを備え、IRQ条件判定回路16に代えてIRQ条件判定回路16Aを備えたことを特徴としている。
In FIG. 5, the SIMD type microprocessor 1B includes a
図5の各プロセッサエレメントPEnBにおいて、デコーダ及びコントローラ11Aは、外部データ転送装置2からのアドレス信号及び制御信号を入力し、アドレス信号に含まれるアドレスとプロセッサエレメントPEnBのアドレスnとが一致し、かつ制御信号がデータ書き込みを示すときは、シフトアップを指示する指示信号S11Aを発生してシフトレジスタ12Aに出力する。また、各プロセッサエレメントPEnBにおいて、シフトレジスタ12Aは、縦続接続された8個の1ビットレジスタを備えて構成される。シフトレジスタ12Aは、シフトアップを指示する指示信号S11Aに応答して、格納している8ビットのビットデータC12Aの最下流の値C12AuをIRQ条件判定回路16Aに出力し、ビットデータC12Aの各ビットのデータ(0又は1である。)を、入力されるクロックに従って1段分だけ下流のレジスタにシフトし、最上流のレジスタに1を格納する。また、各シフトレジスタ12Aは、GP10からのリセット命令に応答して、ビットデータC12Aを「00000000」にリセットする。なお、シフトレジスタ12Aの出力端子は、演算データバス21を介してALU14の一方の入力端子に接続されている。
In each processor element PEnB of FIG. 5, the decoder and
また、図5において、各プロセッサエレメントPEnBにおいて、IRQ条件判定回路16Aは、入力される値C12Auが1であるとき、nMOSFET17をオンするように制御し、これにより割込要求信号がGP10に出力される。プロセッサエレメントPE0B〜PE255Bの各IRQ条件判定回路16A及びnMOSFET17と、IRQ信号線31と、プルアップ抵抗32とは、プロセッサエレメントPE0B〜PE255Bのシフトレジスタ12Aのうちの少なくとも1つのシフトレジスタ12Aに格納されたビットデータC12Aが、シフトレジスタ12Aのビット幅に対応する所定のしきい値ビットデータ(本実施形態では、「11111111」である。)になったとき、割込要求信号を発生してGP10に出力する割込要求信号発生手段を構成する。
In FIG. 5, in each processor element PEnB, the IRQ
次に、図6を参照して、SIMD型マイクロプロセッサ1Bによって実行されるヒストグラム生成処理を説明する。まず始めに、GP10は、リセット命令を、各プロセッサエレメントPEnBのシフトレジスタ12A及びカウンタレジスタ15に出力する。これに応答して、各プロセッサエレメントPEnにおいて、シフトレジスタ12Aは、ビットデータ12Aを「00000000」にリセットし、カウンタレジスタ15は、カウント値C15をゼロにリセットする。次に、GP10は、後述する処理A3を開始することを指示する処理開始命令を外部データ転送装置2に出力する。これに応答して、外部データ転送装置2は、処理A3を実行する。
Next, a histogram generation process executed by the SIMD type microprocessor 1B will be described with reference to FIG. First, the
処理A3において、外部データ転送装置2は、外部装置から1つの画素データを入力すると、入力された画素データの階調値をアドレスとして含むアドレス信号と、データ書き込みを示す制御信号とを発生して、各プロセッサエレメントPEnのデコーダ及びコントローラ11に出力する。これに応答して、各プロセッサエレメントPEnのデコーダ及びコントローラ11は、入力されたアドレス信号に含まれるアドレスがnであり、かつ入力された制御信号がデータ書き込みを示すか否かを判断し、YESのときは、シフトアップを指示する指示信号S11Aを発生してシフトレジスタ12Aに出力する一方、NOのときは、指示信号S11Aを発生しない。さらに、シフトアップを指示する指示信号S11Aに応答して、シフトレジスタ12Aは、ビットデータC12Aを1段分だけ下流のレジスタにシフトし、最上流に1を格納する。
In process A3, when the external
処理A3に続いて、各プロセッサエレメントPEnにおいて、IRQ条件判定回路16Aは、入力される値C12Auが1であるか否かを判断し、NOのときは対応するnMOSFET17をオンするように制御する。これにより、割込要求信号が発生されてGP10に出力される。すなわち、少なくとも1つのプロセッサエレメントPEnBにおいてビットデータC12Aが「11111111」であるときに、割込要求信号が発生される。また、全てのプロセッサエレメントPE0B〜PE255BにおいてビットデータC12Aが「11111111」以外であるときは、図6に示すように、処理A3と、IRQ条件判定回路16Aによる判断処理とを含む処理A4が繰り返して実行される。すなわち、処理A3を繰り返して実行すると、各ビットデータC12Aの値は、「00000000」,「10000000」,「11000000」,…のように変化する。そして、少なくとも1つのシフトレジスタ12AのビットデータC12Aが「11111111」になると、対応するIRQ条件判定回路16Aは割込要求信号を発生してGP10に出力する。
Subsequent to the processing A3, in each processor element PEn, the IRQ
GP10は、割込要求信号に応答して、処理A4を実行しないように外部データ転送装置2を制御し、累積加算命令A1を全てのプロセッサエレメントPE0B〜PE255BのALU14に出力する。これに応答して、各プロセッサエレメントPEnBのALU14は、ビットデータC12Aが「10000000」と等しいときにのみ、カウント値C15に1を加算し、加算結果のカウント値C14をカウンタレジスタ15に出力する。次に、GP10は、累積加算命令A2を全てのプロセッサエレメントPE0B〜PE255BのALU14に出力する。これに応答して、各プロセッサエレメントPEnBのALU14は、ビットデータC12Aが「11000000」と等しいときにのみ、カウント値C15に1を加算し、加算結果のカウント値C14をカウンタレジスタ15に出力する。以下、同様に、GP10は、累積加算命令A3,A4,…,A8を全てのプロセッサエレメントPE0B〜PE255BのALU14に順次出力する。ここで、累積加算命令Am(m=1,2,…,8)は、ビットデータC12Aの最上流からmビット目までのビットに1が格納されているときにのみ、カウント値C15にmを加算して、加算結果のカウント値C14をカウンタレジスタ15に出力することを指示する命令である。プロセッサエレメントPE0B〜PE255Bの各ALU14による加算処理は、SIMD型マイクロプロセッサ1Bの並列演算機能によって実行されるので、比較的短時間で終了する。
In response to the interrupt request signal, the
GP10は、累積加算命令A8を全てのプロセッサエレメントPE0B〜PE255BALU14に出力した後、リセット命令を各プロセッサエレメントPEnBのシフトレジスタ12Aに出力する。これに応答して、全てのシフトレジスタ12AのビットデータC12Aは「00000000」にリセットされる。また、GP10は、処理A4を実行するように外部データ転送装置2を制御する。
The
図6において、処理A4と、累積加算命令A1〜A8と、それに続くシフトレジスタ12Aのリセット処理とを含む処理B3は、最後の画素データに対する処理が終了するまで繰り返して実行される。これにより、各プロセッサエレメントPEnBのカウンタレジスタ15には、階調値nの度数に対応するカウント値C15が格納される。その後、外部データ転送装置2は、最後の画素データを処理したことを示す処理終了通知をGP10に出力する。これに応答して、GP10は、各プロセッサエレメントPEnのカウンタレジスタ15に対して読み出し命令を出力し、これに応答して、各カウンタレジスタ15は、カウント値C15をGP10に出力し、ヒストグラム生成処理を終了する。
In FIG. 6, the process B3 including the process A4, the cumulative addition instructions A1 to A8, and the subsequent reset process of the
図6において、1回の処理B3に含まれる処理A3の実行回数は、処理対象の画素データの階調値の分布によって変化する。例えば、処理対象の画素データの階調値の分布に偏りがあるときは、1回の処理B3に含まれる処理A3の実行回数は、シフトレジスタ12Aのビット幅(本実施形態では、8である。)に比較的近くなる。しかしながら、処理対象の画素データの階調値の分布に偏りがないときは、1回の処理B3に含まれる処理A3の実行回数は、シフトレジスタ12Aのビット幅よりも大きくなる。
In FIG. 6, the number of executions of the process A3 included in one process B3 varies depending on the distribution of gradation values of the pixel data to be processed. For example, when the distribution of gradation values of pixel data to be processed is biased, the number of executions of processing A3 included in one processing B3 is the bit width of the
一般に、カウンタレジスタよりシフトレジスタの方が単純な構成を有するので、シフトレジスタ12Aは、カウントアップ機能を有するマイクロカウンタ12よりシンプルな回路構成で実現できる。従って、第2の実施形態に係るSIMD型マイクロプロセッサ1Aに比較して、回路規模及び消費電力を小さく抑えることができる。
In general, since the shift register has a simpler configuration than the counter register, the
なお、各カウンタレジスタ15からカウント値C15を読み出した後に、処理対象の画素データを追加して、さらに処理B3を継続して実行してもよい。
In addition, after reading the count value C15 from each
さらに、GP10は、割込要求信号に応答して、処理A4を実行しないように外部データ転送装置2を制御したが、本発明はこれに限らず、処理A4の実行間隔が累積加算命令A1〜A8を実行するために必要とされる期間よりも十分に長いときは、GP10は、割込要求信号に応答して、処理A4を実行しないように外部データ転送装置2を制御する必要はない。
Furthermore, in response to the interrupt request signal, the
第4の実施形態.
図7は、本発明の第4の実施形態に係るSIMD型マイクロプロセッサ1Cの構成を示すブロック図であり、図8は、図7のSIMD型マイクロプロセッサ1Cによって実行されるヒストグラム生成処理を示すシーケンス図である。
Fourth embodiment.
FIG. 7 is a block diagram showing a configuration of a SIMD type microprocessor 1C according to the fourth embodiment of the present invention, and FIG. 8 is a sequence showing a histogram generation process executed by the SIMD type microprocessor 1C of FIG. FIG.
図7において、SIMD型マイクロプロセッサ1Cは、GP10と、256個のプロセッサエレメントPE0C,PE1C,…,PE255Cと、GP10に接続されたIRQ信号線31と、所定の電源電圧Vccを出力する直流電源とIRQ信号線31との間に接続されたプルアップ抵抗32とを備えて構成される。各プロセッサエレメントPEnCには、プロセッサエレメント番号nに対応する固有のアドレスnが割り当てられている。ここで、各プロセッサエレメントPEnCは、第3の実施形態に係るプロセッサエレメントPEnBに比較して、シフトレジスタ12Aと演算データバス21との間に設けられたエンコーダ18をさらに備えたことを特徴としている。図7において、エンコーダ18は、シフトレジスタ12Aから出力されたビットデータC12Aを、バイナリデータC18に符号化し、演算データバス21を介してALU14に出力する。
In FIG. 7, the SIMD type microprocessor 1C includes a
次に、図8を参照して、SIMD型マイクロプロセッサ1Cによって実行されるヒストグラム生成処理を説明する。図8のヒストグラム生成処理は、図6のヒストグラム生成処理に比較して、割込要求信号がGP10に出力されるタイミングより後の処理のみが異なる。GP10は、割込要求信号に応答して、処理A4を実行しないように外部データ転送装置2を制御し、各プロセッサエレメントPEnCのALU14を、演算データバス21に出力されたバイナリデータC18を読み出すように制御する。次に、並列加算処理PA1が実行される。並列加算処理PA1において、GP10は、累積加算命令A0を全てのプロセッサエレメントPE0C〜PE255CのALU14に出力する。これに応答して、各プロセッサエレメントPEnCのALU14は、入力されるバイナリデータC18とカウント値C15とを加算して、加算結果のカウント値C14をカウンタレジスタ15に出力する。プロセッサエレメントPE0C〜PE255Cの各ALU14による加算処理は、SIMD型マイクロプロセッサ1Cの並列演算機能によって実行されるので、比較的短時間で終了する。
Next, a histogram generation process executed by the SIMD type microprocessor 1C will be described with reference to FIG. The histogram generation process in FIG. 8 differs from the histogram generation process in FIG. 6 only in the process after the timing at which the interrupt request signal is output to the
次に、GP10は、リセット命令を各プロセッサエレメントPEnCのシフトレジスタ12Aに出力する。これに応答して、全てのシフトレジスタ12AのビットデータC12Aは「00000000」にリセットされる。また、GP10は、処理A4を実行するように外部データ転送装置2を制御する。
Next, the
図8において、処理A4と、並列加算処理PA1と、それに続くシフトレジスタ12Aのリセット処理とを含む処理B4は、最後の画素データに対する処理が終了するまで繰り返して実行される。これにより、各プロセッサエレメントPEnCのカウンタレジスタ15には、階調値nの度数に対応するカウント値C15が格納される。その後、外部データ転送装置2は、最後の画素データを処理したことを示す処理終了通知をGP10に出力する。これに応答して、GP10は、各プロセッサエレメントPEnのカウンタレジスタ15に対して読み出し命令を出力し、これに応答して、各カウンタレジスタ15は、カウント値C15をGP10に出力し、ヒストグラム生成処理を終了する。
In FIG. 8, a process B4 including a process A4, a parallel addition process PA1, and a subsequent reset process of the
第3の実施形態では、シフトレジスタ12Aに格納されたビットデータC12AをALU14に出力したため、処理B3において、8個の累積加算命令A1〜A8を順次実行する必要があった。これに対して、本実施形態では、ビットデータC12AをバイナリデータC18に変換してALU14に出力するので、処理B4においてALU14による累積加算処理を1回だけ実行すればよい。このため、第3の実施形態に比較して累積加算の回数を最小限に抑えて、高速にヒストグラムを生成できる。
In the third embodiment, since the bit data C12A stored in the
上記各実施形態において、256階調の画素データに対してヒストグラム生成処理を実行したが、本発明はこれに限らず、任意の階調数の画素データに対して適用できる。この場合、SIMD型マイクロプロセッサ1,1A,1B,1Cはそれぞれ、画素データの階調数以上の個数のプロセッサエレメントPEn,PEnA,PEnB,PEnCを備えて構成される。
In each of the above embodiments, the histogram generation processing is executed for pixel data of 256 gradations, but the present invention is not limited to this, and can be applied to pixel data of an arbitrary number of gradations. In this case, each of the
また、上記各実施形態において、マイクロカウンタ12と、シフトレジスタ12Aと、カウンタレジスタ15とを、それぞれGP10からのリセット命令に応答してリセットしたが、本発明はこれに限らず、外部データ転送装置2から所定の初期値を書き込むように制御してもよい。
In each of the above embodiments, the
さらに、上記各実施形態おいて、画素データの階調値のヒストグラムを生成したが、本発明はこれに限らず、画素データの各色成分の濃度などの他の画素値のヒストグラムを生成してもよい。 Furthermore, in each of the above embodiments, the histogram of the gradation value of the pixel data is generated. However, the present invention is not limited to this, and the histogram of other pixel values such as the density of each color component of the pixel data may be generated. Good.
以上説明したように、本発明に係るSIMD型マイクロプロセッサ及びSIMD型マイクロプロセッサの処理方法によれば、SIMD型マイクロプロセッサの各プロセッサエレメントは画素値に対応する固有のアドレスをそれぞれ有し、所定の第1のビット幅を有しかつ当該固有のアドレスに対応する画素値の度数を格納する記憶手段を備えた累積加算手段と、上記第1のビット幅より小さい所定の第2のビット幅を有しかつ所定のカウント値を格納するカウンタ手段とをそれぞれ備える。また、アドレス信号がSIMD型マイクロプロセッサに入力される毎に、当該入力されるアドレス信号に含まれるアドレスを有するプロセッサエレメントのカウンタ手段は、上記カウント値を1だけインクリメントする。さらに、制御手段は、所定のタイミングで、各プロセッサエレメントのカウンタ手段に格納されたカウント値を、当該カウンタ手段に対応する記憶手段に格納された度数に累積加算するように上記各累積加算手段を制御する並列加算処理を実行するとともに、上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をリセットするように制御する。従って、従来技術に比較してヒストグラムを高速に生成でき、システム全体のスループットを向上できる。 As described above, according to the SIMD type microprocessor and the processing method of the SIMD type microprocessor according to the present invention, each processor element of the SIMD type microprocessor has a unique address corresponding to a pixel value, A cumulative addition means having a first bit width and storing means for storing the frequency of the pixel value corresponding to the unique address; and a predetermined second bit width smaller than the first bit width. And counter means for storing a predetermined count value. Each time an address signal is input to the SIMD type microprocessor, the counter means of the processor element having the address included in the input address signal increments the count value by one. Further, the control means adds each of the cumulative addition means so as to cumulatively add the count value stored in the counter means of each processor element to the frequency stored in the storage means corresponding to the counter means at a predetermined timing. The parallel addition processing to be controlled is executed, and the count value stored in the counter means of each processor element is controlled to be reset. Therefore, a histogram can be generated at a higher speed than in the prior art, and the throughput of the entire system can be improved.
本発明に係るSIMD型マイクロプロセッサ及び当該SIMD型マイクロプロセッサの処理方法は、デジタルカメラ、デジタルテレビジョン放送受信機、プリンタ装置、及びデジタル複写機などの画像処理を実行する装置に利用できる。 The SIMD type microprocessor and the processing method of the SIMD type microprocessor according to the present invention can be used for apparatuses that execute image processing, such as digital cameras, digital television broadcast receivers, printer apparatuses, and digital copying machines.
1,1A,1B,1C…SIMD型マイクロプロセッサ、
2…外部データ転送装置、
10…グローバルプロセッサ、
11A…デコーダ及びコントローラ、
12…マイクロカウンタ、
12A…シフトレジスタ、
13…累積加算回路、
14…ALU、
15…カウンタレジスタ、
16,16A…IRQ条件判定回路、
17…nMOSFET、
18…エンコーダ、
21,22…演算データバス、
31…IRQ信号線、
32…プルアップ抵抗、
PE0〜PE255,PE0A〜PE255A,PE0B〜PE255B,PE0C〜PE255C…プロセッサエレメント。
1, 1A, 1B, 1C ... SIMD type microprocessor,
2 ... External data transfer device,
10 ... Global processor,
11A: Decoder and controller,
12 ... Micro counter,
12A: Shift register,
13: Cumulative addition circuit,
14 ... ALU,
15: Counter register,
16, 16A ... IRQ condition determination circuit,
17 ... nMOSFET,
18 ... Encoder,
21, 22 ... arithmetic data bus,
31 ... IRQ signal line,
32 ... Pull-up resistor,
PE0-PE255, PE0A-PE255A, PE0B-PE255B, PE0C-PE255C... Processor elements.
Claims (12)
画素値に対応する固有のアドレスをそれぞれ有する複数のプロセッサエレメントであって、所定の第1のビット幅を有しかつ当該固有のアドレスに対応する画素値の度数を格納する記憶手段を備えた累積加算手段と、上記第1のビット幅より小さい所定の第2のビット幅を有しかつ所定のカウント値を格納するカウンタ手段とをそれぞれ備えた複数のプロセッサエレメントと、
上記各プロセッサエレメントを制御する制御手段とを備え、
上記アドレス信号が上記SIMD型マイクロプロセッサに入力される毎に、当該入力されるアドレス信号に含まれるアドレスを有するプロセッサエレメントのカウンタ手段は、上記カウント値を1だけインクリメントし、
上記制御手段は、所定のタイミングで、上記各プロセッサエレメントのカウンタ手段に格納されたカウント値を、当該カウンタ手段に対応する記憶手段に格納された度数に累積加算するように上記各累積加算手段を制御する並列加算処理を実行するとともに、上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をリセットするように制御することを特徴とするSIMD型マイクロプロセッサ。 In a SIMD (Single Instruction Stream Multiple Data Stream) type microprocessor that sequentially inputs an address signal including pixel values of pixel data as addresses and generates a histogram of each pixel value of a plurality of pixel data,
A plurality of processor elements each having a unique address corresponding to a pixel value, and a storage unit having a predetermined first bit width and storing a frequency of the pixel value corresponding to the unique address A plurality of processor elements each having an adding means and a counter means having a predetermined second bit width smaller than the first bit width and storing a predetermined count value;
Control means for controlling each of the processor elements,
Each time the address signal is input to the SIMD type microprocessor, the counter means of the processor element having the address included in the input address signal increments the count value by 1.
The control means sets the cumulative addition means so as to cumulatively add the count value stored in the counter means of each processor element to the frequency stored in the storage means corresponding to the counter means at a predetermined timing. A SIMD type microprocessor characterized by performing parallel addition processing to be controlled and controlling to reset the count value stored in the counter means of each processor element.
上記制御手段は、上記割込要求信号に応答して、上記並列加算処理を実行するとともに上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をゼロにリセットするように制御することを特徴とする請求項1記載のSIMD型マイクロプロセッサ。 When the count value stored in at least one of the counter means of the plurality of processor elements reaches a predetermined threshold count value corresponding to the second bit width, an interrupt request signal is An interrupt request signal generating means for generating and outputting to the control means;
In response to the interrupt request signal, the control means performs the parallel addition process and controls the count value stored in the counter means of each processor element to be reset to zero. The SIMD type microprocessor according to claim 1.
上記各プロセッサエレメントの累積加算手段は、上記カウント値に代えて、当該累積加算手段に対応する上記エンコーダから入力されるバイナリデータを、上記記憶手段に格納された度数に累積加算することを特徴とする請求項3記載のSIMD型マイクロプロセッサ。 Each of the processor elements further includes an encoder that encodes the count value stored in the shift register into binary data and outputs the binary data to the cumulative addition unit corresponding to the shift register,
The cumulative addition means of each processor element is characterized in that instead of the count value, binary data input from the encoder corresponding to the cumulative addition means is cumulatively added to the frequency stored in the storage means. The SIMD type microprocessor according to claim 3.
上記SIMD型マイクロプロセッサは、
画素値に対応する固有のアドレスをそれぞれ有する複数のプロセッサエレメントであって、所定の第1のビット幅を有しかつ当該固有のアドレスに対応する画素値の度数を格納する記憶手段を備えた累積加算手段と、上記第1のビット幅より小さい所定の第2のビット幅を有しかつ所定のカウント値を格納するカウンタ手段とをそれぞれ備えた複数のプロセッサエレメントと、
上記各プロセッサエレメントを制御する制御手段とを備え、
上記処理方法は、
上記アドレス信号が上記SIMD型マイクロプロセッサに入力される毎に、当該入力されるアドレス信号に含まれるアドレスを有するプロセッサエレメントのカウンタ手段が、上記カウント値を1だけインクリメントするステップと、
上記制御手段が、所定のタイミングで、上記各プロセッサエレメントのカウンタ手段に格納されたカウント値を、当該カウンタ手段に対応する記憶手段に格納された度数に累積加算するように上記各累積加算手段を制御する並列加算処理を実行するとともに、上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をリセットするように制御するステップとを含むことを特徴とするSIMD型マイクロプロセッサの処理方法。 In a processing method of a SIMD type microprocessor that sequentially inputs an address signal including a pixel value of pixel data as an address and generates a histogram of each pixel value of a plurality of pixel data,
The SIMD type microprocessor is
A plurality of processor elements each having a unique address corresponding to a pixel value, and a storage unit having a predetermined first bit width and storing a frequency of the pixel value corresponding to the unique address A plurality of processor elements each having an adding means and a counter means having a predetermined second bit width smaller than the first bit width and storing a predetermined count value;
Control means for controlling each of the processor elements,
The above processing method is
Each time the address signal is input to the SIMD type microprocessor, a counter means of a processor element having an address included in the input address signal increments the count value by one;
Each of the cumulative addition means is configured to cumulatively add the count value stored in the counter means of each processor element to the frequency stored in the storage means corresponding to the counter means at a predetermined timing. A processing method for the SIMD type microprocessor, comprising: performing parallel addition processing to be controlled, and controlling to reset a count value stored in the counter means of each processor element.
上記処理方法は、上記制御手段が、上記割込要求信号に応答して、上記並列加算処理を実行するとともに上記各プロセッサエレメンのカウンタ手段に格納されたカウント値をゼロにリセットするように制御するステップをさらに含むことを特徴とする請求項7記載のSIMD型マイクロプロセッサの処理方法。 In the SIMD type microprocessor, the count value stored in at least one of the counter means of the plurality of processor elements becomes a predetermined threshold count value corresponding to the second bit width. And further comprising an interrupt request signal generating means for generating an interrupt request signal and outputting it to the control means,
In the processing method, in response to the interrupt request signal, the control unit performs the parallel addition processing and controls the count value stored in the counter unit of each processor element to be reset to zero. 8. The processing method of the SIMD type microprocessor according to claim 7, further comprising a step.
上記処理方法は、上記各プロセッサエレメントの累積加算手段が、上記カウント値に代えて、当該累積加算手段に対応する上記エンコーダから入力されるバイナリデータを、上記記憶手段に格納された度数に累積加算するステップをさらに含むことを特徴とする請求項9記載のSIMD型マイクロプロセッサの処理方法。 Each of the processor elements further includes an encoder that encodes the count value stored in the shift register into binary data and outputs the binary data to the cumulative addition unit corresponding to the shift register,
In the processing method, the cumulative addition means of each processor element cumulatively adds binary data input from the encoder corresponding to the cumulative addition means to the frequency stored in the storage means instead of the count value. 10. The SIMD microprocessor processing method according to claim 9, further comprising a step of:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010203381A JP2012059131A (en) | 2010-09-10 | 2010-09-10 | Simd microprocessor and processing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010203381A JP2012059131A (en) | 2010-09-10 | 2010-09-10 | Simd microprocessor and processing method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012059131A true JP2012059131A (en) | 2012-03-22 |
Family
ID=46056127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010203381A Pending JP2012059131A (en) | 2010-09-10 | 2010-09-10 | Simd microprocessor and processing method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012059131A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016136197A1 (en) * | 2015-02-25 | 2016-09-01 | 日本電気株式会社 | Data processing device, data processing method, and recording medium |
US20180341589A1 (en) * | 2017-05-23 | 2018-11-29 | International Business Machines Corporation | Reducing cache thrashing for counts in hot cache lines |
-
2010
- 2010-09-10 JP JP2010203381A patent/JP2012059131A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016136197A1 (en) * | 2015-02-25 | 2016-09-01 | 日本電気株式会社 | Data processing device, data processing method, and recording medium |
US20180341589A1 (en) * | 2017-05-23 | 2018-11-29 | International Business Machines Corporation | Reducing cache thrashing for counts in hot cache lines |
US10552326B2 (en) * | 2017-05-23 | 2020-02-04 | International Business Machines Corporation | Reducing cache thrashing for counts in hot cache lines |
US10565114B2 (en) * | 2017-05-23 | 2020-02-18 | International Business Machines Corporation | Reducing cache thrashing for counts in hot cache lines |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4885422B2 (en) | Galois extension field linear converter | |
JP2009015556A (en) | Simd type microprocessor | |
JP2009271724A (en) | Hardware engine controller | |
JP2010176606A (en) | Data processor and image processor | |
US7543014B2 (en) | Saturated arithmetic in a processing unit | |
JPWO2017163441A1 (en) | Image processing apparatus, image processing method, and image processing program | |
JP2012059131A (en) | Simd microprocessor and processing method thereof | |
JP2010287110A (en) | Information processor, information processing method, program, and recording medium | |
TWI634436B (en) | Buffer device and convolution operation device and method | |
JP2009093513A (en) | Method for reducing instruction bit length | |
JP4838009B2 (en) | Reconfigurable circuit | |
JP6038292B2 (en) | Data transfer apparatus and data transfer method | |
WO2019053915A1 (en) | Image processing device, image processing method, and image processing program | |
JP2006072961A (en) | Memory circuit for arithmetic processing unit | |
JP5630798B1 (en) | Processor and method | |
JP2001157049A5 (en) | ||
US8024550B2 (en) | SIMD processor with each processing element receiving buffered control signal from clocked register positioned in the middle of the group | |
US6405301B1 (en) | Parallel data processing | |
JP4516495B2 (en) | Data processing method in SIMD type microprocessor | |
JP4408113B2 (en) | Signal processing method | |
JP2013161325A (en) | Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor | |
JP2009104521A (en) | Parallel processor | |
JP2005267362A (en) | Image processing method using simd processor and image processor | |
JP6204313B2 (en) | Electronics | |
JP5441185B2 (en) | Interrupt controller and time-division interrupt generation method |