JP2013161325A - Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor - Google Patents

Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor Download PDF

Info

Publication number
JP2013161325A
JP2013161325A JP2012023805A JP2012023805A JP2013161325A JP 2013161325 A JP2013161325 A JP 2013161325A JP 2012023805 A JP2012023805 A JP 2012023805A JP 2012023805 A JP2012023805 A JP 2012023805A JP 2013161325 A JP2013161325 A JP 2013161325A
Authority
JP
Japan
Prior art keywords
register
data
read
value
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012023805A
Other languages
Japanese (ja)
Inventor
Kazuhiko Iwanaga
和彦 岩永
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 JP2012023805A priority Critical patent/JP2013161325A/en
Publication of JP2013161325A publication Critical patent/JP2013161325A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an SIMD type microprocessor, a processor system and the data processing method of the SIMD type microprocessor for enabling each PE (Processor Element) to quickly perform processing of referring to the data of different addresses such as rotation processing only by adding a few circuits.SOLUTION: An SIMD type microprocessor 2 includes: a PE-RAM 20 for inputting and outputting data only with a register file 14 of a processor element group 6; a DMA device 22 for controlling data transfer with the PE-RAM 20 and the register file 14. The DMA device 22 successively reads independent address values stored in an R31 register of each PE 44 in the order of PE numbers, and successively rewrites the data stored in the PE-RAM 20 to the R31 register.

Description

本発明は、1つの演算命令により画像データ等の複数のデータを並列処理するSIMD(Single Instruction-stream Multiple Data-stream)型マイクロプロセッサと、SIMD型マイクロプロセッサを有するプロセッサシステムおよびSIMD型マイクロプロセッサのデータ処理方法に関する。   The present invention relates to a single instruction-stream multiple data-stream (SIMD) type microprocessor that processes a plurality of data such as image data in parallel by one arithmetic instruction, a processor system having a SIMD type microprocessor, and a SIMD type microprocessor. The present invention relates to a data processing method.

SIMD型マイクロプロセッサでは1つの命令で複数のデータに対して同時に同じ演算処理が実行可能である。この構造により画像処理等を行うべき多くのデータに対して同一の演算を行う用途に使用されている。   In the SIMD type microprocessor, the same arithmetic processing can be executed simultaneously on a plurality of data with one instruction. With this structure, it is used for the purpose of performing the same operation on a lot of data to be subjected to image processing and the like.

SIMD型マイクロプロセッサにおいて、通常の演算処理は複数の演算器を並べ同じ演算を同時に複数のデータに対して実行することで実現できるが、演算処理が式で表すことができない非線形な処理は演算対象のデータによって演算式が変更となるため同じ処理を同時に実行できない。   In a SIMD type microprocessor, normal arithmetic processing can be realized by arranging a plurality of arithmetic units and executing the same operation on a plurality of data at the same time, but non-linear processing in which arithmetic processing cannot be expressed by an expression is subject to calculation. The same processing cannot be executed at the same time because the arithmetic expression is changed depending on the data.

この種の非線形の画像処理の一例として回転という処理が挙げられる。これは、デジタルコピー機などにおいて原稿がコンタクトガラスに対して歪んで置かれた場合に水平面に対して歪んでいる角度分だけスキャンした画像を回転することで適正な画像を得るという処理である。   An example of this kind of non-linear image processing is a process called rotation. This is a process of obtaining an appropriate image by rotating an image scanned by an angle distorted with respect to a horizontal plane when an original is distorted with respect to a contact glass in a digital copying machine or the like.

特許文献1では、回転処理において回転前の元データに対して、回転角度に応じて副走査方向のずれ量を算出して回転後のデータをサンプリングしていき、バイリニアあるいはバイキュービックで補間演算することで回転処理を実現することが記載されている。   In Patent Document 1, with respect to the original data before the rotation in the rotation process, the deviation amount in the sub-scanning direction is calculated according to the rotation angle, the data after the rotation is sampled, and the interpolation calculation is performed by bilinear or bicubic. It is described that the rotation processing is realized.

特許文献2や3には、SIMD型マイクロプロセッサが備える各プロセッサエレメント(PE)に個別のSRAM(Static Random Access Memory)を持った構成となっており、それぞれのPEで副走査方向のずれ量を計算した値をアドレスとしてデータを参照することが可能である。   In Patent Documents 2 and 3, each processor element (PE) provided in the SIMD type microprocessor has an individual SRAM (Static Random Access Memory), and the displacement amount in the sub-scanning direction is determined by each PE. Data can be referred to using the calculated value as an address.

特許文献4は、各PEに独立したSRAMを持つことなくLUT(Look Up Table)に代表される非線形処理を高速に行う構成が記載されている。   Patent Document 4 describes a configuration in which non-linear processing represented by LUT (Look Up Table) is performed at high speed without having an independent SRAM in each PE.

特許文献1に記載された発明をSIMD型マイクロプロセッサで行うためにはPEからアクセス可能なメモリに格納されているデータをPE番号の順にアドレスをインクリメントさせながら逐次で読み出していくしかなく、これを命令として実行させるとサイクル数が膨大にかかるという問題があった。   In order to perform the invention described in Patent Document 1 with a SIMD type microprocessor, there is no choice but to sequentially read data stored in a memory accessible from the PE while incrementing the address in the order of the PE number. There is a problem that the number of cycles is enormous when executed as an instruction.

特許文献2、3に記載された発明は、全てのPEに内蔵しているSRAMはアドレスデコーダをそれぞれが持つ構成であるためにPE数が多いSIMD型マイクロプロセッサでは回路規模が増大しコストが増大してしまうという問題があった。   In the inventions described in Patent Documents 2 and 3, since the SRAM built in all PEs has an address decoder, the SIMD microprocessor with a large number of PEs increases the circuit scale and costs. There was a problem of doing.

特許文献4は、ガンマ補正のように各PEで同一の参照メモリを用いた処理にしか適用できないという問題があった。   Patent Document 4 has a problem that it can be applied only to processing using the same reference memory in each PE, such as gamma correction.

本発明はかかる問題を解決することを目的としている。   The present invention aims to solve such problems.

すなわち、本発明は、少ない回路追加のみで回転処理などの各PEが異なったアドレスのデータを参照する処理を高速に行うことが出来るSIMD型マイクロプロセッサ、プロセッサシステムおよびSIMD型マイクロプロセッサのデータ処理方法を提供することを目的としている。   That is, the present invention provides a SIMD microprocessor, a processor system, and a data processing method for a SIMD microprocessor that can perform high-speed processing for referring to data at different addresses for each PE, such as rotation processing, with only a small number of additional circuits. The purpose is to provide.

上記に記載された課題を解決するために請求項1に記載された発明は、所定のアドレスによってリードまたはライトアクセス可能な複数のレジスタを備えたプロセッサエレメントを複数有するSIMD型マイクロプロセッサにおいて、前記プロセッサエレメントとのみデータの入出力が可能かつ、少なくとも2以上の前記プロセッサエレメントが同時にアクセス可能なデータビット幅を有したメモリと、前記複数のレジスタのうちの一つのレジスタに格納されている値を前記プロセッサエレメントごとに順次読み出すととともに、該読み出された値を前記メモリのアドレスとして出力するデータ転送手段と、前記メモリから読み出されたデータを、少なくとも該データに対応するアドレスが読み出された前記プロセッサエレメントの前記レジスタに格納する制御を行う書き込み制御手段と、を備えたことを特徴とするSIMD型マイクロプロセッサである。   In order to solve the problems described above, the invention described in claim 1 is a SIMD type microprocessor having a plurality of processor elements each having a plurality of registers that can be read or written by a predetermined address. A memory capable of inputting / outputting data only to / from an element and having a data bit width accessible by at least two or more processor elements simultaneously, and a value stored in one of the plurality of registers A data transfer unit that sequentially reads out each processor element and outputs the read value as an address of the memory, and at least an address corresponding to the data is read from the data read from the memory The register of the processor element; And write control means for controlling to store the data, a SIMD microprocessor that comprising the.

請求項1に記載の発明によれば、複数のレジスタのうち一つのレジスタに格納されている値を前記プロセッサエレメントごとに読み出し、該読み出された値を、前記プロセッサエレメントとのみデータの入出力が可能かつ、少なくとも2以上の前記プロセッサエレメントが同時にアクセス可能なデータビット幅を有したメモリのアドレスとし、前記メモリから読み出されたデータを、少なくとも該データに対応するアドレスが読み出された前記プロセッサエレメントの前記レジスタに格納するので、各プロセッサエレメントにそれぞれ独立したアドレスデコーダを持ったメモリを備えることなく、少ない回路追加のみで回転処理などの各プロセッサエレメントが異なったアドレスのデータを参照する処理を高速に行うことが可能となる。   According to the first aspect of the present invention, a value stored in one register among a plurality of registers is read for each processor element, and the read value is input / output only with the processor element. The address of the memory having a data bit width that can be accessed simultaneously by at least two or more of the processor elements is used, and at least the address corresponding to the data is read from the data read from the memory. Since each processor element is stored in the register of the processor element, each processor element refers to data at a different address, such as rotation processing, with only a few additional circuits, without having a memory having an independent address decoder for each processor element. Can be performed at high speed.

本発明の第1の実施形態にかかるプロセッサシステムの構成図である。It is a block diagram of the processor system concerning the 1st Embodiment of this invention. SIMD型マイクロプロセッサの特にプロセッサエレメントグループのより詳細な構成を示すブロック図である。It is a block diagram which shows the more detailed structure of the processor element group especially of a SIMD type | mold microprocessor. 図1に示されたSIMD型マイクロプロセッサの要部構成図である。FIG. 2 is a main part configuration diagram of the SIMD type microprocessor shown in FIG. 1. 図3に示されたR31レジスタにアドレス設定値を記載した説明図である。It is explanatory drawing which described the address setting value in R31 register shown by FIG. 図3に示されたSIMD型マイクロプロセッサのPE−RAMからのデータ読み出し動作を示したタイミングチャートである。FIG. 4 is a timing chart showing a data read operation from the PE-RAM of the SIMD type microprocessor shown in FIG. 3. FIG. 図3に示されたSIMD型マイクロプロセッサのPE−RAMからのデータ読み出し動作を示したフローチャートである。4 is a flowchart showing a data read operation from the PE-RAM of the SIMD type microprocessor shown in FIG. 3. 本発明の第2の実施形態にかかるSIMD型マイクロプロセッサの要部構成図である。It is a principal part block diagram of the SIMD type | mold microprocessor concerning the 2nd Embodiment of this invention. 図7に示されたデコーダの構成を示した構成図である。FIG. 8 is a configuration diagram illustrating a configuration of the decoder illustrated in FIG. 7. 図8に示された書き込みデコーダのデコード条件を示した説明図である。It is explanatory drawing which showed the decoding conditions of the write decoder shown by FIG. 図7に示されたSIMD型マイクロプロセッサのR30レジスタに格納するアドレス設定値の例と、その例に対してデータ整形を施した後のデータを示した説明図である。FIG. 8 is an explanatory diagram illustrating an example of an address setting value stored in an R30 register of the SIMD type microprocessor illustrated in FIG. 7 and data after data shaping is performed on the example. 図7に示されたSIMD型マイクロプロセッサのPE−RAMからのデータ読み出し動作を示したタイミングチャートである。FIG. 8 is a timing chart showing a data read operation from the PE-RAM of the SIMD type microprocessor shown in FIG. 7. FIG. 本発明の第3の実施形態にかかるSIMD型マイクロプロセッサの要部構成図である。It is a principal part block diagram of the SIMD type | mold microprocessor concerning the 3rd Embodiment of this invention.

(第1実施形態)
以下、本発明の第1の実施形態を、図1乃至図6を参照して説明する。図1は、本発明の第1の実施形態にかかるプロセッサシステムの構成図である。図2は、SIMD型マイクロプロセッサの特にプロセッサエレメントグループのより詳細な構成を示すブロック図である。図3は、図1に示されたSIMD型マイクロプロセッサの要部構成図である。図4は、図3に示されたR31レジスタにアドレス設定値を記載した説明図である。図5は、図3に示されたSIMD型マイクロプロセッサのPE−RAMからのデータ読み出し動作を示したタイミングチャートである。図6は、図3に示されたSIMD型マイクロプロセッサのPE−RAMからのデータ読み出し動作を示したフローチャートである。
(First embodiment)
Hereinafter, a first embodiment of the present invention will be described with reference to FIGS. 1 to 6. FIG. 1 is a configuration diagram of a processor system according to the first embodiment of the present invention. FIG. 2 is a block diagram showing a more detailed configuration of the SIMD type microprocessor, particularly the processor element group. FIG. 3 is a block diagram of the main part of the SIMD type microprocessor shown in FIG. FIG. 4 is an explanatory diagram in which an address set value is described in the R31 register shown in FIG. FIG. 5 is a timing chart showing a data read operation from the PE-RAM of the SIMD type microprocessor shown in FIG. FIG. 6 is a flowchart showing a data read operation from the PE-RAM of the SIMD type microprocessor shown in FIG.

図1に本発明の第1の実施形態にかかるプロセッサシステム1を示す。プロセッサシステム1は、本発明の第1の実施形態にかかるSIMD型マイクロプロセッサ2と、メモリコントローラ10と、メモリ12と、を備えている。   FIG. 1 shows a processor system 1 according to a first embodiment of the present invention. The processor system 1 includes a SIMD type microprocessor 2, a memory controller 10, and a memory 12 according to the first embodiment of the present invention.

SIMD型マイクロプロセッサ2は、グローバルプロセッサ4と、プロセッサエレメントグループ6と、外部インタフェース8と、DMA装置22と、を備えている。   The SIMD type microprocessor 2 includes a global processor 4, a processor element group 6, an external interface 8, and a DMA device 22.

グローバルプロセッサ(GP)4は、所謂SISD(Single Instruction Stream, Single Data Stream)タイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し各種制御信号を生成する。この制御信号は、内蔵する各種ブロックの制御以外にも、後述するレジスタファイル14、演算アレイ16、メモリコントローラ10およびDMA装置22に供給される。また、GP4で実行される命令であるGP命令実行時は、内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理を行う。   The global processor (GP) 4 is a so-called SISD (Single Instruction Stream, Single Data Stream) type processor, which includes a program RAM and a data RAM, decodes the program, and generates various control signals. This control signal is supplied to a register file 14, an arithmetic array 16, a memory controller 10, and a DMA device 22, which will be described later, in addition to control of various built-in blocks. When a GP instruction, which is an instruction executed by GP4, is executed, various arithmetic processes and program control processes are performed using a built-in general-purpose register, ALU (arithmetic logic unit), and the like.

プロセッサエレメントグループ6は、レジスタファイル14と、演算アレイ16と、PE−RAM20と、を備えている。   The processor element group 6 includes a register file 14, an operation array 16, and a PE-RAM 20.

レジスタファイル14は、プロセッサエレメント(PE)命令で処理されるデータを保持するレジスタ群(ファイル)である。つまり、各PE(図2参照)のレジスタ部分の集合体である。PE命令は、SIMD(Single Instruction Stream, Multiple Data Stream)タイプの命令であり、レジスタファイル14に保持されている複数のデータに対して、同時に同じ処理を行う命令である。このレジスタファイル14からのデータの読み出し/書き込みの制御は、GP4からの制御によって行われる。読み出されたデータは、後述する演算アレイ16に送られ、演算アレイ16での演算処理後にレジスタファイル14に書き込まれる。   The register file 14 is a register group (file) that holds data processed by a processor element (PE) instruction. That is, it is a collection of register portions of each PE (see FIG. 2). The PE instruction is an instruction of the SIMD (Single Instruction Stream, Multiple Data Stream) type, and is an instruction that simultaneously performs the same processing on a plurality of data held in the register file 14. Control of reading / writing of data from the register file 14 is performed by control from the GP 4. The read data is sent to the arithmetic array 16 described later, and is written in the register file 14 after arithmetic processing in the arithmetic array 16.

また、レジスタファイル14は、外部インタフェース8を介してSIMD型マイクロプロセッサ2外部のメモリコントローラ10からのアクセスが可能であり、GP4の制御とは別に外部から特定のレジスタに対する読み出し/書き込みが行われる。さらに、レジスタファイル14の一部のレジスタは、後述するDMA装置22からの制御により、PE−RAM20から読み出されたデータが書き込まれる。   The register file 14 can be accessed from the memory controller 10 outside the SIMD type microprocessor 2 via the external interface 8, and a specific register is read / written from the outside separately from the control of the GP4. Furthermore, data read from the PE-RAM 20 is written to some registers of the register file 14 under the control of the DMA device 22 described later.

演算アレイ16は、PE命令の演算処理が行われるブロックである。つまり、各PE(図2参照)の(ALUを含む)演算部の集合体である。処理の制御はすべてGP4から行われる。   The arithmetic array 16 is a block in which arithmetic processing of a PE instruction is performed. That is, it is a collection of arithmetic units (including ALU) of each PE (see FIG. 2). All processing control is performed from GP4.

外部インタフェース8は、レジスタファイル14とメモリコントローラ10との間のデータや制御信号等の入出力のインタフェースを行う。   The external interface 8 performs an input / output interface between the register file 14 and the memory controller 10 such as data and control signals.

メモリコントローラ10は、外部ポート18にクロックとアドレス、リード/ライト制御信号を出力し、シングルポートメモリ12にクロックとアドレス、リード/ライト制御信号を出力することで、任意のPEのレジスタとシングルポートメモリ12との間で、データ転送が行われる。処理の制御はすべてGP4から行われる。   The memory controller 10 outputs a clock, an address, and a read / write control signal to the external port 18, and outputs a clock, an address, and a read / write control signal to the single port memory 12. Data transfer is performed with the memory 12. All processing control is performed from GP4.

図2は、SIMD型マイクロプロセッサ2の特にプロセッサエレメントグループ6のより詳細な構成を示すブロック図である。   FIG. 2 is a block diagram showing a more detailed configuration of the SIMD type microprocessor 2, particularly the processor element group 6.

GP4には、GP4のプログラム格納用のプログラムRAM23と演算データ格納用のデータRAM24を備えている。更に、プログラムのアドレスを保持するプログラムカウンタ(PC)25、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ(26、28、30、32)、レジスタ退避、復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)34、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)36、同じく割り込み(IRQ)時とマスク不可割り込み(NMI)時の分岐元アドレスを保持するLIレジスタ38、LNレジスタ40、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)42を備えている。   The GP 4 includes a program RAM 23 for storing the GP 4 program and a data RAM 24 for storing operation data. Furthermore, a program counter (PC) 25 that holds the address of the program, G0 to G3 registers (26, 28, 30, 32) that are general-purpose registers for storing arithmetic processing data, and a save destination data RAM at the time of register saving and restoration Stack pointer (SP) 34 that holds the address of the link, link register (LS) 36 that holds the address of the caller at the time of the subroutine call, and the branch source address at the time of interrupt (IRQ) and non-maskable interrupt (NMI) An LI register 38, an LN register 40, and a processor status register (P) 42 for holding the state of the processor are provided.

これらのレジスタと、図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部インタフェース制御回路、及びGP演算制御回路を使用してGP命令の実行が行われる。また、PE命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、PE演算制御回路を使用して、レジスタファイル14の制御と演算アレイ16の制御を行う。   The GP instruction is executed using these registers and an instruction decoder, ALU, memory control circuit, interrupt control circuit, external interface control circuit, and GP arithmetic control circuit (not shown). When the PE instruction is executed, the register file 14 and the operation array 16 are controlled using an instruction decoder, a register file control circuit (not shown), and a PE operation control circuit.

次に、レジスタファイル14には、1つのPE単位に8ビットのレジスタ50が32本内蔵されており、256PE分の組がアレイ構成になっている(一つのPEは、符号44で示される一点鎖線の枠内に相当する部位であり、レジスタ46と演算部48とからなる)。レジスタ50は、PE毎にレジスタR0、レジスタR1、レジスタR2、…、R31レジスタと32本が備えられている。夫々のレジスタ50は、演算部48に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバスで演算部48からアクセスされる。32本のレジスタ50の内、24本は外部インタフェース8を介してプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御信号が入力されて指定されたレジスタ50が読み書きされる。即ち、PE44は、所定のアドレスによってリードまたはライトアクセス可能な複数のレジスタを備えている。   Next, in the register file 14, 32 8-bit registers 50 are built in one PE unit, and a set of 256 PEs has an array configuration (one PE is indicated by a point 44). This is a portion corresponding to the inside of the chain line, and consists of a register 46 and a calculation unit 48). The register 50 is provided with 32 registers R0, R1, R2,..., R31 registers for each PE. Each register 50 has one read port and one write port for the arithmetic unit 48, and is accessed from the arithmetic unit 48 by an 8-bit read / write bus. Of the 32 registers 50, 24 are accessible from outside the processor via the external interface 8, and the designated register 50 is read and written by inputting a clock, an address, and a read / write control signal from the outside. That is, the PE 44 includes a plurality of registers that can be read or written by a predetermined address.

レジスタ50の外部からのアクセスでは、1つの外部ポートで各PEの1つのレジスタ50がアクセス可能であり、外部から入力されたアドレスでPEの番号(0〜255)が指定される(PEには、図2の左側から順に0〜255の番号がPE番号として付されている。PE番号はPEアドレスともいう。)。したがって、レジスタアクセスのための外部ポートは、全部で24組搭載されている。   When accessing from the outside of the register 50, one register 50 of each PE can be accessed by one external port, and the PE number (0 to 255) is designated by the address inputted from the outside (in the PE) The numbers from 0 to 255 are assigned as PE numbers in order from the left side of Fig. 2. The PE numbers are also called PE addresses.) Therefore, a total of 24 external ports for register access are installed.

演算部48は、7対1のマルチプレクサ58と、シフト拡張回路(シフタ)60と、2対1のマルチプレクサ(MPX)61と、16ビットALU52と、Aレジスタ54と、及びFレジスタ56と、を備えている。   The arithmetic unit 48 includes a 7-to-1 multiplexer 58, a shift extension circuit (shifter) 60, a 2-to-1 multiplexer (MPX) 61, a 16-bit ALU 52, an A register 54, and an F register 56. I have.

7対1のマルチプレクサ58は、レジスタ50と演算部48との接続部分に設けられており、PE並列方向で前方(PE番号の小さい方)に1、2、3つ離れたレジスタ50のデータと、後方(PE番号の大きい方)に1、2、3つ離れたレジスタ50のデータと、中央の(即ち、同一PEの)レジスタ50のデータを演算対象として選択できるように設定されている。また、レジスタ50の8ビットのデータは、シフト拡張回路60により任意ビット分左シフトされてALU52に入力することができる。   The 7-to-1 multiplexer 58 is provided at the connection portion between the register 50 and the arithmetic unit 48, and the data of the register 50 that is 1, 2, and 3 away from the front (the smaller PE number) in the PE parallel direction. The data of the register 50 that is one, two, three away from the rear (the one with the larger PE number) and the data of the register 50 in the center (that is, the same PE) can be selected as an operation target. The 8-bit data in the register 50 can be shifted to the left by an arbitrary bit by the shift extension circuit 60 and input to the ALU 52.

16ビットALU52は、PE命令による演算では、レジスタ50から読み出されたデータ、GP4から与えられたデータ(2対1のマルチプレクサ61の出力)、若しくはFレジスタ56から読み出されたデータを16ビットALU52の片側の入力とし、もう片側にはAレジスタ54の内容を入力として、結果をAレジスタ54に格納する。したがって、Aレジスタ54と、R0〜R31レジスタもしくはGP4から与えられたデータとの演算が行われることになる。なお、Fレジスタ56はテンポラリレジスタとも呼ばれ、Aレジスタ54に格納されている演算結果の退避などに用いられるレジスタであり、Fレジスタ56の結果を16ビットALU52による演算に使用することも可能である。さらに、図示していない8ビットの条件レジスタ(Tレジスタともいう)により、PE44ごとに演算実行の無効/有効の制御を可能とし、特定のPE44だけを演算対象として選択できる。   The 16-bit ALU 52 is 16 bits of data read from the register 50, data given from the GP 4 (output of the 2-to-1 multiplexer 61), or data read from the F register 56 in the operation by the PE instruction. The input of one side of the ALU 52 is input, the content of the A register 54 is input to the other side, and the result is stored in the A register 54. Therefore, an operation is performed on the A register 54 and data supplied from the R0 to R31 registers or GP4. The F register 56 is also referred to as a temporary register, and is used for saving the operation result stored in the A register 54. The result of the F register 56 can also be used for the operation by the 16-bit ALU 52. is there. In addition, an 8-bit condition register (also referred to as a T register) (not shown) enables invalidation / validation control of operation execution for each PE 44, and only a specific PE 44 can be selected as an operation target.

PE−RAM20は、演算処理途中のデータなどを格納するためのワークメモリであり、図3に示すように、レジスタファイル14(レジスタ46)に保持されているデータを一度に読み出しまたは書き込むことができる。つまり、PE−RAM20は全PE分のデータビット幅(8ビット×256)となっている。また、アドレスや読み出しまたは書き込みの制御はDMA装置22から行われる。DMA装置22から入力されるアドレス等の制御信号はアドレスデコーダ22aに入力され、指定されたアドレスのデータが読み出しまたは書き込まれる。即ち、PE−RAM20は、PE44とのみデータの入出力が可能かつ、少なくとも2以上のPE44が同時にアクセス可能なデータビット幅を有し、1つのアドレスで複数(本実施形態では全部)のPE44分のデータが読み出される。   The PE-RAM 20 is a work memory for storing data in the middle of arithmetic processing, and can read or write data held in the register file 14 (register 46) at a time as shown in FIG. . That is, the PE-RAM 20 has a data bit width (8 bits × 256) for all PEs. The address and read / write control are performed from the DMA device 22. A control signal such as an address input from the DMA device 22 is input to an address decoder 22a, and data at a specified address is read or written. That is, the PE-RAM 20 can input / output data only to / from the PE 44 and has a data bit width that can be accessed by at least two or more PEs 44 at the same time. Data is read out.

DMA装置22は、カウンタ22aと、FF22bと、を備えている。DMA装置22は、GP4からのDMAStart信号によりPE−RAM20へのアクセスを行う。PE−RAM20と、GP4およびDMA装置22間にはマルチプレクサ(MPX)22c、22d、22eが設けられている。マルチプレクサ22cはPE−RAM20に対するアドレス(A)をGP4またはDMA装置22のいずれかから出力されたものに切り替える。マルチプレクサ22dはPE−RAM20に対するリード/ライト制御信号(R/W)をGP4またはDMA装置22のいずれかから出力されたものに切り替える。マルチプレクサ22eはPE−RAM20に対するチップセレクト(CS)をGP4またはDMA装置22のいずれかから出力されたものに切り替える。   The DMA device 22 includes a counter 22a and an FF 22b. The DMA device 22 accesses the PE-RAM 20 by a DMAStart signal from the GP 4. Multiplexers (MPX) 22c, 22d, and 22e are provided between the PE-RAM 20, the GP4, and the DMA device 22. The multiplexer 22 c switches the address (A) for the PE-RAM 20 to one output from either the GP 4 or the DMA device 22. The multiplexer 22 d switches the read / write control signal (R / W) for the PE-RAM 20 to one output from either the GP 4 or the DMA device 22. The multiplexer 22 e switches the chip select (CS) for the PE-RAM 20 to one output from either the GP 4 or the DMA device 22.

各マルチプレクサ(22c、22d、22e)の切り替えは、DMA装置22から出力されるDMA信号(図5参照)により切り替えられる。DMA信号はDMAStart信号が入力されるとHiレベル、データ転送が終了するとLowレベルになる信号であり、Hiレベルの場合は、各マルチプレクサはDMA装置22が出力する信号がPE−RAM20に供給されるようになっている。   Switching of each multiplexer (22c, 22d, 22e) is switched by a DMA signal (see FIG. 5) output from the DMA device 22. The DMA signal is a Hi level when the DMAStart signal is input, and becomes a Low level when the data transfer is completed. In the case of the Hi level, each multiplexer supplies a signal output from the DMA device 22 to the PE-RAM 20. It is like that.

カウンタ22aは、詳細な動作は後述するが、PEアドレスが設定され順次インクリメントする。つまり、初期値は“0”が設定され順次インクリメントして“255”までカウントする。FF22bは、共通データバス51から入力されるレジスタファイル14のR31レジスタから出力されたデータが格納されるレジスタ(フリップフロップ)であり、このFF22bに格納された後にPE−RAM20のアドレスとしてマルチプレクサ22cに出力される。   Although detailed operation will be described later, the counter 22a is sequentially incremented by setting the PE address. In other words, the initial value is set to “0” and increments sequentially until counting to “255”. The FF 22b is a register (flip-flop) in which data output from the R31 register of the register file 14 input from the common data bus 51 is stored. After being stored in the FF 22b, the FF 22b is sent to the multiplexer 22c as an address of the PE-RAM 20. Is output.

また、図3に示したように、各PE44のレジスタファイル46のR31レジスタは、PE−RAM20から読み出されたデータが書き込み可能となっており、そのために、カウンタ22aおよびDMA装置22内で生成されるR/W信号が出力されるPE指定アドレス線53およびR/W制御信号線55が入力されてR31レジスタの読み出しおよび書き込み制御を行うデコーダ57が各PE44のR31レジスタに対応して設けられている。   As shown in FIG. 3, the data read from the PE-RAM 20 can be written to the R31 register of the register file 46 of each PE 44. For this purpose, the data is generated in the counter 22a and the DMA device 22. A decoder 57 is provided corresponding to the R31 register of each PE 44, to which the PE designation address line 53 and the R / W control signal line 55 to which the R / W signal to be output is input are input and the R31 register is read and written. ing.

図4は、図3に対して、PE番号0が付与されているPE44(PE(0)とする)のR31レジスタにA0、PE(1)のR31レジスタにA1、…、PE(255)のR31レジスタにA255がそれぞれ格納されていることを示した図である。本実施形態では、予めこのように各R31レジスタに異なる値をセットし、図5のタイミングチャートに示したように、その後GP4からのDMAStart信号が入力されると、カウンタ22aから初期値“0”をPE指定アドレス線53に出力するとともに、R/W制御信号線55をリードを示す値を出力する。すると、PE(0)のR31レジスタの値(A0)が共通データバス51に読み出される。   FIG. 4 is different from FIG. 3 in that the R31 register of PE44 (PE (0)) to which PE number 0 is assigned is A0, the R31 register of PE (1) is A1,..., PE (255). It is the figure which showed that A255 was stored in the R31 register. In this embodiment, different values are set in advance in the respective R31 registers as described above, and as shown in the timing chart of FIG. 5, when a DMAStart signal is subsequently input from GP4, the initial value “0” is output from the counter 22a. Is output to the PE designation address line 53 and the R / W control signal line 55 is output as a value indicating read. Then, the value (A0) of the R31 register of PE (0) is read to the common data bus 51.

次のサイクル(図5では2クロック後)で、カウンタ22aがインクリメントされ、PE(1)のR31レジスタの値(A1)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(0)のR31レジスタの値(A0)が格納されてその値(A0)がPE−RAM20のアドレスとして与えられてPE−RAMからはアドレスA0に格納されているデータが出力される。即ち、DMA装置22が、R31レジスタに格納されている値をPE44ごとに順次読み出すととともに、該読み出された値をPE−RAM20のアドレスとして出力するデータ転送手段として機能している。   In the next cycle (after two clocks in FIG. 5), the counter 22a is incremented, the value (A1) of the R31 register of PE (1) is read to the common data bus 51, and the PE read to the FF 22b in the previous cycle. The value (A0) of the R31 register (0) is stored, the value (A0) is given as the address of the PE-RAM 20, and the data stored at the address A0 is output from the PE-RAM. That is, the DMA device 22 functions as a data transfer unit that sequentially reads the values stored in the R31 register for each PE 44 and outputs the read values as addresses of the PE-RAM 20.

PE−RAM20から出力されたアドレスA0のデータは、当該サイクルの最後でPE(0)のR31レジスタに書き込まれる。デコーダ57は、内部にパイプラインレジスタを持ち、PE指定アドレス線53から入力されたリードアドレスは、PE−RAM20からデータが読み出されるタイミング分遅延してライトイネーブル信号を生成し、R31レジスタに供給する。このようにすることで、実質的にPE指定アドレス線53のみで、リード時とライト時の制御を行うことができる。なお、ライトイネーブル信号は、各PE44のデコーダ57で遅延させる方法以外に、PE(0)のみ遅延させて、PE(1)以降は、サイクル単位でPE間をシフトさせるようにしてもよい。即ち、デコーダ57が、PE−RAM20から読み出されたデータを、少なくとも該データのアドレスが読み出されたPE44のR31レジスタに格納する制御を行う書き込み制御手段として機能している。   The data at the address A0 output from the PE-RAM 20 is written into the R31 register of PE (0) at the end of the cycle. The decoder 57 has a pipeline register therein, the read address input from the PE designation address line 53 is delayed by the timing at which data is read from the PE-RAM 20, generates a write enable signal, and supplies it to the R31 register. . In this way, control at the time of reading and writing can be performed substantially only by the PE designation address line 53. In addition to the method of delaying the write enable signal by the decoder 57 of each PE 44, only PE (0) may be delayed, and after PE (1), the interval between PEs may be shifted. In other words, the decoder 57 functions as a write control unit that performs control to store the data read from the PE-RAM 20 in at least the R31 register of the PE 44 from which the address of the data is read.

そして、上述したサイクルを繰り返すことで、R31レジスタに格納されている各PE44で独立したアドレス値A0〜A255の値をPE(0)から順次読み出していき、PE−RAM20に格納されていたデータを順次R31レジスタに書き戻すことが従来よりも短いサイクル数で出来る。従来は、このようなことをする場合、GP4による命令でPE44の指定、指定されたPE44のアドレスの設定、PE−RAM20からの読み出し、といったことを行う必要があり、多くのサイクルがかかっていいた。   Then, by repeating the above-described cycle, each PE44 stored in the R31 register sequentially reads the independent address values A0 to A255 from PE (0), and the data stored in the PE-RAM 20 is read. Sequentially writing back to the R31 register can be performed with a shorter cycle number than before. Conventionally, in order to do this, it has been necessary to specify PE44, set the address of the designated PE44, and read from the PE-RAM 20 with an instruction by GP4, which took many cycles. .

上述した動作を図6のフローチャートにまとめる。まず、PE命令などを用いて各PE44のR31レジスタにアドレスを設定し(ステップS1)、GP4からDMAStart信号が入力されるとDMA装置22が動作を開始し(ステップS2)、PE指定アドレス線53で指定したPE44のR31レジスタからアドレス値を読み出して(ステップS3)、PE−RAM20へ出力し当該アドレスのデータを読み出して、対応するPE44のR31レジスタに格納している(ステップS4)。   The operations described above are summarized in the flowchart of FIG. First, an address is set in the R31 register of each PE 44 using a PE instruction or the like (step S1), and when a DMAStart signal is input from GP4, the DMA device 22 starts operating (step S2). The address value is read from the R31 register of the PE 44 specified in (Step S3), output to the PE-RAM 20, and the data at the address is read and stored in the R31 register of the corresponding PE 44 (Step S4).

そして、カウンタ22aの値を判断し(ステップS5)、カウンタ22aの値が最後のPE番号を示していた場合は終了し、最後でない場合はカウンタ22aをインクリメントして(ステップS6)次のPE44についてステップS3とS4を繰り返す。最後のPE番号か否かは、例えばDMA装置22内に予めPE数を設定し、その設定値と比較することでDMA装置22内の制御回路等(不図示)が判断すればよい。   Then, the value of the counter 22a is judged (step S5), and if the value of the counter 22a indicates the last PE number, the process ends. If not, the counter 22a is incremented (step S6) for the next PE44. Steps S3 and S4 are repeated. Whether or not it is the last PE number may be determined by, for example, setting the number of PEs in the DMA device 22 in advance and comparing it with the set value by a control circuit (not shown) in the DMA device 22.

本実施形態によれば、SIMD型マイクロプロセッサ2に、プロセッサエレメントグループ6のレジスタファイル14とのみデータの入出力が行われるPE−RAM20と、PE−RAM20とレジスタファイル14とのデータ転送の制御を行うDMA装置22を設け、DMA装置22で、各PE44のR31レジスタに格納されている独立したアドレス値をPE番号順に順次読み出していき、PE−RAM20に格納されていたデータを順次R31レジスタに書き戻すようにするために、少ない回路追加のみで回転処理などの各PE44が異なったアドレスのデータを参照する処理を高速に行うことが可能となる。   According to the present embodiment, the SIMD type microprocessor 2 controls the PE-RAM 20 in which data is input / output only to / from the register file 14 of the processor element group 6, and the data transfer control between the PE-RAM 20 and the register file 14. The DMA device 22 is provided, and the DMA device 22 sequentially reads the independent address values stored in the R31 register of each PE 44 in the order of the PE number, and sequentially writes the data stored in the PE-RAM 20 to the R31 register. In order to restore it, it is possible to perform a process of referring to data at different addresses by each PE 44, such as a rotation process, by adding only a small number of circuits.

また、GP4や各PE44は、DMA装置22によるデータ転送中は、PE−RAM20が関わらない他の処理をすることができるために、SIMD型マイクロプロセッサ2の処理効率を向上させることができる。   In addition, since the GP 4 and each PE 44 can perform other processing not related to the PE-RAM 20 during the data transfer by the DMA device 22, the processing efficiency of the SIMD type microprocessor 2 can be improved.

(第2実施形態)
次に、本発明の第2の実施形態を図7乃至図11を参照して説明する。なお、前述した第1の実施形態と同一部分には、同一符号を付して説明を省略する。図7は、本発明の第2の実施形態にかかるSIMD型マイクロプロセッサの要部構成図である。図8は、図7に示されたデコーダの構成を示した構成図である。図9は、図8に示された書き込みデコーダのデコード条件を示した説明図である。図10は、図7に示されたSIMD型マイクロプロセッサのR30レジスタに格納するアドレス設定値の例と、その例に対してデータ整形を施した後のデータを示した説明図である。図11は、図7に示されたSIMD型マイクロプロセッサのPE−RAMからのデータ読み出し動作を示したタイミングチャートである。
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIGS. Note that the same parts as those in the first embodiment described above are denoted by the same reference numerals and description thereof is omitted. FIG. 7 is a block diagram showing the principal part of a SIMD type microprocessor according to the second embodiment of the present invention. FIG. 8 is a configuration diagram showing the configuration of the decoder shown in FIG. FIG. 9 is an explanatory diagram showing the decoding conditions of the write decoder shown in FIG. FIG. 10 is an explanatory diagram showing an example of an address setting value stored in the R30 register of the SIMD type microprocessor shown in FIG. 7 and data after data shaping is performed on the example. FIG. 11 is a timing chart showing a data read operation from the PE-RAM of the SIMD type microprocessor shown in FIG.

図7に示したように、本実施形態では、DMA装置22の構成と、デコーダ57の構成が第1の実施形態と異なる。また、本実施形態では、レジスタファイル14のR30レジスタにアドレス値を設定し、R31レジスタにPE−RAM20から読み出されたデータを格納する。   As shown in FIG. 7, in this embodiment, the configuration of the DMA device 22 and the configuration of the decoder 57 are different from those in the first embodiment. In this embodiment, an address value is set in the R30 register of the register file 14, and the data read from the PE-RAM 20 is stored in the R31 register.

DMA装置22は、カウンタ22aに代えて加算器22gが設けられている。加算器22gはカウンタ22aのインクリメント機能に加えて、加算機能も備えた回路である。また、DMA装置22には、デコーダ22fが設けられている。デコーダ22fは、FF22bに格納されたR31レジスタから読み出された値に応じて加算器22gへの演算制御信号(インクリメントまたは加算、加算値)を出力する。   The DMA device 22 is provided with an adder 22g instead of the counter 22a. The adder 22g is a circuit having an addition function in addition to the increment function of the counter 22a. The DMA device 22 is provided with a decoder 22f. The decoder 22f outputs an operation control signal (increment or addition, addition value) to the adder 22g according to the value read from the R31 register stored in the FF 22b.

本実施形態のデコーダ57(57´)は、図8に示すように、読み出し用デコーダ(Read−DEC)57aと、書き込み用デコーダ(Write−DEC)57bと、FF57cと、AND回路57dと、を備えている。   As shown in FIG. 8, the decoder 57 (57 ′) according to the present embodiment includes a read decoder (Read-DEC) 57a, a write decoder (Write-DEC) 57b, an FF 57c, and an AND circuit 57d. I have.

読み出し用デコーダ57aは、第1の実施形態と同様に、PE指定アドレス線53(DMA装置22のPEA端子)から入力されるアドレス値に基づいて自PE番号を示している場合はRead用デコード信号(リードイネーブル信号)をアサートしてR30レジスタに出力する。   As in the first embodiment, the read decoder 57a reads the Read decode signal when its own PE number is indicated based on the address value input from the PE designation address line 53 (PEA terminal of the DMA device 22). (Read enable signal) is asserted and output to the R30 register.

書き込み用デコーダ57bは、自PE番号がPE指定アドレス線53から入力される値以上である場合に真となり、それ以外は偽となる。図9に各PE44ごとの条件を示す。図9の「==」は左辺と右辺が等しいことを意味し、「<=」は右辺が左辺以上であることを意味している。つまり、自PE番号がPE指定アドレス線53から入力される値以上であるとの条件が成立した場合に出力がアクティブ(Hi)となる。   The write decoder 57b is true when the self PE number is greater than or equal to the value input from the PE designation address line 53, and false otherwise. FIG. 9 shows conditions for each PE 44. “==” in FIG. 9 means that the left side and the right side are equal, and “<=” means that the right side is equal to or greater than the left side. That is, the output becomes active (Hi) when the condition that the self PE number is greater than or equal to the value input from the PE designation address line 53 is satisfied.

FF57cは、書き込み用デコーダ57bの出力を遅延されるためのパイプラインレジスタである。なお、図8では1段のように記載しているが、PR−RAM20からの読み出しタイミングに合わせて段数は適宜調整すればよい。   The FF 57c is a pipeline register for delaying the output of the write decoder 57b. Although FIG. 8 shows a single stage, the number of stages may be appropriately adjusted in accordance with the read timing from the PR-RAM 20.

AND回路57dは、FF57cの出力と、R/W制御信号線55と、FF22bの最上位ビット(MSB)との論理積演算をする回路である。なお、R/W制御信号線55と、FF22bの最上位ビットは、それぞれ論理レベルを反転した信号で演算をする。即ち、FF57cがHiレベルで、R/W制御信号線55がLowレベルで、FF22bの最上位ビットがLowレベルの場合にWrite用デコード信号(ライトイネーブル信号)がアサートされR31レジスタに出力される。   The AND circuit 57d is a circuit that performs an AND operation on the output of the FF 57c, the R / W control signal line 55, and the most significant bit (MSB) of the FF 22b. Note that the R / W control signal line 55 and the most significant bit of the FF 22b are operated with signals with inverted logic levels. That is, when the FF 57c is at Hi level, the R / W control signal line 55 is at Low level, and the most significant bit of the FF 22b is at Low level, the write decode signal (write enable signal) is asserted and output to the R31 register.

本実施形態では、R30レジスタに格納したアドレスのうち読み出す順序で同じアドレスが連続する場合は、一度のアクセスで同じアドレスのPE44のR31レジスタにデータを書き込むようにしている。例えば、図10(a)に示すようなアドレス値が各PE44のR30レジスタに格納されていた場合、まず以下の10命令をプロセッサエレメントグループ6に対して実行する。即ち、R30レジスタに格納されているアドレスのうち、同じアドレスが連続する場合は、当該アドレスが最初にPE−RAMのアドレスとして出力された際に同じアドレスを示しているPE44のR31レジスタに書き込むように制御し、以降の同じ値に対応するPE44への書き込みは規制するように制御している。   In this embodiment, when the same address continues in the reading order among the addresses stored in the R30 register, data is written to the R31 register of the PE 44 having the same address in one access. For example, when an address value as shown in FIG. 10A is stored in the R30 register of each PE 44, the following 10 instructions are first executed for the processor element group 6. That is, if the same address continues among the addresses stored in the R30 register, when the address is first output as the address of the PE-RAM, it is written to the R31 register of the PE 44 indicating the same address. And writing to the PE 44 corresponding to the same value thereafter is controlled to be restricted.

(1)R30レジスタの値がPE番号が1つ前のPE44と同じ値という条件が真ならば、テンポラリレジスタ(Fレジスタ56)の値を“81h”に設定する。
(2)(1)の条件が真で、かつPE番号が1つ後ろのPEとR30レジスタの値が等しければ、テンポラリレジスタの値を“1”加算する。
(3)(1)の条件が真で、かつPE番号が2つ後ろのPEとR30レジスタの値が等しければ、テンポラリレジスタの値を“1”加算する。
(4)(1)の条件が真で、かつPE番号が3つ後ろのPEとR30レジスタの値が等しければ、テンポラリレジスタの値を“1”加算する。
(5)(1)の条件が真で、かつPE番号が4つ後ろのPEとR30レジスタの値が等しければ、テンポラリレジスタの値を“1”加算する。
(6)(1)の条件が真で、かつPE番号が5つ後ろのPEとR30レジスタの値が等しければ、テンポラリレジスタの値を“1”加算する。
(7)(1)の条件が真で、かつPE番号が6つ後ろのPEとR30レジスタの値が等しければ、テンポラリレジスタの値を“1”加算する。
(8)(1)の条件が真で、かつPE番号が7つ後ろのPEとR30レジスタの値が等しければ、テンポラリレジスタの値を“1”加算する。
(9)(1)の条件が偽ならば、元データの値をテンポラリレジスタに設定する。
(10)テンポラリレジスタの値をR30レジスタに転送する。
(1) If the condition that the value of the R30 register is the same value as the PE 44 with the previous PE number is true, the value of the temporary register (F register 56) is set to “81h”.
(2) If the condition of (1) is true and the value of the R30 register is equal to the PE with the next PE number, “1” is added to the value of the temporary register.
(3) If the condition of (1) is true and the value of the R30 register is equal to the PE whose number is two behind, the value of the temporary register is incremented by “1”.
(4) If the condition of (1) is true and the value of the R30 register is equal to the PE whose number is three behind, the value of the temporary register is incremented by “1”.
(5) If the condition of (1) is true and the value of the R30 register is the same as that of the PE whose number is four behind, the value of the temporary register is incremented by “1”.
(6) If the condition of (1) is true and the value of the R30 register is equal to the PE whose number is five behind, the value of the temporary register is incremented by “1”.
(7) If the condition of (1) is true and the value of the R30 register is equal to the PE whose sixth PE number is six, the value of the temporary register is incremented by “1”.
(8) If the condition of (1) is true and the value of the R30 register is the same as that of the PE whose number is seven behind, the value of the temporary register is incremented by “1”.
(9) If the condition of (1) is false, the value of the original data is set in the temporary register.
(10) Transfer the value of the temporary register to the R30 register.

上記した10個の命令は順次PE命令として各PE44で実行することにより、図10(a)のデータが、図10(b)に示すようなデータに整形される。図10(b)のデータ整形欄には、MSB,元データ値または命令によりテンポラリレジスタに積算された値の順に記載されている。上述するように動作させることで、本実施形態では、レジスタ8ビットのうち、MSBをアドレスか連続数かを識別するコード、以下の7ビットをアドレスまたは連続数が格納される領域としている。   The above 10 instructions are sequentially executed by each PE 44 as PE instructions, whereby the data in FIG. 10A is shaped into data as shown in FIG. In the data shaping column of FIG. 10B, the MSB, the original data value, or the value accumulated in the temporary register by the instruction is described in this order. By operating as described above, in this embodiment, among the 8 bits of the register, the MSB is a code for identifying whether it is an address or a continuous number, and the following 7 bits are an area for storing the address or the continuous number.

例えば、PE(0)の場合は、10命令の結果(1)〜(8)の命令の条件が偽で、(9)と(10)の命令の条件が真となりR30レジスタには元データの値であるA0が設定される(MSBが“0”で、残り7ビットが“A0”)。PE(1)の場合は、10命令の結果(2)〜(9)の命令の条件が偽で、(1)と(10)の命令の条件が真となりR30レジスタには“81h”が設定される(MSBが“1”で、残り7ビットが“1”)。つまり、PE(0)はアドレス、PE(1)は連続数が格納される。なお、上記では10命令であるが、参照する範囲は、1命令でPE44が参照可能な範囲である必要があるので、プロセッサエレメントグループ6の構成により命令数は変動する場合がある。   For example, in the case of PE (0), the conditions of the instructions (1) to (8) of the result of 10 instructions are false, the conditions of the instructions of (9) and (10) are true, and the original data is stored in the R30 register. The value A0 is set (MSB is “0” and the remaining 7 bits are “A0”). In the case of PE (1), the conditions of the instructions (2) to (9) of the 10 instructions are false, the conditions of the instructions (1) and (10) are true, and “81h” is set in the R30 register. (MSB is “1” and the remaining 7 bits are “1”). That is, PE (0) stores an address and PE (1) stores a continuous number. Although the number of instructions is 10 in the above, the range to be referred to needs to be a range in which PE 44 can be referred to by one instruction, and therefore the number of instructions may vary depending on the configuration of the processor element group 6.

図11に本実施形態の動作のタイミングチャートを示す。R30レジスタには、上記10命令によりデータ整形後の値が格納されている。その後GP4からのDMAStart信号が入力されると、加算器22gから初期値“0”をPE指定アドレス線53に出力するとともに、R/W制御信号線55をリードを示す値を出力する。すると、PE(0)のR31レジスタの値(0,A0)が共通データバス51に読み出される(サイクルT1)。   FIG. 11 shows a timing chart of the operation of this embodiment. The R30 register stores the value after data shaping by the above 10 instructions. Thereafter, when the DMAStart signal from GP4 is input, the adder 22g outputs the initial value “0” to the PE designation address line 53 and the R / W control signal line 55 outputs a value indicating read. Then, the value (0, A0) of the R31 register of PE (0) is read to the common data bus 51 (cycle T1).

次のサイクルT2(図11では2クロック後)では、加算器22gがインクリメントされPE(1)のR30レジスタの値(1,1)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(0)のR30レジスタの値(0,A0)が格納されてその値(0,A0)がPE−RAM20のアドレスとして与えられてPE−RAM20からはアドレスA0に格納されているデータが出力される。なお、本サイクルで、R/W制御信号線55はライトを示す値に切り替える。   In the next cycle T2 (after two clocks in FIG. 11), the adder 22g is incremented and the value (1, 1) of the R30 register of PE (1) is read to the common data bus 51, and the FF 22b is read in the previous cycle. The value (0, A0) of the read R30 register of PE (0) is stored, the value (0, A0) is given as the address of PE-RAM 20, and the data stored at address A0 from PE-RAM 20 Is output. In this cycle, the R / W control signal line 55 is switched to a value indicating writing.

PE−RAM20から出力されたアドレスA0のデータは、当該サイクルの最後でPE(0)〜(255)のR31レジスタに書き込まれる。書き込みデコーダ57bは、上述したように、自PE番号がPE指定アドレス線53から入力される値以上である場合に真となるため、PE指定アドレス線53が“0”の場合は、PE(0)〜(255)の書き込みデコーダ57bで前記条件が成立する。したがって、PE(0)〜(255)のR31レジスタに対してライトイネーブル信号がアサートされ書込みが行われる。   The data at the address A0 output from the PE-RAM 20 is written into the R31 registers of PE (0) to (255) at the end of the cycle. As described above, the write decoder 57b becomes true when the self PE number is equal to or greater than the value input from the PE designation address line 53. Therefore, when the PE designation address line 53 is "0", the PE (0 ) To (255), the above condition is satisfied. Therefore, the write enable signal is asserted with respect to the R31 registers of PE (0) to (255) and writing is performed.

次のサイクルT3では、加算器22gがインクリメントされ、PE(2)のR30レジスタの値(0,A2)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(1)のR30レジスタの値(1,1)が格納される。この値(1,1)は、PE−RAM20にはアドレスとして与えられるものの、図8に示したデコーダ57´の構成からFF22bのMSBが“1”の場合はAND回路57dによってライトイネーブル信号がアサートされないため、PE−RAM20読み出されたデータはいずれのPE44のR31レジスタにも書き込まれない。   In the next cycle T3, the adder 22g is incremented, the value (0, A2) of the R30 register of PE (2) is read to the common data bus 51, and the PE (1) read in the previous cycle to the FF 22b. The value (1, 1) of the R30 register is stored. Although this value (1, 1) is given as an address to the PE-RAM 20, when the MSB of the FF 22b is “1” due to the configuration of the decoder 57 ′ shown in FIG. 8, the AND circuit 57d asserts the write enable signal. Therefore, the data read from the PE-RAM 20 is not written to the R31 register of any PE 44.

次のサイクルT4では、加算器22gがインクリメントされ、PE(3)のR30レジスタの値(0,A3)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(2)のR30レジスタの値(0,A2)が格納されてその値(A2)がPE−RAM20のアドレスとして与えられてPE−RAM20からはアドレスA2のデータが出力される。このときも、アドレスA0のデータを書き込んだ際と同様に、当該サイクルの最後でPE(2)〜(255)のR31レジスタにPE−RAM20から読み出されたデータが書き込まれる。   In the next cycle T4, the adder 22g is incremented, the value (0, A3) of the R30 register of PE (3) is read to the common data bus 51, and the PE (2) read in the previous cycle to the FF 22b. The value (0, A2) of the R30 register is stored, the value (A2) is given as the address of the PE-RAM 20, and the data of the address A2 is output from the PE-RAM 20. At this time, the data read from the PE-RAM 20 is written to the R31 registers of PEs (2) to (255) at the end of the cycle, as in the case of writing the data at the address A0.

次のサイクルT5では、加算器22gがインクリメントされPE(4)のR30レジスタの値(1,2)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(3)のR30レジスタの値(0,A3)が格納されてその値(0,A3)がPE−RAM20のアドレスとして与えられてPE−RAM20からはアドレスA3のデータが出力される。このときも、アドレスA0やA2のデータを書き込んだ際と同様に、当該サイクルの最後でPE(3)〜(255)のR31レジスタにPE−RAM20から読み出されたデータが書き込まれる。   In the next cycle T5, the adder 22g is incremented and the value (1, 2) of the R30 register of PE (4) is read to the common data bus 51, and the R30 of PE (3) read in the previous cycle to the FF 22b. The register value (0, A3) is stored, the value (0, A3) is given as the address of the PE-RAM 20, and the data of the address A3 is output from the PE-RAM 20. At this time, the data read from the PE-RAM 20 is written to the R31 registers of PEs (3) to (255) at the end of the cycle, as in the case of writing the data at the addresses A0 and A2.

次のサイクルT6では、加算器22gがインクリメントされ、PE(5)のR30レジスタの値(1,1)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(4)のR30レジスタの値(1,2)が格納される。この値(1,2)は、サイクルT3と同様に、PE−RAM20にはアドレスとして与えられるものの、図8に示したデコーダ57´からライトイネーブル信号がアサートされないため、PE−RAM20読み出されたデータはいずれのPE44のR31レジスタにも書き込まれない。次のサイクルT7も同様である。   In the next cycle T6, the adder 22g is incremented, the value (1, 1) of the R30 register of PE (5) is read to the common data bus 51, and the PE (4) read in the previous cycle to the FF 22b. The value (1, 2) of the R30 register is stored. Although the values (1, 2) are given as addresses to the PE-RAM 20 as in the cycle T3, the write enable signal is not asserted from the decoder 57 'shown in FIG. Data is not written to the R31 register of any PE44. The same applies to the next cycle T7.

次のサイクルT8では、加算器22gがインクリメントされPE(7)のR30レジスタの値(1,3)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(7)のR30レジスタの値(0,A6)が格納されてその値(0,A6)がPE−RAM20のアドレスとして与えられてPE−RAM20からはアドレスA6のデータが出力される。このときも、アドレスA0やA2やA3のデータを書き込んだ際と同様に、当該サイクルの最後でPE(6)〜(255)のR31レジスタにPE−RAM20から読み出されたデータが書き込まれる。   In the next cycle T8, the adder 22g is incremented and the value (1, 3) of the R30 register of PE (7) is read to the common data bus 51, and at the same time, the R30 of PE (7) read to the FF 22b in the previous cycle. The register value (0, A6) is stored, the value (0, A6) is given as the address of the PE-RAM 20, and the data of the address A6 is output from the PE-RAM 20. At this time, the data read from the PE-RAM 20 is written to the R31 registers of PEs (6) to (255) at the end of the cycle, as in the case of writing the data at the addresses A0, A2, and A3.

次のサイクルT9では、加算器22gがインクリメントされ、PE(8)のR30レジスタの値(1,2)が共通データバス51に読み出されるとともに、FF22bに前のサイクルで読み出したPE(7)のR30レジスタの値(1,3)が格納される。この値(1,3)は、サイクルT3やT6、T7と同様に、PE−RAM20にはアドレスとして与えられるものの、図8に示したデコーダ57´からライトイネーブル信号がアサートされないため、PE−RAM20読み出されたデータはいずれのPE44のR31レジスタにも書き込まれない。   In the next cycle T9, the adder 22g is incremented, the value (1, 2) of the R30 register of PE (8) is read to the common data bus 51, and the PE (7) read in the previous cycle to the FF 22b. The value (1, 3) of the R30 register is stored. Although this value (1, 3) is given as an address to the PE-RAM 20 as in the cycles T3, T6, and T7, the write enable signal is not asserted from the decoder 57 'shown in FIG. The read data is not written to the R31 register of any PE 44.

また、サイクルT9では、FF22bのMSBが“1”でかつ該FF22b下位7ビットの値が3以上であるので、下位7ビットの値から“1”を減じたものを加算器22gにおいて加算している。つまり、下位7ビットの値である“3”から“1”を減じた“2”を加算器22gに加算するようにデコーダ22fが制御する。加算器22gは、前記したFF22bのMSBが“1”でかつ該FF22b下位7ビットの値が3以上との条件が成立する場合以外はインクリメント動作を行う。   In cycle T9, since the MSB of FF 22b is “1” and the value of the lower 7 bits of FF 22b is 3 or more, the value obtained by subtracting “1” from the value of the lower 7 bits is added by adder 22g. Yes. That is, the decoder 22f controls to add “2” obtained by subtracting “1” from “3” which is the value of the lower 7 bits to the adder 22g. The adder 22g performs the increment operation except when the condition that the MSB of the FF 22b is “1” and the value of the lower 7 bits of the FF 22b is 3 or more is satisfied.

次のサイクルT10では、加算器22gには前のサイクル演算された値が格納されるためPE(10)の値(0,A10)が共通データバス51に読み出される。つまり、サイクルT9からサイクルT10に移行する際にPE番号が1つ飛ばされている(スキップされている)。この飛ばされたPE(9)は、図10(a)に示されているように、アドレスが“A6”であり、アドレスA6から読み出した値はサイクルT8ですでに当該PE(9)のR31レジスタにも書き込まれているので飛ばしても問題は無い。即ち、R30レジスタに格納されているアドレスのうち、同じアドレスが連続する数に応じて、R30レジスタに格納されているアドレスを読み出すPE番号をスキップさせている。   In the next cycle T10, since the value calculated in the previous cycle is stored in the adder 22g, the value (0, A10) of PE (10) is read to the common data bus 51. That is, one PE number is skipped when skipping from cycle T9 to cycle T10. As shown in FIG. 10A, the skipped PE (9) has an address “A6”, and the value read from the address A6 is already R31 of the PE (9) in cycle T8. Since it is also written in the register, there is no problem even if it is skipped. That is, among the addresses stored in the R30 register, the PE number for reading the address stored in the R30 register is skipped according to the number of consecutive identical addresses.

上述したように動作させることで、PE(0)、(1)のR31レジスタにはアドレスA0のデータが書き込まれ、PE(2)のR31レジスタにはアドレスA2のデータが書き込まれ、PE(3)〜(5)のR31レジスタにはアドレスA3のデータが書き込まれ、PE(6)〜(9)のR31レジスタにはアドレスA6のデータが書き込まれて、図10(a)に示したとおりのアドレスのデータが各PE44に書き込まれる。   By operating as described above, the data at address A0 is written to the R31 register of PE (0), (1), the data at address A2 is written to the R31 register of PE (2), and PE (3 ) To (5), the data of the address A3 is written into the R31 register, and the data of the address A6 is written into the R31 registers of the PEs (6) to (9), as shown in FIG. Address data is written to each PE 44.

本実施形態によれば、まず、予めR30レジスタに格納されているアドレス値に対して、データ整形を行って、アドレス値そのものと、同じアドレスが連続することを示すデータと、のいずれかが格納されるようにし、アドレス値の場合は、自PE番号がDMA装置22から入力されているPE番号以上との条件が成立するPE44のみPE−RAM20から読み出されたデータがR31レジスタに書き込まれるようにし、同じアドレスが連続することを示すデータの場合は、R31レジスタへの書き込みを行わないようにしているので、同じアドレスが連続する場合に一度でデータの書込みを終了させることができる。   According to the present embodiment, first, the address value stored in the R30 register in advance is subjected to data shaping, and either the address value itself or data indicating that the same address continues is stored. In the case of an address value, the data read from the PE-RAM 20 is written to the R31 register only for the PE 44 that satisfies the condition that its own PE number is equal to or greater than the PE number input from the DMA device 22. In the case of data indicating that the same address is continuous, the writing to the R31 register is not performed. Therefore, when the same address is continuous, the data writing can be completed at once.

また、同じアドレスが連続することを示すデータには、連続数を含み、その連続数が3以上の場合は、その連続数から1を減じた値をPE番号を指定する加算器に加算しているので、同じアドレスが連続することが長く続く場合は、PE番号を飛ばす(スキップする)ことができ、データ転送にかかるサイクル数を削減することができる。特に、微小角回転のような画像処理では同一のアドレスにアクセスするPE数が比較的多いため本実施形態の構成は当該画像処理のサイクル数の削減に有効である。   In addition, the data indicating that the same address is continuous includes a continuous number. When the continuous number is 3 or more, a value obtained by subtracting 1 from the continuous number is added to the adder for specifying the PE number. Therefore, when the same address continues for a long time, the PE number can be skipped (skip), and the number of cycles for data transfer can be reduced. In particular, in image processing such as small-angle rotation, since the number of PEs accessing the same address is relatively large, the configuration of this embodiment is effective in reducing the number of cycles of the image processing.

(第3実施形態)
次に、本発明の第3の実施形態を図12を参照して説明する。なお、前述した第1、第2の実施形態と同一部分には、同一符号を付して説明を省略する。図12は、本発明の第3の実施形態にかかるSIMD型マイクロプロセッサの要部構成図である。
(Third embodiment)
Next, a third embodiment of the present invention will be described with reference to FIG. The same parts as those in the first and second embodiments described above are denoted by the same reference numerals and description thereof is omitted. FIG. 12 is a main part configuration diagram of a SIMD type microprocessor according to the third embodiment of the present invention.

本実施形態では、第2の実施形態に対して、DMA装置22に、スケール設定レジスタ22hと、オフセット設定レジスタ22iと、乗算器22jと、加算器22kと、FF22mと、が追加されている点が異なる。   In the present embodiment, a scale setting register 22h, an offset setting register 22i, a multiplier 22j, an adder 22k, and an FF 22m are added to the DMA device 22 with respect to the second embodiment. Is different.

スケール設定レジスタ22hは、R30レジスタから読み出されたアドレス値に対するスケール値(乗数)を設定するレジスタである。オフセット設定レジスタ22iは、R30レジスタから読み出されたアドレス値に対するオフセット値(加算数)を設定するレジスタである。なお、スケール設定レジスタ22hと、オフセット設定レジスタ22iは、GP4で実行される命令や、図示しないデータバス等によって値が設定可能となっている。   The scale setting register 22h is a register that sets a scale value (multiplier) for the address value read from the R30 register. The offset setting register 22i is a register for setting an offset value (addition number) for the address value read from the R30 register. Note that the scale setting register 22h and the offset setting register 22i can be set by an instruction executed by GP4, a data bus (not shown), or the like.

乗算器22jは、FF22bに格納された値とスケール設定レジスタ22hに設定されたスケール値との乗算を行う。加算器22kは、乗算器22jの出力に対して、オフセット設定レジスタ22iに設定されたオフセット値を加算する。   The multiplier 22j multiplies the value stored in the FF 22b and the scale value set in the scale setting register 22h. The adder 22k adds the offset value set in the offset setting register 22i to the output of the multiplier 22j.

FF22mは、加算器22jの出力が格納されるレジスタ(フリップフロップ)であり、FF22mの出力がPE−RAM20のアドレスとして、DMA装置22から出力される。なお、乗算器22j、加算器22kを経て出力されるデータのビット幅はPE−RAM20に与えるアドレスのビット幅と同じになっているのはいうまでもない。   The FF 22m is a register (flip-flop) in which the output of the adder 22j is stored, and the output of the FF 22m is output from the DMA device 22 as the address of the PE-RAM 20. Needless to say, the bit width of the data output through the multiplier 22j and the adder 22k is the same as the bit width of the address given to the PE-RAM 20.

本実施形態によれば、スケール設定レジスタ22hにスケールを設定でき、オフセット設定レジスタ22iにオフセット値を設定できるようにしたので、R30レジスタに設定するアドレスのビット幅が、例えば、7ビットであったとしても、それ以上範囲の領域のアドレスを指定することが可能となる。また、例えば、R30レジスタから読み出した値を2倍した値をアドレスとするなど、PE−RAM20からの多様なデータの読み出し方(データの格納方法)が可能となる。即ち、少ないビット幅のレジスタでもPE−RAM20のアドレスとして実効アドレスのビット幅を増やすことが可能となる。   According to the present embodiment, since the scale can be set in the scale setting register 22h and the offset value can be set in the offset setting register 22i, the bit width of the address set in the R30 register is, for example, 7 bits. However, it is possible to specify an address in a range beyond that. In addition, various data reading methods (data storage methods) from the PE-RAM 20 are possible, for example, by using a value obtained by doubling a value read from the R30 register as an address. That is, the bit width of the effective address can be increased as the address of the PE-RAM 20 even with a register having a small bit width.

なお、上述した第3の実施形態において、スケールを設定するレジスタ22hとオフセットを設定するレジスタ22iは、いずれか一方のみ設けてもよい。勿論その場合は、乗算器22jと加算器22kも対応する回路のみが設けられる。   In the third embodiment described above, only one of the register 22h for setting the scale and the register 22i for setting the offset may be provided. Of course, in that case, only a circuit corresponding to the multiplier 22j and the adder 22k is provided.

なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。   The present invention is not limited to the above embodiment. That is, various modifications can be made without departing from the scope of the present invention.

1 プロセッサシステム
2 SIMD型マイクロプロセッサ
8 外部インタフェース
12 メモリ(外部メモリ)
20 PE−RAM(メモリ)
22 DMA装置(データ転送手段)
22h スケール設定レジスタ(乗数を設定するレジスタ)
22i オフセット設定レジスタ(オフセット値を設定するレジスタ)
R30、R31 レジスタ(所定のアドレスによってリードまたはライトアクセス可能な複数のレジスタ)
1 processor system 2 SIMD type microprocessor 8 external interface 12 memory (external memory)
20 PE-RAM (memory)
22 DMA device (data transfer means)
22h Scale setting register (register to set multiplier)
22i Offset setting register (register for setting offset value)
R30, R31 registers (multiple registers that can be read or written by specified addresses)

特許4504861号公報Japanese Patent No. 4504861 特開平03−211688号公報Japanese Patent Laid-Open No. 03-211688 特開2005−269502号公報JP 2005-269502 A 特許4294190号公報Japanese Patent No. 4294190

Claims (6)

所定のアドレスによってリードまたはライトアクセス可能な複数のレジスタを備えたプロセッサエレメントを複数有するSIMD型マイクロプロセッサにおいて、
前記プロセッサエレメントとのみデータの入出力が可能かつ、少なくとも2以上の前記プロセッサエレメントが同時にアクセス可能なデータビット幅を有したメモリと、
前記複数のレジスタのうちの一つのレジスタに格納されている値を前記プロセッサエレメントごとに順次読み出すととともに、該読み出された値を前記メモリのアドレスとして出力するデータ転送手段と、
前記メモリから読み出されたデータを、少なくとも該データに対応するアドレスが読み出された前記プロセッサエレメントの前記レジスタに格納する制御を行う書き込み制御手段と、
を備えたことを特徴とするSIMD型マイクロプロセッサ。
In a SIMD type microprocessor having a plurality of processor elements each having a plurality of registers that can be read or written by a predetermined address,
A memory capable of inputting / outputting data only to / from the processor element and having a data bit width accessible by at least two or more processor elements simultaneously;
A data transfer means for sequentially reading a value stored in one of the plurality of registers for each of the processor elements, and outputting the read value as an address of the memory;
Write control means for performing control for storing data read from the memory in at least the register of the processor element from which an address corresponding to the data is read;
A SIMD type microprocessor characterized by comprising:
前記書き込み制御手段が、前記一つのレジスタに格納されている値のうち、同じ値が連続する場合は、一度の読み出しで前記同じ値が格納されている前記プロセッサエレメントの前記レジスタに書き込むように制御し、以降の前記同じ値に対応する前記プロセッサエレメントの前記レジスタへの書き込みは規制するように制御することを特徴とする請求項1に記載のSIMD型マイクロプロセッサ。   When the same value continues among the values stored in the one register, the write control means controls to write to the register of the processor element in which the same value is stored by one reading. 2. The SIMD type microprocessor according to claim 1, wherein control is performed so as to restrict subsequent writing of the processor element corresponding to the same value to the register. 前記データ転送手段が、前記一つのレジスタに格納されている値のうち、同じ値が連続する数に応じて、前記一つのレジスタに格納されている値を読み出す前記プロセッサエレメントをスキップさせることを特徴とする請求項2に記載のSIMD型マイクロプロセッサ。   The data transfer means skips the processor element that reads the value stored in the one register according to the number of consecutive same values among the values stored in the one register. The SIMD type microprocessor according to claim 2. 前記データ転送手段が、前記レジスタから読み出したアドレスに対するオフセット値を設定するレジスタおよび乗数を設定するレジスタのうち少なくともいずれか一方と、前記オフセット値を設定するレジスタおよび前記乗数を設定するレジスタと前記レジスタから読み出した値との演算を行う演算器と、を備えていることを特徴とする請求項1乃至3のうちいずれか一項に記載のSIMD型マイクロプロセッサ。   The data transfer means includes at least one of a register for setting an offset value and a register for setting a multiplier for an address read from the register, a register for setting the offset value, a register for setting the multiplier, and the register An SIMD type microprocessor according to any one of claims 1 to 3, further comprising: an arithmetic unit that performs an operation on a value read from the processor. 外部とのデータ転送制御を行う外部インタフェースを備えたSIMD型マイクロプロセッサと、前記外部インタフェースデータからデータの書き込みまたは読み出しが可能な外部メモリと、を有するプロセッサシステムにおいて、
前記SIMD型マイクロプロセッサが、請求項1乃至4のうちいずれか一項に記載のSIMD型マイクロプロセッサであることを特徴とするプロセッサシステム。
In a processor system having a SIMD type microprocessor having an external interface for performing data transfer control with the outside, and an external memory capable of writing or reading data from the external interface data,
The processor system, wherein the SIMD type microprocessor is the SIMD type microprocessor according to any one of claims 1 to 4.
所定のアドレスによってリードまたはライトアクセス可能な複数のレジスタを備えたプロセッサエレメントを複数有するSIMD型マイクロプロセッサのデータ処理方法において、
前記複数のレジスタのうち一つのレジスタに格納されている値を前記プロセッサエレメントごとに読み出し、
該読み出された値を、前記プロセッサエレメントとのみデータの入出力が可能かつ、少なくとも2以上の前記プロセッサエレメントが同時にアクセス可能なデータビット幅を有したメモリのアドレスとし、
前記メモリから読み出されたデータを、少なくとも該データに対応するアドレスが読み出された前記プロセッサエレメントの前記レジスタに格納する
ことを特徴とするSIMD型マイクロプロセッサのデータ処理方法。
In a data processing method of a SIMD type microprocessor having a plurality of processor elements each having a plurality of registers that can be read or written by a predetermined address,
A value stored in one of the plurality of registers is read for each processor element,
The read value is an address of a memory having a data bit width that allows data input / output only with the processor element and is accessible to at least two or more processor elements simultaneously,
A data processing method for a SIMD type microprocessor, wherein the data read from the memory is stored in at least the register of the processor element from which an address corresponding to the data is read.
JP2012023805A 2012-02-07 2012-02-07 Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor Pending JP2013161325A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012023805A JP2013161325A (en) 2012-02-07 2012-02-07 Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012023805A JP2013161325A (en) 2012-02-07 2012-02-07 Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor

Publications (1)

Publication Number Publication Date
JP2013161325A true JP2013161325A (en) 2013-08-19

Family

ID=49173502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012023805A Pending JP2013161325A (en) 2012-02-07 2012-02-07 Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor

Country Status (1)

Country Link
JP (1) JP2013161325A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013191081A (en) * 2012-03-14 2013-09-26 Ricoh Co Ltd Microprocessor and processor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013191081A (en) * 2012-03-14 2013-09-26 Ricoh Co Ltd Microprocessor and processor system

Similar Documents

Publication Publication Date Title
JP3955741B2 (en) SIMD type microprocessor having sort function
JP2009223758A (en) Image processing apparatus
JPH08123769A (en) Parallel processor
JP2013161325A (en) Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor
US7702860B2 (en) Memory access apparatus
US7308553B2 (en) Processor device capable of cross-boundary alignment of plural register data and the method thereof
JP2006072961A (en) Memory circuit for arithmetic processing unit
KR100188374B1 (en) Central processing unit and an arithmetic operation processing unit
JP2007073010A (en) Simd processor and image processing method using the simd method processor and image processor
JP4482356B2 (en) Image processing method and image processing apparatus using SIMD processor
JP4408113B2 (en) Signal processing method
JP2906792B2 (en) Digital processor and control method thereof
JP4516495B2 (en) Data processing method in SIMD type microprocessor
JP2812610B2 (en) Pipeline control method
JP5888028B2 (en) SIMD type microprocessor and processor system
JP2011134042A (en) Simd type microprocessor and data alignment method of the same
JP4413905B2 (en) SIMD type processor
JP2005353094A (en) Product-sum computing unit
JP2004334306A (en) Arithmetic processing circuit and arithmetic processing method
JP5263497B2 (en) Signal processor and semiconductor device
JP3088956B2 (en) Arithmetic unit
JPH0877003A (en) Dsp program parallel process controller
JPH0810443B2 (en) Memory control circuit
JP2005149517A (en) Product-sum computing element
JPH01284926A (en) Instruction reading system for arithmetic unit