JP4610218B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP4610218B2 JP4610218B2 JP2004099111A JP2004099111A JP4610218B2 JP 4610218 B2 JP4610218 B2 JP 4610218B2 JP 2004099111 A JP2004099111 A JP 2004099111A JP 2004099111 A JP2004099111 A JP 2004099111A JP 4610218 B2 JP4610218 B2 JP 4610218B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- loop
- queue
- information processing
- processing apparatus
- 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
- 230000010365 information processing Effects 0.000 title claims description 47
- 238000000034 method Methods 0.000 description 16
- 230000001133 acceleration Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
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)
Description
プロセッサ500は、命令キュー506を有する。
また、プロセッサ500は、実行する命令がループ開始命令であったか否か、すなわちループ命令が発行されたか否かを判断する。また、ループ命令実行中にループから抜けるか否かの判定を行う。
図9に示すように、ループ処理を構成する命令群は、ループ命令が発行された後、ループ処理の先頭命令(LT1)からループ処理の最終命令(LL)までを規定の回数だけ繰り返す。図9に示す例では、ループ処理の最終命令(LL)の一つ前の命令でループエンド(LE)を検出している。ループエンドを検出すると、ループが規定回数繰り返されたか判断し、規定回数に達していない場合はループ最終アドレスの命令を実行後ループ処理の先頭命令に戻り、規定回数に達している場合はループ処理の最終命令を実行後そのままループを抜ける。
したがって、先読みを行うパイプライン方式の情報処理装置にループ処理を実行させると、ループバック時に遅延(レイテンシー)が生じてしまい、処理を高速化する妨げとなる。
特許文献1に開示される発明は、先行する命令に付加されている付加情報が、ループを構成する命令群をループ命令キューへ格納する格納する命令であった場合には、ループを構成する命令群をループ命令キューに格納するデータ処理装置である。
前記命令メモリに記憶されている所定数の命令からなる命令グループ内の命令を所定の順番で所定回数だけ繰り返し実行するループ命令が発行された場合、前記命令グループ内の命令のうち、前記ステージ数より少ない数の命令を前記順番に基づき記憶するループ命令キューと、
前記順番に従って、前記ループ命令キューに記憶された命令を前記命令キューに出力した後に、連続して前記命令メモリに記憶された前記命令グループ内の命令を前記命令キューに出力するセレクタと、
を有することを特徴とする。
本発明の原理について説明する。
本発明においては、演算処理装置は、命令パケットを実行した際に、その命令パケットがループ開始命令のものであるか否かを判断する。実行した命令パケットがループ開始命令のものであれば、ループ処理を形成する命令群の先頭から所定数の命令パケットをループ命令キューに格納する。
その後、ループエンドを検出した場合には、ループ命令キューに格納されている命令パケットを命令キューに読み込む。このようにすることで、ループバック時には命令メモリからループ処理の先頭の命令パケットを読み込む必要が無くなるため、ループバック時にレイテンシーを発生させないようにすることができる。
本発明を好適に実施した第1の実施形態について説明する。図1に本実施形態にかかる情報処理装置の構成を示す。
本実施形態にかかるパイプライン方式の情報処理装置は、ループ高速化回路107を備えたプロセッサ100と命令メモリ200とがバスを介して接続された構成である。
図2に、本実施形態にかかるパイプライン方式の情報処理装置のより詳細な構成を示す。
プロセッサ100は、命令キュー106及びループ高速化回路107を有する。
プロセッサ100は、実行する命令がループ開始命令であったか否か、すなわちループ命令が発行されたか否かを判断する。また、ループ命令実行中にループから抜けるか否かの判定を行う。
ループ高速化回路107は、ループ命令キュー1071、ループキュー有効フラグ(特許請求の範囲におけるフラグ)1072及びセレクタ1073を有する。
プロセッサ100は、ループ命令が発行されたと判断した際に、ループ開始アドレスの命令パケットをループ命令キュー1071に格納する。ループキュー有効フラグ1072は、ループ命令キュー1071が有効であるか否かを示すフラグである。セレクタ1073は、プロセッサ100が命令メモリ200から命令パケットを取り込むかループ命令キュー1071から命令パケットを取り込むのかを切り換える。
プロセッサ100は、ループ命令が発行されるまでは、命令メモリ200から命令キュー106へ命令パケットを読み込み、命令キュー106に読み込まれている命令パケットを順次処理する(ステップS101、S102/No、S104、S105/No、S106/No、S111)。
プロセッサ100が、ループ命令が発行されたと判断した場合(ステップS102/Yes)、プロセッサ100は、ループ処理の先頭の命令パケットをループ命令キュー1071に格納するとともに、ループキュー有効フラグ1072を有効(valid)とする(ステップS103)。
なお、ループ命令が発行されていない場合(ステップS102/No)も同様に、プロセッサ100は、命令キュー106に読み込まれている命令パケットを実行する。
実行する命令パケットがループを抜ける命令であった場合(ステップS105/Yes(ループホップ))、プロセッサ100は、ループキュー有効フラグ1072をinvalidにする(ステップS110)。
ループエンドに達していない(ステップS106/No)のであれば、プロセッサ100は、命令メモリ200から命令キュー106へ命令パケットを読み込ませる(ステップS111)。一方、ループエンドに達している(ステップS106/Yes)のであれば、プロセッサ100はループの回数がループ命令に規定される回数に達したか否かを判断する(ステップS107)。
ループ回数が規定回数に達しているのであれば(ステップS107/Yes)、プロセッサ100はループキュー有効フラグ1072をinvalidにする(ステップS110)。
一方、ループ回数が規定回数に達していない(ループ処理を行っていない場合を含む)のであれば(ステップS107/No(ループバック))、プロセッサ100は、ループキュー有効フラグ1072がvalidであるか否かを確認する(ステップS108)。
一方、ループキュー有効フラグ1072がinvalidであるならば(ステップS108/No)、プロセッサ100は、命令メモリ200から命令キュー106へ命令パケットを読み込む(ステップS111)。
この例では、命令パケットの読込みに2ステージ分の時間が必要であるため、ループエンドを検出した時点では、LT1と異なる命令パケットの読込みが開始されている。しかし、本実施形態にかかる情報処理装置は、ループエンドが検出された時点で、プロセッサ100はループ命令キュー1071からLT1の命令パケットを読み込めるため、ループエンド時にレイテンシーが発生させることなくLT1の命令パケットを読み込める。
一方、ループエンドの検出は、プロセッサ100によってループ処理の最終命令の一つ前の命令で行われる。よって、ループエンドが検出された次のサイクルで、プロセッサ100はループ命令キュー106からループ処理の先頭の命令パケットを読み出すことができる。
本発明を好適に実施した第2の実施形態について説明する。上記第1の実施形態においては、命令メモリから命令キューへ命令パケットを読み込むのに2ステージ分の時間が必要な場合について説明したが、本実施形態においては命令メモリから命令キューへ命令パケットを読み込むのにnステージ分の時間を必要とする場合について説明する。
本実施形態にかかる情報処理装置の動作の流れは、第1の実施形態にかかる情報処理装置とほぼ同様である。
ただし、ループバック時には、プロセッサ100はセレクタ1073をループ命令キュー10711側に切り換えて命令パケットLT1を読み出した後に、セレクタ1073をループ命令キュー10712側に切り換える。これにより次サイクルにおいて、プロセッサ100はループ命令キュー10712から命令パケットLT2を読み出す。同様に、プロセッサ100はステージごとにセレクタ1073を切り換えて各ループ命令キュー10711〜1071(n-1)から命令パケットを順次読み込む。
図6に、本実施形態にかかる情報処理装置のループバック時の処理を示す。図6において、IF1、IF2、IF3及びIF4はプロセッサ100が命令メモリ200から命令パケットを命令キュー106に読み込むのに、4ステージかかることを表す。また、DQは、プロセッサ100が命令パケットを割り振るステージを表す。また、DEは、プロセッサ100が命令をデコードするステージを示す。また、DPは、プロセッサ100がデータポインタを更新するステージを表す。また、EXは、プロセッサ100が命令を実行するステージを表す。
この例では、命令パケットの読み込みに4ステージ分の時間が必要であるため、ループエンドを検出した時点では、LT1、LT2及びLT3と異なる命令パケットの読み込みが開始されている。しかし、本実施形態にかかる情報処理装置は、ループエンドが検出された時点で、プロセッサ100はループ命令キュー10711からLT1の命令パケットを、ループ命令キュー10712からLT2の命令パケットを、ループ命令キュー10713からLT3の命令パケットを命令キューへ106読み込めるため、ループエンド時にレイテンシーが発生させることなくLT1、LT2及びLT3の命令パケットを読み込める。
例えば、上記各実施形態においては、各ステージが同じ時間長である場合を例に説明を行ったが、本発明は、ステージの時間長が異なる場合にも適用可能である。
このように、本発明は様々な変形が可能である。
101 命令読み込み部
102 デコーダ
103 命令実行部
104 ループ判断部
105 結果書き込み部
106 命令キュー
107 ループ高速化回路
200 命令メモリ
1071、10711〜1071(n-1) ループ命令キュー
1072 ループキュー有効フラグ
1073 セレクタ
Claims (7)
- 命令メモリに記憶された一の命令が読み込まれるまでに所定のステージ数を要する命令キューと、
前記命令メモリに記憶されている所定数の命令からなる命令グループ内の命令を所定の順番で所定回数だけ繰り返し実行するループ命令が発行された場合、前記ステージ数よりも1少ない数の命令を前記命令グループの先頭から前記順番に基づき記憶するループ命令キューと、
前記順番に従って、前記ループ命令キューに記憶された命令を前記命令キューに出力した後に、連続して前記命令メモリに記憶された前記命令グループ内の命令を前記命令キューに出力するセレクタと、
を有することを特徴とする情報処理装置。 - 前記セレクタは、前記ループ命令キューに記憶された命令を前記ループ先頭命令から前記順番に従って前記命令キューに出力した後に、前記命令メモリに記憶された前記命令グループ内の命令を前記順番に従って前記命令キューに出力することを特徴とする請求項1に記載の情報処理装置。
- 前記セレクタは、前記ループ命令キューが有効であるか否かを示すループ有効フラグに基づいて、前記ループ命令キューに記憶された命令を前記命令キューに出力するか、前記命令メモリに記憶された命令を前記命令キューに出力するか、を切り替えることを特徴とする請求項1に記載の情報処理装置。
- 前記ループ有効フラグは、前記ループ命令が発行された場合に前記ループ命令キューが有効であることを示す、ことを特徴とする請求項3に記載の情報処理装置。
- 前記ループ命令キューは、前記ループ命令の最初の繰り返しの際に、前記ステージ数よりも1少ない数の命令を前記ループ先頭命令から前記順番に従って記憶することを特徴とする請求項1に記載の情報処理装置。
- 前記命令グループ内の命令のうち、前記順番に従って最後に実行されるループ最終命令よりひとつ前に実行される命令に基づき、繰り返しを行った数が前記所定回数に達したか否かを判断することを特徴とする請求項1に記載の情報処理装置。
- 前記ループ命令キューから前記ループ先頭命令を読み出すステージと、前記命令メモリから前記命令グループ内の命令を読み出すステージとが、同時に開始されることを特徴とする請求項1に記載の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004099111A JP4610218B2 (ja) | 2004-03-30 | 2004-03-30 | 情報処理装置 |
US11/092,705 US20050223204A1 (en) | 2004-03-30 | 2005-03-30 | Data processing apparatus adopting pipeline processing system and data processing method used in the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004099111A JP4610218B2 (ja) | 2004-03-30 | 2004-03-30 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005284814A JP2005284814A (ja) | 2005-10-13 |
JP4610218B2 true JP4610218B2 (ja) | 2011-01-12 |
Family
ID=35055738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004099111A Expired - Fee Related JP4610218B2 (ja) | 2004-03-30 | 2004-03-30 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050223204A1 (ja) |
JP (1) | JP4610218B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US7617383B2 (en) * | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
EP1821202B1 (en) * | 2006-02-16 | 2011-01-12 | VNS Portfolio LLC | Execution of instructions directly from input source |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7913069B2 (en) * | 2006-02-16 | 2011-03-22 | Vns Portfolio Llc | Processor and method for executing a program loop within an instruction word |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
US7555637B2 (en) * | 2007-04-27 | 2009-06-30 | Vns Portfolio Llc | Multi-port read/write operations based on register bits set for indicating select ports and transfer directions |
TW200849087A (en) * | 2007-06-01 | 2008-12-16 | Holtek Semiconductor Inc | Method of accelerating the excution of repeatative commands and its micro controller |
JP5159258B2 (ja) * | 2007-11-06 | 2013-03-06 | 株式会社東芝 | 演算処理装置 |
JP5209390B2 (ja) | 2008-07-02 | 2013-06-12 | ルネサスエレクトロニクス株式会社 | 情報処理装置及び命令フェッチ制御方法 |
US20100023730A1 (en) * | 2008-07-24 | 2010-01-28 | Vns Portfolio Llc | Circular Register Arrays of a Computer |
JP2010140398A (ja) * | 2008-12-15 | 2010-06-24 | Renesas Electronics Corp | データ処理装置及びデータ処理方法 |
CN106445472B (zh) * | 2016-08-16 | 2019-01-11 | 中国科学院计算技术研究所 | 一种字符操作加速方法、装置、芯片、处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02157939A (ja) * | 1988-12-09 | 1990-06-18 | Toshiba Corp | 命令処理方法及び命令処理装置 |
JPH0962508A (ja) * | 1995-08-29 | 1997-03-07 | Hitachi Ltd | 分岐登録命令を有するプロセッサ |
JPH11327929A (ja) * | 1998-03-17 | 1999-11-30 | Matsushita Electric Ind Co Ltd | プログラム制御装置 |
JP2001222427A (ja) * | 2001-02-21 | 2001-08-17 | Hitachi Ltd | データ処理装置 |
JP2002073330A (ja) * | 2000-08-28 | 2002-03-12 | Mitsubishi Electric Corp | データ処理装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6356731A (ja) * | 1986-08-27 | 1988-03-11 | Mitsubishi Electric Corp | デ−タ処理装置 |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
DE69718278T2 (de) * | 1996-10-31 | 2003-08-21 | Texas Instruments Inc | Methode und System zur Einzel-Zyklus-Ausführung aufeinanderfolgender Iterationen einer Befehlsschleife |
-
2004
- 2004-03-30 JP JP2004099111A patent/JP4610218B2/ja not_active Expired - Fee Related
-
2005
- 2005-03-30 US US11/092,705 patent/US20050223204A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02157939A (ja) * | 1988-12-09 | 1990-06-18 | Toshiba Corp | 命令処理方法及び命令処理装置 |
JPH0962508A (ja) * | 1995-08-29 | 1997-03-07 | Hitachi Ltd | 分岐登録命令を有するプロセッサ |
JPH11327929A (ja) * | 1998-03-17 | 1999-11-30 | Matsushita Electric Ind Co Ltd | プログラム制御装置 |
JP2002073330A (ja) * | 2000-08-28 | 2002-03-12 | Mitsubishi Electric Corp | データ処理装置 |
JP2001222427A (ja) * | 2001-02-21 | 2001-08-17 | Hitachi Ltd | データ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20050223204A1 (en) | 2005-10-06 |
JP2005284814A (ja) | 2005-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4610218B2 (ja) | 情報処理装置 | |
US7124282B2 (en) | Processor architecture with independently addressable memory banks for storing instructions to be executed | |
JP4801725B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JPH1124929A (ja) | 演算処理装置およびその方法 | |
JP2003108368A (ja) | 並列演算プロセッサ、その演算制御方法及びプログラム | |
EP0730223B1 (en) | Pipeline data processing apparatus for executing a plurality of data processes having a data-dependent relationship | |
JP2002163127A (ja) | トレース制御回路 | |
JP3097648B2 (ja) | 情報処理装置及び情報処理方法 | |
US20030154469A1 (en) | Apparatus and method for improved execution of a software pipeline loop procedure in a digital signal processor | |
JP2007334563A (ja) | マスク付きベクトル演算処理装置 | |
JP3759729B2 (ja) | スペキュレーティブ・レジスタの調整 | |
JP2812610B2 (ja) | パイプライン制御方式 | |
JPH03147134A (ja) | 命令シーケンス制御装置 | |
JP2636192B2 (ja) | 情報処理装置 | |
JP2010204913A (ja) | ベクトル処理装置 | |
JPH0277940A (ja) | データ処理装置 | |
US6223257B1 (en) | Instruction cache address generation technique having reduced delays in fetching missed data | |
JP3825709B2 (ja) | パイプライン処理方法及びプロセッサ装置 | |
US7124281B1 (en) | Processing system having sequential address indicator signals | |
JP2764844B2 (ja) | パイプライン処理装置 | |
JPS60105050A (ja) | パイプライン制御方式 | |
JPH0520353A (ja) | ベクトルデータ処理装置 | |
JP2002351659A (ja) | キュープロセッサ | |
JPH06124208A (ja) | プログラム制御装置 | |
JPH05233380A (ja) | 並列実行性能測定処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090721 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090904 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20100426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100609 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100806 |
|
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: 20101012 |
|
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: 20101012 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |