JP5358315B2 - Parallel computing device - Google Patents
Parallel computing device Download PDFInfo
- Publication number
- JP5358315B2 JP5358315B2 JP2009150019A JP2009150019A JP5358315B2 JP 5358315 B2 JP5358315 B2 JP 5358315B2 JP 2009150019 A JP2009150019 A JP 2009150019A JP 2009150019 A JP2009150019 A JP 2009150019A JP 5358315 B2 JP5358315 B2 JP 5358315B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- sub
- unit
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
Description
本発明は、並列計算装置に関する。 The present invention relates to a parallel computing device.
大容量の演算処理を行う電子計算装置には、画像処理用途に用いられるものがある。そのような電子計算装置が、リアルタイムに演算処理を行うシステムを例に示す。
自動車に搭載されたビデオカメラによって得られる映像に基づいて画像処理を行って、検出された結果をドライバーに示すことにより安全運転を補助するシステムがある。このようなシステムに用いられる電子計算装置(画像処理プロセッサー)は、ビデオカメラと一緒に自動車に搭載され、ビデオカメラからの映像(例えば640画素×480画素、10フレーム/秒)を分析する。例えば、歩行者検出をするような用途の分析に用いられる画像処理プロセッサーには、100GOPS(Giga (109) operations per second)以上の演算能力が必要と言われている。歩行者の検出精度を高めたり、或いは遠くの歩行者を検出したりするには、ビデオカメラが出力する映像信号から示される細部の状況を検出して、判定する必要がある。細部の状況を判定できる解像度を基準にすると、ビデオカメラの解像度を高め、映像信号を構成する画素数を増やす必要がある。それに伴って画像分析に必要な演算量は扱う画素数にほぼ比例して増大する。そのため、より高速な画像処理プロセッサーが必要になる。
また、安全性を高めるには歩行者をより短時間で検出しなければならず、それには検出周期を短くし、1秒当たりに処理するフレーム数を増やす必要がある。フレーム数を増やすと、画像分析に必要な演算量は扱うフレーム数に比例して増大するので、画像処理プロセッサーの更なる高速化が要求されている。
Some electronic computing devices that perform large-capacity arithmetic processing are used for image processing. A system in which such an electronic computing device performs arithmetic processing in real time is shown as an example.
There is a system that assists safe driving by performing image processing based on video obtained by a video camera mounted on an automobile and presenting a detected result to a driver. An electronic computer (image processor) used in such a system is mounted on a car together with a video camera, and analyzes video (for example, 640 pixels × 480 pixels, 10 frames / second) from the video camera. For example, it is said that an image processor used for analysis of applications such as pedestrian detection needs to have a computing capacity of 100 GOPS (Giga (10 9 ) operations per second) or more. In order to improve the detection accuracy of pedestrians or to detect pedestrians far away, it is necessary to detect and determine the detailed situation indicated from the video signal output by the video camera. Based on the resolution that can determine the details of the situation, it is necessary to increase the resolution of the video camera and increase the number of pixels constituting the video signal. Accordingly, the amount of calculation required for image analysis increases in proportion to the number of pixels handled. Therefore, a faster image processor is required.
Moreover, in order to improve safety, a pedestrian must be detected in a shorter time, which requires a shorter detection cycle and an increased number of frames to be processed per second. When the number of frames is increased, the amount of computation required for image analysis increases in proportion to the number of frames to be handled, and thus further speeding up of the image processor is required.
一方で、車載環境では供給できる電力に限りがあるので、低消費電力(数ワット以下)で動作することが必須であり、消費電力の増大を無視してプロセッサーを高速化することはできない。
近年、パーソナルコンピュータ(PC)などに使われる、汎用プロセッサー(汎用CPU)の性能が飛躍的に向上した(10Gflops程度)。それでも上記用途に必要とされる性能と比較すると、性能不足であり、かつ消費電力が数10W(ワット)にもなるので車載用途には使えない。
PC用の高性能画像処理専用のプロセッサーとして、例えば米国nVIDIA社からGPGPU(General Purpose computing on Graphics Processing Unit)と呼ばれる半導体装置が市販されている。この半導体装置に搭載されるプロセッサーの公称演算性能は数100Gflosであり十分と推定されるが、消費電力が多大(数10W(ワット))であり、また画像処理専用のプロセッサーであるが映像データを生成する用途向きであり、歩行者検出のような用途には不向きである。
On the other hand, since there is a limit to the power that can be supplied in an in-vehicle environment, it is essential to operate with low power consumption (several watts or less), and the speed of the processor cannot be increased by ignoring the increase in power consumption.
In recent years, the performance of general-purpose processors (general-purpose CPUs) used in personal computers (PCs) has improved dramatically (about 10 Gflops). Still, compared with the performance required for the above applications, the performance is insufficient and the power consumption is several tens of watts (watts), so it cannot be used for in-vehicle applications.
As a processor dedicated to high-performance image processing for a PC, for example, a semiconductor device called GPGPU (General Purpose Computing on Graphics Processing Unit) is commercially available from nVIDIA, USA. Although the nominal computing performance of the processor mounted on this semiconductor device is estimated to be several hundreds Gflos, it is estimated to be sufficient, but the power consumption is large (several tens of watts), and it is a processor dedicated to image processing, but video data It is suitable for use and is not suitable for uses such as pedestrian detection.
消費電力が数ワットと少ないプロセッサーとしては、例えば、株式会社ルネサステクノロジ社の組み込み用プロセッサーSH4シリーズなどがあるが、演算性能が2Gflops未満と低過ぎる。
これらの状況から、低消費電力で非常に高い演算処理性能を達成する計算機アーキテクチャを有する画像処理プロセッサーが開発されている。その一例として、車載用画像処理を目的とする画像処理プロセッサーがある。その画像処理プロセッサーは、動作周波数を低く抑えた消費電力が非常に小さい要素プロセッサーエレメント(要素PE)を、1個のLSIに多数個集積して並列処理する構成となっている。例えば、日本電気株式会社が開発したIMAPCARなどである(例えば、非特許文献1)。
As a processor with low power consumption of several watts, for example, there is an embedded processor SH4 series of Renesas Technology Corp., but the calculation performance is too low at less than 2 Gflops.
Under these circumstances, an image processor having a computer architecture that achieves extremely high arithmetic processing performance with low power consumption has been developed. One example is an image processor intended for in-vehicle image processing. The image processor has a configuration in which a large number of element processor elements (element PEs) with a very low power consumption with a low operating frequency are integrated and processed in one LSI. For example, IMAPCAR developed by NEC Corporation (for example, Non-Patent Document 1).
ところで、一般的に、並列処理プロセッサーを実際に動作させた時に得られる実効性能は、そこに内蔵されている演算器(ALU)の総数と、それらの動作周波数との掛け算で得られる公称値に比べてかなり低い。実効性能が低下する主な原因は、演算器が必要とするデータを適当なタイミングで供給できなかったり、或いは演算結果を直ぐに格納できなかったりして演算器に遊びが生じるからである。並列処理プロセッサーを実際に動作させたときに得られる実効性能を高めるには途切れなく演算器へデータを供給し、同時に演算結果を迅速に適当な場所へ格納できるようにする構成が必要とされる。 By the way, in general, the effective performance obtained when a parallel processor is actually operated is the nominal value obtained by multiplying the total number of arithmetic units (ALU) incorporated therein and their operating frequencies. It is considerably low compared. The main cause of the decrease in effective performance is that data required by the arithmetic unit cannot be supplied at an appropriate timing, or the arithmetic result cannot be stored immediately and play occurs in the arithmetic unit. In order to increase the effective performance obtained when the parallel processing processor is actually operated, it is necessary to supply data to the computing unit without interruption, and at the same time to store the result of the operation quickly in an appropriate location. .
多数の要素PEを並列動作させる方式にはSIMD(Single Instruction Multi Data)型、MIMD(Multi Instruction Multi Data)型及びVLIW(Very Long Instruction Word)型などのアーキテクチャがあるが、車載用画像処理用途では低コストと高いパフォーマンス性を併せ持つ必要があることから、SIMD型にVLIW型を組み合わせた前述のIMAPCARの方式が優れている。
SIMD型画像処理プロセッサーの構成例を図12に示す。SIMD型並列計算装置では、同じ命令で全ての要素PEが同時に動作するという構造上、各要素PEが一斉にデータ読み込んだり、一斉にデ−タを出力したりする。例えば、1つのLSIの中に128個の要素PEが在り、これらが100MHz(メガヘルツ)のクロックで動作して一斉に8ビットのデータを1つ要求したとすると、瞬間的に必要なデータ転送速度は、100MHz×1B×128 = 12.8GB(ギガバイト)/秒である。これは実現困難なデータ転送速度ではないが、外部回路も含めてコスト上昇と消費電力の増大を招いてしまう。そこで、図の構成では要素PE毎にローカルメモリを設け、それらと要素PEとの間を専用バスで接続している。このような構成にすることで、各要素PEとローカルメモリ間で必要なデータ転送速度は最大100MB(メガバイト)/秒になる。
There are SIMD (Single Instruction Multi Data) type, MIMD (Multi Instruction Multi Data) type and VLIW (Very Long Instruction Word) type architectures for parallel operation of multiple element PEs. Since it is necessary to have both low cost and high performance, the above-mentioned IMAPCAR method combining the VLIW type with the SIMD type is superior.
A configuration example of the SIMD type image processor is shown in FIG. In the SIMD type parallel computing device, all the element PEs simultaneously read data or output data all at once because of the structure that all the elements PE operate simultaneously with the same instruction. For example, if there are 128 element PEs in one LSI, and these operate on a 100 MHz (megahertz) clock and request one 8-bit data at a time, the instantaneous data transfer rate required Is 100 MHz × 1B × 128 = 12.8 GB (gigabytes) / second. This is not a difficult data transfer speed, but it also increases costs and power consumption including external circuits. Therefore, in the configuration shown in the figure, a local memory is provided for each element PE, and these and the element PE are connected by a dedicated bus. With this configuration, the required data transfer rate between each element PE and local memory is a maximum of 100 MB (megabytes) / second.
一方、処理すべきデータは先ずLSI外部の素子から供給され、処理結果はLSI外部へと取り出されなければならない。先に上げた例(640画素×480画素、10フレーム/秒)で入力画像が白黒で8bit/画素であるとすると、入力データのデータ転送速度は 640×480×10/s×1B = 3.1MB/秒であり、入力データ線を8本使えば3.1MHzのクロックで入力できる。この程度のデータ入力速度は容易に達成できる。また、一般的に画像処理では、出力データのデータ量は入力データと同程度なので、これも容易に出力できる。 On the other hand, data to be processed must first be supplied from an element outside the LSI, and the processing result must be extracted outside the LSI. Assuming that the input image is 8 bits / pixel in black and white in the example (640 pixels x 480 pixels, 10 frames / second), the data transfer rate of the input data is 640 x 480 x 10 / s x 1B = 3.1MB / Sec. If you use 8 input data lines, you can input with 3.1MHz clock. This level of data input speed can be easily achieved. In general, in image processing, the amount of output data is almost the same as that of input data, so that it can be easily output.
また、非特許文献1の技術によれば、IMAPCARの要素PEは、4つのサブプロセッサー(以後SPE)を持つVLIW型である(図13参照)。4つのサブPEは機能分化している。すなわち、ローカルメモリとのデータ入出力又は加算を担当するサブPE(図中MEM/Add)、論理演算を担当するサブPE(同Logic)、算術論理演算を担当するサブPE(同ALU)、及び乗算を担当するサブPE(同Multiplier)である。4つのサブPEに共通に28個のジェネラルレジスタ(GR)を備える。この構成では次に示す3つの問題点がある。
一つ目の問題は、ローカルメモリとのデータ入出力が1つのサブPEでしか行えないので、メモリアクセスが集中するとデータ入出力が間に合わなくなったり(メモリデータバスのバンド幅の不足)、逆にメモリアクセスや加算が殆ど無い時は、このサブPEが遊んでしまったりする点である。
二つ目の問題は、1つのサブPEを乗算に固定しているが、画像処理において乗算を行う頻度はそれほど多くなく、このサブPE(同Multiplier)が遊んでしまう可能性が高いことである。これらの問題により、常に4つのサブPEをアクティブ(遊びが無い状態)に保ち続けることは難しい。
三つ目の問題は、28個のGRにある。
非特許文献2における 5.3節によれば、サブPEで実行される命令のオペランドは、ソース2、ディスティネーション1の3オペランドである。GRは28個在るのでオペランド指定にそれぞれ5ビット必要になり、合計では15ビットになる。したがって、VLIW構成とするために4つのサブPEを合わせると、60ビット必要であり、命令コードを格納するメモリの容量が大きくなって、コストが上昇する要因になってしまう。
Further, according to the technique of Non-Patent
The first problem is that data input / output to / from local memory can only be done by one sub-PE, so if memory access is concentrated, data input / output may not be in time (insufficient memory data bus bandwidth), and conversely When there is almost no memory access or addition, this sub-PE is idle.
The second problem is that one sub-PE is fixed to multiplication, but the frequency of multiplication in image processing is not so high, and there is a high possibility that this sub-PE (same Multiplier) will be idle. . Due to these problems, it is difficult to always keep the four sub-PEs active (no play).
The third problem is in 28 GRs.
According to Section 5.3 in
発明は、上記問題を解決すべくなされたもので、その目的は、実効効率の高い並列計算装置を提供することを目的とする。 The present invention has been made to solve the above problems, and an object of the invention is to provide a parallel computing device with high effective efficiency.
上記問題を解決するために、請求項1に記載した発明は、並列して演算処理を行う複数の演算プロセッサー(例えば、実施の形態における演算プロセッサーPE2)と、前記演算プロセッサーのそれぞれに制御信号を供給する命令実行制御部(例えば、実施の形態における命令実行制御プロセッサーPE−I3)と、を備え、前記演算プロセッサーが、複数のデータ又は複数の演算結果を保持する記憶部(例えば、実施の形態におけるローカルメモリ11A〜11D)と、前記記憶部から読み出したデータに演算処理を施し、その結果を前記記憶部に供給する演算部(例えば、実施の形態におけるALU12A〜12C及び12DA)と、を備えるサブプロセッサー(例えば、実施の形態におけるサブプロセッサー(SPE)2A〜2D)を複数備え、複数の前記サブプロセッサーのうち少なくとも2つのサブプロセッサーが同じ構造を有するものであり、同じ構成を有するサブプロセッサーは同一構造サブプロセッサー群(例えば、実施の形態におけるサブプロセッサーグループSPE2G)を構成し、前記命令実行制御部は、前記同一構造サブプロセッサー群に含まれるサブプロセッサーに供給する制御信号を交換して供給する交換部(例えば、実施の形態における交換部33A〜33C)を備えることを特徴とする並列計算装置である。
In order to solve the above problem, the invention described in
請求項2に記載した発明は、前記サブプロセッサーは、前記演算部の一方の入力に接続され、書き込まれる情報を記憶するレジスタ部(例えば、実施の形態におけるAcc13A〜13D)を備え、前記レジスタ部は、通常時は前記演算部による演算結果を記憶し、記憶した演算結果を出力し、前記同一構造サブプロセッサー群は、レジスタ参照部(例えば、実施の形態におけるレジスタ参照部15A〜15C)を備え、前記レジスタ参照部は、前記同一構造サブプロセッサー群に含まれるそれぞれの前記サブプロセッサーが備えるそれぞれの前記レジスタ部からの出力を、前記サブプロセッサーの前記演算部の他方の入力に入力データを供給するレジスタのうち、少なくとも一部のレジスタからの入力として扱う際において、前記レジスタ部と前記入力データを供給するレジスタとの対応付けを変更することができるものであり、前記命令実行制御部は、前記同一構造サブプロセッサー群の各サブプロセッサーに供給する前記制御信号を交換する際には、交換前に、前記入力データを供給するレジスタのそれぞれに対応付けられていた、それぞれの前記レジスタ部に代えて、当該レジスタ部が属する前記サブプロセッサーに交換前に供給されていた前記制御信号を交換後に供給されることとなる前記サブプロセッサーが備える前記レジスタ部を、前記入力データを供給するレジスタにそれぞれ新たに対応付けるように、前記レジスタ参照部を制御するものであることを特徴とする請求項1に記載の並列計算装置である。
According to a second aspect of the present invention, the subprocessor includes a register unit (for example, Acc13A to 13D in the embodiment) that is connected to one input of the arithmetic unit and stores information to be written. Normally stores the calculation result of the calculation unit, and outputs the stored calculation result. The sub- processor group having the same structure includes a register reference unit (for example, the
請求項1から請求項2に記載した発明によれば、並列計算装置は、並列して演算処理を行う複数の演算プロセッサーを備える。演算プロセッサーでは、命令実行制御部がそれぞれに制御命令を供給する。サブプロセッサーは、記憶部が複数のデータ又は複数の演算結果を保持する。演算部は、記憶部から読み出したデータに演算処理を施し、その結果を記憶部に供給する。
また、複数のサブプロセッサーのうち少なくとも2つのサブプロセッサーは同じ構造を有する。それらの同じ構造を有するサブプロセッサーは、同一構造プロセッサー群を形成する。また、命令実行制御部は、交換部が同一構造サブプロセッサー群に含まれるサブプロセッサーに供給する制御信号を交換して供給する。
これにより、記憶部に記憶されたデータを交換したり、参照するデータを切り換えて同様の処理をしたりするためにオペランドの異なる類似のプログラムを用意することもなく、データと処理の組み合わせを交換することができる。
According to the first and second aspects of the invention, the parallel computing device includes a plurality of arithmetic processors that perform arithmetic processing in parallel. In the arithmetic processor, the instruction execution control unit supplies a control instruction to each. In the sub processor, the storage unit holds a plurality of data or a plurality of calculation results. The arithmetic unit performs arithmetic processing on the data read from the storage unit and supplies the result to the storage unit.
In addition, at least two of the plurality of sub processors have the same structure. Those sub-processors having the same structure form an identical structure processor group. The instruction execution control unit exchanges and supplies control signals supplied from the exchange unit to the sub processors included in the same structure sub processor group.
This allows you to exchange combinations of data and processing without exchanging data stored in the storage unit or preparing similar programs with different operands to switch referenced data and perform similar processing. can do.
(第1実施形態)
図を参照し、並列計算装置の一実施形態について示す。
図1は、本発明の実施形態を示す概略ブロック図である。
この図に示される並列計算装置1は、複数の演算プロセッサー(「要素PE」ともいう)によって並列演算処理を行う。本実施形態の詳細な説明に先立ち、並列計算装置1の構成概要について説明する。
並列計算装置1における演算プロセッサー(PE)2−0〜2−106(まとめて「演算プロセッサー(PE)2」という。)、及びPE2のそれぞれに制御命令を供給する命令実行制御プロセッサー(PE−I)3を含んで構成されている。
また、並列計算装置1は、入出力プロセッサー(IOP)4、命令メモリ5、データ入力シフトレジスタ6、データ出力シフトレジスタ7及び外部メモリ9を備える。
(First embodiment)
An embodiment of a parallel computing device will be described with reference to the drawings.
FIG. 1 is a schematic block diagram showing an embodiment of the present invention.
The
Operation processors (PE) 2-0 to 2-106 (collectively referred to as “operation processors (PE) 2”) in the
The
演算プロセッサー2は、それぞれが4個のサブプロセッサー(SPE)2A〜2Dを有する。
SPE2A〜2Dは、それぞれが異なる命令を実行するVLIW(Very Long Instruction Word)型の構成を有している。それぞれのPE2では、SPE2A〜2Dが組み合わされた同じ構成で形成される。また、全てのPE2が有する107個のSPE2Aは、SIMD(Single Instruction Multi Data)型で構成され、全てのSPE2Aで同一の命令を実行する。また、SPE2B、SPE2C、SPE2Dについても同様に、それぞれがSIMD型で構成される。
それらのSPE2A〜2Dは、構成の異なるSPEを組み合わせて構成される。演算プロセッサー2における演算処理を行うSPE2AからSPE2Cと、演算処理のほかに外部との入出力などの構成を備えるSPE2Dの組み合わせを例にして説明する。なお、同じ構成を有するSPE2AからSPE2Cの組み合わせをサブプロセッサーグループ2Gという。
Each of the
Each of the
These
PE−I3は、PE2の命令の実行順序を制御する。
PE−I3は、PE2のプログラムにおけるループ処理やサブルーチンコールなどの条件分岐を必要とする処理の制御を行う。PE-I3及びPE2の命令をアセンブラプログラムで記述すると、SPE2AからSPE2D及びPE-I3の命令の5命令を並列に実行するVLIW型の命令として記述される。
The PE-I3 controls the execution order of the instructions of the PE2.
The PE-
IOP4は、PE2外部との入出力を行う。
SIMD+VLIW型の並列計算装置1で実行されるプログラムコードは、計算開始前にIOP4によって外部メモリ9から予め読み込まれ、PE-I3に付属する命令メモリ5に書き込まれる。その後、IOP4がPE-I3に計算開始信号を送ると、PE-I3は命令メモリから自分自身で実行する命令と、SPE2AからSPE2Dで実行すべき4個の命令とを読み出して演算を開始する。演算対象のデータはIOP4によって外部から取り込まれ、データ入力シフトレジスタ6を介して、PE2−0からPE2−106のプロセッサーに分割して転送される。また、演算結果は、データ出力シフトレジスタ7を介してIOP4によって各PE2から読み出され、外部メモリ9へ転送され、PE2の外部に出力される。
The IOP4 performs input / output with the outside of the PE2.
The program code executed by the SIMD + VLIW type
データ入力シフトレジスタ6及びデータ出力シフトレジスタ7は、並列計算装置1のPE2で演算を行うデータの入力及び出力を行う。データ入力シフトレジスタ6は、IOP4を介して入力されたデータをシフトレジスタの機能により、シリアルで順次入力されるデータに対応するPE2が配置されている位置までシフトする。また、データ出力シフトレジスタ7は、各PE2でそれぞれで演算処理された結果を、PE2が配置されている位置からIOP4までシフトして、IOP4を介して出力する。
このように、複数のPE2は、並列して演算処理及び入出力処理を行うことができる。
The data
In this way, the plurality of
図2は、本発明の並列計算装置1におけるPE2の構成を示すブロック図である。
この図に示される並列計算装置1は、PE2−kと、PE2−kを挟んで配置されるPE2−(k−1)とPE2−(k+1)、PE−I3、IOP4、命令メモリ5、データ入力シフトレジスタ6、データ出力シフトレジスタ7が示される。図1と同じ構成には同じ符号を付す。
FIG. 2 is a block diagram showing the configuration of the
The
PE2−kは、隣接するPE2−(k−1)とPE2−(k+1)と同じ構成を有することから、PE2−k(以下、隣接関係を特に示さない限り「PE2」と示す。)を参照して構成を示す。
PE2は、4個のサブプロセッサー(SPE)2A〜2Dのほか、レジスター2Mを有する。また、SPE2AからSPE2Cは、同じ構成を有し、サブプロセッサーグループSPE2Gを形成する。
Since PE2-k has the same configuration as adjacent PE2- (k-1) and PE2- (k + 1), see PE2-k (hereinafter referred to as "PE2" unless otherwise indicated). To show the configuration.
The
レジスター2Mは、演算に必要なデータの一時記憶用の記憶領域である。レジスター2Mは、内部に12個のレジスター(R4〜R15)を備える。レジスター2Mは、各SPEから参照され、また書き込みが行われる。
The
SPE2Aは、ローカルメモリー(LM)11A、ALU12A、Acc13A、セレクタ(Sel)14A及びレジスタ参照部(Sel)15Aを備える。同様に、SPE2Bは、ローカルメモリー(LM)11B、ALU12B、Acc13B、セレクタ(Sel)14B及びレジスタ参照部(Sel)15Bを備える。SPE2Cは、ローカルメモリー(LM)11C、ALU12C、Acc13C、セレクタ(Sel)14C及びレジスタ参照部(Sel)15Cを備える。
The
まず、SPE2A〜2Cの構成についてSPE2Aを代表して説明する。
SPE2Aにおいてローカルメモリー11Aは、例えば、512 × 8b(ビット)の構成を有するメモリであり、演算処理の入力データ及び演算結果を記録する。
Acc13Aは、ALU12Aの演算結果が書き込まれ、また、ALU12A〜12Dから参照されるアキュムレータである。
セレクタ14Aは、ALU12Aへの入力を選択する。
ALU12Aは、入力されるデータに基づいて所定の演算処理を行う。ALU12Aの一方の入力は、Acc13Aからのデータが供給される。ALU12Aの他方の入力は、セレクター14Aにより選択されたデータが供給される。
セレクター14Aによって選択されるデータは、レジスタ2M、Acc13AとAcc13BとAcc13CとAcc13D、ローカルメモリー11Aに記憶されたデータのいずれかである。
First, the structure of SPE2A-2C is demonstrated on behalf of SPE2A.
In the
The
The
The
The data selected by the
ALU12Aによる演算結果は通常はAcc13Aに書き込まれるが、Acc13Aのデータをレジスター2Mへ転送する命令を使って、レジスター2M内のレジスターR4〜R15のいずれかを選択して演算結果を書き込む。また、Acc13Aのデータをメモリー11Aへ転送する命令を使って、メモリー11A内の記憶領域のいずれかを選択して書き込む。
レジスタ参照部15Aは、PE−I3からの制御信号により、セレクタ14Aに出力するデータを選択する。選択できるデータは、Acc13A〜Acc13Cのデータである。セレクタ14Aにおける選択条件を変更することなく、レジスタ選択部15Aの選択を変更することによって、Acc13A〜Acc13Cのデータを参照することが可能になる。
SPE2B〜SPE2Cは、SPE2Aの構成と対応する構成を有する。
The calculation result by the
The
SPE2B to SPE2C have a configuration corresponding to the configuration of SPE2A.
続いて、SPE2A〜SPE2Cと異なる構成を有するSPE2Dについて示す。
SPE2Dは、ローカルメモリー11D、演算部12、Acc13D及びセレクタ14D、データ入力バッファ(SIN_reg)16、データ出力バッファ(SOUT_reg)17、PE出力レジスタL(PE-out-L)18、PE出力レジスタR(PE-out-R)19を備える。このように、SPE2Dは、他のSPE2A〜SPE2Cと異なる独自の構成を有しており、レジスタ参照部を備えていないことも、前述のSPE2A〜SPE2Cとの相違点になる。
Subsequently, SPE2D having a configuration different from SPE2A to SPE2C will be described.
The SPE2D includes a
SPE2Dが有する構成を、SPE2Aと対比して示す。
SPE2Dにおけるローカルメモリー11Dは、ローカルメモリー11Aに相当する。
演算部12Dは、ALU12DA、乗算器12DM、セレクタ12DSを備える。ALU12DAは、ALU12Aに相当し、出力はセレクタ12DSを介してACC13Dに入力される。乗算器12DMは、ALU12DAと同じ入力信号が設定され、入力されるデータの乗算を行う。セレクタ12DSは、ALU12DA又は乗算器12DMの演算結果を選択的にAcc13Dに出力する。Acc13Dは、Acc13Aに相当する。
セレクタ14Dは、セレクタ14Aと同じレジスタ2M、Acc13AとAcc13BとAcc13CとAcc13D、ローカルメモリー11Dに記憶されたデータのほかに、データ入力バッファ16を介して入力されるデータ入力シフトレジスタ6からの入力データ、隣接するPE2−(k−1)やPE2−(k+1)からの入力データがある。
The configuration of SPE2D is shown in comparison with SPE2A.
The
The
The
データ入力バッファ16は、PE2に入力されたデータを各PE2にセットするデータ入力シフトレジスタ6からの入力を一時的に保持する。データ出力バッファ17は、演算された結果をPE2から出力する際に、データ出力シフトレジスタ7に出力するデータを一時的に記憶し、データ出力シフトレジスタ7によって読み出しが行われる。
PE出力レジスタL18とPE出力レジスタR19は、隣接するPE2に出力するデータを一時的に記憶する。
PE出力レジスタL18やPE出力レジスタR19に記憶されたデータは、隣接するPE2におけるSPE2Dから参照される。
PE出力レジスタL18は、図の左隣に隣接するPE2−(k−1)にデータを出力する。PE出力レジスタR19は、図の右隣に隣接するPE2−(k+1)にデータを出力する。
このように、SPE2Dは、乗算を含んだ演算処理とPE2外部とのデータ交換処理を選択的に処理できる。
The
The PE output register L18 and the PE output register R19 temporarily store data to be output to the adjacent PE2.
The data stored in the PE output register L18 and the PE output register R19 is referred to from the SPE2D in the adjacent PE2.
The PE output register L18 outputs data to the adjacent PE2- (k-1) on the left side of the drawing. The PE output register R19 outputs data to the adjacent PE2- (k + 1) on the right side of the drawing.
In this way, the SPE2D can selectively process the arithmetic processing including multiplication and the data exchange processing outside the PE2.
以上に示したSPE2A〜2Dにより、ローカルメモリ11A〜11Dは、各SPEに分割して配置される。この図に示した例では、その容量は512 x 8b(ビット)の単位で4分割されているものとする。ローカルメモリ11A〜11Dの合計容量は、分割せずにっまとめて配置される2k x 8b(ビット)と同じ記憶容量であるが、分割して配置したことにより、それぞれのSPEで同時にアクセスできるようになり、PE2におけるローカルメモリに対するデータ転送能力は、4倍になる。この構成により、全てのSPEが待ち時間なしでメモリアクセスできるようになり、さらに、マルチポートメモリを使う場合に生じるアクセスの衝突問題を回避できる。ただし、これらの利点と引き換えに、2k x 8b(ビット)のメモリを1つ配置する場合よりも、ローカルメモリ11A〜11Dの配置に必要な面積は若干増大する。
With the
ローカルメモリ11A〜11Dは、それぞれ内部にアドレスレジスタを備えている。SPE2A〜2Dにおいて、ローカルメモリ11A〜11Dをアクセスする場合は、先ずアドレス情報を図示されないアドレスレジスタにセットし、次にメモリへの書き込みか、或いはメモリからの読み出しを行う。ローカルメモリ11A〜11Dにアクセスする度にアドレスレジスタを設定し直すのでは効率が悪くなる。そこで、通常のメモリアクセス命令とは別に、アクセス後に自動的にアドレスレジスタに設定されたアドレスが1増える命令と、1減る命令とを用意する。このようなアドレスレジスタを用いることにより、メモリアクセス時に必要な命令数を減らすことができ、画像処理のようにメモリアクセスが多くなる処理では、メモリアクセスの効率を改善することができる。
Each of the
また、全てのSPEには、ALU12A〜12DAをそれぞれ備えているので、どのSPEにおいても算術論理演算処理ができる。更に、SPE2Dには乗算器(Mul)12DMを備えており、乗算処理が可能である。この構成により、各SPEはそれぞれ算術論理演算処理を並列に行えることから、コンパイラによる命令割付の自由度が大幅に向上する。
In addition, since all SPEs are respectively provided with
また、各SPE2は、ジェネラルレジスタ方式ではなく、アキュムレータ方式である。即ち、それぞれのALU12A〜ALU12DAの一方の入力は、アキュムレータ(Acc)に固定され、また、ALU12A〜ALU12DAの出力先はそれぞれのAcc13A〜13Dである。ALU12A〜ALU12DAの他方の入力だけが、命令に応じてデータの参照先を指定できる。
PE2は、演算に必要なデータの一時記憶用に用いられるレジスタ2Mを備える。通常は、レジスタ2MからALU12A〜12DAへデータが供給される。このアーキテクチャにより、このレジスタを参照する命令に必要なオペランドが4ビットと少なくでき、4つのSPE2A〜2Dを独立して制御する場合でも、合計16ビットで構成できるので非常にコンパクトになる。
Each
The
続いて各SPEにおけるアキュムレータ(Acc)選択制御処理について示す。
Acc13A〜Acc13Dは、各ALUからの参照が可能な4つのレジスタ(レジスタR0〜R3)である。Acc13A〜Acc13Dは、それぞれのSPEに分散して配置されるが、他のSPEから参照して読み出すことができる。
ただし、SPE2A〜2Cにおいて、Acc13A〜Acc13CとAcc13Dとは、参照方法が異なる。
Acc13A〜Acc13Cは、レジスタ参照部15A〜15Cによって選択され、次にAcc13Dやレジスタ2Mなどと共にセレクタ14A〜14Dによって選択されてALU12A〜ALU12DAの片側に入力される。
Acc13Dは、レジスタ2Mなどと共にセレクタ14A〜14Dによって選択されてALU12A〜12DAの片側に入力される点が異なる。
Next, accumulator (Acc) selection control processing in each SPE will be described.
Acc13A to Acc13D are four registers (registers R0 to R3) that can be referenced from each ALU. Although Acc13A to Acc13D are distributed and arranged in each SPE, they can be read by referring to other SPEs.
However, in SPE2A to 2C, Acc13A to Acc13C and Acc13D have different reference methods.
Acc13A to Acc13C are selected by the
Acc13D is different in that it is selected by the
セレクタ14A〜14Dの選択により、各ALUから参照されるレジスタR3は、常にAcc13Dに対応しているが、レジスタR0〜R2は、レジスタ参照部15A〜15Cが設定される状態により参照先を変更できるようになる。そのため、レジスタR0〜R2は、レジスタ参照部15A〜15Cの設定によってAcc13A〜Acc13Cのいずれかに変化する。
レジスタR4〜R15へのデータの書き込みは、Acc13A〜Acc13Dからのデータ転送命令によって行われる。同一レジスタへの同時書き込みは、コンパイラで容易に回避できる。また、レジスタR4〜R15へのデータの書き込みは上記の命令でしか実行できないので、同一レジスタからの読み出しと書き込みが同時に起こる場合でも、データのバイパスを設けるなどでタイミング問題を容易に回避できる。
なお、演算部12D並びに乗算器12DMへの入力は、前述のALU12DAの説明を参照する。
The register R3 referenced from each ALU always corresponds to Acc13D by the selection of the
Data writing to the registers R4 to R15 is performed by a data transfer command from Acc13A to Acc13D. Simultaneous writing to the same register can be easily avoided by the compiler. In addition, since data writing to the registers R4 to R15 can be executed only by the above-mentioned instruction, even when reading and writing from the same register occur simultaneously, a timing problem can be easily avoided by providing a data bypass.
For the input to the
図を参照し、画像データを入出力する処理について示す。
図3は、画像データの入力処理のタイミングチャートである。
SPE2Dには、PE2の外部とデータを入出力するための構成を有している。
入力画像データは、IOP4によって取り込まれ、データ入力シフトレジスタ(Serial-in)6にシフトされながら設定される。PE2がリセット(初期化)された直後(時刻ti0)はデータ入力シフトレジスタ6が空であることを示すフラグSin-emtyが1に、また、データ入力シフトレジスタ6にデータが準備できたことを示すフラグSin-rdyが0になっている。計算を開始するとIOP4はデータ入力シフトレジスタ6へデータを書き込む前にSin-emtyが1になるのを待つ(時刻ti1)が、既にSin-emtyが1なので直ぐにデータ転送を始める(時刻ti2)。
A process for inputting and outputting image data will be described with reference to the drawings.
FIG. 3 is a timing chart of image data input processing.
The SPE2D has a configuration for inputting / outputting data to / from the outside of the PE2.
Input image data is captured by the
一方、PE−I3はSin-rdyが1になるのを待ってウェイト状態になる(時刻ti2)。PE−I3がウェイト状態になると同時に、全てのSPEがウェイト状態に入る。IOP4はデータ入力シフトレジスタ6に1ライン分のデータ転送を終了するとSin-rdyを1にする(時刻ti4)。するとPE−I3はウェイト状態から抜け出して(時刻ti5)、1クロックでデータ入力シフトレジスタ6からデータ入力レジスタ(SIN-reg)16へデータを転送すると同時にSin-rdyをクリアし、更にSin-emtyを1にしてIOP4にデータ入力シフトレジスタ6が空になったことを知らせる(時刻ti8)。データ入力バッファー(SIN-reg)16にデータが用意できると、それをSPE2Dの処理により読み出されて、ローカルメモリに蓄積したり、或いは即座に計算処理に使ったりできる。
On the other hand, PE-I3 waits for Sin-rdy to become 1 (time t i 2). As soon as PE-I3 enters the wait state, all SPEs enter the wait state. The
一方、IOP4は1ライン分のデータを転送した後で他にするべき処理が無くなるとウェイト状態に入って、次のラインのデータを転送するためにSin-emtyが1になるのを待っつ(時刻ti7)。Sin-emtyが1になるとIOP4は再びデータ入力シフトレジスタ6へのデータ転送を開始する。
On the other hand, IOP4 enters the wait state when there is no other processing after transferring the data for one line, and waits for Sin-emty to become 1 to transfer the data for the next line ( Time t i 7). When Sin-emty becomes 1, the
Sin-emtyは、IOP4が適当なタイミングでクリアする(時刻ti3)。この手順により、IOP4からのデータ書き込みとPE2での計算処理とが同期し、更にPE2での計算処理と画像データの入力作業とを並行させて実行できる。
Sin-emty is cleared by IOP4 at an appropriate timing (time t i 3). By this procedure, the data writing from the
図4は、IOP4を介して外部へデータを出力する処理のタイミングチャートである。
PE2がリセットされた直後は、データ出力バッファ(SOUT-reg)17が空であることを示すフラグSOUT-emtyが1に、また SOUT-regにデータが準備できたことを示すフラグSOUT-rdyが0になっている(時刻to0)。計算を開始すると、IOP4はSOUT-rdyが1になるのを待ってウェイト状態になる(時刻to1)。
一方、PE−I3はSOUT-emtyが1になるのを待つウェイト状態になろうとするが、既にSOUT-emtyが1なのでウェイトには入らない(時刻to1)。そして、PE−I3がSOUT-emtyをクリアすると同時に、SPE2DがSOUT-regに出力データを蓄積し始める(時刻to3)。
出力すべきデータの準備できると、PE−I3はSOUT-rdyを1にする(時刻to4)。するとIOP4はウェイト状態から抜け出して(時刻to7)、1クロックでSOUT-regからSerial-outへデータを転送すると同時にSOUT-rdyをクリアし、更にSOUT-emtyを1にしてPE−I3にSOUT-regが空になったことを通知する(時刻to8)。その後、IOP4はSerial-outをシフトしながらデータを読み出して、LSIの外部へと転送する(時刻to8)。この手順により、PE2でのデータ処理と、IOP4によるLSI外部へのデータ出力とを同期させ、更にこれらの処理を並行して実行できる。
FIG. 4 is a timing chart of a process for outputting data to the outside via the IOP4.
Immediately after PE2 is reset, the flag SOUT-emty indicating that the data output buffer (SOUT-reg) 17 is empty is set to 1, and the flag SOUT-rdy indicating that data is ready in SOUT-reg is set. 0 (time to0). When the calculation is started, the
On the other hand, PE-I3 tries to enter a wait state waiting for SOUT-emty to become 1, but does not enter the wait because SOUT-emty is already 1 (time to1). Then, at the same time as PE-I3 clears SOUT-emty, SPE2D starts to accumulate output data in SOUT-reg (time to3).
When the data to be output is prepared, PE-I3 sets SOUT-rdy to 1 (time to4). Then, IOP4 exits the wait state (time to7), transfers data from SOUT-reg to Serial-out in one clock, clears SOUT-rdy at the same time, sets SOUT-emty to 1, and sets SOUT-em to PE-I3. Notify that reg is empty (time to8). Thereafter, the
この他に、隣り合ったPE2間でデータを転送するために、PE出力レジスタLレジスタ18とPE出力レジスタRレジスタ19が在る。左側即ちPE2の番号が小さいPE2へ渡したいデータは、SPE2DがそれをPE出力レジスタLレジスタ18に書くと、次の命令以降で左隣のSPE2Dが読み出せる。同様に、右側即ちPE2の番号が大きいPE2へ渡したいデータは、SPE2DがそれをPE出力レジスタRレジスタ19に書き込むと、次の命令以降で右隣のSPE2Dが読み出せる。
以上述べてきたように、図2に示す構成を用いることにより、ローカルメモリへのアクセスにおけるバンド幅の不足や各SPEを命令実行状態に保ち続けることに効果がある。
In addition, there are a PE output
As described above, the use of the configuration shown in FIG. 2 is effective in lacking bandwidth in accessing the local memory and keeping each SPE in the instruction execution state.
さらに、画像処理用途に適用する際に、生じるローカルメモリへのアクセスにおけるバンド幅の不足の問題を解決する技術について説明する。
図5は、本発明の実施形態における演算処理に入力される映像信号の例を示す。
入力される映像信号は、図に示されるように640画素×480画素を2次元に配列した画素で構成される画面によって示される白黒画像を表している。1画素は、8ビットで構成され、各画素の明るさに応じた階調が示される。
Furthermore, a technique for solving the problem of insufficient bandwidth in access to a local memory that occurs when applied to an image processing application will be described.
FIG. 5 shows an example of a video signal input to the arithmetic processing in the embodiment of the present invention.
As shown in the figure, the input video signal represents a black and white image displayed by a screen composed of pixels in which 640 pixels × 480 pixels are two-dimensionally arranged. One pixel is composed of 8 bits, and a gradation corresponding to the brightness of each pixel is indicated.
続いて、画像処理特有の処理についての問題と対策について説明する。
並列計算装置1には、映像信号がビデオカメラから1ライン分の640画素を単位として、ラインごとに480回に分けてデータが入力される。入力されたデータは、PE2−0からPE2−106の107個のPE2に分割して格納され、各PE2が分担して演算処理をする。
ところで、画像処理では、特定の画素を定め、その画素に対し、2次元平面で示す座標軸方向に隣接する上下左右方向の画素のデータを参照することが多い。
頻繁に参照される上下左右の画素のデータを効率よくアクセスできないと、処理が煩雑になり処理速度が低下する。
最初に、水平方向に並んだ左右の画素を効率よく扱うための方法を説明する。
各PE2は、入力されたデータの内、分割された6画素分のデータを担当する(107×6 = 642)。しかし、自ら担当する6画素しかローカルメモリに格納しないと、頻繁に両隣のPE2との間でデータの受け渡しが発生して効率が悪くなる。そこで各PE2は、両隣が格納すべきデータを1画素分ずつ重複して格納することにする。各ローカルメモリは、1ライン当たり8画素を記憶することにする。
Next, problems and countermeasures regarding processing unique to image processing will be described.
Data is input to the
By the way, in image processing, a specific pixel is defined, and data of pixels in the vertical and horizontal directions adjacent to the pixel in the coordinate axis direction indicated by a two-dimensional plane is often referred to.
If the data of the upper, lower, left, and right pixels that are frequently referred to cannot be accessed efficiently, the processing becomes complicated and the processing speed decreases.
First, a method for efficiently handling the left and right pixels arranged in the horizontal direction will be described.
Each
続いて、垂直方向に並んだ上下の画素を効率よく扱うための方法を説明する。上下方向の画素は、ライン単位で扱われることからライン間の参照として説明する。
各SPEに配置されるローカルメモリ11A〜11Dの容量は512×8b(ビット)なので、それぞれのSPEが備える1つのローカルメモリには、一度に64ライン(= 512÷8(画素))分のデータを格納できる。PE2内にローカルメモリは、4個あるので、最大で256ライン分のデータを同時に格納できるが、1画面は480ラインなので1画面分のデータまでを格納することはできない。
画像処理では画像を狭い領域ごとに区切って演算対象にすることが多いため、入力されるデータを例えばSPE2Aのローカルメモリ11Aだけに順に格納すると、演算する時にSPE2Aのローカルメモリ11Aだけが頻繁に読み出され、メモリを分散配置して得られたデータ転送能力を生かせないことになる。
Next, a method for efficiently handling the upper and lower pixels arranged in the vertical direction will be described. Since the pixels in the vertical direction are handled in units of lines, they will be described as a reference between lines.
Since the capacity of the
In image processing, an image is often divided into narrow areas to be subject to calculation. Therefore, if input data is stored in order, for example, only in the
また、一度に65ライン分以上のデータを格納しようとすると、初めの64ライン分と次の64ライン分のデータを別々のメモリに格納しなければならず、データを格納するためのプログラムだけでなく、そのデータを使うプログラムも、条件判断処理を行うため複雑になってしまう。
このように、単にローカルメモリを分割して配置するだけでは、メモリアクセスのバンド幅を広げることはできず、また65ライン分以上のデータを格納して処理しようとすると、処理プログラムが複雑化するという新たな問題が生じてしまう。
Further, if data for 65 lines or more is to be stored at a time, the data for the first 64 lines and the data for the next 64 lines must be stored in separate memories, and only a program for storing the data is required. In addition, the program that uses the data becomes complicated because the condition determination process is performed.
In this way, the bandwidth of memory access cannot be expanded simply by dividing and arranging the local memory, and the processing program becomes complicated when trying to store and process data for 65 lines or more. A new problem arises.
ここで、ローカルメモリへアクセスするためのアドレスレジスタについて説明する。
図6は、アドレスレジスタの構成を示す図である。この図に示されるアドレスレジスタには、モード0〜モード2として選択できる3つのモードを設定できる。
モード0では、ベースポインタBPと、4つのポインタAP0〜AP3によって参照するメモリアドレスを定める。メモリアクセス命令は、そのオペランドにポインタAP0〜AP3を一つ指定できる。例えばポインタAP0を指定するとポインタAP0の下位3ビットがメモリアドレスのビット2-0になり、ビット4-3は0固定、そしてBPの値がビット8-5になる。
Here, an address register for accessing the local memory will be described.
FIG. 6 is a diagram showing the configuration of the address register. In the address register shown in this figure, three modes that can be selected as
In
メモリアドレスを自動的に1増加させる命令を実行する場合は、ローカルメモリをアクセスした後にポインタAP0が1増加する。ポインタAP0の値が、7から8になると、下位3ビットが全て0になるので、結局最初のアドレスに戻ることになる。このモードは、画像処理において、1ラインごとに処理する場合に便利である。ラインを1だけ移動する場合は、ベースポインタBPの値を1だけ増減する。ベースポインタBPやポインタAP0〜AP3を1だけ増減する命令が用意されている。このモードでは、例えばポインタAP0はデータの読み出し番地を、ポインタAP1は一時的にデータを書き込む格納番地をそれぞれ保持し、読み書きする命令でポインタAP0とポインタAP1とをオペランド指定して切り替えてそれぞれの番地を切り換えてアクセスできる。 When an instruction for automatically incrementing the memory address by 1 is executed, the pointer AP0 is incremented by 1 after accessing the local memory. When the value of the pointer AP0 is changed from 7 to 8, the lower 3 bits are all 0, so that it eventually returns to the first address. This mode is convenient when processing line by line in image processing. When the line is moved by 1, the value of the base pointer BP is increased or decreased by 1. Instructions for increasing / decreasing the base pointer BP and the pointers AP0 to AP3 by 1 are prepared. In this mode, for example, the pointer AP0 holds the data read address, the pointer AP1 holds the storage address to which data is temporarily written, and the pointer AP0 and the pointer AP1 are designated by the operand by the read / write instruction to switch the respective addresses. Can be accessed.
モード1の動作も同様であるが、ポインタAP0とAP2の下位4ビットが割り当てられているので、データを2ラインずつアクセスする場合に有用である。
モード2ではポインタAP0の値がそのまま9ビットのアドレスに変換できるので、512B(バイト)のメモリ空間をリニアにアクセスできる。
The operation in
In
図7は、本実施形態によるローカルメモリへの画像データのマッピング例を示す。
65ライン分以上のデータを格納する場合にも処理プログラムを同一にするために、図に示すように画像データを1ライン毎にSPE2Aのローカルメモリ11A、SPE2Bのローカルメモリ11B、SPE2Cのローカルメモリ11Cと順に格納することにする。
FIG. 7 shows an example of mapping of image data to the local memory according to the present embodiment.
In order to make the processing program the same when storing data for 65 lines or more, as shown in the figure, the image data is stored for each line in the
最初に画像信号におけるライン0のデータをローカルメモリーに格納する場合の手順を示す。
First, the procedure for storing the data of
IOP4によって取り込まれた画像信号は、データ入力シフトレジスタ6によって、SPE2Dにおけるデータ入力バッファ16に設定される。設定された画像信号のデータをSPE2DにおけるALU12DAがデータ入力バッファ16から読み出すと、データはAcc13Dに書き込まれ、レジスタR3として参照できるようになる。SPE2AにおけるALU12Aは、レジスタR3に書き込まれたデータを参照し、Acc13Aへ転送した後、ローカルメモリ11Aに書き込む。
The image signal captured by the
続いて、SPE2Aのローカルメモリ11Aにライン0のデータを書き込むプログラムを使って、次のライン1のデータをSPE2Bのローカルメモリ11Bに書き込む手順を説明する。
図8は、本発明の実施形態におけるPE−I3を示す概略ブロック図である。この図に示されるPE−I3は、内部に交換部31を備える。
PE−I3は、命令メモリ5に登録されたプログラムに記述された命令を分解し、SPE2A用、SPE2B用、SPE2C用の命令(OPコード)と、その命令の交換を行うローテーション命令を抽出する。ローテーション命令はPE−I3で実行される。SPE2A用、SPE2B用、SPE2C用の命令(OPコード)を、それぞれspe−a用コード、spe−b用コード、spe−c用コードと示し、ローテーション命令をROT命令と示す。
PE―I3における交換部31は、これらのOPコードを、必要に応じてローテーション(交換)する。
Next, a procedure for writing the
FIG. 8 is a schematic block diagram showing the PE-
The PE-
The
交換部31は、命令セレクト部32、命令選択部33A〜33C、命令デコード部34A〜34Cを備える。
交換部31における命令セレクト部32は、入力されるROT命令に応じて、命令選択部33A〜33Cの入力選択を制御する。命令セレクト部32は、内部に2ビットのカウンタを備え、ROT命令が実行されるとカウンタの値を1ずつ増加させる。命令セレクト部32は、カウンタの値が2のときにROT命令が実行されると値を0に戻し、0〜2の範囲で変化させる。命令セレクト部32は、そのカウンタの値に応じて、命令選択部33A〜33Cの入力を切り換えるセレクト信号を出力する。
命令選択部33A〜33Cは、入力されるspe−a用コード、spe−b用コード、spe−c用コードを命令セレクト部32が出力するセレクト信号に応じて切り換える。
命令デコーダ部34A〜34Cは、入力される命令コードに応じて各SPE2A〜2Cの制御信号を生成し出力する。
The
The
The
The
交換部31において命令選択部33Aは、spe−a用コードがI0入力に、spe−b用コードがI2入力に、spe−c用コードがI1入力に入力される。命令選択部33Bは、spe−a用コードがI1入力に、spe−b用コードがI0入力に、spe−c用コードがI2入力に入力される。命令選択部33Cは、spe−a用コードがI2入力に、spe−b用コードがI1入力に、spe−c用コードがI0入力に入力される。
命令選択部33A〜33Cは、入力されるセレクト信号の値0〜2に応じて、対応するI0入力、I1入力、I2入力の各入力端子に入力されるコードを出力する。
In the exchanging
The
図を参照し、図8に示した交換部31によって各SPEに供給される制御信号を交換する処理を説明する。
図9は、交換部31における命令選択状態を示す図である。
命令セレクト部32が出力するセレクト信号が0のとき、SPE2Aの制御信号にはspe−a用コードが、SPE2Bの制御信号にはspe−b用コードが、SPE2Cの制御信号にはspe−c用コードが出力される。ROT命令が実行され、セレクト信号が1になると、SPE2Aの制御信号にはspe−c用コードが、SPE2Bの制御信号にはspe−a用コードが、SPE2Cの制御信号にはspe−b用コードが出力される。さらにROT命令が実行され、セレクト信号が2になると、SPE2Aの制御信号にはspe−b用コードが、SPE2Bの制御信号にはspe−c用コードが、SPE2Cの制御信号にはspe−a用コードが出力される。次にROT命令が実行されるとセレクト信号の値は0に戻る。
A process of exchanging control signals supplied to each SPE by the exchanging
FIG. 9 is a diagram illustrating an instruction selection state in the
When the select signal output from the instruction
命令セレクト部32におけるセレクト信号が0の状態で、SPE2Aがspe−a用コードにしたがってライン0の読み込みを行った後に、PE−I3でROT命令を実行すると、セレクト信号が1になる。そのためspe−a用として記述されたプログラムのOPコードであっても、SPE2Bで実行されるようになる。つまり、ライン0を読み込んだプログラムと全く同じプログラムを実行してライン1のデータをSPE2Bのローカルメモリ11Bに書き込むことができる。同様に、ライン1の読み込み終了後にROT命令を実行すると、ライン2のデータがSPE2Cのローカルメモリ11Cに書き込むことができる。
次に、ROT命令を実行してデータを読み込むと、SPE2Aでライン0のデータがライン3のデータで上書きされることになる。それが不都合な場合は、PE−I3でROT命令を行うのと同時にSPE2AでベースポインタBP(図6)を1増やす命令を実行しておく。このようにすることで、ROT命令を実行しながら単純にループするプログラムで、図7のようにデータを格納することができる。
When the ROT instruction is executed in PE-I3 after the
Next, when data is read by executing the ROT instruction, the data on
なお、SPE2DとPE−I3の命令は、常にspe−d用コードとpe−i用コードであり変化しない。また、SPE2A〜SPE2Cをローテート(交換)するためには、これらが全く同じ構成でなければならない。したがって、PE2の外部とのデータ入出力に必要な構成や、乗算器などは全てSPE2Dに集中して配置する。 Note that the instructions of SPE2D and PE-I3 are always code for spe-d and code for pe-i and do not change. Moreover, in order to rotate (exchange) SPE2A-SPE2C, these must have the completely same structure. Accordingly, the configuration necessary for data input / output with the outside of PE2 and the multipliers are all concentrated on SPE2D.
次に、図7のように格納された画像データを使って、画像処理が効率的に行えることを説明する。例えば3画素×3画素の窓を有するデジタルフィルタを画像に適用する場合を示す。
最初の処理では、ライン0(上段)、ライン1(中段)、ライン2(下段)からそれぞれ3画素ずつのデータ(合計9画素)を読み出して処理する。ライン0のデータはSPE2A、ライン1のデータはSPE2B、ライン2のデータはSPE2Cの各ローカルメモリ11A〜11Cにそれぞれ格納されていると仮定する。
SPE2A〜2Cでは、各ラインのデータから3画素ずつ分散して読み出せる。つまり、拡大されたメモリバンド幅を有効に使うことができる。1ライン分の処理が終わって次のラインの処理に移ると、ライン1が上段、ライン2が中段、ライン3が下段になる。1ライン分の処理の最後で、ROT命令を実行すれば、spe-a用コードがSPE2Bで、spe-b用コードがSPE2Cで、spe-c用コードがSPE2Aでそれぞれ実行されるようになるので、順次切り換えられるラインへの移動が簡単に行える。
Next, it will be described how image processing can be performed efficiently using image data stored as shown in FIG. For example, a case where a digital filter having a window of 3 pixels × 3 pixels is applied to an image is shown.
In the first process, data of 3 pixels (9 pixels in total) is read and processed from line 0 (upper stage), line 1 (middle stage), and line 2 (lower stage). It is assumed that the data of
In the
つまり、上段のデータにアクセスする命令はspe-a用のコードとして記述されているが、データが格納されているローカルメモリーは、SPE2Bにおけるローカルメモリー11Bである。spe-a用のコードが、ローカルメモリー11Bが含まれるSPE2Bで実行されるので、結局ライン1のデータが上段のデータとして処理することになるからである。ただし、spe-c用のコードについては注意が必要で、これはSPE2Aで実行されるが、そのままではライン0をアクセスしてしまう。そこで、ROT命令と同時にSPE2AにおいてベースポインタBPを1増加する命令を実行しておく。このように、ROT命令とベースポインタBPを増加させる命令を加えて、単純にループするプログラムで、図7のように格納されたデータを使った画像処理ができる。
That is, the instruction to access the upper data is described as a code for spe-a, but the local memory in which the data is stored is the
最後に、図を参照し、図2の3つのレジスタ参照部15A〜15Cの機能について説明する。
図10は、レジスタ参照部の動作を示す図である。
SPEをローテーションしてもプログラムが正しく動作するためには、spe-a用のコードが実行されているSPEのAccが、他のSPEからは、レジスタR0として読み出せることが必要になる。同様に、spe-b用のコードが実行されているSPEのAccがレジスタR1、spe-c用のコードが実行されているSPEのAccがレジスタR2として読み出せることが必要になる。
そこで、レジスタ参照部15A〜15Cは、図に示すように、命令セレクト部32が出力するセレクト信号の値に応じてAcc13A〜13Cを選択してレジスタR0〜R2とする。
命令セレクト部32が出力するセレクト信号が0のとき、レジスタR0にはAcc13Aが、レジスタR1にはAcc13Bが、レジスタR2にはAcc13Cが参照される。セレクト信号が1のとき、レジスタR0にはAcc13Bが、レジスタR1にはAcc13Cが、レジスタR2にはAcc13Aが参照される。セレクト信号が2のとき、レジスタR0にはAcc13Cが、レジスタR1にはAcc13Aが、レジスタR2にはAcc13Bが参照される。
Finally, the functions of the three
FIG. 10 is a diagram illustrating the operation of the register reference unit.
In order for the program to operate correctly even when the SPE is rotated, it is necessary that the Acc of the SPE in which the code for spe-a is executed can be read from another SPE as the register R0. Similarly, it is necessary that the Acc of the SPE in which the code for spe-b is executed is read as register R1, and the Acc of the SPE in which the code for spe-c is executed is read as register R2.
Therefore, the
When the select signal output from the instruction
(第2実施形態)
図を参照し、並列計算装置の一実施形態について示す。
図11は、第2実施形態におけるPE2の構成を示すブロック図である。図2と同じ構成には同じ符号を付す。
この図に示される並列計算装置1aは、PE2a、PE−I3a、IOP4、命令メモリ5、データ入力シフトレジスタ6、データ出力シフトレジスタ7が示される。図1と同じ構成には同じ符号を付す。また、PE2aは、同じ構成を有する複数のPE2a−0〜PE2a−106を代表する。また、IOP4、命令メモリ5は、記載が省略されている。
(Second Embodiment)
An embodiment of a parallel computing device will be described with reference to the drawings.
FIG. 11 is a block diagram showing a configuration of PE2 in the second embodiment. The same components as those in FIG.
The parallel computing device 1a shown in this figure includes PE2a, PE-I3a, IOP4,
PE2aは、図2におけるPE2に相当し、一部異なる構成を有している。PE2aは、SPE2Aa〜SPE2Daとレジスタ2Mを有する。
PE2aにおけるSPE2Aa〜SPE2Daは、図2におけるSPE2A〜SPE2Dに相当するが、セレクタ14A〜セレクタ14D及びレジスタ参照部15A〜15Cに代え、セレクタ14XA〜セレクタ14XDを備える。
セレクタ14XA〜セレクタ14XCは、セレクタ14A〜セレクタ14Cとレジスタ参照部15A〜15Cを一体化した構成にあたり入力される信号を選択制御信号に応じて選択する。セレクタ14XAに入力される信号は、Acc13A〜Acc13D、ローカルメモリ11A及びレジスタ2Mであり、PE−I3aからの選択制御信号に応じて入力される信号を切り換える。セレクタ14XB〜14XCについても、セレクタ14XAと同様である。
また、セレクタ14XDは、入力される信号が、Acc13A〜Acc13D、ローカルメモリ11D、レジスタ2M及びデータ入力バッファー(SIN_reg)16からの情報並びに隣接するPE2aからの入力信号であり、PE−I3aからの選択制御信号に応じて入力される信号を切り換える。
PE2a corresponds to PE2 in FIG. 2, and has a partially different configuration. The
SPE2Aa to SPE2Da in PE2a correspond to SPE2A to SPE2D in FIG. 2, but include selectors 14XA to 14XD instead of
The selectors 14XA to 14XC select signals to be input according to the configuration in which the
In addition, the selector 14XD receives the signals from the
PE−I3aは、図2におけるPE−I3に相当し、交換部31aを備える。交換部31aは、命令セレクト部32と選択制御部35A〜35Dを備える。
命令選択デコード部35A〜35Dは、図8における命令選択部33A〜33Dと命令デコード部34A〜34Dをそれぞれ合わせた構成を備え、入力されるspe−a用コード、spe−b用コード、spe−c用コードを、命令セレクト部32が出力するセレクト信号に応じて切り換えて、入力される命令コードに応じて各SPE2A〜2Cを制御する制御信号を生成し出力する。
The PE-
The instruction
上記の構成とすることによりSPE2A〜2C内におけるレジスタR0〜R3の選択を簡素化し、SPE内のセレクタ14XA〜14XCの1段で切り換えるようになる。
第1実施形態に示したROT命令によって、SPE2A用、SPE2B用、SPE2C用の命令(OPコード)を交換し、各SPEのALU12A〜12Cに供給する選択処理を同じように実施できる。
With the above configuration, the selection of the registers R0 to R3 in the
By using the ROT instruction shown in the first embodiment, the selection process (OP code) for SPE2A, SPE2B, and SPE2C can be exchanged and supplied to the
以上に示した実施形態により、複数のサブPEを持つVLIW型アーキテクチャーを採用した並列計算機において、ローカルメモリをサブPE毎に分割して配置することで、ローカルメモリへの多重アクセス問題を回避しながら、メモリとサブPE間のデータ転送能力を高めることができる。さらに、2つ以上のサブPEの構成を全く同じにし、サブPEの動作を制御する制御信号を交換することによって、ローカルメモリに格納されている全てのデータを短時間(1クロック)で交換したのと同じ効果を出せる。これらの特徴により、サブPEとローカルメモリ間のデータ転送能力が大幅に向上し、実効演算性能が高い並列処理プロセッサーを提供できる。 According to the embodiment described above, in a parallel computer adopting a VLIW type architecture having a plurality of sub-PEs, the problem of multiple access to the local memory can be avoided by dividing and arranging the local memory for each sub-PE. However, the data transfer capability between the memory and the sub-PE can be increased. In addition, all the data stored in the local memory was exchanged in a short time (1 clock) by making the configuration of two or more sub-PEs exactly the same and exchanging control signals for controlling the operation of the sub-PEs. The same effect can be achieved. With these features, the data transfer capability between the sub-PE and the local memory is greatly improved, and a parallel processing processor with high effective computing performance can be provided.
本発明の実施形態によれば、並列計算装置1は、並列して演算処理を行う複数の演算プロセッサー(PE)2を備える。演算プロセッサー2では、命令実行制御部3がそれぞれに制御命令を供給する。サブプロセッサーSPE2Aは、記憶部11Aが複数のデータ又は複数の演算結果を保持する。ALU12Aは、記憶部11Aから読み出したデータに演算処理を施し、その結果を記憶部に供給する。
また、サブプロセッサーは、複数のサブプロセッサーのうち少なくとも2つのサブプロセッサーが同じ構造を有する。それらの同じ構造を有するサブプロセッサーは、同一構造プロセッサー群を形成する。また、命令実行制御部は、交換部が、同一構造サブプロセッサー群に含まれるサブプロセッサーに供給する制御信号を交換して供給する。
これにより、記憶部に記憶されたデータを交換したり、参照するデータを切り換えて同様の処理をしたりするためにオペランドの異なる類似のプログラムを用意することもなく、1命令の処理により、データと処理の組み合わせを交換することができる。
According to the embodiment of the present invention, the
Further, in the sub processor, at least two sub processors among the plurality of sub processors have the same structure. Those sub-processors having the same structure form an identical structure processor group. In addition, the instruction execution control unit exchanges and supplies a control signal supplied from the exchange unit to the sub processors included in the same structure sub processor group.
As a result, it is possible to exchange data stored in the storage unit, or to change the data to be referred to and perform similar processing without preparing a similar program with different operands. And processing combinations can be exchanged.
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、本発明の説明では1個の並列計算装置1(LSI)に内蔵される演算プロセッサー2の個数を107としたが、本発明はこれに制限されるものではなく、1以上の演算プロセッサー2を内蔵する計算機に適用できる。また、VLIW型で並列化するサブPEの個数を各演算プロセッサー2ごとに4としたが、本発明はこれに制限されるものではなく、複数のSPEを持つシステムに適用できる。さらに、ROT命令により、OPコードを交換するサブPEの個数を3としたが、本発明はこれに制限されるものではなく、複数のサブPEのOPコードが交換されるシステムに適用できる。
The present invention is not limited to the above embodiments, and can be modified without departing from the spirit of the present invention.
For example, in the description of the present invention, the number of
また、本発明の説明では全ての演算プロセッサー2でSIMD型を構成し、1個の命令制御プロセッサーによって制御されるとしたが、本発明はこれに制限されるものではなく、演算プロセッサー2を複数のグループに分割し、それぞれに制御プロセッサーを配置するような、SIMD型とMIMD型の中間のアーキテクチャにも適用できる。また、図11に示す第2実施形態の構成では、各SPEのOPコードを交換した後でOPコードをデコードしているが、制御信号の本数がOPコードのビット数よりも少ないような場合には、OPコードをデコードした後で交換しても、本発明と同様の効果を得ることができる。
In the description of the present invention, it is assumed that all the
また、図2に示した構成では説明を分かり易くするために、Acc13A〜Acc13Cの選択を2段にしているが、必要な回路素子の数を減らし、同時に回路の動作速度を上げるためには、図11に示した構成のように1段で構成する方が望ましい。その場合は図11に示すように、図8と同じ命令セレクト信号を用いて、セレクタ14XA〜14XDのデータ選択信号そのものを交換する。 Further, in the configuration shown in FIG. 2, the selection of Acc13A to Acc13C is made in two stages for easy understanding, but in order to reduce the number of necessary circuit elements and at the same time increase the operation speed of the circuit, It is desirable to configure in one stage as shown in FIG. In this case, as shown in FIG. 11, the data selection signals themselves of the selectors 14XA to 14XD are exchanged using the same instruction select signal as in FIG.
2 演算プロセッサー(PE)
2A、2B、2C、2C、2D サブ演算プロセッサー(SPE、サブプロセッサー)
2G サブ演算プロセッサーグループ(同一構造プロセッサー群)
3 命令実行制御プロセッサー(PE−I、命令実行制御部)
11A、11B、11C、11D ローカルメモリー(LM、記憶部)
12A、12B、12C、12DA ALU(演算部)
13A、13B、13C、13D Acc(レジスター部)
31 交換部
2 Operation processor (PE)
2A, 2B, 2C, 2C, 2D Sub operation processor (SPE, Sub processor)
2G sub-processor group (same processor group)
3 Instruction execution control processor (PE-I, instruction execution control unit)
11A, 11B, 11C, 11D Local memory (LM, storage unit)
12A, 12B, 12C, 12DA ALU (arithmetic unit)
13A, 13B, 13C, 13D Acc (register part)
31 Exchange Department
Claims (2)
前記演算プロセッサーのそれぞれに制御信号を供給する命令実行制御部と、
を備え、
前記演算プロセッサーが、
複数のデータ又は複数の演算結果を保持する記憶部と、
前記記憶部から読み出したデータに演算処理を施し、その結果を前記記憶部に供給する演算部と、
を備えるサブプロセッサーを複数備え、
複数の前記サブプロセッサーのうち少なくとも2つのサブプロセッサーが同じ構造を有するものであり、同じ構成を有するサブプロセッサーは同一構造サブプロセッサー群を構成し、
前記命令実行制御部は、
前記同一構造サブプロセッサー群に含まれるサブプロセッサーに供給する制御信号を交換して供給する交換部
を備えることを特徴とする並列計算装置。 A plurality of arithmetic processors that perform arithmetic processing in parallel;
An instruction execution control unit for supplying a control signal to each of the arithmetic processors;
With
The arithmetic processor is
A storage unit for holding a plurality of data or a plurality of calculation results;
An arithmetic unit that performs arithmetic processing on the data read from the storage unit and supplies the result to the storage unit;
With multiple sub-processors with
Is at least two sub-processors among the plurality of sub-processors having the same structure, the sub-processor having the same configuration and form the same structure sub processor group,
The instruction execution control unit
A parallel computing device comprising: an exchange unit that exchanges and supplies control signals to be supplied to sub-processors included in the same-structure sub-processor group.
前記演算部の一方の入力に接続され、書き込まれる情報を記憶するレジスタ部
を備え、
前記レジスタ部は、
通常時は前記演算部による演算結果を記憶し、記憶した演算結果を出力し、
前記同一構造サブプロセッサー群は、レジスタ参照部を備え、
前記レジスタ参照部は、前記同一構造サブプロセッサー群に含まれるそれぞれの前記サブプロセッサーが備えるそれぞれの前記レジスタ部からの出力を、前記サブプロセッサーの前記演算部の他方の入力に入力データを供給するレジスタのうち、少なくとも一部のレジスタからの入力として扱う際において、前記レジスタ部と前記入力データを供給するレジスタとの対応付けを変更することができるものであり、
前記命令実行制御部は、前記同一構造サブプロセッサー群の各サブプロセッサーに供給する前記制御信号を交換する際には、交換前に、前記入力データを供給するレジスタのそれぞれに対応付けられていた、それぞれの前記レジスタ部に代えて、当該レジスタ部が属する前記サブプロセッサーに交換前に供給されていた前記制御信号を交換後に供給されることとなる前記サブプロセッサーが備える前記レジスタ部を、前記入力データを供給するレジスタにそれぞれ新たに対応付けるように、前記レジスタ参照部を制御するものである
ことを特徴とする請求項1記載の並列計算装置。 The sub-processor is
A register unit connected to one input of the arithmetic unit and storing information to be written;
The register unit is
Usually, the calculation result by the calculation unit is stored, the stored calculation result is output,
The same structure sub- processor group includes a register reference unit,
The register reference unit is a register that supplies an output from each of the register units included in each of the sub-processors included in the same-structured sub-processor group to input data to the other input of the arithmetic unit of the sub-processor. Among them, when handling as input from at least some of the registers, it is possible to change the association between the register unit and the register that supplies the input data,
The instruction execution control unit, when exchanging the control signal to be supplied to each sub processor of the same structure sub processor group, was associated with each of the registers that supply the input data before the exchange, In place of each of the register units, the input unit includes the register unit included in the sub processor to be supplied after the replacement of the control signal supplied to the sub processor to which the register unit belongs. 2. The parallel computing apparatus according to claim 1 , wherein the register reference unit is controlled so as to be newly associated with a register that supplies the data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009150019A JP5358315B2 (en) | 2009-06-24 | 2009-06-24 | Parallel computing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009150019A JP5358315B2 (en) | 2009-06-24 | 2009-06-24 | Parallel computing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011008416A JP2011008416A (en) | 2011-01-13 |
JP5358315B2 true JP5358315B2 (en) | 2013-12-04 |
Family
ID=43565021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009150019A Expired - Fee Related JP5358315B2 (en) | 2009-06-24 | 2009-06-24 | Parallel computing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5358315B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6771018B2 (en) * | 2015-07-23 | 2020-10-21 | マイヤプリカ テクノロジー エルエルシー | Improved performance of 2D array processor |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305781A (en) * | 1999-04-21 | 2000-11-02 | Mitsubishi Electric Corp | Vliw system processor, code compressing device, code compressing method and medium for recording code compression program |
JP4502532B2 (en) * | 2001-02-23 | 2010-07-14 | 株式会社ルネサステクノロジ | Data processing device |
JP3856737B2 (en) * | 2002-07-19 | 2006-12-13 | 株式会社ルネサステクノロジ | Data processing device |
JP5240424B2 (en) * | 2004-11-05 | 2013-07-17 | 日本電気株式会社 | SIMD type parallel processing unit, processing element, control method for SIMD type parallel processing unit |
JP5452066B2 (en) * | 2009-04-24 | 2014-03-26 | 本田技研工業株式会社 | Parallel computing device |
JP5358287B2 (en) * | 2009-05-19 | 2013-12-04 | 本田技研工業株式会社 | Parallel computing device |
-
2009
- 2009-06-24 JP JP2009150019A patent/JP5358315B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011008416A (en) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI498819B (en) | System and method for performing shaped memory access operations | |
US8639882B2 (en) | Methods and apparatus for source operand collector caching | |
JP5461533B2 (en) | Local and global data sharing | |
JP5285828B2 (en) | Parallel data processor | |
TWI512466B (en) | Efficient memory virtualization in multi-threaded processing units | |
JP4934356B2 (en) | Video processing engine and video processing system including the same | |
TWI533222B (en) | Controlling work distribution for processing tasks | |
EP3485385B1 (en) | Shuffler circuit for lane shuffle in simd architecture | |
TW201346759A (en) | Automatic dependent task launch | |
US9798543B2 (en) | Fast mapping table register file allocation algorithm for SIMT processors | |
JP2007041781A (en) | Reconfigurable integrated circuit device | |
US20200159681A1 (en) | Information processor with tightly coupled smart memory unit | |
TW201337829A (en) | Shaped register file reads | |
JP2011141823A (en) | Data processing device and parallel arithmetic device | |
JP4801605B2 (en) | SIMD type microprocessor | |
KR102152735B1 (en) | Graphic processor and method of oprating the same | |
US20090235047A1 (en) | Computer system for electronic data processing | |
TWI501156B (en) | Multi-channel time slice groups | |
US6785743B1 (en) | Template data transfer coprocessor | |
JP5358315B2 (en) | Parallel computing device | |
CN116266122A (en) | Register file virtualization: application and method | |
US20100088493A1 (en) | Image processing device and data processor | |
JP4482356B2 (en) | Image processing method and image processing apparatus using SIMD processor | |
JP2003167726A (en) | Coprocessor device and method for facilitating data transfer | |
US20230409323A1 (en) | Signal processing apparatus and non-transitory computer-readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120518 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130611 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130725 |
|
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: 20130806 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130902 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5358315 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |