JP2009026260A - 演算処理装置、演算処理方法 - Google Patents
演算処理装置、演算処理方法 Download PDFInfo
- Publication number
- JP2009026260A JP2009026260A JP2007191621A JP2007191621A JP2009026260A JP 2009026260 A JP2009026260 A JP 2009026260A JP 2007191621 A JP2007191621 A JP 2007191621A JP 2007191621 A JP2007191621 A JP 2007191621A JP 2009026260 A JP2009026260 A JP 2009026260A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- store
- load
- address
- execution
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定するコンパイラ装置bと、この命令群を受信し、アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するアドレス依存性判定部c1と、アドレス依存性判定部c1から送出されてきたロード命令を実行する中央処理部c2とを有する演算処理装置。
【選択図】図1
Description
“NST命令を含むストア命令”、すなわちアドレス依存性が無いストア命令をデコード部c11が受信したと判定する。
b コンパイラ装置
c 中央処理装置
d 主記憶装置
e プログラム
c10 命令選択部
c11 デコード部
c12 命令バッファ部
c13 判定回路
c14 追越し許可フラグバッファ
c15 比較回路
c111 命令デコード部
c112 ロードID生成部
c113 ストアID生成部
c121 主記憶ロード命令バッファ
c122 主記憶ストア命令バッファ
c123 ストアIDキュー
c124 ストア追越し判定キューセレクタ
c131 ストアアドレス/追越フラグセレクタ
c132 ストア追越し判定キュー
c133 ロード実行準備判定キュー
c134 ロードIDキュー
c135 ロード実行判定結果出力回路
c151 アドレス比較器
c152 主記憶ストアアドレスバッファ
c153 追越し判定結果出力回路
Claims (10)
- 複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定する手段と、
前記命令群を受信し、前記アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するデータ送出手段と、
前記送出されたロード命令を実行する実行手段と
を有することを特徴とする演算処理装置。 - 前記特定する手段がコンパイラ装置であり、
前記データ送出手段及び前記実行手段が中央処理装置であることを特徴とする請求項1に記載の演算処理装置。 - 前記特定する手段は、アドレス依存性の無い複数のストア命令に、アドレス依存性が無いことを示す識別情報を付加し、アドレス依存性を判断した命令群の終了位置を示す終了位置情報を前記命令群に付加し、命令群を送信するように構成されており、
前記データ送出手段は、前記命令群を受信し、前記識別情報が付加されたストア命令の実行準備が完了するまで、前記終了位置情報よりも前のロード命令を、前記識別情報の付加されたストア命令よりも優先的に前記実行手段に送出するように構成されていることを特徴とする請求項1または請求項2に記載の演算処理装置。 - 前記データ送出手段は、前記実行手段におけるロード命令の実行準備が完了した場合に、前記特定されたロード命令を前記ストア命令よりも優先的に送出するように構成されていることを特徴とする請求項1から請求項3のいずれかに記載の演算処理手段。
- 前記データ送出手段は、前記実行手段で所定の演算処理が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するように構成されていることを特徴とする請求項1から請求項4のいずれかに記載の演算処理装置。
- 複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定するステップと、
前記命令群を受信し、前記アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するデータ送出ステップと、
前記送出されたロード命令を実行する実行ステップと
を有することを特徴とする演算処理方法。 - 前記特定するステップは、コンパイラ装置で行われ、
前記データ送出ステップ及び前記実行ステップは、中央処理装置で行われることを特徴とする請求項6に記載の演算処理方法。 - 前記特定するステップは、アドレス依存性の無い複数のストア命令に、アドレス依存性が無いことを示す識別情報を付加し、アドレス依存性を判断した命令群の終了位置を示す終了位置情報を前記命令群に付加し、命令群を送信するステップであり、
前記データ送出ステップは、前記命令群を受信し、前記識別情報が付加されたストア命令の実行準備が完了するまで、前記終了位置情報よりも前のロード命令を、前記識別情報の付加されたストア命令よりも優先的に送出するステップであることを特徴とする請求項6または請求項7に記載の演算処理方法。 - 前記データ送出ステップは、ロード命令の実行準備が完了した場合に、前記特定されたロード命令を前記ストア命令よりも優先的に送出することを特徴とする請求項6から請求項8のいずれかに記載の演算処理方法。
- 前記データ送出ステップは、前記実行ステップで所定の演算処理が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するように構成されていることを特徴とする請求項6から請求項9のいずれかに記載の演算処理方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007191621A JP5057054B2 (ja) | 2007-07-24 | 2007-07-24 | 演算処理装置、演算処理方法 |
| US12/213,098 US20090031118A1 (en) | 2007-07-24 | 2008-06-13 | Apparatus and method for controlling order of instruction |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007191621A JP5057054B2 (ja) | 2007-07-24 | 2007-07-24 | 演算処理装置、演算処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2009026260A true JP2009026260A (ja) | 2009-02-05 |
| JP5057054B2 JP5057054B2 (ja) | 2012-10-24 |
Family
ID=40296393
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007191621A Active JP5057054B2 (ja) | 2007-07-24 | 2007-07-24 | 演算処理装置、演算処理方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20090031118A1 (ja) |
| JP (1) | JP5057054B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010198439A (ja) * | 2009-02-26 | 2010-09-09 | Nec Corp | ベクトル命令間追い越し判定装置と方法 |
| JP2012048352A (ja) * | 2010-08-25 | 2012-03-08 | Nec Corp | データ処理装置、メモリアクセス制御方法及びメモリアクセス制御プログラム |
| JP2018156568A (ja) * | 2017-03-21 | 2018-10-04 | 株式会社東芝 | コンパイル装置 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106155946A (zh) * | 2015-03-30 | 2016-11-23 | 上海芯豪微电子有限公司 | 基于信息推送的信息系统和方法 |
| US11138009B2 (en) * | 2018-08-10 | 2021-10-05 | Nvidia Corporation | Robust, efficient multiprocessor-coprocessor interface |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000020310A (ja) * | 1998-06-26 | 2000-01-21 | Toshiba Microelectronics Corp | プロセッサ |
| US6658559B1 (en) * | 1999-12-31 | 2003-12-02 | Intel Corporation | Method and apparatus for advancing load operations |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6247173B1 (en) * | 1997-09-24 | 2001-06-12 | Hewlett-Packard Company | Computer compiler optimizer for reducing computer resource consumption during dependence analysis after loop unrolling |
| US7185338B2 (en) * | 2002-10-15 | 2007-02-27 | Sun Microsystems, Inc. | Processor with speculative multithreading and hardware to support multithreading software |
-
2007
- 2007-07-24 JP JP2007191621A patent/JP5057054B2/ja active Active
-
2008
- 2008-06-13 US US12/213,098 patent/US20090031118A1/en not_active Abandoned
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000020310A (ja) * | 1998-06-26 | 2000-01-21 | Toshiba Microelectronics Corp | プロセッサ |
| US6658559B1 (en) * | 1999-12-31 | 2003-12-02 | Intel Corporation | Method and apparatus for advancing load operations |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010198439A (ja) * | 2009-02-26 | 2010-09-09 | Nec Corp | ベクトル命令間追い越し判定装置と方法 |
| JP2012048352A (ja) * | 2010-08-25 | 2012-03-08 | Nec Corp | データ処理装置、メモリアクセス制御方法及びメモリアクセス制御プログラム |
| JP2018156568A (ja) * | 2017-03-21 | 2018-10-04 | 株式会社東芝 | コンパイル装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5057054B2 (ja) | 2012-10-24 |
| US20090031118A1 (en) | 2009-01-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8539166B2 (en) | Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally | |
| US6557095B1 (en) | Scheduling operations using a dependency matrix | |
| US10235180B2 (en) | Scheduler implementing dependency matrix having restricted entries | |
| JP2928695B2 (ja) | 静的インタリーブを用いたマルチスレッドマイクロプロセッサおよびそれを備えたシステムでの命令スレッド実行方法 | |
| US6334182B2 (en) | Scheduling operations using a dependency matrix | |
| US20100107174A1 (en) | Scheduler, processor system, and program generation method | |
| US7526629B2 (en) | Vector processing apparatus with overtaking function to change instruction execution order | |
| JP5057054B2 (ja) | 演算処理装置、演算処理方法 | |
| JP3773769B2 (ja) | 命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法 | |
| CN113934455B (zh) | 指令转换方法及装置 | |
| US20090037889A1 (en) | Speculative code motion for memory latency hiding | |
| US6496924B2 (en) | Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline | |
| US7266674B2 (en) | Programmable delayed dispatch in a multi-threaded pipeline | |
| US8516223B2 (en) | Dispatching instruction from reservation station to vacant instruction queue of alternate arithmetic unit | |
| WO2014190699A1 (zh) | 一种cpu指令处理方法和处理器 | |
| US12517757B2 (en) | Method and apparatus for adjusting instruction pipeline, memory and storage medium | |
| WO2026016845A1 (zh) | 处理器、显卡、计算机设备以及依赖解除方法 | |
| CN120631449A (zh) | 一种处理器程序地址缓冲方法及装置 | |
| US6711670B1 (en) | System and method for detecting data hazards within an instruction group of a compiled computer program | |
| EP4650962A1 (en) | Instruction processing method and apparatus, processor, and computer-readable storage medium | |
| CN116301874A (zh) | 代码编译方法、电子设备及存储介质 | |
| JP3684579B2 (ja) | 分散型並列計算機のプロセッサエレメント | |
| US20070028077A1 (en) | Pipeline processor, and method for automatically designing a pipeline processor | |
| CN114327643B (zh) | 机器指令预处理方法、电子设备及计算机可读存储介质 | |
| US10884738B2 (en) | Arithmetic processing device and method of controlling arithmetic processing device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100616 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120410 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120418 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120618 |
|
| 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: 20120704 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120717 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5057054 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |