JPH0736155B2 - 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置 - Google Patents

高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置

Info

Publication number
JPH0736155B2
JPH0736155B2 JP1188709A JP18870989A JPH0736155B2 JP H0736155 B2 JPH0736155 B2 JP H0736155B2 JP 1188709 A JP1188709 A JP 1188709A JP 18870989 A JP18870989 A JP 18870989A JP H0736155 B2 JPH0736155 B2 JP H0736155B2
Authority
JP
Japan
Prior art keywords
stack
bus
microinstruction
address
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1188709A
Other languages
English (en)
Other versions
JPH02140830A (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 JPH02140830A publication Critical patent/JPH02140830A/ja
Publication of JPH0736155B2 publication Critical patent/JPH0736155B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/265Microinstruction selection based on results of processing by address selection on input of storage
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はディジタルコンピュータ、更に言えば、CPUの
マイクロ命令メモリのアドレス指定装置および方法に関
する。
(従来の技術) 高性能のマイクロコード化されたパイプライン型CPU
が、Sudhindra N.Mishraによる「The VAX8800Micro-arc
hitecture」,Digital Techhnical Journal,1987年2月
号,20〜33頁に記載されている。この形式のCPUでは、パ
イプライン化されたマイクロ命令を用いて実行動作およ
びメモリ管理動作を制御しており、マシンサイクル毎に
新たなマイクロ命令をアサートして、最小のストール若
しくはノー・オペレイションで最大の性能と実行性が得
られるよう努力がなされている。マシンサイクル毎に新
たなマイクロ命令を実行するというこの目的は、当然の
ことながら、クロック速度が増加したり、マイクロコー
ドが複雑化して多くのCall、Returnタイプのマイクロ命
令が必要となるにつれより困難なものとなる。このよう
なCall、Returnタイプのマイクロ命令では、マイクロア
ドレスがセーブされ回復される。
上記論文に記載されているように、Call実行時のスタッ
ク操作に対するプッシュとそれに次ぐReturn実行時のス
タック操作からのポップとによってマイクロアドレスを
セーブするためスタックがしばしば使用される。しかし
ながら、高度にパイプライン化されたCPUアーキテクチ
ャでは、高速のクロックで実行するため、従来使用され
てきた幾つかのスタック構造によってはCall、Returnマ
イクロ命令を連続的に実施することができない。これ
は、マイクロ命令の解読や、スタックポインタの増分、
減分、スタックの読出し、書込み等に時間を要するため
である。
従って、本発明の主たる目的は、CPU、特に高速パイプ
ライン化CPUにおいて、マイクロ命令をアドレス指定す
るための改良方法を提供することにある。本発明の別の
目的は、高速動作を行うことができる改良されたスタッ
ク・メモリ形態を提供することにある。また別の目的
は、高速CPU若しくはそのようなものにおけるマイクロ
命令実行時に、Call、Returnタイプの命令を実行するた
めの改良方法を提供することにある。また更に別の目的
は、特にマイクロ命令アドレス・スタックにおける待ち
時間を除くことによって、スタックプッシュ、ポップ動
作を実行するための改良方法を提供することにある。
本発明の一実施例によれば、高速パイプライン化CPUに
おけるマイクロ命令のアドレス指定の際に改良されたス
タック・メモリが使用されるため、パイプラインを通し
てマイクロ命令のステッピングに遅延を生じさせること
なく、Call、Return命令は実行される。この改良スタッ
クは、先入れ先出し式メモリである。このメモリは、読
出のためにあるレジスタを指定し且つ書込のために次に
高位のレジスタを指定するよう接続されたポインタを用
いて構成されており、読出および書込は、マイクロサイ
クル毎に、Call若しくはReturnの可能性が解読される前
に行われる。解読されたマイクロ命令がCall若しくはRe
turnであることが明かとなった場合にのみ、読み出され
たデータが使用され、若しくは、書き込まれたデータが
有効と判断されて、増分若しくは減分が実施される。こ
の方法では、スタックを使用しているマイクロ命令が存
在する場合であっても、解読やそれに次ぐ増分あるいは
減分のためになんらの遅延も生じない。
本発明の新規な特徴は特許請求の範囲に記載されている
が、発明そのもの並びに他の特徴および利点は、添付図
面と関連しつつある特別な実施例の詳細な説明を参照す
ることによって最も良く理解されるだろう。
(実施例) 〔CPU〕 第1図を参照すれば明かなように、ここには、本発明の
特徴を使用し得るCPU、即ち中央演算処理装置10が示さ
れている。好ましい実施例では、CPU10は単一の集積回
路として構成されるが、集積回路チップセットであって
もよいし、1つまたはそれ以上の回路板上に実装された
標準の論理回路あるいはゲート・アレイを用いて実施さ
れるものであってもよい。本発明はパイプライン化CPU
のいづれにも有用であるが、ここに掲げた例はVAX命令
セットを実行するものであり、また、本出願人によって
以前に販売されたVAXコンピュータのアーキテクチャに
ほぼ適合するようなものである。図示実施例において、
CPU10は、システム・データ・バス11(例えば、64ビッ
トの双方向バス)、27ビット・システムアドレス・バス
12、システム制御バス13に接続されており、これらのバ
ス11、12、13は、システム・メモリ15に接続されてい
る。システム・メモリ15は詳細には示されていないが、
通常は、キャッシュとキャッシュ・コントローラを包含
する。これらのバスは、種々のI/O機器にアクセスを行
う。
CPU10は、その内部構造として、マシンレベルの命令を
実行用に解読する機能を備えた命令ユニット20(「I−
ボックス」と呼ぶ)と、命令実行のデータ操作部分を実
施する実行ユニット21(「E−ホックス」と呼ぶ)と、
を含む。CPU10は、マイクロコードタイプであって、制
御記憶装置22を使用する。この制御記憶装置22は、おそ
らくは1Kまたは2Kワードのマイクロ命令を含むROM(ま
たはEPROM等)から成るものであり、各ワードは本実施
例では50ビット幅である。制御記憶装置は、マイクロシ
ーケンサ23によってアドレス指定される。このマイクロ
シーケンサは、11ビット・ディスパッチ・バス25によっ
て命令ユニット20から受け取られたエントリポイントア
ドレス若しくはディパッチ・アドレスに基づいて、制御
記憶装置22の11ビット・アドレス入力部24に一連のマイ
クロアドレスを発生する。制御記憶装置22からの出力部
はマイクロ命令バス26(本実施例では50ビット幅)であ
り、バス26のうちの16ビットは、マイクロシーケンサ23
の入力部27に再び接続されて、エントリポイントをたど
るような順序でマイクロ命令のアドレスを与えるととも
に、マイクロ記憶装置アドレス指定の制御を行う。マイ
クロ命令バス26の残りの34ビットは、実行ユニット21お
よびCPU10の他の部分への制御入力28として用いられ
る。
CPU10は、仮想アドレス指定を使用しており、仮想アド
レスを物理アドレスに変換するのにメモリ管理ユニット
30(M−ボックスとも呼ぶ)を用いる。このユニット
は、命令ユニット20のための命令フェッチの調停も行
う。メモリ管理ユニットは、マイクロ命令バスからの34
ビット制御入力28ならびに他の信号によって制御され
る。ユニット30は、出力部32を経て30ビット内部アドレ
ス・バス31に接続されており、また、メモリ管理ユニッ
トからアドレス・レジスタを読み出すために、32ビット
ALU AAバス33によって実行ユニット21に接続されてい
る。メモリ管理ユニット30と実行ユニット間の他の接続
部として、32ビットALU出力バス34と32ビット書込デー
タ・バス35があり、これらのバス33、34、35の機能は実
行ユニット21の内部構造に触れたときに説明する。ユニ
ット30は、メモリ動作とワード長を定めるために実行ユ
ニットからライン36を経て制御ビットを受け取る。ライ
ン36上のこれらの制御ビットは命令ユニット20で発生さ
れるものであり、制御バス38の一部として実行ユニット
21に送られる。メモリ管理ユニット30ならびに実行ユニ
ット21は、マイクロテストと呼ばれる制御信号を生成
し、これらの制御信号は3ビット・バス39を経てマイク
ロシーケンサ23の入力部に送られる。これは、実行ユニ
ット21またはメモリ管理ユニット30内の事象で決定され
るマイクロ命令分岐動作のための条件付データである。
CPU10は、例えば、最も最近使用されたメモリデータを
備えた2Kバイトの高速RAMである一次キャッシュ40
(「P−キャッシュ」とも呼ばれる)を包含する。な
お、メモリデータは命令であってもよいしデータであっ
てもよい。キャッシュ40は、30ビット内部アドレス・バ
ス31に接続され、また、32ビット内部データ・バス41に
接続される。内部データ・バス41は、命令ユニット30に
よってフェッチされた命令を伝送し、また、実行ユニッ
ト21へのあるいは実行ユニット21からのオペランドを伝
送する。
バス・インタフェース・ユニット42は、内部指令バス並
びにクロックや他の制御ビットに基づいて、CPU10の種
々の内部バスとシステム・バス11、12、13間の接続を制
御、若しくは調停する。
命令ストリームに含まれる即時(またはリテラル)オペ
ランドあるいはアドレスは、バス41によって命令ユニッ
ト20にロードされる。これらのオペランドは32ビット・
バス43によってレジスタにロードするため実行ユニット
21に伝送される。
クロックジェネレータ44は、後述するマシンサイクルの
4つの位相、P1、P2、P3、P4を定める4つの位相出力
(phi−1〜phi−4)を生成する。例えば、クロックレ
ートが24MHzの場合は、40nsのマシンサイクルを生成す
る。
〔実行ユニット〕
第2図を参照すれば明かなように、ここには、実行ユニ
ット21が更に詳細に示されている。このユニットは、AA
バス33からの32ビット幅A入力とABバス46からの32ビッ
ト幅B入力とを有する32ビットALU45を含む。ALU45は、
加算、減算、OR等を実施する。これらの操作は、バス28
からの現在使用されているマイクロ命令のフィールドに
よって定められるようなものであり、CPUの命令セット
を指示するのに必要とされる。ALUの出力は、常にリザ
ルト・バス47、従って、書込バス35に送られる。リザル
ト・バス35へのデータ源はALUとバレルシフタ48の2つ
だけである。バレルシフタ48は、命令シフト動作を実施
する64ビットイン・32ビットアウト・シフタ・ユニット
である。バス28を経て送られてきたマイクロ命令のフィ
ールド制御下で、0〜32ビットの右シフトと0〜32ビッ
トの左シフトを実施することができる。リザルト・バス
47上のデータは、バイパスのためにAAバス33若しくはAB
バス46にロードされ、あるいは書込バス35ならびにメモ
リ管理ユニット30に通じるALU出力バス34にロードされ
得る。
書込バス25は、レジスタ・ファイル50に書込を行うこと
ができる。レジスタ・ファイルは、15個の汎用レジスタ
と、18個の一時レジスタと、8個のメモリ・データ・レ
ジスタとを含んだ一組の51個の32ビット・レジスタであ
る。これらのレジスタは、現在使用されているオペラン
ドやアドレスを含み、また、レジスタ・ファイルへの書
込みそこからの読出は、現在のマイクロ命令の制御下で
行われる。レジスタ・ファイルの出力のみが、32ビット
出力部51、52によってAAバス33若しくはABバス46へ送ら
れる。内部データバス41は、ローテータ53を介して、マ
イクロ命令による決定通りに、レジスタファイルのうち
のあるレジスタに書込を行うことができる。内部データ
・バスは、レジスタ・ファイルをパイパスし、入力部54
を経てAAバス、ABバスに直接的に書込を行うことができ
る。これは、内部データ・バスがレジスタ・ファイルに
書き込まれつつあるときや、同じサイクル内でALU入力
としても使用されているときに行われる。
シフト・カウンタ・レジスタ55は、シフタ48のためのシ
フト・カウンタを提供し、サイクルをカウントするため
にも作用する(通常、これは乗算や除算で有用であ
る)。カウンタ55は32ビット・レジスタであり、マイク
ロ命令の制御下で、書込データ・バス35からロードさ
れ、若しくは、AAバス若しくはABバスへロードされ得
る。
内部加算器を含む32ビット・プログラム・カウンタ、即
ち、PC56は、レジスタ・セットの一部でもある。PC56
は、実行中の命令のアドレスを含む。命令(操作コー
ド、オペランド指定子バイト、指定子拡張部分を含む)
が命令ユニット20で解析されると、PC56は更新され、パ
ス38上の命令ユニットからのデルタ−PCビットによって
アドレスを追跡する。プログラム・カウンタの出力は、
書込バス35からもロードされ得る。プログラム・カウン
タ56の出力57は、AAバスに送られ、アドレスは、このAA
バスからALU45を通じて通常はバス34を介してメモリ管
理ユニットに送られる。
ポピュレーション・カウンタと呼ばれるカウンタ回路58
は、その入力59をABバス46から受け取って、AAバス33に
出力60を生成する。この回路は、ABバスにロードされた
2進ワードに設定されているビット数をカウントすると
共に、このビットカウントに等しい二進値を発生するよ
う作用する。ポピュレーション・カウンタ58は、セーブ
・マスク(その各設定ビットが、セーブの必要があるレ
ジスタに対応するような2進ワード)内のビット数をカ
ウントために使用され、この2進値は、手続きCALL、RE
TURN、プッシュ・レジスタ、若しくはポップ・レジスタ
にセーブされなければならないようなレジスタファイル
50若しくはレジスタ・セットからのレジスタ数を決定す
るのに使用される。
プロセッサ状態レジスタ61も実行ユニット21のレジスタ
のセットに含まれる。この状態レジスタは、キャリィ、
オーバーフロー、ゼロ、ネガティブのようなALU状態ビ
ットと共に、割り込み優先レベルや追跡ペンディング等
の他の状態ビットを含む。状態レジスタは、マイクロ命
令の制御下でAAバス33に読出しを行ったり、書込バス35
を介して書込を行うことができる。
定数ジェネレータ62は、出力部63、64を介してAAバスま
たはABバスにロードするための定数を発生する。マイク
ロ命令は、バス28のフィールドに8ビット定数(「マイ
クロ命令リテラル」)を含む。このバイトは、定数ジェ
ネレータ62によって32ビットワード長のいずれかの4バ
イト位置にロードされ、この位置は現在のマイクロ命令
の他の2ビットフィールドによって決定される。このジ
ェネレータはライン38上のデータ長DL制御ビットの値に
応答して1、2、4または8の定数を発生することもで
きる。この定数は処理されるべきオペランド内のバイト
数を表しており、出力部64を介してABバス46にロードさ
れる。定数ジェネレータは符号拡張データのためのシフ
タと共に使用される。
ローテータ53は、実行ユニット21と内部データ・バス41
の間のI/Oインタフェースであり、実行ユニットのレジ
スタやバスにロードされたときにロングワード境界上の
データを位置合わせしたり、実行ユニット21からメモリ
へ向かうデータを意図したバイト位置に再格納するよう
作用する。これらの変換を行うために、アドレスの2つ
の最下位ビットとデータ長(バス38上のDL制御ビット)
がローテータ53によって使用される。
〔マイクロシーケンサ〕
第3図を参照すれば明かなように、ここには、マイクロ
シーケンサ23がより詳しく示されている。このマイクロ
シーケンサは、マシンサイクル毎に制御記憶装置22に11
ビット・アドレスを生成し、次のサイクルの冒頭で、バ
ス26に50ビットのラッチ出力を発生する。そのうちの16
ビットは、バス27によってアドレスと制御のためにマイ
クロシーケンサに戻される。これらの16ビットは、次の
マイクロ命令のためのアドレスを制御情報と共に含んで
いる。第3図は、バス27上の16ビット・データのフォー
マットを示し、ここでは、2タイプのアドレスと制御情
報とがジャンプとブランチになっていることがわかる。
ジャンプは11ビット・ジャンプ・アドレス(ビット0〜
10)と3ビット・マックス制御フィールド(ビット12〜
14)を含んでいるが、ビット15はジャンプに関しては常
に「0」である(ブランチに関しては常に「1」であ
る)。ビット11は、いずれかのタイプのマイクロサブル
ーチン制御用である。ブランチ・フォーマットは、7ビ
ット・オフセット(ビット0〜6)と4ビット・ブラン
チ状態セレクタ・フィールドを含む。
マックス制御フィールドは、第3図のマイクロシーケン
サ20で使用され、多数の入力から1つの出力71を発生さ
せるマルチプレクサ70を制御する。マルチプレクサ70へ
の1つの入力72は、バス27からのジャンプ・アドレス・
フィールド(ビット0〜10)であり、勿論、もう1つは
命令ユニット20からのディスパッチ・アドレス25であ
る。出力26のマイクロ命令がルーチン若しくはマイクロ
フローの最後のものである場合は、「デコーダ・ネクス
ト」出力がアサートされ、I−ボックス20に新たなディ
スパッチを生成させる。「デコーダ・ネクスト」はデコ
ーダに対する信号であって、次の命令を解読のために利
用できることをデコーダに知らせる。
マルチプレクサ70への第3の入力は、マイクロ・スタッ
ク75からの出力74(スタック読出バス)である。マイク
ロ・スタック75はプッシュ・ダウンスタックであり、バ
ス24上に現れている、従って、スタックのために入力書
き込みバス76に現れている、11ビット・アドレスのうち
の8ビットまでを記憶する。スタック・ポインタ77は、
TOS、即ち、スタックの最上部を指示する。このポイン
タは、スタック制御デコーダ79に接続されたときに、バ
ス27上の制御情報のビット11〜15から制御することによ
り、PUSH若しくはPOPスタック操作のために増分若しく
は減分される。CALLが解読された場合は、入力76上の11
ビット・アドレスがスタック75にプッシュされ、RETURN
が解読された場合は、TOSがマルチプレクサ70の入力と
して選択されてポインタ77を減分させることによってス
タックがポップされる。
マイクロアドレス・サイロ80は、マルチプレクサ70へ別
の入力81を与える。このサイロは3つのレジスタを有す
るFIFOメモリであって、アドレス・バス24からの最後に
使用された3つの11ビット・アドレスを入力82を介して
記憶する。このサイロは、ストールやトラップが信号に
よって知らされたとき以外は各マシンサイクルによって
順方向に計時されるような、シフト・レジスタとして構
成されている。ストール等が知らされると、トラップが
終了するまで、即ち、最後の3つのアドレスが回復マイ
クロルーチンへジャンプすることによって使用されると
きまで、サイロ内の3つのアドレスはセーブされ、この
とき、回復マイクロルーチンは、バス27を経たマルチプ
レクサへの適当なコードによってサイロ入力81を使用す
るだろう。
マルチプレクサ70への他の入力は、トラップ制御アドレ
ス・ジェネレータ84からの出力83である。多数の異なる
タイプのトラップ・マイクロルーチン、従って、これら
のマイクロルーチンを始動するためのアドレスを利用す
ることができる。
バス76上のビット15が「1」であるときに指定されるブ
ランチ・アドレスは、マイクロプログラム・カウンタ85
内に組み込まれた3つの部分からなる。11ビット・ブラ
ンチ・アドレスのビット7〜10は、現在のマイクロ命令
(即ち、カウンタ85内に現在既にあるもの)からコピー
され、ビット0,4〜6は、入力72によってマイクロ命令
からコピーされ、ビット1〜3は、入力72上のマイクロ
命令のゲート86を経ての論理ORと3ビット・マイクロテ
スト・バス39の内容である。即ち、「ブランチ」タイプ
のマイクロ命令(マイクロブランチ命令)は、マイクロ
テスト制御ロジック87によってマイクロ命令バス28上で
検出される。マイクロブランチ命令を検出すると、制御
ロジック87は、マイクロテスト・バス39に存在する状態
をORゲートに進め、それと同時に、MUX制御ロジック88
は、マイクロ命令バス27上のマイクロブランチ命令を検
出し、更に、マイクロブランチバス39上の状態と、マル
チプレクサ70への入力として付与されたマイクロブラン
チ命令からの所定ビットのOR操作に基づいて、マイクロ
プログラム・カウンタ85にブランチデスティネーション
アドレスを計算させる。
また、第4図には、マイクロ命令ワードのフォーマッ
ト、特に、制御記憶装置の出力でバス28上に現れる34ビ
ット部分が示されている。Basic、Constant、Shift、Sp
ecialと呼ばれる4つの汎用タイプのマイクロ命令が使
用される。各マイクロ命令に関してビット16〜33は同じ
である。各マイクロ命令は、実行ユニットのAAバス33の
ソースを選択するための6ビット「A」フィールド(ビ
ット6〜21)と、ディスティネーション、即ち、書込バ
ス35が書き込まれる場所、例えばレジスタファイル50の
レジスタの1つのようなもの、を選択するための6ビッ
ト「W」フィールド(ビット28〜33)と、を含む。ビッ
ト27は、プロセッサ状態レジスタ61のための状態コード
制御である。雑フィールド、即ち、ビット22〜26が解読
されて実施すべき特別の動作を決定する。Basic、Shif
t、Specialタイプは、全て、ABバス46、即ち、ALU B
入力上のデータのソースを選択するような「B」フィー
ルド(ビット34〜37)を有する。Shiftタイプは、シフ
タ48で実施するシフト機能とシフト値(ゼロから32ビッ
トまでのビット数)を定めるフィールド(ビット38〜4
6)を有する。Constantタイプのマイクロ命令・フォー
マットは、定数ジェネレータ62を経由してAAバスにロー
ドされるマイクロ命令リテラル動作に関する定数値(ビ
ット34〜41)と、定数位置を定める位置フィールド(ビ
ット42〜43)を含む。ALU45によって実施される機能
(例えば、Add、Substract、AND、Pass等)は、Basicフ
ォーマットのビット44〜48若しくはConstantフォーマッ
トのビット44〜46によって決定される。Basicのビット3
8はデータ・ワード長制御であり、ビット39〜43はメモ
リ・リクエスト機能を定める。
〔命令ユニット〕
第5図に命令ユニット20の内部構造が示されている。命
令は内部データバス41から先取りキュー90へロードされ
る。この先取りキュー90は、4つの32ビットロングワー
ド(4つの4バイト命令とオペランド・ワード)を保持
する一組の高速レジスタとして構成されたFIFOである。
命令は可変長であり、1若しくは2バイトの操作コード
が続く可変数のオペランドと指定子を有する。この命令
はワード境界に整列されることがないため、先取りキュ
ー90は、次の命令若しくはオペランドをパージング及び
解読するのに必要な情報を直ちにアクセスできるように
するような働きを持つ。先取りキューは、1つのマシン
サイクルで2つのロングワードまでシフトすることがで
き、先取りキュー90が満杯でなくしかも他のシステム・
プロセスがデータパスを要求していないときにはいつで
も、先取りキュー90の入力に命令ストリーム・データが
付与される。先取りマルチプレクサ91は、ポインタ92か
ら先取り4ビット・アドレス情報を受け取って、操作コ
ードで始まる次期の6つの有効バイトを表す6つのバイ
トを先取りキュー90から出力部93に生じさせる。操作コ
ードはロングワード境界上に存在しないため、出力93
は、操作コードバイト93aと、指定子バイト93bと、指定
子拡張フィールドの4つのバイト93cを含む。これらの
バイトは、キューのいずれかのバイト位置で開始するよ
うなマルチプレクサ91によってキュー90から選択され
る。これら6つのバイトのうちの2つのバイトは、操作
コード・デコーダと指定子デコーダ95を包含する一組の
デコーダ、即ちPLAに接続される。
出力93a上の操作コード・バイトに基づいて、デコーダ9
4は、幾つかのサクセスタイプビットとデータ長制御ビ
ット(AT/DL制御と呼ばれる)の組を出力部96に発生す
る。この命令に使用する各オペランド毎に、これらのう
ちの一組が対応する。マルチプレクサ97は、この出力96
を受け取って、既定の通りに各オペランドに一つの組を
選択する。マルチプレクサ97の出力は、ラッチ98に保持
されており、実行ユニット21へ送られる制御バス38のAT
/DT部分はここから取得される。
ディスパッチ・マルチプレクサ100は、マイクロシーケ
ンサ23に送られるディスパッチ・アドレスを、命令デコ
ーダ94からの実行ディスパッチ、指定子バイト・デコー
ダ95からの指定子ディスパッチ、若しくはストール・デ
ィスパッチのうちのいずれかに選定する。実行ディスパ
ッチ若しくは指定子ディスパッチを定めるのに充分なバ
イトが先取りキュー90に存在しないときは、常に、スト
ール・ディスパッチが生成される。このストール・ディ
スパッチは、単に、フェィスパッチ・アドレスをマイク
ロシーケンサに送ってマイクロ命令をアドレス指定する
だけである。このマイクロ命令は、I−ボックスへ戻る
ような「デコーダ・ネクスト」リクエストを発行する以
外には何も行わない。この結果、無動作サイクルが導入
されることになり、I−ボックスをPFOで満たすことが
可能となる。このマルチプレクサ100からの11ビット・
アドレス出力は、ディスパッチ・アドレス・ラッチ101
にラッチされるため、サイロ動作のために利用できる。
指定子拡張データのうち、キュー90からの出力93c上の
4つのバイトまではラッチ102に付与され、ここからフ
ォーマッタ103を通過する。フォーマッタ103は、存在す
る可能性のある任意の指定子拡張データを符号拡張し且
つ右寄せする。これら4つのバイトは、その後、別のラ
ッチ104に付与されて、このラッチ104から、このデータ
は32ビットバス43によって実行ユニット21に接続され
る。
また、I−ボックスはラッチ105にデルタPC値を生成す
る。デルタPC値は、E−ボックスPC56が次の操作コード
若しくは指定子を指し示すようにPC56を増加すべき量を
表示するものであって、これは現在処理されつつある操
作コードと指定子におけるバイト数に基礎を置く。ラッ
チ105のデルタPC値はPLAによって変換され、次のマシン
サイクルでE−ボックスがバス38を経てそれを利用する
ことができるようラッチ106にロードされる。更に、I
−ボックスは、ラッチ107に4ビットのRNフィールドを
生成する。このフィールドは、レジスタファイル50の16
個の汎用レジスタのうちの1つを指定するものであり、
指定されたレジスタが、現在の指定子若しくは実行マイ
クロフローに対して使用される。このRNフィールドは、
指定個バイトのレジスタ・フィールドから引き出され
る。更に、現在の指定子フローの結果を記憶するのに使
用するレジスタ・ファイル50のメモリ・データ・レジス
タを指定するため、3ビットのSNフィールドがラッチ10
8に生成される。ラッチ108の値はPLAで変換されて第2
のサイクルでラッチ109にロードされ、第3のサイクル
でバス38を通じてE−ボックスで使用する準備が整う。
〔メモリ管理ユニット〕
メモリ管理ユニット30を第6図に詳細に示す。命令又は
データの読出若しくは書込のための任意のアドレスが32
ビット仮想アドレスバス110に現れる。このアドレスは
翻訳バッファ111で使用され、内部アドレス・バス31に
向かうバス32に現れる物理アドレス、即ち、実際のアド
レスを発生する。仮想アドレスは、実行ユニット21のAL
U45の出力部に発生されて、ALU出力バス34によって仮想
アドレス・バス110に付与されるか、若しくは、3つの
レジスタ、即ち、仮想アドレス・レジスタ114、仮想ア
ドレス・プライム(VAP)レジスタ114、仮想命令バッフ
ァ・アドレス(VIBA)レジスタ115、から出力部112を経
て、バス110にロードされてもよい。これらの3つのレ
ジスタ113、114、115により、実行ユニットの主データ
経路やALUを用いることなく、多くのアドレスを発生す
ることが可能とされる。各レジスタは、マイクロ命令の
W、Aフィールドの制御下で、書込バス35から入力116
を介して書き込んだり、また出力部117とAAバス33を介
して読み出すことができる。VAレジスタ113は、書込動
作のためのアドレスを発生し、また、メモリ・リクエス
ト毎にバス110からの仮想アドレスをラッチする。従っ
て、メモリ管理例外が生じた場合、マイクロ命令は常に
VAレジスタ113の故障アドレスにアクセスすることがで
きる。VAPレジスタ114は常に、VAバス110+4をラッチ
しており、従って、次の順位のロングワードのアドレス
を含んでいることになる。このレジスタは、多数のロン
グワードにアクセスしたり、また、不整合メモリ基準
(つまり、完了するのに第2の基準を必要とするような
メモリ基準)のロングワードをアクセスするため、マイ
クロ命令によって使用される。VIBAレジスタ115は、マ
イクロ命令がプログラム・カウンタ56のフラッシュ、ロ
ードを実施するときはいつでもロードされる。次いで、
VIBAレジスタは、先取りキュー90を満たすため、メモリ
からの命令ストリーム・データのロングワードを先取り
するために使用され、各命令ストリーム・ロングワード
が取り出された後に4だけ増分される。増分器は、レジ
スタ114と115を4だけ増分する機能を持つ。
翻訳バッファ111は、64個の記憶場所を含んだ完全連想
メモリであって、各記憶場所は、最近成功した翻訳のタ
グをこのタグに対するページ・テーブル・エントリと共
に含む。翻訳バッファによってバス110から受け取られ
た各仮想アドレスのページ・アドレス(ビット9〜31)
は、64個のエントリの全ての23ビット・タグと比較さ
れ、それらが整合した場合は、整合したタグに対応する
PTEがバス119(21ビット)に出力される。仮想アドレス
・バス110の下位30個のビットはバス120に現れる。この
バスから、ビット0〜8はライン121を経て内部アドレ
ス・バス32に直接送られて1ページ内のバイト・アドレ
スを構成し、VAバス110からの21個のビット9〜29はバ
ス120を経てマルチプレクサ122へまとめて入力され、翻
訳バッファからの21ビットPTEはバス119を経て他の入力
となる。従って、バス32を経て内部アドレス・バス31に
送られるアドレスの上位21ビット部分は、VAバスから直
接のものであるか、若しくはバッフア11およびPTEを経
て翻訳されたものである。即ち、マイクロ命令制御によ
って内部アドレス・バス31に送られるアドレスは、CVA
バス110からの直接のものであってもよいし、また、翻
訳バッファ111を用いて翻訳されたアドレスであっても
よいものとされる。
VAバス110上のアドレスのページがバッフア111内の64個
のタグの中に存在せず、翻訳アドレスが指定されている
場合は、故障状態が告知される。これがTB故障である。
マイクロシーケンサ23は、あるルーチンに対する開始ド
レスを生成する。このルーチンは、メモリ15、即ちキャ
ッシュに保持されたテーブルのページアドレスをオペレ
ーティングシステムによってルックアップすることを可
能とする。この開始アドレスの生成を達成するために
は、勿論、多数のマイクロ命令サイクルが必要であろ
う。
ユニット30内部のコントローラは、パイプライン(以下
に説明するように)でユニット30の各セグメントについ
て現在主張されているマイクロ命令に応答して、内部指
令バス125上にバス・インタフェース・ユニット42の動
作を定める指令を生成する。
〔一次キャッシュ〕
次に第7図を参照して、ここには一次キャッシュ、即ち
P−キャッシュ40が一層詳しく示してある。このキャッ
シュは、内部アドレス・バス31によってアドレス指定さ
れ且つこのアドレス・バス31から書込まれるような2Kバ
イト高速メモリ130を包含する。メモリ130は64行に配置
されており、各行は、4つのカットワード(64ビット若
しくは8バイト)QW0、QW1、QW2、QW3を、各カットワー
ドに1つずつ設けられた4つの対応するタグTag0、Tag
1、Tag2、Tag3と共に有する。行デコーダ132は、内部ア
ドレス・バス31からのライン133上の6ビット、3〜8
に基づいて、64行のうちの1行を選択する。この行は、
データのための桁デコーダ134とタグのための桁デコー
ダ135にロードされる。ここで、4つのうちの1つを選
ぶ選択は、IAバス31からのライン136上の2つのビット
9〜10に基づいて行われる。こうして、1つのタグ(20
ビット)と1つのカットワード(64ビット若しくは8バ
イト)がP−キャッシュ内のデータ・タグI/Oバス137、
138で選択される。データ・バス137はセンス増幅器139
によって読み出され、また、書込増幅器140によって書
き込まれる。ここで、2つのうちの1つを選ぶ別の選択
が、IAバス31からのライン141上のビット2に基づいて
行われる。こうして、タグヒットが存在する場合には、
32ビッット若しくは4バイトが内部データ・バス41にロ
ードされ、若しくは、ここから伝送される。キャッシュ
・メモリ130内の所定のロケーションから読み出された
タグは、比較器43で、IAバス31からライン144を経てき
た18個のビット11〜28と比較される。全てのビットが同
じであれば、ヒットがライン145に信号によって知らさ
れる。I/O参照に関連するデータはけっしてキャッシュ
されることがないため、ライン149を経てきたIAバス31
のビット29によって参照がI/Oスペースに対してのもの
であることが表示されない場合には、ミス・ロジック14
6は、ライン145からライン147上にP−キャッシュヒッ
ト出力を生成する。キャッシュ130が満たされてしまっ
たときにタグをロードするため、タグI/Oバス138に対し
ても書込増幅器150が設けられている。
〔バス・インタフェース・ユニット〕
第8図を参照して、バス・インターフェイス・ユニット
42は、27ビット・システム・アドレス・バス12を内部ア
ドレス・バス31上の30ビットの物理アドレス・バスに基
づいて駆動する。この差は、バス31上の30ビット・アド
レスはバイト・アドレスであるのに対して、バス12上の
27ビット・アドレスはシステム・データ・バス11のカッ
ドワード(64ビット)幅に対応してカッドワード(8バ
イト)に対して整合されていることから生じる。この変
換を可能とし、また、整合若しくは不整合を問わずに種
々のデータ長を可能とするため、制御バス13は、8つの
可能なバイト位置の各々に対して1ビットを有するよう
な8ビットマスクフィールドを含んでおり、また、バス
インタフェースのコントローラ155は、メモリ管理ユニ
ットで発生され且つライン156によってバスインターフ
ェイスに接続された内部4ビット・マスクに基づいてシ
ステム制御バスに付与するように8ビット・マスクを発
生する。メモリ管理ユニットは、ライン36上のデータ長
DL制御ビットを使用する。制御ビットは、バス38を経て
のI−ボックス20内の操作コードとオペランド指定子の
デコードで発生される。勿論、バス31のアドレスの低位
ビット0〜2は、開始アドレスを規定する。こうして、
32ビット内部データ・バス41と64ビット・システム・デ
ータ・バスの間と、30ビット内部アドレス・バスと27ビ
ット・システム・アドレス・バスの間で、変換がなされ
る。
システム制御バス13は4ビット・バス指令を含む。この
4ビット・バス指令は、バス・インターフェイス・ユニ
ット42のコントローラ155によって駆動され、若しく
は、それによって受け取られる。このバス指令はシステ
ム・バスでどのような動作が行われているか、つまり、
CPU10によるメモリ15からの命令ストリーム・カッドワ
ードの読出し、CPU10によるデータ・ストリーム・カッ
ドワードの読出し、CPU10によるメモリ15への書込み、
等を規定する。この4ビット指令は、制御バス13の別の
ラインであるアドレス・ストロープと一緒に主張され、
全システムを実施するために必要とされ得るReady、Rea
d、DMA Request、Interrupt、Haltに対するラインを含
み、その他、コプロセッサ制御器も含む。
データ、アドレス、バス指令は、インラッチ158および
二重アウトラッチ159によって内外に伝送される。各ラ
ッチは、64ビット・データ・レジスタ160、27ビット・
アドレス・レジスタ161およびバス指令レジスタ162を含
む。こうして、インラッチ158は、1サイクルでバス11
から64ビット・カッドワードを受取り、2サイクルで内
部バス41へ2つの32ビット・ロングワードを伝送するこ
とができる。同様に、各アウトラッチ159は、2サイク
ルで2つの32ビット・ロングワードをロードすることが
でき、それ故、1サイクルで1つの64ビット・カッドワ
ードをシステム・バス11に伝送することができる。2つ
の同形のアウトラッチを設けた理由は、CPU10のメモリ
への書込を高速化することにある。外部バス11、12、13
でのメモリの書込動作には3つのサイクルを要するが、
2つのアウトラッチを用いることにより、第1のアウト
ラッチがシステム・データ・バス11を経てメモリに書込
を行っている間に、第2のアウトラッチはロードを行う
ことができるからである。
メモリ読出・トランザクションは、メモリ管理ユニット
30からの信号に従って内部指令バス125がメモリ読出を
表示したときに、バス・インターフェイス・ユニット42
によって実施される。この信号は、メモリ管理ユニット
が内部アドレスバス31上へ駆動された物理アドレスによ
って指定されたデータを要求しているときに生じる。こ
のアドレスが一次キャッシュ40タグ記憶装置で発見され
た場合、キャッシュ40は内部データ・バス41をこのデー
タで駆動し、問題の受け取り側(I−ボックス20若しく
はE−ボックス21)がデータ・バス41からデータをラッ
チする。一次キャッシュのタグ比較器でタグの比較に失
敗した場合、ライン147上のタグ・ヒット信号のアサー
トは無効とされ、ライン125上の読出指令とバス41上の
物理アドレスがアウトラッチ159にロードされると共
に、システム・バスが次の2、3のサイクルで利用でき
るときにはいつでも、コントローラ155がこの読み出し
要求を引継ぎ、実行する。要求されたデータが受け取ら
れ、インラッチ158にラッチされるまで、M−ボックス3
0から更に指令が送られてくることはない。ユニット42
は、インラッチからバス41上へ、したがって、意図した
目的地、I−ボックス、E−ボックス、P−キャッシュ
へ、データを送る。一例として、一次キャッシュがミス
したためにデータを主メモリ15から取り出さなければな
らない場合には、読み出しトランザクションによって6
つのマシンサイクルが占められ、その間、CPUのパイプ
ラインはストールされる。
メモリ書き込みシーケンスは、M−ボックスによって内
部指令バス125上にアサートされている書き込み指令で
開始され、このとき、M−ボックスは、ライン156上に
内部バイト・マスクも駆動する。キャッシュ40は「ライ
トスルー」方式であるから、全てのメモリ書き込みがキ
ャッシュで「試行される」と共に、主メモリでも実行さ
れる。こうして、書き込み指令が内部指令バス125上に
あるとき、P−キャッシュ40はバス31上のアドレスをそ
のタグ・アレイと比較する。参照がヒットした場合は、
IDバス41上のデータはキャッシュRAM130に書き込まれ、
タグ比較がミスした場合は、データはP−キャッシュに
よって無視される。いずれにしても、IAバス31、IDバス
41、内部指令バス125、およびバイトマスク上のデータ
は、全て、アウトラッチにロードされ、その結果、外部
書き込みシーケンスを主メモリに(使用しているなら
ば、バックアップキャッシュにも)書き込むことができ
る。
〔パイプライン化〕
第1〜第8図のCPU10は高度にパイプライン化されてお
り、命令実行時の事象は多くのマシンサイクルにわたる
ことから、多数の命令部分の実行が互いに重なり合って
いる、つまり、同時に生じている。このCPUは、第9図
に大雑把に示すような5セグメントのパイプラインを使
用しており、ここでは、サイクル1中にセグメントs1で
命令I1がその実行を開始し、サイクル5におけるセグメ
ントの実行へ継続している。命令I2は、命令I1がセグメ
ントs2に存在するときに、サイクル2でセグメントs1の
実行を開始し、同様に、サイクル6におけるセグメント
s5の実行へ継続している。サイクル5で、また、その後
も、5つの異なる命令部分がパイプラインの5つのセグ
メントで並列に実行される。勿論、第9図は、正確に5
つのセグメントで全ての命令が実行されると仮定した理
想的な状況を示しており、ストールも例外も全て存在し
ない。この理想的な場合には、平均実行率はマシンサイ
クル毎に1命令である。
第1〜第8図のCPU10のパイプラインの5つのセグメン
トで生じる実際の事象を、第10図により完全に示してあ
る。第11図の参照にあたって先ず注目すべきは、等しい
長さの4つの位相P1、P2、P3、P4を各マシンサイクルで
発生するために、CPU10がクロック・ジェネレータ44に
よって計時されているということである。これらのクロ
ック位相は、本実施例において、CPU10を構成するのに
使用するCMOS回路を駆動するために用いられる。
第10図のセグメント−1において、命令ユニット20が先
取りキュー90に存する有効な命令とオペランド指定子と
を位相P1中に有する場合、この情報はP2、P3中にデコー
ダ94、95で解読され、この結果、ディスパッチ・マルチ
プレクサ100の出力はP4で利用可能となり、また、ラッ
チ101にディスパッチ・アドレスがロードされる。ラッ
チ102には、命令ストリーム・データの一部である、P4
で解析された指定子拡張部がロードされる。
セグメント−2において、ディスパッチ・アドレスがP1
中にバス25上に送られ、P2、P3中に制御記憶装置22がア
クセスされる。次のサイクルのP1で実行ユニットの制御
要素の第1レベルまでロードする準備を整えるべく、こ
のセグメントのP4中にマイクロ命令で出力部26で利用可
能とされる。また、このセグメント−2において、ラッ
チ102からフォーマッタ103を通じてラッチ104に送られ
る際に指定子拡張部がフォーマットされ、Sn、Rnのよう
なデータが計算およびラッチされ、更に、AT/DL情報が
ラッチされ、この結果、実行ユニット21は、これらのデ
ータおよび制御情報を次のサイクルの開始時にバス38を
介して利用することができる。
パイプラインのセグメント−3において、このセグメン
トはCS0セグメントとも呼ばれるのであるが、実行ユニ
ット21は、種々のレジスタ若しくはバスにアクセスする
と共に、バス28を介してロードされた34ビットCS0ラッ
チ165で利用可能なマイクロ命令のA、B制御フィール
ドに基づいて、操作すべきデータをAAバス33、ABバス46
に配置する。レジスタ・ファイル50、内部データ・バス
41、即時データ・バス43は、プログラム・カウンタ30や
メモリ管理ユニット30のアドレスレジスタ113、114、11
5等を含むレジスタ・セットの残部と同様に、セグメン
トでAAバス、ABバスにロードされるオペランドの全ての
ソースである。これらは全て、このサイクルのP4で読み
出され得るよう設定される。また、実行ユニットは、こ
のセグメントのP1中にバス38上の制御ビットを受ける。
セグメント−4(CS1セグメントとも呼ばれるが)にお
いて、マイクロ命令のALU機能部によって指定された動
作が第4図に見られるようなBASIC若しくはCONSTANTタ
イプの場合には、ALU45で実施され、また、マイクロ命
令がShiftである場合には、マイクロ命令のShift関数や
Shift値フィールドによって指定された動作がシフタ48
で実施される。制御記憶装置22は各サイクル中に新たな
マイクロ命令を生成するため、同じマイクロ命令をセグ
メント−3で使用する場合には、最後のサイクルからの
マイクロ命令を記憶しておく必要がある。この目的で、
制御記憶装置から利用できるマイクロ命令出力がCS0ラ
ッチ165にラッチされると共に、このラッチの出力はセ
グメント−3で実施される動作にも使用され、その後、
実行ユニット21がセグメント−4でそのマイクロ命令を
利用することができるよう、サイクルの終わりに第3図
に示されているような他のCS1ラッチ166中へラッチされ
る。また、このラッチ166の出力は、セグメント−5で
使用するため、セグメント−4の終わり(この命令につ
いての4番目のクロックサイクル)に同様のCS2ラッチ1
67に記憶される。
メモリ管理ユニット30の動作は、実行ユニット21のパイ
プライン・セグメントと並列に発生する。バス28からの
マイクロ命令は、セグメント−3で、第6図に示された
異なるCS0ラッチ168中にラッチされ、次いで、第4図に
示されたマイクロ命令メモリ要求フィールドが必要なと
きに利用できるよう、セグメント−4で別のCS1ラッチ1
69にラッチされる。セグメント−4のマシンサイクルの
P2中、ユニット30はバスを要求しようとする場合にバス
インターフェイス・ユニット42にリクエストを送る。ユ
ニット30は、CS1ラッチ169のマイクロ命令によって決定
されたアドレスソースを、ALU出力バス34、VAレジスタ1
13等の可能なソースの中から決定し、仮想アドレス・バ
ス110はP4中に利用できる所定アドレスを有し、翻訳バ
ッファ111はタグルックアップを形成する。故障若しく
は例外によって遅延が生じていなければ、セグメント−
4の終わりにマイクロ命令がCS1ラッチ169からCS2ラッ
チ170へマルチプレクサ171を通じて伝送される。
セグメント−5で、書き込みバス35がALU45若しくは実
行ユニット21のシフタ48出力によって駆動され、CS2ラ
ッチ167のマイクロ命令のWフィールドによって決定さ
れた目的地に書き込みを行う。可能な目的地として、レ
ジスタファイル50の所定のレジスタやレジスタセットの
他のレジスタ、ローテータ53を経た内部データバス41、
バイパス用のAAバス、ABバス、若しくは、メモリ管理ユ
ニットの仮想アドレス・バス110が含まれる。セグメン
ト−5のP1中にメモリ管理ユニット30内でPTEがバス119
に読み出され、更に、翻訳バッファ11が整合を発見した
場合には、バス32を介して内部アドレスバス31上に読み
出される。第1キャッシュ40の行デコーダは、IAバス31
からP2中にアドレスを受け取って、P2の終わりまでにデ
ータとタグをアクセスし、その後、タグ比較器143がP3
でタグ比較を行う。整合している場合には、読み出しが
実施されているのならばP3の終わりに内部データバス41
上でデータを利用することができ、書き込みであればP4
でキャッシュメモリ130にデータが書き込まれる。タグ
整合が存在しない場合には、ミスがP3でライン147上に
信号によって知らされる。メモリ管理ユニットにおいて
は、翻訳バッファ111がタグ整合を検出しない場合は、
セグメント−5のP2によって例外が検出されると共に、
物理アドレスを発生するためのページ番号を検索するル
ーチンが実施され得るようその例外が信号によって知ら
される。
〔マイクロスタック〕
マイクロスタック75およびそのスタック・ポインタ77
は、マイクロフローCall若しくはReturnを1つのマイク
ロ命令サイクルで実行できるよう、本発明の特徴に従っ
て構成されている。この目的からスタックは独特の形態
とされている。
第12図を参照して、ここには、CPU10若しくは同様のプ
ロセッサで使用する本発明によるスタック75の詳細な図
が示されている。スタックは、多数の同形のレジスタ17
1、この場合には8つのレジスタであるが、を包含し、
各レジスタ171は、本例では、並列に11ビットを含む
が、スタックのレジスタは、CPUのアーキテクチャや他
の実施例でスタックが何のために使用されるかというこ
とに依存して、例えば、16、若しくは32ビットを含む。
レジスタ171に使用されるようなレジスタの各ビット
は、通常はDフリップ・フロップのようなもので構成さ
れている。第3図で説明したように、スタック75の全て
のレジスタ171の全てに2つのバス、即ち、書き込みバ
ス76と読み出しバス74とが接続してある。各バスは11本
(他の実施例では16本、若しくは32本)からなり、各バ
スの各ラインがレジスタ171のそれぞれのビットに接続
してある。各レジスタ171は、読み出し制御入力部172と
書き込み制御入力部173を有し、各レジスタのこれらの
制御部はレジスタの11個のビットまたはステージの全て
に接続してあり、読み出し制御入力部172が作動された
ときはレジスタ171の全てのビットが読み出しバス74に
接続され、同様に、書き込み制御入力部173が作動され
たときはレジスタ171の全てのビットが書き込みバス76
に接続される。読み出し、書き込み制御部172、173は、
スタック・ポインタに接続され、それによって作動され
る。このポインタは、従来回路の多数の同形のシフト・
レジスタ・ステージ176から成る。スタック・ポインタ
は、双方向シフト・カウンタ、若しくはコミュテータで
あって、いずれの時においても「1」に設定されたビッ
トは1つしか有しておらず、他のビットは全て「0」で
ある。スタック・ポインタ77は、制御器79から受け取っ
た増分入力77と減分入力178によって制御される。従っ
て、増分入力177が計時されるか若しくは作動される
と、ポインタ77内の設定ビット(即ち「1」)はある方
向へ1つの位置(1ビット)だけ移動し、減分入力178
が計時されるか若しくは作動されると、ポインタ77のビ
ットは他の方向へ1つの位置だけ移動する。本発明によ
れば、スタック・ポインタ77の各ビット176からの出力1
80は、スタック75の1つのレジスタ171の読み出し入力1
72に接続され、次の隣接するレジスタ171の書き込み入
力にも接続される。プロセッサの各マシンサイクル中、
スタック75は、無条件で読み出しバス74によって読み出
される。即ち、スタックポインタ77は、スタック75のた
めに出力180を介して読み出し制御入力172を作動させて
おり、このスタック75のある1つのレジスタ171の内容
は無条件で読み出しバス74にロードされる。また、読み
出しデータが読み出しバス74にロードされると同時に、
次のレジスタ171が無条件で書き込みバスに書き込ま
れ、若しくは、そこから読み出される。これは、あるレ
ジスタ171の読み出し制御ユニット172を作動させている
ポインタ77の同じステージ176が、同時に次のレジスタ1
71の書き込み制御部173を作動させるためである。
通常のスタック操作は、PushとPoPである。Pushは、現
在のデータ・ソースをスタックの頂部に書き込んで、先
行する全てのデータを1位置だけ「押し下げる」という
ことから成り、通常の構成において、これは、次に利用
できるレジスタを指し示すようスタックポインタを増分
し、この新たなレジスタに書き込みを行うことを意味す
る。論理的には、PoPは、スタック頂部の内容を読み出
してより古い全てのデータを1位置だけ上に移動させる
ことから成り、通常、これは、スタックポインタが指し
示す位置を読み出してそのポインタを減分することを意
味する。第3図および第12図の実施例において、スタッ
クは常にマシンサイクル毎にPush若しくはPoPのいづれ
かを実施する状態にあり、マイクロ命令を解読してPush
若しくはPoPのいづれかが実行されつつあることを発見
するのになんら遅延を生じさせない。マイクロ命令がPu
shの場合、書き込みバス76上のデータは既にに次のレジ
スタ171(スタックポインタ+1)に書き込まれている
ことになるから、スタックポインタが増分されたときに
動作は完了する。この場合、バス74上の読み出しデータ
は、破棄されるか、あるいは使用されない。一方、命令
がPoPの場合には、ポインタ77によってアドレス指定さ
れたレジスタ171からのデータはすでに読み出しバス74
上に存在しており、マイクロ命令が解読されたときにポ
インタ77は減分入力178によって減分される。ここで、
書き込みバス76から「スタックポインタ+1」に書き込
まれたデータは、このレジスタは未使用であることか
ら、なんの結果も生じさせない。マイクロ命令がPushで
もPoPでもない、つまりスタック操作でない場合には、
入力177若しくは出力178上に増分若しくは減分制御は存
在せず、バス76、74を経ての無条件読み出しおよび書き
込みはなんの結果をも生じさせず、「スタックポインタ
+1」への書き込みはなんの害も受けず、また、読み出
しは非破壊読み出しであり、データも使用されないこと
から、勿論、ポインタ位置からの読み出しも無害であ
る。
第13図を参照して、ここではサイクル−1とサイクル−
2で実行するマイクロ命令XおよびYを考える。ここ
で、Xは「Call Y」、Yは「CallX」である。Xに対
するアドレスは、サイクル−1のP2中にマイクロPC85の
出力部に現れるが、サイクル−1のP4までは、コントロ
ーラ79、87、88、89で解読されない。この時点で回路は
Callを検出し、Xに対するマイクロアドレスを(X+1
まで増分された低位ビットを用いて)スタック75の上に
Pushする。サイクル−2のP2において、Yに対するマイ
クロアドレスがマイクロPC85の出力部に現れ、P4でRetu
rnが解読される。しかしながら、Returnアドレス、X+
1は、サイクル−3のP1でマルプレクサによって選定さ
れるよう、P4でセットアップされなければならない。こ
のシーケンスは従来のスタック形態を用いてもできない
ことはないが、非常に困難なことであった。
第12図のスタック回路では、本発明によれば、各サイク
ルのP4中に、スタックポインタ77から選択された位置に
無条件の読み出しおよび書き込みが実行される。読み出
し値は、マルチプレクサの入力に向かうライン74上に配
置され、書き込み値は常に1だけ増分されたマイクロPC
85の出力である。
ここで、「2」のポインタ値を考えると、読み出しポイ
ンタ172はレジスタ171−2を選択し、書き込みポインタ
173はレジスタ171−3を選択し、この結果、潜在的なCa
llアドレスがレジスタ171−3に書き込まれ、またた、
潜在的なReturnアドレスがレジスタ171−2から読み出
される。後続サイクルのP3において、ポインタは、Call
若しくはReturnのP4における解読に基づいて、条件付き
で増分若しくは減分される。Call、Returnのいづれも解
読されない場合は、ポインタ77は増分も減分もされず、
読み出しおよび書き込みは使用されない。
本発明を特別な実施例を参照して説明してきたが、この
説明に限定という意味はない。この説明を参照すれば、
当業者ならば、本発明の他の実施例と共に開示実施例の
種々の変更に気付くだろう。従って、特許請求の範囲
は、本発明の範囲内に存在するこのような変更若しくは
実施例のいずれをもカバーするものである。
【図面の簡単な説明】
第1図は、本発明の一実施例による中央処理装置を含む
コンピュータ装置のブロック図である。 第2図は、第1図のCPUの実行ユニットのブロック図で
ある。 第3図は、第1のCPUのマイクロ・シーケンサのブロッ
ク図である。 第4図は、第3図の制御記憶装置に含まれるマイクロ命
令のフォーマットの図である。 第5図は、第1図のCPUの命令ユニットのブロック図で
ある。 第6図は、第1図のCPUのメモリ管理ユニットのブロッ
ク図である。 第7図は、第1図のCPUの一次キャッシュ若しくはP−
キャッシュ・メモリのブロック図である。 第8図は、第1図のCPUのバス・インタフェース・ユニ
ットのブロック図である。 第9図は、第1図のパイプライン化したCPUにおいて連
続したマシンサイクルで発生する事象を示す図である。 第10図は、第1〜8図のCPUにおける命令実行の詳細を
示す事象対時間のタイミング図である。 第11図は、第1図のCPUのクロック・ジェネレータによ
って発生した4位相出力クロックのタイミング図であ
る。 第12図は、第3図のマイクロシーケンサで使用する本発
明の一実施例によるメモリスタックの概略ブロック図で
ある。 第13図は、第12図のマイクロアドレス・スタックの動作
における事象対時間を示すタイミング図である。 図面において、10……中央演算処理装置、11……システ
ム・データ・バス、12……システム・アドレス・バス、
13……システム制御バス、15……システム・メモリ、20
……命令ユニット、21……実行ユニット、22……制御記
憶装置、23……マイクロシーケンサ、25……ディスパッ
チ・バス、26……マイクロ命令バス、30……メモリ管理
ユニット、31……内部アドレス・バス、34……ALU出力
バス、35……書き込みデータ・バス、40……一次キャッ
シュ、41……内部データ・バス、42……バス・インター
フェイス・ユニット、44……クロック・ジェネレータ、
45……ALU、50……レジスタ・ファイル、55……シフト
・カウンタ・レジスタ、56……プログラム・カウンタ、
58……カウンタ回路、61……プロセッサ状況レジスタ、
62……定数ジェネレータ、70……マルチプレクサ、80…
…マイクロアドレス・サイロ、90……先取りキュー、10
0……ディスパッチ・マチチプレクサ、111……翻訳バッ
ファ
フロントページの続き (72)発明者 ジョージ エム ユーラー アメリカ合衆国 マサチューセッツ州 01752 マールボロー コンコード ロー ド 1200

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】複数のレジスタを有し、増分若しくは減分
    され得るスタックポインタを有するような形式のメモリ
    を動作させる方法において、 前記スタックポインタ+1によって指示された前記スタ
    ックのレジスタに書き込みバスから無条件で書き込みを
    行う段階と、 前記スタックポインタによって指示された前記スタック
    のレジスタの内容を読み出しバスに無条件でコピーする
    段階と、 その後、条件付きで、前記スタックポインタを増分若し
    くは減分させるか、あるいは、前記スタックポインタを
    増分も減分もさせない段階と、 を備えることを特徴とする方法。
  2. 【請求項2】請求項1記載の方法において、前記スタッ
    クポインタを増分若しくは減分させるか、あるいは、前
    記スタックポインタを増分も減分もさせない前記段階
    は、命令若しくはマイクロ命令の複数のビットを解読す
    る段階に応答して実施される方法。
  3. 【請求項3】請求項1記載の方法において、前記スタッ
    クポインタは、スタック操作が実施される場合には条件
    付きで増分若しくは減分され、スタック操作が実施され
    ない場合には減分も増分もされない方法。
  4. 【請求項4】請求項3記載の方法において、前記スタッ
    ク操作はPUSH若しくはPOPである方法。
  5. 【請求項5】請求項1記載の方法において、前記メモリ
    スタックはマシンサイクルを有するコンピュータ装置の
    一部であり、請求項1記載の前記段階の全てが前記マシ
    ンサイクルのうちの1つの時間内に実施される方法。
  6. 【請求項6】請求項5記載の方法において、請求項1の
    前記段階の全てが常に前記マシンサイクルのそれぞれの
    マシンサイクルの間に実施される方法。
  7. 【請求項7】請求項6記載の方法において、前記マシン
    サイクルの1つ1つが複数の位相を含み、請求項1記載
    の前記段階の全てが、前記マシンサイクルのうちの所定
    のマシンサイクルの終わり付近で始まって次のマシンサ
    イクルの終わり前に終わるような幾つかの位相によって
    占有された時間内に実施される方法。
  8. 【請求項8】請求項1記載の方法において、前記スタッ
    クは、Call若しくはReturnマイクロ命令が実行されたと
    きに、パイプライン化CPUにマイクロ命令のアドレスを
    記憶するために使用される方法。
  9. 【請求項9】複数のレジスタを有し、増分若しくは減分
    され得るスタックポインタを有するような形式のメモリ
    スタックにおいて、 前記スタックポインタ+1によって指示された前記スタ
    ックのレジスタに書き込みバスから無条件で書き込みを
    行う手階と、 前記スタックポインタによって指示された前記スタック
    のレジスタの内容を読み出しバスに無条件でコピーする
    手段と、 その後、条件付きで、前記スタックポインタを増分若し
    くは減分させるか、あるいは、前記スタックポインタを
    増分も減分もさせない手段と、 を備えることを特徴とするメモリスタック。
  10. 【請求項10】請求項9記載のメモリスタックにおい
    て、前記スタックポインタを増分若しくは減分させる
    か、あるいは、前記スタックポインタを増分も減分もさ
    せない前記手段は、命令若しくはマイクロ命令の複数の
    ビットを解読する手段に応答して実施されるメモリスタ
    ック。
  11. 【請求項11】請求項9記載のメモリスタックにおい
    て、前記スタックポインタは、スタック操作が実施され
    る場合には条件付きで増分若しくは減分され、スタック
    操作が実施されない場合には減分も増分もされないメモ
    リスタック。
  12. 【請求項12】請求項9記載のメモリスタックにおい
    て、前記スタック操作はPUSH若しくはPOPであるメモリ
    スタック。
  13. 【請求項13】請求項9記載のメモリスタックにおい
    て、前記メモリスタックはマシンサイクルを有するコン
    ピュータ装置の一部であり、前記手段の全てが前記マシ
    ンサイクルのうちの1つの時間内で作動され得るメモリ
    スタック。
  14. 【請求項14】請求項13記載のメモリスタックにおい
    て、前記手段の全てが常に前記マシンサイクルのそれぞ
    れのマシンサイクルの間に作動される方法。
  15. 【請求項15】請求項13記載のメモリスタックにおい
    て、前記マシンサイクルの1つ1つが複数の位相を含
    み、前記手段の全てが常に、前記マシンサイクルのうち
    の所定のマシンサイクルの終わり付近で始まって次のマ
    シンサイクルの終わり前に終わるような幾つかの位相に
    よって占有された時間間隔内で作動される方法。
  16. 【請求項16】請求項9記載のメモリスタックにおい
    て、前記スタックは、Call若しくはReturnマイクロ命令
    が実行されるときに、パイプライン化CPUにマイクロ命
    令のアドレスを記憶するメモリスタック。
  17. 【請求項17】マイクロ命令記憶装置をアドレス指定す
    る方法において、 (a) 各マシンサイクルで、1アドレスだけ増分され
    たスタックポインタの値によって指示されたスタックの
    記憶位置に、前記マイクロ命令記憶装置のアドレス入力
    部に付与されたアドレスを無条件に書き込む段階と、 (b) 前記スタックポインタによって指示された前記
    スタックの前記記憶位置の内容を読み出して、各マシン
    シクルで、前記内容を前記マイクロ命令記憶装置のアド
    レスとして条件付きで使用する段階と、 (c) マイクロ命令を各マシンサイクルで解読し、前
    記スタックポインタを増分若しくは減分するか、また
    は、増分も減分も行わないかを決定する段階と、 を備えることを特徴とする方法。
  18. 【請求項18】請求項17記載の方法において、前記ポイ
    ンタはCallマイクロ命令が解読されたときに増分され、
    Returnマイクロ命令が解読されたときに減分される方
    法。
  19. 【請求項19】マイクロ命令記憶装置と、このマイクロ
    命令記憶装置をアドレス指定する手段と、を有するCPU
    において、 (a) 1アドレスだけ増分されたスタックポインタの
    値によって指示されたスタックの記憶位置に、前記マイ
    クロ命令記憶装置のアドレス入力部に付与されたアドレ
    スを、各マシンサイクルで、条件付きで書き込む手段
    と、 (b) 前記スタックポインタによって指示された前記
    スタックの前記記憶位置の内容を読み出して、前記内容
    を前記マイクロ命令記憶装置のアドレスとして、各マシ
    ンシクルで、条件付きで使用する手段と、 (c) マイクロ命令を各マシンサイクルで解読し、前
    記スタックポインタを増分若しくは減分するか、また
    は、増分も減分も行わないかを決定する手段と、 を備えることを特徴とするCPU。
  20. 【請求項20】請求項19記載の方法において、前記ポイ
    ンタはCallマイクロ命令が解読されたときに増分され、
    Returnマイクロ命令が解読されたときに減分される方
    法。
JP1188709A 1988-07-20 1989-07-20 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置 Expired - Lifetime JPH0736155B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US221946 1988-07-20
US07/221,946 US5023828A (en) 1988-07-20 1988-07-20 Microinstruction addressing in high-speed CPU

Publications (2)

Publication Number Publication Date
JPH02140830A JPH02140830A (ja) 1990-05-30
JPH0736155B2 true JPH0736155B2 (ja) 1995-04-19

Family

ID=22830096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1188709A Expired - Lifetime JPH0736155B2 (ja) 1988-07-20 1989-07-20 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置

Country Status (6)

Country Link
US (1) US5023828A (ja)
EP (1) EP0352082B1 (ja)
JP (1) JPH0736155B2 (ja)
AT (1) ATE145291T1 (ja)
CA (1) CA1323939C (ja)
DE (1) DE68927451T2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2655191B2 (ja) * 1989-07-05 1997-09-17 三菱電機株式会社 演算処理装置
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
JPH03180933A (ja) * 1989-12-08 1991-08-06 Matsushita Electric Ind Co Ltd スタックメモリ
JP3035828B2 (ja) * 1989-12-28 2000-04-24 甲府日本電気株式会社 情報処理装置
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5249280A (en) * 1990-07-05 1993-09-28 Motorola, Inc. Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
KR0181471B1 (ko) * 1990-07-27 1999-05-15 윌리암 피.브레이든 컴퓨터 데이타 경로배정 시스템
US5301345A (en) * 1991-05-03 1994-04-05 Motorola, Inc. Data processing system for performing a shifting operation and a constant generation operation and method therefor
US5452423A (en) * 1991-06-13 1995-09-19 Chips And Technologies, Inc. Two-ROM multibyte microcode address selection method and apparatus
US5448707A (en) * 1991-10-29 1995-09-05 Intel Corporation Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns
US5335332A (en) * 1991-12-24 1994-08-02 International Business Machines Corporation Method and system for stack memory alignment utilizing recursion
US5398330A (en) * 1992-03-05 1995-03-14 Seiko Epson Corporation Register file backup queue
US5463748A (en) * 1993-06-30 1995-10-31 Intel Corporation Instruction buffer for aligning instruction sets using boundary detection
US5515521A (en) * 1994-02-08 1996-05-07 Meridian Semiconductor, Inc. Circuit and method for reducing delays associated with contention interference between code fetches and operand accesses of a microprocessor
JPH08329261A (ja) * 1995-05-31 1996-12-13 Canon Inc パラメータ曲線発生器
US6148376A (en) 1996-05-10 2000-11-14 Apple Computer, Inc. Method and apparatus for an improved stack arrangement and operations thereon
US5958039A (en) * 1997-10-28 1999-09-28 Microchip Technology Incorporated Master-slave latches and post increment/decrement operations
US6154865A (en) * 1998-11-13 2000-11-28 Credence Systems Corporation Instruction processing pattern generator controlling an integrated circuit tester
US6345353B2 (en) * 1999-07-20 2002-02-05 Microchip Technology Incorporated Stack pointer with post increment/decrement allowing selection from parallel read/write address outputs
US7231511B2 (en) * 2001-12-20 2007-06-12 Intel Corporation Microinstruction pointer stack including speculative pointers for out-of-order execution
US7818722B2 (en) * 2006-06-09 2010-10-19 International Business Machines Corporation Computer implemented method and system for accurate, efficient and adaptive calling context profiling
US11977890B2 (en) * 2021-12-30 2024-05-07 Advanced Micro Devices, Inc. Stateful microcode branching

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3942163A (en) * 1974-06-21 1976-03-02 Burroughs Corporation CCD stack memory organization
JPS5255446A (en) * 1975-10-31 1977-05-06 Toshiba Corp Information transfer control system
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
JPS5569855A (en) * 1978-11-20 1980-05-26 Panafacom Ltd Data processing system
US4394729A (en) * 1980-10-16 1983-07-19 Ncr Corporation Jump return stack
US4586127A (en) * 1982-11-03 1986-04-29 Burroughs Corp. Multiple control stores for a pipelined microcontroller
DE3321325A1 (de) * 1983-06-13 1984-12-13 Siemens AG, 1000 Berlin und 8000 München Kellerspeicher
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
US4674032A (en) * 1984-04-02 1987-06-16 Unisys Corporation High-performance pipelined stack with over-write protection
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
ATE162896T1 (de) * 1984-05-08 1998-02-15 Advanced Micro Devices Inc Mikroprogrammablaufsteuerung

Also Published As

Publication number Publication date
EP0352082A3 (en) 1993-01-07
DE68927451D1 (de) 1996-12-19
US5023828A (en) 1991-06-11
EP0352082A2 (en) 1990-01-24
JPH02140830A (ja) 1990-05-30
CA1323939C (en) 1993-11-02
ATE145291T1 (de) 1996-11-15
EP0352082B1 (en) 1996-11-13
DE68927451T2 (de) 1997-06-12

Similar Documents

Publication Publication Date Title
US5019967A (en) Pipeline bubble compression in a computer system
US5006980A (en) Pipelined digital CPU with deadlock resolution
US4875160A (en) Method for implementing synchronous pipeline exception recovery
US5321823A (en) Digital processor with bit mask for counting registers for fast register saves
JPH0736155B2 (ja) 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
US5235686A (en) Computer system having mixed macrocode and microcode
US5113515A (en) Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
US5142631A (en) System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
JP3628379B2 (ja) 命令を処理するためのパイプラインを有するマイクロプロセッサ装置およびそれにおいて用いるためのプログラムカウンタ値を発生する装置
KR940003383B1 (ko) 파이프라인 처리 방식으로 동작하는 프리디코더 유니트 및 주 디코더 유니트를 구비한 마이크로프로세서
EP0465321B1 (en) Ensuring data integrity in multiprocessor or pipelined processor system
US5944841A (en) Microprocessor with built-in instruction tracing capability
US5222223A (en) Method and apparatus for ordering and queueing multiple memory requests
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US5509137A (en) Store processing method in a pipelined cache memory
US5218711A (en) Microprocessor having program counter registers for its coprocessors
GB2231181A (en) Stack method and circuitry
JPH04309131A (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
US5812809A (en) Data processing system capable of execution of plural instructions in parallel
JPS6339931B2 (ja)
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US5469551A (en) Method and apparatus for eliminating branches using conditional move instructions
JP2010501913A (ja) 可変長命令セット内の分岐命令の最後の粒度(granularity)と関連付けられたキャッシュ分岐情報
JPH07120284B2 (ja) データ処理装置

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

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: 20090419

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20090419

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20100419

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20100419

Year of fee payment: 15