JP2020052862A - 計算機および計算方法 - Google Patents
計算機および計算方法 Download PDFInfo
- Publication number
- JP2020052862A JP2020052862A JP2018183265A JP2018183265A JP2020052862A JP 2020052862 A JP2020052862 A JP 2020052862A JP 2018183265 A JP2018183265 A JP 2018183265A JP 2018183265 A JP2018183265 A JP 2018183265A JP 2020052862 A JP2020052862 A JP 2020052862A
- Authority
- JP
- Japan
- Prior art keywords
- address
- duplication
- vector
- line
- instruction
- 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
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
Description
しかしながら、上記のリスト総和演算の計算時にループを回る中で、l(i)に同一要素が入り、x(l(i))のアドレスが重複することがある。
do i =1、ny
x(l(i))=x(l(i))+y(i)
end do
をアセンブラで記述した命令列の1例である。
14行目:vseqで付与したベクトルレジスタをx(l(i))に書き込むvsc(ベクトルスキャッター命令)
15行目:14行目で書きだしたアドレスx(l(i))から読み戻すvgt(ベクトルギャザー命令)
18行目:15行目で読み戻した値と、元のシーケンシャル番号を比較するvcmps(ベクトルコンペア命令)。
20行目:19行目で示したビットマップの数を数えるpcvm(ベクトルマスクポピュレーションカウント命令)
上記に関連して、特許文献1には、格納先アドレスが一致している場合に、要素番号が若い要素リクエストで生成されるライト信号の、リクエスト分配回路への出力を抑止する技術が記載されている。特許文献2には、vscが発行された場合、vscの開始アドレスと、終了アドレスが、vscアドレス一致検出部に送られ、vscアドレス一致検出部が、後続のメモリアクセス命令とアクセスするアドレス領域が重なっているか判定する技術が記載されている。
を備える。
(1)ベクトルギャザー命令の一般的な動作についての説明
本実施形態を説明する前に、ベクトルギャザー命令の一般的な動作について説明する。ベクトルギャザー命令のニーモニックは、以下のようになる。
上記において、VR0およびVR1は、ベクトルレジスタである。ベクトルレジスタは複数の要素を保持しており、本実施形態では、256個の要素が保持されるものと仮定する。すなわち、1つのベクトルレジスタは、8B(8×8=64ビット)のデータ幅のレジスタを256個分持っている。
(2)本実施形態を適用することにより拡張されるベクトルギャザー命令についての説明
次に、本発明の実施形態を適用することにより拡張されるベクトルギャザー命令について説明する。以下で説明する本実施形態は、ベクトルギャザー命令にアドレス重なり検出機能を追加することにより、前述の重なり検出の命令をなくし、リスト総和演算の高速化を図っている。重なり検出機能の実装ポイントは、以下の(2−1)(2−2)である。
(2−1)ベクトルギャザー命令(vgt)の拡張
図2は、ベクトルギャザー命令を拡張する前のニーモニックの例を示し、図3は、本実施形態によりベクトルギャザー命令を拡張した後のニーモニックの例を示している。図3に示されるように、本実施形態では、スカラレジスタ(SR0)が引数に追加される。命令完了時、SR0にはvgt(最大256要素)中で、何回のアドレスの重なりがあったかが格納される。
(2−2)2種類のアドレス重なり検出
(2−2−1)vgtの同一ライン内における同一アドレスの重なり検出
(2−2−2)vgtのクロスバ通過時における、同一ポート内の、前後のライン間での同一アドレスの重なり検出
(2−2−1)および(2−2−2)でのカウント数は積算される。この積算値は、当該vgt命令のアドレス重複数である。
(3)本実施形態に係る計算機についての説明
(構成の説明)
図5は、本発明の第1の実施形態に係る計算機100の構成例を示すブロック図である。
(動作の説明)
図11は、図5に示す計算機100の動作例(計算方法)を説明するためのフローチャートである。
■ステップS1(命令発行)
スカラ制御部1によりフェッチ・デコードされたベクトルギャザー命令は、アドレス計算部3に発行される。
■ステップS2(ライン内圧縮)
アドレス計算部3は、ベクトルギャザー命令のアドレスを論理アドレスから物理アドレスへと変換し、ベクトル制御部2に対して、ベクトルギャザー命令が発行されたことを通知する。そして、ベクトルギャザー・スキャッター圧縮部32は、ライン内圧縮の検出を行う。ベクトルギャザー・スキャッター圧縮部32は、圧縮した要素に、どの要素を圧縮したかの情報(「同一ライン内のアドレス重複数」)を付与する。圧縮されたベクトルギャザー命令は、リクエストクロスバ制御部4に順次送られる。
■ステップS3(行先別の調停/終了要素の調停)
リクエストクロスバ制御部4は、行先別に調停を行い、行先に応じた出力ポートに当該要素を送信する。そして、当該ベクトルギャザー命令の全要素の調停発行後には、リクエストクロスバ制御部4は、当該命令の処理の終了を示す疑似要素(終了要素)を、ライン間圧縮検出部4101〜4116へ送信する。
■ステップS4(終了要素の判定)
ライン間圧縮検出部4101〜4116は、終了要素か否かの判定を行う。終了要素の場合は、ステップS9の処理が実行される。終了要素でなければ、ステップS5の処理が実行される。
■ステップS5(アドレスの保持)
ライン間圧縮検出部4101〜4116は、当該ポートにアクセスされた要素のアドレスを保持する。
■ステップS6(先行要素内に同一アドレスがあるか否かの判定)
ライン間圧縮検出部4101〜4116は、保持している先行要素と新規に調停されてきた要素とのライン間の比較を行い、同一アドレスがあるか否かを判定する。同一アドレスがない場合にはステップS7の処理が実行され、同一アドレスがある場合にはステップS8の処理が実行される。
■ステップS7(当該要素の「同一ライン内のアドレス重複数」から1を減じた値の通知)
同一アドレスがない場合、ライン間圧縮検出部4101〜4116は、当該要素の「同一ライン内のアドレス重複数」から1を減算した値を「ライン間のアドレス重複数」として求め、これを重複アドレス数計算部31に通知する。
■ステップS8(当該要素の「同一ライン内のアドレス重複数」の通知)
同一アドレスがある場合、ライン間圧縮検出部4101〜4116は、当該要素の「同一ライン内のアドレス重複数」の値を「ライン間のアドレス重複数」として求め、これを重複アドレス数計算部31に通知する。
■ステップS9(終了通知の発行)
全要素の調停が終了すると、リクエストクロスバ制御部4は、全てのライン間圧縮検出部4101〜4116に対して、終了要素を通知する。ライン間圧縮検出部4101〜4116は、終了要素を受理すると、重複アドレス数計算部31に対して、それぞれのライン間圧縮検出部4101〜4116での重複検出が終了したことを示す終了通知を発行する。
■ステップS10(保持アドレスのクリア)
その後、ライン間圧縮検出部4101〜4116は、アドレスを保持している要素をクリアし、次の命令に備える。
■ステップS11(メインメモリにメモリアクセスを発行)
各要素のアクセス先が決まったため、キャッシュ・メインメモリ6では実際のデータアクセスが行われる。
■ステップS12(リプライクロスバ制御部経由でリプライ)
キャッシュ・メインメモリ6にアクセスした各要素のリプライは、リプライクロスバ制御部5を経由して、アドレス計算部3に返信される。このとき、ライン内で圧縮しているアクセスが展開される(具体的には、圧縮前のアクセス要素数が復元される)。
■ステップS13(リプライデータをベクトルレジスタに返送)
アドレス計算部3は、リプライクロスバ制御部5から返信された要素に対するリプライをベクトルレジスタ21に返送する。アクセスのあった要素分が返送されると、ベクトル制御部2に対する処理は終了となる。
■ステップS14(重複数の返送)
重複アドレス数計算部31は、ライン間圧縮検出部4101〜4116から通知される値(「ライン間のアドレス重複数」)を16ポート分まとめて積算し続ける。この積算は、ライン間圧縮検出部4101〜4116からの終了通知が届くまで続けられる。終了通知の受理により、「ベクトルギャザー命令に対する重複数」の計算は完了する。重複アドレス数計算部31は、「ベクトルギャザー命令に対する重複数」をスカラ制御部1に返送する。スカラ制御部1は、受理した重複数をスカラレジスタに保持する。これにより、当該ベクトルギャザー命令は完了となる。
(効果の説明)
以上説明した第1の実施形態のようにベクトルギャザー命令(vgt)を拡張することにより、vgt単体にてアドレス重複を検出することができる。従って、コアループ内における、アドレス重複を検出するための命令(たとえば、図4において取り消し線が引かれた命令)を不要とすることができ、結果として、リスト総和演算の高速化が可能なる。
[第2の実施形態]
図12は、本発明の第2の実施形態に関する説明であって、詳細には、ベクトルギャザー命令を更に拡張した後のニーモニックの例を示している。
[第3の実施形態]
図14は、本発明の第3の実施形態に係る計算機200の構成例を示すブロック図である。
2 ベクトル制御部
21 ベクトルレジスタ
22 ベクトルマスクレジスタ
23 ベクトル演算器
3 アドレス計算部
31 重複アドレス数計算部
32 ベクトルギャザー・スキャッター圧縮部
4 リクエストクロスバ制御部
4101〜4116 ライン間圧縮検出部
42 重複ビットマップレジスタ
5 リプライクロスバ制御部
6 キャッシュ・メインメモリ
100 計算機
200 計算機
202 第1重複処理部
204 第2重複処理部
206 重複アドレス数計算部
Claims (6)
- 1つのラインが複数の要素を含み、前記ラインを複数に亘って処理するベクトルギャザー命令を実行するにあたり、1つの前記ライン内におけるアドレス重複数である第1アドレス重複数を求めるとともに、該当するリクエストを統合する第1重複処理手段と、
複数の前記ライン間におけるアドレス重複があるか否かを判定し、当該判定結果と前記第1アドレス重複数とに基づいて、前記ライン間のアドレス重複数である第2アドレス重複数を求める第2重複処理手段と、
前記ベクトルギャザー命令ごとに前記第2アドレス重複数を積算し、積算された重複数をスカラ演算部に通知する重複アドレス数計算手段と
を備えることを特徴とする計算機。 - 請求項1記載の前記計算機において前記ベクトルギャザー命令を実行する際のニーモニックは、前記ベクトルギャザー命令をVGTとし、ソースベクトルレジスタをVR0とし、デスティネーションベクトルレジスタをVR1とし、スカラレジスタをSR0とする場合、
VGT VR0、VR1、SR0
であることを特徴とする計算機。 - 前記第2重複処理手段は、前記要素ごとに設けられる1ビットのビットマップレジスタの集合である重複ビットマップレジスタを備えることを特徴とする請求項1または2記載の計算機。
- 前記第2重複処理手段は、所定の前記要素が重複していることを検出すると、前記重複ビットマップレジスタにおける、当該要素に対応する前記ビットマップレジスタをアサートし、前記ベクトルギャザー命令の処理終了を示す終了要素を受理した場合、前記重複ビットマップレジスタを、前記重複アドレス数計算手段へ通知することを特徴とする請求項3記載の計算機。
- 請求項3または4に記載の前記計算機において前記ベクトルギャザー命令を実行する際のニーモニックは、ベクトルマスクレジスタをVM0とした場合、
VGT VR0、VR1、SR0、VM0
であることを特徴とする計算機。 - 1つのラインが複数の要素を含み、前記ラインを複数に亘って処理するベクトルギャザー命令を実行するにあたり、1つの前記ライン内におけるアドレス重複数である第1アドレス重複数を求めるとともに、該当するリクエストを統合し、
複数の前記ライン間におけるアドレス重複があるか否かを判定し、当該判定結果と前記第1アドレス重複数とに基づいて、前記ライン間のアドレス重複数である第2アドレス重複数を求め、
前記ベクトルギャザー命令ごとに前記第2アドレス重複数を積算し、積算された重複数をスカラ演算部に通知する
ことを特徴とする計算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018183265A JP7124608B2 (ja) | 2018-09-28 | 2018-09-28 | 計算機および計算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018183265A JP7124608B2 (ja) | 2018-09-28 | 2018-09-28 | 計算機および計算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020052862A true JP2020052862A (ja) | 2020-04-02 |
JP7124608B2 JP7124608B2 (ja) | 2022-08-24 |
Family
ID=69997317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018183265A Active JP7124608B2 (ja) | 2018-09-28 | 2018-09-28 | 計算機および計算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7124608B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328592A (zh) * | 2022-03-16 | 2022-04-12 | 北京奥星贝斯科技有限公司 | 聚合计算方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1049520A (ja) * | 1996-07-29 | 1998-02-20 | Kofu Nippon Denki Kk | リストベクトル処理システム |
JP2014099194A (ja) * | 2008-03-28 | 2014-05-29 | Intel Corp | 効率的な同期および並列リダクション演算を可能にするベクトル命令 |
JP2017045151A (ja) * | 2015-08-24 | 2017-03-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP2019517060A (ja) * | 2016-04-26 | 2019-06-20 | エイアールエム リミテッド | ベクトル演算を実行する際にアドレス衝突を管理するための装置及び方法 |
-
2018
- 2018-09-28 JP JP2018183265A patent/JP7124608B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1049520A (ja) * | 1996-07-29 | 1998-02-20 | Kofu Nippon Denki Kk | リストベクトル処理システム |
JP2014099194A (ja) * | 2008-03-28 | 2014-05-29 | Intel Corp | 効率的な同期および並列リダクション演算を可能にするベクトル命令 |
JP2017045151A (ja) * | 2015-08-24 | 2017-03-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP2019517060A (ja) * | 2016-04-26 | 2019-06-20 | エイアールエム リミテッド | ベクトル演算を実行する際にアドレス衝突を管理するための装置及び方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328592A (zh) * | 2022-03-16 | 2022-04-12 | 北京奥星贝斯科技有限公司 | 聚合计算方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7124608B2 (ja) | 2022-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5573134B2 (ja) | ベクトル型計算機及びベクトル型計算機の命令制御方法 | |
US9678750B2 (en) | Vector instructions to enable efficient synchronization and parallel reduction operations | |
JPH1027102A (ja) | 演算処理装置 | |
US7418575B2 (en) | Long instruction word processing with instruction extensions | |
KR102524565B1 (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
CN107315717B (zh) | 一种用于执行向量四则运算的装置和方法 | |
TW201719389A (zh) | 處理用於向量算術指令的例外狀況 | |
US8788766B2 (en) | Software-accessible hardware support for determining set membership | |
KR101183270B1 (ko) | 오퍼랜드 의존성으로 인한 기능 정지를 감소시키는 방법 및데이터 프로세서 | |
JP2001209535A (ja) | プロセッサの命令スケジューリング装置 | |
EP3140730B1 (en) | Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme | |
JPS63240664A (ja) | 高速処理計算機 | |
US5802340A (en) | Method and system of executing speculative store instructions in a parallel processing computer system | |
CN110060195B (zh) | 一种数据处理的方法及装置 | |
JP7124608B2 (ja) | 計算機および計算方法 | |
JPH10143365A (ja) | 並列処理装置及びその命令発行方式 | |
EP3543846B1 (en) | Computer system and memory access technology | |
JP5979966B2 (ja) | 回路設計支援装置及び回路設計支援方法及びプログラム | |
Kiat et al. | A comprehensive analysis on data hazard for RISC32 5-stage pipeline processor | |
JP3435278B2 (ja) | データ処理装置 | |
US20080215859A1 (en) | Computer with high-speed context switching | |
US6795878B2 (en) | Verifying cumulative ordering of memory instructions | |
JP7010129B2 (ja) | プロセッサ及び情報処理装置 | |
US8683181B2 (en) | Processor and method for distributing load among plural pipeline units | |
JP5882800B2 (ja) | リスト命令の検証機能を有する情報処理装置、リスト命令の検証方法、及びリスト命令の検証のためのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210816 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20211015 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220701 |
|
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: 20220712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220725 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7124608 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |