[go: up one dir, main page]

JPH07504520A - 仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユニットとを有するcpu - Google Patents

仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユニットとを有するcpu

Info

Publication number
JPH07504520A
JPH07504520A JP5514792A JP51479293A JPH07504520A JP H07504520 A JPH07504520 A JP H07504520A JP 5514792 A JP5514792 A JP 5514792A JP 51479293 A JP51479293 A JP 51479293A JP H07504520 A JPH07504520 A JP H07504520A
Authority
JP
Japan
Prior art keywords
instruction
address
output
register
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5514792A
Other languages
English (en)
Other versions
JP3423310B2 (ja
Inventor
サバ,ジョーン・エイ
シュワルツ,マーティン・ジェイ
タン−コン,リチャード
Original Assignee
サムスン エレクトロニクス カンパニー リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by サムスン エレクトロニクス カンパニー リミテッド filed Critical サムスン エレクトロニクス カンパニー リミテッド
Publication of JPH07504520A publication Critical patent/JPH07504520A/ja
Application granted granted Critical
Publication of JP3423310B2 publication Critical patent/JP3423310B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユ ニットとを有するCPU 発明の分野 本発明は、一般に、デジタル・データ・プロセッサに関し、更に詳しくは、パイ プライン化された命令の実行と仮想アドレス指定能力とを有する高性能の中央演 算処理装置(CPU)とに関する。
発明の背景 パイプライン化された命令実行ユニットは、それぞれが所与の命令サイクルの間 に別の命令に応答する実行要素の階層を実現する回路を含む。命令は、命令実行 ユニットを、当該命令実行ユニットの種々の要素が効率的な態様で使用されるよ うに、シーケンスで通過する。すなわち、種々の要素は、命令の復号や、実効ア ドレス (effective address)の計算や、その他の要求され る機能に最大限従事する。たとえば、パイプラインの第1段が命令Aを復号して いる間は、パイプラインの第2段は先行する命令Bに対する実効アドレスを計算 し、第3段は先行する命令Cに対して仮想アドレス翻訳とオペランドのブリフェ ッチを実行している。
このパイプライン化された命令実行ユニットの使用の間に生じる問題は、条件付 の分岐命令 (conditional Branch 1nstructio ns)の生起の結果生じる・すなわち、パイプランを通って進む条件付の分岐命 令は、現にパイプライン化されたシーケンス状の命令実行を変更するかもしれな いし変更しないかもしれない。
条件付の分岐命令を与える多くの技術が当該技術分野では知られている。これら の技術には、条件付の分岐が決定されるまで命令実行の流れを停止すること、流 れが想定される分岐経路を暫定的に取るようにすること、両方のあり得る分岐経 路を暫定的に探索すること、入手可能な情報に基づいて条件付の分岐の結果を予 想すること、などが含まれる。
この後者の技術を実現する1つのアプローチが、D、 B、 5andによる[ データ処理システムのための分岐予測装置及び方法」と題する1984年2月7 日に発行された米国特許第4430706号に記載されている。この特許は、分 岐予測メモリの使用と、条件付の分岐命令に遭遇した場合に予測メモリにアクセ スするためのハツシュ・コード化された型の命令アドレスの使用とを開示してい る。
次の3つのIBM Technical Disclosure Bullet inは、すべてが分岐ヒストリ・テーブル(BHT)の使用に言及している。す なわち、Vol、24. No、7A、(12/81)の「サブルーチン・ルー チン・アドレス・スタック」と、Vol、28.No、10. (3/86)の 「高度に正確なサブルーチン・スタック予測機構」と、Vol、30.No、1 1. (4/88)の「サブルーチン・コール/リターン・スタック」である。
上記の最初の参考文献によれば、BHTは、復号される前の分岐を予測するのに 用いられ、また、n個の選択された分岐のターゲット・アドレスを連惣型(aS sociative)又は組連想型(set associative)のテー ブルに記憶することによって最後のn個の選択された分岐のレコードを保持する 。このテーブルは、命令がブリフェッチされた際に命令アドレスによってアクセ スされる。BHTのヒツトがある、すなわち、テーブルが当該命令アドレスに対 するエントリを含む場合には、この命令が実行される最後の時にはそれは選択さ れた分岐であると指示される。BHTのヒツトが生じると、BHTは対応するタ ーゲット・アドレスを出方し、このターゲット・アドレスは命令ブリフェッチを 再度命じるのに用いられる。BHTの使用における基礎となる仮定は、ある分岐 が以前選択された場合にはそれが再度選択される高い蓋然性があり、また、ター ゲット・アドレスは分岐命令の連続的な実行の間で変化しないというものである 。
本発明の目的は、パイプライン化された命令ユニットと、BHTを用い命令ユニ ットの効率を更に最適化するための新規なエンハンスメントをも含む関連する実 効アドレス発生ユニットとを提供することである。
発明の概要 上述の及びそれ以外の問題は克服され、本発明の目的は、本発明によって構成さ れ動作する命令ブリフェッチ・ユニットによって実現される。
このブリフェッチ・ユニットは、既に選択されたターゲット・アドレスを有する 分岐命令の生起の指示を提供する分岐ヒストリ・テーブルを含む。複数の分岐マ ーク・ビットは、命令キャッシュからブリフェッチされる倍ワードの命令データ と共に、半ワードを基礎にして命令待ち行列に記憶される。分岐ターゲット・ア ドレスは、同時にブリフェッチ及び用いられて、命令ブリフェッチを再度命じる 。ターゲット・アドレスは、また、パイプライン化されていて、命令パイプライ ンを通って関連する分岐命令に従う。
命令待ち行列と命令パイプラインとのそれぞれのレジスタは、関連するレジスタ の妥当性を指示する妥当ビットを含む。ブリフェッチ・ユニットは、想定された 妥当ビットを有する命令がパイプラインのフェッチ段に置かれるまで、自動的に 命令を自己で満たす(self−filling)回路を含む。フェッチ段の間 には、既に発生した仮想実効アドレスが翻訳バッファに与えられ、命令によって 要求されるオペランドを有するデータ・キャッシュにアクセスするのに用いられ る物理アドレスを発生する。本発明の1つの特徴によれば、翻訳バッファは第1 及び第2の翻訳バッファを含み、第1の翻訳バッファは第2の翻訳バッファの削 減された部分集合となっている。第1の翻訳バッファは、フェッチ段に先行する 発生段の間に、プローブされ、可能であれば要求されるオペランドをブリフェッ チする。その結果、このオペランドは、命令に対する動作コードと同時に実行ユ ニットにとって利用可能とされ、これよって、命令実行速度の増加を達成できる 。
ブリフェッチ・ユニットの実効アドレス計算ユニットもまた、パイプライン化さ れており、予測された分岐が結局は誤りであることがわかった場合に用いられる 仮想オペランド・アドレスを保持するためのレジスタを含む。実効アドレス計算 ユニットは、また、実行ユニットによって用いられる汎用レジスタのコピーを含 み、第1の命令に対する実効アドレスを計算するのに要求される汎用レジスタが 先行する命令によって修正されるべきであると判断された場合に、この汎用レジ スタのコピーをバイパスする機構を与える。先行する命令が汎用レジスタを修正 するまでパイプラインの進行を停止するための条件付の機構が提供される。この 機構は、制御RAMからの制御情報出力を各命令ごとに記憶するパイプライン化 されたレジスタの組を含む。この制御情報は、よって、ブリフェッチされたパイ プラインを通って、関連するパイプライン化された命令に従う。この制御情報は 、また、各命令ごとに、実効アドレス計算ユニットによって発生される実効アド レスの幅を特定する。結果的に、24ビツト又は31ビツトの実効アドレスが、 各命令ごとに発生される。
図面の簡単な説明 本発明の上述した及びその他の特徴は、次に説明する添付した図面と共に以下の 発明の詳細な説明において更に明らかにされる。
図1は、本発明に従って構成され動作するパイプライン命令ユニット(pipe lined 1nstruction unit)を用いるデータ処理システム の主な機能的要素を示すブロック図である。
図2は、図3A、図3B、図3C,図3Dの相互関係を図解している。
図3Aは、命令ユニットの簡略化された回路図である。
図3Bは、BHTと、命令キャッシュと、命令ユニット制御メモリとを図解する 簡略化された回路図である。
図30は、実効アドレス計算ユニットの簡略化された回路図である。
図3Dは、仮想アドレス変換ユニットのブロック図である。
図4は、複数の連続パイプライン・サイクルに対する命令ユニット・パイプライ ンの動作を図解するタイミング図である。
図5A〜図5には、命令フォーマットを図解しており、実効アドレス計算ユニッ トの動作を理解するのに有用である。
発明の詳細な説明 図1は、複数のバス・エイジェントを結合するシステム・バス(SB)12を含 むデータ処理システム20を図解するブロック図である。システム・バス12は 、多重化されたシステム・アドレス/バス経路と、たとえば同期クロック信号と 読み出し書き込みストローブ信号とシステム・バス12の調停信号とを含む制御 バス経路と、を含む。バス・エイジェントは、1つ又は複数の中央処理装置(C PU)14と、1つ又は複数のメモリ・ユニット(MU)16とを含む。メモリ ・ユニット16は、バス・インターフェース・ユニット16aと、メモリ制御ユ ニット16bと、マイクロ命令と関連するオペランド (associated  operands)とを記憶するメモリ・アレー16cと、を含む。また、シ ステム・バス12には、関連する入出力(110)バスをシステム・バス12に 結合する少なくとも1つのシステム・バス・インターフェース(SBI)18が 結合されている。I10バス20には、それぞれが直列又は並列通信コントロー ラ及び(又は)大容量記憶装置などの関連するI10デバイスにインターフェー スするための回路を含む、1つ又は複数のI10プロセッサ(IOP)22が取 り付けられている。
ここで特に重要なのは、CPU14である。図に見られるように、CPU14は 、多数の相互に関連する機能的ブロックを含んでいる。これには、CPU14を システム・バス12に、従ってMU16に結合する記憶ユニット・インターフェ ース(SUI)26と、5B118とが含まれる。5UI24に結合されている のは、命令ブリフェッチ・ユニット(IPU)26と、命令キャッシュ(IC) 28と、オペランド又はデータ・キャッシュ(DC)30と、である。IPU2 6の構成と動作とは、特に重要であるから、以下で詳しく説明する。
CPU14は、また、IPU26からマイクロ命令動作フード(オブコード)を 受け取って制御記憶(C3)34に対して制御記憶アドレス(CS A)を発生 する制御記憶ユニット(CSU)32を含んでいる。C834は、データ処理シ ステム10の動作に先立ってマイクロ命令がロードされるメモリ装置である。マ イクロ命令の特定のシーケンスがC3Aに従って選択され、特定のマイクロ命令 を実行する動作を制御するCPU14の他のユニットへの制御信号ラインの多数 のフィールドとして提供される。このマイクロ命令の実行は、一般に、実行ユニ ット(EU)36及び(又は)数学ユニット38によって達成される。数学ユニ ット38は、浮動小数点演算機能を提供し、EU36に関連して、DC30に双 方向的に結合されてそこからオペランドを受け取りそこでの結果を記憶する。
次に、IPU26を、図2と、図3A〜図3Dとを参照して説明する。図2から れかるように、IPU26は、命令ユニット(IU)40 (図3A)と、分岐 ヒストリ・テーブル(BHT)42 (図3B)と、命令ユニットRAM(IU RAM)48 (図3B)と、実効アドレス・ユニット(EAU)46 (図3 C)と、仮想アドレス変換ユニット(VATU)50 (図3D)と、を含んで いる。同様に、VATU50そのものの一部を形成しているわけではないが、デ ータ・キャッシュ30も図3Dに示されている。
図4に見られるように、命令ブリフェッチ・サイクルは、4つのサブサイクル又 はマイクロサイクルに分割されている。これらのサブサイクルは、IPU26の 4つのパイプライン段に対応し、ここでは、発生(G)サブサイクル、フェッチ (F)サブサイクル、実行(E)サブサイクル、そして、BHT42を用いる条 件付の分岐タイプ命令に対して、保持(R)サブサイクル、と称される。このよ うに、図3A〜図30のレジスタ指定は、どのパイプライン段にレジスタが属し ているかを指定するために、また、どのサブサイクルの間にレジスタがアクティ ブかを指示するために、G、F、E、Rの添え字を含む。
一般に、IPtJ26の目的は、 (a)IC28から8バイトのFIFOバッファへのマイクロ命令、又は、命令 待ち行列をいつでも可能なときにブリフェッチすること、(b)マイクロ命令を バイブラインを通って進め、他方で、仮想オペランド、又はマイクロ命令に対す る分岐アドレスを計算すること、(C)可能であれば、計算されたアドレスに基 づいてDC30からのオペランド・データをブリフェッチし、そのオペランド・ データをディスパッチ時に直ちに使用するためにEU36のバッファにロードす ること、(d)バイブラインの中の分岐命令の存在を検出し、分岐の最後の方向 を(選択された分岐又は選択されなかった分岐について)リコールし、マイクロ 命令のバイブラインをそれに従って転送すること、である。
IPU26は、特に、現にEU36において実行しているマイクロ命令に従うべ き1つ又は複数のマイクロ命令に関係し、EU36を、実行している命令によっ て極大的に占有されるようにする。
次に、IPU26の主な構成要素を説明する。
複数のレジスタが提供されて、パイプライン内のマイクロ命令のアドレスのレコ ードを保持する。これらのレジスタはEAU44の一部を形成し、命令アドレス 発生(IAG)52と、命令アドレス・フェッチ(IAF)と、命令アドレス実 行(IAE)56と、命令アドレス保持(IAR)58とを含む。
IU40は、4つの18ビツトの命令レジスタ(IRO80、lR182、lR 284、lR386)を含む命令待ち行列(IQ)を含む。各レジスタの16の ビットは1つマイクロ命令又は1つのマイクロ命令の一部を記憶し、17番目の ビットはBHT42マーク(M)ビット(マイクロ命令が条件付分岐である場合 )であり、18番目のビットは有効な (valid) (V)インジケータを 記憶する。lR080だけが18ビツトを有して図解されているが、IRI〜I R3も同様に構成される。マルチプレクサ群88は、物理命令アドレス・バス( PIABUS)90のビット29.30 (LSB)の制御の下に、IC28か らIRO〜IR3をロードし整列させる (align)役割を有している。I U40は、PIABUS90に対するソースである。マイクロ命令のバイブライ ンは、直列結合された命令レジスタIRG92、IRF94、IRE96である 。これらのレジスタの動作は、以下で説明する。
EAU44は、また、31ビツトのRAMによる2ボート160ケーシヨンとし て実現されている汎用レジスタ・ファイル・コピー(RF C0PY)60を含 む。RF C0PY60は、EU36に含まれている16のユーザの管理下にあ る(user−visible)汎用レジスタのコピーを含む。EU36の汎用 レジスタがマイクロコードによって書かれている場合には、対応するRF C0 PY60のレジスタも更新される。
RF C0PY60のRAMは、3つのアドレス・ポートWADDR,A−AD DR,B ADDRから構成される。第1のものは、アドレス書き込みポートで あり、後の2つは、アドレス読み取りポートである。これ以外の入力は、EU3 6が発生する信号であるRFWRTによって駆動される書き込みイネーブル(W E)と、EU36から発する32ビツトのEUOUTバスからレジスタEOUT 62によってラッチされる31データ・ビット(Di n)と、である。
RF C0PY60の出力は、2つのデータアウト・ポート(A 0UTSBO UT)として構成され、これらは、読み出しアドレス・ポートA ADDRlB ADDRの1つにそれぞれ対応する。
RF C0PY60は、現に命令待ち行列の最後の2つのレジスタ位置(lR0 80、lR182)にあるマイクロ命令のベース(Bl又はB2)及びインデッ クス(X2)のフィールド(図5A〜図5K)によって、アドレス指定される。
RF C0PY60の2つの出力ポートは、アドレス指定されたデータを、マル チプレクサ64.66を介して、2つの出力レジスタであるインデックス・デー タ弓ノジスタ(IDR)68とベース・データ・レジスタ(BDR)70とにそ れぞれ供給する。IDR68とBDR70とは、パイプラインが進められる場合 は常にロードされる。第3のデータ・レジスタである変位データ・レジスタ(D DR)72は、マイクロ命令においてコードされた変位フィールドがあるときは 常に、マルチプレクサ98(図3A)を介して、lR182から直接にロードさ れる。
RP C0PY60は、また、マルチプレクサ98を介して、IRG92か■R F94かIRE96におけるマイクロ命令によってもアドレス指定され得る。
マルチプレクサ98は、31ビツトの命令レジスタ・バス(IRBUS)100 に対するソースである。
EAU44は、また、31ビツト幅の3ボートの加算器78を含む。Aのポート は、マルチプレクサ74を介してアドレス・インデックス・データを受け取るか 、又は、現在のマイクロ命令にインデックスがコードされていない場合にはゼロ を受け取る。Bのポートは、マルチプレクサ76を介してアドレス・ベース・デ ータを受け取るか、又は、現在のマイクロ命令に対してベースがコードされてい ない場合にはゼロを受け取る。Bのポートは、現在の命令が相対フォーマットを 有している場合には、マルチプレクサ66を介して、IAG52から命令アドレ スを受け取ることもあり得る。Cのポートは、DDR72から変位データを受け 取る。A及びBのポートには、以下で更に詳細に説明するように、RF C0P Y60の書き込み動作がそれまでに読み出されIDR68及び(又は)BDR7 0に記憶されていたデータを陳腐化する場合には、直接にEUOUTデータが供 給される。
加算器78は、適切なインデックス、ベース、変位の値を加えることにより、実 効アドレス(EA)を計算するように動作する。EAは、パイプライン化された マイクロ命令に関連するオペランドのアドレスであり、このオペランドは、その マイクロ命令が次に実行される際にEU36又は数学ユニット38によって要求 される。
加算器78の出力は、マルチプレクサ102を介して実効アドレス・フェッチ・ レジスタ104に与えられ、更に、本発明の1つの特徴に従って、31ビツトの 実効アドレス(EA)バス106にも与えられる。EAババス06は、VATU 50の中のオペランド・ブリフェッチ変換バッファ(OPTB)108に結合さ れる。EAババス06は、発生サイクルの間、0PTB108をプローブし、フ ェッチ・サイクルの間はデータ・キャッシュ30から、可能であれば、同時にI RF94に記憶されているマイクロ命令に対して要求されるオペランドをブリフ エツヂする。0PTB108からのプローブが成功すれば、このオペランドは実 行サイクルの開始時においてEU36にとって利用可能になり、それにより、E tJ36の速度と効率とが改善される。
EAF104の出力は、マルチプレクサ110を介して、仮想アドレス2(VA R2)レジスタ112に提供される。VAR2レジスタ112の出力は、マルチ プレクサ114を介して、仮想アドレス・バス(VABUS)124のソースで あるマルチプレクサ122に与えられる。VABUS124は、VATU50内 のMAIN変換バッファ126に入力される。VABUS124は、また、仮想 アドレス・レジスタ(VAR)116にも与えられ、また、入力として、要求さ れる際にVAを増加又は減少させる数学ブロック118にも与えられる。数学ブ ロック118の出力は、仮想アドレス・レジスタ1 (vARl)120と、マ ルチプレクサ110の入力と、マルチプレクサ128の第1の入力とに提供され る。マルチプレクサ128への第2の入力は、VAR2(112)の出力から提 供される。マルチプレクサ128の出力は、仮想アドレス2保持(VAR2R) レジスタ130の入力に提供される。VAR2R(130)は、本発明の更なる 特徴に従って用いられ、分岐動作の予測された出力が誤りであることがわかるこ とによってパイプラインがもう一度マルチブレクサ132を介し条件付の分岐命 令の実行に先立って辿られる(フォローされる)命令経路に沿って転送されるこ とが可能になる場合に、次に用いるためにVAを記憶する。本発明のこれらの特 徴については、以下で更に詳細に説明する。
3つの仮想アドレス・レジスタvAR116、VARI (120) 、VAR 2(112) 、VAR2(112)が、要求される際に、実行フェーズの間に 、マイクロコードによって用いられる。これらの仮想アドレス・レジスタの使用 についても以下で説明する。
IPU26の制御は、大部分は、IPU26の中にハードワイアされており、パ イプラインはそれ自身が命令キャッシュ28のデータで満たされているように試 み、また、分岐が選択した予測ごとに命令ブリフェッチ・ストリームを自動的に 転送する。パイプラインがドライになったり、又は例外的な条件が検出されたり 、又は分岐予測が誤りであった場合には、パイプラインはマイクロコード制御さ れるようになる。IU40とEAU46とに供給される関係するC334のマイ クロワード・フィールドとその作用を次に示す。
CS フィールド 庄屋 CMD 1 特定のIPUベースのレジスタのロード、命令待ち行列有効ビット のリセット、BHT42のロード及びクリア CMD 2 複数のVARの増加/減少制御PRB VABUS124アドレス Iこ対するプローブ制御御ビット VAS VABUS124ソース制御、加算器78の入力選択制御 1U26について簡単に説明したので、その動作の更に詳細な説明を次で行うこ とにする。
図4を参照すると、Slのクロックは、複数のパイプライン・サイクルを定義し ている。この例では、Slのクロックは、30ナノ秒の周期を有している。空の パイプラインを想定すると(初期条件)、サイクル1の間に、IAG52は、V ABUS124からロードされ、パイプラインはリセットされる。すなわち、す べての有効ビットはリセットされ、BHT42は、クリアされる。サイクル2の 間には、物理命令アドレス・レジスタ(PIAR)160が物理アドレス・lく ス(PABUS)168からロードされる。IC28はPIABUS90によ7 てアクセスされ、命令がIC28の中に存在している場合(キャッシュの「ヒツ ト」)には、命令がICACHEバス134上に出力される。命令が存在してい ない場合(キャッシュの「ミス」)には、5UI24が介入し、MU16から命 令を取得し、同じものをシステム・データ・バスからトランシーバ28aを介し てIC28の中にロードする。結果として、サイクル2は、可変の周期を有する ように示されていて、IC28のミスの発生の可能性を説明している。
アドレス指定されたマイクロ命令は、最初に、IRQ (80)〜IR3(86 )において、パイプラインに入る。これらの4つのレジスタは、それぞれが半ワ ード(16ビツト)の長さであり、マルチプレクサ88aを介して、IC28の データ・バス(ICACHE134)上の任意の半ワードの点から個別にロード することができる。また、IRQ(80)、IRI(82)、IR2(84)は 、それぞれが、マルチプレクサ88bを介して、1〜3の半ワードに基づいて、 任意のより上位のIRレジスタからロード可能である。
サイクル3の間には、IRQ (80)、IRI (82)内の命令は、A及び BのアドレスをRF C0PY60に供給する。このA及びBのアドレスは、実 効アドレス計算のための関連するデータを検索するのに用いられる。このパイプ ライン段(サイクル3)の終わりにおいて、アクセスされたRF C0PY60 のデータは、IDR68とBDR70とにロードされる。また、適切な場合には 、DDR72がIRI (82)からロードされる。また、1つ又は複数のIR O〜IR3のレジスタが、マイクロ命令の長さに依存して、IRG92内にロー ドされる。
サイクル3の間には、現にIRQ (80)内にあるマイクロ命令のオブコード が用いられ、IRBUSlooを介して命令ユニットRAM (IURAM)4 6をアドレス指定する。IURAM46は、256X13ビツトのRAMとして 構成されていて、各オプコードに対してIPU制御情報を含む。この制御情報は 、IURAMのバス46a上に出力されて、レジスタPLCIG136の中とレ ジスタIGINC138の中とにラッチされる。IGINC138は、命令の長 さく2〜8バイト)に関する情報を含む。
IURAM46のビットは、ビット組に分割される。第1のビット組(ビット< 00+02>)は、RF C0PY60に対する実効アドレス・ソースに関連し た情報を運ぶ。ビット<03 : 05>は、指定例外チェックを制御し、また 、R1及びR2のテストを制御する。別の1ビツトが、アサートされた場合には (when asserted) 、マイクロ命令に対する単精度又は倍精度の 浮動小数点フォーマットを指示する。更に別の1ビツトが、アサートされた場合 には、対応する命令はオペランド・ブリフェッチ動作を要求するタイプであるこ とを指示する。このビットは、マイクロコード化されたイネーブル・オペランド ・ブリフェッチ(EOP)サイクルと共に、EAFのアドレス変換と0PB15 6のブロービングをイネーブルする。このビットは、PLCIF140とPLC IE142とを通ってパイプラインを進み、よって、対応する命令がIRE96 にある場合に、テストされ得る。
iURAM46のビット8は、アサートされた場合には、対応する命令がBHT 42によって維持される命令タイプであることを指示する。分岐マーク・ビット のオンを有している命令がパイプラインを転送するためには、IURAM46の ビット8もまたオンでなければならない。このビットがオンでなく、関連する命 令のBMARKビットがアサートされた場合には、エラー条件が指示される。
ビット9は、2つのAMODE制御ラインのどちらが仮想アドレスのビット〈0 1:07>を条件付ける際に、現在の命令によって用いられるべきかを指示する 。このビットは、24/31ビツトのアドレス指定に関係し、これについては次 に述べる。ビット10.11は、RF C0PY60の書き込みカテゴリを指示 する。これらのカテゴリは、書き込みが行われない、命令がR1フィールドによ ってアドレス指定されたものとしてレジスタに書き込む、命令がR1フィールド によってアドレス指定されたものとしてレジスタ対に書き込む、又は、命令が( 潜在的に)すべてのレジスタに書き込む、の場合を含む。
PLCIレジスタの別のビットは、関連する命令がベース・フィールドを含むこ とを指示する。3つのビットが、PLCIF及びPLCIF段における命令のR 1アドレス・フィールドがPLCIG段における命令のインデックス及びベース ・アドレス・フィールドと比較されることを指示する。合致(Ilatch)  が検出された場合には、HOLDG信号が発生され、E段から合致命令が出るま で6段が進むことが阻止される。PLCIレジスタの3つの他のビットは、関連 する命令のインデックス及びベース・フィールドがF及びE段、更にはEU36 からのRF C0PY書き込みとの比較のために維持されるべきと指示する。
サイクル3の終わりにおけるSlのクロックの立ち上がりエツジが、サイクル4 の実効アドレス発生(G)ステップを開始させる。このステップの間には、加算 器78は、EABUS106i:与えられoPTB108をプローブする仮想実 効アドレス(VEA)を発生する。このプローブが成功した場合には、0PTB が出力する物理アドレスは、DC30にアクセスして、現在IRG92に記憶さ れている命令によって要求されるであろうオペランドをブリフェッチする。
PLCIG136の出力は、命令が発生からフェッチ段(サイクル5)に通過す る際にレジスタPLCIF140に移動され、命令がフェッチから実行段(サイ クル6)に通過する際にPLCIF140からレジスタPLCIE142に移動 される。結果として、命令に関連する制御情報もまたバイブライン化され、IP U26の種々の段を進む際に命令に従う。
サイクル2の説明に戻ると、命令が既に選択された分岐命令かどうかに関する判 断がなされる。これは、PIABUS90上の命令の物理アドレスによってBに よって指示されているように、対応するエントリを有している場合には、前の分 岐ターゲット・アドレスがBHT TAGETのRAM42aからBHTTAR バス146上に出力され、分岐ターゲット・アドレスがマルチプレクサ150を 介してレジスタTARIR0148に記憶され、TARIRO148が一時的に 占有されている場合には、TARIRQ152に記憶される。分岐ターゲット・ アドレスは、次に、マルチプレクサ154とPIABUS90とを介して供給さ れて、IC28をアドレス指定し、次のマイクロ命令のためにバイブラインの転 送を開始する。すなわち、分岐マイクロ命令に従う次のシーケンシャルなマイク ロ命令の代わりに、分岐ターゲット・アドレスに存在する命令がブリフェッチ2 タグビツト<05 : 16>を用いてプローブされる。プローブが成功した場 合には、3つの合致ビットがBHT MATCHバス145に出力される。各合 致ビットは、12タグピツトの4つに対応する。これらの合致ビットは、AND 演算され、マーク・ビットのロードをイネーブルし、BHT MARKのRAM 42bによって対応するIRO〜IR3の中に出力される。合致ビットは、また 、BH,T TAGETのRAM42aが出力する関連する分岐ターゲット・ア ドレスによって、TARIR0148又はTARIRQ152のロードをイネー ブルする。
サイクル4の間、IAG52は、IRG92の中にあるマイクロ命令のアドレス を含む。このバイブライン段においては、オペランド・ブリフェッチは、計算さ れたEAに基づいて試みられる。また、IURAM46の制御ビットに基づいて 、ADDER78の入力が選択される。このバイブライン段の最後において、A DDER78の出力は、次の段での使用のために、EAF I Q 4のレジス タの中にロードされる。
サイクル5の間、IAF54はIRF94内にあるマクロ命令のアドレスを含む 。VABUS124、DC30及びCPU14内部データ・バス(DBUS24 )がフリーであり、また、ディスパッチ(D I S P)又はアドバンス・パ イプライン(APL)のマイクロ命令がコード化された何れのマイクロサイクル においても、マイクロコードはEOP (イネーブル・オペランド・ブリフェッ チ)コマンドをコード化する。Fステージにおける命令がIURAM46aのビ ット〈07〉をオンにし、EOPがマイクロ・ワードにコード化されたならば、 EOPサイクルが発生する。
EOPサイクルの間、EAF104の仮想アドレスはVABUS124に与えら れ、VATU50のMAINTB126によって物理アドレスに変換され、DC 30へのデータ・アクセスが行われ、EU36による使用のためにDC30の出 力がオペランド・ブリフェッチ・バッファ(OPB)156 (図3D)にロー ドされる。物理アドレスはまた、VATU50内に含まれる物理アドレス・レジ スタPAR250bにロードされる。
DC30をプローブ(probe)するための物理アドレスの選択は、マルチプ レクサ50cによってなされ、このマルチプレクサはPAR250b又はPAR l 50a (図30)の間で選択する。
EOPサイクルの間に、もし、アドレス変換フォールト又はプロテクション・バ イオレーション又はDC30ミス又は他の何れかの5IU24タイプ例外に遭遇 したら、0PB156はロードされず、0P8156の読み取りがEU36によ って試みられたとき及び試みられたならば、その状態は適当に処理される。DI SP又はAPLサイクルにおいて、EAF104はVAR2112にロードされ 、かつ物理アドレスがPAR250b (図3D)にロードさるとともに、MA INTB126におていプローブされる。
サイクル6の間、IAE56は、IRE96に記憶されたマクロ命令のアドレス を含む。このステージでは、マイクロコードはEU36及び/又は数学ユニット 38における命令の実行を完了する。
この点で、即ち、マクロ命令の実行の第1のサイクルで、マシンの状態は以下の ようである。
IAE56 現在実行しているマクロ命令のアドレスIRE96 現在実行して いるマクロ命令VAR2112オペランド2 (OF2)の仮想アドレス、又は 記憶装置から記憶装置(S S)マクロ命令の場合はOFPAR250b OF 2の物理アドレス、又はSSマクロ命令の場はOPI OPB 156 マクロ命令OP2のデータ、又はSSマクロ命令の場はOPI  (EOPサイクルが実行されていたと仮定する) パイプラインが、DISP(ディスバッチ)マイクロ命令が遭遇したときはいつ も、進めるために作られる。パイプラインはまた、以下の2つの他のイベントに よって進められる。
1、 進行(advance)パイプライン(APL)マイクロ命令。このマイ クロ命令は、C3U32に記憶されたMIA (マイクロ命令アドレス)を変更 しないことを除き、DISPと同じように機能する。
2. IRF94が有効でない。フェッチ・パイプライン・ステージが有効でな いならば(v=0)、パイプラインはIRF94を有効にすることを試みるよう に各SI CLOCKサイクルに進む。パイプラインは、マイクロコードが5E LF−FILL (自己充填)モードの動作をイネーブルにしていたならば、F ステージまでのみ進む。この自動進行は、DISP又はAPLコマンドによって 呼ばれたときに、実行のための命令をレディにする試みにおいて行われる。
DISP又はAPLがマイクロコード化されたとき、パイプラインは無条件に進 行する。
一般に、ブリフェッチは、マイクロ命令をそれらが実際に実行される前にIC2 8からIRQ−IR3レジスタに持っていき、従って、それらは、必要とされる ときに直ちに使用可能である。ブリフェッチはまた、BHT42のBHT MA RK RAM 42bから分岐マーク(Branch Mark) ・ビットを 持って(る。
分岐マーク・ビットは、関連するブリフェッチされたマクロ命令が、取られると 予測された分岐であるかどうかを指示(indicate)する。
物理命令アドレス・バス(PIABUS)90は、IC28とBHT42RAM との両方へのアドレス・ソースである。アドレスされた後、IC28は、ダブル ワード(64ビツト)のデータをICACHEバス134 (ICACHE<Q O:63>)に与え、BHT42、特定的にはBHT MARK RAM42b は、BMARKバス158を通じIQにBHTヒツト/ミス指示(hit/+* iss 1ndication)を与える。このデータは使用可能なレジスタI RQ、IRI、IR2及びIR3にロードされる。PIABUS90は、マルチ プレクサ154によって選択される3つの可能なソースを有する。
PIABUSソース イベント PIAR160通常のブリフェッチ動作PIABUS162経由のPARコード 化されたLP IAR/FETCH又はBHT制御コマンド、又は TARIRO148パイプライン転送(redirection)を示す、IR O80(IROMARK) における分岐マークビット 要求されたデータがIC28において発見されない場合、又は要求されたデータ がブリフェッチの間にページの境界をまたぐ場合、IQはロードされず且つドラ イ(dry)で走ることを可能とされる。MU16からデータを持ってくる試み はなされない。
ブリフェッチの間、IQは、それが、2つの条件を基にIC28のデータを要求 するかどうかを決定する。第1の条件は、待ち行列のハーフワード(IRQ−I R3)の各々の現在の状態である。第2の条件は、サイクルの完了で期待される 各ハーフワードの状態は何か、である。サイクルの終わりに、バッファが少なく とも1つの空のハーフワード(IR)レジスタ(無効データ)を持つであろうこ とが決定されたならば、命令待ち行列(Instruction Queue) は、IC28からIRQ−IR3レジスタの1つ又はそれ以上のものを満たす。
命令待ち行列が、IC28のデータの現在のダブルワードで終了されることを決 定し、且つ次のダブルワードからデータを要求するとき、PIABUS90から PIAR160のロードが、マルチプレクサ154、+1ダブルワード・アップ (adder) 162及びマルチプレクサ164を経由して達成される。
ハーフワード細分化(granularitいをもってICACHEバス134 からデータが抽出される点において、IC28のデータのダブルワードのどの部 分がまだ使用のために利用可能であるかを識別するために1つの方法が要求され る。例として、10のレジスタからレジスタ(register−to−reg ister) (RR) (図5A)のストリングのマクロ命令(16ビツト命 令)が、ダブルワードの境界から始まり、且つIQが空である、1つのケースが 考えられる。この例のCYOLE(サイクル)指定機能(desig口ator )は図4に示すサイクルに対応しない。
サイクル1:第1のブリフェッチは第1の4つのRR命令をIRQ−3に持って 行き、PIAR160は次のダブルワードに進み、よってIC28内のRRナン バー5.6.7及び8を指す。
サイクル2:RRナンバー1はIRO80からIRG92に進み、RRナンバー 2.3及び4はマルチプレクサ88bを経由してIRQ−IR2に進む。プリフ ェッチ装置は、lR386がこのサイクルの終わりで使用可能であることを検出 し、関連のマルチプレクサ88aを経由してRRナンバー5をIR3に供給する 。
サイクル3:RRlは、IRG92からtRF94に進み、RR2はIRG92 に移動し、RR3,4,5はIRO〜IR2に移動する。もう一度、ブリフェッ チ装置が、IR3がこのサイクルの終点までに利用可能になり、RR6をIR3 に供給することを決定する。IR3のこのロードを達成するためには、プリフェ ッチ装置は、そのIC28の半ワードが現在要求されていて、その半ワードが既 に用いられているレコードを有していなければならない。たとえば、RR5は、 倍ワードのバウンダリであり、既に用いられているが、要求されるRR6は次の 半ワードの位置にある。
サイクルn:この一連の事象は、ブリフェッチ装置がIC28のデータを取り出 す際に連続し、プリフェッチ装置が倍ワードで終わる場合にだけPIAR160 を更新する。
IC28の倍ワードのレコードを維持するために、IU40は、命令キャッシュ 半ワード・ポインタ(ICACHW PTR<O:1>)166を含む。この2 ビツトのポインタは、その名称からも明らかなように、倍ワードのどの半ワード が次にIRO〜IR3レジスタにIC28から運ばれるかを示す。このポインタ は、各サイクルごとに更新され、データがIC28から除去されない場合には、 サイクルにおいて不変のままでそれ自身に戻される。
ICACHW PRT166は、PIARをロード(LPIAR)というコる) ことに起因してアクティブである場合には常に、PIABUS<29・30〉上 の値を初期化する。この後者の条件は、パイプラインが転送され、IC28のア クセスがTARIRO148を介してなされたことを示している。LPIARの マイクロコード・コマンドは、PABUS168を介して、PAR2(50b) からPIAR160をロードし、IC28がIPU26プリフエツチをアドレス 指定し再度イネーブルする際に。PAR2(50b)をPIABUS90へ、マ ルチプレクサ154を介して供給する。
更に、PIAR160に関連するのは、PIARPGX信号であり、これは、I U40からC3U32に供給され、アクティブな場合には、PIAR160が、 ページ・バウンダリを越える際に増加することを示す。
もう1つの重要な信号は、BHT REDIRECTである。この信号によって 、パイプライン・ブリフェッチ装置が、新たな命令アドレス・ストリームに転送 される。この信号は、分岐マークがIRQに到着した際(IROMARK)及び 他方のIRレジスタ(たとえばIRI〜3)にすべての分岐命令が含まれる場合 には、1サイクルに対してアサートされる。BHT REDIRECTがアクテ ィブな場合には、TARIRO148は、マルチプレクサ154を介して、1サ イクルについて、PIABUS90に駆動される。サイクルの終点において、P IAR160は、加算器162及びマルチプレクサ160を介して、PIABU S90プラス1倍ワードでロードされ、よって、分岐ターゲット・アドレスに従 う次の命令に向かう。
それぞれのパイプライン段は、関連する有効ビットを有している。それぞれの有 効ビットは、対応するパイプライン段の有効性(validity)を指示する 。有効ビットは、次のように指定される。
ビット 結合(association)IR3QVALID IR386 IR2QVALID IR284 IRI QVALID IRI 82 IROQVALID IRO80 IRG QVALID IRG 92 IRF QVALID IRF 94 IRE QVA、LID IRE 96有効ビツトは、先行する段からの有効デ ータが前方に伝わる場合には次の段の中に設定され、有効データがIC28から 受け取られる場合には常にIRO〜3のケースに設定される。後者のケースでは 、IC28がデータを供給できない場合には、IC28のミス又は同様の事象に 起因して、これはIRQ〜3において始まる。IRO〜3は、無効としてマーク され、この無効はIRG92、IRF94、IRE96を通って伝わる。
IRE96は、EUOUTバスから、2つの連続するワード・ロードによって、 マルチプレクサ202を介して、論理204の制御の下に(ロードIREハイ及 びロードIREロー)、直接にもロードされ得ることに注意したい。
命令不可能(instruction not ready = I NR)は 、パイプラインが、最小において、F段に有効命令を有しておらず、DISPが マイクロコードでコード化されている条件である。
INR条件が発生する理由は以下のとおりである。
1、IC28にミスが生じ、命令データがMU16からフェッチされなければな らない。
2、DISPのストリングが実行されていて、パイプラインがすべてのサイクル を進めることを要求し、しかし、命令がIC28エントリ(倍ワード)をクロス する。結果的に、これは、IRQ−IR3に対する2つのサイクルが命令を受け 取ることを要求する。これは、「バブル」をパイプライン内に置く、すなわち、 1つのパイプライン段は無効であるが、しかし、周囲の段は有効である。
3、 F又はE段は実効アドレス計算のためにGによって用いられるレジスタに 書き込みをしていたので、G段は保持される。この条件は、コンパレータ170 (図3C)によるHOLDG信号の発生によって指示される。この条件によって も、「バブル」をパイプライン内に置くという効果が生じる。
INRを与えるために、3つの異なるディスパッチ例外事項 (excepti on)が用いられて、マイクロコードが、各タイプの例外事項を一意的に識別し て扱うことを可能にさせる。これらのディスパッチ例外事項は、以下のとおりで ある。
INRPX−INRベージ・クロス:マイクロコードが新たなページ・アドレス を変換し、この新たに変換されたページ・アドレスによって、PIAR160を 再度ロードする。
INRPIPE−INRバイブライン:パイプラインの中に有効命令が存在しな い場合について、フェッチ・メモリ動作(MOP)がコード化されMU16から データを検索する。
INRFTCH−INRフェッチ:F段は無効であるが、G及び(又は)IRO 〜IR3は有効である(「バブル」ケース)。非動作(no operatio n= N OP)がコード化され、パイプラインがF段を自己で満たす(セルフ ・フィル)ことを可能にする。次に、EOP又はDISPが実行され、FをEに 移動させる。
INRディスパッチ例外事項は、作動不可能な (not ready)命令が まさに実行される、すなわちDISP(又はJOP)コマンドが実行されるまで 生じない。すなわち、IAE56は、作動不可能な命令の命令アドレスを含み、 PIAR160は、INRがIC28のミスに起因する場合には、作動不可能な マイクロ命令の倍ワードを向いている。INARPXについては、IRO〜IR 2は何も含まないか、又は、作動不可能なマイクロ命令の一部を含み得る。
仮想実行オペランド・アドレスを発生する際のEAU44の動作を更に説明する ために、図5A〜図5Kを参照して、多数の半ワード(図5A)、ワード(図5 B〜図5I)、1と2分の1ワード(図51)、倍ワード(図5K)のマイクロ 命令を示す。図5A〜図5Kに示されたマイクロ命令フォーマットにおいては、 X及びBフィールドは、それぞれがアドレス・インデックスとベース情報とを含 むRF C0PY60アドレスである。Dフィールドはアドレス変位であり、又 は、プログラム・カウンタ(PC50b)の相対命令に対するアドレス変位であ る16ビツト又は20ビツトのしフィールドである。SS及びSSIフォーマッ トにおけるより短い4ビツト及び8ビツトのしフィールドは、オペランド長のフ ィールドであり、実効アドレス計算には用いられない。
レジスタからレジスタ(RR):図5A命令が、分岐ヒストリ・テーブル42を 用いる分岐タイプである場合には、R2が加算器78の出力において供給され、 それ以外の場合にはEA計算は行われない。
レジスタからレジスタ(相対)(RL):図5BRLタイプの命令は、PC50 b相対命令である。すなわち、オペランド・アドレスは、現に実行されているマ イクロ命令のアドレスを含むプログラム・カウンタに関連して位置している。ア ドレスが加算器78において発生される場合には、マイクロ命令は現には実行し ておらず、しかし、発生パイプライン段の中にある。従って、PC50b相対ア ドレスはIAG52に対して発生される。RLタイプの命令については、加算器 78が、B2をIAG52の内容に加えることによってオペランド2アドレスを 発生する。
レジスタ及びインデックス付記憶装置(RX):図5C,図5DRXタイプの命 令に対しては、加算器78はオペランド2アドレスを、X2を82、B2に加え ることによって発生する。
図5Dに示した修正されたフォーマットを使用するRX命令もある。RX修正タ イプの命令に対しては、加算器78は、X3をB3に加えることによって、オペ ランド3アドレスを発生する。
レジスタ及び記憶装置(R3):図5E、図5FRSタイプの命令に対しては、 加算器78は、B2をB2に加えることによって、オペランド2アドレスを発生 する。図5Fに示した修正されたフォーマットを使用するR3命令もある。修正 されたRSフォーマットに対しては、EA計算は行われない。
レジスタから記憶装置(相対)(RRL):図5GRRL命令は、また、PC5 0bに相対的である。1つのRRL命令は、実効アドレス発生において用いられ るインデックス・フィールドを含む。別のタイプは、第3のオペランド・レジス タに対して、X2フイールドを用いる。両方の場合において、相対変位フィール ド(B2)は、ビット16から31に含まれている。RRLタイプの命令に対し ては、加算器78が、B2をIAG52に加えることによって、オペランド2ア ドレスを発生する。
記憶装置及び即値オペランド(SI):図5H8Iタイプの命令に対しては、加 算器78は、BlをDlに加えることによって、オペランド1アドレスを発生す る。
記憶装置から記憶装置(SS):図5JSSタイプの命令に対しては、EAU4 4は、オペランド1及びオペランド2の2つのオペランド・アドレスを発生しな ければならない。発生パイプライン段の間には、オペランドLEAが自動的に発 生される。オペランド2EAは、マイクロ命令がIRE96に含まれる場合には 、マイクロコード制御の下に発生される。
SSタイプの命令に対しては、加算器78は、B1をDlに加えることによって OPIアドレスを発生する。SSフォーマット命令の最初の2サイクルの間に、 0P2EAが、以下の手順に従って、マイクロコード制御の下に発生される。
ルの終わりでBDR70及びDDR72をロードする(IDR68にはゼロがロ ードされている) 2、マルチプレクサ98を介して、IRE96ビツト(12:31)をRF−C OPY60に与え、この段に対するデータにアクセスし、サイクルの終わりでI DR70、BDR70、DDR72をロードする(よって、IRG92段を復元 する)、■ABUS124=加算器78の出力とし、(VARBUS124から の)VARI (120)をサイクルの終わりで(IRE96段の0P2EA) ロートシ、VABUS124をプローブする(PAR250bはサイクルの終わ りでEAを受け取る)。
記憶装置及び即値オペランド(SSI):図5KSSI命令は、長さが、4半ワ ードである。マイクロコードがSSI命令にディスパッチする場合には、実効ア ドレス成分が自動的に発生されることはない。
マイクロコードは、加算器78を用いて、それがこの直前に述べたように加算器 78を用いてSSフォーマット命令に対する0P2EAを発生するのと同じ態様 で、OPIのEAを発生する。また、IRE96が読み出されて、B2フィール ドを獲得し、EAU44加算器78が用いられて0P2EAを発生する。
まとめると、ブリフェッチされた命令のオペランドに対する実効アドレス(EA )は、当該命令の適切な成分を加えて1つのEAを形成することによって発生段 において生じる。EAは、メモリ内のオペランド・データに向いた仮想アドレス である。たとえば、RXフォーマット命令では、EAは、X2、B2、B2のフ ィールドを加えることから生じる。
しかし、パイプラインがブリフェッチされた命令と共に動作し、また実効アドレ スを予め計算する点において、EU36が、IPU26によってブリフェッチさ れるプロセスにある後続のマイクロ命令に対してEAを計算するのに用いられて いる又は用いられ得る汎用レジスタに書き込みをする可能性が存在する。これは 、実行されている命令(E段)がパイプライン内の(F、G又はIRO〜IR3 段)任意の命令の汎用レジスタに書き込みをしており、更にレジスタがEA計算 に要求されている場合には、重要である。この条件が生じる場合には、パイプラ インは、無効実効アドレス(IEA)を有すると考えられる。
IEAは、任意のパイプライン段において生じることがあり、2つの明瞭な方法 によって、どの段が実行されているかに依存して、扱われる。この方法について 、以下に述べる。
EAU44においては、E及びF段において、命令制御ビットが、G段における 命令制御ビットに対してコンパレータ170を用いてチェックされる。E又はF の命令が、Gによって用いられEAを形成するレジスタに書き込みをしていると 判定された場合には、IU40及びEAU44のG段の全体が、書き込みをして いる命令がE段を離れるすなわち書き込みが完了するまでFには進むことができ ない(HOLDG)。
この第1の方法に関しては、HOLDGが、PLCレジスタ(136,140, 142)を検査し、(a)関連する命令がRF C0PY60に書き込みをする かどうか、(b)この命令がO以外の汎用レジスタに書き込みをするかどうか、 (C)比較されているこの段も有効ビット組を有しているかどうか、を判定する ことによって発生される。
これらの条件のすべてが満たされれば、G段は、E及びFの命令が実行されるま で(すなわち、IRE/F有効がオフ)、保持される。R1に書き込む命令がE 段で実行される場合には、EAU44内の回路は、RF C0PY60への書き 込みを検出し、RP C0PY60を更新する。
上述の第2の方法に関しては、■ROにおける命令が、インデックス又はベース ・ルックアップのために用いているRF C0PY60アドレスへの書き込み0 PY60はバイパスされ、EOUTデータはIDR68及び(又は)BDR70 の中へ、EOUT62及びマルチプレクサ64及び(又は)66を介して、直接 にロードされる。RP C0PY60は、また、通常化じるように書き込まれる 。
次の連続するサイクルがパイプラインを進めるものである場合には、更なるバイ パスが行われる。これは、IDR68又はBDR70が更新され得る前に、そし て、EU36のパイプライン特徴に起因して、IDR68及びBDR70に含ま れるデータがG段のEA計算に要求される点において実行される。この条件が真 である場合には、IDR68及び(又は)BDR70もまたバイパスされて、E OUT62のデータが、マルチプレクサ74.76を介して、加算器78の入力 に直接に提供される。従前のように、RF C0PY60もまた、EOUT62 からの適切なデータを用いて、更新(書き込み)される。
次に、命令待ち行列書き込み障害について説明する。キャッシュ/メモリ書き込 みが、現に命令待ち行列内にある物理アドレスに対して行われ、次のマイクロ命 令が実行される前に、IQは無効化され、リフィルされなければならない。これ によって、この書き込みがすぐに実行されるマイクロ命令を修正し得る点で、I Qは最新のデータだけを含むことが保証される。この発生は、「自己修正モード 」と称されるプログラミング技術の結果である。
EU40は、コンパレータ174を用いて物理アドレス比較を実行し、PABU S168の内容を、PIAR160の内容と、保持された物理命令アドレス・レ ジスタ(PIARR)180と、ターゲット命令レジスタTARIRG176、 TARIRF178のG及びFバイブライン段の内容と、それぞれ比較する。
E段のターゲット命令レジスタ(TARIRE)182は、IRE96における 関連するマイクロ命令は現に実行されている命令であるから、この比較の一部を 形成しない。等しい条件が発見されれば、信号WRT IQ FAULTがアサ ートされる。この信号ラインはC3U32に提供され、そこでは、信号はMOP マイクロ命令フィールドとAND演算される。MOPフィールドが書き込みをコ ードする場合には、次のDISPの際に、WIQFディスパッチ例外事項が生じ る。
マイクロコードがIAレジスタをロードするときは常に、すべての有効パイプラ イン及び分岐マーク・ビットがリセットされる。ブリフェッチ・モードもまたオ フされる。マイクロコードがこれらのレジスタをロードする場合には、IAG5 2、IAF54、IAE56がマルチプレクサ184.186.188それぞれ を介してVARUS124からロードされる。よって、すべてのIAレジスタは 、IAR58だけを例外として、同じVAアドレスによって、空のパイプライン 状態(サイクル1、図4)において、初期化される。
パイプラインがAPL又はDISPマイクロ命令によって進む際には常に、IA F54データが、マルチプレクサ188を介してIAE56の中ヘクロツクされ る。パイプラインがAPL、DISP又はセルフ・フィルを介して進むと、IA F54は、IAG52のデータの中にマルチプレクサ186を介してクロックし 、IAG52は、加算器144及びマルチプレクサ184を通ってIAG52の 出力から発生される増加したアドレスによってロードされる。加算器144は、 IGINC138の制御の下に+2、+4、+6、又は+8を加えて、GからF 段に転送されているマイクロ命令の長さを反映する。
IAG52をロードし得る1つの付加的なソースは、マルチプレクサ102.1 84を通って印加される加算器78のEA小出力ある。このソースは、選択され ると予測された分岐命令に対してだけ用いられることにより、オペランド・ブリ フェッチを、予想される分岐ターゲット仮想アドレスに転送するのに用いられる 。
IAR58は、APL又はDISPがコード化されE段が有効(IRE VAL ID=1)(サイクル7、図4)である場合は常に、IAE56からロードされ る。この保持されたアドレス・レジスタは、マイクロコードによりて用いられて 、必要な場合には、DISP/APLによってパイプラインのE段から外へ進み 、条件付分岐テスト条件が偽となる命令の仮想アドレスを回復(リカノ<−)す る。この回復機構の第1の利用は、用いられているテスト条件が真であるかどう かの判断がなされる前に、パイプラインを進めるRXタイプの命令に対するもの である。テスト条件が後に偽であると判定された場合には、マイクロコードがイ ネーブルされて、IAR58からの次のシーケンシャルな命令のオペランド・ア ドレスを検索する。このケースについては、出力IAR58が、マルチプレクサ 132を介シテ、マルチプレクサ114.122更1:VABUS124に印加 される。
上述の仮想アドレス・レジスタの中で、VAR116、VARI (120)、 VAR2(112)は、パイプラインのE段にすべて存在している。VAR2( 130)は、パイプラインの保持された段に存在する。
これらのVARと、その使用と、ロードに関して、次に更に詳細に説明する。
レジスタ 説明 VAR116汎用であり、マイクロコードによって用いられ、VABUS124 から、DISPSAPL、プローブ、OPEサイクル上にロードされる。
VARI (120) 汎用であり、マイクロコードによって用いられ、VAR l(120)がvABUS124へのソースであり、マイクロコードが任意の増 加又は減少コマンドである場合にVABUS124からロードされる。この条件 に対して、vARl (120)は、適切な増加又は減少が生じる数学ブロック 118を介してVABUS124からロードされる。
VAR2(112) 汎用であり、マイクロコードによって用いられ、VAR2 (112) がVABUS124へのソースであり、マイクロコードが任意の増 加又は減少コマンドである場合にVABUS124からロードされる。この条件 に対して、VAR2(112)は、適切な増加した又は減少した仮想アドレスを 有する数学ブロック118及びマルチプレクサ110を介してVABUS124 からロードされる。
VAR2R(130)保持されたレジスタであり、マイクロコードによって用い られ、必要な場合には、DISP/APLによってパイプラインのE段から外へ 進み、偽であるとあとで判断されるテスト条件を有する命令によって用いられる 仮想オペランドを回復する。
図3Dかられかるように、VATU50は、変換ルックアサイド・バッファとし て構成され、EAU44によって発生された仮想アドレスを、データ・キャッシ ュ30及びメモリ・ユニット16内のデータにアクセスするのに用いられる物理 アドレスに変換するための機構を提供する。VATU50には2つの主な要素が あり、それらは、メイン変換バッファ126と、本発明の1つの特徴に従ったオ ペランド・ブリフェッチ変換バッファ(OTPB)108である。
メイン変換バッファ126は、4にのエントリを含み、各エントリは、ヒツトを 指示するのに必要なタグビットと、ページ・フレーム・ナンバと、有効ビットと 、読み取り書き込み保護レベルと、変更及びプレフィックス・ビットと、複数の 関連したパリティ・ビットである。メイン変換バッファ126は、命令実行パイ プラインのフェッチ段でプローブされ、物理アドレスが得られる。更に、複数の 状態条件が発生される。これらの状態条件は、システム・トラップが、物理アド レスを使用する動作が次に試みられる場合に、生じるようにさせる。
メイン変換バッファ126のロードは、マイクロコード制御の下にある。単一の エントリ、全ユーザのエントリ(モニタされている)、又は、バッファ全体の無 効化が、1つのサイクルで実行される。
オペランド・ブリフェッチ変換バッファ108は、メイン変換バッファ126の 部分集合であり、256°のエントリを含む。各エントリは、ヒツトを指示する 際に必要なタグピットと、物理アドレスを発生するページ・フレーム・ナンバと 、関連するパリティ・ビットとだけを含む。0PTB108は、命令実行パイプ ラインの発生段の後の部分においてプローブされ、フェッチ段の間にデータ・キ ャッシュ30にアクセスするのに用いられる物理アドレスを発生する。0PTB 108におけるヒツト又はミスは、フェッチ段の最後で判断される。これは、メ イン変換バッファ126のプローブと並列に、同じ仮想アドレスを用いて行われ る。
変換バッファに関連する上述したトラップは、次のものを含む。
長アドレス変換(LAT):メイン変換バッファ126内の選択されたエントリ は有効ではない、又は、仮想アドレスに対する要求されるページ・フレーム・ナ ンバがメイン変換バッファ126内に存在しない(ミス)。
短アドレス変換(SAT):オペランド・ブリフェッチ変換バッファ108内の 選択されたエントリは、ソースされる仮想アドレスに対するページ・フレーム・ ナンバを含まない(ミス)が、しかし、ページ・フレーム・ナンバはメイン変換 バッファ126内にあり、有効である。オペランド・ブリフェッチ変換バッファ 108は、メイン変換バッファ126に含まれるページ・フレーム・ナンバでロ ードされる。
本発明の更なる特徴は、各命令ごとに、24ビツト又は31ビツトのアドレス・ サポートを提供する。2つのアドレス・モード(AMODE)制御ビットは、E AU44すなわちAMODEI及びAMODE2に入力される。これらのビット は、C3U32から供給され、当初はオペレーティング・システムによって設定 されてアドレス指定のタイプを特定する。AMODEI及びAMODE2の両方 がオフ(ゼロ)であれば、24ビツトのアドレス指定が強制される。AMODE l及びAMODE2の両方がオン(1)であれば、31ビツトのアドレス指定が 強制される。AMODEのビットが異なる場合には、24ビツト又は31ビツト のアドレス指定が各命令ごとに選択可能である。IUオルタネート・アドレス・ モード(’IUALTAM)と称されるIURAMの46ビツトは、2つのAM ODEビットのどちらがAMODE発生器(AMODE GEN)190によっ て検査されてアドレス制御を決定するかを決定する。IUALTAMが1であれ ば、AMODEIの状態に従って、関連する命令に対して、EAU44がアドレ ス指定を特定する。IUALTAMが0であれば、AMODE2の状態に従って 、関連する命令に対して、EAU44がアドレス指定を特定する。AMODEG EN190の出力は、バッファ論理192.194.196に印加され、EAバ バス06に、更に、必要ならばIAG52、また、EAFlolびVABUS1 26に駆動されるオペランド仮想アドレスを形成するのに用いられるビットの数 を(24又は31)を選択する。
結果的に、EAF104にロードされるデータは、既にAMODE条件付けされ ている。よって、オペランド・ブリフェッチ動作の間には、これ以上のアドレス 条件付は要求されない。異なるパイプライン段からのIUALTAMビットは、 この条件付けに用いられ、たとえば、アドレス発生に対しては、G段(PLCI G136)からのIUALTAMが用いられ、他方で、VAR116,120, 122のマイクロコード・プローブに対しては、E段(PLCIE142)から のIUALTAMが用いられる。
BHT42の動作の詳細な説明を以下に述べる。
BHT42は、4にエントリの、直接マツプ・キャッジx (direct m apped cache) として実現されている。BHT42の主な成分は、 PIABUS90<05:16>によって提供されたタグと共にPIABUS9 0<17:28>によってインデックスされた4KX12ビツトのBHTTAG RAM42cを含む。
出力は、イネーブルするBHT合致信号を形成する合致(MATCH)ラインで ある。BHT42は、また、PIABUS90<17+28>によってインデッ クスされた4Kx30ビツトのBHTTAGETRAM42aを含む。出力は、 30ビツトの分岐ターゲット・アドレスであり、分岐目標(ターゲット)アドレ スのビット<1 : 30>に対応する。BHT42は、また、PIABUS9 0<17+28>によってインデックスされた4に×4ビットのBRANCHM ARKRAM42bを含む。出力は、4マーク・ビットであり、それぞれは、I C28からアクセスされている現在の命令倍ワードの1つの半ワードに関連する 。各マーク・ビットは、I C28の半ワードに対応する。
マーク・ビットがオンである、あるいはアサートされている場合は、IC28に よって出力されている倍ワードが、マークされた半ワードの位置で、選択される ことが予測されている分岐命令を含む。デコーダ42dがPIABUS90<2 9 : 30>をデコードして、分岐命令によってプログラムの実行が分岐ター ゲット・アドレスに送られる場合には、BRANCHMARKRAM42b内に 記憶されたマーク・ビットを発生する。
BHT42に関連するのは、上述しt二30ビットのTARIRQレジスタ15 2である。′丁ARIRQ152は、BHTTAGETRAM42aから供給さ れ、IRE、(82) 、TR2(84) 、又は、TR3(86)のいずれか にお番プる分岐命令のためのターゲット・アドレスを含む。このレジスタは、I RQ (80)が選択されると予測されている分岐命令を含む場合だけ用いられ 得る(TARIRO148は、既に、BHTTARGETアドレスを含む)。
TARIRO148は、BHTTAGETRAM42aから供給され、IRQ、 IRl、TR2、又は、TR3のいずれかにおける分岐命令のためのターゲット ・アドレスを含む。上述のように、TARIRO148の内容は、PIARI6 0の代わりにPIABUS90に、マルチプレクサ154を介して出力されて、 命令ブリフェッチを、含まれている分岐ターゲット・アドレスに転送する。
TARIRG176はTARIRO148から供給され、IRG92の分岐命令 に対するターゲット・アドレスを含む。TARIRF178は、TARIRG1 76から供給され、IRF94内の分岐命令に対するターゲット・アドレスを含 む。TARIRE182は、TARIRF178から供給され、IRE94内の 分岐命令に対するターゲット・アドレスを含む。TARIRE182の内容は、 予測された分岐がIRE96に到達する際に、コンパレータ198を用いて、P ABUS168と比較され、信号BHT PA OKを発生し、ターゲット・ア ドレスが正確であることを示す。すなわち、TARIRE182の出力が用いら れて、既に選択された分岐ターゲット・アドレスがEAU44が計算して現にI RE96にある分岐命令に対応する分岐ターゲット・アドレスに等しいことを確 認する。
分岐テーブル・レジスタ(BTR)200は、PARBUS168から供給され る30ビツトのレジスタである。BTR200は、BHTTAGETRAM42 aに、BHTTARバス146を介して入力される。BTR200は、IRE9 6に到達したよって結果として分岐のターゲット・アドレス(分岐命令がFから E段に移動する際に、自動的にプローブされPAR2(50b)にロードされる 分岐命令のOF2アドレス)を含む分岐命令の第1のマイクロサイクルにおいて ロードされる。
以上で、BHT42に関連する種々の要素を説明したが、次には、BHT42の 動作について述べる。
IPU26のブリフェッチ装置がIQを満たそうどしてPIABUS90を介し てIC28をインデックスするので、同じアドレスが、BHT42をインデック スする。倍ワードのデータがIC28から出力されるので、MARKSMATC H,TARGETもまた、BHT42から出力され得る。
既に述べたように、IC28データは倍ワードの幅であり、それぞれが長さが半 ワードである、4つまでの命令を含み得る。BHT42は、同じP I ABU S90のビットによってアドレス指定されていて、任意の1つの倍ワードの命令 に対する1つのターゲット・アドレスを含む。よって、倍ワードの中に複数の分 岐命令が含まれていても、倍ワードあたりに1分岐命令が予測される。倍ワード が複数の分岐命令を含む場合には、マークされた分岐命令が最も近い時点で遭遇 したものであり、これもまた選択される。
分岐命令は、任意の他の命令と同じように、パイプラインを一度に1段だけ進む 。分岐命令が対応するBHT42エントリを有していない場合には、それは選択 されないと予測され、分岐命令がIAG52からIAF54に移動する場合には 、IAG52は、次のシーケンシャルなアドレスでロードされる。
分岐命令が対応するBHT42エントリを有している場合には、2つのデータ・ アイテムが、パイプラインを通って分岐命令に随伴しなければならない。一方の アイテムは、MARKビットである。上述したように、IRQ〜IR3はそれぞ れが、各IRが有効ビットに対する記憶装置を含むのと同じ態様でMARKビッ トに対する記憶装置を含む。他方のアイテムは、BHTTARGETアドレスで ある。上述したように、ターゲット・アドレスは、TARIRO−TARIRE のレジスタを移動し、対応するIRレジスタに関連させる。既に述べたように、 ターゲット・アドレスがTARIRE182に到達する際には、コンパレータ1 98が、計算されたターゲット・アドレスはPABUS168上に指示されるよ うに予測されるターゲット・アドレスに等しいことを保証する。
システム10が最初にリセットされる際には、BHT42はクリアされる。これ は、単一のマイクロコード・コマンドCLBHTによって達成される。結果的に 、BHT MARKRAM42b内のすべてのMARKビットは、ゼロにされ、 よって、選択される分岐としてマークされる命令はないことを指示する。すべて の命令は、よって、同じ予測状態に初期化される、すなわち、選択されないもの と予測される。分岐命令は、最初に遭遇された際には、それが選択されないなら ば、30ナノ秒で実行され、次のシーケンシャルな命令がディスバッチされる。
分岐命令が選択される場合には、IPU26が次のシーケンシャルな命令に向い ているのでディスパッチは選択され得ない。よつて、先に進む前に、マイクロコ ードは、BHTTAGETRAM42aに、BTR200に記憶された分岐ター ゲット・アドレスをロードし、次に、分岐ターゲット・アドレスにおいてパイプ ラインを再スタートする。マイクロコードは、また、対応するMARKビットを BHT MARKRAM42bにセットし、12PIABUS90タグビツト< 05 : 16>をBHT TAGRAM42cに記憶する。
これは、以下のコマンドによって達成される。すなわち、LBTR,PIARl LABHT、PVAR2R,LIAG、LPIAR/FETCHである。LBT R(BTR200をロード)のコマンドは、マイクロ命令の第1のマイクロサイ クルにおいて実行される。BTR200は、分岐ターゲット・アドレスを含むP ABUS168からロードされる。PIAR(IARをプローブ)のコマンドは 、次のマイクロサイクルにおいて実行されて、分岐命令のアドレスをPAR2( 50b)に記憶する。これは、分岐命令の物理アドレスそのものであり、既にB TR200に記憶されているターゲット・アドレスではないことに注意されたい 。LABHT (アドレスBITをロード)のコマンドは、BHT42をロード する。BHT42へのアドレス及びタグは、PIABUS90から提供され、L ABHTコマンドの間に、マルチプレクサ154を介してPABUS168から 供給される。BHTTARGETRAMは、BTR200から供給される。LA BHTコマンドは、よって、BHTTARGETRAM42a、BHTMARK RAM42b、BHTTAGRAM42cのロードを引き起こす。
PVAR2R(VAR2Rをプローブ)0)コーqンF (VAR2R(130 ) は分岐ターゲット・アドレスを含む)は、仮想分岐ターゲット・アドレスを VABUS124に供給する。次にこれは、LIAG (IAGをロード)のコ マンドによって用いられて、分岐ターゲット・アドレスにおけるIPU26を再 スタートする。VABUS124の値は、また、PAR2(50)にロードされ る物理アドレスを出力するメイン変換バッファ126に供給される。LPIAR (PIARをロード)のコマンドは、次に、分岐ターゲット・アドレスでのIP U26の再スタートを、PABUS168及びマルチプレクサ154を介してP AR2(50b)をPIABUS90に供給し、分岐ターゲット・マイクロ命令 をアドレス指定し、加算器162及びマルチプレクサ164を介してターゲット ・アドレス+1の倍ワードをPIARi60にロードする。FET’CHコマン ドは、命令キャッシュ28がヒツトする場合には、効果をもたない。命令キャッ シュ28がミスする場合には、フェッチ・コマンドによって、5UI24はメイ ン・メモリ16からのデータを検索する。
結果的に、分岐命令が再度遭遇した場合には、選択されると予測される分岐命令 として識別され、パイプライン命令ブリフェッチの転送が生じる。
以上で、好適実施例に即して本発明を説明したが、当業者であれば、形式及び詳 細における変更が本発明の範囲と精神から離れることなくなされ得ることを理解 されよう。
FIG、 2 :7フ;11e FROM Ell ’Jl FIG、 3D h 補正書の翻訳文提出書 (特許法第184条の8) 平成 6年 8月291

Claims (19)

    【特許請求の範囲】
  1. 1.デジタル・データ・プロセッサにおいて用いる装置であって、複数の命令の 中の個別の命令を該命令の実行に先立ってプリフェッチする装置において、複数 の命令物理アドレスの中のシーケンシャルなアドレスを発生する手段と、前記命 令物理アドレスに応答する入力と、対応する命令を提供する出力とを有する命令 キャッシュ手段と、 前記命令キャッシュ手段の前記出力に結合された入力と、それぞれが1つの命令 又は1つの命令の一部分を記憶するのに十分な幅を有する複数のレジスタ手段と を有する命令待ち行列手段と、を備えており、前記命令のいくつかは、関連する ターゲット・アドレスを有する分岐命令であり、前記装置は、更に、 前記命令物理アドレスに応答する入力と、前記命令キャッシュ手段によって出力 される対応する分岐命令が先行して実行される間に前記対応する分岐命令の実行 が結果として次のプログラムの実行が前記対応する分岐命令に関連する前記ター ゲット・アドレスに再度向けられるかどうかに関する指示を提供する出力と、を 有するブランチ・ヒストリ・テーブル手段を含み、前記命令待ち行列手段の前記 レジスタ手段のそれぞれが、更に、前記指示を記憶する手段を含むことを特徴と する装置。
  2. 2.請求の範囲1記載の装置において、直列に結合されそれぞれが可能な最大幅 の命令を記憶するのに十分な幅を有する複数のレジスタ手段から成り、前記命令 待ち行列手段の出力に結合された入力と命令実行手段に結合する出力とを有する 命令パイプライン手段を更に含むことを特徴とする装置。
  3. 3.請求の範囲2記載の装置において、前記命令の中のあるものに関連した1つ 又は複数のオペランドの実効アドレスを発生する手段を更に含み、前記複数の直 列に結合されたレジスタ手段が、 前記命令待ち行列手段の前記出力に結合された入力を有し、前記命令に対する実 効アドレス発生動作の間に前記命令を記憶する第1のレジスタ手段(IRG)と 、 前記IRGレジスタ手段の出力に結合された入力を有し、前記命令に対するオペ ランド・プリフェッチ動作の間に前記命令を記憶する第2のレジスタ手段(IR F)と、 前記IRFレジスタ手段の出力に結合された入力と前記命令実行手段に結合され た出力とを有し、前記命令の前記実行の間に前記命令を記憶する第3のレジスタ 手段(IRE)と、 を含むことを特徴とする装置。
  4. 4.請求の範囲3記載の装置において、前記実効アドレス発生手段が、前記命令 に対する前記実効アドレス発生動作の間に仮想命令アドレスを記憶する第1のレ ジスタ手段(IAG)と、 前記IAGレジスタ手段の出力に結合された入力を有し、前記命令に対するオペ ランド・プリフェッチ動作の間に前記仮想命令アドレスを記憶する第2のレジス タ手段(IAF)と、 前記IAFレジスタ手段の出力に結合された入力を有し、前記命令の前記実行の 間に前記仮想命令アドレスを記憶する第3のレジスタ手段(IAE)と、を含み 、前記実効アドレス発生手段が、更に、前記IAEレジスタ手段の出力に結合さ れた入力を有し、前記命令が該命令の前記実行の間に分岐条件を欠く分岐命令で あるイベントにおいて使用するために前記仮想命令アドレスを保持する第4のレ ジスタ手段(IAR)を含むことを特徴とする装置。
  5. 5.請求の範囲3記載の装置において、前記分岐ヒストリ・テーブル手段は、更 に、前記命令キャッシュ手段によって出力された前記対応する分岐命令に関連す る予測されたターゲット・アドレスを出力するターゲット・アドレス記憶手段を 含み、更に、 前記ターゲット・アドレス記憶手段の出力に結合された入力と、前記ターゲット ・アドレスを提供する前記実効アドレス発生手段に結合された出力とを有し、前 記命令待ち行列手段と共に記憶された分岐命令の前記ターゲット・アドレスを記 憶する第1のレジスタ手段(TARIRO)と、前記TARIROレジスタ手段 の前記出力に結合された入力を有し、前記分岐命令に関連する前記ターゲット・ アドレスに対する前記実効アドレス発生動作の間に前記ターゲット・アドレスを 記憶する第2のレジスタ手段(TARIRG)と、 前記TARIRGレジスタ手段の出力に結合された入力を有し、前記分岐命令に 関連する前記ターゲット・アドレスに対する前記オペランド・プリフェッチ動作 の間に前記ターゲット・アドレスを記憶する第3のレジスタ手段(TARIRF )と、 前記TARIRFレジスタ手段の出力に結合された入力を有し、前記分岐命令の 前記実行の間に前記ターゲット・アドレスを記憶する第4のレジスタ手段(TA RIFE)と、を含んでおり、当該装置が、更に、前記TARIFEレジスタ手 段の出力に結合された第1の入力と、ターゲットアドレス計算手段の出力に結合 された第2の入力とを有し、前記計算されたターゲット・アドレスを前記予測さ れたターゲット・アドレスと比較するコンパレータ手段を含むことを特徴とする 装置。
  6. 6.請求の範囲3記載の装置において、前記命令のあるものが複数の一般レジス タ手段の特定のものをリファレンスし、前記実効アドレス発生手段が、前記複数 の一般レジスタ手段のコピーを記憶する手段と、プリフェッチされた命令に応答 して、あるプリフェッチされた命令に関連して、前記記憶手段の内容の関数とし て、オペランドの前記実効アドレスを計算する手段と、 を含むことを特徴とする装置。
  7. 7.請求の範囲6記載の装置において、前記記憶手段は前記実行手段の出力に結 合された入力を有し前記一般レジスタ手段への情報の記憶に同期して前記一般レ ジスタ手段の前記コピーに情報を記憶し、更に、その実行の間に前記一般レジス タ手段の前記内容を修正する既にプリフェッチされた命令の生起に応答して前記 IRGレジスタ手段内に含まれる前記命令に対する前記実効アドレス計算の生起 を前記既にプリフェッチされた命令の前記実行が前記一般レジスタ手段の前記内 容を修正するまで停止する手段を含むことを特徴とする装置。
  8. 8.請求の範囲6記載の装置において、前記記憶手段は前記実行手段の出力に結 合された入力を有し前記一般レジスタ手段への情報の記憶に同期して前記一般レ ジスタ手段の前記コピーに情報を記憶し、更に、その実行の間に前記記憶手段の 前記内容を修正する既にプリフェッチされた命令の生起に応答して前記記憶手段 をバイパスし前記一般レジスタ手段を修正する前記命令に続いてプリフェッチさ れる命令に関連するオペランドの前記実効アドレスを計算する際に用いるために 前記実行手段から前記情報を受け取る手段を含むことを特徴とする装置。
  9. 9.デジタル・データ・プロセッサにおいて用いる装置であって、複数の命令の 中の個別の命令を該命令の実行に先立ってプリフェッチする装置において、複数 の命令物理アドレスの中のシーケンシャルなアドレスを発生する手段と、前記命 令物理アドレスに応答する入力と、対応する命令を提供する出力とを有する命令 キャッシュ手段と、 前記命令キャッシェ手段の前記出力に結合された入力と、それぞれが1つの命令 又は1つの命令の一部分を記憶するのに十分な幅を有する複数のレジスタ手段と を有する命令待ち行列手段と、 直列に結合されそれぞれが可能な量大幅の命令を記憶するのに十分な幅を有する 複数のレジスタ手段から成り、前記命令待ち行列手段の出力に結合された入力と 命令実行手段に結合する出力とを有する命令パイプライン手段と、前記命令待ち 行列手段の前記出力に結合された入力を有し、命令に応答して該命令に関連する 複数の制御信号を出力する命令制御メモリ手段と、直列に結合された複数のレジ スタ手段から成り、前記制御信号を記憶し、前記対応する命令の進歩に同期し前 記命令パイプライン手段を通って前記制御信号を進める制御信号パイプライン手 段と、 を備えていることを特徴とする装置。
  10. 10.請求の範囲9記載の装置において、前記命令のあるものに関連する1つ又 は複数のオペランドの実効アドレスを発生し、前記記憶された制御ビットの少な くとも1つに応答して各命令に対し第1の数のビットを有する実効アドレス又は 第2の数のビットを有する実効アドレスを発生する手段を更に含むことを特徴と する装置。
  11. 11.請求の範囲10記載の装置において、前記第1の数は24であり、前記第 2の数は31であることを特徴とする装置。
  12. 12.請求の範囲9記載の装置において、前記命令のあるものが複数の一般レジ スタ手段の特定のものをリファレンスし、前記実効アドレス発生手段が、前記複 数の一般レジスタ手段のコピーを記憶する手段と、プリフェッチされた命令に応 答して、前記記憶手段の内容の関数として、また、1つ又は複数の前記記憶され た制御ビットの関数として、プリフェッチされた命令に関連するオペランドの前 記実効アドレスを計算する手段と、を含むことを特徴とする装置。
  13. 13.デジタル・データ・プロセッサにおいて用いる装置であって、複数の命令 の中の個別の命令を該命令の実行に先立ってプリフェッチする装置において、複 数の命令物理アドレスの中のシーケンシャルなアドレスを発生する手段と、前記 命令物理アドレスに応答する入力と、対応する命令を提供する出力とを有する命 令キャッシュ手段と、 前記命令キャッシュ手段の前記出力に結合された入力と、それぞれが1つの命令 又は1つの命令の一部分を記憶するのに十分な幅を有する複数のレジスタ手段と を有する命令待ち行列手段と、 直列に結合されそれぞれが可能な最大幅の命令を記憶するのに十分な幅を有する 複数のレジスタ手段から成り、前記命令待ち行列手段の出力に結合された入力と 命令実行手段に結合する出力とを有する命令パイプライン手段と、を含み、前記 複数の直列に結合されたレジスタ手段が、前記命令待ち行列手段の前記出力に結 合された入力を有し、前記命令に対する実効アドレス発生動作の間に前記命令を 記憶する第1のレジスタ手段(IRG)と、 前記IRGレジスタ手段の出力に結合された入力を有し、前記命令に対するオペ ランド・プリフェッチ動作の間に前記命令を記憶する第2のレジスタ手段(IR F)と、 前記IRFレジスタ手段の出力に結合された入力と前記命令実行手段に結合され た出力とを有し、前記命令の前記実行の間に前記命令を記憶する第3のレジスタ 手段(IRE)と、を含んでおり、 前記命令待ち行列手段の前記レジスタ手段と前記命令パイプライン手段とのそれ ぞれが、前記レジスタ手段の妥当性を指示する手段を含み、当該装置は、更に、 前記命令キャッシュ手段から複数の命令を自動的にプリフェッチして前記IRF レジスタ手段の内部で妥当な命令を提供する手段を含む装置。
  14. 14.デジタル・データ・プロセッサにおいて用いる装置であって、複数の命令 の中の個別の命令を該命令の実行に先立ってプリフェッチする装置において、複 数の命令物理アドレスの中のシーケンシャルなアドレスを発生する手段と、前記 命令物理アドレスに応答する入力と、対応する命令を提供する出力とを有する命 令キャッシュ手段と、 前記命令キャッシュ手段の前記出力に結合された入力と、それぞれが1つの命令 又は1つの命令の一部分を記憶するのに十分な幅を有する複数のレジスタ手段と を有する命令待ち行列手段と、 直列に結合されそれぞれが可能な最大幅の命令を記憶するのに十分な幅を有する 複数のレジスタ手段から成り、前記命令待ち行列手段の出力に結合された入力と 命令実行手段に結合する出力とを有する命令パイプライン手段と、前記命令パイ プライン手段内に記憶された命令に関連する1つ又は複数のオペランドの第1の 仮想実効アドレスを発生し、次に、前記命令に対する第2の仮想実効アドレスを 発生する手段と、 前記仮想実効アドレスに応答して、前記仮想実効アドレスを対応する物理アドレ スに変換する仮想アドレス変換バッファ手段と、前記物理アドレスに応答する入 力と、前記実行手段による使用のために対応するオペランドを提供する出力とを 有するデータ・キャッシュ手段と、を備えており、 前記仮想アドレス変換バッファ手段が、前記第1の仮想実効アドレスに応答する 第1の数のページ・フレーム・エントリを有する第1の変換バッファ手段と、前 記第2の仮想実効アドレスに応答する第2の数のページ・フレーム・エントリを 有する第2の変換バッファ手段とを含むことを特徴とする装置。
  15. 15.請求の範囲14記載の装置において、前記第1の数が前記第2の数よりも 小さいことを特徴とする装置。
  16. 16.デジタル・データ・プロセッサにおいて用いる装置であって、複数の命令 の中の個別の命令を該命令の実行に先立ってプリフェッチする装置において、複 数の命令物理アドレスの中のシーケンシャルなアドレスを発生する手段と、前記 命令物理アドレスに応答する入力と、対応する命令を提供する出力とを有する命 令キャッシュ手段と、 前記命令キャッシュ手段の前記出力に結合された入力と、それぞれが1つの命令 又は1つの命令の一部分を記憶するのに十分な幅を有する複数のレジスタ手段と を有する命令待ち行列手段と、 前記命令待ち行列手段の前記出力に結合された入力を有し、命令に応答して該命 令に関連する複数の制御信号を出力する命令制御メモリ手段と、前記命令のある ものに関連する1つ又は複数のオペランドの実効アドレスを発生し、アドレス指 定モードを特定する複数の入力信号と前記記憶された制御ビットの少なくとも1 つとに応答して、各命令に対し第1の数のビットを有する実効アドレス又は第2 の数のビットを有する実効アドレスを発生する手段と、を更に含むことを特徴と する装置。
  17. 17.請求項16記載の装置において、2つの入力信号があり、少なくとも1つ の記憶された制御ビットが、前記実効アドレス発生手段が前記第1の入力信号の 状態と前記第2の入力信号の状態とのどちらに従って動作するかを特定すること を特徴とする装置。
  18. 18.請求項17記載の装置において、両方の入力信号が同じ論理状態を有する 場合には24ビット又は31ビットどちらかの実効アドレスが常に発生され、前 記2つの入力信号が異なる状態を有する場合には24ビット又は31ビットどち らかの実効アドレスが少なくとも1つの記憶された制御ビットの状態の関数とし て発生されることを特徴とする装置。
  19. 19.請求項16記載の装置において、更に、直列に結合されそれぞれが可能な 量大幅の命令を記憶するのに十分な幅を有する複数のレジスタ手段から成り、前 記命令待ち行列手段の出力に結合された入力と命令実行手段に結合する出力とを 有する命令パイプライン手段と、直列に結合された複数のレジスタ手段から成り 、前記制御信号を記憶し、前記対応する命令の進歩に同期し前記命令パイプライ ン手段を通って前記制御信号を進める制御信号パイプライン手段と、 を含むことを特徴とする装置。
JP51479293A 1992-02-27 1993-08-13 仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユニットとを有するcpu Expired - Lifetime JP3423310B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US84386892A 1992-02-27 1992-02-27
US843,868 1992-02-27
PCT/US1992/006813 WO1993017384A1 (en) 1992-02-27 1992-08-13 Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability

Publications (2)

Publication Number Publication Date
JPH07504520A true JPH07504520A (ja) 1995-05-18
JP3423310B2 JP3423310B2 (ja) 2003-07-07

Family

ID=25291194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51479293A Expired - Lifetime JP3423310B2 (ja) 1992-02-27 1993-08-13 仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユニットとを有するcpu

Country Status (7)

Country Link
US (1) US5404467A (ja)
EP (1) EP0628184B1 (ja)
JP (1) JP3423310B2 (ja)
AU (1) AU665368B2 (ja)
CA (1) CA2124333A1 (ja)
DE (1) DE69227465T2 (ja)
WO (1) WO1993017384A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680565A (en) * 1993-12-30 1997-10-21 Intel Corporation Method and apparatus for performing page table walks in a microprocessor capable of processing speculative instructions
US5721857A (en) * 1993-12-30 1998-02-24 Intel Corporation Method and apparatus for saving the effective address of floating point memory operations in an out-of-order microprocessor
TW253946B (en) * 1994-02-04 1995-08-11 Ibm Data processor with branch prediction and method of operation
US5515522A (en) * 1994-02-24 1996-05-07 Hewlett-Packard Company Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache
US5652859A (en) * 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5701448A (en) * 1995-12-15 1997-12-23 Cyrix Corporation Detecting segment limit violations for branch target when the branch unit does not supply the linear address
JP3683968B2 (ja) * 1996-02-09 2005-08-17 富士通株式会社 情報処理装置
US5794024A (en) * 1996-03-25 1998-08-11 International Business Machines Corporation Method and system for dynamically recovering a register-address-table upon occurrence of an interrupt or branch misprediction
US5822577A (en) * 1996-05-01 1998-10-13 International Business Machines Corporation Context oriented branch history table
US5893930A (en) * 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
FR2757306B1 (fr) * 1996-12-17 1999-01-15 Sgs Thomson Microelectronics Procede et dispositif de lecture avec prediction d'une memoire
US5822576A (en) * 1997-03-26 1998-10-13 International Business Machines Corporation Branch history table with branch pattern field
TW405090B (en) * 1997-04-04 2000-09-11 Ibm Predictive cache loading by program address discontinuity history
US6490658B1 (en) * 1997-06-23 2002-12-03 Sun Microsystems, Inc. Data prefetch technique using prefetch cache, micro-TLB, and history file
US6175898B1 (en) * 1997-06-23 2001-01-16 Sun Microsystems, Inc. Method for prefetching data using a micro-TLB
US6226763B1 (en) * 1998-07-29 2001-05-01 Intel Corporation Method and apparatus for performing cache accesses
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6275918B1 (en) 1999-03-16 2001-08-14 International Business Machines Corporation Obtaining load target operand pre-fetch address from history table information upon incremented number of access indicator threshold
US7085915B1 (en) 2000-02-29 2006-08-01 International Business Machines Corporation Programmable prefetching of instructions for a processor executing a non-procedural program
JP3482185B2 (ja) * 2000-12-11 2003-12-22 松下電器産業株式会社 コンピュータ装置
US7165169B2 (en) 2001-05-04 2007-01-16 Ip-First, Llc Speculative branch target address cache with selective override by secondary predictor based on branch instruction type
US6886093B2 (en) * 2001-05-04 2005-04-26 Ip-First, Llc Speculative hybrid branch direction predictor
US7134005B2 (en) * 2001-05-04 2006-11-07 Ip-First, Llc Microprocessor that detects erroneous speculative prediction of branch instruction opcode byte
US7200740B2 (en) * 2001-05-04 2007-04-03 Ip-First, Llc Apparatus and method for speculatively performing a return instruction in a microprocessor
US6895498B2 (en) * 2001-05-04 2005-05-17 Ip-First, Llc Apparatus and method for target address replacement in speculative branch target address cache
US20020194461A1 (en) * 2001-05-04 2002-12-19 Ip First Llc Speculative branch target address cache
US7707397B2 (en) * 2001-05-04 2010-04-27 Via Technologies, Inc. Variable group associativity branch target address cache delivering multiple target addresses per cache line
US7165168B2 (en) * 2003-01-14 2007-01-16 Ip-First, Llc Microprocessor with branch target address cache update queue
US7234045B2 (en) * 2001-07-03 2007-06-19 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US7162619B2 (en) * 2001-07-03 2007-01-09 Ip-First, Llc Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US7203824B2 (en) * 2001-07-03 2007-04-10 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US6823444B1 (en) * 2001-07-03 2004-11-23 Ip-First, Llc Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US6877083B2 (en) 2001-10-16 2005-04-05 International Business Machines Corporation Address mapping mechanism for behavioral memory enablement within a data processing system
US6675279B2 (en) * 2001-10-16 2004-01-06 International Business Machines Corporation Behavioral memory enabled fetch prediction mechanism within a data processing system
US6792521B2 (en) 2001-10-16 2004-09-14 International Business Machines Corporation Behavioral memory mechanism for a data processing system
US7159097B2 (en) * 2002-04-26 2007-01-02 Ip-First, Llc Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
JP3798998B2 (ja) * 2002-06-28 2006-07-19 富士通株式会社 分岐予測装置および分岐予測方法
US7185186B2 (en) * 2003-01-14 2007-02-27 Ip-First, Llc Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US7152154B2 (en) * 2003-01-16 2006-12-19 Ip-First, Llc. Apparatus and method for invalidation of redundant branch target address cache entries
US7143269B2 (en) * 2003-01-14 2006-11-28 Ip-First, Llc Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7178010B2 (en) * 2003-01-16 2007-02-13 Ip-First, Llc Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US7237098B2 (en) * 2003-09-08 2007-06-26 Ip-First, Llc Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3559183A (en) * 1968-02-29 1971-01-26 Ibm Instruction sequence control
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
US4477872A (en) * 1982-01-15 1984-10-16 International Business Machines Corporation Decode history table for conditional branch instructions
EP0109655B1 (en) * 1982-11-17 1991-07-24 Nec Corporation Instruction prefetching device with prediction of a branch destination address
DE3479356D1 (en) * 1983-12-23 1989-09-14 Hitachi Ltd A data processor with control of the significant bit lenghts of general purpose registers
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US4679141A (en) * 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table
US4763245A (en) * 1985-10-30 1988-08-09 International Business Machines Corporation Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table
WO1987005417A1 (en) * 1986-02-28 1987-09-11 Nec Corporation Instruction prefetch control apparatus
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
US4868740A (en) * 1986-06-04 1989-09-19 Hitachi, Ltd. System for processing data with multiple virtual address and data word lengths
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US4893233A (en) * 1988-04-18 1990-01-09 Motorola, Inc. Method and apparatus for dynamically controlling each stage of a multi-stage pipelined data unit
JP2722523B2 (ja) * 1988-09-21 1998-03-04 日本電気株式会社 命令先取り装置
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag

Also Published As

Publication number Publication date
EP0628184B1 (en) 1998-10-28
EP0628184A1 (en) 1994-12-14
AU665368B2 (en) 1996-01-04
AU2472392A (en) 1993-09-13
US5404467A (en) 1995-04-04
JP3423310B2 (ja) 2003-07-07
WO1993017384A1 (en) 1993-09-02
CA2124333A1 (en) 1993-09-02
DE69227465D1 (de) 1998-12-03
DE69227465T2 (de) 1999-06-10

Similar Documents

Publication Publication Date Title
JPH07504520A (ja) 仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユニットとを有するcpu
US5113515A (en) Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
KR880002660B1 (ko) 중앙 처리장치
EP0381470B1 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
JP3542021B2 (ja) セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置
JP3907809B2 (ja) 複合分岐予測およびキャッシュ先取りをするマイクロプロセッサ
JP3588755B2 (ja) コンピュータシステム
EP0381447B1 (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
EP0380859A2 (en) Source list, pointer queues and result queues
US5930832A (en) Apparatus to guarantee TLB inclusion for store operations
WO1995016954A1 (fr) Circuit de traitement d'instructions dans un systeme informatique
US8171240B1 (en) Misalignment predictor
JP2003515214A (ja) 計算を狭いオペランドで実施するための方法と装置
KR19990072271A (ko) 고성능의추론적인오정렬로드연산
JP3848161B2 (ja) アドレス変換履歴テーブルを用いたメモリアクセス装置及び方法
JPS60225262A (ja) 2重キヤツシユメモリを有するパイプラインプロセツサ
JP3717524B2 (ja) ストアおよびロードミス命令を完了するための複数のポインタを備えるロード/ストアユニット
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
IE901517A1 (en) Virtual instruction cache refill algorithm
EP0912930A1 (en) A functional unit with a pointer for mispredicted branch resolution, and a superscalar microprocessor employing the same
JPH0769809B2 (ja) データ処理装置
IE901525A1 (en) Processing of memory access exceptions with pre-fetched¹instructions within the instruction pipeline of a memory¹system based digital computer

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100425

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 10