JP5488609B2 - リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ - Google Patents
リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ Download PDFInfo
- Publication number
- JP5488609B2 JP5488609B2 JP2011540254A JP2011540254A JP5488609B2 JP 5488609 B2 JP5488609 B2 JP 5488609B2 JP 2011540254 A JP2011540254 A JP 2011540254A JP 2011540254 A JP2011540254 A JP 2011540254A JP 5488609 B2 JP5488609 B2 JP 5488609B2
- Authority
- JP
- Japan
- Prior art keywords
- read
- data
- parameter data
- processing
- shift
- 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.)
- Active
Links
Images
Landscapes
- Multi Processors (AREA)
Description
(2)プレローディング
本発明の実施形態にしたがったデータ処理装置は単一命令多重データ処理(SIMD)を実行するプロセッサである。図1を参照して、本発明の実施形態にしたがったデータ処理装置を説明する。図1は本発明の実施形態にしたがったデータ処理装置900のアーキテクチャを示している概念的なブロック図である。図1に示されているように、このアーキテクチャは中央プロセッサ(CP)100、データメモリ(DMEM)106、処理要素(PE)101、内部メモリ(IMEM)107、リングバス102、リングバス103、接続104、及び、シフトレジスタ105を備える。
AddrIMEM=AddrDMEM/PE_PER_GROUP ・・・ (1)
(DST0,DST1)=split(AddrDMEM,log2(PE_PER_GROUP)) ・・・ (2)
=(PEown%(PE_PER_GROUP))−(AddrDMEM % (PE_PER_GROUP )) ・・・ (3)
「シフト」=POSown−POSIMEM
=(PEown%(PE_PER_GROUP))−(AddrDMEM % (PE_PER_GROUP)) ・・・ (3)
上述した単一命令多重データ処理(SIMD)を実行するデータ処理装置は好ましくは、並列画像プロセッサに適用することができる。上述のアーキテクチャをH.264非ブロック化フィルタに対して利用したケースを以下に説明する。
この出願は、2009年3月30日に出願された国際出願PCT/JP2009/057020を基礎とする優先権を主張し、その開示の全てをここに取り込む。
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…境界
Claims (10)
- 複数の処理要素によって並列処理をするためのデータ処理装置であって、
前記複数の処理要素の各々は、少なくとも1つのリングバスを介して1つの処理要素の内部メモリから他の処理要素に読み出し専用パラメータデータを並列的に転送するために、データメモリから前記読み出し専用パラメータデータを分散的に格納する前記内部メモリを有しており、
前記処理要素の各々は、
前記データメモリ内の前記読み出し専用パラメータデータのグローバルアドレスを前記処理要素の数に対応するビット位置で第1部分と第2部分に分割するための分割手段と、
前記内部メモリの前記第1部分に応じたアドレスに配置された前記読み出し専用パラメータデータを取り出し、前記読み出し専用パラメータデータを前記少なくとも1つのリングバスに送る手段と、
前記少なくとも1つのリングバス上において前記読み出し専用パラメータデータをシフトさせる際のシフト動作の回数を求める比較手段であって、アクセス対象の前記読み出し専用パラメータデータが格納されている前記内部メモリに対応する処理要素の前記少なくとも1つのリングバス上の位置を指定するものであって、かつ、前記第2部分に対応する、該アクセス対象の前記読み出し専用パラメータデータのグローバルアドレスの部分と、当該比較手段を備える処理要素自身の位置と、の間の差を、前記リングバスのシフト動作の回数と比較して、この比較結果に基づいて前記読み出し専用パラメータデータを前記少なくとも1つのリングバスから当該比較手段を備える処理要素自身に取得させるための比較手段と、
を備えることを特徴とするデータ処理装置。 - 請求項1に記載のデータ処理装置において、
前記複数の処理要素の数をNOPEとしたときに、前記ビット位置がlog2(NOPE)によって決定され、
前記第1部分が前記データメモリの前記グローバルアドレスの上位部分であって、前記ビット位置の左側に位置しており、
前記第2部分が前記データメモリの前記グローバルアドレスの下位部分であって、前記ビット位置の右側に位置している
ことを特徴とするデータ処理装置。 - 請求項1または請求項2に記載のデータ処理装置において、
前記分割手段が、
前記データメモリの前記グローバルアドレスを前記処理要素の数に対応するビット数分だけ右方向にシフトすることによって右シフト値を計算するための論理右シフト手段と、
ビット数が前記データメモリの前記グローバルアドレスのビット数に等しく、全てのビットが1である固定値を前記処理要素の数に対応するビット数分だけ左方向にシフトすることによって左シフト値を計算するための論理左シフト手段と、
前記左シフト値を反転することによって反転値を計算するためのインバータ手段と、
前記反転値と前記データメモリの前記グローバルアドレスとの論理積を計算するための論理積手段と、を備える
ことを特徴とするデータ処理装置。 - 請求項1から請求項3のいずれかに記載のデータ処理装置において、
前記少なくとも1つのリングバスが、互いにシフト方向が反対向きである2つのリングバスを備える
ことを特徴とするデータ処理装置。 - 請求項4に記載のデータ処理装置において、
前記比較手段は、
前記シフト動作の回数と、当該比較手段を備える処理要素自身の位置と前記グローバルアドレスの部分との間の差と、の加算処理又は減算処理を実行するための加算/減算手段と、
前記差の符号に応じて、前記加算/減算手段の処理を前記加算処理と前記減算処理との間で切り替えるための手段と、
前記加算/減算手段の出力がゼロかどうかを判定するための判定手段と、
前記差の前記符号に応じて前記2つのリングバスのうち、そこから前記読み出し専用パラメータデータを取り出す1つのリングバスを選択するための選択手段と、を備え、
前記グローバルアドレスの部分とは、前記アクセス対象の前記読み出し専用パラメータデータが格納されている前記内部メモリに対応する処理要素の前記少なくとも1つのリングバス上の位置を指定する、該アクセス対象の読み出し専用パラメータデータの前記グローバルアドレスの部分であり、
前記シフト動作の回数が符号なしの値として与えられ、前記差が符号ありの値として与えられる
ことを特徴とするデータ処理装置。 - 複数の処理要素によって並列処理をするためのデータ処理方法であって、
前記複数の処理要素の各々は、少なくとも1つのリングバスを介して1つの処理要素の内部メモリから他の処理要素に読み出し専用パラメータデータを並列的に転送するために、データメモリから前記読み出し専用パラメータデータを分散的に格納する前記内部メモリを有し、
前記データ処理方法は、
前記処理要素の各々が、前記データメモリ内の前記読み出し専用パラメータデータのグローバルアドレスを前記処理要素の数に対応するビット位置で第1部分と第2部分に分割すること、
少なくとも前記処理要素のいずれかが、前記内部メモリの前記第1部分に応じたアドレスに配置された前記読み出し専用パラメータデータを取り出し、前記読み出し専用パラメータデータを前記少なくとも1つのリングバスに送ること、
前記読み出し専用パラメータデータを取得すべき処理要素が、前記読み出し専用パラメータデータを取得すべき処理要素自身の位置と、アクセス対象の前記読み出し専用パラメータデータが格納されている前記内部メモリに対応する処理要素の前記少なくとも1つのリングバス上の位置を指定し、前記第2部分に対応する、該アクセス対象の読み出し専用パラメータデータのグローバルアドレスの部分と、の間の差を求めることと、
前記読み出し専用パラメータデータを取得すべき処理要素が、前記読み出し専用パラメータデータの前記少なくとも1つのリングバス上のシフト動作の回数と、前記差を比較することと、
前記読み出し専用パラメータデータを取得すべき処理要素が、前記比較することにおける比較結果に応じて、前記読み出し専用パラメータデータを取得すべき処理要素自身に、前記少なくとも1つのリングバスから前記読み出し専用パラメータデータを取得させること、を含む
ことを特徴とするデータ処理方法。 - 請求項6に記載のデータ処理方法において、
前記分割することが、
前記データメモリの前記グローバルアドレスを前記処理要素の数に対応するビット数分だけ右方向にシフトすることによって右シフト値を計算すること、
ビット数が前記データメモリの前記グローバルアドレスのビット数に等しく、全てのビットが1である固定値を前記処理要素の数に対応するビット数分だけ左方向にシフトすることによって左シフト値を計算すること、
前記左シフト値を反転することによって反転値を計算すること、
前記反転値と前記データメモリの前記グローバルアドレスとの論理積を計算すること、を含む
ことを特徴とするデータ処理方法。 - 請求項6または請求項7に記載のデータ処理方法において、
前記少なくとも1つのリングバスが、互いにシフト方向が反対向きである2つのリングバスを備える
ことを特徴とするデータ処理方法。 - 請求項8に記載のデータ処理方法において、
前記比較することが、
前記シフト動作の回数と、前記読み出し専用パラメータデータを取得すべき処理要素自身の位置と前記グローバルアドレスの部分との間の差と、の加算処理又は減算処理を実行すること、
前記差の符号に応じて、前記加算処理又は減算処理を実行することにおいて、
前記加算処理と前記減算処理との間で切り替えること、
前記加算処理又は減算処理を実行することによる結果がゼロかどうかを判定すること、
前記差の前記符号に応じて前記2つのリングバスのうち、そこから前記読み出し専用パラメータデータを取り出す1つのリングバスを選択すること、を含み、
前記グローバルアドレスの部分とは、前記アクセス対象の前記読み出し専用パラメータデータが格納されている前記内部メモリに対応する処理要素の前記少なくとも1つのリングバス上の位置を指定する、該アクセス対象の読み出し専用パラメータデータの前記グローバルアドレスの部分であり、
前記シフト動作の回数が符号なしの値として与えられ、前記差が符号ありの値として与えられる
ことを特徴とするデータ処理方法。 - データメモリと、複数の処理要素と、複数の内部メモリと、少なくとも1つのリングバスと、中央プロセッサとを備えた並列処理をするためのデータ処理システムであって、
複数の前記処理要素は、並列処理をするためのものであり、
前記処理要素のそれぞれは、前記データメモリ内の読み出し専用パラメータデータのグローバルアドレスを前記処理要素の数に対応するビット位置で第1部分と第2部分に分割するものであり、
前記内部メモリのそれぞれは、前記処理要素の1つに対応して備えられるものであり、
複数の前記内部メモリは、前記データメモリから前記読み出し専用パラメータデータを分散的に格納するものであり、
前記少なくとも1つのリングバスは、複数の処理要素に接続されているものであり、
前記処理要素のいずれかは、前記内部メモリの前記第1部分に応じたアドレスに配置された前記読み出し専用パラメータデータを取り出し、前記読み出し専用パラメータデータを前記少なくとも1つのリングバスに送るものであり、
前記中央プロセッサは、前記少なくとも1つのリングバス上の前記読み出し専用パラメータデータのシフト動作の回数をカウントするためのものであり、
複数の前記処理要素のうち、前記読み出し専用パラメータデータを取得すべき処理要素は、前記読み出し専用パラメータデータを取得すべき処理要素自身の位置と、アクセス対象であり取得すべき前記読み出し専用パラメータデータが格納されている前記内部メモリに対応する処理要素の前記少なくとも1つのリングバス上の位置を指定しておりかつ前記第2部分に対応する、該アクセス対象の読み出し専用パラメータデータのグローバルアドレスの部分との差を求めるものであり、
複数の前記処理要素のうち、前記読み出し専用パラメータデータを取得すべき処理要素は、前記シフト動作の回数と、前記差との比較を行い、比較結果に基づいて、前記少なくとも1つのリングバスから前記読み出し専用パラメータデータを取得するものである、データ処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011540254A JP5488609B2 (ja) | 2009-03-30 | 2009-09-25 | リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009057020 | 2009-03-30 | ||
JPPCT/JP2009/057020 | 2009-03-30 | ||
JP2011540254A JP5488609B2 (ja) | 2009-03-30 | 2009-09-25 | リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ |
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 JP2012522280A (ja) | 2012-09-20 |
JP5488609B2 true JP5488609B2 (ja) | 2014-05-14 |
Family
ID=47016542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011540254A Active JP5488609B2 (ja) | 2009-03-30 | 2009-09-25 | リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5488609B2 (ja) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4667287A (en) * | 1982-10-28 | 1987-05-19 | Tandem Computers Incorporated | Multiprocessor multisystem communications network |
JPH0642237B2 (ja) * | 1983-12-28 | 1994-06-01 | 株式会社日立製作所 | 並列処理装置 |
JP2602241B2 (ja) * | 1986-09-05 | 1997-04-23 | 株式会社日立製作所 | 並列計算機 |
JP3247018B2 (ja) * | 1994-12-06 | 2002-01-15 | 富士通株式会社 | アドレス生成装置 |
JP3808373B2 (ja) * | 2002-01-24 | 2006-08-09 | エヌイーシーコンピュータテクノ株式会社 | 分散共有メモリ装置及び分散処理方法 |
JP4620593B2 (ja) * | 2003-10-24 | 2011-01-26 | 株式会社ターボデータラボラトリー | 情報処理システムおよび情報処理方法 |
GB2417105B (en) * | 2004-08-13 | 2008-04-09 | Clearspeed Technology Plc | Processor memory system |
JP4934356B2 (ja) * | 2006-06-20 | 2012-05-16 | 株式会社日立製作所 | 映像処理エンジンおよびそれを含む映像処理システム |
US8190856B2 (en) * | 2007-03-06 | 2012-05-29 | Nec Corporation | 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/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012522280A (ja) | 2012-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI496080B (zh) | 轉置指令之技術 | |
JP6408524B2 (ja) | 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法 | |
US7689811B2 (en) | Method and apparatus for constant generation in SIMD processing | |
JP2020533691A (ja) | Simd命令を用いた効率的な直接畳み込み | |
US9183614B2 (en) | Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets | |
KR102283947B1 (ko) | 사차원 모턴 좌표 변환 프로세서, 방법, 시스템 및 명령어 | |
KR20170033890A (ko) | 비트 셔플 프로세서, 방법, 시스템, 및 명령어 | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
JP3729540B2 (ja) | 画像処理装置 | |
JP2015529363A5 (ja) | ||
US20100318766A1 (en) | Processor and information processing system | |
Abel et al. | Applications tuning for streaming SIMD extensions | |
US11790485B2 (en) | Apparatus and method for efficient motion estimation | |
US20120030448A1 (en) | Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus | |
JP5853217B2 (ja) | プロセッサ | |
JP2004519768A (ja) | コプロセッサを使用したデータ処理 | |
Babionitakis et al. | A real-time motion estimation FPGA architecture | |
JP5488609B2 (ja) | リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ | |
JP2009282744A (ja) | 演算器及び半導体集積回路装置 | |
CN116266122A (zh) | 寄存器堆虚拟化:应用和方法 | |
CN116257208A (zh) | 用于矩阵乘法阵列上的可分离卷积过滤器操作的方法和装置 | |
Bariani et al. | An Efficient Multi‐Core SIMD Implementation for H. 264/AVC Encoder | |
JP4901891B2 (ja) | 画像処理プロセッサ | |
TWI610231B (zh) | 用於向量水平邏輯指令的裝置及方法 | |
JP2004234407A (ja) | データ処理装置 |
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 |