JP2007034473A - Data processing method in simd type microprocessor - Google Patents
Data processing method in simd type microprocessor Download PDFInfo
- Publication number
- JP2007034473A JP2007034473A JP2005214122A JP2005214122A JP2007034473A JP 2007034473 A JP2007034473 A JP 2007034473A JP 2005214122 A JP2005214122 A JP 2005214122A JP 2005214122 A JP2005214122 A JP 2005214122A JP 2007034473 A JP2007034473 A JP 2007034473A
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- bits
- simd type
- type microprocessor
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、SIMD型マイクロプロセッサに関し、特に、プロセッサエレメント内で演算結果を保持するレジスタを分割して使用する構造を備えるSIMD型プロセッサエレメントに関する。 The present invention relates to a SIMD type microprocessor, and more particularly to a SIMD type processor element having a structure in which a register for holding an operation result is divided and used in the processor element.
近年、デジタル複写機やファクシミリ装置等の画像処理では、画素数の増加、画像処理の多様化などにより画質の向上が図られている。これらの画像処理では複数の画像データに対して同じ処理をすることが多い。そこで高速性を高めるために、1命令で複数のデータを同時処理するSIMD(Single Instruction−stream Multiple Data−stream)型のマイクロプロセッサが用いられることが多い。 In recent years, in image processing such as digital copying machines and facsimile machines, image quality has been improved by increasing the number of pixels and diversifying image processing. In these image processing, the same processing is often performed on a plurality of image data. Therefore, in order to improve the high speed, a SIMD (Single Instruction-stream Multiple Data-stream) type microprocessor that simultaneously processes a plurality of data with one instruction is often used.
SIMD型マイクロプロセッサは、算術論理演算器(ALU)と演算レジスタを備えたプロセッサエレメントと呼ばれるブロックを持つが、複数のデータを一度に処理するためにプロセッサエレメントを複数個装備している。また、プロセッサエレメントには算術論理演算器に利用する汎用レジスタが装備されており、該算術論理演算器は、汎用レジスタのデータと演算レジスタのデータとの演算、又は、汎用レジスタのデータと命令コード中に記述された数値データとの演算等を行う。 The SIMD type microprocessor has a block called a processor element having an arithmetic logic unit (ALU) and an arithmetic register, but has a plurality of processor elements for processing a plurality of data at a time. In addition, the processor element is equipped with a general-purpose register used for an arithmetic logic unit, and the arithmetic logic unit operates between the data of the general-purpose register and the data of the arithmetic register, or the data of the general-purpose register and the instruction code. Performs calculations with numerical data described in it.
SIMD型マイクロプロセッサは、1クロックサイクルで1命令を処理するから、1命令でプロセッサエレメントの個数分のデータを一度に処理することができる。SIMD型マイクロプロセッサの性能を表すには、動作周波数やプロセッサエレメントの個数、即ち1命令で処理できるデータの数などが重要であるが、一方で命令サイクル数も重要となる。つまり、同じ画像処理を行うのに必要な命令サイクルが少ないほうが性能がよいとされる。ただし、1命令で複雑な処理を行うとすれば、複雑な処理を行うための回路が必要となりコストが増加する。 Since the SIMD type microprocessor processes one instruction in one clock cycle, it can process data for the number of processor elements at one time with one instruction. In order to express the performance of the SIMD type microprocessor, the operating frequency and the number of processor elements, that is, the number of data that can be processed by one instruction, are important. On the other hand, the number of instruction cycles is also important. That is, the performance is better when the number of instruction cycles required to perform the same image processing is smaller. However, if complex processing is performed with one instruction, a circuit for performing complex processing is required, which increases costs.
ところで、1つのプロセッサエレメントで扱えるデータビットサイズを増やし、そのビットサイズを均等分割して一つのプロセッサエレメントで扱えるデータ数を増やしているSIMD型マイクロプロセッサもある。このタイプのSIMD型マイクロプロセッサでは、処理対象のデータのビットサイズが大きくても小さくても、扱うことができるというメリットがある。 Some SIMD type microprocessors increase the data bit size that can be handled by one processor element and increase the number of data that can be handled by one processor element by equally dividing the bit size. This type of SIMD microprocessor has the advantage that it can be handled regardless of whether the bit size of the data to be processed is large or small.
例えば、1つのプロセッサエレメントで扱えるデータビットサイズを64ビット、プロセッサエレメントの個数を256個とした場合、1サイクルで同時に処理できるデータ数は、データサイズが64ビットの場合は256データ、データサイズが32ビットの場合は2分割できるため256×2=512データ、データサイズが16ビットに至っては4分割できるため256×4=1024データである。 For example, if the data bit size that can be handled by one processor element is 64 bits and the number of processor elements is 256, the number of data that can be processed simultaneously in one cycle is 256 data when the data size is 64 bits. In the case of 32 bits, since it can be divided into two, 256 × 2 = 512 data, and when the data size reaches 16 bits, it can be divided into four, so that 256 × 4 = 1024 data.
上記のような分割のないSIMD型マイクロプロセッサにおいてプロセッサエレメント(PE)に順に番号(PE番号)が付されているのと同様に、上記のように一つのプロセッサエレメントで扱えるデータ数を増やしているSIMD型マイクロプロセッサにおいても、分割された個別データ単位に番号が順に付されることが、データ処理上望ましいことがある。例えば、プロセッサ設計段階におけるシミュレーションや、IC化されたときの選別におけるテストを行う場合である。 In the SIMD type microprocessor without division as described above, the number of data that can be handled by one processor element is increased as described above, in the same way that processor elements (PE) are numbered sequentially (PE number). Also in the SIMD type microprocessor, it may be desirable in terms of data processing that numbers are sequentially assigned to the divided individual data units. For example, it is a case where a simulation in a processor design stage or a test in selection when an IC is made.
しかし、プロセッサエレメントにおける汎用レジスタの分割に合わせて、PE番号を分割された個別データ単位に対応させて設定するという構成を実現する発明は為されていない。 However, no invention has been made to realize a configuration in which the PE number is set in correspondence with the divided individual data unit in accordance with the division of the general-purpose register in the processor element.
特許文献1の発明は、オペランドに指定したデータをレジスタ上に複数格納し、その複数データを一括して演算するとき、比較結果をフラグに残し高速に演算することを特徴とするプロセッサに関するが、レジスタにプロセッサエレメント毎で異なる値を入力する構成とはなっていない。特許文献2の発明は、プロセッサエレメントごとに固有の値とプロセッサエレメント共有の命令によって演算を行うSIMD型並列装置に関するが、分割レジスタについての記述はなく、単体レジスタについての記載のみである。特許文献3の発明は、SIMD型マイクロプロセッサにおいてプロセッサエレメント毎に固有の値を入力できるようにし、各プロセッサエレメントに演算結果により以降の演算に条件を加える、条件フラグを作成する。更に特許文献4の発明は、グローバルプロセッサから各PEに値を同時または条件をつけて設定することを目的とするものである。
本発明は、前述の汎用レジスタを複数分割し得るプロセッサエレメントを有するSIMD型マイクロプロセッサおいて、複数分割される汎用レジスタを実効的に利用するデータ設定方法と、そのようなデータ設定を実現する手段を開発し、このことにより画像データ処理を行う命令実行サイクル数を減らすようにすることを目的としている。 The present invention provides a data setting method for effectively using a plurality of divided general purpose registers and means for realizing such data setting in a SIMD type microprocessor having a processor element capable of dividing a plurality of the general purpose registers. The purpose of this is to reduce the number of instruction execution cycles for image data processing.
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
プロセッサエレメントの配置、及びレジスタの分割に基づいて、レジスタの分割単位にデータを設定することを特徴とするデータ処理方法である。
The present invention has been made to achieve the above object. The data processing method according to
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
A data processing method characterized in that data is set in a register division unit based on an arrangement of processor elements and register division.
本発明に係る請求項2に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
プロセッサエレメント間では異なるが、各プロセッサエレメント内のレジスタの分割単位間では同じデータを設定することを特徴とするデータ処理方法である。
The data processing method according to
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The data processing method is characterized in that the same data is set between the division units of the registers in each processor element, although it differs among the processor elements.
本発明に係る請求項3に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
レジスタの分割数をiとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n×i)、(n×i+1)・・・(n×i+(i−1))を設定することを特徴とするデータ処理方法である。
According to a third aspect of the present invention, there is provided a data processing method comprising:
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, and each processor element is given a different number n.
(N × i), (n × i + 1)... (N × i + (i−1)) are set as data from the register at the upper bit position of the register division unit in the processor element. Is a data processing method.
本発明に係る請求項4に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
レジスタの分割数をi、プロセッサエレメントの配置数をmaxとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n)、(n+max)・・・(n+max×(i−1))を設定することを特徴とするデータ処理方法である。
The data processing method according to claim 4 according to the present invention includes:
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, the number of processor elements arranged is max, and each processor element is given a different number n.
(N), (n + max)... (N + max × (i−1)) are set as data from the register in the higher order bit position of the register in the processor element. is there.
本発明に係る請求項5に記載のデータ処理方法は、
各プロセッサエレメントには異なる番号PEnを付すとして、
レジスタを分割しない状態で処理を行う場合には、各プロセッサエレメントに含まれるレジスタにはデータとして(n)を設定することを特徴とする請求項1に記載のデータ処理方法である。
The data processing method according to claim 5 according to the present invention comprises:
Each processor element is given a different number PEn,
2. The data processing method according to
本発明を利用すれば、SIMD型マイクロプロセッサにおいて複数分割され得る汎用レジスタを実効的に利用でき、このことにより画像データ処理を行う命令実行サイクル数を減らすようにすることができる。 If the present invention is used, a general-purpose register that can be divided into a plurality of parts in the SIMD type microprocessor can be effectively used, thereby reducing the number of instruction execution cycles for performing image data processing.
以下、図面を参照して本発明に係るSIMD型マイクロプロセッサ、及び該SIMD型マイクロプロセッサにおけるデータ処理方法を説明する。 Hereinafter, a SIMD type microprocessor according to the present invention and a data processing method in the SIMD type microprocessor will be described with reference to the drawings.
図1は、本発明を含む一般的なSIMD型マイクロプロセッサ2の概略の構成を示すブロック図である。SIMD型マイクロプロセッサ2は、主としてプロセッサ2全体を制御するCISC型のグローバルプロセッサ(以下、GPと言う。)4と、主として外部入出力装置からデータを入力しデータ処理を行い外部入出力装置にデータを出力するプロセッサエレメント3とから構成される。プロセッサエレメント3は、複数のデータを同時に処理するために複数用意されている。図1では、1個のGP4と、(例えば)256個のプロセッサエレメント3とにより、SIMD型マイクロプロセッサ2が構成されている。
FIG. 1 is a block diagram showing a schematic configuration of a general
《第1の実施形態》
図2は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2の構成を示すブロック図である。GP4は、プログラムに記述された命令に従ってSCU(シーケンシャル・コントロール・ユニット;Sequential Control Unit)36でデコードされた制御信号を各プロセッサエレメント3に送って、プロセッサエレメント3の制御を行う。GP4は、算術論理演算装置(ALU)(図示せず。)も保持している。GP4はALUの演算結果などを汎用レジスタ(Gレジスタ)34に保持する。更にGP4は汎用レジスタ(Gレジスタ)34から一度に全プロセッサエレメント3にデータを転送する経路(GAバス)30も有する。
<< First Embodiment >>
FIG. 2 is a block diagram showing a configuration of the
プロセッサエレメント3は、(例えば)R0〜R31までの32本の汎用レジスタ10と、汎用レジスタ10からのデータをシフト処理若しくはデータ拡張処理するシフタ12と、算術論理演算装置(ALU)20と、算術論理演算装置20への2つの入力データを一旦保持する第1の記憶手段16及び第2の記憶手段18と、シフタ12や算術論理演算装置20の演算結果を保持する演算レジスタ(Aレジスタ)24と、演算結果により設定されるフラグデータを保持するPPレジスタ22と、算術論理演算装置20の結果をAレジスタ24に格納するか否かを制御する条件フラグを複数ビット持つTレジスタ26とから構成される。
The
第1の記憶手段16には、GP4のSCU36で命令コードから抜き出された即値データを転送することも可能である。第1の記憶手段16への即値データの転送はIMMとして示されている。即値は命令コードに1種類しか含まれないため、通常全プロセッサエレメントのIMMは、同じデータである。
It is also possible to transfer the immediate data extracted from the instruction code by the
図2に示す本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2では、プロセッサエレメントの数は256とし、特に指定のないレジスタのサイズは32ビットとする。また、レジスタのサイズの32ビットに対してレジスタの分割数は2とする。32本の汎用レジスタ10は、図示していないが、外部装置(例えば、画像データの格納されたメモリ)と接続している。256個のプロセッサエレメントにおける同一番号の汎用レジスタは、水平ラインの画像データを一度に保持したりする。
In the
更に、図2に示す本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2のプロセッサエレメント3には、PE番号を保持しているブロック(PE番号保持ブロック)28を設けてある。前述のように、PE番号は、配列されるプロセッサエレメントに順に付される番号である。
Further, the
例えば、256個のプロセッサエレメント3が装備され汎用レジスタ10が2分割され得る場合は、“分割される個別データ単位に付すべき番号”として0〜511(=29−1)まで必要になる。即ち、9ビットが必要となるため、“分割される個別データ単位に付すべき番号”をAレジスタ24のビット0〜8にロードする構成とする。また、同じく9ビットの“分割される個別データ単位に付すべき番号”をビット16〜24にロードする構成とする。
For example, when 256
なお以下では、“分割される個別データ単位に付すべき番号”を、「拡張PE番号」と称することとする。 Hereinafter, the “number to be assigned to each individual data unit to be divided” will be referred to as an “extended PE number”.
次に、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2によるデータ処理方法を説明する。まず、PE番号保持ブロック28から、PE番号がAレジスタ24にロードされる。なお、上述のように、256個のプロセッサエレメント3が装備され汎用レジスタ10が2分割され得る場合は、拡張PE番号として0〜511(=29−1)まで必要になる。
Next, a data processing method by the
まず、PE番号をAレジスタ24のビット0〜8とビット16〜24にロードする。Aレジスタ24にロードされた後、Aレジスタ24のデータ、若しくは、命令に記述される即値データたるIMMが、第1の記憶手段16に保持され、Aレジスタ24のデータにつきシフタ12を経由させたものが、第2の記憶手段18に保持される。第1の記憶手段16のデータと第2の記憶手段18のデータがALU20にて演算され、その結果が再度Aレジスタ24に設定される。こうすることでAレジスタ24の上位16ビットと下位16ビットとにおいて、PE番号から作られるデータ(ここでは、拡張PE番号)を一度に設定することができる。上記のデータ処理方法は、ALU20を1回しか伝播しないため、クロックサイクルは1サイクルでしかない。
First, the PE number is loaded into
《第2の実施形態》
本発明の第2の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第2の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Second Embodiment >>
A data processing method in the
まず、プロセッサエレメント3毎に異なる番号n(n=0〜255)がAレジスタ24にロードされる。このとき例えば、各プロセッサエレメント3では、PE番号保持ブロック28からPE番号がAレジスタ24のビット0〜8とビット16〜24に設定される。このAレジスタ24の値がシフタ12でのシフトなしに第2の記憶手段18に保持され、一方第1の記憶手段16にはIMMから0が入力保持される。そして、第1の記憶手段16と第2の記憶手段18のデータがALU20にて論理和される、若しくは加算される。こうすることで、Aレジスタ24の上位16ビットと下位16ビットに、同じPE番号が保持される。以上の処理を全プロセッサエレメント3で同時に行うため、結果的に図3に示すパターンAのようにAレジスタ24が設定されることになる。このようなAレジスタ24のデータは、同じプロセッサエレメント3にて2分割された汎用レジスタ10に同じ処理をする場合に用いることができる。
First, a different number n (n = 0 to 255) for each
また、図3に示すAレジスタ24のパターンAの設定は、別の手順でも実施できる。まず、各プロセッサエレメント3にて、PE番号保持ブロック28からPE番号をAレジスタ24のビット0〜8に設定する。このAレジスタ24の値をそのまま第1の記憶手段16に保持し、一方Aレジスタ24の値をシフタ12経由で16ビット左シフトして第2の記憶手段18に保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて論理和すると、若しくは加算すると、図3に示すAレジスタ24のパターンAが実現される。
Further, the setting of the pattern A of the
図4に示すように、原稿をスキャナで読み取り画像処理をする場合、通常、SIMD型マイクロプロセッサに一度に入力されるデータは、主走査方向に連続する256個のデータの単位である(このデータの単位は、SIMD型マイクロプロセッサで1回で演算し得る最大量であるという意味で1SIMDとも称される。)。各プロセッサエレメント3において2分割処理をする場合には、主走査方向の更なる1SIMD分のデータ、若しくは副走査方向の1SIMD分のデータを同時に処理できる。画像処理では副走査方向に隣接する同じ主走査方向位置では、同じ処理を行うことが多いため、副走査方向に隣接して同じ主走査方向位置にある上下2SIMD分のデータ処理には、パターンAのような演算レジスタ(Aレジスタ)24を用意することが有効である。
As shown in FIG. 4, when a document is read by a scanner and image processing is performed, data input to the SIMD type microprocessor at a time is usually a unit of 256 data in the main scanning direction (this data). Is also referred to as 1 SIMD in the sense that it is the maximum amount that can be computed at one time by a SIMD microprocessor.) When each
《第3の実施形態》
本発明の第3の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第3の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Third Embodiment >>
A data processing method in the
まず、各プロセッサエレメント3では、PE番号保持ブロック28からPE番号がAレジスタ24のビット0〜8とビット16〜24に設定される。このAレジスタ24の値がシフタ12で1ビット左シフトされて第2の記憶手段18に保持され、一方第1の記憶手段16にはIMMから“1”が入力保持される。第1の記憶手段16と第2の記憶手段18のデータがALU20にて加算される。こうすることで、PE番号が連続する複数のプロセッサエレメントの各々において、Aレジスタ24の上位16ビットと下位16ビットに、連続する拡張PE番号が保持されることになる。つまり、図3に示すパターンBのようなAレジスタ24が1クロックサイクルで設定されることになる。
First, in each
図4に示すような画像処理において、主走査方向に連続する2SIMD分の512個のデータを処理する場合、汎用レジスタ10の分割単位に夫々に異なるデータを設定できることになり一度に512個のデータを扱えるSIMD型マイクロプロセッサとすることができる。
In the image processing as shown in FIG. 4, when processing 512 pieces of data for 2 SIMD continuous in the main scanning direction, different data can be set for each division unit of the general-
《第4の実施形態》
本発明の第4の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第4の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Fourth Embodiment >>
A data processing method in the
まず、各プロセッサエレメント3では、PE番号保持ブロック28からPE番号がAレジスタ24のビット0〜8とビット16〜24に設定される。このAレジスタ24の値がシフタ12でのシフト無しで第2の記憶手段18に保持され、一方第1の記憶手段16にはIMMから“256=100h”(“h”は16進表記であることを示す。)が入力保持される。第1の記憶手段16と第2の記憶手段18のデータがALU20にて加算される。こうすることで、PE番号が連続するプロセッサエレメントにおいて、Aレジスタ24の上位16ビットに連続する拡張PE番号が保持され、下位16ビットにその後続の連続する拡張PE番号が保持されることになる。つまり、図3に示すパターンCのようなAレジスタ24が1クロックサイクルで設定されることになる。
First, in each
《第5の実施形態》
本発明の第5の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第5の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Fifth Embodiment >>
A data processing method in the
このデータ処理方法は、汎用レジスタ10をフルビットで使用する場合の方法である。このとき、各プロセッサエレメント3にてPE番号保持ブロック28からPE番号をAレジスタ24のビット0〜8に設定することで、分割が無い32ビット×256データのSIMD型マイクロプロセッサに対応できることとなる。このようなAレジスタ24の設定は、上位ビットをマスクする制御信号をグローバルプロセッサ4から出力することでも実現できる。また、PE番号をAレジスタ24のビット0〜8とビット16〜24に設定し、シフタ12で右に16ビットシフトして第2の記憶手段18に保持し、IMMから“0”を第1の記憶手段16に入力保持し、第1の記憶手段16と第2の記憶手段18のデータをALU20で論理和若しくは加算することでも実現できる。
This data processing method is a method when the general-
《第6の実施形態》
以上の第1の実施形態から第4の実施形態に係るSIMD型マイクロプロセッサにおいては、32ビットの汎用レジスタが2分割されて使用されることを想定している。汎用レジスタが32ビット以外のデータ幅、例えば64ビットであっても、勿論、上記の第1〜第4の実施形態に係るデータ処理方法は実施できる。
<< Sixth Embodiment >>
In the SIMD type microprocessors according to the first to fourth embodiments described above, it is assumed that a 32-bit general-purpose register is divided and used. Of course, even if the general-purpose register has a data width other than 32 bits, for example, 64 bits, the data processing methods according to the first to fourth embodiments can be implemented.
64ビットの汎用レジスタ10を16ビット×4分割で使用する場合、プロセッサエレメント4の数を256個と仮定すると、拡張PE番号には0〜1023(=210−1)の10ビットが必要となる。従って、Aレジスタ24における(拡張)PE番号の設定ビットをビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57の4箇所とする。なお、ALU、シフタ、その他レジスタ、及びバスは、64ビットに対応するものとなっていると仮定する。
When the 64-bit general-
図3に示すパターンAを実現するには、まず、PE番号をAレジスタ24のビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57に設定し、それをシフタ12でのシフトなしで第2の記憶手段18に保持する。一方、第1の記憶手段16にはIMMから0を入力保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて論理和若しくは加算すれば、4分割されたAレジスタ24の夫々に同じ拡張PE番号を保持することができる。
In order to realize the pattern A shown in FIG. 3, first, the PE number is set to
図3に示すパターンBを実現するには、まず、PE番号をAレジスタ24のビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57に設定し、それをシフタ12で2ビット左シフトして第2の記憶手段18に保持する。一方、第1の記憶手段16にはIMMから“1_0002_0003h”(ここで、“_”は16ビット毎の区切りを示す表記である)を入力保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて論理和若しくは加算すれば、4分割されたAレジスタにおける分割単位の各々に、パターンBのように、連続する拡張PE番号が保持されることになる。
In order to realize the pattern B shown in FIG. 3, first, the PE number is set to
図3に示すパターンCを実現するには、まず、PE番号をAレジスタ24のビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57に設定し、それをシフタ12でのシフトなしで第2の記憶手段18に保持する。一方、第1の記憶手段16にはIMMから“100_0200_0300h”を入力保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて加算する。こうすることで、PE番号が連続するプロセッサエレメントにおいて、Aレジスタ24のビット48〜57に連続する拡張PE番号が保持され、続いてビット32〜41にその後続の連続する拡張PE番号が保持され、続いてビット16〜25にその後続の連続する拡張PE番号が保持され、更に続いてビット0〜9に更に後続の連続する拡張PE番号が保持されることになる。
In order to realize the pattern C shown in FIG. 3, first, the PE number is set to
2・・・SIMD型マイクロプロセッサ、3・・・プロセッサエレメント、4・・・グローバルプロセッサ、8・・・演算アレイ、10・・・汎用レジスタ、12・・・シフタ、16・・・第1の記憶手段、18・・・第2の記憶手段、20・・・ALU、24・・・Aレジスタ(演算レジスタ)、28・・・PE番号保持ブロック。
2 ... SIMD type microprocessor, 3 ... processor element, 4 ... global processor, 8 ... arithmetic array, 10 ... general-purpose register, 12 ... shifter, 16 ... first Storage means, 18... Second storage means, 20... ALU, 24... A register (operation register), 28.
Claims (5)
プロセッサエレメントの配置、及びレジスタの分割に基づいて、レジスタの分割単位にデータを設定することを特徴とするデータ処理方法。 In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
A data processing method comprising: setting data in a register division unit based on arrangement of processor elements and register division.
プロセッサエレメント間では異なるが、各プロセッサエレメント内のレジスタの分割単位間では同じデータを設定することを特徴とするデータ処理方法。 In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
A data processing method characterized in that the same data is set between the division units of the registers in each processor element, although it differs among processor elements.
レジスタの分割数をiとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n×i)、(n×i+1)・・・(n×i+(i−1))を設定することを特徴とするデータ処理方法。 In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, and each processor element is given a different number n.
(N × i), (n × i + 1)... (N × i + (i−1)) are set as data from the register at the upper bit position of the register division unit in the processor element. Data processing method.
レジスタの分割数をi、プロセッサエレメントの配置数をmaxとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n)、(n+max)・・・(n+max×(i−1))を設定することを特徴とするデータ処理方法。 In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, the number of processor elements arranged is max, and each processor element is given a different number n.
A data processing method characterized by setting (n), (n + max) (n + max × (i−1)) as data from a register division unit in a processor element which is in an upper bit position.
レジスタを分割しない状態で処理を行う場合には、各プロセッサエレメントに含まれるレジスタにはデータとして(n)を設定することを特徴とする請求項1に記載のデータ処理方法。
Each processor element is given a different number n,
2. The data processing method according to claim 1, wherein when processing is performed without dividing the register, (n) is set as data in a register included in each processor element.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005214122A JP4516495B2 (en) | 2005-07-25 | 2005-07-25 | Data processing method in SIMD type microprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005214122A JP4516495B2 (en) | 2005-07-25 | 2005-07-25 | Data processing method in SIMD type microprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007034473A true JP2007034473A (en) | 2007-02-08 |
JP4516495B2 JP4516495B2 (en) | 2010-08-04 |
Family
ID=37793696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005214122A Expired - Fee Related JP4516495B2 (en) | 2005-07-25 | 2005-07-25 | Data processing method in SIMD type microprocessor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4516495B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008217061A (en) * | 2007-02-28 | 2008-09-18 | Ricoh Co Ltd | Simd microprocessor |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0589262A (en) * | 1991-07-18 | 1993-04-09 | Toshiba Corp | Processor address setting system |
JP2001202351A (en) * | 2000-01-19 | 2001-07-27 | Ricoh Co Ltd | Simd type processor |
JP2001265592A (en) * | 2000-03-17 | 2001-09-28 | Matsushita Electric Ind Co Ltd | Information processor |
JP2002091929A (en) * | 2000-09-11 | 2002-03-29 | Matsushita Electric Ind Co Ltd | Simd type parallel processor |
JP2002108832A (en) * | 2000-09-28 | 2002-04-12 | Ricoh Co Ltd | Data-setting device for simd processor |
JP2002171401A (en) * | 2000-11-29 | 2002-06-14 | Canon Inc | Simd arithmetic unit provided with thinning arithmetic instruction |
JP2002207707A (en) * | 2001-01-11 | 2002-07-26 | Ricoh Co Ltd | Simd type micro-processor having function for selecting constant |
JP2003241960A (en) * | 2002-02-15 | 2003-08-29 | Hitachi Ltd | Processor, and computation instruction processing method and computation control method therein |
-
2005
- 2005-07-25 JP JP2005214122A patent/JP4516495B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0589262A (en) * | 1991-07-18 | 1993-04-09 | Toshiba Corp | Processor address setting system |
JP2001202351A (en) * | 2000-01-19 | 2001-07-27 | Ricoh Co Ltd | Simd type processor |
JP2001265592A (en) * | 2000-03-17 | 2001-09-28 | Matsushita Electric Ind Co Ltd | Information processor |
JP2002091929A (en) * | 2000-09-11 | 2002-03-29 | Matsushita Electric Ind Co Ltd | Simd type parallel processor |
JP2002108832A (en) * | 2000-09-28 | 2002-04-12 | Ricoh Co Ltd | Data-setting device for simd processor |
JP2002171401A (en) * | 2000-11-29 | 2002-06-14 | Canon Inc | Simd arithmetic unit provided with thinning arithmetic instruction |
JP2002207707A (en) * | 2001-01-11 | 2002-07-26 | Ricoh Co Ltd | Simd type micro-processor having function for selecting constant |
JP2003241960A (en) * | 2002-02-15 | 2003-08-29 | Hitachi Ltd | Processor, and computation instruction processing method and computation control method therein |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008217061A (en) * | 2007-02-28 | 2008-09-18 | Ricoh Co Ltd | Simd microprocessor |
US8060726B2 (en) | 2007-02-28 | 2011-11-15 | Ricoh Company, Ltd. | SIMD microprocessor, image processing apparatus including same, and image processing method used therein |
Also Published As
Publication number | Publication date |
---|---|
JP4516495B2 (en) | 2010-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008071130A (en) | Simd type microprocessor | |
JP2009015556A (en) | Simd type microprocessor | |
KR100812555B1 (en) | Arrangement, system and method for vector permutation in single-instruction multiple-data microprocessors | |
EP3329363B1 (en) | Vector arithmethic instruction | |
JP2008217061A (en) | Simd microprocessor | |
JP4516495B2 (en) | Data processing method in SIMD type microprocessor | |
JP4408113B2 (en) | Signal processing method | |
JP3971543B2 (en) | SIMD type processor | |
JP4868607B2 (en) | SIMD type microprocessor | |
JP4442905B2 (en) | Image data processing method | |
JP4451433B2 (en) | Parallel processor | |
JP3895267B2 (en) | SIMD processor | |
JP3837293B2 (en) | SIMD type microprocessor having constant selection function | |
JP4398965B2 (en) | Data setting device in SIMD processor | |
JP4442907B2 (en) | SIMD type processor | |
JP3971557B2 (en) | Data setting device in SIMD processor | |
JP2012059131A (en) | Simd microprocessor and processing method thereof | |
JP2008071037A (en) | Simd microprocessor | |
JP2010033426A (en) | Simd type microprocessor and operation method | |
JP3969580B2 (en) | Data processing apparatus, image processing apparatus, image forming apparatus, program, and storage medium | |
JP4708387B2 (en) | Address data generation apparatus and memory addressing method | |
JP2005267362A (en) | Image processing method using simd processor and image processor | |
JP3742745B2 (en) | Arithmetic processing unit | |
JP2013161325A (en) | Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor | |
JP2011134042A (en) | Simd type microprocessor and data alignment method of the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080422 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100223 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100416 |
|
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: 20100511 |
|
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: 20100514 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140521 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |