JP5185478B2 - Pipeline processing method and pipeline processing apparatus using the method - Google Patents
- ️Wed Apr 17 2013
JP5185478B2 - Pipeline processing method and pipeline processing apparatus using the method - Google Patents
Pipeline processing method and pipeline processing apparatus using the method Download PDFInfo
-
Publication number
- JP5185478B2 JP5185478B2 JP2000054832A JP2000054832A JP5185478B2 JP 5185478 B2 JP5185478 B2 JP 5185478B2 JP 2000054832 A JP2000054832 A JP 2000054832A JP 2000054832 A JP2000054832 A JP 2000054832A JP 5185478 B2 JP5185478 B2 JP 5185478B2 Authority
- JP
- Japan Prior art keywords
- instruction
- storage means
- arithmetic
- operation instruction
- multiple operation Prior art date
- 2000-02-29 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
- 238000003672 processing method Methods 0.000 title claims description 10
- 238000000034 method Methods 0.000 title description 8
- 239000000872 buffer Substances 0.000 description 28
- 238000010586 diagram Methods 0.000 description 10
- 230000001174 ascending effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001502 supplementing effect Effects 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/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)
Description
【0001】
【発明の属する技術分野】
本発明は、パイプライン処理方法並びにその方法を利用するパイプライン処理装置に係り、特に、中央演算装置(Central Processing Unit)と演算装置とを相互接続して非同期に演算を行なうパイプライン処理方法並びにその方法を利用するパイプライン処理装置に関する。
【0002】
【従来の技術】
近年、コンピュータ装置は処理速度の更なる高速化が要求されるようになり、中央演算装置(以下、CPUという。)単体では要求される処理速度を満たさない場合が生じている。そこで、高速演算を実行する為の演算装置を別途設け、CPUと並列に非同期演算を行なわせることによりCPUを補完する処理方法が用いられるようになってきている。このような演算装置としては、例えば浮動小数点演算を行なうコプロセッサ(Co−Processor:以下、COPという。)がある。
【0003】
なお、パイプライン処理方法とは、命令の処理過程を複数の段階に分割し、複数個の命令をパイプライン的に先回り並行処理する制御方法である。パイプライン処理方法は、各段階の時間間隔毎に命令実行が可能であり、単位時間当りの処理能力が向上する。
【0004】
図1は、パイプライン処理装置の一例のプロック図を示す。パイプライン処理装置は、CPU100とCOP200とを含む構成である。CPU100はCOP200と相互接続されており、浮動小数点演算等のCOP200を使用する演算命令があると、その演算命令の命令コードとレジスタ番号とをCOP200に供給する。
【0005】
COP200はCPU100から供給される命令コード及びレジスタ番号を命令バッファ230に格納する。命令バッファ230に格納された演算命令は各種パイプラインハザードが解消された段階でパイプラインド演算器220で実行される。演算命令は、パイプラインド演算器220の演算ステージS1,S2等に対応するように命令キュー240,241を伝播していく。
【0006】
最終の演算ステージS2では例外チェックが行われ、演算が正常終了しているか判定される。演算が正常終了していれば、演算命令は命令キュー241からデキューされる。また、演算結果はパイプラインド演算器220からレジスタファイル210に格納される。演算が正常終了せず例外が検出された場合、演算命令は命令キュー241に残る。そして、例外情報が命令キュー241に登録されると共に、CPU100に対して割り込み要求が行われる。このとき、命令キュー240にある後続の命令は、未完了の命令として命令キュー240に格納される。
【0007】
但し、マルチサイクルを必要とするマルチプル演算命令の場合、演算レイテンシが長い為にマルチプル演算命令の情報が、ある命令キュー240,241に複数サイクルの間留まることになる。この間、後続の演算命令は前のステージの命令キュー240又は命令バッファ230で待ちの状態となる。この待ちの状態を最小限にする為、命令バッファ230は待ち命令キュー231,待ち命令キュー232を設けて複数段の構成とし、CPU100が供給する演算命令を格納する。このように、従来のパイプライン処理装置は演算命令と演算の実行との対応を容易とし、例外検出時の割り込み処理も容易としていた。
【0008】
【発明が解決しようとする課題】
図2は、パイプライン処理装置の一例のタイムチャートを示す。図2のタイムチャートは、演算命令がマルチプル演算命令a,パイプラインド演算命令b,パイプラインド演算命令c,パイプラインド演算命令d,パイプラインド演算命令eの順番で実行される場合について示したものである。
【0009】
まず、時刻tにマルチプル演算命令aがCPU100に供給され、命令バッファ230を介して命令キュー240に格納される。しかし、マルチプル演算命令aは実行の終了までにマルチサイクルを必要とするので、時刻t+2から命令キュー240に留まり続ける。
【0010】
続いて時刻t+1にはパイプラインド演算命令bがCPU100に供給され、命令バッファ230に格納される。時刻t+3では、命令キュー240にマルチプル演算命令aが格納されているのでパイプラインド演算命令bが命令バッファ230から待ち命令キュー231に供給される。また、時刻t+4では、パイプラインド演算命令bが待ち命令キュー231から待ち命令キュー232に供給された後、待ち命令キュー232に留まり続ける。
【0011】
時刻t+2には、パイプラインド演算命令cがCPU100に供給され、命令バッファ230に格納される。時刻t+4では、命令キュー240にマルチプル演算命令aが格納されているのでパイプラインド演算命令cが命令バッファ230から待ち命令キュー231に供給された後、待ち命令キュー231に留まり続ける。
【0012】
さらに、時刻t+3にはパイプラインド演算命令dがCPU100に供給され、命令バッファ230に格納される。しかし、待ち命令キュー231,232にパイプラインド演算命令b,cが留まり続けている為、パイプラインド演算命令dは命令バッファ230に留まり続ける。
【0013】
従って、時刻t+4にパイプラインド演算命令eがCPU100に供給されても命令バッファ230に空きが生じない為、パイプラインド演算命令eは処理待ち状態、言い換えればCPUストール状態となる。つまり、従来のパイプライン処理装置は、マルチプル演算命令が供給されると後続の命令がマルチプル演算命令の完了待ちを行なう為、全体の命令処理性能が低下するという問題があった。また、実装されている待ち命令キュー231,232の数を増加すればCPUストール状態を減少させることができるが、消費電力の増加,コストの上昇等の問題があった。
【0014】
本発明は、上記の点に鑑みなされたもので、命令処理性能の低下を防ぐことができ、消費電力及びコストを削減することが可能なパイプライン処理方法並びにその方法を利用するパイプライン処理装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
そこで、上記課題を解決するため、中央演算装置と演算装置とを相互接続して演算処理を行なうパイプライン処理方法において、前記演算装置が、前記中央演算装置から供給される演算命令を第1格納手段に格納する段階と、前記第1格納手段に格納された演算命令に従って第1演算器が演算を行い、演算終了までに複数サイクルの時間を必要とするマルチプル演算命令であるか確認する段階と、マルチプル演算命令であれば、前記マルチプル演算命令を複数の第2格納手段のうちのいずれかに格納する段階と、前記マルチプル演算命令を前記複数の第2格納手段のうちのいずれかに格納するときに、前記複数の第2格納手段毎に付随して設けられている識別手段により、前記複数の第2格納手段に既に格納されている前記マルチプル演算命令と新たに格納されるマルチプル演算命令との発行順序を示す段階と、前記識別手段に従って前記複数の第2格納手段に格納されているマルチプル演算命令のうち最先に発行された前記マルチプル演算命令を選択し、選択された前記マルチプル演算命令に従って複数の第2演算器のいずれかが前記識別手段の示す発行順序で演算終了まで演算を行なう段階とを実行することを特徴とする。
【0022】
また、中央演算装置と演算装置とを相互接続して演算処理を行なうパイプライン処理装置において、前記演算装置は、前記中央演算装置から供給される演算命令を格納する第1格納手段と、前記第1格納手段に格納された演算命令に従って演算を行なう第1演算器と、前記演算を行なった演算命令が演算終了までに複数サイクルの時間を必要とするマルチプル演算命令であれば、前記マルチプル演算命令をいずれかが格納する複数の第2格納手段と、前記マルチプル演算命令を前記複数の第2格納手段のうちのいずれかに格納するときに、前記複数の第2格納手段毎に付随して設けられ、前記複数の第2格納手段に既に格納されている前記マルチプル演算命令と新たに格納されるマルチプル演算命令との発行順序を示す識別手段と、前記識別手段に従って前記複数の第2格納手段に格納されているマルチプル演算命令のうち最先に発行された前記マルチプル演算命令を選択し、選択された前記マルチプル演算命令に従って前記識別手段の示す発行順序で演算終了までいずれかが演算を行なう複数の第2演算器とを有することを特徴とする。
【0023】
このように、複数の第2格納手段に格納されている演算命令の発行順序を示す識別手段を有することにより、演算命令の命令発行順に演算終了までに時間の掛かる例えばマルチプル演算命令を実行することが可能となる。
【0028】
なお、上記括弧内の符号は理解を容易とするために附したものであり、一例にすぎない。
【0029】
【発明の実施の形態】
次に、本発明の実施の形態について図面に基づいて説明する。図3は、本発明のパイプライン処理装置の第1実施例のブロック図を示す。パイプライン処理装置は、相互接続されているCPU10とCOP20とを含むように構成される。また、CPU10は、データキャッシュ11,整数演算部&汎用レジスタファイル12,命令制御部13,及び命令キャッシュ14を含むように構成される。COP20はレジスタファイル21、演算器22、命令バッファ27、デコーダ28、命令キュー29,30、及びマルチプル演算命令用の命令キュー31を含むように構成される。
【0030】
CPU10の命令キャッシュ14はプログラムが格納されており、演算命令を命令制御部13に供給する。命令制御部13は演算命令が供給されると、その演算命令が浮動小数点演算等のCOP20を使用する演算命令であるか判断する。COP20を使用する演算命令であると判断すると、その演算命令の命令コードとレジスタ番号とをCOP20の命令バッファ27に供給する。一方、COP20を使用しない整数演算等の演算命令であると判断すると、その演算命令の命令コードとレジスタ番号とを整数演算部&汎用レジスタファイル12に供給する。
【0031】
整数演算部&汎用レジスタファイル12はレジスタ番号に従ってデータキャッシュ11からデータを読出し、命令コードに従ってそのデータの演算を行なう。その後、整数演算部&汎用レジスタファイル12は演算結果をデータキャッシュ11に書込む。
【0032】
命令バッファ27は命令制御部13から供給された命令コードとレジスタ番号とを、各種パイプラインハザードが解消された段階でデコーダ28に供給する。即ち、レジスタ干渉,ハードウェアの資源競合がないことを確認する。デコーダ28は供給された命令コードをデコードし、命令キュー29に演算命令を格納すると共に、演算命令及びレジスタ番号を演算器22の演算ステージ24に供給する。なお、各種パイプラインハザードが解消されていない場合、命令バッファ27は命令コード及びレジスタ番号をデコーダ28に供給せず、次サイクルで再度各種パイプラインハザードが解消されているか確認される。
【0033】
命令キュー29は、格納されている演算命令をパイプライン形式で演算キュー30に供給する。このとき、演算器22の演算ステージ24に格納されている演算命令及びレジスタ番号は、演算ステージ25に供給される。演算ステージ24から演算命令及びレジスタ番号が供給されると、演算ステージ25は必要なデータをレジスタファイル21から読出し、その演算命令に従って演算を行なう。
【0034】
つまり、演算ステージ25に演算命令及びレジスタ番号が供給されると、次サイクルで演算結果が求まる。演算結果が求まると演算ステージ25では演算例外の有無を調べ、演算が正常終了している場合は演算命令がデキューされる。そして、演算器22からレジスタファイル21に演算結果を供給する。一方、演算例外が発生している場合、演算ステージ25及び命令キュー30に演算命令及び演算例外情報を格納して割り込み動作に入る。
【0035】
マルチプル演算命令の場合、更に演算が続行するので演算ステージ25及び命令キュー30に格納されている演算命令及び演算例外情報がマルチプル演算命令用の演算ステージ26及び命令キュー31に遷移される。なお、演算の開始時に分かる演算例外、例えばゼロ除算は他のパイプラインド演算命令と同様に、例外検出を行なうことも可能である。
【0036】
マルチプル演算命令用の演算ステージ26及び命令キュー31に演算終了まで保持される演算命令は、演算終了時に再度演算例外の有無を調べられる。演算例外がなければ、演算ステージ26及び命令キュー31から演算命令がデキューされる。一方、演算例外があれば演算ステージ26及び命令キュー31に演算命令を残し、割り込み動作に入る。なお、演算結果はレジスタファイル21に格納される。
【0037】
図3のパイプライン処理装置の処理について図4を参照しつつ説明する。図4は、パイプライン処理装置の一例のタイムチャートを示す。なお、図4では説明に不要な部分を省略している。図4のタイムチャートは、演算命令がマルチプル演算命令a,パイプラインド演算命令b,パイプラインド演算命令c,パイプラインド演算命令d,パイプラインド演算命令eの順番で実行される場合について示したものである。
【0038】
まず、時刻tにマルチプル演算命令aが命令キャッシュ14から命令制御部13に供給される。時刻t+1に命令制御部13はマルチプル演算命令aを命令バッファ27に供給する。また、パイプラインド演算命令bが命令キャッシュ14から命令制御部13に供給される。
【0039】
続いて時刻t+2にマルチプル演算命令aが命令バッファ27から命令キュー29に供給される。命令制御部13はパイプラインド演算命令bを命令バッファ27に供給する。また、パイプラインド演算命令cが命令キャッシュ14から命令制御部13に供給される。
【0040】
時刻t+3では、マルチプル演算命令aが命令キュー29から命令キュー30に供給される。パイプラインド演算命令bが命令バッファ27から命令キュー29に供給される。命令制御部13はパイプラインド演算命令cを命令バッファ27に供給する。また、パイプラインド演算命令dが命令キャッシュ14から命令制御部13に供給される。
【0041】
時刻t+4では、マルチプル演算命令aが命令キュー30からマルチプル演算命令用の命令キュー31に供給される。パイプラインド演算命令bが命令キュー29から命令キュー30に供給される。パイプラインド演算命令cが命令バッファ27から命令キュー29に供給される。命令制御部13はパイプラインド演算命令dを命令バッファ27に供給する。また、パイプラインド演算命令eが命令キャッシュ14から命令制御部13に供給される。
【0042】
時刻t+5では、マルチプル演算命令aが命令キュー31に引き続き格納される。そして、パイプラインド演算命令bが演算処理を終了し、デキューされる。パイプラインド演算命令cが命令キュー29から命令キュー30に供給される。パイプラインド演算命令dが命令バッファ27から命令キュー29に供給される。命令制御部13はパイプラインド演算命令eを命令バッファ27に供給する。
【0043】
ここで、図2を参照しつつ説明したタイムチャートと比較すると、図2のタイムチャートでは時刻t+5でCPUストールが発生しているが、図4のタイムチャートでは時刻t+5でCPUストールを発生していない。つまり、本発明の第1実施例のパイプライン処理装置では、マルチプル演算命令であっても他のパイプラインド演算命令と同様のタイミングで命令キュー29,30を遷移する為、後続のパイプラインド命令をストールさせることなく演算処理が可能である。従って、全体としての演算性能が飛躍的に向上すると共に、ストールを極力回避する為に実装されていた複数段の命令バッファの段数を削減することが可能となる。
【0044】
なお、後続の演算命令は先行するマルチプル演算命令が実行中であっても演算例外を発生する場合がある。このように後続の演算命令が演算例外を発生した場合、先行する演算命令は実行を完了させるか、マルチプル演算命令の検出時或いは後続の演算命令の演算例外の検出時に、命令キューに演算命令,レジスタ番号,及び演算例外情報等を保持することができる。
【0045】
図5は、本発明のパイプライン処理装置の第2実施例のブロック図を示す。なお、図5のブロック図はパイプライン演算装置のCOP20を記載したものであり、CPU10の記載を省略している。また、図3のパイプライン演算装置と同様な部分については同一符号を付して説明を省略している。
【0046】
図5のパイプライン演算装置は、マルチプル演算命令用の命令キュー37,38及び演算ステージ35,36を設けていることを特徴としている。この場合、マルチプル演算命令用の命令キュー37,38及び演算ステージ35,36に格納されている演算命令の命令発行順序を外部に通知する必要があり、命令キュー37,38にアドレス操作ビット39,40を設けることにより、命令発行順序を明確にすることが可能となっている。
【0047】
レイテンシの異なる2つのマルチプル演算命令a,bを異なるマルチプル演算ステージ35,36で実行する場合、この演算ステージ35,36に夫々対応するように命令キュー37,38及びアドレス操作ビット39,40を設ける。アドレス操作ビットとは、命令キューのアドレスを決定する為に使用されるビットである。
【0048】
例えば、命令キュー37,38のアドレスに「000」,「001」が割り当てられているものとする。マルチプル演算命令aが発行され、専用の命令キュー37に格納される際に、他方の命令キュー38に付随するアドレス操作ビット40が「0」であればアドレス操作ビット39に「1」をセットする。また、他方の命令キュー38に付随するアドレス操作ビット40が「1」であればアドレス操作ビット39に「0」をセットする。
【0049】
そして、アドレス操作ビットが「1」であるマルチプル演算命令が実行完了した場合は、そのアドレス操作ビットを「1」から「0」に変更すると共に、他方の命令キューに付随するアドレス操作ビットを「0」から「1」に変更する。つまり、2つのマルチプル演算命令a,bのうち、先に発行されたマルチプル演算命令用の命令キューに付随するアドレス操作ビットは常に「1」となり、先に発行されたマルチプル演算命令を2ビットのレジスタで知ることが可能である。
【0050】
更に、付随するアドレス操作ビットが「1」であるマルチプル演算命令用の命令キューのアドレスは「000」であり、付随するアドレス操作ビットが「0」であるマルチプル演算命令用の命令キューのアドレスは「001」であると決めておくことで、アドレスの昇順に命令キューを読み出せば、常に命令発行順にマルチプル演算命令の情報を命令キューから読み出すことができる。
【0051】
図6は、本発明のパイプライン処理装置の第3実施例のブロック図を示す。なお、図6のブロック図は複数のCOPを有するパイプライン演算装置を記載したものであり、説明に不要な記載を省略している。また、図3のパイプライン演算装置と同様な部分については同一符号を付して説明を省略している。
【0052】
図6のパイプライン処理装置は二つのCOP50,60を有し、夫々のCOP50,60にマルチプル演算命令用の命令キュー54,64が含まれる。マルチプル演算命令用の命令キュー54,64は、図6の第2実施例と同様に、命令キュー54,64に付随するようにアドレス操作ビットが設けられている。
【0053】
このように、パイプライン演算装置に複数のCOPが含まれる場合、異なるCOPに含まれるマルチプル演算命令用の命令キュー54,64に同時にマルチプル演算命令が格納されることがある。この場合、マルチプル演算命令が命令キュー54,64に同時に発行されたことが保証される限りにおいては、命令キュー54,64に付随するアドレス操作ビットに値をセットする優先順位を決めておく必要がある。この優先順位は、valid生成装置56,66により決定される。なお、その他のタイミングについては、一つのCOP内にマルチプル演算命令用の命令キューが実装されている場合と同様であり説明を省略する。
【0054】
【発明の効果】
上述の如く、本発明によれば、マルチプル演算命令を実行する場合に、後続の演算命令に対する命令処理性能の低下を防ぐことが可能であり、命令バッファの段数を削減することにより消費電力及びコストの削減が可能である。
【図面の簡単な説明】
【図1】パイプライン処理装置の一例のブロック図である。
【図2】パイプライン処理装置の一例のタイムチャートである。
【図3】本発明のパイプライン処理装置の第1実施例のブロック図である。
【図4】パイプライン処理装置の一例のタイムチャートである。
【図5】本発明のパイプライン処理装置の第2実施例のブロック図である。
【図6】本発明のパイプライン処理装置の第3実施例のブロック図である。
【符号の説明】
10 中央演算装置
11 データキャッシュ
12 整数演算部&汎用レジスタファイル
13 命令制御部
14 命令キャッシュ
20 コプロセッサ
21 レジスタファイル
22 演算器
27,51,61 命令バッファ
28 デコーダ
24〜26,35,36 演算ステージ
29〜31,37,38,52〜54,62〜64 命令キュー
39,40,55,65 アドレス操作ビット
56,66 valid生成装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a pipeline processing method and a pipeline processing apparatus using the method, and more particularly to a pipeline processing method for performing an asynchronous operation by interconnecting a central processing unit and an arithmetic unit. The present invention relates to a pipeline processing apparatus using the method.
[0002]
[Prior art]
In recent years, the computer apparatus has been required to further increase the processing speed, and there are cases where the central processing unit (hereinafter referred to as CPU) alone does not satisfy the required processing speed. Therefore, a processing method for supplementing the CPU by separately providing an arithmetic device for executing high-speed arithmetic and performing asynchronous arithmetic in parallel with the CPU has come to be used. As such an arithmetic unit, for example, there is a coprocessor (Co-Processor: hereinafter referred to as COP) that performs floating-point arithmetic.
[0003]
The pipeline processing method is a control method in which an instruction processing process is divided into a plurality of stages and a plurality of instructions are processed in parallel in a pipeline manner. In the pipeline processing method, instructions can be executed at each time interval of each stage, and the processing capability per unit time is improved.
[0004]
FIG. 1 shows a block diagram of an example of a pipeline processing apparatus. The pipeline processing apparatus includes a CPU 100 and a COP 200. The CPU 100 is interconnected with the COP 200, and when there is an operation instruction using the COP 200 such as a floating point operation, the CPU 100 supplies an instruction code and a register number of the operation instruction to the COP 200.
[0005]
The COP 200 stores the instruction code and register number supplied from the CPU 100 in the instruction buffer 230. The arithmetic instruction stored in the instruction buffer 230 is executed by the pipelined arithmetic unit 220 at the stage where various pipeline hazards are resolved. The arithmetic instruction propagates through the instruction queues 240 and 241 so as to correspond to the arithmetic stages S1, S2 and the like of the pipelined arithmetic unit 220.
[0006]
In the final calculation stage S2, an exception check is performed to determine whether the calculation is normally completed. If the operation is normally completed, the operation instruction is dequeued from the instruction queue 241. Further, the operation result is stored in the register file 210 from the pipelined operation unit 220. If the operation does not end normally and an exception is detected, the operation instruction remains in the instruction queue 241. The exception information is registered in the instruction queue 241 and an interrupt request is made to the CPU 100. At this time, subsequent instructions in the instruction queue 240 are stored in the instruction queue 240 as incomplete instructions.
[0007]
However, in the case of a multiple operation instruction that requires multiple cycles, the information of the multiple operation instruction stays in a certain instruction queue 240, 241 for a plurality of cycles because the operation latency is long. During this time, the subsequent operation instruction is in a waiting state in the instruction queue 240 or the instruction buffer 230 of the previous stage. In order to minimize this waiting state, the instruction buffer 230 is provided with a waiting instruction queue 231 and a waiting instruction queue 232 to have a plurality of stages, and stores arithmetic instructions supplied by the CPU 100. As described above, the conventional pipeline processing device facilitates the correspondence between the operation instruction and the execution of the operation, and also facilitates the interrupt processing when the exception is detected.
[0008]
[Problems to be solved by the invention]
FIG. 2 shows a time chart of an example of the pipeline processing apparatus. The time chart of FIG. 2 shows a case where the operation instructions are executed in the order of multiple operation instruction a, pipelined operation instruction b, pipelined operation instruction c, pipelined operation instruction d, and pipelined operation instruction e. is there.
[0009]
First, a multiple operation instruction a is supplied to the CPU 100 at time t and stored in the instruction queue 240 via the instruction buffer 230. However, since the multiple operation instruction a requires multiple cycles until the end of execution, it remains in the instruction queue 240 from time t + 2.
[0010]
Subsequently, at time t + 1, the pipelined operation instruction b is supplied to the CPU 100 and stored in the instruction buffer 230. At time t + 3, since the multiple operation instruction a is stored in the instruction queue 240, the pipelined operation instruction b is supplied from the instruction buffer 230 to the waiting instruction queue 231. At time t + 4, the pipelined operation instruction b is supplied from the wait instruction queue 231 to the wait instruction queue 232 and then remains in the wait instruction queue 232.
[0011]
At time t + 2, the pipelined operation instruction c is supplied to the CPU 100 and stored in the instruction buffer 230. At time t + 4, since the multiple operation instruction a is stored in the instruction queue 240, the pipelined operation instruction c is supplied from the instruction buffer 230 to the wait instruction queue 231 and then remains in the wait instruction queue 231.
[0012]
Further, at time t + 3, a pipelined operation instruction d is supplied to the CPU 100 and stored in the instruction buffer 230. However, since the pipelined operation instructions b and c remain in the wait instruction queues 231 and 232, the pipelined operation instruction d continues to remain in the instruction buffer 230.
[0013]
Therefore, even if the pipelined operation instruction e is supplied to the CPU 100 at time t + 4, the instruction buffer 230 is not empty, so that the pipelined operation instruction e enters a process waiting state, in other words, a CPU stall state. In other words, the conventional pipeline processing apparatus has a problem that when a multiple operation instruction is supplied, the subsequent instruction waits for completion of the multiple operation instruction, so that the entire instruction processing performance is deteriorated. Further, if the number of waiting instruction queues 231 and 232 mounted is increased, the CPU stall state can be reduced, but there are problems such as an increase in power consumption and an increase in cost.
[0014]
The present invention has been made in view of the above points. A pipeline processing method capable of preventing a reduction in instruction processing performance and reducing power consumption and cost, and a pipeline processing apparatus using the method. The purpose is to provide.
[0015]
[Means for Solving the Problems]
Accordingly, in order to solve the above-described problem, in a pipeline processing method for performing arithmetic processing by interconnecting a central processing unit and an arithmetic unit, the arithmetic unit first stores an arithmetic instruction supplied from the central processing unit. Storing in the means, and confirming whether the first arithmetic unit performs an operation according to the operation instruction stored in the first storage means and is a multiple operation instruction that requires a plurality of cycles before the operation is completed. If it is a multiple operation instruction, the multiple operation instruction is stored in any one of the plurality of second storage means , and the multiple operation instruction is stored in any of the plurality of second storage means. Sometimes, the multiple calculation instructions already stored in the plurality of second storage means by the identification means provided for each of the plurality of second storage means And a step of indicating the issue order of newly stored multiple operation instructions, and the multiple operation instructions issued first among the multiple operation instructions stored in the plurality of second storage means according to the identification means selected, and executes the steps of any one of the plurality of second operating unit according to the multiple arithmetic instructions that have been selected to perform the operation until the operation ends at issue order indicated by the identification means.
[0022]
Further, in a pipeline processing apparatus that performs arithmetic processing by interconnecting a central processing unit and an arithmetic unit, the arithmetic unit includes first storage means for storing arithmetic instructions supplied from the central processing unit, and the first storage unit A first arithmetic unit that performs an operation in accordance with an operation instruction stored in one storage means, and the multiple operation instruction if the operation instruction that has performed the operation requires multiple cycles of time before the operation is completed. A plurality of second storage means for storing any one of the plurality of second storage means, and a plurality of second storage means associated with each of the plurality of second storage means when storing the multiple operation instruction in any of the plurality of second storage means Identification means for indicating an issue order of the multiple operation instructions already stored in the plurality of second storage means and the newly stored multiple operation instructions, and the identification The multiple operation instruction issued first is selected from the multiple operation instructions stored in the plurality of second storage means according to the stage, and the operation is performed in the issue order indicated by the identification means according to the selected multiple operation instruction. A plurality of second computing units that perform computations until one ends.
[0023]
In this way, by having the identification means indicating the issue order of the operation instructions stored in the plurality of second storage means, for example, executing multiple operation instructions that take time until the operation ends in the instruction issue order of the operation instructions Is possible.
[0028]
In addition, the code | symbol in the said parenthesis is attached in order to make an understanding easy, and is only an example.
[0029]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings. FIG. 3 shows a block diagram of a first embodiment of the pipeline processing apparatus of the present invention. The pipeline processing apparatus is configured to include an interconnected CPU 10 and COP 20. The CPU 10 is configured to include a data cache 11, an integer arithmetic unit & general-purpose register file 12, an instruction control unit 13, and an instruction cache 14. The COP 20 is configured to include a register file 21, an arithmetic unit 22, an instruction buffer 27, a decoder 28, instruction queues 29 and 30, and an instruction queue 31 for multiple arithmetic instructions.
[0030]
The instruction cache 14 of the CPU 10 stores a program and supplies an operation instruction to the instruction control unit 13. When an operation instruction is supplied, the instruction control unit 13 determines whether the operation instruction is an operation instruction using the COP 20 such as a floating point operation. If it is determined that the operation instruction uses the COP 20, the instruction code and the register number of the operation instruction are supplied to the instruction buffer 27 of the COP 20. On the other hand, if it is determined that the operation instruction is an integer operation or the like that does not use the COP 20, the instruction code and the register number of the operation instruction are supplied to the integer operation unit & general-purpose register file 12.
[0031]
The integer operation unit & general-purpose register file 12 reads data from the data cache 11 in accordance with the register number, and performs operation on the data in accordance with the instruction code. Thereafter, the integer operation unit & general-purpose register file 12 writes the operation result into the data cache 11.
[0032]
The instruction buffer 27 supplies the instruction code and the register number supplied from the instruction control unit 13 to the decoder 28 when various pipeline hazards are resolved. That is, it is confirmed that there is no register interference and hardware resource contention. The decoder 28 decodes the supplied instruction code, stores the arithmetic instruction in the instruction queue 29, and supplies the arithmetic instruction and the register number to the arithmetic stage 24 of the arithmetic unit 22. If various pipeline hazards are not resolved, the instruction buffer 27 does not supply the instruction code and register number to the decoder 28, and it is confirmed again whether various pipeline hazards are resolved in the next cycle.
[0033]
The instruction queue 29 supplies the stored arithmetic instructions to the arithmetic queue 30 in a pipeline format. At this time, the arithmetic instruction and the register number stored in the arithmetic stage 24 of the arithmetic unit 22 are supplied to the arithmetic stage 25. When an operation instruction and a register number are supplied from the operation stage 24, the operation stage 25 reads necessary data from the register file 21, and performs an operation according to the operation instruction.
[0034]
That is, when an operation instruction and a register number are supplied to the operation stage 25, an operation result is obtained in the next cycle. When the operation result is obtained, the operation stage 25 checks for the presence of an operation exception. If the operation is normally completed, the operation instruction is dequeued. Then, the calculation result is supplied from the calculator 22 to the register file 21. On the other hand, when an operation exception has occurred, the operation instruction and operation exception information are stored in the operation stage 25 and the instruction queue 30, and an interrupt operation starts.
[0035]
In the case of a multiple operation instruction, since the operation continues further, the operation instruction and operation exception information stored in the operation stage 25 and the instruction queue 30 are transferred to the operation stage 26 and the instruction queue 31 for the multiple operation instruction. Note that an operation exception that can be recognized at the start of an operation, such as division by zero, can be detected in the same manner as other pipelined operation instructions.
[0036]
The operation instruction held in the operation stage 26 for multiple operation instructions and the instruction queue 31 until the end of the operation is checked again for the presence of an operation exception at the end of the operation. If there is no operation exception, the operation instruction is dequeued from the operation stage 26 and the instruction queue 31. On the other hand, if there is an operation exception, the operation instruction is left in the operation stage 26 and the instruction queue 31, and the interrupt operation is started. The calculation result is stored in the register file 21.
[0037]
The processing of the pipeline processing apparatus in FIG. 3 will be described with reference to FIG. FIG. 4 shows a time chart of an example of the pipeline processing apparatus. In FIG. 4, portions unnecessary for explanation are omitted. The time chart of FIG. 4 shows a case where the operation instructions are executed in the order of the multiple operation instruction a, the pipelined operation instruction b, the pipelined operation instruction c, the pipelined operation instruction d, and the pipelined operation instruction e. is there.
[0038]
First, a multiple operation instruction a is supplied from the instruction cache 14 to the instruction control unit 13 at time t. At time t + 1, the instruction control unit 13 supplies the multiple operation instruction “a” to the instruction buffer 27. Further, the pipelined operation instruction b is supplied from the instruction cache 14 to the instruction control unit 13.
[0039]
Subsequently, the multiple operation instruction a is supplied from the instruction buffer 27 to the instruction queue 29 at time t + 2. The instruction control unit 13 supplies the pipelined operation instruction b to the instruction buffer 27. Further, the pipelined operation instruction c is supplied from the instruction cache 14 to the instruction control unit 13.
[0040]
At time t + 3, the multiple operation instruction a is supplied from the instruction queue 29 to the instruction queue 30. Pipelined operation instruction b is supplied from instruction buffer 27 to instruction queue 29. The instruction control unit 13 supplies the pipelined operation instruction c to the instruction buffer 27. A pipelined operation instruction d is supplied from the instruction cache 14 to the instruction control unit 13.
[0041]
At time t + 4, the multiple operation instruction a is supplied from the instruction queue 30 to the instruction queue 31 for multiple operation instructions. Pipelined operation instruction b is supplied from instruction queue 29 to instruction queue 30. Pipelined operation instruction c is supplied from instruction buffer 27 to instruction queue 29. The instruction control unit 13 supplies the pipelined operation instruction d to the instruction buffer 27. A pipelined operation instruction e is supplied from the instruction cache 14 to the instruction control unit 13.
[0042]
At time t + 5, the multiple operation instruction a is continuously stored in the instruction queue 31. Then, the pipelined operation instruction b finishes the operation process and is dequeued. Pipelined operation instruction c is supplied from instruction queue 29 to instruction queue 30. Pipelined operation instruction d is supplied from instruction buffer 27 to instruction queue 29. The instruction control unit 13 supplies the pipelined operation instruction e to the instruction buffer 27.
[0043]
Compared with the time chart described with reference to FIG. 2, the CPU stalled at time t + 5 in the time chart of FIG. 2, but the CPU stalled at time t + 5 in the time chart of FIG. Absent. That is, in the pipeline processing apparatus according to the first embodiment of the present invention, even in the case of multiple operation instructions, the instruction queues 29 and 30 are transitioned at the same timing as other pipelined operation instructions. Arithmetic processing is possible without stalling. Therefore, the overall calculation performance is dramatically improved, and the number of instruction buffers of a plurality of stages that have been mounted in order to avoid stalls as much as possible can be reduced.
[0044]
A subsequent operation instruction may generate an operation exception even if the preceding multiple operation instruction is being executed. Thus, when a subsequent operation instruction causes an operation exception, the preceding operation instruction completes execution, or when an operation exception is detected in a multiple operation instruction or an operation exception of the subsequent operation instruction, Register numbers, operation exception information, etc. can be held.
[0045]
FIG. 5 shows a block diagram of a second embodiment of the pipeline processing apparatus of the present invention. Note that the block diagram of FIG. 5 describes the COP 20 of the pipeline arithmetic device, and the description of the CPU 10 is omitted. Further, the same parts as those in the pipeline arithmetic unit of FIG. 3 are denoted by the same reference numerals and description thereof is omitted.
[0046]
The pipeline arithmetic device of FIG. 5 is characterized by providing instruction queues 37 and 38 and arithmetic stages 35 and 36 for multiple arithmetic instructions. In this case, it is necessary to notify the instruction issue order of the operation instructions stored in the instruction queues 37 and 38 for the multiple operation instructions and the operation stages 35 and 36 to the outside. By providing 40, it is possible to clarify the order of issuing instructions.
[0047]
When two multiple operation instructions a and b having different latencies are executed in different multiple operation stages 35 and 36, instruction queues 37 and 38 and address operation bits 39 and 40 are provided so as to correspond to the operation stages 35 and 36, respectively. . The address operation bit is a bit used to determine an instruction queue address.
[0048]
For example, it is assumed that “000” and “001” are assigned to the addresses of the instruction queues 37 and 38. When the multiple operation instruction a is issued and stored in the dedicated instruction queue 37, if the address operation bit 40 associated with the other instruction queue 38 is “0”, the address operation bit 39 is set to “1”. . If the address operation bit 40 associated with the other instruction queue 38 is “1”, the address operation bit 39 is set to “0”.
[0049]
When execution of a multiple operation instruction whose address operation bit is “1” is completed, the address operation bit is changed from “1” to “0”, and the address operation bit associated with the other instruction queue is changed to “ Change from “0” to “1”. That is, of the two multiple operation instructions a and b, the address operation bit associated with the instruction queue for the previously issued multiple operation instruction is always “1”, and the previously issued multiple operation instruction is set to 2 bits. It is possible to know by register.
[0050]
Furthermore, the address of the instruction queue for the multiple operation instruction with the associated address operation bit “1” is “000”, and the address of the instruction queue for the multiple operation instruction with the associated address operation bit “0” is By determining “001”, if the instruction queue is read in ascending order of addresses, information on multiple operation instructions can always be read from the instruction queue in the order of instruction issue.
[0051]
FIG. 6 shows a block diagram of a third embodiment of the pipeline processing apparatus of the present invention. Note that the block diagram of FIG. 6 describes a pipeline arithmetic apparatus having a plurality of COPs, and descriptions that are not necessary for the description are omitted. Further, the same parts as those in the pipeline arithmetic unit of FIG. 3 are denoted by the same reference numerals and description thereof is omitted.
[0052]
The pipeline processing apparatus of FIG. 6 has two COPs 50 and 60, and each COP 50 and 60 includes instruction queues 54 and 64 for multiple operation instructions. The instruction queues 54 and 64 for multiple operation instructions are provided with address operation bits so as to be attached to the instruction queues 54 and 64, as in the second embodiment of FIG.
[0053]
As described above, when a plurality of COPs are included in the pipeline arithmetic unit, multiple arithmetic instructions may be simultaneously stored in the instruction queues 54 and 64 for multiple arithmetic instructions included in different COPs. In this case, as long as it is guaranteed that multiple operation instructions are issued to the instruction queues 54 and 64 at the same time, it is necessary to determine a priority order for setting values in the address operation bits associated with the instruction queues 54 and 64. is there. This priority order is determined by the valid generation devices 56 and 66. The other timings are the same as in the case where an instruction queue for multiple operation instructions is mounted in one COP, and the description thereof is omitted.
[0054]
【Effect of the invention】
As described above, according to the present invention, when multiple operation instructions are executed, it is possible to prevent a decrease in instruction processing performance with respect to subsequent operation instructions, and power consumption and cost can be reduced by reducing the number of instruction buffer stages. Can be reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram of an example of a pipeline processing apparatus.
FIG. 2 is a time chart of an example of a pipeline processing apparatus.
FIG. 3 is a block diagram of a first embodiment of the pipeline processing apparatus of the present invention.
FIG. 4 is a time chart of an example of a pipeline processing apparatus.
FIG. 5 is a block diagram of a second embodiment of the pipeline processing apparatus of the present invention.
FIG. 6 is a block diagram of a third embodiment of the pipeline processing apparatus of the present invention.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 Central processing unit 11 Data cache 12 Integer operation part & General purpose register file 13 Instruction control part 14 Instruction cache 20 Coprocessor 21 Register file 22 Calculator 27, 51, 61 Instruction buffer 28 Decoder 24-26, 35, 36 Operation stage 29 ~ 31, 37, 38, 52 ~ 54, 62 ~ 64 Instruction queue 39, 40, 55, 65 Address operation bits 56, 66 valid generation device
Claims (2)
中央演算装置と演算装置とを相互接続して演算処理を行なうパイプライン処理方法において、
前記演算装置が、
前記中央演算装置から供給される演算命令を第1格納手段に格納する段階と、
前記第1格納手段に格納された演算命令に従って第1演算器が演算を行い、演算終了までに複数サイクルの時間を必要とするマルチプル演算命令であるか確認する段階と、
マルチプル演算命令であれば、前記マルチプル演算命令を複数の第2格納手段のうちのいずれかに格納する段階と、
前記マルチプル演算命令を前記複数の第2格納手段のうちのいずれかに格納するときに、前記複数の第2格納手段毎に付随して設けられている識別手段により、前記複数の第2格納手段に既に格納されている前記マルチプル演算命令と新たに格納されるマルチプル演算命令との発行順序を示す段階と、
前記識別手段に従って前記複数の第2格納手段に格納されているマルチプル演算命令のうち最先に発行された前記マルチプル演算命令を選択し、選択された前記マルチプル演算命令に従って複数の第2演算器のいずれかが前記識別手段の示す発行順序で演算終了まで演算を行なう段階と
を実行するパイプライン処理方法。In a pipeline processing method for performing arithmetic processing by interconnecting a central processing unit and an arithmetic unit,
The arithmetic unit is
Storing the operation instruction supplied from the central processing unit in the first storage means;
The first computing unit performs an operation according to the operation instruction stored in the first storage means, and confirms whether the operation is a multiple operation instruction that requires a plurality of cycles before the operation is completed;
If multiple arithmetic instruction, and storing said multiple operation command to one of the plurality of second storage means,
When storing the multiple operation instruction in any of the plurality of second storage means, the plurality of second storage means is provided by an identification means provided accompanying each of the plurality of second storage means. Indicating the issue order of the multiple operation instructions already stored in and the multiple operation instructions newly stored;
The multiple operation instruction issued first is selected from among multiple operation instructions stored in the plurality of second storage means according to the identification means, and a plurality of second operation units are selected according to the selected multiple operation instruction. pipeline processing method either executes the steps of performing an operation until the operation ends at issue order indicated by the identification means.
中央演算装置と演算装置とを相互接続して演算処理を行なうパイプライン処理装置において、
前記演算装置は、
前記中央演算装置から供給される演算命令を格納する第1格納手段と、
前記第1格納手段に格納された演算命令に従って演算を行なう第1演算器と、
前記演算を行なった演算命令が演算終了までに複数サイクルの時間を必要とするマルチプル演算命令であれば、前記マルチプル演算命令をいずれかが格納する複数の第2格納手段と、
前記マルチプル演算命令を前記複数の第2格納手段のうちのいずれかに格納するときに、前記複数の第2格納手段毎に付随して設けられ、前記複数の第2格納手段に既に格納されている前記マルチプル演算命令と新たに格納されるマルチプル演算命令との発行順序を示す識別手段と、
前記識別手段に従って前記複数の第2格納手段に格納されているマルチプル演算命令のうち最先に発行された前記マルチプル演算命令を選択し、選択された前記マルチプル演算命令に従って前記識別手段の示す発行順序で演算終了までいずれかが演算を行なう複数の第2演算器と
を有するパイプライン処理装置。In a pipeline processing apparatus that performs arithmetic processing by interconnecting a central processing unit and an arithmetic unit,
The arithmetic unit is:
First storage means for storing operation instructions supplied from the central processing unit;
A first computing unit that performs an operation according to an operation instruction stored in the first storage means;
If the operation instruction that has performed the operation is a multiple operation instruction that requires a plurality of cycles to complete the operation, a plurality of second storage means for storing any one of the multiple operation instructions;
When storing the multiple operation instruction in any one of the plurality of second storage means, it is provided for each of the plurality of second storage means, and is already stored in the plurality of second storage means. Identifying means for indicating an issue order of the multiple operation instructions and the newly stored multiple operation instructions,
The multiple operation instruction issued first is selected from the multiple operation instructions stored in the plurality of second storage means according to the identification means, and the issue order indicated by the identification means according to the selected multiple operation instruction in the pipeline processing apparatus having a <br/> either until the operation end and a plurality of second computing unit for performing arithmetic.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000054832A JP5185478B2 (en) | 2000-02-29 | 2000-02-29 | Pipeline processing method and pipeline processing apparatus using the method |
US09/768,630 US20010049781A1 (en) | 2000-02-29 | 2001-01-25 | Computer with high-speed context switching |
EP01300675A EP1132813A3 (en) | 2000-02-29 | 2001-01-25 | Computer with high-speed context switching |
EP07101869A EP1785863A3 (en) | 2000-02-29 | 2001-01-25 | A divider comprising a carry save adder and a full adder |
EP07101868A EP1785862A3 (en) | 2000-02-29 | 2001-01-25 | Method and apparatus for pipeline processing |
KR1020010006093A KR100732426B1 (en) | 2000-02-29 | 2001-02-08 | Computer with high-speed context switching |
US12/073,042 US20080215859A1 (en) | 2000-02-29 | 2008-02-28 | Computer with high-speed context switching |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000054832A JP5185478B2 (en) | 2000-02-29 | 2000-02-29 | Pipeline processing method and pipeline processing apparatus using the method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001243066A JP2001243066A (en) | 2001-09-07 |
JP5185478B2 true JP5185478B2 (en) | 2013-04-17 |
Family
ID=18576034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000054832A Expired - Fee Related JP5185478B2 (en) | 2000-02-29 | 2000-02-29 | Pipeline processing method and pipeline processing apparatus using the method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5185478B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE472134T1 (en) | 2002-04-18 | 2010-07-15 | Nxp Bv | MULTIPLE COMMAND ISSUE PROCESSOR |
GB0415851D0 (en) * | 2004-07-15 | 2004-08-18 | Imagination Tech Ltd | Microprocessor output ports and control of instructions provided therefrom |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6057436A (en) * | 1983-09-09 | 1985-04-03 | Nec Corp | Arithmetic processor |
US4991078A (en) * | 1987-09-29 | 1991-02-05 | Digital Equipment Corporation | Apparatus and method for a pipelined central processing unit in a data processing system |
JP2668987B2 (en) * | 1988-09-30 | 1997-10-27 | 松下電器産業株式会社 | Data processing device |
JP2778610B2 (en) * | 1991-03-14 | 1998-07-23 | 富士通株式会社 | Pipeline operation control method and system |
JP2690712B2 (en) * | 1995-06-14 | 1997-12-17 | 甲府日本電気株式会社 | Vector data processing device |
JP3510729B2 (en) * | 1996-02-29 | 2004-03-29 | 三洋電機株式会社 | Instruction execution method and instruction execution device |
US6567426B1 (en) * | 1998-03-05 | 2003-05-20 | Silicon Graphics, Inc. | Preemptive timer multiplexed shared memory access |
-
2000
- 2000-02-29 JP JP2000054832A patent/JP5185478B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001243066A (en) | 2001-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2938426B2 (en) | 1999-08-23 | Method and apparatus for detecting and recovering interference between out-of-order load and store instructions |
JPS61107434A (en) | 1986-05-26 | Data processor |
JP2000259412A (en) | 2000-09-22 | Method and processor for transferring store instruction |
JPH09223013A (en) | 1997-08-26 | Speculative load instruction executing method for high performance processor |
US20030046518A1 (en) | 2003-03-06 | Look-ahead load pre-fetch in a processor |
US6301654B1 (en) | 2001-10-09 | System and method for permitting out-of-order execution of load and store instructions |
JP4841861B2 (en) | 2011-12-21 | Arithmetic processing device and execution method of data transfer processing |
JP2004529405A (en) | 2004-09-24 | Superscalar processor implementing content addressable memory for determining dependencies |
JPH11345122A (en) | 1999-12-14 | Processor |
JPH0248732A (en) | 1990-02-19 | Micro processor for instruction pipe line system |
JP2008527559A (en) | 2008-07-24 | Processor and instruction issuing method thereof |
JPH10143365A (en) | 1998-05-29 | Parallel processing device and its command issuing system |
JPH0743648B2 (en) | 1995-05-15 | Information processing equipment |
JP5185478B2 (en) | 2013-04-17 | Pipeline processing method and pipeline processing apparatus using the method |
CN112540789B (en) | 2024-06-18 | Instruction processing device, processor and processing method thereof |
JPH0916409A (en) | 1997-01-17 | Microcomputer |
JP3435278B2 (en) | 2003-08-11 | Data processing device |
JP4243271B2 (en) | 2009-03-25 | Data processing apparatus and data processing method |
JP2001117886A (en) | 2001-04-27 | Processor and processor system |
US6880067B2 (en) | 2005-04-12 | Retiring instructions that meet the early-retirement criteria to improve computer operation throughput |
JP2001051845A (en) | 2001-02-23 | Out-of-order execution system |
JP3199035B2 (en) | 2001-08-13 | Processor and execution control method thereof |
JP2668987B2 (en) | 1997-10-27 | Data processing device |
CN116841614B (en) | 2024-03-15 | Sequential vector scheduling method under disordered access mechanism |
CN118605941B (en) | 2024-10-15 | CPU capable of fast processing memory copy instruction and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
2007-01-20 | A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070119 |
2008-07-29 | A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080728 |
2009-02-26 | A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090226 |
2009-03-04 | A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090303 |
2009-05-01 | A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090430 |
2010-04-14 | A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
2010-06-15 | A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100614 |
2011-03-23 | A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110322 |
2011-06-18 | A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110617 |
2011-06-23 | A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110622 |
2011-09-20 | A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20110916 |
2012-11-29 | A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121128 |
2013-01-24 | A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130118 |
2013-01-25 | R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2013-01-28 | FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160125 Year of fee payment: 3 |
2015-05-22 | S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
2015-06-01 | R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
2017-01-25 | LAPS | Cancellation because of no payment of annual fees |