JP2020047221A - プロセッサ、情報処理方法、プログラム - Google Patents
プロセッサ、情報処理方法、プログラム Download PDFInfo
- Publication number
- JP2020047221A JP2020047221A JP2018177632A JP2018177632A JP2020047221A JP 2020047221 A JP2020047221 A JP 2020047221A JP 2018177632 A JP2018177632 A JP 2018177632A JP 2018177632 A JP2018177632 A JP 2018177632A JP 2020047221 A JP2020047221 A JP 2020047221A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vector
- vector operation
- processing unit
- instructions
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
Description
ベクトル長が128の場合:1つのベクトル命令の処理時間=128/32=4クロックになる。また、同時に2命令処理が可能なため、4/2=2クロック毎にベクトル命令を1つ発行することが必須になる。
ベクトル長が64の場合:1つのベクトル命令の処理時間=64/32=2クロックになる。また、同時に2命令処理が可能なため、2/2=1クロック毎にベクトル命令を1つ発行することが必須になる。
ベクトル長が32の場合:1つのベクトル命令の処理時間=32/32=1クロックになる。また、同時に2命令処理が可能なため、1/2=0.5クロック毎にベクトル命令を1つ発行することが必須になる。つまり、1クロックに2つのベクトル命令発行が必要になる。
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させる、
という構成をとる。
本発明の第1の実施形態を、図2乃至図14を参照して説明する。図2は、プロセッサの構成を説明するための図であり、図3乃至図14は、プロセッサによる処理の様子を説明するための図である。
図2に示すように、本発明におけるプロセッサは、スカラ演算を行うSPU(スカラプロセッシングユニット)100と、ベクトル演算をVPU(ベクトルプロセッシングユニット)200と、を備え、ベクトル演算命令を実行するものである。特に、本実施形態におけるプロセッサは、複数命令を同時にデコードする機能(4命令同時デコード構成とする)を有し、演算命令の演算例外時にプログラムのデバッグ用途として該当演算命令のインストラクションカウンタIC(演算例外IC)、つまり、当該演算命令の格納場所を表すアドレス情報、を出力する機能を有することとする。そして、本発明のプロセッサは、かかる機能に加えて、後述するよう複数のベクトル命令を1命令に圧縮し復元する機能を提供するものである。
条件1:図4に示した組み合わせで同時にデコード可能な命令においてベクトル演算命令が命令圧縮対象になるか。つまり、同時にデコード可能な命令のうち、相互に連続する命令であるか。
条件2:図5に示した基準命令の演算例外ICレジスタが有効であり、ベクトル演算命令の演算例外ICが一致しているか。つまり、ベクトル演算命令の演算例外ICのアドレスの一部である上位アドレスが一致するか。
次に、上述したプロセッサの動作を説明する。なお、以下では、プロセッサに対する命令が、ベクトル演算命令の場合、ベクトル演算命令でない場合、とに分けて説明する。
まず、SPU100内の処理について説明する。命令キャッシュ101は、同時に複数命令(本実施例では4命令)を、信号線110を介して命令デコーダ制御部122へ出力する。
次に、プロセッサに対する命令が、ベクトル演算命令でない場合について説明する。SPU100内では、命令キャッシュ101は、同時に複数命令(本実施例では4命令)を信号線110を介して命令デコーダ制御部122へ出力する。命令デコーダ制御部122は、同時に複数命令デコード(本実施例では4命令)を行い、命令デコード結果と命令に付随する各種情報を、信号線130を介してベクトル演算命令圧縮制御部125へ出力する。また、命令デコード結果を、信号線131を介してベクトル演算命令判定部123へ出力する。
以上に説明したように、本発明においては、以下に記載するような効果を持つ。まず、ベクトル命令を実行するプロセッサにおいて、SPU100の命令デコーダ121による命令圧縮制御と、VPU200の命令デコーダ201による命令復元制御により、SPU100から1クロックに複数のベクトル演算命令を発行することが可能になる。これにより、SPU−VPUのユニット間のベクトル演算命令の発行レートの向上が可能になる。また、ハードウェアのみの機能で実現可能なため、これまでのソフトウェアを変更せずにベクトル演算命令発行レートの向上を享受できる。
次に、本発明の第2の実施形態を、図15を参照して説明する。図15は、実施形態2におけるプロセッサの構成を示すブロック図である。なお、本実施形態では、実施形態1で説明したプロセッサの構成の概略を示している。
スカラ演算を行うスカラプロセッシングユニット310と、ベクトル演算を行うベクトルプロセッシングユニット320と、を備える。
そして、上記スカラプロセッシングユニット310は、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニット320に発行し、
上記ベクトルプロセッシングユニット320は、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
という構成をとる。
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるプロセッサ、情報処理方法、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
プロセッサ。
付記1に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち相互に連続する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
付記1又は2に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報に基づいて2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
付記3に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部が一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
付記1乃至4のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、相互に連続すると共に、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部である予め設定された上位アドレスが一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。
付記1乃至5のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の2以上のベクトル演算命令の少なくとも1つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
プロセッサ。
付記6に記載のプロセッサであって、
前記スカラプロセッシングユニットは、前記統合ベクトル演算命令に、統合前の1つのベクトル演算命令の格納場所を表すアドレス情報の予め設定された下位アドレスを含めて前記ベクトルプロセッシングユニットに送信し、
前記ベクトルプロセッシングユニットは、前記統合しないベクトル演算命令に含められたアドレス情報と、前記統合ベクトル演算命令に含められた前記下位アドレスに基づいて、当該統合ベクトル演算命令の統合前の2以上のベクトル演算命令の格納場所を表すアドレス情報を取得する、
プロセッサ。
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
情報処理方法。
プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させるためのプログラム。。
101 命令キャッシュ
121 命令デコーダ
122 命令デコーダ制御部
123 ベクトル演算命令判定部
124 ベクトル演算例外ICレジスタ
125 ベクトル演算命令圧縮制御部
141 命令スケジューラ
161 スカラレジスタ
181 ベクトル命令発行制御部
200 VPU(ベクトルプロセッシングユニット)
201 命令デコーダ
202 命令デコーダ制御部
203 ベクトル演算例外ICレジスタ
204 ベクトル演算命令復元制御部
221 命令スケジューラ
241 ベクトルレジスタ
261 ベクトル演算ユニット群
300 プロセッサ
310 スカラプロセッシングユニット
320 ベクトルプロセッシングユニット
Claims (9)
- スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
プロセッサ。 - 請求項1に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち相互に連続する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。 - 請求項1又は2に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報に基づいて2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。 - 請求項3に記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部が一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。 - 請求項1乃至4のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち、相互に連続すると共に、当該ベクトル演算命令のそれぞれの格納場所を表すアドレス情報の一部である予め設定された上位アドレスが一致する2以上のベクトル演算命令を1つの命令として統合する、
プロセッサ。 - 請求項1乃至5のいずれかに記載のプロセッサであって、
前記スカラプロセッシングユニットは、統合しないベクトル演算命令に、当該ベクトル演算命令の格納場所を表すアドレス情報を含めて前記ベクトルプロセッシングユニットに送信し、前記統合ベクトル演算命令に、統合前の2以上のベクトル演算命令の少なくとも1つの格納場所を表すアドレス情報の一部を含めて前記ベクトルプロセッシングユニットに送信する、
プロセッサ。 - 請求項6に記載のプロセッサであって、
前記スカラプロセッシングユニットは、前記統合ベクトル演算命令に、統合前の1つのベクトル演算命令の格納場所を表すアドレス情報の予め設定された下位アドレスを含めて前記ベクトルプロセッシングユニットに送信し、
前記ベクトルプロセッシングユニットは、前記統合しないベクトル演算命令に含められたアドレス情報と、前記統合ベクトル演算命令に含められた前記下位アドレスに基づいて、当該統合ベクトル演算命令の統合前の2以上のベクトル演算命令の格納場所を表すアドレス情報を取得する、
プロセッサ。 - スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を備えたプロセッサによる情報処理方法であって、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
情報処理方法。 - プロセッサに、
スカラ演算を行うスカラプロセッシングユニットと、ベクトル演算を行うベクトルプロセッシングユニットと、を実現させると共に、
前記スカラプロセッシングユニットは、同時にデコードした複数のベクトル演算命令のうち2以上のベクトル演算命令を1つの命令として統合した統合ベクトル演算命令を前記ベクトルプロセッシングユニットに発行し、
前記ベクトルプロセッシングユニットは、前記統合ベクトル演算命令を統合前の2以上のベクトル演算命令に復元して、当該2以上のベクトル演算命令に従ってそれぞれベクトル演算を行う、
ことを実現させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018177632A JP7183657B2 (ja) | 2018-09-21 | 2018-09-21 | プロセッサ、情報処理方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018177632A JP7183657B2 (ja) | 2018-09-21 | 2018-09-21 | プロセッサ、情報処理方法、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020047221A true JP2020047221A (ja) | 2020-03-26 |
JP7183657B2 JP7183657B2 (ja) | 2022-12-06 |
Family
ID=69899785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018177632A Active JP7183657B2 (ja) | 2018-09-21 | 2018-09-21 | プロセッサ、情報処理方法、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7183657B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06162068A (ja) * | 1992-11-20 | 1994-06-10 | Hitachi Ltd | ベクトル処理装置 |
WO2017064456A1 (en) * | 2015-10-14 | 2017-04-20 | Arm Limited | Move prefix instruction |
-
2018
- 2018-09-21 JP JP2018177632A patent/JP7183657B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06162068A (ja) * | 1992-11-20 | 1994-06-10 | Hitachi Ltd | ベクトル処理装置 |
WO2017064456A1 (en) * | 2015-10-14 | 2017-04-20 | Arm Limited | Move prefix instruction |
Also Published As
Publication number | Publication date |
---|---|
JP7183657B2 (ja) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8832166B2 (en) | Floating point multiplier circuit with optimized rounding calculation | |
US20170322805A1 (en) | Performing Rounding Operations Responsive To An Instruction | |
US20140208069A1 (en) | Simd instructions for data compression and decompression | |
US9274802B2 (en) | Data compression and decompression using SIMD instructions | |
CN108028665B (zh) | 用于使用硬件和软件进行压缩的系统、方法和装置 | |
JP2009026106A (ja) | 命令コード圧縮方法と命令フェッチ回路 | |
JP2011209904A (ja) | 命令フェッチ装置、および、プロセッサ | |
US10666288B2 (en) | Systems, methods, and apparatuses for decompression using hardware and software | |
US20140075153A1 (en) | Reducing issue-to-issue latency by reversing processing order in half-pumped simd execution units | |
KR20140043834A (ko) | 엔트로피 인코딩된 명령 시퀀스의 실행가능한 형태로의 변환 및 스토리지를 위한 방법들 및 장치 | |
CN110943744A (zh) | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 | |
WO2013036950A1 (en) | Instruction packet including multiple instructions having a common destination | |
JP2011209905A (ja) | 命令フェッチ装置、プロセッサ、および、プログラムカウンタ加算制御方法 | |
CN113407351A (zh) | 执行运算的方法、装置、芯片、设备、介质和程序产品 | |
US20170272096A1 (en) | Systems, methods, and apparatuses for decompression using hardware and software | |
JP7183657B2 (ja) | プロセッサ、情報処理方法、プログラム | |
CN111752745A (zh) | 对码字中相邻两位错误的检测 | |
US20210397454A1 (en) | Instruction to vectorize loops with backward cross-iteration dependencies | |
US6922773B2 (en) | System and method for encoding constant operands in a wide issue processor | |
US11269651B2 (en) | Reusing adjacent SIMD unit for fast wide result generation | |
US8898433B2 (en) | Efficient extraction of execution sets from fetch sets | |
TW201419140A (zh) | 可重新配置的指令編碼方法、執行方法及電子裝置 | |
WO2013025641A1 (en) | Bit splitting instruction | |
JP2011209903A (ja) | 命令フェッチ装置、プロセッサ、プログラム変換装置、および、プログラム変換方法 | |
Ye et al. | FLAC decoding using GPU acceleration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221017 |
|
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: 20221025 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221107 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7183657 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |