JP2020173609A - ベクトルプロセッサ装置、生成方法及びプログラム - Google Patents
ベクトルプロセッサ装置、生成方法及びプログラム Download PDFInfo
- Publication number
- JP2020173609A JP2020173609A JP2019075059A JP2019075059A JP2020173609A JP 2020173609 A JP2020173609 A JP 2020173609A JP 2019075059 A JP2019075059 A JP 2019075059A JP 2019075059 A JP2019075059 A JP 2019075059A JP 2020173609 A JP2020173609 A JP 2020173609A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- address
- channels
- start address
- processor device
- 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
Abstract
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 (9)
- ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する生成部、
を備えるベクトルプロセッサ装置。 - 前記生成部は、
チャネル番号Nが(開始アドレスmodチャネル数)以上の場合、前記アドレスを、
(開始アドレス−(開始アドレスmodチャネル数)+N)/チャネル数
と生成し、
前記チャネル番号Nが(開始アドレスmodチャネル数)よりも小さい場合、前記アドレスを、
(開始アドレス−(開始アドレスmodチャネル数)+N+チャネル数)/チャネル数 の小数点以下を切り捨てたものと生成する、
請求項1に記載のベクトルプロセッサ装置。 - 前記生成部は、
前記チャネル番号Nに対する前記サイズを、
(ベクトル長−アドレス+開始アドレス+1)/チャネル数
の小数点以下を切り捨てたものと生成する、
請求項2に記載のベクトルプロセッサ装置。 - 前記生成部は、
前記チャネル番号Nに対する前記サイズを、
(ベクトル長−アドレス+開始アドレス+1)/チャネル数×ストライド数
の小数点以下を切り捨てたものと生成する、
請求項2に記載のベクトルプロセッサ装置。 - 前記ベクトルロードストア命令がストライド付きのベクトルロードストア命令である場合、
前記生成部は、
前記開始アドレス、前記ベクトル長、前記チャネル数に加えてさらにストライド数に基づいて、前記サイズを生成する、
請求項1から請求項4の何れか一項に記載のベクトルプロセッサ装置。 - 前記アドレスおよび前記サイズに対応するデータをプリフェッチするためのキャッシュ、
を備える請求項1から請求項5の何れか一項に記載のベクトルプロセッサ装置。 - ラインを分割させて前記アドレスおよび前記サイズに対応するデータを通信するベクトルレジスタ、
を備える請求項1から請求項6の何れか一項に記載のベクトルプロセッサ装置。 - ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成すること、
を含む生成方法。 - コンピュータに、
ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成すること、
を実行させるプログラム。
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 true JP2020173609A (ja) | 2020-10-22 |
JP7346883B2 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) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5664198B2 (ja) | 2010-12-14 | 2015-02-04 | 富士通株式会社 | 演算処理装置 |
JP6961997B2 (ja) | 2017-05-15 | 2021-11-05 | 富士通株式会社 | 情報処理装置、メモリ制御装置および情報処理装置の制御方法 |
-
2019
- 2019-04-10 JP JP2019075059A patent/JP7346883B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP7346883B2 (ja) | 2023-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4820566B2 (ja) | メモリアクセス制御回路 | |
JP6253514B2 (ja) | プロセッサ | |
US10209890B2 (en) | Near memory accelerator | |
JP2015529865A (ja) | シングルデータバッファの並行処理 | |
JP5527340B2 (ja) | ベクトル処理装置およびベクトル処理方法 | |
JP2012159903A (ja) | データ処理システム、データ処理装置、及びデータ処理方法 | |
JP7346883B2 (ja) | ベクトルプロセッサ装置及び生成方法 | |
CN110018847B (zh) | 可配置寄存器及基于可配置寄存器的数据存取方法 | |
JP6701650B2 (ja) | 情報処理装置および画像形成装置 | |
JP5278538B2 (ja) | コンパイルシステム、コンパイル方法およびコンパイルプログラム | |
KR20200028965A (ko) | 데이터 처리장치에서의 벡터 인터리빙 | |
JP2012008747A (ja) | 集積装置、メモリ割り当て方法、および、プログラム | |
JP2010182000A (ja) | 画像処理装置、プログラム | |
JP7408954B2 (ja) | メモリ制御方法、メモリ制御装置、プログラム | |
JP2014191663A (ja) | 演算処理装置、情報処理装置、および演算処理装置の制御方法 | |
JP2005182538A (ja) | データ転送装置 | |
JP7225904B2 (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
CN110337637B (zh) | 数据处理方法和设备 | |
US9740428B1 (en) | Circular buffer descriptor for describing and/or accessing a circular buffer | |
US8812813B2 (en) | Storage apparatus and data access method thereof for reducing utilized storage space | |
JP5182175B2 (ja) | 情報処理装置 | |
JP5852090B2 (ja) | 命令処理装置およびその命令処理方法 | |
JP4664011B2 (ja) | 情報処理装置及び情報処理方法 | |
KR100800552B1 (ko) | 벡터 메모리, 이를 구비한 프로세서 및 그 데이터 처리방법 | |
TW200415515A (en) | System for allowing only a partial value prediction field/cache size |
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 |