JP2012522280A - Single instruction multiple data (SIMD) processor having multiple processing elements interconnected by a ring bus - Google Patents
Single instruction multiple data (SIMD) processor having multiple processing elements interconnected by a ring bus Download PDFInfo
- Publication number
- JP2012522280A JP2012522280A JP2011540254A JP2011540254A JP2012522280A JP 2012522280 A JP2012522280 A JP 2012522280A JP 2011540254 A JP2011540254 A JP 2011540254A JP 2011540254 A JP2011540254 A JP 2011540254A JP 2012522280 A JP2012522280 A JP 2012522280A
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- processing
- ring bus
- parameter
- 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
Landscapes
- Multi Processors (AREA)
Abstract
複数の処理要素を有する単一命令多重データ(SIMD)プロセッサはデータメモリ内の読み出し専用パラメータデータのアドレスを複数の処理要素の数に対応するビット位置で第1部分と第2部分に分割するための分割部と、第1部分に応じたアドレスの内部メモリから取り出した読み出し専用パラメータデータのリングバス上のシフト動作の回数を、処理要素自身の位置と、アクセス対象の読み出し専用パラメータデータが格納されている処理要素のリングバス上の位置を指定し、第2部分に対応する該アクセス対象の読み出し専用パラメータデータのグローバルアドレスの部分との間の差と比較し、他の処理要素に読み出し専用パラメータを取得させるための比較部と、を備える。 A single instruction multiple data (SIMD) processor having a plurality of processing elements for dividing an address of read-only parameter data in a data memory into a first part and a second part at bit positions corresponding to the number of the plurality of processing elements The number of shift operations on the ring bus of the read-only parameter data fetched from the internal memory at the address corresponding to the first part, the position of the processing element itself, and the read-only parameter data to be accessed are stored. The position of the processing element on the ring bus is specified, compared with the difference between the global address part of the read-only parameter data to be accessed corresponding to the second part, and the read-only parameter is set to the other processing element And a comparison unit for acquiring.
Description
本発明はデータ処理装置、データ処理システム、及びデータ処理方法に関する。 The present invention relates to a data processing device, a data processing system, and a data processing method.
単一命令多重データ(SIMD)処理で動作するプロセッサが提唱されている(特許文献1)。図15を参照して、そのようなSIMDの1つの例を説明する。図15はSIMDアーキテクチャを示している概念的なブロック図である。図15に示されているように、SIMDアーキテクチャ90は中央プロセッサ(CP)10、複数の処理要素(PE)11、リングバス12及び13、及び接続14を備える。図15は、それぞれPE00〜PE15で示されている16個のPE11を示している。
A processor that operates by single instruction multiple data (SIMD) processing has been proposed (Patent Document 1). One example of such SIMD will be described with reference to FIG. FIG. 15 is a conceptual block diagram illustrating the SIMD architecture. As shown in FIG. 15, the
CP10はパラメータを格納するデータメモリ(DMEM)16を備え、PE11は処理のためにそれらのパラメータを使用する。各PE11はCP10から転送されたパラメータを格納する内部メモリ(IMEM)17を有する。CP10はパイプライン化されたリングバス12及び13によって各PE11に接続されている。CP10及び各PE11は接続14を介してリングバス12及び13に接続されている。データはCP10と各PE11との間でリングバス12を介して時計回り方向に、及びリングバス13を介して反時計回り方向に転送される。すなわち、データはCP10から各PE11へ、時計回りリングバス12及び反時計回りリングバス13を介して転送される。
The
処理が開始されると、各PE11はCP10のDMEM16から処理に必要なパラメータを取り出す。各PE11は次のような一般的な方法でCP10のDMEM16に格納されているパラメータを要求する。
When the process is started, each
(1)要求に応じた転送
(2)プレローディング
(1) Transfer according to request (2) Preloading
上述の(1)要求に応じた転送の場合、PE11がパラメータを必要とするたびに、CP10によってパラメータがDMEM16から読み出され、要求を出しているPE11に転送される。このシーケンスは、例えば、非特許文献1に開示されている。しかしながら、PE11によってデータが要求されるたびに要求パケットが交換されると、バスの通信量が大幅に増大する。16個のPEが同時に又は連続的にデータを要求すると、リングバスの通信量は大幅に増大してしまう。さらに、PEがデータを要求してからそれを受け取るまでに時間がかかり、PE11は処理を開始する前に必要なデータが取り出されるまで待たなければならない。それゆえ、高いパラレル処理効率を期待することはできない。
In the case of transfer in response to the above (1) request, each time the
図16を参照して、データがプレローディングされる場合(上述の(2)の場合)を説明する。図16はPE11での並列使用のための、内部メモリ(IMEM)17内のパラメータの初期設定を示している。
With reference to FIG. 16, a case where data is preloaded (in the case of (2) described above) will be described. FIG. 16 shows the initial setting of parameters in the internal memory (IMEM) 17 for parallel use in the
各PE11によるパラメータの使用の前に、CP10によって全パラメータが一度、DMEM16から読み出される。そして、それらのパラメータは各PE11のIMEM17に格納するために、全てのPE11に一斉送信される。プログラム実行中、各PE11は要求されたパラメータを読み出すために、任意のタイミングでそれ自身のIMEM17にアクセスすることができる。しかしながら、各PEは自身のIMEM17に格納された全てのパラメータを有するため、各IMEM17は非常に大きなメモリ容量を必要とする。このような状況から、システムは非常に大きな空間を必要とする。さらに、プレローディングは多数のデータを転送及び書き込みするために相当な時間を要する。
All parameters are read once from the
また、SIMDアーキテクチャにおいて、IMEM17の使用を最適化するためにPE11をグループ化することができる。図17はこのシステム構造を示している。パラメータは複数のIMEM17に分配され、複数のIMEM17に格納される。この状態において、あるPEがそれ自身のIMEM17には格納されておらず、隣接するIMEM17に格納されているパラメータにアクセスしたい場合がある。上述のSIMDアーキテクチャに対して、特許文献2に開示されている仕組みを適用することができる。
Also, in the SIMD architecture,
ここで、コンパイル時に複数のPEがグループ化され、それら全てがアクセス可能な共通内部メモリを有する。その内部メモリに同時にアクセスしようとしているPEの全てに対してアクセスインジケータが設定される。アクセスインジケータを有するPEの1つが選択されるとともに、同一のアドレスにアクセスしようとしているPEが探し出される。そして、パラメータが内部メモリからロードされ、同一のアドレスにアクセスしようとしている全てのPEに転送される。さらに、これらのPEのアクセスインジケータがクリアされる。全てのPEからアクセスインジケータがクリアされるまで、この処理が繰り返される。この方法により、同一のアドレスに対する複数のアクセスが防止されるので、最適なアクセスが達成される。 Here, a plurality of PEs are grouped at the time of compiling and all have a common internal memory that can be accessed. An access indicator is set for all of the PEs simultaneously trying to access the internal memory. One PE with an access indicator is selected and the PE that is trying to access the same address is located. The parameters are then loaded from the internal memory and transferred to all PEs attempting to access the same address. Furthermore, the access indicators of these PEs are cleared. This process is repeated until the access indicators are cleared from all PEs. This method prevents multiple accesses to the same address, thus achieving optimal access.
特許文献3は、隣接する処理要素をグループ化することによって内部メモリアクセスを最適化し、それによりSIMDアーキテクチャの能力を最適化するための異なる手法を開示している。この手法においては、コンパイル時に2つの隣接する処理要素が処理要素の組にグループ化される。これらの組にされた処理要素において、異なるデータバスに接続されたメモリの両方の要素に対して同一のアドレスが割り当てられる。この構成は、例えば、1つのメモリをデータの取得のために使用し、他のメモリをデータの出力にために使用することを可能にする。 U.S. Patent No. 6,057,031 discloses a different approach for optimizing internal memory access by grouping adjacent processing elements, thereby optimizing the capabilities of the SIMD architecture. In this approach, two adjacent processing elements are grouped into a set of processing elements at compile time. In these grouped processing elements, the same address is assigned to both elements of the memory connected to different data buses. This configuration, for example, allows one memory to be used for data acquisition and another memory to be used for data output.
特許文献4及び特許文献5はさらに異なる手法を開示している。特許文献4及び5において、割り当ては中央プロセッサ自身によって行われる。特許文献5においては、リングバス上のデータのシフトを制御するためにリングバスコントローラが備えられている。データがリングバスに転送された後、中央プロセッサはリングバスコントローラにリングバス上のデータをシフトするように指示する。リングバスコントローラによる制御動作により、データはリングバス上を所定の量だけ移動する。所定のシフト動作が完了すると、リングバスコントローラは所望のシフト動作が完了したことを中央プロセッサに知らせる。そして、中央プロセッサは処理要素(PE)にそのデータを取り出すように指示する。処理要素(PE)は必要なデータを取り出す。
Patent Literature 4 and
データを転送する第1の方法(すなわち、要求に応じた転送)はアクセスが非常に遅いという問題がある。この問題の理由の1つは、要求のたびにDMEMからIMEMにデータが転送されなければならないということである。もう1つの理由は、1つのIMEMにデータが転送されている間、他の全てのPEはそのデータ要求が履行されるまで、それらの実行を中断して待たなければならないということである。 The first method of transferring data (i.e. transfer on demand) has a problem that access is very slow. One reason for this problem is that data must be transferred from DMEM to IMEM on every request. Another reason is that while data is being transferred to one IMEM, all other PEs must suspend their execution and wait until their data request is fulfilled.
データを転送する第2の方法(すなわち、プレローディング)は高速であるが、パラメータデータが各PEのIMEM内に格納されなければならないので、内部メモリ内に大きなメモリ空間を必要とする。 The second method of transferring data (ie, preloading) is fast, but requires large memory space in internal memory because the parameter data must be stored in each PE's IMEM.
特許文献2に開示された方法はデータをPEグループの内部メモリに格納することによって、この内部メモリの増大に対する問題を解決することを目的としている。特許文献2はまた、データにアクセスするための一般的な方法を示している。しかしながら、この一般的な方法のために、メモリアクセスの前にPE間でアドレスを交換及び比較しなければならず、PE間のアドレス転送及び比較のために余分な制御論理及び余分な処理時間を消費する。
The method disclosed in
特許文献3に開示された方法は内部メモリ内のデータ量を減少させることができないという短所を有する。特許文献4に開示された方法は自己グループ化を行うために余分な制御論理を必要とするという短所を有する。特許文献5に開示された方法はリングバスのシフト動作を制御するために余分な制御論理を必要とし、中央プロセッサがPEによるデータの出入力動作及びリングバスコントローラによるリングバスシフトを管理しなければならないという短所を有する。
The method disclosed in Patent Document 3 has a disadvantage that the amount of data in the internal memory cannot be reduced. The method disclosed in Patent Document 4 has a disadvantage in that extra control logic is required to perform self-grouping. The method disclosed in
上述の特許/非特許文献に開示された方法は時間又は領域の点で非効率的である。 The methods disclosed in the above patent / non-patent literature are inefficient in terms of time or area.
本発明は上述の問題の観点からなされたものであり、その目的は読み出し専用のパラメータが複数の内部メモリに分散されて格納されている場合に、(1つ又は複数の)リングバスを介して該読み出し専用パラメータを効率的に転送及び取り込みすることが可能なデータ処理装置、データ処理システム、及びデータ処理方法を提供することである。 The present invention has been made in view of the above-described problems, and its purpose is to connect via a ring bus (s) when read-only parameters are distributed and stored in a plurality of internal memories. To provide a data processing device, a data processing system, and a data processing method capable of efficiently transferring and capturing the read-only parameter.
本発明によると、データが複数の内部メモリに分散されて格納されている場合に、該データを効率的に読みだすことが可能なデータ処理装置、データ処理システム、及びデータ処理方法を提供することができる。 According to the present invention, it is possible to provide a data processing device, a data processing system, and a data processing method capable of efficiently reading data when the data is distributed and stored in a plurality of internal memories. Can do.
本発明の上述及び他の目的、長所、及び特徴は付随する図面とともに以下の特定の実施形態の記載を参照することによって、より明白になるだろう。
(実施の形態1)
本発明の実施形態にしたがったデータ処理装置は単一命令多重データ処理(SIMD)を実行するプロセッサである。図1を参照して、本発明の実施形態にしたがったデータ処理装置を説明する。図1は本発明の実施形態にしたがったデータ処理装置900のアーキテクチャを示している概念的なブロック図である。図1に示されているように、このアーキテクチャは中央プロセッサ(CP)100、データメモリ(DMEM)106、処理要素(PE)101、内部メモリ(IMEM)107、リングバス102、リングバス103、接続104、及び、シフトレジスタ105を備える。
(Embodiment 1)
A data processing apparatus according to an embodiment of the present invention is a processor that performs single instruction multiple data processing (SIMD). A data processing apparatus according to an embodiment of the present invention will be described with reference to FIG. FIG. 1 is a conceptual block diagram illustrating the architecture of a
CP100は読み出し専用パラメータを格納するデータメモリDMEM106を有し、PE101は処理のためにそれらの読み出し専用パラメータを使用する。ここで、処理のために32個の読み出し専用パラメータが使用される具体例について説明する。すなわち、DMEM106には32個の読み出し専用パラメータが格納される。ここで、DMEM106に格納された32個の読み出し専用パラメータのアドレスがそれぞれ「00」〜「31」に設定されているとする。図2はDMEM106内の読み出し専用パラメータとそれらのDMEM106内のアドレスAddrDMEMとの関係を示している。
The
CP100は接続104を介して2つのリングバス102及び103に接続されている。CP100はDMEM106に格納された読み出し専用パラメータを読み出し、読み出された読み出し専用パラメータはリングバス102及び103を介して転送される。
図1は16個のPE101が備えられている例を示している。図1において、説明の簡略化のために16個のPE101にはそれぞれ添え字「00」〜「15」が付けられている。すなわち、16個のPE101はそれぞれPE00〜PE15として識別される。16個のPE101はSIMDモードで動作する。すなわち、CP100が単一の命令を送ると、PE101は並列処理を実行する。
FIG. 1 shows an example in which 16
全てのPE101は接続104を介して2つのリングバス102及び103に接続されている。リングバス102及び103にはシフトレジスタ105が備えられている。シフトレジスタ105はリングバス102及び103上で互いに接続されている。リングバス102及び103の各々のシフトレジスタ105の数はPE101の数に一致している。リングバス103はリングバス102とは逆の方向にデータを転送する。リングバス102は時計回り方向にデータを転送し、リングバス103は反時計回り方向にデータを転送する。それゆえ、リングバス102上のシフトレジスタ105のシフト方向はリングバス103上のシフトレジスタ105のシフト方向に対して逆方向である。
All
また、各PE101はそれ自身のIMEM107に接続されている。各IMEM107はローカルデータ格納部として機能する。単一のIMEM107に対して単一のPE101が接続されている。すなわち、IMEM107の数は16個であり、PE101の数に等しい。これらのIMEM107は分散的な並列処理のために必要な読み出し専用パラメータを格納する。ここで、各IMEM107が2つの読み出し専用パラメータを格納する具体例について説明する。すなわち、全部で32個(16×2)の読み出し専用パラメータが存在する例について説明する。
Each
まず、リングバス102に備えられたシフトレジスタ105によって32個のパラメータが順次、転送される。最初のクロックサイクルで、DMEM106からアドレス「00」に格納されている読み出し専用パラメータ「01」が読み出され、リングバス102に備えられたシフトレジスタ105に保持される。なお、CP100はDMEM106から読み出したデータを最も近いシフトレジスタ105に転送する。すなわち、読み出し専用パラメータ「01」はCP100の下流側で最も近いシフトレジスタ105に格納される。次のクロックサイクルで、読み出し専用パラメータ「01」は次のシフトレジスタ105に転送されるとともに、CP100からアドレス「01」に格納されている読み出し専用パラメータ「02」が読み出され、シフトレジスタ105に保持される。
First, 32 parameters are sequentially transferred by the
この処理を繰り返すことにより、16個の読み出し専用パラメータがシフトレジスタ105に保持される。すなわち、リングバス102に備えられた各シフトレジスタ105は読み出し専用パラメータを1つずつ保持する。そして、各IMEM107は対応するシフトレジスタ105に保持されている読み出し専用パラメータデータを格納する。すなわち、各IMEM107には読み出し専用パラメータが1つずつ保持される。例えば、読み出し専用パラメータ「01」はPE00のIMEM107に格納される。同様に、読み出し専用パラメータ「02」〜「16」はそれぞれ、PE01〜PE15のIMEM107に格納される。
By repeating this process, 16 read-only parameters are held in the
この処理は2回繰り返され、それによって各IMEM107には2つの読み出し専用パラメータが格納される。読み出し専用パラメータ「17」〜「32」も上述した方法で転送される。結果として、例えば、読み出し専用パラメータ「01」及び「17」がPE00のIMEM107に順次、格納される。
This process is repeated twice, whereby each
次に、各読み出し専用パラメータのグローバルアドレスについて説明する。図3は各読み出し専用パラメータのグローバルアドレス600の1つの形式を示している。図3に示されているように、グローバルアドレスは2つの部分に分割される。上位ビット601は、IMEM107内の読み出し専用パラメータのアドレスを示すアドレスAddrIMEMを表す部分である。このアドレスAddrIMEMは以下の式によって計算することができる。
AddrIMEM=AddrDMEM/PE_PER_GROUP ・・・ (1)
Next, the global address of each read-only parameter will be described. FIG. 3 shows one form of
Addr IMEM = Addr DMEM / PE_PER_GROUP (1)
読み出し専用パラメータはPEグループに分散されて格納されているので、IMEM107内のAddrIMEMはDMEM106のAddrDMEMをPE101の数で割ることによって計算される。AddrDMEMの上位ビットに注目することにより、AddrIMEMを計算することができる。例えば、AddrDMEMが「27」、PE_PER_GROUPが「16」、AddrIMEMが「1」であるとする。PE_PER_GROUPが「16」かつAddrDMEMが「00」〜「15」の範囲にある場合、AddrIMEMは0である。AddrDMEMが「16」〜「31」の範囲にある場合、AddrIMEMは1である。図4はAddrDMEMとAddrIMEMとの関係を示している。
Since the read-only parameter is distributed and stored in the PE group, the Addr IMEM in the IMEM 107 is calculated by dividing the
このように、IMEM107内のアドレスAddrIMEMを計算するためにアドレスAddrDMEMをPE101の数PE_PER_GROUPで割る。上述の例はPE_PER_GROUP=16として説明したが、もちろん、PE_PER_GROUPは16以外の数値であってもよい。 Thus, dividing the number PE_PER_GROUP of PE101 address Addr DMEM to calculate the address Addr IMEM in IMEM107. Although the above example has been described with PE_PER_GROUP = 16, of course, PE_PER_GROUP may be a numerical value other than 16.
下位ビット602は、読み出し専用パラメータを格納しているIMEMのリングバス102上の位置を示すPOSIMEMを表す部分である。すなわち、POSIMEMはアクセス対象の読み出し専用パラメータのグローバルアドレスの一部であり、該アクセス対象の読み出し専用パラメータが格納されているリングバス102内の位置を指定する。
The
POSIMEMはAddrDMEMとPE_PER_GROUP (この例においては=16)を用いたモジュロ演算を行うこと、すなわち、割り算の余りによって計算される。図4はAddrDMEMとPOSIMEMとの関係を示している。すなわち、読み出し専用パラメータのグローバルアドレスは各々、2つの部分601及び602から構成されている。
The POS IMEM is calculated by performing a modulo operation using Addr DMEM and PE_PER_GROUP (= 16 in this example), that is, by the remainder of the division. FIG. 4 shows the relationship between Addr DMEM and POS IMEM . That is, each global address of the read-only parameter is composed of two
なお、部分601は第1オペランドとなり、部分602は第2オペランドとなる。部分601はアドレスの上位部分であり、ビット位置の左側に位置している。部分602はアドレスの下位部分であり、ビット位置の右側に位置している。
The
下位部分602と上位部分601の間の境界603はPEの数に応じて決まる。すなわち、アドレスを2つの部分に分割する境界603はPEグループに含まれるPEの数PE_PER_GROUPに応じて変化する。詳細には、分割位置はlog2 (PE_PER_GROUP)によって計算される。
A
例えば、PEの数が16(=24)である場合、グローバルアドレスが分割されるビット位置(分割位置)は下位側から4番目のビットに対応する。したがって、境界603は下位側から4番目のビットと5番目のビットの間に位置する。下位側の4つのビットはPOSIMEMを表し、それより上位側のビットはAddrIMEMを表す。例えば、AddrDMEMが16ビットで表されるとすると、上位側の12個のビットがAddrIMEMに対応する。
For example, when the number of PEs is 16 (= 2 4 ), the bit position (division position) where the global address is divided corresponds to the fourth bit from the lower side. Therefore, the
次に、図5を参照してPE101の構造を説明する。図5はPE101の構造を概略的に示しているブロック図である。図5に示されているように、PE101は多様な演算を実行する演算論理装置(ALU)121を備える。演算論理装置121は分割部122及び比較/移動部123を備えている。分割部122はAddrDMEMを2つの部分に分割するための分割処理を実行する。比較/移動(cmpmv)部123は読み出し専用パラメータを移動させるためにシフト距離「シフト」をリングバス102及び103上のシフトの回数と比較するための比較/移動処理を実行する。
Next, the structure of the
以下に、PE101で実行される処理を詳細に説明する。まず、PE101で実行される複数の処理のうち、AddrDMEMを2つの部分に分割するための処理(以下、「分割処理」とも呼ぶ)を説明する。
Hereinafter, processing executed by the
図6は分割部122によって実行される分割処理の概念図を示している。この分割処理はAddrDMEM及びPE_PER_GROUPに基づいて行われる。CP100から各分割部122にAddrDMEM及びPE_PER_GROUPが入力される。そして、各分割部122はlog2(PE_PER_GROUP)を用いてAddrDMEMを分割する。なお、log2(PE_PER_GROUP)は自然数として与えられる。
FIG. 6 shows a conceptual diagram of the dividing process executed by the dividing
ここで、AddrDMEMを2つの部分に分割することによって得られた2つの値はそれぞれDST0及びDST1であるとする。詳細には、AddrDMEMはPEの数に応じて決まる分割点で分割され、2つの出力DST0及びDST1を与える。ここで、DST0はAddrIMEMに対応し、DST1はPOSIMEMに対応する。 Here, it is assumed that two values obtained by dividing the Addr DMEM into two parts are DST0 and DST1, respectively. Specifically, the Addr DMEM is divided at a division point determined according to the number of PEs, and provides two outputs DST0 and DST1. Here, DST0 corresponds to Addr IMEM , and DST1 corresponds to POS IMEM .
これらの値は以下の式(2)によって計算することができる。
(DST0,DST1)=split(AddrDMEM,log2(PE_PER_GROUP)) ・・・ (2)
These values can be calculated by the following equation (2).
(DST0, DST1) = split (Addr DMEM , log 2 (PE_PER_GROUP)) (2)
例えば、PE_PER_GROUPが2のn乗(nは自然数)である場合、log2(PE_PER_GROUP) は自然数となる。この例において、DST0は(AddrDMEM/PE_PER_GROUP)に等しく、式(1)によって表されるAddrIMEMに対応する。 For example, when PE_PER_GROUP is n to the power of 2 (n is a natural number), log 2 (PE_PER_GROUP) is a natural number. In this example, DST0 is equal to (Addr DMEM / PE_PER_GROUP) and corresponds to the Addr IMEM represented by equation (1).
次に、図7を参照して分割部の構造を説明する。図7は各PE101における分割部122を示しているブロック図である。
Next, the structure of the dividing unit will be described with reference to FIG. FIG. 7 is a block diagram showing the
各PE101は入力値(AddrDMEM)を2つの部分に分割する。以下では、AddrDMEMが16ビットで表されると仮定して説明を行う。図7において、CP100からSRC0及びSRC1が転送される。SRC0は16ビットのAddrDMEMに対応し、SRC1はPE_PER_GROUPを示すビットシフト量の値である。なお、SRC0は符号なしの値である。ここで、PEグループに含まれるPEの数は16(=24)であるので、ビットシフト量は4である。すなわち、PEの数を示すビットの数がビットシフト量に対応する。
Each
ビット右シフタ401はSRC0のビットをビットシフト量だけ右側にシフトする。すなわち、SRC0は4ビット分、右側にシフトされる。結果として、AddrDMEMの上位側12ビットが対象となる。そして、SRC0のビットを右側にシフトして得られた値はDST0として出力される。DST0はAddrIMEMに対応する。DST0は上述の方法によってSRC0及びSCR1に基づいて計算される。すなわち、SRC0を、SRC1に対応するビットの数(桁数)だけ右側にシフトして得られた値はDST0に対応する(図8を参照)。例えば、SRC0が(2進記述で)「1101101101001101」である場合、上位12ビット「110110110100」はDST0を表す。したがって、DST0はAddrIMEMに対応する。
The bit
ここで、図7において、TMP0の16ビットの値は全て1である。詳細には、TMP0はAddrDMEMのビットの数に等しい数のビットによって表される最大値に固定される。TMP0は2進記述で「1111111111111111」として表される。 Here, in FIG. 7, the 16-bit values of TMP0 are all 1. Specifically, TMP0 is fixed at a maximum value represented by a number of bits equal to the number of bits in Addr DMEM . TMP0 is represented as “1111111111111111” in binary description.
ビット左シフタ402はTMP0のビットをSCR1だけ左側にシフトする。詳細には、ビット左シフタ402はTMP0の下位4ビットを値0で置き換える。結果として、ビット左シフタ402の出力TMP1は「1111111111110000」と表される。すなわち、TMP0をSRC1に対応するビットの数(桁数)だけ左側にシフトして得られた値はTMP1に対応する(図8を参照)。
The bit
インバータ403はTMP1のビットの値を反転する。TMP1が反転処理され、TMP2として出力される(図8を参照)。結果として、インバータ403の出力TMP2は「0000000000001111」と表される。すなわち、下位4ビットの値は1であり、上位12ビットの値は0である。
The
そして、ANDブロック404はSRC0とTMP2との論理積を計算する。SRC0とTMP2との論理積はDST1として出力される(図8を参照)。この時点で、TMP2は下位4ビットの値が1であり、上位12ビットの値が0である。したがって、ANDブロック404はSRC0の下位4ビットを対象にする。すなわち、ANDブロック404の出力DST1はSRC0の下位4ビットの値に等しい。DST1はPOSIMEMに対応する。 Then, the AND block 404 calculates a logical product of SRC0 and TMP2. The logical product of SRC0 and TMP2 is output as DST1 (see FIG. 8). At this point, the value of the lower 4 bits of TMP2 is 1, and the value of the upper 12 bits is 0. Therefore, the AND block 404 targets the lower 4 bits of SRC0. That is, the output DST1 of the AND block 404 is equal to the value of the lower 4 bits of SRC0. DST1 corresponds to POS IMEM .
このように、AddrDMEMは2つの部分に分割することができる。 Thus, the Addr DMEM can be divided into two parts.
また、これらの数値を使用してシフト距離「シフト」を得ることができる。各PE101はシフト距離「シフト」を計算する。シフト距離「シフト」はリングバス上のシフトの回数を規定する。シフト距離「シフト」は位置POSownとPOSIMEMとの間のシフト距離を表す整数である。
Also, the shift distance “shift” can be obtained using these numerical values. Each
ここで、読み出し専用パラメータを要求しているPE101、すなわち、アクセス先のPE101がPE自身であり、それの位置がPOSownとして表されるとする。さらに、読み出し専用パラメータを保持しているIMEM107の位置、すなわち、アクセス元のIMEMの位置がPOSIMEMとして表されるとする。すなわち、読み出し専用パラメータを要求しているPE101の位置がPOSownとして表され、要求された読み出し専用パラメータを格納しているIMEM107の位置がPOSIMEMとして表されるとする。
Here, it is assumed that the
なお、位置POSown及びPOSIMEMはリングバス102上に位置するので、これらの位置は、例えば、図1に示されているように「00」〜「15」等の自然数によって表される。例えば、図1に示されているように、PEに付けられた添え字が位置を表す。
Since the position POS own and POS IMEM is located on
POSownはPE自身の番号PEown及びPE_PER_GROUP用いたモジュロ演算を行うことによって計算される。ここで、一般的な場合、PE_PER_GROUP用いたモジュロ演算が必要となる。例えば、アーキテクチャ内の利用可能なPEの数NO_OF_PEがグループ内のPE101の数PE_PER_GROUPに等しくない場合、モジュロ演算が必要となる。これらの数が等しい場合、POSownを計算するためのモジュロ演算は省略することができる。すなわち、PEownはPOSownに等しい。
POS own is calculated by performing a modulo operation using the number PE own and PE_PER_GROUP of PE itself. Here, in a general case, a modulo operation using PE_PER_GROUP is required. For example, if the number of available PEs NO_OF_PE in the architecture is not equal to the number PE_PER_GROUP of
シフト距離「シフト」は、読み出し専用パラメータがリングバス102又は103上のPOSownに到達するまでのデータ転送の回数に対応する。したがって、シフト距離「シフト」はPOSownからPOSIMEMを引くことによって計算することができる。
Shift distance "shift" is read-only parameter corresponds to the number of data transfers to reach the POS own on
シフト距離「シフト」は、データ(読み出し専用パラメータ)がPOSIMEM からPOSownに到達するまでのデータ転送の回数に対応する符号付きの整数である。例えば、POSown=4かつPOSIMEM=6の場合、シフト距離「シフト」は−2である。また、POSown=6かつPOSIMEM=3の場合、シフト距離「シフト」は+3である。 Shift distance "shift", the data (read-only parameter) is an integer with a code corresponding to the number of data transfers to reach POS own from POS IMEM. For example, when POS own = 4 and POS IMEM = 6, the shift distance “shift” is −2. In addition, when POS own = 6 and POS IMEM = 3, the shift distance “shift” is +3.
シフト距離「シフト」は複数のPE101で並列的に計算される。なお、AddrDMEM及びPE_PER_GROUPはCP100から各PE101に送られる。また、各PE101は事前にPOSownを保持している。
The shift distance “shift” is calculated in parallel by a plurality of
各シフト距離「シフト」は以下の式によって計算される。 Each shift distance “shift” is calculated by the following equation.
「シフト」 =POSown−POSIMEM
=(PEown%(PE_PER_GROUP))−(AddrDMEM % (PE_PER_GROUP )) ・・・ (3)
"Shift" = POS own -POS IMEM
= (PE own% (PE_PER_GROUP) ) - (Addr DMEM% (PE_PER_GROUP)) ··· (3)
ここで、「%」はモジュロ演算を意味している。 Here, “%” means a modulo operation.
上述の式(3)で表されるように、シフト距離「シフト」はPOSownとPOSIMEMとの間の距離に基づいて計算される。シフト距離「シフト」の絶対値はデータを取得するために必要なシフトの回数を規定し、シフト距離「シフト」の符号はシフトの方向を規定する。 As represented by equation (3) above, the shift distance “shift” is calculated based on the distance between POS own and POS IMEM . The absolute value of the shift distance “shift” defines the number of shifts necessary to acquire data, and the sign of the shift distance “shift” defines the direction of the shift.
すなわち、シフト距離「シフト」の符号が正であるか負であるかに応じて、データ(読み出し専用パラメータ)がリングバス102及び103のどちらから取得されるかが決定される。例えば、シフト距離「シフト」の符号が正である場合、データはリングバス102から取得され、符号が負である場合、データはリングバス103から取得される。
In other words, depending on whether the sign of the shift distance “shift” is positive or negative, it is determined which of the
次に、図9を参照してcmpmv部123の構造を説明する。図9は各PE101におけるcmpmv部123の構造を示しているブロック図である。cmpmv部123は入力値の比較処理、及び比較結果に応じた転送処理を実行する。
Next, the structure of the
リングバス102及び103上のシフトの回数がSRC2として入力される。SRC2は符号なしの値、すなわち、正の値である。また、予め計算されたシフト距離「シフト」がSRC3として入力される。
The number of shifts on the
なお、シフト距離「シフト」は符号付きの値である。すなわち、シフト距離「シフト」の最上位ビット(MSB)は符号を表す。例えば、シフト距離「シフト」の最上位ビットが1の場合、シフト距離「シフト」は負であり、最上位ビットが0の場合、シフト距離「シフト」は正である。すなわち、シフト距離「シフト」の最上位ビットは符号を表す符号ビットである。なお、シフト距離「シフト」は式(3)に基づいて各PE101により計算される。
The shift distance “shift” is a signed value. That is, the most significant bit (MSB) of the shift distance “shift” represents a sign. For example, when the most significant bit of the shift distance “shift” is 1, the shift distance “shift” is negative, and when the most significant bit is 0, the shift distance “shift” is positive. That is, the most significant bit of the shift distance “shift” is a sign bit representing a sign. The shift distance “shift” is calculated by each
加算/減算部501は符号なしSRC2と符号ありSRC3の加算/減算を行う。この処理のために、SRC3の符号ビットはインバータ502に入力される。インバータ502はSRC3の符号ビットを反転する。SRC3の符号ビットが反転され、モード信号「モード」として出力される(図10を参照)。反転されたビットは加算/減算部のモードを決定するモード信号「モード」となる。インバータ502は反転されたビットをモード信号「モード」として加算/減算部501に出力する。
The addition /
上述したように、シフト距離「シフト」が負の場合、符号ビットの値は1である。この場合、インバータ502は反転ビットの値を0に設定する。反転されたビットの値が0の場合、加算/減算部501は加算モードに移行する。すなわち、加算/減算部501はSRC2とSRC3との和を計算する。
As described above, when the shift distance “shift” is negative, the value of the sign bit is 1. In this case, the
一方、シフト距離「シフト」が正の場合、符号ビットの値は0である。この場合、インバータ502は反転ビットの値を1に設定する。そして、インバータ502は反転されたビットを加算/減算部501に出力する。反転されたビットの値が1の場合、加算/減算部501は減算モードに移行し、SRC2とSRC3との差を計算する。すなわち、加算又は減算が実行され、TMP3が出力される(図10を参照)。
On the other hand, when the shift distance “shift” is positive, the value of the sign bit is 0. In this case, the
上述したように、インバータ502は、モードを切り替える加算/減算部501のために使用される。詳細には、インバータ502はシフト距離「シフト」の符号ビットを受信する。そして、加算/減算部501はシフト距離「シフト」の符号、すなわち、最上位ビットMSBにしたがって加算モードと減算モードとの間の切り換えを行う。すなわち、加算/減算部501はインバータ502の出力にしたがってモードを切り替えながら、加算モード及び減算モードを実行する。すなわち、加算/減算部501は排他的に加算又は減算を行う。したがって、加算/減算部501はSRC2とSRC3との和又は差をTMP3として出力する。
As described above, the
SRC2とSRC3との和又は差はTMP3として判定部503に入力される。判定部503はTMP3が0であるかどうかを判定する。SRC2とSRC3の絶対値が互いに等しい場合、TMP3は0になる。詳細には、TMP3の全てのビット値が0である場合、TMP3は0となる。そして、TMP3が0である場合、判定部503は、TMP3が0であることを示す信号DST2を出力する。例えば、TMP3=0のときDST2=1となり、TMP3が0以外の値であるときDST2=0となる。すなわち、TMP3が0であるかどうかが決定され、DST2が出力される(図10を参照)。このように、判定部503から、TMP3が0であるかどうかを示す信号DST2が出力される。
The sum or difference between SRC2 and SRC3 is input to
PE101はDST2=1への応答でリングバス102又は103から読み出し専用パラメータのデータを取得する。すなわち、読み出し専用パラメータを取得するタイミングが決定される。
The
次に、PE101がリングバス102及び103のどちらから読み出し専用パラメータを取得すべきかを決定するための処理を説明する。この処理のために、SRC4及びSRC5がマルチプレクサ504に入力される。また、マルチプレクサ504は入力ライン「CTRL」を介してSRC3の符号ビットを受け取る。
Next, a process for determining which of the
SRC4の値は時計回りリングバス102上の現在の値である。SRC5の値は反時計回りリングバス103上の現在の値である。マルチプレクサ504の入力ラインCTRLが0の場合、SRC4がマルチプレクサ504を通過する。一方、マルチプレクサ504の入力ラインCTRLが1の場合、SRC5がマルチプレクサ504を通過する。すなわち、マルチプレクサ504はSRC3の符号ビットにしたがって、PEownがそこから読み出し専用パラメータを取り出すべきリングバスを決定する(図10を参照)。
The value of SRC4 is the current value on the
例えば、SRC3の符号が正である場合、SRC4の値がDST3として出力される。この場合、時計回りリングバス102が選択されたことになる。一方、SRC3の符号が負である場合、SRC5の値がDST3として出力される。この場合、反時計回りリングバス103が選択されたことになる。
For example, when the sign of SRC3 is positive, the value of SRC4 is output as DST3. In this case, the
そして、DST2が1である場合、PE101は選択されたリングバスから読み出し専用パラメータを取得する。
When DST2 is 1, the
図11を参照して、分割部122及びcmpmv部123によって実行される処理動作を詳細に説明する。なお、以下の例は、全てのPE101が並列処理において単一かつ同一読み出し専用パラメータを使用するもとして説明する。そのようなケースは非ブロック化フィルタを使用する画像処理等で発生する。
With reference to FIG. 11, the processing operation performed by the dividing
図11は各PE101におけるデータ処理方法を示しているフローチャートである。すなわち、図11に示されているデータ処理は各PE101で実行される。
FIG. 11 is a flowchart showing a data processing method in each
CP100から各PE101に対して、DMEM106に保持されている並列処理に必要な読み出し専用パラメータのアドレスが転送される。例えば、SIMDモードにて非ブロック化フィルタ処理が実行される場合、CP100から並列処理に必要な読み出し専用パラメータのAddrDMEM及びPE_PER_GROUPが転送される。
The address of the read-only parameter necessary for parallel processing held in the
そして、各PE101の分割部122は読み出し専用パラメータのAddrIMEMを計算する(ステップS101)。すなわち、各PE101はAddrDMEM及びPE_PER_GROUPを使用して、上述の式(1)によりAddrIMEMを得る。
Then, the dividing
次に、必要な読み出し専用パラメータが保持されているIMEM107のリングバス102及び103上の位置が計算される(ステップS102)。すなわち、各PE101はPOSIMEMを計算する。上述したように、POSIMEMはAddrDMEM及びPE_PER_GROUPを使用したモジュロ演算を実行することによって計算される。
Next, the positions of the
ここで、ステップS101及びS102は分割部122によって実行される。図7に示されているDST0を出力するステップを含む処理はステップS101に対応する。図7に示されているDST1を出力するステップを含む処理はステップS102に対応する。
Here, steps S <b> 101 and S <b> 102 are executed by the dividing
次に、各PE101はシフト距離「シフト」を計算する(ステップS103)。
「シフト」=POSown−POSIMEM
=(PEown%(PE_PER_GROUP))−(AddrDMEM % (PE_PER_GROUP)) ・・・ (3)
Next, each
"Shift" = POS own -POS IMEM
= (PE own% (PE_PER_GROUP) ) - (Addr DMEM% (PE_PER_GROUP)) ··· (3)
次に、各PE101はアドレス(AddrIMEM)及び制御信号をIMEM107に転送する(ステップS104)。各PE101はAddrIMEMに対応する読み出し専用パラメータを取得するための命令を各IMEM107に送る。
Next, each
そして、各IMEM107の出力がリングバス102及び103の両方に送られる(ステップS105)。詳細には、PE101がIMEM107からIMEM107内のAddrIMEMの位置に格納された読み出し専用パラメータを受け取り、その読み出し専用パラメータをリングバス102及び103に転送する。
Then, the output of each
次に、予め計算されたシフト距離「シフト」が0であるかどうかが判定される(ステップS106)。すなわち、各PE101は、それ自身のIMEM107に読み出し専用パラメータが格納されているかどうかを判定する。予め計算されたシフト距離「シフト」が0である場合(ステップS106でYES)、PE101はそれ自身のIMEM107の出力を受け取る(ステップS107)。
Next, it is determined whether or not the pre-calculated shift distance “shift” is 0 (step S106). That is, each
詳細には、PE101はPE101に対応するIMEM107に格納されている読み出し専用パラメータを取得する。もちろん、読み出し専用パラメータはシフトレジスタ105から取得されてもいいし、又はIMEM107から取得されてもよい。すなわち、シフト距離「シフト」が0に等しいPE101については、読み出し専用パラメータはシフトされる前に取得される。そして、シフト距離「シフト」が0に等しいPE101については、読み出し専用パラメータを取得するための処理は終了する(ステップS108)。
Specifically, the
予め計算されたシフト距離「シフト」が0でない場合(ステップS106でNO)、読み出し専用パラメータはリングバス上でシフトされる。cmpmv部123はリングバス102及び103上のシフト回数をシフト距離「シフト」の絶対値と比較する(ステップS109)。リングバス102及び103上のシフト回数がシフト距離「シフト」の絶対値より小さい場合、(ステップS109でNO)、読み出し専用パラメータは再度、シフトされる。すなわち、読み出し専用パラメータは、リングバス102及び103上で行われたシフト回数が予め計算されたシフト距離「シフト」の絶対値に等しくなるまで繰り返しシフトされる。
If the pre-calculated shift distance “shift” is not 0 (NO in step S106), the read-only parameter is shifted on the ring bus. The
そして、シフト距離「シフト」がリングバス上のシフト回数と等しくなったとき(ステップS109でYES)、シフト距離「シフト」が0より大きいかどうかを判定する。すなわち、シフト距離「シフト」の符号を判定する。 When the shift distance “shift” becomes equal to the number of shifts on the ring bus (YES in step S109), it is determined whether the shift distance “shift” is greater than zero. That is, the sign of the shift distance “shift” is determined.
符号が負である場合(ステップS110でNO)、反時計回りリングバス103から読み出し専用パラメータのデータが取得される(ステップS111)。符号が正である場合(ステップS110でYES)、時計回りリングバス102から読み出し専用パラメータのデータが取得される(ステップS112)。 If the sign is negative (NO in step S110), read-only parameter data is acquired from the counterclockwise ring bus 103 (step S111). If the sign is positive (YES in step S110), read-only parameter data is acquired from the clockwise ring bus 102 (step S112).
ここで、ステップS109〜S112はcmpmv部123によって実行される。図9に示されているDST2を出力するステップを含む処理はステップS109に対応する。図9に示されているDST3を出力するステップを含む処理はステップS110〜S112に対応する。
Here, steps S109 to S112 are executed by the
上述の方法により、読み出し専用パラメータがリングバス102及び103を介して転送される。そして、各PE101は処理のために必要な読み出し専用パラメータを取得する。取得された読み出し専用パラメータは各PE101に組み込まれているレジスタに格納される。そして、各PE101は読み出し専用パラメータを使用して処理(例えば、非ブロック化フィルタ処理)を実行する。当然のことながら、各PE101はSIMDモードで処理を実行する。
Read-only parameters are transferred via the
次に、図12を参照してCP100にて実行される処理動作を説明する。図12はリングバスのシフト動作を制御するためにCP100で実行される処理動作を示している。まず、全てのPE101が読み出し専用パラメータの取得を既に完了しているかどうかを判定する(ステップS201)。全てのPE101が読み出し専用パラメータを既に取得している場合(ステップS201でYES)、CP100において実行される処理は終了する。
Next, processing operations executed in the
少なくともいずれかのPE101が読み出し専用パラメータの取得を完了していない場合(ステップS201でNO)、CP100はリングバス102及び103上で読み出し専用パラメータを1回シフトする(ステップS202)。さらに、シフト回数をカウントしているシフトカウンタを1つ増大させる(ステップS203)。そして、ステップS201に戻り、全てのPE101が読み出し専用パラメータの取得を完了するまで同様な処理を繰り返す。
If at least one of the
次に、本実施形態の効果について説明する。 Next, the effect of this embodiment will be described.
(1)読み出し専用パラメータは特許文献2に開示されているように16個のPEを含むPEグループに分散されて格納されているが、特許文献2とは異なる様式で格納されており、これらの読み出し専用パラメータは(複数の)PEによって同一のグローバルアドレスで同時に読み出される。この構成はPE101間のアドレス情報の転送の必要性を無くす。すなわち、PE101間で読み出し専用パラメータの位置情報を転送する必要がない。各PE101は正確な位置情報を事前に通知されているので、各PE101はどのPE101が必要な読み出し専用パラメータを保持しているかを認識している。読み出し専用パラメータのAddrIMEMはPEによって計算され、読み出し専用パラメータを要求しているPE101と該読み出し専用パラメータを保持しているPE101との距離は事前に、PE101によって並列的に計算することができる。結果として、データ処理の効率は劇的に改善される。
(1) The read-only parameters are distributed and stored in a PE group including 16 PEs as disclosed in
(2)読み出し専用パラメータがIMEM107に分散されて格納されている場合であっても、アクセスのために必要な処理時間を短縮することができる。反対向きの転送方向を有する2つのリングバス102及び103がPE101に接続されており、それによって処理時間を約半分に短縮することができる。すなわち、シフト回数の最大値をPE101の数の半分に減らすことができる。したがって、図1に示されている例において、全てのPE101が必要な読み出し専用パラメータを取得するためにリングバスは最大でも8回シフトされればよい。
(2) Even when read-only parameters are distributed and stored in the
(3)上述した方法により、他のIMEM107に格納されているデータを使用して算術処理を行うことができる。すなわち、複数のPE101が処理を実行するために必要な読み出し専用パラメータを他のIMEM107に格納することができる。また、DMEM106の読み出し専用パラメータデータを複数のIMEM107に分散して格納することができる。結果として、IMEM107の容量を減少させることができる。
(3) By the method described above, arithmetic processing can be performed using data stored in another
(4)分割部122の使用は1クロックサイクルでの分割処理を可能にする。図7に示されている分割部122の各機能部は1クロックサイクルで単一の動作として実行される。したがって、図8に示されているように、この新規の機能部は必要なクロックサイクルを4サイクルから1サイクルに短縮させることができる。分割部122の4つの機能が中間信号を遅れさせるバッファやレジスタを使用せずに、同一のクロックサイクルで処理されるという理由により、このクロックサイクルの短縮が実現される。
(4) Use of the
(5)図9に示されているcmpmv部123の各機能部も1クロックサイクルで単一の動作として実行される。したがって、図10に示されているように、この新規の機能部は必要なクロックサイクルを4サイクルから1サイクルに短縮させることができる。cmpmv部123の4つの機能が中間信号を遅れさせるバッファやレジスタを使用せずに、同一のクロックサイクルで処理されるという理由により、このクロックサイクルの短縮が実現される。
(5) Each functional unit of the
(実施の形態2)
上述した単一命令多重データ処理(SIMD)を実行するデータ処理装置は好ましくは、並列画像プロセッサに適用することができる。上述のアーキテクチャをH.264非ブロック化フィルタに対して利用したケースを以下に説明する。
(Embodiment 2)
The data processing apparatus that performs the single instruction multiple data processing (SIMD) described above is preferably applicable to a parallel image processor. The above architecture is described in H.264. The case used for the H.264 deblocking filter will be described below.
図13はH.264ビデオデコーダのデコードループ208を示しているブロック図である。H.264非ブロック化フィルタ201はインター予測部203及びイントラ予測部205とともにデコードループ208内で動作する閉ループフィルタである。非ブロック化フィルタ(デブロッキングフィルタ)201はローパスフィルタ(LPF)として使用される。
FIG. 2 is a block diagram illustrating a
デコードループ208はさらに、加算部207、選択部206、参照フレームメモリ204、及び実フレームメモリ202を備える。加算部207はエラー信号200と、H.264デコーダのデコードループで復号された画像の再構成画素値とを加算する。デコーダで画像を復号するために、イントラ予測及びインター予測の2つの技術が利用される。インター予測においては、画像を復号するために既に復号されているフレームの画素値が使用される。一方、イントラ予測では、現在処理されているマクロブロックを復号するために、実フレームの既に復号されている隣接するマクロブロックのデータが使用される。
The
ここで、イントラ予測とインター予測の選択はH.264ビデオエンコーダで実行される。エラー信号とともに、イントラ予測及びインター予測のどちらか一方を選択するための信号がH.264ストリーム内の副次的情報としてH.264デコーダに転送される。実フレームメモリ202は実フレームを格納するためのフレームメモリである。参照フレームメモリ204はインター予測で使用される参照フレームを格納するためのメモリである。高い圧縮比での符号化の場合、非ブロック化フィルタ(デブロッキングフィルタ)201で、ブロックに伴う損失の多い復号が緩和される。
Here, the selection of intra prediction and inter prediction is H.264. H.264 video encoder. A signal for selecting either intra prediction or inter prediction together with the error signal is H.264. H.264 as side information in the H.264 stream. H.264 decoder. The
ここで、図14を参照してH.264非ブロック化フィルタ201におけるマクロブロックについて説明する。図14はマクロブロックを示している図である。
Here, referring to FIG. A macroblock in the H.264
非ブロック化フィルタ201に対しては、同一の画像内容を記述する2つの異なるマクロブロック300又はサブブロック301における2つの画素303は、2つの画素の独立した予測及び符号化の後、ブロック境界302の両側で異なる復号値の結果となる。非ブロック化フィルタ201はそのような復号値の間の差を、差の大きさの推定値に応じて緩和する。
For the
この差は量子化によって生じているので、この差の大きさは量子化ノイズに関係している。それゆえ、2つのパラメータ「a」及び「C0」が導入される。パラメータ「a」及び「C0」は量子化ステップの大きさに比例し、かつノイズ分散の平方根に比例する。さらに、第3のパラメータ「β」が導入される。これら全てのパラメータはブロックエッジへの、フィルタの容認可能な影響を決定する。パラメータ「a」及び「C0」がブロックの大きさに関係するのに対し、パラメータ「β」はブロック境界302の近傍の信号の平坦性に関係し、したがって可視度に関係する。
Since this difference is caused by quantization, the magnitude of this difference is related to quantization noise. Therefore, two parameters “a” and “C0” are introduced. The parameters “a” and “C0” are proportional to the magnitude of the quantization step and proportional to the square root of the noise variance. Furthermore, a third parameter “β” is introduced. All these parameters determine the acceptable effect of the filter on the block edge. The parameters “a” and “C0” are related to the block size, whereas the parameter “β” is related to the flatness of the signal in the vicinity of the
非ブロック化フィルタの輝度成分について説明する。図14に示されているように、単一のマクロブロック300が16×16の画素303を含むとする。マクロブロックの単一のエッジ302に16回のフィルタ動作が実行される。なお、図14はH.264ビデオデコーダの非ブロック化フィルタ処理で使用されるマクロブロック構造を示している。
The luminance component of the deblocking filter will be described. As shown in FIG. 14, assume that a
各マクロブロック300はさらに16個のサブブロック301に分割される。単一のサブブロック301は4×4の画素303を含む。各エッジ302は2つの隣接するサブブロック301の間に延びている。1つのエッジを処理するために、エッジの片側4個ずつ、計8個の画素が必要である。
Each
これらの16回のフィルタ動作が図1に示されている16(NO_OF_PE)個のPE101にマッピングされた場合、16回のフィルタ動作は全て、単一のPEグループで並列的に処理される(PE_PER_GROUP = NO_OF_PE = 16個のPE)。画像データ自体に加え、非ブロック化フィルタ処理には読み出し専用パラメータ(a、β、C0)の表が必要である。また、画像データ及び読み出し専用パラメータの表に加え、各エッジに対して表のインデックスに等しいアドレスが必要である。
If these 16 filter operations are mapped to 16 (NO_OF_PE)
例えば、非ブロック化フィルタ処理のために必要な読み出し専用パラメータa、β、C0はDMEM106から転送され、PEグループの全てのIMEMに分散されて格納される。データがイントラ予測を使用して復号される場合、全てのPE101によって同一の読み出し専用パラメータが読み出されるだろう。詳細には、非ブロック化フィルタ処理において、複数のPE101は同一の値のパラメータを読み出すことによって並列処理を実行する。この場合、CP100は同一のパラメータセットを読み込むための命令を送信する。そして、全てのPE101は同一の値のパラメータを読み込む。16個のPE101は同一の値のパラメータを読み込むことによって並列処理を実行する。上の例では、全てのPE101が同一の値のパラメータを読み込むデータ処理方法について説明した。
For example, the read-only parameters a, β, and C0 necessary for the deblocking filter processing are transferred from the
本発明はそれの実施形態を参照しながら開示及び説明されてきたが、本発明はこれらの実施形態に限定されるものではない。当業者には、請求の範囲によって規定される本発明の意図及び範囲から外れることなく、これらの実施形態の形状や詳細に対して多様な変更を加えることができることが明白であるだろう。 Although the invention has been disclosed and described with reference to embodiments thereof, the invention is not limited to these embodiments. It will be apparent to those skilled in the art that various modifications can be made to the shapes and details of these embodiments without departing from the spirit and scope of the invention as defined by the claims.
多様な処理を実行する構成要素は機能部又はブロックとして記載されてきたが、それらの機能部又はブロックを手段に置き換えることも可能である。上述の説明では、例としてSIMD技術を利用する処理要素が説明されたが、本発明は他の処理要素に対して適用することもできる。例えば、非ブロック化フィルタ処理以外の並列処理を実行する処理要素が利用されてもよい。 Although the component which performs various processes has been described as a function part or a block, it is also possible to replace the function part or block with a means. In the above description, a processing element using SIMD technology has been described as an example, but the present invention can also be applied to other processing elements. For example, a processing element that executes parallel processing other than deblocking filter processing may be used.
図7に示されているように、SRC0は右方向にシフトされ、TMP0は左方向にシフトされているが、これらのシフト方向は反転されてもよい。例えば、アドレスAddrDMEM、アドレスAddrIMEM、及び位置POSIMEMの全体構造が反転された場合、シフト方向も反転される。ここで、用語「反転された」は最下位ビットが左側に配置され、最上位ビットが右側に配置されることを意味する。それゆえ、この場合、SRC0は左方向にシフトされ、TMP0は右方向にシフトされる。 As shown in FIG. 7, although SRC0 is shifted to the right and TMP0 is shifted to the left, these shift directions may be reversed. For example, when the entire structure of the address Addr DMEM , the address Addr IMEM , and the position POS IMEM is inverted, the shift direction is also inverted. Here, the term “inverted” means that the least significant bit is arranged on the left side and the most significant bit is arranged on the right side. Therefore, in this case, SRC0 is shifted leftward and TMP0 is shifted rightward.
実施形態1としてリングバス102及びリングバス103の両方を備えるアーキテクチャが示されたが、リングバス102だけを備えるアーキテクチャが採用されてもよい。この場合、「シフト」はリングバス102のシフト方向とともに計算されなければならない。そして、加算/減算の切り替えは不要であり、マルチプレクサ504の選択動作も不要である。このアーキテクチャにおいては、より多くのリングバス102のシフト動作が必要となるだろうが、分散的に格納された読み出し専用パラメータの使用効率は十分に改善されるだろう。
Although the architecture including both the
<文献の引用>
この出願は、2009年3月30日に出願された国際出願PCT/JP2009/057020を基礎とする優先権を主張し、その開示の全てをここに取り込む。
<Citation of literature>
This application claims priority based on international application PCT / JP2009 / 057020, filed on March 30, 2009, the entire disclosure of which is incorporated herein.
本発明は並列処理を実行するデータ処理装置、データ処理システム、及びデータ処理方法に適用することができる。 The present invention can be applied to a data processing apparatus, a data processing system, and a data processing method that execute parallel processing.
100…CP
101…PE
102…時計回り方向リングバス
103…反時計回り方向リングバス
104…接続
105…シフトレジスタ
106…DMEM
107…IMEM
121…ALU
122…分割部
123…cmpmv部
201…非ブロック化フィルタ
202…実フレームメモリ
203…インター予測部
204…参照フレームメモリ
205…イントラ予測部
206…切り替え部
207…加算部
208…デコード部
300…マクロブロック
301…サブブロック
302…エッジ
303…画素
401…ビット右シフタ
402…ビット左シフタ
403…インバータ
404…AND部
501…加算/減算部
502…符号ビットインバータ
503…判定部
504…マルチプレクサ
601…AddrIMEM
602…POSIMEM
603…境界
100 ... CP
101 ... PE
102:
107 ... IMEM
121 ... ALU
122 ... Dividing
602 ... POS IMEM
603 ... Boundary
Claims (10)
前記複数の処理要素の各々は、少なくとも1つのリングバスを介して1つの処理要素の内部メモリから他の処理要素に読み出し専用パラメータデータを並列的に転送するために、データメモリから前記読み出し専用パラメータデータを分散的に格納する前記内部メモリを有しており、
当該データ処理装置は、
前記データメモリ内の前記読み出し専用パラメータデータのアドレスを前記複数の処理要素の数に対応するビット位置で第1部分と第2部分に分割するための分割手段と、
前記少なくとも1つのリングバス上において前記読み出し専用パラメータデータをシフトさせる際のシフト動作の回数を求める比較手段であって、前記内部メモリの前記第1部分に応じたアドレスに配置された前記読み出し専用パラメータデータを取り出し、
アクセス対象の前記読み出し専用パラメータデータが格納されている前記処理要素の前記少なくとも1つのリングバス上の位置を指定するものであって、かつ、前記第2部分に対応する該アクセス対象の前記読み出し専用パラメータデータのグローバルアドレスの部分と、処理要素自身の位置と、の間の差を、前記リングバスのシフト動作の回数と比較して、この比較結果に基づいて前記読み出し専用パラメータデータを他の処理要素に取得させるための比較手段と、
を備えることを特徴とするデータ処理装置。 A data processing apparatus for performing parallel processing by a plurality of processing elements,
Each of the plurality of processing elements transmits the read-only parameter data from a data memory in parallel to transfer read-only parameter data from one processing element's internal memory to another processing element via at least one ring bus. The internal memory for storing data in a distributed manner;
The data processing device
Dividing means for dividing an address of the read-only parameter data in the data memory into a first part and a second part at bit positions corresponding to the number of the plurality of processing elements;
Comparing means for obtaining the number of shift operations when shifting the read-only parameter data on the at least one ring bus, the read-only parameter arranged at an address corresponding to the first portion of the internal memory Retrieve the data,
Designates a position on the at least one ring bus of the processing element in which the read-only parameter data to be accessed is stored, and the read-only access target corresponding to the second part The difference between the global address portion of the parameter data and the position of the processing element itself is compared with the number of shift operations of the ring bus, and the read-only parameter data is subjected to other processing based on the comparison result. A comparison means for the element to obtain,
A data processing apparatus comprising:
前記複数の処理要素の数をNOPEとしたときに、前記ビット位置がlog2 (NOPE)によって決定され、
前記第1部分が前記データメモリの前記アドレスの上位部分であって、前記ビット位置の左側に位置しており、
前記第2部分が前記データメモリの前記アドレスの下位部分であって、前記ビット位置の右側に位置している
ことを特徴とするデータ処理装置。 The data processing apparatus according to claim 1,
When the number of the plurality of processing elements is NO PE , the bit position is determined by log 2 (NO PE ),
The first part is the upper part of the address of the data memory and is located to the left of the bit position;
The data processing apparatus, wherein the second part is a lower part of the address of the data memory and is located on the right side of the bit position.
前記分割手段が、
前記データメモリの前記アドレスを前記複数の処理要素の数に対応するビット数分だけ右方向にシフトすることによって右シフト値を計算するための論理右シフト手段と、
ビット数が前記データメモリの前記アドレスのビット数に等しく、全てのビットが1である固定値を前記複数の処理要素の数に対応するビット数分だけ左方向にシフトすることによって左シフト値を計算するための論理左シフト手段と、
前記左シフト値を反転することによって反転値を計算するためのインバータ手段と、
前記反転値と前記データメモリの前記アドレスとの論理積を計算するための論理積手段と、を備える
ことを特徴とするデータ処理装置。 The data processing apparatus according to claim 1 or 2,
The dividing means is
Logical right shift means for calculating a right shift value by shifting the address of the data memory to the right by the number of bits corresponding to the number of processing elements;
The left shift value is obtained by shifting a fixed value in which the number of bits is equal to the number of bits of the address of the data memory and all the bits are 1 by the number of bits corresponding to the number of processing elements to the left Logical left shift means for calculating;
Inverter means for calculating an inverted value by inverting the left shift value;
A data processing apparatus comprising: AND means for calculating a logical product of the inverted value and the address of the data memory.
前記少なくとも1つのリングバスが、互いにシフト方向が反対向きである2つのリングバスを備える
ことを特徴とするデータ処理装置。 The data processing device according to any one of claims 1 to 3,
The data processing apparatus, wherein the at least one ring bus includes two ring buses whose shift directions are opposite to each other.
前記比較手段は、
前記シフト動作の回数と、前記処理要素自身の位置と前記グローバルアドレスの部分との間の差と、の加算処理又は減算処理を実行するための加算/減算手段と、
前記差の符号に応じて、前記加算/減算手段の処理を前記加算処理と前記減算処理との間で切り替えるための手段と、
前記加算/減算手段の出力がゼロかどうかを判定するための判定手段と、
前記差の前記符号に応じて前記2つのリングバスのうち、そこから前記読み出し専用パラメータデータを取り出す1つのリングバスを選択するための選択手段と、を備え、
前記グローバルアドレスの部分とは、前記アクセス対象の前記読み出し専用パラメータデータが格納されている前記処理要素の前記少なくとも1つのリングバス上の位置を指定する該アクセス対象の読み出し専用パラメータデータの前記グローバルアドレスの部分であり、
前記シフト動作の回数が符号なしの値として与えられ、前記差が符号ありの値として与えられる
ことを特徴とするデータ処理装置。 The data processing apparatus according to claim 4, wherein
The comparison means includes
An addition / subtraction means for performing an addition process or a subtraction process between the number of shift operations and the difference between the position of the processing element itself and the part of the global address;
Means for switching the process of the addition / subtraction means between the addition process and the subtraction process according to the sign of the difference;
Determination means for determining whether the output of the addition / subtraction means is zero;
Selecting means for selecting one ring bus from which the read-only parameter data is taken out of the two ring buses according to the sign of the difference,
The global address portion is the global address of the read-only parameter data to be accessed that specifies the position on the at least one ring bus of the processing element in which the read-only parameter data to be accessed is stored Part of
The number of shift operations is given as an unsigned value, and the difference is given as a signed value.
前記データメモリ内の前記読み出し専用パラメータデータのアドレスを前記複数の処理要素の数に対応するビット位置で第1部分と第2部分に分割すること、
前記第1部分に応じたアドレスの前記内部メモリから取り出した前記読み出し専用パラメータデータの前記少なくとも1つのリングバス上のシフト動作の回数を、処理要素自身の位置と、アクセス対象の前記読み出し専用パラメータデータが格納されている前記処理要素の前記少なくとも1つのリングバス上の位置を指定し、前記第2部分に対応する該アクセス対象の読み出し専用パラメータデータのグローバルアドレスの部分と、の間の差と、比較して、前記他の処理要素に比較結果に応じて前記読み出し専用パラメータを取得させること、を含む
ことを特徴とするデータ処理方法。 A data processing method for performing parallel processing by a plurality of processing elements, wherein each of the plurality of processing elements is read-only from an internal memory of one processing element to another processing element via at least one ring bus In order to transfer parameter data in parallel, the internal memory that stores the read-only parameter data in a distributed manner from a data memory,
Dividing the address of the read-only parameter data in the data memory into a first portion and a second portion at bit positions corresponding to the number of the plurality of processing elements;
The number of shift operations on the at least one ring bus of the read-only parameter data fetched from the internal memory at the address corresponding to the first part is determined by the position of the processing element itself and the read-only parameter data to be accessed. A position between the processing element on which the at least one ring bus is stored and a global address portion of the read-only parameter data to be accessed corresponding to the second portion; Comparing and causing the other processing element to acquire the read-only parameter according to the comparison result. A data processing method, comprising:
前記分割することが、
前記データメモリの前記アドレスを前記複数の処理要素の数に対応するビット数分だけ右方向にシフトすることによって右シフト値を計算すること、
ビット数が前記データメモリの前記アドレスのビット数に等しく、全てのビットが1である固定値を前記複数の処理要素の数に対応するビット数分だけ左方向にシフトすることによって左シフト値を計算すること、
前記左シフト値を反転することによって反転値を計算すること、
前記反転値と前記データメモリの前記アドレスとの論理積を計算すること、を含む
ことを特徴とするデータ処理方法。 The data processing method according to claim 6,
The division is
Calculating a right shift value by shifting the address of the data memory to the right by the number of bits corresponding to the number of the plurality of processing elements;
The left shift value is obtained by shifting a fixed value in which the number of bits is equal to the number of bits of the address of the data memory and all the bits are 1 by the number of bits corresponding to the number of the processing elements to the left. Calculating,
Calculating an inversion value by inverting the left shift value;
And calculating a logical product of the inverted value and the address of the data memory.
前記少なくとも1つのリングバスが、互いにシフト方向が反対向きである2つのリングバスを備える
ことを特徴とするデータ処理方法。 The data processing method according to claim 6 or 7,
The data processing method, wherein the at least one ring bus includes two ring buses whose shift directions are opposite to each other.
前記比較することが、
前記シフト動作の回数と、前記処理要素自身の位置と前記グローバルアドレスの部分との間の差と、の加算処理又は減算処理を実行すること、
前記差の符号に応じて、前記加算/減算ステップの処理を前記加算処理と前記減算処理との間で切り替えること、
前記加算/減算手段の出力がゼロかどうかを判定すること、
前記差の前記符号に応じて前記2つのリングバスのうち、そこから前記並列処理データを取り出す1つのリングバスを選択すること、を含み、
前記グローバルアドレスの部分とは、前記アクセス対象の前記読み出し専用パラメータデータが格納されている前記処理要素の前記少なくとも1つのリングバス上の位置を指定する該アクセス対象の読み出し専用パラメータデータの前記グローバルアドレスの部分であり、
前記シフト動作の回数が符号なしの値として与えられ、前記差が符号ありの値として与えられる
ことを特徴とするデータ処理方法。 The data processing method according to claim 8, wherein
Said comparing
Performing an addition process or a subtraction process between the number of shift operations and the difference between the position of the processing element itself and the part of the global address;
Switching the process of the addition / subtraction step between the addition process and the subtraction process according to the sign of the difference;
Determining whether the output of the addition / subtraction means is zero;
Selecting one ring bus from which the parallel processing data is taken out of the two ring buses according to the sign of the difference,
The global address portion is the global address of the read-only parameter data to be accessed that specifies the position on the at least one ring bus of the processing element in which the read-only parameter data to be accessed is stored Part of
The data processing method, wherein the number of shift operations is given as an unsigned value, and the difference is given as a signed value.
並列処理をするための複数の処理要素であって、前記データメモリ内の読み出し専用パラメータデータのアドレスを該複数の処理要素の数に対応するビット位置で第1部分と第2部分に分割する複数の処理要素と、
各々が前記複数の処理要素の1つに対応して備えられた、前記データメモリから前記読み出し専用パラメータデータを分散的に格納する複数の内部メモリと、
前記第1部分に応じたアドレスの前記内部メモリから取り出した前記読み出し専用パラメータデータを転送するために前記複数の処理要素に接続された少なくとも1つのリングバスと、
前記少なくとも1つのリングバス上の前記読み出し専用パラメータデータのシフト動作の回数をカウントするための中央プロセッサと、を備えた並列処理をするためのデータ処理システムであって、
前記複数の処理要素が、前記シフト動作の回数と、処理要素自身の位置とグローバルアドレスの部分との間の差と、の比較結果に基づいて、同時に、前記リングバスに読み出し専用パラメータデータを乗せ、前記少なくとも1つのリングバスから前記読み出し専用パラメータデータを取得する、並列処理をするためのデータ処理システム。
ここで、前記グローバルアドレスの部分とは、前記アクセス対象の前記読み出し専用パラメータデータが格納されている前記処理要素の前記少なくとも1つのリングバス上の位置を指定しておりかつ前記第2部分に対応する該アクセス対象の読み出し専用パラメータデータのグローバルアドレスの部分である。 A data memory for storing data;
A plurality of processing elements for performing parallel processing, wherein the address of the read-only parameter data in the data memory is divided into a first part and a second part at bit positions corresponding to the number of the plurality of processing elements Processing elements,
A plurality of internal memories each distributed corresponding to one of the plurality of processing elements and storing the read-only parameter data from the data memory;
At least one ring bus connected to the plurality of processing elements to transfer the read-only parameter data retrieved from the internal memory at an address corresponding to the first portion;
A central processor for counting the number of shift operations of the read-only parameter data on the at least one ring bus, and a data processing system for parallel processing comprising:
The plurality of processing elements simultaneously place read-only parameter data on the ring bus based on a comparison result between the number of shift operations and the difference between the position of the processing element itself and the global address portion. A data processing system for performing parallel processing for acquiring the read-only parameter data from the at least one ring bus.
Here, the portion of the global address designates a position on the at least one ring bus of the processing element in which the read-only parameter data to be accessed is stored, and corresponds to the second portion This is the global address portion of the read-only parameter data to be accessed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011540254A JP5488609B2 (en) | 2009-03-30 | 2009-09-25 | Single instruction multiple data (SIMD) processor having multiple processing elements interconnected by a ring bus |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009057020 | 2009-03-30 | ||
JPPCT/JP2009/057020 | 2009-03-30 | ||
JP2011540254A JP5488609B2 (en) | 2009-03-30 | 2009-09-25 | Single instruction multiple data (SIMD) processor having multiple processing elements interconnected by a ring bus |
PCT/JP2009/067282 WO2010113340A1 (en) | 2009-03-30 | 2009-09-25 | Single instruction multiple data (simd) processor having a plurality of processing elements interconnected by a ring bus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012522280A true JP2012522280A (en) | 2012-09-20 |
JP5488609B2 JP5488609B2 (en) | 2014-05-14 |
Family
ID=47016542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011540254A Active JP5488609B2 (en) | 2009-03-30 | 2009-09-25 | Single instruction multiple data (SIMD) processor having multiple processing elements interconnected by a ring bus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5488609B2 (en) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59132263A (en) * | 1982-10-28 | 1984-07-30 | タンダム・コンピユ−タ−ズ・インコ−ポレ−テツド | Network for multiprocessor system |
JPS60140456A (en) * | 1983-12-28 | 1985-07-25 | Hitachi Ltd | Parallel processing unit |
JPS641049A (en) * | 1986-09-05 | 1989-01-05 | Hitachi Ltd | Parallel computer |
JPH08161281A (en) * | 1994-12-06 | 1996-06-21 | Fujitsu Ltd | Address generator and method therefor |
JP2003216489A (en) * | 2002-01-24 | 2003-07-31 | Nec Computertechno Ltd | Distributed shared memory unit and distributed processing method |
WO2005041066A1 (en) * | 2003-10-24 | 2005-05-06 | Shinji Furusho | Distributed memory type information processing system |
JP2008003708A (en) * | 2006-06-20 | 2008-01-10 | Hitachi Ltd | Image processing engine and image processing system including the same |
JP2008509493A (en) * | 2004-08-13 | 2008-03-27 | クリアスピード テクノロジー パブリック リミテッド カンパニー | Processor memory system |
WO2008108005A1 (en) * | 2007-03-06 | 2008-09-12 | Nec Corporation | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled |
-
2009
- 2009-09-25 JP JP2011540254A patent/JP5488609B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59132263A (en) * | 1982-10-28 | 1984-07-30 | タンダム・コンピユ−タ−ズ・インコ−ポレ−テツド | Network for multiprocessor system |
JPS60140456A (en) * | 1983-12-28 | 1985-07-25 | Hitachi Ltd | Parallel processing unit |
JPS641049A (en) * | 1986-09-05 | 1989-01-05 | Hitachi Ltd | Parallel computer |
JPH08161281A (en) * | 1994-12-06 | 1996-06-21 | Fujitsu Ltd | Address generator and method therefor |
JP2003216489A (en) * | 2002-01-24 | 2003-07-31 | Nec Computertechno Ltd | Distributed shared memory unit and distributed processing method |
WO2005041066A1 (en) * | 2003-10-24 | 2005-05-06 | Shinji Furusho | Distributed memory type information processing system |
JP2008509493A (en) * | 2004-08-13 | 2008-03-27 | クリアスピード テクノロジー パブリック リミテッド カンパニー | Processor memory system |
JP2008003708A (en) * | 2006-06-20 | 2008-01-10 | Hitachi Ltd | Image processing engine and image processing system including the same |
WO2008108005A1 (en) * | 2007-03-06 | 2008-09-12 | Nec Corporation | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled |
Non-Patent Citations (2)
Title |
---|
JPN6013057203; Zvonko G. Vranesic et al.: 'Hector : A Hierarchically Structured Shared-Memory Multiprocessor' Computer Volume:24, Issue:1, 199101, Pages:72-79, IEEE * |
JPN6013057204; Jackson D. Bigham Jr.: 'A HIGHLY PARALLEL SIGNAL PROCESSOR' Proceedings of the IEEE 1990 Aerospace and Electronics Conference , 19900521, Pages:77-82, IEEE * |
Also Published As
Publication number | Publication date |
---|---|
JP5488609B2 (en) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6408524B2 (en) | System, apparatus and method for fusing two source operands into a single destination using a write mask | |
TWI496080B (en) | Transpose instruction | |
US7778494B2 (en) | FIR-based interpolation in advanced video codecs on VLIW processor | |
RU2586589C2 (en) | Module for coprocessor cache | |
JP2020533691A (en) | Efficient direct convolution using SIMD instructions | |
KR102283947B1 (en) | Four-dimensional morton coordinate conversion processors, methods, systems, and instructions | |
KR102118836B1 (en) | Shuffler circuit for rain shuffle in SIMD architecture | |
US9183614B2 (en) | Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets | |
KR20170033890A (en) | Bit shuffle processors, methods, systems, and instructions | |
JP2017538213A (en) | Method and apparatus for implementing and maintaining a stack of predicate values using stack synchronization instructions in an out-of-order hardware software co-design processor | |
JP3729540B2 (en) | Image processing device | |
US20100318766A1 (en) | Processor and information processing system | |
US20240037700A1 (en) | Apparatus and method for efficient motion estimation | |
Abel et al. | Applications tuning for streaming SIMD extensions | |
US20120030448A1 (en) | Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus | |
JP3729809B2 (en) | Data processing using a coprocessor | |
JP5853217B2 (en) | Processor | |
Babionitakis et al. | A real-time motion estimation FPGA architecture | |
JP5488609B2 (en) | Single instruction multiple data (SIMD) processor having multiple processing elements interconnected by a ring bus | |
JP2009282744A (en) | Computing unit and semiconductor integrated circuit device | |
CN116257208A (en) | Method and apparatus for separable convolution filter operation on matrix multiplication array | |
CN116266122A (en) | Register file virtualization: application and method | |
Bariani et al. | An Efficient Multi‐Core SIMD Implementation for H. 264/AVC Encoder | |
TWI610231B (en) | Apparatus and method for vector horizontal logical instruction | |
JP2010134891A (en) | Image processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120913 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140115 |
|
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: 20140128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5488609 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |