JP7346883B2 - ベクトルプロセッサ装置及び生成方法 - Google Patents
ベクトルプロセッサ装置及び生成方法 Download PDFInfo
- Publication number
- JP7346883B2 JP7346883B2 JP2019075059A JP2019075059A JP7346883B2 JP 7346883 B2 JP7346883 B2 JP 7346883B2 JP 2019075059 A JP2019075059 A JP 2019075059A JP 2019075059 A JP2019075059 A JP 2019075059A JP 7346883 B2 JP7346883 B2 JP 7346883B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- channels
- vector
- start address
- memory
- 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
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
特許文献1には、関連する技術として、ロードバッファを備え、ベクトル演算装置におけるベクトルロード命令の実行時間を短縮する技術が開示されている。
そのため、ベクトルプロセッサ装置において、メモリに高速にアクセスすることのできる技術が求められている。
<第1実施形態>
図1は、本発明の第1実施形態によるベクトルプロセッサ装置1の構成を示す図である。ベクトルプロセッサ装置1は、ベクトルロードストア制御手段100(生成部の一例)、ベクトルレジスタ200、メモリネットワーク300、メモリ制御手段400、複数のメモリ500を備える。
ベクトルプロセッサ装置1は、プリフェッチ機能を備えた複数のメモリ500に接続された装置であり、ベクトルロードストア制御手段100を用いて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとしたアドレス単位のインタリーブにすることにより、メモリ帯域を向上させる装置である。
メモリ500は、プリフェッチ機能を備え、プリフェッチ単位にアクセスが可能である。図1に示す例では、メモリ500は、00アドレスおよび04アドレスに一度にアクセスが可能である。
ベクトルレジスタ200、メモリネットワーク300、メモリ制御手段400、および、メモリ500は、非特許文献:ジョン・L・ヘネシー、デイビッド・A・パターソン[著]、中條拓伯、天野英晴、鈴木貢[監訳]、吉瀬謙二、佐藤寿倫[翻訳]、「ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版」、(日本)、株式会社翔泳社、2014年03月17日、253ページ、第4章 ベクタ、SIMD、GPUにおけるデータレベル並列性、などに記載されているように、当業者にとって既知技術である。ベクトルレジスタ200、メモリネットワーク300、メモリ制御手段400、および、メモリ500は、例えば、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)である。
アドレスサイズ生成手段110は、ベクトルロードストア命令の開始アドレス120、ベクトル長130、およびチャネル数140を入力する。
アドレスサイズ生成手段110は、入力した開始アドレス120、ベクトル長130、およびチャネル数140から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス150およびサイズ160を生成する。
アドレスサイズ生成手段110は、生成したアドレス150およびサイズ160を出力する。
アドレスサイズ生成手段110は、アドレスサイズ生成手段110を除いて、当業者にとって既知技術を用いて所望の処理を行う。
まず、図3に示すベクトルロード命令に対してベクトルプロセッサ装置1が行う処理について説明する。
アドレス=(開始アドレス-(開始アドレスmodチャネル数)+N)/チャネル数
である。
また、チャネル番号Nに対するアドレス150は、N<(開始アドレスmodチャネル数)の場合、
アドレス=(開始アドレス-(開始アドレスmodチャネル数)+N+チャネル数)/チャネル数
の小数点以下を切り捨てたものである。
サイズ=(ベクトル長-アドレス+開始アドレス+1)/チャネル数
の小数点以下を切り捨てたものである。
メモリ制御手段400は、アドレスおよびサイズにより、メモリ500からプリフェッチ単位でデータを読み出す(ステップS7)。メモリ制御手段400は、読み出したデータを、メモリネットワーク300を経由して、ベクトルロードストア制御手段100へ送信する(ステップS8)。
ベクトルロードストア制御手段100は、ベクトルロード命令のベクトルレジスタ番号で指定されるベクトル要素210に対して、データを書き込む(ステップS9)。
アドレス=(開始アドレス-(開始アドレスmodチャネル数)+N)/チャネル数
である。
また、チャネル番号Nに対するアドレス150は、N<(開始アドレスmodチャネル数)の場合、
アドレス=(開始アドレス-(開始アドレスmodチャネル数)+N+チャネル数)/チャネル数
の小数点以下を切り捨てたものである。
サイズ=(ベクトル長-アドレス+開始アドレス+1)/チャネル数
の小数点以下を切り捨てたものである。
ベクトルプロセッサ装置1において、アドレスサイズ生成手段110は、ベクトルロードストア命令の開始アドレス120、ベクトル長130、およびチャネル数140を入力する。アドレスサイズ生成手段110は、入力した開始アドレス120、ベクトル長130、およびチャネル数140から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス150およびサイズ160を生成する。アドレスサイズ生成手段110は、生成したアドレス150およびサイズ160を出力する。
こうすることで、ベクトルプロセッサ装置1は、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス単位のインタリーブにすることにより、ベクトルロードストアでメモリ帯域向上し、チャネル間の競合を避けることができる。チャネル間の競合を避けることができた結果、ソフトウェアによるチューニングが不要となる。なお、チューニングとは、あるチャネル(アドレス)に対してアクセスが集中しないように、ソフトウェアでアクセスするアドレスを制御することである。
本発明の第2実施形態によるベクトルプロセッサ装置1は、本発明の第1実施形態によるベクトルプロセッサ装置1と同様に、ベクトルロードストア制御手段100、ベクトルレジスタ200、メモリネットワーク300、メモリ制御手段400、複数のメモリ500を備える。
本発明の第2実施形態によるベクトルプロセッサ装置1は、ベクトルロードストア制御手段100が本発明の第1実施形態によるベクトルプロセッサ装置1と異なる。
アドレスサイズ生成手段110は、ベクトルロードストア命令の開始アドレス120、ベクトル長130、チャネル数140、およびストライド数170を入力する。
アドレスサイズ生成手段110は、入力した開始アドレス120、ベクトル長130、チャネル数140、およびストライド数170から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス150およびサイズ160を生成する。
アドレスサイズ生成手段110は、生成したアドレス150およびサイズ160を出力する。
アドレスサイズ生成手段110は、アドレスサイズ生成手段110を除いて、当業者にとって既知技術を用いて所望の処理を行う。
ここでは、図6に示すベクトルロード命令に対してベクトルプロセッサ装置1が行う処理について説明する。
アドレス=(開始アドレス-(開始アドレスmodチャネル数)+N)/チャネル数
である。
また、チャネル番号Nに対するアドレス150は、N<(開始アドレスmodチャネル数)の場合、
アドレス=(開始アドレス-(開始アドレスmodチャネル数)+N+チャネル数)/チャネル数
の小数点以下を切り捨てたものである。
サイズ=(ベクトル長-アドレス+開始アドレス+1)/チャネル数×ストライド数
の小数点以下を切り捨てたものである。
ベクトルプロセッサ装置1において、アドレスサイズ生成手段110は、ベクトルロードストア命令の開始アドレス120、ベクトル長130、チャネル数140、およびストライド数170を入力する。アドレスサイズ生成手段110は、入力した開始アドレス120、ベクトル長130、チャネル数140、およびストライド数170から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス150およびサイズ160を生成する。アドレスサイズ生成手段110は、生成したアドレス150およびサイズ160を出力する。
こうすることで、ベクトルプロセッサ装置1は、ストライド付ベクトルロードストア命令に対して、不要なチャネルに対してメモリアクセスが行われない。そのため、ベクトルロードストアでメモリ帯域向上し、チャネル間の競合を避けることができる。チャネル間の競合を避けることができた結果、ソフトウェアによるチューニングが不要となる。
メモリ制御手段450は、キャッシュ手段451を備える。
キャッシュ手段451は、キャッシュのエントリを、プリフェッチ単位で、チャネル数番地おきの連続番地とする。
なお、この場合のベクトルプロセッサ装置1の処理は、次のようになる。
ベクトルロードストア制御手段100は、ベクトルロードまたはベクトルストア命令に応じて、メモリ500にアクセスする。ベクトルロードストア制御手段100は、チャネル毎にメモリストアアクセスを生成する。ベクトルロードストア制御手段100は、生成したメモリストアアクセスを、メモリネットワーク300を経由して、メモリ制御手段450に送信する。メモリ制御手段450は、キャッシュ手段451にヒットした場合は、キャッシュをアクセスし、ミスした場合は、番地およびサイズにより、メモリ500に対してプリフェッチ単位でアクセスを行う。
このようにベクトルプロセッサ装置1は、キャッシュにデータをプリフェッチすることで、不要なメモリアクセスを発生させない。このため、ベクトルプロセッサ装置1は、連続アドレスでのベクトルロードストアでメモリ帯域を向上させることができる。
ベクトルレジスタ250は、複数のラインに分割され、並列の動作することで性能向上が図られる。個々のラインの要素は、ラインにインタリーブされ、例えば4つのラインに分割された場合は、ライン番号0では、要素00、要素04、を含む。
なお、この場合のベクトルプロセッサ装置1の処理は、次のようになる。
ベクトルロードストア制御手段100は、ベクトルロードまたはベクトルストア命令に応じて、ベクトルレジスタ250へアクセスする。このとき、ベクトルレジスタ250は、ラインをインタリーブ(すなわち、ラインを分割)する。
このようにベクトルプロセッサ装置1は、ベクトルレジスタ250がラインを分割することで(特に、ライン数とチャネル数を一致させることで)、メモリネットワーク300およびベクトルコアネットワーク700でのアクセス競合を削減し、ベクトルロードストアでメモリ帯域を向上させることができる。
ベクトルプロセッサ装置1は、図9に示すように、生成部10を備える。
生成部10は、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する。
このように、ベクトルプロセッサ装置1を構成することで、生成部10は、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する。その結果、ベクトルプロセッサ装置1は、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス単位のインタリーブにすることにより、ベクトルロードストアでメモリ帯域向上し、チャネル間の競合を避けることができる。チャネル間の競合を避けることができた結果、ソフトウェアによるチューニングが不要となる。
コンピュータ5は、図10に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。
例えば、上述のベクトルプロセッサ装置1、ベクトルロードストア制御手段100、メモリ制御手段400、450、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
5・・・コンピュータ
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
100・・・ベクトルロードストア制御手段
110・・・アドレスサイズ生成手段
120・・・開始アドレス
130・・・ベクトル長
140・・・チャネル数
150・・・アドレス
160・・・サイズ
170・・・ストライド数
200、250・・・ベクトルレジスタ
210・・・ベクトル要素
300・・・メモリネットワーク
400、450・・・メモリ制御手段
500・・・メモリ
Claims (5)
- ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて
チャネル番号Nが(開始アドレスmodチャネル数)以上の場合、アドレスを、
(開始アドレス-(開始アドレスmodチャネル数)+N)/チャネル数
とし、
前記チャネル番号Nが(開始アドレスmodチャネル数)よりも小さい場合、前記アドレスを、
(開始アドレス-(開始アドレスmodチャネル数)+N+チャネル数)/チャネル数の小数点以下を切り捨てたものとし、
前記チャネル番号Nに対するサイズを、
(ベクトル長-アドレス+開始アドレス+1)/チャネル数
の小数点以下を切り捨てたものとし、
チャネル毎に生成したメモリロードアクセスまたはメモリストアアクセスをメモリ制御手段に送信する手段、
を備えるベクトルプロセッサ装置。 - ストライド付きのベクトルロードストア命令の開始アドレス、ベクトル長、チャネル数、およびストライド数に基づいて
チャネル番号Nが(開始アドレスmodチャネル数)以上の場合、アドレスを、
(開始アドレス-(開始アドレスmodチャネル数)+N)/チャネル数
とし、
前記チャネル番号Nが(開始アドレスmodチャネル数)よりも小さい場合、前記アドレスを、
(開始アドレス-(開始アドレスmodチャネル数)+N+チャネル数)/チャネル数の小数点以下を切り捨てたものとし、
前記チャネル番号Nに対するサイズを、
(ベクトル長-アドレス+開始アドレス+1)/チャネル数×ストライド数
の小数点以下を切り捨てたものとし、
チャネル毎に生成したメモリロードアクセスまたはメモリストアアクセスをメモリ制御手段に送信する手段、
を備えるベクトルプロセッサ装置。 - 前記アドレスおよび前記サイズに対応するデータをプリフェッチするためのキャッシュ、
を備える請求項1または請求項2に記載のベクトルプロセッサ装置。 - ラインを分割させて前記アドレスおよび前記サイズに対応するデータを通信するベクトルレジスタ、
を備える請求項1から請求項3の何れか一項に記載のベクトルプロセッサ装置。 - ベクトルプロセッサが実行する生成方法であって、
ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて
チャネル番号Nが(開始アドレスmodチャネル数)以上の場合、アドレスを、
(開始アドレス-(開始アドレスmodチャネル数)+N)/チャネル数
とし、
前記チャネル番号Nが(開始アドレスmodチャネル数)よりも小さい場合、前記アドレスを、
(開始アドレス-(開始アドレスmodチャネル数)+N+チャネル数)/チャネル数の小数点以下を切り捨てたものとし、
前記チャネル番号Nに対するサイズを、
(ベクトル長-アドレス+開始アドレス+1)/チャネル数
の小数点以下を切り捨てたものとし、
チャネル毎に生成したメモリロードアクセスまたはメモリストアアクセスをメモリ制御手段に送信すること、
を含む生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019075059A JP7346883B2 (ja) | 2019-04-10 | 2019-04-10 | ベクトルプロセッサ装置及び生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019075059A JP7346883B2 (ja) | 2019-04-10 | 2019-04-10 | ベクトルプロセッサ装置及び生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020173609A JP2020173609A (ja) | 2020-10-22 |
JP7346883B2 true JP7346883B2 (ja) | 2023-09-20 |
Family
ID=72831457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019075059A Active JP7346883B2 (ja) | 2019-04-10 | 2019-04-10 | ベクトルプロセッサ装置及び生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7346883B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012128559A (ja) | 2010-12-14 | 2012-07-05 | Fujitsu Ltd | 演算処理装置 |
JP2018194939A (ja) | 2017-05-15 | 2018-12-06 | 富士通株式会社 | 情報処理装置、メモリ制御装置および情報処理装置の制御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3961461B2 (ja) * | 2003-07-15 | 2007-08-22 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置、および、ベクトル処理方法 |
-
2019
- 2019-04-10 JP JP2019075059A patent/JP7346883B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012128559A (ja) | 2010-12-14 | 2012-07-05 | Fujitsu Ltd | 演算処理装置 |
JP2018194939A (ja) | 2017-05-15 | 2018-12-06 | 富士通株式会社 | 情報処理装置、メモリ制御装置および情報処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2020173609A (ja) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10203878B2 (en) | Near memory accelerator | |
JP4820566B2 (ja) | メモリアクセス制御回路 | |
JP3717212B2 (ja) | 情報処理装置及び情報処理ユニット | |
US11294675B2 (en) | Writing prefetched data into intra-core caches of cores identified by prefetching instructions | |
US9262174B2 (en) | Dynamic bank mode addressing for memory access | |
JP5431003B2 (ja) | リコンフィギュラブル回路及びリコンフィギュラブル回路システム | |
JP3506024B2 (ja) | 情報処理装置 | |
JPWO2014068694A1 (ja) | 半導体装置及びキャッシュメモリへのデータ先読み方法 | |
JP7346883B2 (ja) | ベクトルプロセッサ装置及び生成方法 | |
JP5278538B2 (ja) | コンパイルシステム、コンパイル方法およびコンパイルプログラム | |
JP7408954B2 (ja) | メモリ制御方法、メモリ制御装置、プログラム | |
JP6701650B2 (ja) | 情報処理装置および画像形成装置 | |
JP2005182538A (ja) | データ転送装置 | |
JP7225904B2 (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
US10983932B2 (en) | Processor and information processing apparatus | |
JP6689471B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP5182175B2 (ja) | 情報処理装置 | |
JP3718667B2 (ja) | 情報処理装置及び情報処理ユニット | |
EP2434409B1 (en) | Processor and method thereof | |
JP4664011B2 (ja) | 情報処理装置及び情報処理方法 | |
JP5546356B2 (ja) | メモリ装置及び信号処理装置 | |
US20240220247A1 (en) | Permute Instructions for Register-Based Lookups | |
JP5852090B2 (ja) | 命令処理装置およびその命令処理方法 | |
JP4769936B2 (ja) | メモリコントローラを備えた情報処理システム | |
CN114298890A (zh) | 数据处理装置及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230428 |
|
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: 20230808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230821 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7346883 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |