JP5751181B2 - 命令制御回路、プロセッサ、及び命令制御方法 - Google Patents
命令制御回路、プロセッサ、及び命令制御方法 Download PDFInfo
- Publication number
- JP5751181B2 JP5751181B2 JP2012012250A JP2012012250A JP5751181B2 JP 5751181 B2 JP5751181 B2 JP 5751181B2 JP 2012012250 A JP2012012250 A JP 2012012250A JP 2012012250 A JP2012012250 A JP 2012012250A JP 5751181 B2 JP5751181 B2 JP 5751181B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- cycle
- identification information
- vector
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 44
- 238000001514 detection method Methods 0.000 claims description 30
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
Images
Classifications
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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 or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
vr[224]=vr[32]+vr[192]
vr[225]=vr[33]+vr[193]
・・・
vr[231]=vr[39]+vr[199]
以降、ベクトル長(VL)が32である場合には4サイクル目まで処理対象とするベクトルレジスタをサイクル毎に変更して演算処理を行い、ベクトル長(VL)が40である場合には5サイクル目まで処理対象とするベクトルレジスタをサイクル毎に変更して演算処理を行う。
vr[1-0]=vr[65-64]+vr[129-128]
vr[3-2]=vr[67-66]+vr[131-130]
vr[5-4]=vr[69-68]+vr[133-132]
vr[7-6]=vr[71-70]+vr[135-134]
以降、ベクトル長(VL)が32である場合には8サイクル目まで処理対象とするベクトルレジスタをサイクル毎に変更して演算処理を行い、ベクトル長(VL)が40である場合には10サイクル目まで処理対象とするベクトルレジスタをサイクル毎に変更して演算処理を行う。
本発明の実施形態におけるベクトル処理装置(ベクトルプロセッサ)の全体構成は、図18に示したベクトル処理装置と同様であるので、その説明は省略する。なお、図18においては、4つの実行パイプラインを有するベクトル処理装置を例示したが、これに限定されない。本実施形態におけるベクトル処理装置は、複数の実行パイプラインを有していれば良く、ベクトル処理装置が有する実行パイプラインの数は任意である。以下では、本発明の実施形態によるベクトル処理装置における命令発行制御について説明する。
本発明の第1の実施形態について説明する。
図1は、第1の実施形態における命令発行制御部の構成例を示すブロック図である。図1において、命令バッファ11、データ依存検出部12、及び命令発行制御部13Aは、図18に示した命令バッファ101、データ依存検出部102、及び命令発行制御部103にそれぞれ対応する。
次に、本発明の第2の実施形態について説明する。
前述した第1の実施形態におけるベクトル処理装置によれば、先行命令と後続命令の間でのRAWハザードを回避することができる。しかし、生成された新規の命令で実行されるため、先行命令での後半部分の処理はなくても良い。また、先行命令と後続命令の間でのWARハザードを回避できるようにするには、処理結果を保証するために、先行命令での後半部分の処理を実行しないように制御する必要がある。
12 データ依存検出部
13A、13B 命令発行制御部
21 デコード部
22 第1の処理完了サイクル算出部
23、24 マルチプレクサ回路
25 命令発行制御テーブル
26 命令生成部
27、28、29 演算部
30 第2の処理完了サイクル算出部
31 前半処理完了サイクル変更部
101 命令バッファ
102 データ依存検出部
103 命令発行制御部
104 実行パイプライン
105 ベクトルレジスタファイル
106 マルチプレクサ回路
107 シーケンサ
108 演算部
Claims (7)
- 複数の命令を保持する保持部と、
前記保持部から入力される前記複数の命令のうち、先行命令と前記先行命令に続く後続命令とのデータ依存関係を検出するデータ依存検出部と、
前記データ依存検出部での検出結果に基づいて、命令の発行を制御する命令発行制御部とを有し、
前記命令発行制御部は、
前記先行命令と前記後続命令とのデータ依存関係がある場合に、前記先行命令と同じ命令種類を有する新規の命令を生成し、生成した前記新規の命令を前記先行命令と前記後続命令との間に発行し、
前記新規の命令の生成では、
前記先行命令とデータ依存関係にある前記後続命令の第1レジスタの識別情報から前記新規の命令の第2レジスタの識別情報を決定し、
前記先行命令の第2レジスタの識別情報と前記新規の命令の第2レジスタの識別情報との差分を算出し、
算出した前記差分と前記先行命令の第1レジスタの識別情報とから前記新規の命令の第1レジスタの識別情報を決定し、
前記先行命令の処理完了サイクルと所定のベクトル長とから前記新規の命令の処理完了サイクルを決定することを特徴とするベクトル処理装置の命令制御回路。 - 前記命令発行制御部は、前記先行命令と前記新規の命令と前記所定のベクトル長とに基づいて、前記先行命令による処理のうち、前記先行命令と前記新規の命令とで重複する処理を除いた処理に要するサイクルを決定し、決定した前記サイクルに前記先行命令の処理完了サイクルを変更することを特徴とする請求項1記載のベクトル処理装置の命令制御回路。
- 前記命令発行制御部は、
前記先行命令と前記後続命令とにRAWハザードに対応するデータ依存関係がある場合には、
前記先行命令とデータ依存関係にある前記後続命令のソースレジスタの識別情報から前記新規の命令のデスティネーションレジスタの識別情報を決定し、
前記先行命令のデスティネーションレジスタの識別情報と前記新規の命令のデスティネーションレジスタの識別情報との差分を算出し、
算出した前記差分と前記先行命令のソースレジスタの識別情報とから前記新規の命令のソースレジスタの識別情報を決定することを特徴とする請求項1又は2記載のベクトル処理装置の命令制御回路。 - 前記命令発行制御部は、
前記先行命令と前記後続命令とにWARハザードに対応するデータ依存関係がある場合には、
前記先行命令とデータ依存関係にある前記後続命令のデスティネーションレジスタの識別情報から前記新規の命令の第1ソースレジスタの識別情報を決定し、
前記後続命令とデータ依存関係にある前記先行命令の第1ソースレジスタの識別情報と前記新規の命令の第1ソースレジスタの識別情報との差分を算出し、
算出した前記差分と前記先行命令の第2ソースレジスタの識別情報及びデスティネーションレジスタの識別情報とから前記新規の命令の第2ソースレジスタの識別情報及びデスティネーションレジスタの識別情報を決定することを特徴とする請求項1又は2記載のベクトル処理装置の命令制御回路。 - 前記命令発行制御部は、前記データ依存検出部での検出結果に応じて、前記保持部からの命令を発行するか、生成した前記新規の命令を発行するかを選択することを特徴とする請求項1〜4の何れか1項に記載のベクトル処理装置の命令制御回路。
- 複数の命令を保持する保持部と、
前記保持部から入力される前記複数の命令のうち、先行命令と前記先行命令に続く後続命令とのデータ依存関係を検出するデータ依存検出部と、
前記データ依存検出部での検出結果に基づいて、命令の発行を制御する命令発行制御部と、
並列に動作可能であって、各々が独立して前記命令発行制御部から発行される命令を受けて、当該命令に応じたベクトル演算処理を実行する複数の命令実行部とを有し、
前記命令発行制御部は、
前記先行命令と前記後続命令とのデータ依存関係がある場合に、前記先行命令と同じ命令種類を有する新規の命令を生成し、生成した前記新規の命令を前記先行命令と前記後続命令との間に発行し、
前記新規の命令の生成では、
前記先行命令とデータ依存関係にある前記後続命令の第1レジスタの識別情報から前記新規の命令の第2レジスタの識別情報を決定し、
前記先行命令の第2レジスタの識別情報と前記新規の命令の第2レジスタの識別情報との差分を算出し、
算出した前記差分と前記先行命令の第1レジスタの識別情報とから前記新規の命令の第1レジスタの識別情報を決定し、
前記先行命令の処理完了サイクルと所定のベクトル長とから前記新規の命令の処理完了サイクルを決定することを特徴とするプロセッサ。 - ベクトル処理装置が有するデータ依存検出部が、複数の命令を保持する保持部から入力される前記複数の命令のうち、先行命令と前記先行命令に続く後続命令とのデータ依存関係を検出し、
ベクトル処理装置が有する命令発行制御部が、前記データ依存関係の検出結果に基づいて命令の発行を制御し、
前記先行命令と前記後続命令とのデータ依存関係がある場合に、前記命令発行制御部が、前記先行命令と同じ命令種類を有する新規の命令を生成し、生成した前記新規の命令を前記先行命令と前記後続命令との間に発行し、
前記新規の命令の生成では、
前記先行命令とデータ依存関係にある前記後続命令の第1レジスタの識別情報から前記新規の命令の第2レジスタの識別情報を決定し、
前記先行命令の第2レジスタの識別情報と前記新規の命令の第2レジスタの識別情報との差分を算出し、
算出した前記差分と前記先行命令の第1レジスタの識別情報とから前記新規の命令の第1レジスタの識別情報を決定し、
前記先行命令の処理完了サイクルと所定のベクトル長とから前記新規の命令の処理完了サイクルを決定することを特徴とするベクトル処理装置の命令制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012012250A JP5751181B2 (ja) | 2012-01-24 | 2012-01-24 | 命令制御回路、プロセッサ、及び命令制御方法 |
US13/713,894 US9164767B2 (en) | 2012-01-24 | 2012-12-13 | Instruction control circuit, processor, and instruction control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012012250A JP5751181B2 (ja) | 2012-01-24 | 2012-01-24 | 命令制御回路、プロセッサ、及び命令制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013152544A JP2013152544A (ja) | 2013-08-08 |
JP5751181B2 true JP5751181B2 (ja) | 2015-07-22 |
Family
ID=48798214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012012250A Expired - Fee Related JP5751181B2 (ja) | 2012-01-24 | 2012-01-24 | 命令制御回路、プロセッサ、及び命令制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9164767B2 (ja) |
JP (1) | JP5751181B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9928564B2 (en) * | 2014-06-26 | 2018-03-27 | Intel Corporation | Efficient hardware mechanism to ensure shared resource data coherency across draw calls |
GB2536069B (en) * | 2015-03-25 | 2017-08-30 | Imagination Tech Ltd | SIMD processing module |
CN115951937B (zh) * | 2023-03-10 | 2023-06-30 | 北京微核芯科技有限公司 | 处理器中向量指令填表和查表方法、装置及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60178580A (ja) | 1984-02-24 | 1985-09-12 | Fujitsu Ltd | 命令制御方式 |
JP2685484B2 (ja) * | 1988-04-13 | 1997-12-03 | 株式会社日立製作所 | 記憶制御方式 |
US7571303B2 (en) * | 2002-10-16 | 2009-08-04 | Akya (Holdings) Limited | Reconfigurable integrated circuit |
US8074051B2 (en) * | 2004-04-07 | 2011-12-06 | Aspen Acquisition Corporation | Multithreaded processor with multiple concurrent pipelines per thread |
US8078833B2 (en) * | 2008-05-29 | 2011-12-13 | Axis Semiconductor, Inc. | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions |
JP5699554B2 (ja) * | 2010-11-11 | 2015-04-15 | 富士通株式会社 | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
JP5786719B2 (ja) * | 2012-01-04 | 2015-09-30 | 富士通株式会社 | ベクトルプロセッサ |
-
2012
- 2012-01-24 JP JP2012012250A patent/JP5751181B2/ja not_active Expired - Fee Related
- 2012-12-13 US US13/713,894 patent/US9164767B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20130191616A1 (en) | 2013-07-25 |
JP2013152544A (ja) | 2013-08-08 |
US9164767B2 (en) | 2015-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5646656B2 (ja) | 複数の命令セットにより使用されるレジスタ間のマッピング | |
JP2012103959A (ja) | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム | |
TWI764966B (zh) | 用於控制矢量記憶體存取之資料處理裝置及方法 | |
KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
JP5751181B2 (ja) | 命令制御回路、プロセッサ、及び命令制御方法 | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
US20240045694A1 (en) | Differential pipeline delays in a coprocessor | |
KR102458467B1 (ko) | 벡터 생성 명령 | |
US8055883B2 (en) | Pipe scheduling for pipelines based on destination register number | |
US9213547B2 (en) | Processor and method for processing instructions using at least one processing pipeline | |
JP2018521422A (ja) | ベクトル長クエリ命令 | |
WO2019094492A1 (en) | System and method of vliw instruction processing using reduced-width vliw processor | |
EP3690639B1 (en) | Information processing apparatus, program, and information processing method | |
JP5871298B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP6347629B2 (ja) | 命令処理方法及び命令処理装置 | |
JP5720111B2 (ja) | 情報処理装置 | |
JP7102840B2 (ja) | プロセッサコア、命令制御方法、プログラム | |
JP5511299B2 (ja) | データ演算装置の制御回路及びデータ演算装置 | |
JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
JP4502983B2 (ja) | ベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラム。 | |
JP6307975B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP5013966B2 (ja) | 演算処理装置 | |
JP2021166010A (ja) | 演算処理装置 | |
JP2001243066A (ja) | パイプライン処理方法並びにその方法を利用するパイプライン処理装置 | |
JP2009104494A (ja) | ベクトル処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141001 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150415 |
|
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: 20150421 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150504 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5751181 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |