JP6164616B2 - データ供給装置及びデータ処理装置 - Google Patents
データ供給装置及びデータ処理装置 Download PDFInfo
- Publication number
- JP6164616B2 JP6164616B2 JP2014505037A JP2014505037A JP6164616B2 JP 6164616 B2 JP6164616 B2 JP 6164616B2 JP 2014505037 A JP2014505037 A JP 2014505037A JP 2014505037 A JP2014505037 A JP 2014505037A JP 6164616 B2 JP6164616 B2 JP 6164616B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- register
- data
- calculation
- arithmetic
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
本発明は、多数の演算器を並置する計算機構成方式におけるデータ供給手法に関するものである。本発明は、特に、表1に示すメモリ参照パターンに対応するメモリ参照機構に関連が深いものである。
上述のLAPP103では、複数のレジスタファイル部12を備え、通常の機械語命令列を複数の演算器11に写像し、高速実行できるという利点がある。しかし、上述のLAPP103には、その実用化に向けて以下の課題がある。以下、図4を用いて、それら課題について説明する。図4は、LAPP103における、キャッシュメモリ14からのデータ供給を説明するための模式図である。なお、図4において、キャッシュメモリ14の機構および小規模キャッシュメモリ15の構成と、それらの間の伝搬機構とは、公知の技術を用いることができる。
本発明のLAPPは、上述のLAPP103と同様、中容量メモリを分散配置させる構成を採用する一方、中容量メモリから読み出したデータを後続段に無条件に伝搬させる規則的なデータパスを設けない。これにより、上述のLAPP103の課題であった段間データパスの配線数の増大を防止する。
表1の第1のケース(1)は、広範囲のアドレスをランダムに参照するケースである。図7に示すように、LD−BASE201にベースアドレスが設定され、ラッチ202にオフセットが設定されると、ベースアドレスにオフセットが加算され、有効アドレスA0が指定される。
表1の第2のケース(2)は、単調増加するアドレスを基準とし、相対アドレスの範囲に制約があるものの、同時に6箇所をランダムに参照するケースである。図8に示すように、LD−BASE301に設定されたベースアドレスは、ラッチ302を介して、有効アドレスA0として、ラッチ23−1に格納される。次のサイクルで、有効アドレスA0は、メモリ部31の1つのブロックである「way0.blk0」のラッチ303に供給される。同様に、有効アドレスA0は、「way0.blk0」に隣接する、メモリ部31の他のブロックである「way0.blk1」のラッチ304に供給される。
表1の第3のケース(3)は、単調増加するアドレスを基準とし、相対アドレスの範囲に制約があるものの、同時に6箇所を参照するケースである。上述の第2のケース(2)と異なる点は、6箇所のアドレスも単調増加する点である。上述の第2のケース(2)では、オフセットが「−a」、「−b」、「−c」、「−d」、「−e」といったランダムなオフセットである。一方、第3のケースは、オフセットが固定である。
表1の第4のケース(4)は、単調増加するアドレスを基準とし、相対アドレスの範囲に制約があるものの、同時に3箇所を参照するアクセスパターンが2組必要なケースである。
表1の第5のケース(5)は、単調増加するアドレスを基準とし、相対アドレスの範囲に制約があるものの、同時に3箇所を参照するアクセスパターンと、メモリ部31の各ブロック「way0.blk3」、「way0.blk2」及び「way0.blk1」を独立してアクセスできる機構とを同時に必要とするケースである。
表1の第6のケース(6)は、図12に示すように、読み出したメモリの値を更新して元のメモリに書き込むケースである。図5に示した複数の演算器21からメモリシステム22へ戻るデータパス(フィードバック機構)26を利用して実現することができる。
(1)中容量メモリを分散させ、かつ、ロード/ストア専用の段間伝搬データパスを不要とすることにより、段間の配線数を大幅に削減できる。
図13及び図14は、画像処理の一例を従来技術と本発明により各々実現した場合の命令列である。図13では、ロードデータが順次伝搬されることを前提に、各段にロード命令が配置されている。
図15及び図16は、浮動小数点演算処理の一例を従来技術と本発明により各々実現した場合の命令列である。従来の技術の図15では、第6段におけるストアデータを1周させて第1段のメモリに格納する必要があり、また、このために、多数のストアを配置することが困難であった。
上記実施形態におけるシフトレジスタ33に代えて、複数のFIFO(First In First Out)バッファを有するFIFO部を配置することも可能である。FIFO部の各FIFOバッファは、例えば図6の構成であれば、有効アドレスA5、A4、A3、A2、A1、A0の各々に一対一に対応するように配置される。
23 ラッチ(アドレス保持部)
23−1、23−2、23−4、23−5 ラッチ(第1のアドレス記憶回路)
23−3、23−6 ラッチ(第2のアドレス記憶回路)
31 メモリ部
33 シフトレジスタ(シフトレジスタ部)
101、102、103 LAPP
Claims (13)
- 複数の演算器が多段構成された演算器束にデータを供給するデータ供給装置であって、
複数のブロックに分割されたメモリ部と、
複数のレジスタが一列に接続されたシフトレジスタ部と
を備え、
前記シフトレジスタ部は、自身の先頭または途中のレジスタに、前記メモリ部から読み出されたデータが書き込まれると共に、
前記メモリ部及び前記シフトレジスタ部の各々は、前記データ供給装置に入力されたアドレスに関する情報に基づく、複数のアドレス情報を基に参照されることにより、前記各アドレス情報に対応する各アドレス位置の内容を出力することを特徴とするデータ供給装置。 - 前記データ供給装置に入力されたアドレスに関する情報に基づく、複数のアドレス情報をそれぞれ保持する複数のアドレス保持部をさらに備え、
前記複数のアドレス保持部は、
前記メモリ部の各ブロックに一対一に対応するように各ブロックに接続された複数の第1のアドレス記憶回路と、
前記メモリ部の各ブロックのいずれにも接続されていない複数の第2のアドレス記憶回路と、を含むことを特徴とする請求項1に記載のデータ供給装置。 - 前記データ供給装置は、前記メモリ部の異なる2つのブロックから読み出されたデータのいずれかを選択する連結部を含み、
前記第1のアドレス記憶回路に保持されたアドレス情報を用いて、当該第1のアドレス記憶回路が接続されたブロック及び、当該ブロックに隣接する他のブロックからの各読み出しが行なわれた場合において、
前記連結部は、前記第1のアドレス記憶回路に保持されたアドレス情報の一部のビットに基づき、前記2つのブロックから読み出されたデータのうちの1つを選択し、
前記シフトレジスタ部は、自身の先頭または途中のレジスタにデータを書き込む際には、前記連結部が選択したデータを用いることを特徴とする請求項2に記載のデータ供給装置。 - 前記演算器束の最終段を構成する1つまたは複数の演算器の演算結果を前記メモリ部に書き込み可能なフィードバック機構をさらに備えることを特徴とする請求項1〜3のいずれか一項に記載のデータ供給装置。
- 前記各第1のアドレス記憶回路に保持される各アドレス情報は、ベースアドレス、オフセット、及び、前記ベースアドレスと前記オフセットとを加算したもの、のうちのいずれかであり、
前記各第2のアドレス記憶回路に保持される各アドレス情報は、前記オフセットであることを特徴とする請求項2または3に記載のデータ供給装置。 - 前記シフトレジスタ部は、前記オフセットを用いて、各レジスタからの出力値を決定することを特徴とする請求項5に記載のデータ供給装置。
- 前記オフセットによって、前記シフトレジスタ部に含まれる前記複数のレジスタのうちのいずれのレジスタの値を参照すべきかが表されるものであり、
前記シフトレジスタ部は、前記オフセットに基づいて、いずれのレジスタの値を出力するのかを決定することを特徴とする請求項6に記載のデータ供給装置。 - 前記オフセットによって、前記シフトレジスタ部に含まれる前記複数のレジスタのうちのいずれのレジスタの値を参照すべきかかが表されるものであり、
前記データ供給装置に2つのベースアドレスが入力された場合において、
前記シフトレジスタ部は、
一方の前記ベースアドレスに対する前記オフセットに基づいて、前記複数のレジスタのうちの所定の部分に含まれる、いずれのレジスタの値を出力するのかを決定し、
他方の前記ベースアドレスに対する前記オフセットに基づいて、前記複数のレジスタのうちの他の所定の部分に含まれる、いずれのレジスタの値を出力するのかを決定することを特徴とする請求項6に記載のデータ供給装置。 - 前記オフセットによって、前記シフトレジスタ部に含まれる前記複数のレジスタのうちのいずれのレジスタの値を参照すべきかかが表されるものであり、
前記データ供給装置に複数のベースアドレスが入力された場合において、
前記シフトレジスタ部は、
1つの前記ベースアドレスに対する前記オフセットに基づいて、前記複数のレジスタのうちのいずれのレジスタの値を出力するのかを決定し、
前記メモリ部は、
残余の前記ベースアドレスを用いて、当該ベースアドレスに対応する前記ブロックから値を出力することを特徴とする請求項6に記載のデータ供給装置。 - 複数の前記演算器束が多段構成されたデータ処理装置であって、
或る一連の高速実行後、次の高速実行を開始する際に、或る演算器束にデータを供給する請求項1〜9のいずれか一項に記載のデータ供給装置の前記メモリ部の内容が別の演算命令にて使用することができる場合、前記演算器束を構成する演算器に対する演算命令の写像を変更することを特徴とするデータ処理装置。 - 前記データ処理装置は、複数の行の機械語命令からなる命令コードを実行するためのデータ処理装置であって、
前記命令コードに記述された複数のレジスタ番号に対応し、且つ、前記各レジスタ番号に対応するデータを一時的に保持する複数の第1レジスタを含む第1レジスタファイル部と、前記第1レジスタファイル部の各第1レジスタと対応する複数の第2レジスタを含む第2レジスタファイル部と、を含むn(nは2以上の整数)個のレジスタファイル部と、
前記第1レジスタファイル部の各第1レジスタの読み出しデータを用いて前記複数の行の機械語命令のいずれかの機械語命令を用いて演算を実行する、前記多段構成の或る一段となる第1演算部と、前記複数の行の機械語命令のいずれかのうち、前記第1演算部が用いた機械語命令とは異なる機械語命令を用いて演算を実行する、前記多段構成の或る一段となる第2演算部と、を含むn個の演算部と、
前記第1演算部が演算を実行したときにおける前記第1演算部の演算結果の出力先であり、且つ、前記第1演算部の演算結果を一時的に保持する第1保持部を含むn個の保持部と
を備え、
前記第1レジスタファイル部は、前記第1演算部による演算処理の対象外であったデータを保持する第1レジスタに対応する前記第2レジスタファイル部の第2レジスタに、当該データを転送すると共に、
前記第1保持部は、自身が前記第1演算部の演算結果を保持する場合には、前記第1演算部の演算結果の出力先を前記第2演算部として、前記第1演算部の演算結果を前記第2演算部に転送し、
前記第2演算部は、前記第2レジスタファイル部の各第2レジスタの読み出しデータ及び前記第1保持部により転送される演算結果のうちの少なくとも一方を用いて演算を実行し、前記第1演算部により実行される演算と並列処理することを特徴とする請求項10に記載のデータ処理装置。 - nは3以上の整数であり、
前記n個のレジスタファイル部は、前記第2レジスタファイル部の各第2レジスタと対応する複数の第3レジスタを含む第3レジスタファイル部をさらに含み、
前記n個の演算部は、前記複数の行の機械語命令のいずれかのうち、前記第1演算部及び前記第2演算部が用いた機械語命令とは異なる機械語命令を用いて演算を実行する、前記多段構成の或る一段となる第3演算部をさらに含み、
前記n個の保持部は、前記第2演算部が演算を実行したときにおける前記第2演算部の演算結果の出力先であり、且つ、前記第2演算部の演算結果を一時的に保持する第2保持部をさらに含んでおり、
前記第2レジスタファイル部は、前記第2演算部による演算処理の対象外であったデータを保持する第2レジスタに対応する前記第3レジスタファイル部の第3レジスタに、当該データを転送すると共に、
前記第2保持部は、自身が前記第2演算部の演算結果を保持する場合には、前記第2演算部の演算結果の出力先を前記第3演算部として、前記第2演算部の演算結果を前記第3演算部に転送し、
前記第3演算部は、前記第3レジスタファイル部の各第3レジスタの読み出しデータ及び前記第2保持部により転送される演算結果のうちの少なくとも一方を用いて演算を実行し、前記第1演算部により実行される演算及び前記第2演算部により実行される演算と並列処理することを特徴とする請求項11に記載のデータ処理装置。 - nは3以上の整数であり、
前記n個の保持部に含まれるN(Nは1以上の整数であって、n−2以下)番目の保持部は、
自身が保持する演算結果が前記n個の演算部に含まれる(N+2)番目以降の演算部による演算実行に用いられる場合には、当該演算結果を前記n個のレジスタファイル部に含まれる(N+2)番目のレジスタファイル部に転送する一方、
自身が保持する演算結果が前記(N+2)番目以降の演算部による演算実行に用いられない場合には、当該演算結果を前記n個の演算部に含まれる(N+1)番目の演算部に転送することを特徴とする請求項11または12に記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014505037A JP6164616B2 (ja) | 2012-03-16 | 2013-03-15 | データ供給装置及びデータ処理装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012061110 | 2012-03-16 | ||
JP2012061110 | 2012-03-16 | ||
JP2014505037A JP6164616B2 (ja) | 2012-03-16 | 2013-03-15 | データ供給装置及びデータ処理装置 |
PCT/JP2013/057503 WO2013137459A1 (ja) | 2012-03-16 | 2013-03-15 | データ供給装置及びデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013137459A1 JPWO2013137459A1 (ja) | 2015-08-03 |
JP6164616B2 true JP6164616B2 (ja) | 2017-07-19 |
Family
ID=49161353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014505037A Active JP6164616B2 (ja) | 2012-03-16 | 2013-03-15 | データ供給装置及びデータ処理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6164616B2 (ja) |
WO (1) | WO2013137459A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107408076B (zh) * | 2015-04-08 | 2020-12-11 | 国立大学法人奈良先端科学技术大学院大学 | 数据处理装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05266056A (ja) * | 1992-03-23 | 1993-10-15 | Nippon Telegr & Teleph Corp <Ntt> | 差分絶対値和・差分自乗和並列演算装置 |
JPH07230366A (ja) * | 1994-02-18 | 1995-08-29 | Ricoh Co Ltd | 画像処理装置 |
JP3652909B2 (ja) * | 1999-02-18 | 2005-05-25 | 日本電信電話株式会社 | 擬似多ポートメモリ装置 |
JP4747419B2 (ja) * | 2001-01-19 | 2011-08-17 | ソニー株式会社 | インタリーブ装置および演算システム |
JP4940497B2 (ja) * | 2001-01-19 | 2012-05-30 | ソニー株式会社 | アドレス生成装置 |
JP2004145476A (ja) * | 2002-10-22 | 2004-05-20 | Hiroshima Industrial Promotion Organization | マッチング演算回路 |
EP2352082B1 (en) * | 2008-10-14 | 2018-11-28 | National University Corporation Nara Institute of Science and Technology | Data processing device for performing a plurality of calculation processes in parallel |
-
2013
- 2013-03-15 JP JP2014505037A patent/JP6164616B2/ja active Active
- 2013-03-15 WO PCT/JP2013/057503 patent/WO2013137459A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2013137459A1 (ja) | 2013-09-19 |
JPWO2013137459A1 (ja) | 2015-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114168526B (zh) | 可重构并行处理 | |
CN101482811B (zh) | 用于增强的计算能力的处理器体系结构 | |
CN107851013A (zh) | 元素大小增加指令 | |
CN102402415B (zh) | 一种动态可重构阵列内数据缓存的装置及方法 | |
US10437594B2 (en) | Apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank | |
JP2017045151A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
WO2010044242A1 (ja) | データ処理装置 | |
JP6164616B2 (ja) | データ供給装置及びデータ処理装置 | |
CN112074810B (zh) | 并行处理设备 | |
JP2010117806A (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
JP2007004542A (ja) | 半導体信号処理装置 | |
JP4444305B2 (ja) | 半導体装置 | |
EP2254057B1 (en) | Simd processor array system and data transfer method thereof | |
US8316215B2 (en) | Vector processor with plural arithmetic units for processing a vector data string divided into plural register banks accessed by read pointers starting at different positions | |
KR102358612B1 (ko) | 연속적인 데이터 병렬처리가 가능한 병렬 처리장치 | |
JP2002318687A (ja) | 情報処理装置及び計算機システム | |
JP4703735B2 (ja) | コンパイラ、コード生成方法、コード生成プログラム | |
JP2013114608A (ja) | Vliwプロセッサと命令構造と命令実行方法 | |
JP2007079711A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170321 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170519 |
|
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: 20170530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170613 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6164616 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |