JP4413905B2 - SIMD type processor - Google Patents

SIMD type processor Download PDF

Info

Publication number
JP4413905B2
JP4413905B2 JP2006259487A JP2006259487A JP4413905B2 JP 4413905 B2 JP4413905 B2 JP 4413905B2 JP 2006259487 A JP2006259487 A JP 2006259487A JP 2006259487 A JP2006259487 A JP 2006259487A JP 4413905 B2 JP4413905 B2 JP 4413905B2
Authority
JP
Japan
Prior art keywords
data
register
processor
processor element
signal
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 - Lifetime
Application number
JP2006259487A
Other languages
Japanese (ja)
Other versions
JP2007035063A (en
Inventor
慎一 山浦
和彦 原
貴雄 片山
和彦 岩永
浩資 高藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006259487A priority Critical patent/JP4413905B2/en
Publication of JP2007035063A publication Critical patent/JP2007035063A/en
Application granted granted Critical
Publication of JP4413905B2 publication Critical patent/JP4413905B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

この発明は、一つの演算命令により複数の画像データ等を並列処理するSIMD(Single Instruction Stream Multiple Data Stream)型プロセッサに関するものである。   The present invention relates to a single instruction stream multiple data stream (SIMD) type processor that processes a plurality of image data and the like in parallel by one arithmetic instruction.

近年、デジタル複写機やファクリミリ装置等において、画素数を増加させたり、或いはカラー対応にするなど画像の向上が図られている。そして、この画像の向上に伴い、処理すべきデータ数が増加している。ところで、複写機などにおけるデータ処理は全ての画素に対して同じ演算処理を施すことが多い。そこで、1つの命令で複数のデータに対して同時に同じ演算処理を行うSIMD型プロセッサが用いられるようになっている。ここで、演算処理は複数の演算器を並べることで実現できるが、演算の対象となるデータは演算速度に見合う速度でメモリ等をアクセスする必要があり、この速度に間に合わない場合はデータのアクセス速度でプロセッサの性能が決定してしまう。通常タイプのSISD(Single Instruction Single Data)型プロセッサでは、演算データはプロセッサのプログラムによりメモリから逐次アクセスするが、この場合にデータのアクセス速度はメモリのビット幅と転送時間で決定する。SIMD型プロセッサにおいてもこの方法を用いると演算は並列処理であるのに対して、データのアクセスは逐次処理となりSISD型プロセッサ程度に処理能力は低下してしまう。   In recent years, in digital copying machines, facsimile machines, and the like, improvement of images has been attempted by increasing the number of pixels or making it compatible with color. As the image is improved, the number of data to be processed has increased. By the way, data processing in a copying machine or the like often performs the same arithmetic processing on all pixels. Therefore, a SIMD type processor that performs the same arithmetic processing simultaneously on a plurality of data with one instruction is used. Here, arithmetic processing can be realized by arranging a plurality of arithmetic units, but it is necessary to access the memory etc. at a speed commensurate with the arithmetic speed for the data to be operated. Processor performance is determined by speed. In a normal type SIDS (Single Instruction Single Data) processor, operation data is sequentially accessed from a memory by a program of the processor. In this case, the data access speed is determined by the bit width of the memory and the transfer time. If this method is also used in the SIMD type processor, the computation is parallel processing, whereas the data access is sequential processing, and the processing capability is reduced to the same level as the SISD type processor.

このため、SIMD型プロセッサでは、演算対象データのアクセスはプロセッサの命令では行わず、外部のメモリデータ転送装置からプロセッサ内部の入出力用のレジスタに直接アクセスするように構成している。即ち、プロセッサでの演算実行と同時に、外部に備えられたメモリデータ転送装置が次に演算処理されるデータを入力用レジスタへ転送したり、演算処理されたデータを出力レジスタからメモリデータ転送装置を介してメモリへ転送することで、データ処理の高速化を図っている。   For this reason, the SIMD type processor is configured such that the operation target data is not accessed by a processor instruction, but an input / output register inside the processor is directly accessed from an external memory data transfer device. In other words, simultaneously with the execution of the operation by the processor, the memory data transfer device provided outside transfers the data to be processed next to the input register, or the calculated data is transferred from the output register to the memory data transfer device. The data processing speed is increased by transferring the data to the memory.

プロセッサと外部メモリデータ転送装置での処理フローは以下のように行われる。
(1)外部メモリデータ転送装置が演算対象データを入力用レジスタに転送。
(2)プロセッサは外部から演算データを転送済みである入力用のレジスタから演算対象デ
ータを演算用のレジスタに転送し演算を開始。
(3)プロセッサが所定の演算を実行する。この間に外部メモリデータ転送装置が次の演算
対象データを入力用レジスタに転送。また、演算処理済みデータ(結果データ)が出力用レジスタにある場合には外部メモリデータ転送装置が結果データを出力用レジスタからメモリへ転送。
(4)プロセッサは演算を終了し、結果データを出力用レジスタに転送。
The processing flow between the processor and the external memory data transfer device is performed as follows.
(1) The external memory data transfer device transfers the operation target data to the input register.
(2) The processor starts the operation by transferring the operation target data from the input register to which the operation data has been transferred from the outside to the operation register.
(3) The processor executes a predetermined operation. During this time, the external memory data transfer device transfers the next calculation target data to the input register. In addition, when the operation processed data (result data) is in the output register, the external memory data transfer device transfers the result data from the output register to the memory.
(4) The processor finishes the operation and transfers the result data to the output register.

上記のように、プロセッサの演算実行時に同時に外部のメモリデータ転送装置が演算データを転送することで高速化を実現している。   As described above, the speed is increased by the external memory data transfer device transferring the calculation data simultaneously with the execution of the calculation of the processor.

このデータ転送方式として、シフトレジスタ方式、或いはシリアルアクセスメモリ方式が採用されている。このシフトレジスタ方式は、例えば、特許文献1特開平5−67203号公報に記載されているように、クロック入力に同期して、レジスタに保持されているデータがビット毎に順次シフトされる方式である。このシフトレジスタ方式によれば、例えば256個のプロセッサエレメントを持つSIMD型プロセッサの場合、1回目に転送されたデータは0番目のプロセッサエレメントの入力レジスタに保持され、次のクロック入力により1ビットシフトされて1番目のプロセッサエレメントの入力レジスタに保持される。そして、1回目に転送されたデータが、255番目のプロセッサエレメントの入力レジスタに保持されるまでには、合計256回のクロック入力が必要となる。 As this data transfer method, a shift register method or a serial access memory method is adopted. In this shift register system, for example, as described in Patent Document 1 ( Japanese Patent Laid-Open No. 5-67203 ) , data held in a register is sequentially shifted bit by bit in synchronization with a clock input. It is a method. According to this shift register system, for example, in the case of a SIMD type processor having 256 processor elements, the data transferred for the first time is held in the input register of the 0th processor element and shifted by 1 bit by the next clock input. And held in the input register of the first processor element. A total of 256 clock inputs are required until the data transferred for the first time is held in the input register of the 255th processor element.

また、シリアルアクセスメモリ方式は、例えば、特許文献2特開平6−4690号公報に記載されているように、入力ポインタが一つのプロセッサエレメントに論理“H”を立てた入力ポインタ信号を発生し、論理“H”で指定されたプロセッサエレメントの入力SAM(シリアルアクセスメモリ)に入力データが書き込まれる方式である。このシリアルアクセスメモリ方式では、入力ポインタ信号はクロック入力に同期してビット毎に順次シフトしていく。従って、このシリアルアクセスメモリ方式によれば、例えば256個のプロセッサエレメントを持つSIMD型プロセッサの場合、1回目のデータ転送では、入力ポインタ信号が0番目のプロセッサエレメントを指定し、0番目のプロセッサエレメントの入力SAMにデータが保持される。次いで、2回目のデータ転送では、入力ポインタ信号がクロック入力に同期して1ビットシフトして1番目のプロセッサエレメントを指定し、1番目のプロセッサエレメントの入力SAMにデータが保持される。このようにして、255番目のプロセッサエレメントの入力SAMにデータが保持されるまでには、合計256回目のクロック入力が必要となる。
特開平5−67203号公報 特開平6−4690号公報
In the serial access memory system, for example, as described in Patent Document 2 ( Japanese Patent Laid-Open No. 6-4690 ) , the input pointer generates an input pointer signal in which one processor element is set to logic “H”. In this method, input data is written to an input SAM (serial access memory) of a processor element designated by logic “H”. In this serial access memory system, the input pointer signal is sequentially shifted bit by bit in synchronization with the clock input. Therefore, according to this serial access memory system, for example, in the case of a SIMD type processor having 256 processor elements, in the first data transfer, the input pointer signal specifies the 0th processor element, and the 0th processor element Data is held in the input SAM. Next, in the second data transfer, the input pointer signal is shifted by 1 bit in synchronization with the clock input to designate the first processor element, and the data is held in the input SAM of the first processor element. In this way, a total of 256 clock inputs are required until data is held in the input SAM of the 255th processor element.
JP-A-5-67203 Japanese Patent Laid-Open No. 6-4690

しかし、これらの方式によると、データを偶数番目のプロセッサエレメントにだけ転送したいような場合であっても、奇数番目のプロセッサエレメントにも転送しなければならないという問題があった。また、データを後半のプロセッサエレメント(128番目〜255番目)にだけ転送したいような場合であっても、全部のプロセッサエレメントに転送しなければならないという問題があった。即ち、特定のプロセッサエレメントにだけデータを直接転送することはできないという問題があった。そのため、必要なデータを転送するのに、必要以上に時間を要し、データ処理が遅くなるという問題があった。   However, according to these methods, there is a problem that even when data is transferred only to even-numbered processor elements, it must be transferred to odd-numbered processor elements. Further, there is a problem that even when data is to be transferred only to the latter half of the processor elements (128th to 255th), it must be transferred to all the processor elements. That is, there is a problem that data cannot be directly transferred only to a specific processor element. Therefore, there is a problem that it takes more time than necessary to transfer the necessary data, and the data processing becomes slow.

また、プロセッサで行うデータ処理においては、入力データの保持に必要な入力レジスタのビット幅、出力データの保持に必要な出力レジスタのビット幅、一時的にデータを保持するのに必要なレジスタのビット幅は実行するアプリケーションにより異なる。従来のSIMD型プロセッサにおいては、入力レジスタ、出力レジスタ、一時的にデータを保持するレジスタで保持できるデータのビット幅が固定であった。そのため、データがこれらのレジスタで保持できるビット幅を越えるとデータ処理できないという問題があった。   In the data processing performed by the processor, the bit width of the input register required to hold the input data, the bit width of the output register required to hold the output data, and the bit of the register required to temporarily hold the data The width depends on the application to be executed. In a conventional SIMD type processor, the bit width of data that can be held by an input register, an output register, or a register that temporarily holds data has been fixed. Therefore, there is a problem that data cannot be processed if the data exceeds the bit width that can be held in these registers.

また、従来技術では入出力レジスタと入出力ポートのビット幅は同じであり、全プロセッサエレメント(PE)のデータを転送するのにはPE数だけのアクセスが必要であり、転送時間が多くなる問題があった。   In the prior art, the bit widths of the input / output registers and the input / output ports are the same, and it is necessary to access only the number of PEs in order to transfer the data of all the processor elements (PE), which increases the transfer time. was there.

また、アプリケーションによっては多数のラインバッファが必要となりプロセッサエレメントに内蔵するレジスタをこの用途に使用している。しかし、レジスタ数は固定であるため、この値を超えるラインバッファが必要なアプリケーションには対応できない問題があった。   Further, depending on the application, a large number of line buffers are required, and a register built in the processor element is used for this purpose. However, since the number of registers is fixed, there is a problem that cannot be applied to an application that requires a line buffer exceeding this value.

この発明は、斯かる従来の問題に着目してなされたものであり、データを任意のプロセッサエレメントに直接に転送することを可能にすることで、データの転送を高速にし、延いてはデータ処理を高速にすることを目的とする。また、レジスタの使用用途を柔軟にすることで、データのビット数に柔軟に対応したデータ処理を可能にすることを目的とする。   The present invention has been made paying attention to such a conventional problem, and enables data to be directly transferred to an arbitrary processor element, thereby speeding up data transfer, and thus data processing. The purpose is to speed up. Another object of the present invention is to enable data processing flexibly corresponding to the number of bits of data by making the usage of the register flexible.

この発明のSIMD型プロセッサは、データを演算処理する演算手段及び当該演算手段で演算処理されるデータを保持するとともに当該演算手段で演算処理されたデータを保持するデータ保持手段を備える複数のプロセッサエレメントと、このプロセッサエレメントそれぞれに接続されるデータ転送バスと、所定のプロセッサエレメントを指定する指定手段と、前記プロセッサエレメントそれぞれに接続されるアドレスバスと、演算処理されるデータを前記データ転送バスより取得して前記データ保持手段に保持させるための取得信号、或いは前記データ保持手段に保持されている演算処理されたデータを前記データ転送バスより出力させるための出力信号を前記データ保持手段に与える信号発生手段と、を備え、前記データ保持手段は、複数のレジスタを有する第1のレジスタ群と、複数のレジスタを有する第2のレジスタ群とを有し、前記指定手段が所定のプロセッサエレメントをアドレス指定し、この指定されたプロセッサエレメントの所定の前記データ保持手段に前記信号発生手段が信号を与えることにより、前記データ保持手段の中の前記第1のレジスタ群、第2のレジスタ群から所定数のレジスタを選択し、前記データ保持手段の中の選択されたレジスタにデータを前記データ転送バスより取得或いは出力することを特徴とする。 The SIMD type processor according to the present invention includes a plurality of processor elements each having an arithmetic means for arithmetically processing data and data holding means for holding data arithmetically processed by the arithmetic means and holding data arithmetically processed by the arithmetic means And a data transfer bus connected to each of the processor elements, a designation means for designating a predetermined processor element, an address bus connected to each of the processor elements, and data to be processed are obtained from the data transfer bus Generation of an acquisition signal for holding in the data holding means or an output signal for outputting the processed data held in the data holding means from the data transfer bus to the data holding means And the data holding means includes a plurality of means. A first register group having a plurality of registers, and a second register group having a plurality of registers, wherein the designation means addresses a predetermined processor element, and the predetermined data of the specified processor element When the signal generating means gives a signal to the holding means, a predetermined number of registers are selected from the first register group and the second register group in the data holding means, and the selection in the data holding means The data is acquired or output from the data transfer bus to the registered register.

これによれば、信号発生手段が演算処理されるデータをデータ保持手段に保持させるための取得信号をデータ保持手段に与えることで、このデータ保持手段は演算処理されるデータを取得して保持するものとして機能する。さらに、信号発生手段がデータ保持手段に保持されている演算処理されたデータを出力させるための出力信号をデータ保持手段に与えることで、このデータ保持手段は演算処理されたデータを出力するものとして機能する。このように、レジスタの使用用途を柔軟にすることで、入力データ及び出力データのビット数に柔軟に対応したデータ処理が可能になる。   According to this, the data holding means acquires and holds the data to be processed by giving the data holding means an acquisition signal for holding the data to be processed by the signal generating means to the data holding means. It functions as a thing. Further, the signal generation means provides the data holding means with an output signal for outputting the processed data held in the data holding means, so that the data holding means outputs the processed data. Function. As described above, by making the usage of the register flexible, it is possible to perform data processing flexibly corresponding to the number of bits of input data and output data.

以上詳述したように、この発明によれば、演算処理されるデータは、アドレス指定されたプロセッサエレメントのデータ保持手段に保持されるため、データを任意のプロセッサエレメントに直接に転送できる。また、演算手段で演算処理されたデータを出力する場合にも、アドレス指定されたプロセッサエレメントのデータ保持手段に保持されているデータを出力する。そのため、データの転送を高速にでき、延いてはデータ処理を高速にできる。   As described above in detail, according to the present invention, the data to be processed is held in the data holding means of the addressed processor element, so that the data can be directly transferred to any processor element. Also, when data processed by the arithmetic means is output, the data held in the data holding means of the addressed processor element is output. Therefore, the data transfer can be performed at high speed, and the data processing can be performed at high speed.

また、データ保持手段は入力レジスタとしての機能を有するとともに、出力レジスタとしての機能を有する。このように、データ保持手段の使用用途を柔軟にすることで、データのビット数に柔軟に対応したデータ処理が可能になる。   The data holding means has a function as an input register and also functions as an output register. Thus, by making the usage of the data holding means flexible, it is possible to perform data processing flexibly corresponding to the number of bits of data.

(第1の実施形態)
以下、この発明に係るSIMD型プロセッサ1の実施形態を、図1乃至図4に基づいて説明する。
(First embodiment)
An embodiment of a SIMD type processor 1 according to the present invention will be described below with reference to FIGS.

SIMD型プロセッサ1は、図1に示すように、グローバルプロセッサ2、本実施形態では256組の後述するプロセッサエレメント3aからなるプロセッサエレメントブロック3、メモリコントローラ5と接続される外部インタフェース4から構成される。メモリコントローラ5はグローバルプロセッサ2の命令に基づき、メモリ6から演算対象データをプロセッサ内部の入出力用のレジスタフィル31に直接アクセスする。 SIMD processor 1, as shown in FIG. 1, consists of an external Inn tough Esu 4 connected global processor 2, the processor element block 3 consisting of processor elements 3a to be described later of the 256 sets in this embodiment, the memory controller 5 Is done. The memory controller 5 directly accesses the operation target data from the memory 6 to the input / output register fill 31 in the processor based on the instruction of the global processor 2.

まず、メモリコントローラ5につき説明する。図1に示すように、メモリコントローラ4は、SIMD型プロセッサ1のレジスタファイル31と外部インタフェース4のデータ転送ポートを介して接続されていて、レジスタファイル31からメモリ6へのデータ転送、メモリ6からレジスタファイル31へのデータ転送を行っている。メモリコントローラ5が制御するレジスタは、I/O空間にマッピングされており、グローバルプロセッサ2からの指示に従い、アドレス、クロック、及びリードライト制御を出力することでリード、ライト可能となっている。 First, the memory controller 5 will be described. As shown in FIG. 1, note Rico controller 4, which is connected via a register file 31 and the data transfer port of the external interface 4 of the SIMD processor 1, data transfer from the register file 31 to memory 6, the memory 6 To the register file 31. The registers controlled by the memory controller 5 are mapped in the I / O space, and can be read and written by outputting addresses, clocks, and read / write controls in accordance with instructions from the global processor 2.

グローバルプロセッサ2からメモリコントローラ5へはI/O用のアドレス、データ、コントロール信号がバスを介して与えられる。グローバルプロセッサ2がメモリコントローラ5のいくつかの動作設定レジスタ(図示せず)へ動作方法等のコマンドを設定している。最後にグローバルプロセッサ2は、メモリコントローラ5のスタートレジスタ(図示せず)にスタートコードを書き込むことで、メモリコントローラ5は自動的に設定に従った動作を行う。このように構成することで、プロセッサの命令制御による演算と同時にレジスタファイル31のデータを入出力する。   An I / O address, data, and control signal are given from the global processor 2 to the memory controller 5 via a bus. The global processor 2 sets commands such as an operation method in some operation setting registers (not shown) of the memory controller 5. Finally, the global processor 2 writes a start code in a start register (not shown) of the memory controller 5 so that the memory controller 5 automatically performs an operation according to the setting. With this configuration, the data in the register file 31 is input / output simultaneously with the calculation based on the instruction control of the processor.

図2は、この発明に用いられるメモリコントローラ5の構成を示したものである。メモリコントローラ5は、メモリ6にデータライトを行うライトバッファ部54と、メモリ6からデータリードを行うリードバッファ部55と、PEレジスタファイルの制御を行っているPE制御部52、メモリ6の制御を行うRAM制御部53、及びシーケンスユニット(SCU)51より構成されている。   FIG. 2 shows the configuration of the memory controller 5 used in the present invention. The memory controller 5 controls the write buffer unit 54 that writes data to the memory 6, the read buffer unit 55 that reads data from the memory 6, the PE control unit 52 that controls the PE register file, and the memory 6. It comprises a RAM control unit 53 and a sequence unit (SCU) 51.

ライトバッファ部54にはSIMD方式プロセッサ1の外部インタフェース4の出力ポートが接続され、リードバッファ部55には外部インタフェース4の入力ポートが接続される。   An output port of the external interface 4 of the SIMD processor 1 is connected to the write buffer unit 54, and an input port of the external interface 4 is connected to the read buffer unit 55.

グローバルプロセッサ2は、図3に示すように、グローバルプロセッサ2、プロセッサエレメントブロック3、外部インタフェース4及びメモリコントローラ5を制御するためのプログラムが格納されたプログラムRAM21、及びこのプログラムRAM21に基づきグローバルプロセッサ2、プロセッサエレメントブロック3、外部インタフェース4、メモリコントローラ5を制御するシーケンスユニット22を備える。具体的には、このシーケンスユニット22は、グローバルプロセッサ2に備えられている後述する算術論理演算器23(以下、「ALU23」という。)等を制御する。   As shown in FIG. 3, the global processor 2 includes a global processor 2, a processor element block 3, a program RAM 21 storing a program for controlling the external interface 4 and the memory controller 5, and the global processor 2 based on the program RAM 21. , A processor element block 3, an external interface 4, and a sequence unit 22 for controlling the memory controller 5. Specifically, the sequence unit 22 controls an arithmetic logic unit 23 (hereinafter referred to as “ALU 23”), which will be described later, provided in the global processor 2.

また、このシーケンスユニット22は、プロセッサエレメントブロック3を構成する後述するレジスタファイル31、及び後述する演算アレイ36を制御する。この演算アレイ36は、マルチプレクサ32、シフト拡張回路33、算術論理演算器34(以下、「ALU34」という)、及びレジスタ35を備える。なお、このグローバルプロセッサ2は、いわゆるSISD型であり、一つの演算命令に対して一つの演算処理を行うものである。   The sequence unit 22 controls a later-described register file 31 and a later-described arithmetic array 36 that constitute the processor element block 3. The arithmetic array 36 includes a multiplexer 32, a shift extension circuit 33, an arithmetic logic unit 34 (hereinafter referred to as “ALU 34”), and a register 35. The global processor 2 is a so-called SISD type, and performs one arithmetic process for one arithmetic instruction.

さらに、このシーケンスユニット22は、後述するメモリコントローラ5に対してデータ転送のための動作設定用データ及びコマンド等を送る。メモリコントローラ5は、シーケンスユニット22の動作設定用データ及びコマンドに基づき、プロセッサエレメント3aのアドレス指定のためのアドレス制御信号、プロセッサエレメント3aを構成する後述するレジスタ31bにデータのリード/ライトを指示するためのリード/ライト制御信号、クロック信号を与えるためのクロック制御信号を外部インタフェース4に与える。   Further, the sequence unit 22 sends operation setting data and commands for data transfer to the memory controller 5 described later. Based on the operation setting data and commands of the sequence unit 22, the memory controller 5 instructs an address control signal for addressing the processor element 3a, and a data read / write to a register 31b, which will be described later, constituting the processor element 3a. A read / write control signal and a clock control signal for supplying a clock signal are supplied to the external interface 4.

ここで、リード/ライト制御信号のうちライト制御信号とは、演算処理されるデータを後述するデータバス41dより取得して、プロセッサエレメント3aのレジスタ31bに保持させるための信号をいう。一方、リード/ライト制御信号のうちリード制御信号とは、プロセッサエレメント3aのレジスタ31bが保持している演算処理されたデータを、後述するデータバス41dへ与えるようレジスタ31bに指示するための信号をいう。   Here, the write control signal among the read / write control signals refers to a signal for obtaining data to be processed from a data bus 41d described later and holding it in the register 31b of the processor element 3a. On the other hand, the read control signal among the read / write control signals is a signal for instructing the register 31b to supply the processed data held in the register 31b of the processor element 3a to the data bus 41d described later. Say.

メモリコントローラ5は、グローバルプロセッサ2からのコマンドを受けて、プロセッサエレメントブロック3を構成するプロセッサエレメント3aのアドレスを指定する信号(以下、「アドレス指定信号」という。)を作成し、外部インタフェース4からアドレスバス41aを介してプロセッサエレメント3aの後述するレジスタコントローラ31aヘ送る。また、メモリコントローラ5は、後述するようにプロセッサエレメント3aを構成するレジスタ31bに対して、データのリード/ライトを指示するための信号(以下、「リード/ライト指示信号」という。)を、リード/ライト信号41bを介してプロセッサエレメント3aの後述するレジスタコントローラ31aヘリード/ライト信号が与えられる。また、メモリコントローラ5は、外部インタフェース4からクロック信号41cを介してプロセッサエレメント3aの後述するレジスタコントローラ31aへクロック信号を与える。 The memory controller 5 receives a command from the global processor 2, a signal for designating the address of the processor element 3a constituting the processor element block 3 (hereinafter, referred to as "addressing signal".) Create and external in tough Esu 4 to the register controller 31a (to be described later) of the processor element 3a via the address bus 41a. Further, the memory controller 5 reads a signal (hereinafter referred to as “read / write instruction signal”) for instructing data read / write to a register 31b constituting the processor element 3a as will be described later. A read / write signal is given to a register controller 31a (to be described later) of the processor element 3a via the / write signal 41b. Further, the memory controller 5 gives a clock signal from the external interface 4 to a register controller 31a (to be described later) of the processor element 3a via the clock signal 41c.

また、メモリコントローラ5は、上述したように、SIMD型プロセッサ1の外部に設けられたメモリ6に格納されているデータを、本実施形態では8ビットのパラレルデータとして、データバス41dに置く。この8ビットのパラレルデータについては、データに応じて適宜変更しても問題ない。このデータバス41dは、レジスタ31bに保持されている演算処理されたデータが、SIMD型プロセッサ1の外部に設けられたメモリ6に送られる時にも使用される。   Further, as described above, the memory controller 5 places the data stored in the memory 6 provided outside the SIMD type processor 1 on the data bus 41d as 8-bit parallel data in the present embodiment. The 8-bit parallel data can be appropriately changed according to the data. The data bus 41d is also used when the processed data held in the register 31b is sent to the memory 6 provided outside the SIMD type processor 1.

なお、メモリ6は演算処理されるデータを格納するとともに、演算処理されたデータを格納するものであり、これらのメモリ6はSIMD型プロセッサ1の内部に設けても問題ない。また、メモリコントローラ5とメモリ6との間のデータ転送についても、本実施形態では8ビットのパラレルデータとして転送されるものとして扱うが、データに応じて適宜変更しても問題ない。なお、メモリコントローラ5が行うその他の動作については後述する。   Note that the memory 6 stores data to be subjected to arithmetic processing and stores data subjected to arithmetic processing, and there is no problem even if these memories 6 are provided inside the SIMD type processor 1. Also, data transfer between the memory controller 5 and the memory 6 is handled as being transferred as 8-bit parallel data in this embodiment, but there is no problem even if it is appropriately changed according to the data. Other operations performed by the memory controller 5 will be described later.

また、グローバルプロセッサ2は、上記シーケンスユニット22からの命令により、算術論理演算を行うALU23、演算データを格納するデータRAM24を備える。さらに、グローバルプロセッサ2は、演算処理されるデータ等を保持するためのレジスタ群25を備える。   In addition, the global processor 2 includes an ALU 23 that performs arithmetic logic operations and a data RAM 24 that stores operation data in accordance with instructions from the sequence unit 22. Further, the global processor 2 includes a register group 25 for holding data to be processed.

このレジスタ群25は、プログラムのアドレスを保持するプログラムカウンタPC、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ待避、復帰時に待避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI、LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)を内蔵している。   The register group 25 includes a program counter PC that holds a program address, G0 to G3 registers that are general-purpose registers for storing data for arithmetic processing, and a stack that holds the address of the save destination data RAM at the time of register save and return. Pointer (SP), link register (LS) that holds the address of the caller at the time of a subroutine call, LI and LN registers that hold branch source addresses at the time of IRQ and NMI, and a processor status register that holds the state of the processor (P) is incorporated.

また、レジスタ群25は、プロセッサエレメントブロック3の後述するレジスタ35に接続されており、このレジスタ35との間でシーケンスユニット22の制御によりデータの交換が行われる。   The register group 25 is connected to a later-described register 35 of the processor element block 3, and data is exchanged with the register 35 under the control of the sequence unit 22.

プロセッサエレメントブロック3は、図1及び図3に示すように、レジスタファイル31、マルチプレクサ32、シフト・拡張回路33、算術論理演算器34(以下、「ALU34」という。)、レジスタ35、を一単位とする複数のプロセッサエレメント3aを備える。レジスタファイル31には、1つのプロセッサエレメント3a単位に8ビットのレジスタが32本内蔵されており、本実施形態では256プロセッサエレメント分の組がアレイ構成になっている。レジスタファイル31は1つのプロセッサエレメント(PE)3aごとにR0、R1、R2、...R31と呼ばれているレジスタが内蔵されている。それぞれのレジスタファイル31は演算アレイ36に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバスで演算アレイ36からアクセスされる。32本のレジスタの内、24本はプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタを読み書きできる。   As shown in FIGS. 1 and 3, the processor element block 3 includes a register file 31, a multiplexer 32, a shift / extension circuit 33, an arithmetic logic unit 34 (hereinafter referred to as “ALU 34”), and a register 35 as one unit. A plurality of processor elements 3a. The register file 31 includes 32 8-bit registers for each processor element 3a. In this embodiment, a set of 256 processor elements has an array configuration. The register file 31 stores R0, R1, R2,... For each processor element (PE) 3a. . . A register called R31 is incorporated. Each register file 31 has one read port and one write port for the arithmetic array 36 and is accessed from the arithmetic array 36 by an 8-bit read / write bus. Of the 32 registers, 24 are accessible from outside the processor, and any register can be read and written by inputting a clock, an address, and read / write control from the outside.

レジスタの外部からのアクセスは1つの外部ポートで各プロセッサエレメント(PE)の1つのレジスタがアクセス可能であり外部から入力されたアドレスでプロセッサエレメント(PE)の番号(0〜255)を指定する。したがって、レジスタアクセスの外部ポートは全部で24組搭載されている。また、外部からのアクセスは偶数のプロセッサエレメント(PE)と奇数のプロセッサエレメント(PE)の1組で16ビットデータとなっており、1回のアクセスで2つのレジスタを同時にアクセスしている。   Access from the outside of the register allows one register of each processor element (PE) to be accessed by one external port, and the number (0 to 255) of the processor element (PE) is designated by an address input from the outside. Therefore, a total of 24 external ports for register access are installed. Access from the outside is 16-bit data in one set of even-numbered processor elements (PE) and odd-numbered processor elements (PE), and two registers are accessed simultaneously by one access.

本実施形態では、プロセッサエレメント3aの数を256個として説明するが、これに限定されるものでなく適宜変更して使用してもよい。このプロセッサエレメント3aには、グローバルプロセッサ2のシーケンスユニット22により、外部インタフェース4に近い順に0から255までのアドレスが割り付けられる。   In the present embodiment, the number of processor elements 3a is assumed to be 256. However, the number of processor elements 3a is not limited to this, and may be changed as appropriate. Addresses 0 to 255 are assigned to the processor element 3a in the order of closeness to the external interface 4 by the sequence unit 22 of the global processor 2.

プロセッサエレメント3aのレジスタファイル31は、レジスタコントローラ31a、2種類のレジスタ31b、31cを備える。本実施形態では、図3及び図4に示すように、一単位のプロセッサエレメント3a毎に、レジスタコントローラ31aとレジスタ31bとを24組備え、さらにレジスタ31cを8個備えている。なお、図4では2組のプロセッサエレメント3aにおけるレジスタファイル31の一部を表しており、図3、4中の1PEとは1つのプロセッサエレメント3aを表している。ここで、本実施形態では、レジスタ31b、31cを8ビットのものとして扱うが、これに限定されるものでなく適宜変更して使用してもよい。   The register file 31 of the processor element 3a includes a register controller 31a and two types of registers 31b and 31c. In this embodiment, as shown in FIG. 3 and FIG. 4, for each unit of processor element 3a, 24 sets of register controller 31a and register 31b are provided, and 8 registers 31c are further provided. 4 shows a part of the register file 31 in the two sets of processor elements 3a, and 1PE in FIGS. 3 and 4 represents one processor element 3a. Here, in the present embodiment, the registers 31b and 31c are handled as 8-bit registers, but the present invention is not limited to this and may be used with appropriate modifications.

レジスタコントローラ31aは、図4に示すように、外部インタフェース4と、上述したアドレスバス41a、リード/ライト信号41b、クロック信号41cを介して接続されている。このレジスタコントローラ31aは、メモリコントローラ5から外部インタフェース4に与えられ、アドレスバス41aを介してアドレス指定信号が送られてくると、そのアドレス指定信号をデコードする。そして、デコードしたアドレスと、自己のプロセッサエレメント3aに割り付けられたアドレスとが一致する場合には、メモリコントローラ5から外部インタフェース4に与えられ、クロック信号41cからのクロック信号に同期して、リード/ライト信号41bを介してメモリコントローラ5から送られてきたリード/ライト指示信号を得る。このリード/ライト指示信号は、レジスタ31bへ与えられる。   As shown in FIG. 4, the register controller 31a is connected to the external interface 4 via the address bus 41a, the read / write signal 41b, and the clock signal 41c described above. When the register controller 31a is supplied from the memory controller 5 to the external interface 4 and receives an address designation signal via the address bus 41a, the register controller 31a decodes the address designation signal. If the decoded address matches the address assigned to its own processor element 3a, it is given from the memory controller 5 to the external interface 4 and read / read in synchronization with the clock signal from the clock signal 41c. A read / write instruction signal sent from the memory controller 5 is obtained via the write signal 41b. This read / write instruction signal is applied to the register 31b.

レジスタ31bは、後述するALU34でこれから演算される外部から入力されたデータを保持したり、或いはALU34で演算処理されたデータを外部へ出力するために保持するものであり、いわゆる入力レジスタとしても、或いは出力レジスタとしても機能する。また、演算処理されるデータ、或いは演算されたデータを一時的に保持するといった、後述するレジスタ31cとしての機能も有する。なお、本実施形態では、レジスタ31bは8ビットのデータを保持できるものとして扱うが、データに応じて適宜変更しても問題ない。上述したレジスタコントローラ31aからライト指示信号が与えられると、レジスタ31bは演算処理されるデータをデータバス41dより取得して保持する。一方、レジスタコントローラ31aからリード指示信号が送られてくると、レジスタ31bは保持している演算処理されたデータをデータバス41dへ与える。このデータは外部インタフェース4からメモリコントローラ5のライトバッファ部54に与えられ、ライトバッファ部54からメモリ6へ格納される。   The register 31b holds data input from the outside that will be calculated in the ALU 34, which will be described later, or holds the data processed in the ALU 34 for output to the outside. Alternatively, it functions as an output register. Further, it also has a function as a register 31c, which will be described later, such as temporarily holding data to be processed or calculated data. In this embodiment, the register 31b is handled as one that can hold 8-bit data, but there is no problem even if it is appropriately changed according to the data. When the write instruction signal is given from the register controller 31a described above, the register 31b acquires the data to be processed from the data bus 41d and holds it. On the other hand, when a read instruction signal is sent from the register controller 31a, the register 31b gives the data processed and held to the data bus 41d. This data is given from the external interface 4 to the write buffer unit 54 of the memory controller 5 and stored in the memory 6 from the write buffer unit 54.

また、レジスタ31bは、本実施形態においては8ビットデータをパラレルで転送するデータバス36を介してマルチプレクサ32に接続されている。ALU34で演算処理されるデータ、或いはALU34で演算処理されたデータは、このデータバス36を介して、レジスタ31bとの間で転送される。この転送は、グローバルプロセッサ2のシーケンスユニット22からの指示によって、グローバルプロセッサ2に接続されたリード信号26a、ライト信号26bを介して行われる。具体的には、グローバルプロセッサ2のシーケンスユニット22から、リード信号26aを介してリード指示信号が送られてくると、レジスタ31bはデータバス36を介して送られてきたALU34で演算処理されたデータを保持する。一方、グローバルプロセッサ2のシーケンスユニット22から、ライト信号26bを介してライト指示信号が送られてくると、レジスタ31bは保持している演算処理されるデータをデータバス36へ置く。このデータはALU34へ送られ演算処理される。   The register 31b is connected to the multiplexer 32 via a data bus 36 for transferring 8-bit data in parallel in this embodiment. Data processed by the ALU 34 or data processed by the ALU 34 is transferred to the register 31b via the data bus 36. This transfer is performed via a read signal 26 a and a write signal 26 b connected to the global processor 2 according to an instruction from the sequence unit 22 of the global processor 2. Specifically, when a read instruction signal is sent from the sequence unit 22 of the global processor 2 via the read signal 26a, the register 31b receives the data processed by the ALU 34 sent via the data bus 36. Hold. On the other hand, when a write instruction signal is sent from the sequence unit 22 of the global processor 2 via the write signal 26b, the register 31b puts the data to be processed on the data bus 36. This data is sent to the ALU 34 and processed.

レジスタ31cは、レジスタ31bより与えられた演算処理されるデータ、或いは演算されたデータがレジスタ31bに与えられる前に、そのデータを一時的に保持するものである。このレジスタ31cは、上述したレジスタ31bと異なり、メモリコントローラ5を介して、メモリ6との間においてデータ転送はしない。   The register 31c temporarily holds the data to be processed by the register 31b or before the calculated data is supplied to the register 31b. Unlike the register 31b described above, the register 31c does not transfer data to or from the memory 6 via the memory controller 5.

演算アレイ36は、マルチプレクサ32シフト/拡張回路33、16ビットALU34及び16ビットのレジスタ35を備えている。このレジスタ35には、16ビットAレジスタ、Fレジスタを内蔵している。   The arithmetic array 36 includes a multiplexer 32 shift / expansion circuit 33, a 16-bit ALU 34, and a 16-bit register 35. The register 35 includes a 16-bit A register and an F register.

プロセッサエレメント(PE)3aの命令による演算は、基本的にレジスタファイル31から読み出されたデータをALU34の片側の入力としてもう片側にはレジスタ35のAレジスタの内容を入力として結果をAレジスタに格納する。したがって、Aレジスタとレジスタファイル31のR0〜R31レジスタとの演算が行われることとなる。レジスタファイル31と演算アレイ36との接続に(7to1)のマルチプレクサ32を置いており、プロセッサエレメント(PE)方向で左に1、2、3つ離れたデータと右に1、2、3つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル31の8ビットのデータはシフト/拡張回路33により任意ビットの左シフトしてALU34に入力される。さらに、図示していない8ビットの条件レジスタ(T)により、プロセッサエレメント3aごとに演算実行の無効/有効の制御をしており、特定のプロセッサエレメント3aだけを演算対象として選択できるように構成している。   The calculation by the instruction of the processor element (PE) 3a basically uses the data read from the register file 31 as input on one side of the ALU 34 and the contents of the A register of the register 35 as input on the other side and the result into the A register. Store. Therefore, the operation between the A register and the R0 to R31 registers of the register file 31 is performed. A (7 to 1) multiplexer 32 is placed between the register file 31 and the operation array 36. The data is 1, 2, 3 away from the left in the processor element (PE) direction, and 1, 2, 3 away from the right. Data and center data are selected for calculation. The 8-bit data in the register file 31 is shifted to the left by an arbitrary bit by the shift / extension circuit 33 and input to the ALU 34. In addition, the execution / invalidation control of each processor element 3a is controlled by an 8-bit condition register (T) (not shown) so that only a specific processor element 3a can be selected as an operation target. ing.

上記したように、マルチプレクサ32は、自己のプロセッサエレメント3aに備えられた上記データバス36に接続されるとともに、両隣3つのプロセッサエレメント3aに備えられたデータバス36にも接続されている。このマルチプレクサ32は7つのプロセッサエレメント3aから1つを選択し、その選択したプロセッサエレメント3aにおけるレジスタレジスタ31b、31cで保持されているデータをALU34へ送る。或いはALU34で演算処理されたデータを、選択したプロセッサエレメント3aにおけるレジスタレジスタ31b、31cへ送る。これによって、隣のプロセッサエレメント3aにおけるレジスタレジスタ31b、31cで保持されているデータを利用した演算処理が可能になり、SIMD型プロセッサ1の演算処理能力を高めることができる。   As described above, the multiplexer 32 is connected to the data bus 36 provided in its own processor element 3a, and is also connected to the data bus 36 provided in the three adjacent processor elements 3a. The multiplexer 32 selects one of the seven processor elements 3 a and sends the data held in the register registers 31 b and 31 c in the selected processor element 3 a to the ALU 34. Alternatively, the data processed by the ALU 34 is sent to the register registers 31b and 31c in the selected processor element 3a. As a result, arithmetic processing using data held in the register registers 31b and 31c in the adjacent processor element 3a becomes possible, and the arithmetic processing capability of the SIMD type processor 1 can be enhanced.

シフト/拡張回路33は、マルチプレクサ32から送られてきたデータを所定ビットシフトしてALU34へ送る。或いはALU34から送られてきた演算処理されたデータを所定ビットシフトしてマルチプレクサ32へ送る。   The shift / extension circuit 33 shifts the data sent from the multiplexer 32 by a predetermined bit and sends it to the ALU 34. Alternatively, the arithmetically processed data sent from the ALU 34 is shifted by a predetermined bit and sent to the multiplexer 32.

ALU34は、シフト/拡張回路33から送られてきたデータと、レジスタ35に保持されているデータとに基づき算術論理演算を行う。なお、本実施形態では、ALU34は16ビットのデータに対応できるものとして扱うが、データに応じて適宜変更しても問題ない。演算処理されたデータは、レジスタ35に保持され、シフト/拡張回路33へ転送されたり、或いはグローバルプロセッサ2の汎用レジスタ25へ転送される。   The ALU 34 performs arithmetic logic operations based on the data sent from the shift / expansion circuit 33 and the data held in the register 35. In this embodiment, the ALU 34 is handled as being capable of handling 16-bit data, but there is no problem even if it is appropriately changed according to the data. The processed data is held in the register 35 and transferred to the shift / expansion circuit 33 or transferred to the general-purpose register 25 of the global processor 2.

次に、外部からプロセッサエレメント3aのレジスタファイル31へのアクセスにつき図4を参照して説明する。この図4では、外部インタフェース4の外部ポートは8ビットのアドレス、ハイレベル時にリード動作をローレベル時にライト動作を示すリード/ライト選択信号、転送のタイミングを示すクロック、転送データである8ビットデータで構成されている。これらの信号はプロセッサの外部インタフェース4に接続され、ここでタイミングおよびバッファリングされ、プロセッサ内部の信号としてアドレス、リード/ライト、クロック、データに変換される。 Next, external access to the register file 31 of the processor element 3a will be described with reference to FIG. In FIG. 4, the external port of the external in tough Esu 4 8-bit address, the read / write selection signal indicating a write operation to a high level during a read operation to a low level when the clock indicating the timing of the transfer is a transfer data 8 It consists of bit data. These signals are connected to the external interface 4 of the processor, where they are timing and buffered, and converted into addresses, read / writes, clocks, and data as internal signals.

これらの信号はレジスタファイル31の各レジスタに供給されるが、各プロセッサエレメント3a…ごとにアドレスをデコードして各プロセッサエレメント3a…を示すアドレスと一致したプロセッサエレメント3aだけがリード/ライトの動作をおこなう。そのため各プロセッサエレメント3aごとにアドレスのデコードとリード/ライトの制御を行うレジスタコントローラ31aを備える。そして、入出力レジスタ31bには、リード/ライト信号41bから与えられるリード/ライト指示信号(ライト信号W1、リード信号R1)に基づき、外部インタフェース4と接続されたデータバス41dとデータの転送をおこなう。入出力レジスタ31bは演算アレイ36ともデータの転送をおこなうため、もう一方の入出力ポートを持ち、命令によりグローバルプロセッサ2で作成され、リード信号26a及びライト信号26bから与えられたライト(W2)、リード(R2)制御信号により、演算アレイ36と接続されたデータバス37(D2)からデータの転送をおこなう。 These signals are supplied to each register of the register file 31. However, only the processor element 3a corresponding to the address indicating each processor element 3a... Decodes the address for each processor element 3a. Do it. Therefore, each processor element 3a is provided with a register controller 31a that performs address decoding and read / write control. The input / output register 31b transfers data to the data bus 41d connected to the external interface 4 based on the read / write instruction signals (write signal W1, read signal R1) given from the read / write signal 41b. . For input and output register 31b is used for transferring both the operation array 36 data has the other input and output ports are created in global processor 2 by the instruction, the read signal 26a and the write signal 26b from the given et the light (W2) In response to the read (R2) control signal, data is transferred from the data bus 37 (D2) connected to the arithmetic array 36.

図4では2個のプロセッサエレメント3a分の構成だけを図示しているが、図3の256個のプロセッサエレメント3a…の構成と合わせるためには、レジスタコントローラ31aとレジスタファイル31bは256組必要となる。また、256組を選択するためにアドレスのビット幅は8ビットとなっている。従って、プロセッサエレメント3aの数の増減によりアドレスのビット幅も変化することとなる。また、データのビット幅もここでは8ビットとしているが1度に転送するデータ量により変化する。   In FIG. 4, only the configuration for two processor elements 3a is shown, but in order to match the configuration of the 256 processor elements 3a ... in FIG. 3, 256 sets of register controllers 31a and register files 31b are required. Become. In order to select 256 sets, the bit width of the address is 8 bits. Therefore, the bit width of the address also changes as the number of processor elements 3a increases or decreases. The bit width of the data is 8 bits here, but it varies depending on the amount of data transferred at one time.

このように構成される本実施形態におけるSIMD型プロセッサ1は、以下のような動作を行うため、以下のような利点を得ることができる。   Since the SIMD type processor 1 according to the present embodiment configured as described above performs the following operation, the following advantages can be obtained.

メモリコントローラ5が、メモリ6に格納されているデータをプロセッサエレメント3aに送る場合、プロセッサエレメント3aに割り付けられたアドレスを指定することにより、1回のクロック信号が入力されるだけで、その指定したプロセッサエレメント3aにデータを送ることができる。例えばデータを偶数番目のプロセッサエレメント3aにだけ転送したい場合には、偶数番目のプロセッサエレメント3aをアドレス指定すればよい。よって、奇数番目のプロセッサエレメント3aに、データを転送する必要がないため、データ転送が高速になり、延いてはデータ処理を高速にすることができる。   When the memory controller 5 sends the data stored in the memory 6 to the processor element 3a, by designating the address assigned to the processor element 3a, only one clock signal is input. Data can be sent to the processor element 3a. For example, if it is desired to transfer data only to the even-numbered processor element 3a, the even-numbered processor element 3a may be addressed. Therefore, since there is no need to transfer data to the odd-numbered processor elements 3a, the data transfer can be performed at high speed, and the data processing can be performed at high speed.

また、これとは逆に、レジスタ31bに保持されている演算処理されたデータをメモリ5に転送する場合においても、メモリコントローラ5が、プロセッサエレメント3aに割り付けられたアドレスを指定することにより、1回のクロック信号が入力されるだけで、指定したプロセッサエレメント3aのレジスタ31bに保持されているデータをメモリ6に転送できる。従って、この場合においても、必要なデータのみを転送できるため、データ転送が高速になり、延いてはデータ処理を高速にすることができる。   On the contrary, even when the arithmetically processed data held in the register 31b is transferred to the memory 5, the memory controller 5 designates the address assigned to the processor element 3a, so that 1 The data held in the register 31b of the designated processor element 3a can be transferred to the memory 6 only by inputting the clock signal for the first time. Accordingly, even in this case, only necessary data can be transferred, so that the data transfer can be performed at a high speed, and the data processing can be performed at a high speed.

一つのプロセッサエレメント3aにつき、24個づつ備えられているレジスタ31bは、上述したように、演算処理されるデータを保持したり、或いは演算処理されたデータを保持するものであり、いわゆる入力レジスタとしても、或いは出力レジスタとしても機能する。例えば、メモリコントローラ5からプロセッサエレメント3aに送られるデータ、即ち入力データが56ビットのものであり、プロセッサエレメント3aからメモリコントローラ5に送るデータ、即ち出力データが32ビットのものであり、一時的に保持されるべきデータが80ビットである場合のアプリケーションを考える。この場合、7個のレジスタ31bを56ビットの入力データを保持するものとして利用し(8ビット×7個=56ビット)、4個のレジスタ31bを32ビットの出力データを保持するものとして利用することができる(8ビット×4個=32ビット)。このように、入力データのビット数及び出力データのビット数それぞれのビット数に係わらず、入力データのビット数と出力データのビット数との合計が、8ビット×24個=192ビットを越えなければ、そのアプリケーションの演算実行ができる。   As described above, 24 registers 31b provided for each processor element 3a hold data to be processed or hold data that has been processed, so-called input registers. Or functions as an output register. For example, data sent from the memory controller 5 to the processor element 3a, ie, input data is 56 bits, data sent from the processor element 3a to the memory controller 5, ie, output data is 32 bits, and temporarily Consider an application where the data to be retained is 80 bits. In this case, seven registers 31b are used as holding 56-bit input data (8 bits × 7 = 56 bits), and four registers 31b are used as holding 32-bit output data. (8 bits × 4 pieces = 32 bits). Thus, regardless of the number of bits of input data and the number of bits of output data, the sum of the number of bits of input data and the number of bits of output data must exceed 8 bits × 24 = 192 bits. For example, the application can be executed.

また、データを一時的に保持するレジスタ31cは、本実施形態では、一つのプロセッサエレメント3aにつき8個づつ備えられている。そのため、8ビット×8個=64ビット分を保持できる。しかし、この例のように、一時的に保持されるべきデータが80ビットである場合には、レジスタ31cだけでは16ビット(=80ビット−64ビット)分のデータが保持できない。この場合においても、本実施形態においてレジスタ31bは、上述したようにデータを一時的に保持する機能も有するため、使用していない11個(=24個−7個−4個)のレジスタ31bのうち、2個(8ビット×2個=16ビット)を一時的なデータ保持のために使用すればよい。   In the present embodiment, eight registers 31c for temporarily storing data are provided for each processor element 3a. Therefore, 8 bits × 8 pieces = 64 bits can be held. However, as in this example, when the data to be temporarily stored is 80 bits, 16 bits (= 80 bits−64 bits) of data cannot be stored only by the register 31c. Even in this case, in the present embodiment, the register 31b also has a function of temporarily holding data as described above. Therefore, 11 (= 24−7−4) registers 31b that are not used are used. Of these, two (8 bits × 2 = 16 bits) may be used for temporary data retention.

このように、レジスタ31bの使用用途が柔軟であるため、データのビット数に柔軟に対応したデータ処理が可能である。このことは、このSIMD型プロセッサ1で演算処理できるアプリケーションの幅が増えることになり、使用用途が広がるという利点がある。   Thus, since the usage of the register 31b is flexible, data processing that flexibly corresponds to the number of data bits is possible. This has the advantage that the range of applications that can be processed by the SIMD type processor 1 is increased, and the usage is expanded.

上記した実施の形態においては、外部インタフェース4の外部ポートは外部端子として説明しているが、図5の実施形態のように、転送先のメモリ6とメモリ転送ブロック7が同一チップ上に搭載され、特に外部端子として外部ポートを出力しない場合でも、図3のプロセッサエレメント3a…単位でのアドレスデコードとリード/ライトコントロールにより、同一チップに搭載されたメモリ転送ブロック7等で各プロセッサエレメント3a…の任意のレジスタをアクセスすることが可能である。   In the above embodiment, the external port of the external interface 4 is described as an external terminal. However, as in the embodiment of FIG. 5, the transfer destination memory 6 and the memory transfer block 7 are mounted on the same chip. In particular, even when an external port is not output as an external terminal, each of the processor elements 3a... In the memory transfer block 7 etc. mounted on the same chip by address decoding and read / write control in units of the processor elements 3a. Any register can be accessed.

次に、上記実施の形態の変更例につき図6に従い説明する。図6に示す構成は、図4の基本構成を2つ搭載している。即ち、図3に示す実施の形態では、入出力レジスタ31bは全部で24個あり、8個は演算アレイ36からのみアクセス可能な演算処理用の一時的なデータ保持に使用される演算レジスタ31cである。この2種類のレジスタが合計で32個あるため、例えば、入力データが56ビット、出力データが32ビット、一時的なデータ保持に80ビットが必要なアプリケーションでは、7個の入出力レジスタ31bを外部入力レジスタ用に、4個の入出力レジスタ31bを外部出力レジスタに、8個の演算レジスタ31cと2個の入出力レジスタ31bの合計10個を一時的なデータ保持に割り当てることで実現できる。つまり、入力データと出力データのビット幅の合計が192ビットまでで、一時的なデータ保持のビット幅を加えた合計のビット幅が256ビットまでのアプリケーションであれば自由にレジスタの使用方法を設定して実現できることになる。これに対して、従来のプロセッサでは入力レジスタ、出力レジスタ、演算レジスタが固定のビット幅であったため、いずれかのビット幅を超えるアプリケーションは実現できなかった。   Next, a modified example of the above embodiment will be described with reference to FIG. The configuration shown in FIG. 6 has two basic configurations shown in FIG. That is, in the embodiment shown in FIG. 3, there are 24 input / output registers 31b in total, and 8 are operation registers 31c used for temporary data storage for operation processing accessible only from the operation array 36. is there. Since these two types of registers are 32 in total, for example, in an application that requires 56 bits of input data, 32 bits of output data, and 80 bits for temporary data retention, 7 input / output registers 31b are externally provided. This can be realized by assigning four input / output registers 31b as external output registers and a total of ten operation registers 31c and two input / output registers 31b for temporary data storage. In other words, if the total of the bit width of input data and output data is up to 192 bits and the total bit width including the bit width of temporary data retention is up to 256 bits, the register usage can be freely set Can be realized. On the other hand, in the conventional processor, the input register, the output register, and the arithmetic register have a fixed bit width, and thus an application exceeding any one of the bit widths cannot be realized.

(第2の実施形態)
本発明に係るSIMD型プロセッサ1の第2の実施形態を図7を参照して以下説明する。なお、ここでは上述した第1実施形態と異なる点について説明することとし、同じ点については説明を省略する。また、上述した第1実施形態と同じ構成部分については、同一の符号を付する。
(Second Embodiment)
A second embodiment of the SIMD type processor 1 according to the present invention will be described below with reference to FIG. Here, the points different from the first embodiment described above will be described, and the description of the same points will be omitted. Moreover, the same code | symbol is attached | subjected about the same component as 1st Embodiment mentioned above.

この第2実施形態におけるSIMD型プロセッサ1は、互いに隣り合う2つのプロセッサエレメント3aに偶数番号、奇数番号を割り付けて一組とするとともに、この一組のプロセッサエレメント3aには、同一のアドレスを割り付けていることを特徴とする。さらに、偶数番号が割り付けられたプロセッサエレメント3a用の偶数用データバス46aと、奇数番号が割り付けられたプロセッサエレメント3a用の奇数用データバス46bと、を各組毎のプロセッサエレメント3aにそれぞれ割り当てていることを特徴とする。また、メモリコントローラ4とSIMD型プロセッサ1の外部に設けられたメモリ5、6との間において、データは上記第1実施形態のように8ビットではなく、16ビットがパラレルで転送されることも特徴とする。この16ビットのデータは、偶数番号が割り付けられたプロセッサエレメント3aに与えられる8ビットと、奇数番号が割り付けられたプロセッサエレメント3aに与えられる8ビットとから構成されている。以下、具体的にこの実施形態について説明する。   The SIMD type processor 1 in the second embodiment assigns even numbers and odd numbers to two adjacent processor elements 3a as one set, and assigns the same address to this set of processor elements 3a. It is characterized by. Further, an even data bus 46a for the processor element 3a to which the even number is assigned and an odd data bus 46b for the processor element 3a to which the odd number is assigned are respectively assigned to the processor elements 3a of each set. It is characterized by being. Further, 16 bits may be transferred in parallel between the memory controller 4 and the memories 5 and 6 provided outside the SIMD type processor 1 instead of 8 bits as in the first embodiment. Features. This 16-bit data is composed of 8 bits given to the processor element 3a assigned with the even number and 8 bits given to the processor element 3a assigned with the odd number. Hereinafter, this embodiment will be specifically described.

まず、グローバルプロセッサ2からメモリコントローラ5へはI/O用のアドレス、データ、コントロール信号がバスを介して与えられる。グローバルプロセッサ2がメモリコントローラ5のいくつかの動作設定レジスタ(図示せず)へ動作方法等のコマンドを設定している。最後にグローバルプロセッサ2は、メモリコントローラ5のスタートレジスタ(図示せず)にスタートコードを書き込むことで、メモリコントローラ5は自動的に設定に従った動作を行う。   First, an I / O address, data, and control signal are given from the global processor 2 to the memory controller 5 via a bus. The global processor 2 sets commands such as an operation method in some operation setting registers (not shown) of the memory controller 5. Finally, the global processor 2 writes a start code in a start register (not shown) of the memory controller 5 so that the memory controller 5 automatically performs an operation according to the setting.

外部インタフェース4は、メモリコントローラ5からアドレス制御信号を受けると、アドレス指定信号をアドレスバス41aを介してプロセッサエレメントブロック3ヘ送る。これにより、一組のプロセッサエレメント3a、即ち2つのプロセッサエレメント3aが同時にアドレス指定される。レジスタコントローラ31aは、送られてきたアドレス指定信号をデコードし、デコードしたアドレスと、自己に割り付けられたアドレスとが一致する場合には、メモリコントローラ5からクロック信号41cを介して送られてきたクロック信号に同期して、リード/ライト信号45a或いは45bを介してメモリコントローラ4から送られてきたリード/ライト指示信号を得る。具体的には、偶数番号が割り付けられているレジスタコントローラ31aは、偶数用リード/ライト信号45aを介してメモリコントローラ4から送られてきたリード/ライト指示信号を得る。一方、奇数番号が割り付けられているレジスタコントローラ31aは、奇数用リード/ライト信号45bを介してメモリコントローラ4から送られてきたリード/ライト指示信号を得る。このとき一組を構成するプロセッサエレメント3aのレジスタコントローラ31aへ送られるリード/ライト指示信号はそれぞれ異なるものであってもよい。即ち、偶数番号が割り付けられているレジスタコントローラ31aへ送られる指示信号がリード指示であるとき、奇数番号が割り付けられているレジスタコントローラ31aへ送られる指示信号はライト指示であってもよい。そして、このリード/ライト指示信号はレジスタ31bに与えられる。   When receiving the address control signal from the memory controller 5, the external interface 4 sends an address designation signal to the processor element block 3 via the address bus 41a. Thereby, a set of processor elements 3a, ie two processor elements 3a, are addressed simultaneously. The register controller 31a decodes the address designation signal sent, and if the decoded address matches the address assigned to itself, the register controller 31a sends the clock sent from the memory controller 5 via the clock signal 41c. In synchronization with the signal, a read / write instruction signal sent from the memory controller 4 is obtained via the read / write signal 45a or 45b. Specifically, the register controller 31a to which the even number is assigned obtains the read / write instruction signal sent from the memory controller 4 via the even read / write signal 45a. On the other hand, the register controller 31a to which the odd number is assigned obtains the read / write instruction signal sent from the memory controller 4 via the odd read / write signal 45b. At this time, the read / write instruction signals sent to the register controller 31a of the processor element 3a constituting the set may be different. That is, when the instruction signal sent to the register controller 31a assigned with the even number is a read instruction, the instruction signal sent to the register controller 31a assigned with the odd number may be a write instruction. The read / write instruction signal is given to the register 31b.

レジスタコントローラ31aから双方のプロセッサエレメント3aに対し、ライト指示信号が送られてきた場合には、偶数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されるデータ(8ビット)を偶数用データバス46aより取得して保持する。また、奇数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されるデータ(8ビット)を奇数用データバス46bより取得して保持する。一方、レジスタコントローラ31aから双方のプロセッサエレメント3aに対し、リード指示信号が送られてきた場合には、偶数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されたデータ(8ビット)を偶数用データバス46aへ送る。また、奇数番号が割り付けられたプロセッサエレメント3aのレジスタ31bは、演算処理されたデータ(8ビット)を奇数用データバス46bへ送る。   When a write instruction signal is sent from the register controller 31a to both processor elements 3a, the register 31b of the processor element 3a to which the even number is assigned uses the data (8 bits) to be processed for an even number. Obtained from the data bus 46a and held. Further, the register 31b of the processor element 3a to which the odd number is assigned acquires the data (8 bits) to be processed from the odd data bus 46b and holds it. On the other hand, when a read instruction signal is sent from the register controller 31a to both the processor elements 3a, the register 31b of the processor element 3a to which the even number is assigned receives the processed data (8 bits). The data is sent to the even data bus 46a. In addition, the register 31b of the processor element 3a to which the odd number is assigned sends the arithmetically processed data (8 bits) to the odd data bus 46b.

このように、一度のアドレス指定により、偶数番号が割り付けられたプロセッサエレメント3aにデータ転送できるとともに、奇数番号が割り付けられたプロセッサエレメント3aにもデータ転送できる。このため、データの転送回数を少なくすることができ、データ転送を高速にできる。よって、データ処理を高速にできる。また、本実施形態においても、上記第1実施形態と同様に、プロセッサエレメント3aをアドレス指定していることより、上記第1実施形態と同様の利点を得ることができる。   As described above, data can be transferred to the processor element 3a to which the even number is assigned, and can be transferred to the processor element 3a to which the odd number is assigned. For this reason, the number of times of data transfer can be reduced, and data transfer can be performed at high speed. Therefore, data processing can be performed at high speed. Also in the present embodiment, the same advantages as in the first embodiment can be obtained by addressing the processor element 3a as in the first embodiment.

次に、上記実施の形態の変更例につき図8に従い説明する。図8に示す構成は、図7の基本構成を2つ搭載している。即ち、図3に示す実施の形態では、入出力レジスタ31bは全部で24個あり、8個は演算アレイ36からのみアクセス可能な演算処理用の一時的なデータ保持に使用される演算レジスタ31cである。この2種類のレジスタが合計で32個あるため、例えば、入力データが56ビット、出力データが32ビット、一時的なデータ保持に80ビットが必要なアプリケーションでは、7個の入出力レジスタ31bを外部入力レジスタ用に、4個の入出力レジスタ31bを外部出力レジスタに、8個の演算レジスタ31cと2個の入出力レジスタ31bの合計10個を一時的なデータ保持に割り当てることで実現できる。つまり、入力データと出力データのビット幅の合計が192ビットまでで、一時的なデータ保持のビット幅を加えた合計のビット幅が256ビットまでのアプリケーションであれば自由にレジスタの使用方法を設定して実現できることになる。   Next, a modified example of the above embodiment will be described with reference to FIG. The configuration shown in FIG. 8 has two basic configurations shown in FIG. That is, in the embodiment shown in FIG. 3, there are 24 input / output registers 31b in total, and 8 are operation registers 31c used for temporary data storage for operation processing accessible only from the operation array 36. is there. Since these two types of registers are 32 in total, for example, in an application that requires 56 bits of input data, 32 bits of output data, and 80 bits for temporary data retention, 7 input / output registers 31b are externally provided. This can be realized by assigning four input / output registers 31b as external output registers and a total of ten operation registers 31c and two input / output registers 31b for temporary data storage. In other words, if the total of the bit width of input data and output data is up to 192 bits and the total bit width including the bit width of temporary data retention is up to 256 bits, the register usage can be freely set Can be realized.

(第3の実施形態)
本発明に係るSIMD型プロセッサ1の第3の実施形態を、図9を参照して以下説明する。上述した第2実施形態においては、プロセッサエレメント3aをアドレス指定しているが、本実施形態はプロセッサエレメント3aの指定をアドレス指定する方式ではなく、ポインタ指定する方式、即ちシリアルアクセスメモリ方式に応用するものである。なお、ここでは上述した第2実施形態と異なる点について説明することとし、同じ点については説明を省略する。また、上述した第2実施形態と同じ構成部分については、同一の符号を付する。
(Third embodiment)
A third embodiment of the SIMD type processor 1 according to the present invention will be described below with reference to FIG. In the second embodiment described above, the processor element 3a is addressed. However, the present embodiment is not applied to the addressing specification of the processor element 3a, but applied to a pointer specifying method, that is, a serial access memory method. Is. Here, the points different from the second embodiment described above will be described, and the description of the same points will be omitted. Moreover, the same code | symbol is attached | subjected about the same component as 2nd Embodiment mentioned above.

まず、グローバルプロセッサ2からメモリコントローラ5へはI/O用のアドレス、データ、コントロール信号がバスを介して与えられる。グローバルプロセッサ2がメモリコントローラ5のいくつかの動作設定レジスタ(図示せず)へ動作方法等のコマンドを設定している。最後にグローバルプロセッサ2は、メモリコントローラ5のスタートレジスタ(図示せず)にスタートコードを書き込むことで、メモリコントローラ5は自動的に設定に従った動作を行う。メモリコントローラ5は、グローバルプロセッサ2のコマンドに基づき、このリセット信号を生成し、外部インタフェース4からリセット信号47を介してプロセッサエレメントブロック3ヘ送る。これにより、レジスタコントローラ31aは、リセットされる。そして、外部インタフェース4に最も近いレジスタコントローラ31aへメモリコントローラ5から外部インタフェース4、クロック信号41cを介してクロック信号が送られる。このクロック信号に同期して、レジスタコントローラ31aは、リード/ライト信号45a或いは45bを介してメモリコントローラ5から送られてきたリード/ライト指示信号を得る。このリード/ライト指示信号は、偶数番号が割り付けられたプロセッサエレメント3aのレジスタ31b、及び奇数番号が割り付けられたプロセッサエレメント3aのレジスタ31bにそれぞれ与えられる。このとき一組を構成するプロセッサエレメント3aのレジスタコントローラ31aへ送られるリード/ライト指示信号は、上記第2実施形態の場合と同様それぞれ異なるものであってもよい。   First, an I / O address, data, and control signal are given from the global processor 2 to the memory controller 5 via a bus. The global processor 2 sets commands such as an operation method in some operation setting registers (not shown) of the memory controller 5. Finally, the global processor 2 writes a start code in a start register (not shown) of the memory controller 5 so that the memory controller 5 automatically performs an operation according to the setting. The memory controller 5 generates this reset signal based on the command of the global processor 2 and sends it to the processor element block 3 from the external interface 4 via the reset signal 47. As a result, the register controller 31a is reset. Then, a clock signal is sent from the memory controller 5 to the register controller 31a closest to the external interface 4 via the external interface 4 and the clock signal 41c. In synchronization with this clock signal, the register controller 31a obtains a read / write instruction signal sent from the memory controller 5 via the read / write signal 45a or 45b. This read / write instruction signal is applied to the register 31b of the processor element 3a to which the even number is assigned and to the register 31b of the processor element 3a to which the odd number is assigned. At this time, the read / write instruction signals sent to the register controller 31a of the processor element 3a constituting one set may be different from each other as in the case of the second embodiment.

これにより、上述した第2実施形態の場合と同様、一度のポインタ指定により、偶数番号が割り付けられたプロセッサエレメント3aにデータ転送できるとともに、奇数番号が割り付けられたプロセッサエレメント3aにもデータ転送できる。このため、データの転送回数を少なくすることができ、データ転送を高速にできる。よって、データ処理を高速にできる。   As a result, as in the case of the second embodiment described above, data can be transferred to the processor element 3a assigned with an even number by one pointer designation, and can also be transferred to the processor element 3a assigned with an odd number. For this reason, the number of times of data transfer can be reduced, and data transfer can be performed at high speed. Therefore, data processing can be performed at high speed.

(第4実施形態)
本発明に係るSIMD型プロセッサ1の第4の実施形態を、図11及び図12を参照して以下説明する。なお、ここでは上述した第1実施形態と異なる点について説明することとし、同じ点については説明を省略する。また、上述した第1実施形態と同じ構成部分については同一の符号を付する。
(Fourth embodiment)
A fourth embodiment of the SIMD type processor 1 according to the present invention will be described below with reference to FIGS. Here, the points different from the first embodiment described above will be described, and the description of the same points will be omitted. Moreover, the same code | symbol is attached | subjected about the same component as 1st Embodiment mentioned above.

本実施形態においては、図10に示すように、ラインバッファ61をプロセッサエレメント3aの外部に別途設けることを特徴とする。この図10では、ラインバッファ61を2つ示しているが、ラインバッファ61の数は適宜変更してもよい。このラインバッファ61には、演算処理が終了しているが、注目画素の上下の画素を参照するために必要なデータを保持したり、或いは1ラインの画素数が多い場合にプロセッサエレメント3a…を越える処理画素数を保持することなどに使用される。図10では、入出力レジスタファイル31にラインバッファ61を接続しており、入出力レジスタファイル31に保持されている一部のデータが、このラインバッファ61に送られ保持される。また、ラインバッファ61に保持されているデータは、必要に応じて入出力レジスタファイル31に送られ、演算処理のデータとして使用される。なお、ここで、入出力レジスタファイル31の各ブロックは、図2において横に一列に並んでいる256個のレジスタコントローラ31a及びレジスタ31bを意味する。   In the present embodiment, as shown in FIG. 10, a line buffer 61 is separately provided outside the processor element 3a. In FIG. 10, two line buffers 61 are shown, but the number of line buffers 61 may be changed as appropriate. In this line buffer 61, calculation processing has been completed, but data necessary for referring to the upper and lower pixels of the target pixel is held, or when the number of pixels in one line is large, the processor element 3a. It is used for holding the number of processed pixels exceeding. In FIG. 10, the line buffer 61 is connected to the input / output register file 31, and a part of the data held in the input / output register file 31 is sent to and held in the line buffer 61. Further, the data held in the line buffer 61 is sent to the input / output register file 31 as necessary, and used as operation processing data. Here, each block of the input / output register file 31 means 256 register controllers 31a and 31b arranged in a line horizontally in FIG.

上記した実施形態のように、256個のプロセッサエレメント3a…を備えたプロセッサでは、256画素までは内部のレジスタファイル31にデータを置くことが可能である。それを超える画素数の場合、複数の本数のレジスタに同一ラインを分割して保持することになる。上記のようにラインバッファ61を外部に持つことで、256画素ずつラインバッファ61からデータを取り込むことが可能となり、256画素以上のラインでも繰り返し同じ処理を行うことで、画素数をいくらでも増加させることができる。但し、画像数の上限はラインバッファ61の容量で決まる。このように、外部にラインバッファ61を備えることにより、1ラインの画素数が多くなっても容易にその処理を行うことができる。   As in the embodiment described above, a processor having 256 processor elements 3a... Can store data in the internal register file 31 up to 256 pixels. When the number of pixels exceeds that, the same line is divided and held in a plurality of registers. By having the line buffer 61 outside as described above, it is possible to fetch data from the line buffer 61 in units of 256 pixels, and by repeatedly performing the same processing for lines of 256 pixels or more, the number of pixels can be increased as much as possible. Can do. However, the upper limit of the number of images is determined by the capacity of the line buffer 61. Thus, by providing the line buffer 61 outside, even if the number of pixels in one line increases, the processing can be easily performed.

また、入出力レジスタファイル31で保持しているデータを、ラインバッファ61で保持させることで、空いた入出力レジスタファイル31を他の演算処理のために使用でき、演算処理を効率的に行うことができる。即ち、プロセッサエレメント3aのレジスタ31bの容量を越えるデータの処理が可能になる。   Also, by holding the data held in the input / output register file 31 in the line buffer 61, the empty input / output register file 31 can be used for other arithmetic processing, and the arithmetic processing can be performed efficiently. Can do. That is, it becomes possible to process data exceeding the capacity of the register 31b of the processor element 3a.

なお、レジスタファイルの種類に関係なく、ラインバッファ61をプロセッサエレメント3aの外部に別途設けることができる。即ち、図11に示すように、演算処理されるデータを取得して保持するだけの機能を持つ入力レジスタファイル、演算処理されたデータをデータバス41dに出力するだけの機能を持つ出力レジスタファイルに接続して設けてもよい。この場合、出力レジスタファイルに保持されている一部のデータが、ラインバッファ61に送られ保持される。また、ラインバッファ61に保持されているデータは、必要に応じて入力レジスタファイルに送られ、演算処理のデータとして使用される。   Note that the line buffer 61 can be separately provided outside the processor element 3a regardless of the type of the register file. That is, as shown in FIG. 11, an input register file having a function of only acquiring and holding data to be processed and an output register file having a function of only outputting the processed data to the data bus 41d. You may connect and provide. In this case, some data held in the output register file is sent to the line buffer 61 and held. Further, the data held in the line buffer 61 is sent to the input register file as necessary, and used as data for arithmetic processing.

この発明の実施形態におけるSIMD型プロセッサを示すブロック図である。It is a block diagram which shows the SIMD type | mold processor in embodiment of this invention. この発明に用いられるメモリコントローラ5の構成を示すブロック図である。It is a block diagram which shows the structure of the memory controller 5 used for this invention. この発明の第1実施形態におけるSIMD型プロセッサの内部構成を示す図である。It is a figure which shows the internal structure of the SIMD type | mold processor in 1st Embodiment of this invention. 第1実施形態におけるプロセッサエレメントの内部構成を示す図である。It is a figure which shows the internal structure of the processor element in 1st Embodiment. 転送先のメモリとメモリ転送ブロックが同一チップ上に搭載された実施の形態を示すブロック図である。FIG. 3 is a block diagram showing an embodiment in which a transfer destination memory and a memory transfer block are mounted on the same chip. 第1実施形態におけるプロセッサエレメントの内部構成を示す図である。It is a figure which shows the internal structure of the processor element in 1st Embodiment. 第2実施形態におけるプロセッサエレメントの内部構成を示す図である。It is a figure which shows the internal structure of the processor element in 2nd Embodiment. 第2実施形態におけるプロセッサエレメントの内部構成を示す図である。It is a figure which shows the internal structure of the processor element in 2nd Embodiment. 第3実施形態におけるプロセッサエレメントの内部構成を示す図である。It is a figure which shows the internal structure of the processor element in 3rd Embodiment. 第4実施形態におけるラインバッファの接続を説明するブロック図である。It is a block diagram explaining the connection of the line buffer in 4th Embodiment. 第4実施形態におけるラインバッファの接続を説明するブロック図である。It is a block diagram explaining the connection of the line buffer in 4th Embodiment.

1 SIMD型プロセッサ
2 グローバルプロセッサ
4 外部インタフェース
5 メモリコントローラ
26a リード信号
26b ライト信号
31a レジスタコントローラ
31b レジスタ
34 ALU
41a アドレスバス
41b リード/ライト信号
41d クロック信号
45a 偶数用リード/ライト信号
45b 奇数用リード/ライト信号
46a 偶数用データバス
46b 奇数用データバス
47 リセット信号
1 SIMD type processor 2 Global processor 4 External interface 5 Memory controller 26a Read signal 26b Write signal 31a Register controller 31b Register 34 ALU
41a Address bus 41b Read / write signal 41d Clock signal 45a Even read / write signal 45b Odd read / write signal 46a Even data bus 46b Odd data bus 47 Reset signal

Claims (1)

データを演算処理する演算手段及び当該演算手段で演算処理されるデータを保持するとともに当該演算手段で演算処理されたデータを保持するデータ保持手段を備える複数のプロセッサエレメントと、このプロセッサエレメントそれぞれに接続されるデータ転送バスと、所定のプロセッサエレメントを指定する指定手段と、前記プロセッサエレメントそれぞれに接続されるアドレスバスと、演算処理されるデータを前記データ転送バスより取得して前記データ保持手段に保持させるための取得信号、或いは前記データ保持手段に保持されている演算処理されたデータを前記データ転送バスより出力させるための出力信号を前記データ保持手段に与える信号発生手段と、を備え、
前記データ保持手段は、複数のレジスタを有する第1のレジスタ群と、複数のレジスタを有する第2のレジスタ群とを有し、前記指定手段が所定のプロセッサエレメントをアドレス指定し、この指定されたプロセッサエレメントの所定の前記データ保持手段に前記信号発生手段が信号を与えることにより、前記データ保持手段の中の前記第1のレジスタ群、第2のレジスタ群から所定数のレジスタを選択し、前記データ保持手段の中の選択されたレジスタにデータを前記データ転送バスより取得或いは出力することを特徴とするSIMD型プロセッサ。
A plurality of processor elements each having a computing means for computing data and data holding means for holding data computed by the computing means and holding data computed by the computing means, and connected to each of the processor elements Data transfer bus, a designation means for designating a predetermined processor element, an address bus connected to each of the processor elements, and data to be processed are obtained from the data transfer bus and held in the data holding means A signal generating means for providing the data holding means with an acquisition signal for causing the data holding means or an output signal for outputting the processed data held in the data holding means from the data transfer bus,
The data holding means has a first register group having a plurality of registers and a second register group having a plurality of registers, and the designation means addresses a predetermined processor element, and When the signal generating means gives a signal to the predetermined data holding means of the processor element, a predetermined number of registers are selected from the first register group and the second register group in the data holding means, A SIMD type processor characterized in that data is acquired or output from the data transfer bus to a selected register in a data holding means.
JP2006259487A 2006-09-25 2006-09-25 SIMD type processor Expired - Lifetime JP4413905B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006259487A JP4413905B2 (en) 2006-09-25 2006-09-25 SIMD type processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006259487A JP4413905B2 (en) 2006-09-25 2006-09-25 SIMD type processor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP25686599A Division JP3971535B2 (en) 1999-09-10 1999-09-10 SIMD type processor

Publications (2)

Publication Number Publication Date
JP2007035063A JP2007035063A (en) 2007-02-08
JP4413905B2 true JP4413905B2 (en) 2010-02-10

Family

ID=37794160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006259487A Expired - Lifetime JP4413905B2 (en) 2006-09-25 2006-09-25 SIMD type processor

Country Status (1)

Country Link
JP (1) JP4413905B2 (en)

Also Published As

Publication number Publication date
JP2007035063A (en) 2007-02-08

Similar Documents

Publication Publication Date Title
US7191310B2 (en) Parallel processor and image processing apparatus adapted for nonlinear processing through selection via processor element numbers
EP0539595A1 (en) Data processor and data processing method
JP3971535B2 (en) SIMD type processor
US20090238478A1 (en) Image processing apparatus
JP4413905B2 (en) SIMD type processor
JP3821198B2 (en) Signal processing device
JP4408113B2 (en) Signal processing method
JP4442905B2 (en) Image data processing method
JP2005182538A (en) Data transfer device
JP4451433B2 (en) Parallel processor
JP4482356B2 (en) Image processing method and image processing apparatus using SIMD processor
US20020156992A1 (en) Information processing device and computer system
JP2812292B2 (en) Image processing device
JP3971559B2 (en) Parallel processor and image processing apparatus using the same
JP3971543B2 (en) SIMD type processor
JP4294190B2 (en) Parallel processor and image processing apparatus using the same
JP4442907B2 (en) SIMD type processor
JP5369669B2 (en) SIMD type microprocessor
JP2003216950A (en) Simd type microprocessor for performing pattern matching or the like
EP1462932A2 (en) Vector processor and register addressing method
US20230409323A1 (en) Signal processing apparatus and non-transitory computer-readable storage medium
JP2009104521A (en) Parallel processor
JP2005148899A (en) Simd-type processor
JP2002207707A (en) Simd type micro-processor having function for selecting constant
JP2005322198A (en) Data processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090714

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090715

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20090909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091014

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091020

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

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

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

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4413905

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

Year of fee payment: 4

EXPY Cancellation because of completion of term