JPH05216663A - 同時的命令撤去及びバックトラッキングを行なうためのデータプロセッサ - Google Patents

同時的命令撤去及びバックトラッキングを行なうためのデータプロセッサ

Info

Publication number
JPH05216663A
JPH05216663A JP4148687A JP14868792A JPH05216663A JP H05216663 A JPH05216663 A JP H05216663A JP 4148687 A JP4148687 A JP 4148687A JP 14868792 A JP14868792 A JP 14868792A JP H05216663 A JPH05216663 A JP H05216663A
Authority
JP
Japan
Prior art keywords
register
sequencer
checkpoint
physical
instruction
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.)
Pending
Application number
JP4148687A
Other languages
English (en)
Inventor
Michael C Shebanow
マイケル・シー・シェバノウ
Mitchell Alsup
ミッチェル・アルスプ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH05216663A publication Critical patent/JPH05216663A/ja
Pending 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3818Decoding for concurrent execution
    • 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
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

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)

Abstract

(57)【要約】 (修正有) 【目的】 アーキテクチャによるレジスタよりも一層汎
用の物理レジスタを持つデータ処理システムを実現す
る。 【構成】 システム10はレジスタ目録システム90を
使用して、レジスタファイル37における物理レジスタ
の割当て状態変化を監視する。シーケンサ20が命令を
出すにつれて、割出されたRAM92が物理レジスタの
各々に対する可視及び割当て状態ビットのコピーを記憶
する。シーケンサが分枝修理を必要とする場合はその分
枝命令が出されたチェックポイントに対してバックアッ
プする。このポイントにおける各物理レジスタに対する
可視及び割当てビットはRAM92から読み出す。規定
されたバックアップ割当て解除関係を使用して、システ
ム90は解除すべき物理レジスタを決定し、自由プール
に戻す。システム90は、シーケンサ20に終了した命
令をすべて同時に撤去し、バックアップ・プロセスによ
りマークされた命令を捨てさせる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は一般的にデータプロセ
ッサ、更に特定するに、可変数の命令を同時に実行でき
るパイプライン・データプロセッサに関する。
【0002】
【従来の技術】歴史的に、データプロセッサの履行はイ
ンオーダまたは“間順(in−order)”命令実行
に限定されていた。一般に、“間順”実行方式により課
せられる制約はデータプロセッサを用いて達成し得る性
能を制限する。これに対して、“アウトオブオーダ(o
ut−of−order)”命令実行の使用を許すと、
データプロセッサの性能を3倍又はそれ以上に増大させ
る。しかしながら、この性能増大の達成は的確な例外を
維持する要件により妨げられる。例外状態は、零で割算
するような命令の実行中に検出可能である。的確な例外
を履行するプロセッサにおいて、例外命令の影響はなく
され、そして、トラップは、命令が決して開始しなかっ
たプログラムに現われるように取られる。標準として、
的確な例外を維持する周知のデータ・プロセッサは高価
であるか、又はクロック・サイクル当りに実行可能な命
令の数に関して限定的である。
【0003】“アウトオブオーダ”データプロセッサで
は、その命令実行のみがプログラム順序(シーケンス)
から発生する。かくして、命令はなおもプログラム順序
において“出され(issued)”、そして“撤去
(retirement)”(命令を完了し、そしてそ
の副作用を可視可能にする作用)もプログラム順序にお
いて生ずる。データ依存性は、第1の命令が第2の命令
により使い尽くされる結果を作り出すときに2つの命令
間に存在すると云われている。基本的に、命令間でのデ
ータ依存性のみが命令実行の順序を制限する。当然、そ
こには、“アウトオブオーダ”データ・プロセッサの性
能を制限する幾つかの要因がある。第1の要因は、命令
がプロセッサにより出される割合または速度(rat
e)である。“命令の保存(conservation
of instructions)”特性は、クロッ
ク当りに実行される命令の平均比率がクロック当りに出
される命令の平均比率により制限されることを示してい
る。
【0004】“アウトオブオーダ”データプロセッサの
性能を制限する第2の要因は命令の“撤去”の割合また
は速度である。初めに、そのプロセッサは何の命令も実
行していない。プロセッサは命令の引き出し及び発行を
開始する。前にも示したように、発行及び“撤去”はプ
ログラム順に生じなければならない。従って、引き続い
て出される命令は、プロセッサにより出される第1の命
令の実行が完了されて撤去されるまで、撤去されない。
プロセッサがその第1の命令を撤去するために待つ間、
それは命令を出し続ける。かくして、プロセッサは多く
の引き続いて出される命令の実行を完了するが、それら
引き続いて出される命令の“撤去”は、最初の命令が完
了して、撤去されるまで、延期される。プロセッサが一
定の割合または速度で命令を出すものと仮定すると、プ
ロセッサにおける命令についての正味の数は単調に増加
する関数となる。
【0005】“アウトオブオーダ”プロセッサの性能を
制限する最後の要因は分枝予告回復時間である。命令発
行者が条件付分枝命令に遭遇する場合、それは少なくと
も2つの可能な作用過程を持っている。第1に、命令発
行者は命令の発行を止めることができる。この作用はプ
ロセッサの性能(命令発行の割合)に影響する第1の要
因に照らして望ましくない。第2に、命令発行者は分枝
の方向を予告または予測し、そして予告された通路(p
ath)に命令を出し続けることができる。もしも予告
された通路が正しくないとすると、不正に発行された命
令により影響されるレジスタ(単数または複数)はそれ
らの元の値へ回復されなければならない。かくして、第
2の方式を使用することで、(1)予告が大半の時間に
わたり正しいとき、そして(2)予告が間違いでも、正
しい命令を出し始めるのに長くかからないときにのみ、
高効率の発行率を維持できる。その時間の大半にわたっ
て分枝を正しく予告できるアルゴリズムは数多く知られ
ているが、一旦アルゴリズムが選ばれると、システム設
計者は、運転中にシステムに実際に生じることについて
ほとんど制御できない。予測または予告(predic
tion)が正しくない場合には、その分枝修理または
修復が生じる限り、プロセッサが命令を出せないので、
分枝修理時間を最小にする必要がある。結果的に、分枝
修理に起因する立ち往生の頻度は全体の機械性能に悪く
影響する。
【0006】アウトオブオーダ機械におけるレジスタ・
ファイルの履行には別な問題がある。撤去制約は、副作
用がプログラム順で現われないことを指図している。周
知のプロセッサでは、プログラム順で生じるレジスタ副
作用を持つ問題を克服するのに再請求(reorde
r)バッファを採用している。初めに、発行する命令は
レジスタ・ファイルにおける固定された数のアドレス指
定可能なレジスタ(つまり、汎用レジスタ)の1つから
その演算数(operand)を読む。次に、命令が出
されて、関連せる演算または動作が行われる。もしもそ
の命令がレジスタ行き先(destination)を
持っているならば、レジスタ・ファイルでの指定された
レジスタは修正されない。代って、再請求バッファでの
スロットがその結果に対して割当てられる。命令が実行
を完了すると、再請求バッファはレジスタファイルでの
指定されたレジスタの代りに修正される。新しい命令が
出ると、それらは再請求バッファから修正されたレジス
タを読むが、修正されないレジスタもそのレジスタ・フ
ァイルから読み出される。かくして、撤去のプロセス
は、再請求バッファから修正されたレジスタを取り出
し、そしてそれらをレジスタ・ファイルへと書き戻すこ
とを必要とする。撤去の割合は、プロセッサが再請求バ
ッファ(再請求バッファ上での読み出しポートの数)を
読みそしてそのレジスタ・ファイルを書くことのできる
速度により制限される。かくして、再請求バッファを使
用することにより、システム設計者は零時間分枝修理
(もはや有効でない再請求バッファの区間を捨てること
により)を達成できるが、撤去率または速度は制限され
る。
【0007】再請求バッファの制限された撤去率の不備
を直すのに採用される1つの解決策は“来歴バッファ”
(history buffer)の履行である。命令
が出されるにつれて、修正を要するレジスタは、修正さ
れる前に来歴バッファへとコピーされる。従って、“来
歴バッファでの値は“古い”レジスタ値を表わしてい
る。命令が実行を完了するにつれて、それらの結果はレ
ジスタファイルへとじかに記憶される。かくして、撤去
のプロセスは、命令がいつ完了したかを決定する必要が
ある。標準として、プロセッサはクロック期間中にいづ
れかの数の命令の結果を“決定する”ので、撤去率は制
限されない。“復号された”命令に対する古い値を記憶
する来歴バッファにおけるスロットは単に捨てられる。
これとは逆に、分枝修理が必要である場合、そのシステ
ムが古いレジスタ値を回復する速度は分枝修理時間を制
限することになる。かくして、来歴バッファを使用する
ことで、システム設計者は零の撤去時間を達成できる
が、分枝修理率または分枝修復速度は制限される。
【0008】
【発明が解決しようとする課題】従って、再請求バッフ
ァと来歴バッファとは1つの目的を有効に達成するが、
他の目的を達成するには有効でない。本質的に、その問
題は、両方式つまりアプローチ(再請求バッファ及び来
歴バッファ)共、データの物理的運動を必要とすること
である。再請求バッファは撤去動作においてデータを移
動させる。他方、来歴バッファは分枝修理の動作におい
てデータを移動させる。かくして、データを物理的に動
かすことなく、前述の目的を達成する機構を提供するこ
とが望ましい。
【0009】
【課題を解決するための手段及び作用】ここでは、シー
ケンサにより出される複数の命令を同時に実行するため
の予め決められた数の実行ユニットと、その予め決めら
れた数の命令の各々の前記実行ユニットによる実行から
生じる情報を選択的に記憶するためのレジスタ・ファイ
ルでの複数の番号付けられた物理レジスタとを持つデー
タ処理システムが提供される。このデータは処理システ
ムは、第1の一致したチェックポイントから引き続く撤
去チェックポイントへと前進するシーケンサに応答し
て、物理レジスタの各々の割当て状態変化を監視するた
めの撤去ロジックを含む命令撤去を行うためのシステム
を含んでいる。
【0010】
【実施例】“肯定する(assert)”、“肯定(a
ssertion)”、“否定する(negate)”
及び“否定(negation)”という用語は、“能
動高(active high)”及び“能動低(ac
tive low)”信号の混成を取扱う際での混同を
避けるために使用されている。“肯定する”及び“肯
定”は、信号が能動つまり論理的に真であることを示す
ために使用されている。“否定する”及び“否定”は、
信号が非能動つまり論理的に偽であることを示すために
使用されている。
【0011】本発明は各種のコンピュータ・システム環
境において履行できる。従って、図1のデータ処理シス
テム10は例示を目的としてのみ与えられており、本発
明の範囲を限定するものではない。図1に示されている
のは、本発明の好ましい実施例によるデータ処理システ
ム10のブロック図である。動作において、インストラ
クション・バッファ12は、バス・インタフェース・ユ
ニット14を介して、外部メモリ(示されていない)か
ら多くのメモリ位置(locations)を取り出
す。デコーダ16は該メモリ位置に記憶されている情報
を“パケット”へと再編成し、そこで、各パケットは1
〜6の命令から成っている。被復号(decoded)
命令キャッシュ(DIC)18は復号されたパケットを
デコーダ16から受け、そしてシーケンサ兼窓制御論理
ユニット(シーケンサ)によるそれらの選択中、それら
パケット(前以って復号されたグループの命令)を記憶
する。DIC18は命令バス44に対するパケット源と
して機能する。代替として、デコーダ16は命令バス4
4に対して命令パケットをじかに与えても良い。
【0012】好ましい実施例において、DIC18は、
命令が前以って復号されることを除いて従来の命令キャ
ッシュと同様に機能する。命令の発行は、シーケンサ2
0が実行のためのパケットを選択するときに生じ、そし
てDIC18は選ばれたパケットにおける復号さた命令
を1グループの保留(reservation)ステー
ション31−36での1つ又はそれ以上のセットのステ
ーションに与える。好ましい実施例において、発行され
た命令に対するデータ演算数が利用できない場合、その
命令は必要とされるデータの利用迄保留ステーションに
記憶される。必要不可欠なデータ演算数が利用可能にな
ると、命令は、実行のために、保留ステーション(グル
ープの保留ステーション31−36の1つにおいて)か
らファンクションユニット25−30にそれぞれ転送さ
れる。条件キャッシュ24は、(i)部分的に完了した
メモリ命令、(ii)完了しているが撤去可能でないメ
モリ命令、そして(iii)完了して撤去されるメモリ
演算または動作データに対する記憶領域を与え、これに
より、メモリ動作が正しい順序で実行されることを確保
する。
【0013】好ましい実施例によると、ファンクション
・ユニット25−30は、各々がそれ自体の従来のバス
・ドライバ・ロジック(示されていない)を持つ6つの
独立したバスを含む分配バス45に結合されている。命
令パケットの実行の完了に際して、それぞれのファンク
ション・ユニット25−30はそれぞれのファンクショ
ン・ユニットに使用されている独立バス上へと情報を駆
動する。従って、ファンクション・ユニット25−30
の出力のみが分配バス45の6つの独立バスを駆動す
る。シーケンサ20は、命令パケットが成功裏に実行し
たかどうかを決定するために分配バス45を監視する。
好ましい実施例において、シーケンサ20は分配バス上
に置かれたデータを読まないが、シーケンサ20はどの
命令が分配された情報を持つのかを検出し、それによ
り、命令パケットの完了を確認する。シーケンサ20
は、いづれかの与えられた時間にデータ処理システム1
0にある能動(active)命令パケットの数(ここ
で、能動は出されているが、まだ撤去されていないこと
を意味する)を制限するように機能する。システム10
に現にある命令パケットの数が前以って規定された限度
を越えないならば、シーケンサ20はインストラクショ
ンバッファ12か又はDIC18のいづれかから命令を
出し続ける。
【0014】アーキテクチャによる(論理的)レジスタ
は、プログラムが命令実行中に操作するものである。レ
ジスタファイル37−39には、論理(アーキテクチャ
による)レジスタよりも一層多い物理レジスタがある。
本発明によると、レジスタファイル37−39は互いに
論理的に等価であるので、各レジスタファイル37−3
9は常に同一の情報を含んでいる。システム・リセット
において、データ処理システム10によってエミュレー
トされつつある命令セット・アーキテクチャの各論理レ
ジスタには、それを表わすために、レジスタ・ファイル
37−39での物理レジスタが割当てられる。論理レジ
スタに割当てられる物理レジスタは(可視可能(vis
ible)”として取り扱われる。レジスタ・ファイル
37−39には、論理(アーキテクチャによる)レジス
タよりも一層多くの物理レジスタがあるので、物理レジ
スタの残りはリセット中にある論理レジスタに割当てら
れない。かくして、リセットにおいて割当てられないレ
ジスタ・ファイル37−39での物理レジスタは“自由
な(free)”プールを形成する。自由プールでの物
理レジスタは“非可視可能(invisible)”と
して取り扱われる。いづれかの或る時間において、そこ
には各論理レジスタを表わしている1つの物理レジスタ
が存在する。従って、各命令に対して、読まれるべきソ
ース論理レジスタは初めに論理レジスタから物理レジス
タへと翻訳される。すべての現に可視可能な物理レジス
タはこのプロセスの一部として捜索される。
【0015】命令発行プロセス中、論理レジスタに割当
てられた物理レジスタはレジスタ・ファイル37−39
から読まれる。この発明において、その翻訳(物理レジ
スタの選択)は、予め決められた数のCAMセル50
(図2)からなる論理レジスタ内容−アドレス可能メモ
リ(LR CAMs)40−42を用いて行われる。図
2に示されているように、レジスタファイル37−39
における各物理レジスタ48はそれと連動されるまたは
関連するLA CAMセル50を持っている。各LA
CAMセル50のワード・ラッチ60に記憶されている
のは、どの論理レジスタが関連せる物理レジスタ48に
対して現に割当てられているのかを示すナンバーであ
る。同様にして、ラッチ76に記憶されているのは、物
理レジスタ48が現に可視可能であるのかどうかを示し
ている可視性(V)フラグビットである。論理レジス
タを物理レジスタ48に翻訳するに際して、その論理レ
ジスタ・ナンバーはLA CAM40−42での各セル
50に対して同時に印加される。各セル50は、翻訳さ
れるべき論理レジスタ・ナンバーをワードラッチ60に
記憶されているナンバーと比較する。もしも2つの論理
レジスタ・ナンバーが整合し、そしてVフラグビットが
連動された物理レジスタ48を可視可能であると識別す
るとすると、整合するLA CAMセル50と連動され
ている物理レジスタ48は翻訳され(すなわち、読み出
され)つつある論理レジスタに対する信号源(sour
ce)として使用される。
【0016】前にも示したように、リセットにおいて、
各論理レジスタはそれを表わすために物理レジスタに割
当てられる。物理レジスタが読み出された後に生じる割
当て中、可視性ラッチ79に記憶されているVフラグビ
ットは割当て(ALLOCATE)制御信号によってセ
ットされる。本発明の好ましい実施例において、論理レ
ジスタから物理レジスタへの翻訳はそれに従って行われ
る。翻訳中、読出し制御(READ CONTROL)
信号は肯定され、そしてマップ制御(MAPCONTR
OL)信号は否定される。比較器62はワードラッチ6
0に記憶されているナンバーに対してソース論理レジス
タ・ナンバーを比較し、そしてその比較の論理的結果を
ANDゲート70に与える。比較整合が生じると、AN
Dゲート70は比較器62からの論理ハイ出力信号と可
視性ラッチ76からの論理ハイ信号とを受信し、そして
それに応答して、論理ハイの選択(SELECT)信号
をANDゲート68及び74に与える。論理ハイ選択信
号及び論理ハイ読出し制御信号に応答して、ANDゲー
ト74は読出しイネーブル(READ ENABLE)
信号を肯定し、それにより、物理レジスタ48の内容が
読出されるのを可能にする。マップ制御(MAP CO
NTROL)信号は否定されるので、ANDゲート68
は可視性ラッチ76に記憶されているVフラグビットを
リセットしない。かくして、選択信号は物理レジスタ4
8を読出すために使用される。物理レジスタ48の直接
的選択はデータに対するアクセス待ち時間を減少させ
る。
【0017】本発明によると、レジスタ・マッピング及
び再マッピングはLR CAM40−42を利用してい
る。物理レジスタを読出すのに選択信号を使用する代り
に、選択信号は整合する物理レジスタのVフラグビッ
トをリセットするために使用される。ソース論理レジス
タが翻訳された後、書込まれる予定の行き先論理レジス
タは自由プールから割当てられた物理レジスタに対して
割当てられる(“マップされる”)。レジスタ・マッピ
ング中、配分器(示されていない)は割当てられる予定
の1セットの物理レジスタを選択するのにレジスタ割当
てアルゴリズムを使用して、割当て信号を肯定する。ま
た、割当て信号の肯定は、ラッチ60及び64にそれぞ
れ記憶される予定の論理レジスタナンバー及びインスト
ラクションナンバーを可能化する書込み(WRITE
ENABLE)イネーブル信号の肯定を実施する。かく
して、新しい物理レジスタはその行き先論理レジスタを
使用した命令により作り出される各行き先論理レジスタ
の値を記憶するために割当てられる。新しく割当てられ
た物理レジスタに対するLR CAMセル50は、セル
50のワードラッチ60に行き先論理レジスタ・ナンバ
ーを記憶するとともに、物理レジスタがいまや可視可能
であることを示すように可視性ラッチ76におけるV
ビットフラグを修正することにより行き先論理レジスタ
を表わすために修正される。
【0018】行き先論理レジスタに前以って配分(割当
て)された物理レジスタはマップされないようにしなけ
ればならず、“非可視可能”にされる。マップされない
間、マップ制御(MAP CONTROL)信号が肯定
される。行き先論理レジスタ・ナンバーはすべてのLR
CAMセル50に印加される。比較器62はラッチ6
0に記憶されている物理レジスタ・ナンバーに対して行
き先論理レジスタ・ナンバーを比較し、その結果はAN
Dゲート70に与えられる。整合が生じ、そしてラッチ
76でのVフラグビットがセットされると、ANDゲ
ート70は論理ハイ選択信号をANDゲート68に与え
る。ANDゲート68は選択信号及びマップ制御信号を
受信し、それに応答して、ラッチ76におけるVフラ
グビットをリセットする。マップされない間、読出し制
御信号は否定されるので、ANDゲート74は読出しイ
ネーブル信号を肯定しない。本質的に、そのVビット
フラグが可視性を示し且つそのワードが行き先論理レジ
スタナンバーと整合するいづれかのLR CAMセル5
0に対して、Vビット・フラグはその物理レジスタが
もはや可視可能でないことを示すために修正(リセッ
ト)される。好ましい実施例においては、データ処理シ
ステム10は、どの物理レジスタが、その物理レジスタ
の実際のマッピング前に割当てられるのかを決定する。
かくして、LRCAM40−42の使用は、レジスタ改
名(renaming)を履行する間接的処置の1つの
レベルを含んでいる従来技術で使用されたマッピングテ
ーブルに対する必要性を除去する。
【0019】本発明によると、レジスタ・ファイル37
−39を使用して論理レジスタをソースしそして論理レ
ジスタをレジスタ・ファイル37−39での新しい物理
レジスタに割当てるプロセスは命令“発行”として取扱
われる。“出されたまたは発行された”命令“A”の撤
去は、データ処理システム10が命令“A”の実行を完
了しそして命令“A”に先立って出されたすべての命令
の実行も完了したときに行われることが許容される。図
3は、発行、バックトラック及び撤去プロセスに対する
レジスタ状態図80を例示している。シーケンサ20は
命令を出し、そしてその命令に対する演算数はソース論
理レジスタから読み出され、そしてレジスタファイル3
7−39での物理レジスタへ翻訳される。命令の完了に
際して、その結果は自由プールから取り出された物理レ
ジスタに割当てられる行き先物理レジスタへと書き戻さ
れる。前にも示したように、ソース論理レジスタは、命
令発行中に自由プールから取り出される物理レジスタへ
割当てられる(マップされる)。
【0020】ソース論理レジスタがマップされた後、書
かれる予定の行き先論理レジスタは“自由な”プールか
ら配分された物理レジスタに割当てられ、そうした物理
レジスタは“割当てられて可視可能な”レジスタにな
る。この配分プロセス中、そうした行き先論理レジスタ
に対して前に割当てられたいづれかの物理レジスタはマ
ップされず、そのマップされない物理レジスタは“配分
された非可視可能な”レジスタとなる。命令完了(“撤
去”)に際して、配分された非可視可能なレジスタが自
由プールへと戻され、そしてプロセスが続行する。前に
割当てられた物理レジスタを自由プールへと戻すプロセ
スは“割当て解除(deallocation)”と呼
ばれる。
【0021】シーケンサ20が命令を出すにつれて、そ
れは従来のスコアボードにフラグビットをセットする。
命令実行プロセス中、命令はタグ付けされそして、命令
が完了(DONE:終了)したとき又はエラーがその命
令の実行中に生じたときを示すために割出される(in
dexed)。与えられた命令の実行を完了する際、フ
ァンクション・ユニット25−30はシーケンサ20に
より監視される分配バス45上へと情報を分配する。ま
た、ファンクションユニット25−30は与えられた命
令に対する命令終了制御(INSTRUCTION D
ONE CONTROL)信号を肯定し、そして完了し
た命令に対応したタグ・ナンバーを、行き先論理レジス
タ・ナンバーと一緒に、分配バス45を介してLR C
AM40−42へと転送する。LR CAM40−42
における比較器66はラッチ64に記憶されているイン
ストラクション・ナンバーに対してタグ・ナンバーを比
較して、その比較結果をANDゲート72に与える。整
合が生じると、ANDゲート72は書込みイネーブル信
号を肯定し、それにより、ファンクション・ユニット2
5−30が実行された命令の結果をレジスタファイル3
7−39での物理レジスタ48へとじかに(direc
tly)書込むのを可能にする。
【0022】好ましい実施例において、データ処理シス
テム10は、分枝命令の実行に先立って、その分枝命令
の実行結果を予告または予期する(以下、“分枝予告”
と云う)ために、分枝予告アルゴリズムを採用してい
る。結果的に、シーケンサ20は誤った分枝予告に基づ
いて一連の命令を不正に出すことがある。誤った分枝予
告が生じる場合、命令セット・アーキテクチャの正しい
エミュレーションは、データ処理システム10が不正に
出された命令(以下、“バックトラッキング:back
tracking”と云う)から生ずるいかなる状態変
化でも取り消す(undo)ことを必要とする。もしも
そうした命令を不正に出すプロセス中、物理レジスタが
マップされず(割当てられず)、しかもそうした物理レ
ジスタが割当て解除されるならば、システム10はバッ
クトラッキング動作を行うことができないことになる。
それ故、マップされない物理レジスタの割当て解除は、
命令が実際に撤去するときにのみ、行われることが必要
である。撤去後での割当て解除は、誤った分枝予告が生
じるときに、データ処理システム10がバックトラッキ
ング動作を行うのを可能にし、そしてマップされない物
理レジスタがデータ処理システム10によってもはや必
要とされないことを保証する。
【0023】レジスタ・ファイル37−39での物理レ
ジスタはマップされ、かつシーケンサ20が命令を出す
たびにアンマップされるので、システム10は割当てら
れたか又は割当て解除された物理レジスタの目録を維持
しなければならない。この目録システムは、命令又はグ
ループの命令の撤去に際して、システム10がもはや可
視可能でない物理レジスタの資源を回復することを可能
にしなければならない。物理レジスタの資源の回復はシ
ーケンサ20により出された引き続く命令によるそれら
の再使用を容易にする。LR CAM40−42を使用
することで、システム10はレジスタファイル37−3
9における物理レジスタのマッピング、アンマッピング
及び可視性に関する情報を維持する。レジスタ・ファイ
ル37−39における各物理レジスタは、ランダムアク
セスメモリ(RAM)を含む関連せるレジスタ目録シス
テムを持っている。RAMは、ここでは“チェックポイ
ント”と呼ばれているLR CAMの40−42におけ
るすべてのCAMセル50に対する可視ビットを記憶す
る。かくして、レジスタ目録システムは予め決められた
数のランダム・アクセス・メモリ(RAM)にシステム
10のマシン状態のコピーを維持する。シーケンサ20
が各命令を出した後、システム10のマシン状態のコピ
ーはRAM内に作られ、その発行点は次の命令発行に対
して前進される。
【0024】図4は命令発行中におけるシーケンサ20
の進行を例示している。システム10の一致したチェッ
クポイント(C点)は、最後の命令の撤去直後及び次の
命令の撤去直前のマシン状態チェックポイントを表わ
す。シーケンサ20の命令発行ロジックはマシンのC点
をできるだけ早く前方に進めることによって前進する。
点(points)間でのボックスは命令又はグループ
としての命令(“パケット”)を表わす。撤去チェック
ポイント(R点)はシーケンサ20が前進できる場所を
表わす。システム10の発行チェックポイント(I点)
は発行された最後の命令をちょうど過ぎたチェックポイ
ントである。バックアップ・チェックポイント(B点)
は分枝予告間違い又は例外状態の発生により捨てられる
べき1セットの命令の発行にちょうど先立ったチェック
ポイントを表わしている。結果的に、撤去は命令が完了
したときにのみ生じるという定義から、バックアップは
現行の撤去点以前では決して生じない。かくして、シス
テム10のシーケンサ20はその発行点をその一致した
点からできるだけ前方に前進させると同時に、必要とさ
れるバックアップの量を最小にする。
【0025】本発明によると、セット表示はレジスタ割
当ての目録を行ないそして維持するのにシステム10に
より採用される技術を説明するために使用されている。
簡素化のために、1セットまたは集合としての値は記号
*を付した文字(すなわち、*V)によって示される
が、該集合の個々の値又はメンバーは普通の文字(すな
わち、V)によって示される。従って、単なる例示と
して、レジスタファイル37−39におけるすべての物
理レジスタの集合は*U(universe:ユニバー
ス)として規定される。システムリセットにおいて、そ
の割当てられた可視レジスタは一致状態チェックポイン
ト*Vにおける可視レジスタの集合として規定され
る。同様にして、候補撤去点における可視レジスタのセ
ット、つまり、集合は*V、バックアップポイントは
*V、発行点は*Vとして規定される。すべての割
当てられていない物理レジスタの集合は、論理レジスタ
に割当てられなかったすべての物理レジスタを含む自由
(*F)集合として規定される。結果的に、すべての割
当てられた(*A)レジスタの集合は、レジスタ・ファ
イル37−39(ユニバース*U)におけるすべての物
理レジスタの集合からすべての割当てられない物理レジ
スタ(自由*F)の集合を差し引いたものとして規定さ
れ、集合表示では、“−”オペレータが集合差分を示す
として、量*U−*Fに等しい。
【0026】従って、シーケンサ20が命令を出すにつ
れて、論理レジスタは可視可能に且つ割当てられること
になる物理レジスタへとマップされる。論理レジスタが
新しい物理レジスタに割当てられる場合、古い物理レジ
スタは見えなくなる(アンマップされる)が、この古い
物理レジスタは、レジスタ割当てを生じさせた命令が撤
去されるまで割当てられたままに留まる。本質的に、本
発明において、可視可能な物理レジスタは割当てられな
ければならないが、割当てられる物理レジスタは可視可
能である必要がない。かくして、その一致点(cons
istentpoint)において、前に撤去されたす
べての命令の時間的な後方の光景は、*Aを一致点に
おける割当てられたレジスタの集合として、*V=*
といいう関係を生じる。簡単に云って、一致したチ
ェックポイント(リセットで)における可視レジスタの
集合*Vは一致した点における割当てられたレジスタ
の集合*Aに等しい。本質的に、シーケンサ20が命
令を出さなかったとすると、すべての可視可能な物理レ
ジスタも割当てられる。可視可能でないレジスタは、一
致した点の背後でのバックアップが許されないので、再
び可視可能にされない。結果的に、かかる可視可能でな
いつまり非可視レジスタはいづれでも割当てられない。
【0027】シーケンサ20が命令を出すにつれて、割
当てられた物理レジスタの集合はサイズにおいて生長す
るが、可視レジスタの集合はサイズにおいて一定に止ど
まる。この発生は、物理レジスタのアンマップされる場
合には、それをアンマップした命令が撤去するまで、シ
ステム10がその物理レジスタを割当て解除しないとい
う事実に起因している。かくして、集合表示は各種チェ
ックポイントにおける物理レジスタ割当てを規定するた
めに使用できる。従って、発行チェックポイント(*A
)における割当てられたレジスタの集合はバックアッ
プ(*A)での割当てられたレジスタの集合のスーパ
ーセットであり、それは一致点における割当てられたレ
ジスタの集合(*A)のスーパーセットである。
【0028】図5に示されているのは、本発明によるシ
ステム10に対する撤去シナリオ86を例示している図
である。撤去シナリオ86において、システム10は3
つのチェックポイント(C0,C1,及びC2)と、対
応する3つのグループの命令とを撤去している。撤去の
動作は、(R点に先立ち)システム10にて割当てら
れ、もはや可視可能でないいづれかの物理レジスタを割
当て解除する。本発明において、そこには、レジスタ割
当て解除に関した撤去作用の結果を支配する2つのルー
ルつまり規定がある。第1のルールは、物理レジスタ4
8がもはや撤去点における可視レジスタの集合(*
)のメンバーでないという仮定、そしてシーケンサ
20がシステム10を一致点(C点)から撤去点(R
点)へと進めているという仮定に基づいている。第1の
ケースにおいて、レジスタ・ファイル37−39での物
理レジスタ48はC点に先立って論理レジスタへとマッ
プされた。第1のルールの下で、この物理レジスタ48
は集合*V(一致点における可視レジスタの集合)及
び*A(その一致点における割当てられた物理レジス
タの集合)のメンバーである。システム10がC点から
R点へ前進し、そして物理レジスタ48がR点で可視可
能でない場合、レジスタ目録システムは、物理レジスタ
48がC点とR点との間で出される或る命令によりアン
マップされたことを確認する。本質的に、*V=*A
、しかも集合*A−*Vは割当て解除され物理レ
ジスタを表わすので、レジスタ目録システムは、割当て
解除され、そしてC点からR点へ前進した後に自由集合
*Fに加えられる物理レジスタを規定するのに集合関係
*V−*Vを使用する。
【0029】第2のルールは、量*ΔA(1,3)によ
り図5に例示されているように、物理レジスタがC点と
候補R点との間で割当てられたという仮定に基づいてい
る。本質的に、C点とR点との間でシーケンサ20によ
る出された命令は、自由集合からの物理レジスタの除
去、そして書かれる予定の行き先レジスタとしてそうし
た物理レジスタのLR CAM40−42による割当て
を行う。かくして、第2のケースでは、物理レジスタ4
8が、例えば、同一の論理レジスタに対する2つの引き
続く書込みの結果として、1つの発行点において割当て
られそして次の発行点において迅速に割当て解除される
ようにすることが考えられる。第2のケースにおいて、
物理レジスタ48はC点で可視可能でなかったし、R点
でも可視可能でないので、第1のルールは適用しない。
結果的に、第2のケースにおいて、割当て解除される物
理レジスタを規定する集合関係は、*ΔAをC点とR点
との間で割当てられた物理レジスタの集合として、*Δ
A−*Vである。本質的に、*ΔA−*Vは、もは
や可視可能でない2つのチェックポイント(すなわち、
A1,3)間で割当てられる物理レジスタの集合を表わ
している。2つの集合関係は、“+”オペレータを集合
ユニオンとして、全撤去割当て解除関係つまり(*ΔA
+*V)−*Vを形成するために組み合わされる。
量*ΔAの決定は或る微妙な困難を提示する。各チェッ
クポイントにおいてすべての割当てられた物理レジスタ
の集合*Aを単に記録し、それから、*ΔAを*A
−*Aとして規定するのは、いくらかの特定の状況に
対して不適当な方法である。
【0030】図6は、各チェックポイント*Aにおけ
るすべての割当てられた物理レジスタの集合を記録し、
それから、*ΔAを*A−*Aとして規定すること
が全撤去割当て解除方式を規定する方法として不適当な
場合の1例を示している。図6において、“PX”は物
理レジスタ・ナンバー“X”を表わし、“RX”は論理
レジスタ・ナンバー“X”を表わしている。初め、シス
テム10は空である。シーケンサ20が命令を出し始め
るにつれて、レジスタ目録システム90(図7)は、ど
の物理レジスタが可視可能(V)であったのかそして
どの物理レジスタが各発行チェックポイントにおいて割
当てられた(A)のかについての記録を始める。ここ
での例において、シーケンサ20はチェックポイントC
1において物理レジスタP0上へと論理レジスタR1を
マップする第1の命令を出す。図5において、可視可能
で且つ割当てられる波形は物理レジスタP0の状態変化
を表わしている。かくして、C1において、物理レジス
タP0はC1で割当てられたレジスタの集合*Aのメ
ンバーである。可視可能でしかも割当てられた波形によ
り示されているように、物理レジスタP0は今や可視可
能となって割当てられる。
【0031】次のサイクルにおいて、シーケンサ20
は、物理レジスタP0をアンマップし、そして論理レジ
スタ・ナンバーR1を物理レジスタ・ナンバーP2に対
してマップする命令を出す。ここで、両物理レジスタP
0及びP2は*A(チェックポイントC2で割当てら
れるすべてのレジスタの集合)のメンバーであるが、P
0は*V(チェックポイントC2において可視可能な
すべてのレジスタの集合)のメンバーでない。第3のサ
イクルにおいて、シーケンサ20の撤去ロジックはその
一致点をチェックポイントC2へ進める。物理レジスタ
P0は、再び可視可能にされないので、割当て解除され
るべきである。*ΔA=*A−*Aの関係を使用
し、これを撤去割当て解除式、つまり、((*ΔA+*
)−*V)へと挿入すると、レジスタ目録システ
ム90はP0を正しく割当て解除する。もしもシーケン
サ20が分枝命令C3を出すならば、レジスタについて
の割当て又はアンマッピングは生じない。次のクロック
中、シーケンサ20は、論理レジスタR4への書込みを
して、P0の割当てを行う命令を出す。結果的に、P0
は可視可能になり且つ割当てられることになる。次のク
ロックでは別な命令が再び論理レジスタR4に書込み、
それにより、物理レジスタP0が非可視可能にされる
が、割当て解除されない。“X”クロック期間中、シー
ケンサ20の撤去ロジックは一致状態をC5に進める。
P0は*AのメンバーでありそしてC2は古い一致点
であったので、*ΔAの将来の差分評価はP0を含まな
い。かくして、もしも論理レジスタR4が再び別な物理
レジスタへマップされ、そしてR4がマップされた点へ
システム10が撤去するならば、差分式*ΔAはP0を
割当て解除しない。この異例は、物理レジスタP0を
“紛失”レジスタにさせることになる。と云うのは、そ
れは決して自由プールに入らず、かくして、再割当ての
ために決して利用できないためである。
【0032】この異例は集合メンバーシップとしての割
当ての表示により生じ、以って、物理レジスタは集合*
Aのメンバーであるか又はそうでなく、かくして、割当
てをリターンツウゼロ(RZ)エンコーデングに対応さ
せる。本発明において、割当てはノン・リターンツウゼ
ロ(NRZ)エンコーディングに相当する。本発明にお
いて、包含的集合差分よりもむしろ、排他的集合差分
が、割当てを表わすために使用される。“x及びy”の
排他的差分は、関数(両方ではなくて、xかyのいづれ
か)により表わされるが、“x及びy”の包含的差分は
関数(xか又はyのいづれか)によって表わされる。排
他的集合差分を使用する利点は、それが絶対メンバーシ
ップよりはむしろ物理レジスタ・メンバーシップにおけ
る変化としての割当てを表わすことである。かくして、
その差分方程式は、オペレータ“Λ”を排他的集合差分
とし、*ΔA=(αΛα)となる。更に、集合表示
における変化はNRZエンコーデングを表わすために使
用される。従って、割当てられた物理レジスタの集合を
表わすのに*Aを使用するよりむしろ、記号αがセット
としての物理レジスタ割当て変更を表わすのに使用さ
れ、以って、αは一致点におけるレジスタ割当て変化
を表わし、そしてαは撤去点におけるレジスタ割当て
変更を表わしている。
【0033】リセットにおいて、割当てのために選ばれ
た物理レジスタの集合は任意である。図5の撤去シナリ
オ86を再び参照するに、集合αは、初め、空であ
る。チェックポイントC0とC1との間で、物理レジス
タP0は論理レジスタR1に割当てられ、それ故、物理
レジスタP0はαのメンバーとなる。従って、物理レ
ジスタP0の可視性フラグビットは可視性ラッチ76に
セットされる。チェックポイントC1及びC2間におい
て、物理レジスタP2は論理レジスタR1に割り当てら
れて、レジスタP0の可視性フラグビットがリセットさ
れるようにする。物理レジスタP0はC1とC2、C2
とC3との間で再割当てされなかったので、それは又、
集合α及びαのメンバーとなる。チェックポイント
C3及びC4間で、物理レジスタP0は論理レジスタR
4を表わすために再割当てされるので、物理レジスタP
0は再度可視可能にされる。排他的差分方程式を使用し
て、物理レジスタP0を集合αから除去する。NRZ
エンコーデングを使用した*ΔAの評価において、両
(αΛα)及び(αΛα)はP0をメンバーと
して含む。結果的に、そこには、前述の第2例でのよう
に、物理レジスタP0の紛失がない。これは、いづれか
の物理レジスタに対するアルファのせいぜい1回の推移
が現行の一致点と現行の発行点との間に存在するという
事実による。かくして、いづれか任意の数のチェックポ
イントの撤去は割当てのアルファNRZエンコーデング
を使用して行える。
【0034】また、バックアップ及び発行プロセスは物
理レジスタ配分のNRZエンコーデングから利益を受け
る。割当てられた各物理レジスタに対する発行の場合に
おいて、レジスタ目録システム90は、最後に出された
アルファ・ベクトルに関して、次のアルファ・ベクトル
における物理レジスタ・メンバーシップを反転する。か
くして、量“I−1”が最後に出されたチェックポイン
トを表わし、“I”が現に出されつつあるチェックポイ
ントを表わすとすると、発行に対してはα=(α
I−1Λ{割当てられる})という割当て解除式を生じ
る。バックアップの場合に、上述したプロセスは逆にな
る。選ばれたバックアップ・チェックポイントを使用す
ることで、レジスタ目録システム90は関連せる物理レ
ジスタの可視性ビット(V)及びアルファ値(α)を
チェックポイントが出された時点にそれらがあった状態
へと回復させ、そして発行チェックポイントとバックア
ップ・チェックポイントとの間に割当てられたいづれか
の物理レジスタを割当て解除する。従って、バックアッ
ププロセス中、NRZエンコーデングは、B及びIをそ
れぞれ、バックアップ及び最後の発行点として、バック
アップに対する割当て解除式つまり(αΛα)によ
り規定される。シーケンサ20は、現行の撤去点の前の
チェックポイントを決してバックアップしないので、2
つの割当て解除式は決して矛盾しない。かくして、本発
明において、バックアップと撤去とは同時に生ずること
になる。
【0035】本発明の好ましい履行において、すべての
集合はビット・フィールドを用いて表わされる。本質的
に、ビットは物理レジスタのメンバーシップを表わすた
めに使用され、以って、“0”ビットは非メンバーシッ
プを表わし、そして“1”ビットはメンバーシップを表
わしている。レジスタファイル37−39における各物
理レジスタは関連せるバックアップRAM92を持ち、
そして各バックアップRAM92はチェックポイント・
ナンバーにより割り出される。各バックアップRAM9
2(図7)は、RAM92と関連する物理レジスタに対
し、各チェックポイントにおいて、アルファ(α)及
び可視(V)ビットのコピーを記憶する。従って、バ
ックアップRAM92は可視可能な物理レジスタ48
(α、及びV)当り2ビット、セーブするので、
“n”物理レジスタに対する好ましい実施例において、
各アルファ及び可視ベクトルは“n”ビットを持ってい
る。かくして、もしもシーケンサ20が“k”のチェッ
クポイントを許すとすると、各RAM92は、“k”×
2דn”ビットとして構成される。RAM92の外
に、そこには、V,α,V及びαそれぞれの現
行値をセーブするための4つのラッチ94,96,98
及び100がある。
【0036】各物理レジスタ48は関連せるレジスタ目
録システム90(図7)を持っている。図7には、撤去
可自由(Retire Freeable)ロジック9
7、発行可自由ロジック101、及びバックアップ可自
由(Backup Freeable)ロジック108
がビットづつに基づいて示されている。従って、集合の
個別な値は普通の文字(すなわち、V)で示されてい
る。シーケンサ20は、バックアップRAM92に対し
て関連せるチェックポイントアドレスビット[A1:A
3]を与え、そしてラッチ100に対して発行制御(I
SSUE CONTROL)信号を与えることにより、
命令(チェックポイント)を出す。好ましい実施例にお
いて、チェックポイント・アドレスビットAはI点を
表わし、チェックポイント・アドレスビットAはR点
を表わし、そしてチェックポイント・アドレスビットA
はB点を表わしている。もしも出された命令が書かれ
るべきレジスタを何も必要としないとすると、新しい物
理レジスタはLR CAM40−42により割当てられ
ない。出された命令が物理レジスタの割当てを必要とす
る場合、割当て(ALLOCATE)信号は、前にも述
べたように、物理レジスタが割当てられるようにする。
従って、割当て信号が肯定され、そしてラッチ100か
ら現にラッチされるアルファ値αは排他的XORゲー
ト101に与えられる。XORゲート101は、新しく
割当てられる物理レジスタ48に対するαi+1の新し
い値を形成するために現にラッチされるアルファ値α
を使用する。その後、この新しい値αi+1はバックア
ップRAM92へコピーされ、そして新しいαにな
る。また、新しく割当てられた物理レジスタ48に対す
る可視ビットVはRAM92へとコピーされる。新し
いアルファ値αI+1及び可視ビットVのコピーをセ
ーブした後、レジスタ目録システム90はそれぞれの新
しい値でもってラッチ98及びラッチ100を更新す
る。従って、割当てられた各物理レジスタに対するアル
ファ値及び可視ビットは対応するチェックポイントアド
レスで、バックアップRAM92にセーブされる。かく
して、各チェックポイントに対して、レジスタ目録シス
テム90は物理レジスタの割当てのスナップショットを
維持する。
【0037】シーケンサ20が1セットのチェックポイ
ントを撤去すると、レジスタ目録システム90はどの物
理レジスタを割当て解除すべきかを決定するためにRA
M92から読み出された値を使用する。撤去可自由ロジ
ック97は、撤去点における可視レジスタの集合*V
の外に、割当てられた可視レジスタの集合*Vの現行
の値及び排他的集合差分αΛαに基づいて、どの物
理レジスタを割当て解除すべきかを決定する。従って、
シーケンサ20は撤去制御信号を肯定し、それにより、
ラッチ94及び96が、ビットごとのベースで、撤去可
自由ロジック97に対してそれぞれ、V及びαの現
に記憶された値を与えるのを可能にする。V及びα
の現に記憶されている値はバックアップRAM92の撤
去ポートから読み出されて、撤去可自由ロジック97に
対して与えられる。従って、XORゲート102はα
の現に記憶されている値をラッチ96からそしてα
RAM92から受け、排他的集合差分ΔA=(αΛα
)をORゲート104の第1の入力に与える。ORゲ
ート104は排他的集合差分ΔA及びVの現に記憶さ
れている値をラッチ94から受けて、出力(ΔA+
)をゲート106に与える。また、ゲート106
は、第2の入力端子において、Vの現に記憶されてい
る値を反転した形態で受信し、そしてビットごとのベー
スで、撤去割当て解除式((ΔA+V)−V)を出
力として与える。かくして、ゲート106の単一ビット
出力は、関連せる物理レジスタがそれをアンマップした
命令の撤去により自由になったかどうかを決定する。従
って、ゲート106の集合的出力ビットはどの物理レジ
スタがLR CAM40−42により割当て解除される
のかを決定する。撤去の完了に際して、ラッチ94及び
96は、RAM92から前に読み出された値、つまりV
及びαでもってそれぞれ更新される。
【0038】シーケンサ20が特定のチェックポイント
に対してバックアップする場合、RAM92から読まれ
たアルファ値αの集合は、どの物理レジスタが自由プ
ールに戻されるのかを決定するために発行αでの排他
的集合差分と組み合わされる。本発明の好ましい実施例
において、バックアップと発行とは同時に生じることは
ない。結果的に、バックアップ制御信号が肯定される場
合、発行制御信号は肯定されない。選ばれたチェックポ
イントを使用することにより、目録レジスタ・システム
90は、アルファ(α)及び可視(V)ビットの両
方を、チェックポイントが出された時点にそれらがあっ
た状態へと回復させる。そうする際、目録レジスタシス
テム90はいづれかの割当てられたレジスタを割当て解
除し、つまり(αΛα)とし、そしてその割当て解
除された物理レジスタを自由プールに戻す。従って、シ
ーケンサ20はバックアップ制御信号を肯定し、それに
より、ラッチ100がαの現にラッチされている値を
XORゲート108に与えることを可能にする。α
現に記憶されている値はRAM92によってゲート10
8に与えられる。XORゲート108はα及びα
を受けて、バックアップでの記憶されているアルファ値
(α)と発行でのラッチされたアルファ値(α)と
の間における排他的差分を表わしている出力を与える。
かくして、ゲート108の単一ビット出力は、関連せる
物理レジスタが自由プールに戻されるかどうかを決定す
る。従って、ゲート106の集合的出力ビットは、どの
物理レジスタがLR CAM40−42により自由プー
ルへ戻されるかを決定する。バックアップの終了に際し
て、ラッチ76及び100はRAM92から前に読まれ
た値すなわちV及びαをそれぞれでもって更新され
る。
【0039】本発明において、システム90は自由レジ
スタ目録ロジック103を使用して各関連せる物理レジ
スタの自由ステータスの目録を維持する。本質的に、自
由レジスタ目録ロジック103は、撤去、バックアップ
のようなその関連せる物理レジスタを自由プールに戻す
活動、そしてそれらレジスタを自由プールから除去する
(すなわち配分)する活動を追跡している。ラッチ11
4は関連せる物理レジスタの自由な又は自由でないステ
ータスを示す“自由”(F)ビットのステータスを記憶
する。前にも示したように、リセットにおいて、すべて
の非可視物理レジスタは自由プールにあり、それ故、レ
ジスタ・ファイル37−39でのすべての非可視物理レ
ジスタに対して、その自由ビットはセットにおいてセッ
トされる。ORゲート110は、撤去可自由及びバック
アップ可自由ロジック97及び108の出力にそれぞれ
結合された入力、自由ラッチ114に結合された入力を
有する。シーケンサ20がチェックポイントを撤去する
か又はチェックポイントに対してバックアップする場合
にはいつでも、ゲート110は自由ビットのステータス
をゲート112に与える。また、ゲート112は、反転
された入力で、割当て信号を受信し、そしてラッチ11
4に記憶されている“自由”ビットの状態を規定してい
る出力信号を与える。集合的に、システム90の自由レ
ジスタ目録ロジック103は、“自由な”物理レジス
タ、“割当てられた”物理レジスタ、シーケンサ20に
よる撤去つまりバックトラッキングに因り“可自由(f
reeable)”である物理レジスタ、そして配分に
よりもはや自由でない物理レジスタのリストを維持す
る。
【0040】かくして、本発明において、シーケンサ2
0が命令を出す場合、関連せる論理的(アーキテクチャ
による)レジスタはLR CAM40−42により物理
レジスタ48へと迅速に翻訳(マップ)され、新しいチ
ェックポイント・ナンバーがその命令のために割当てら
れる。レジスタ・ファイル37−39における各物理レ
ジスタ48は各チェックポイント・ナンバーに関連した
レジスタ情報を記憶する関連せる3ポート・バックアッ
プRAM92を持っている。好ましい実施例において、
バックアップRAM92は予め決められた数のチェック
ポイントの深さと、2ビットの幅を有する。バックアッ
プRAM92は、物理レジスタの状態変化(すなわち、
可視の割当て、非可視の割当て)を表わしている可視
(V)及びアルファ(α)ビットの値を記憶する。物理
レジスタの状態変化はLR CAM40−42のレジス
タ目録システム90によって監視される。シーケンサ2
0が特定のチェックポイントに対するバックアップを必
要とする場合、アルファ及び可視ビット値はバックアッ
プRAM92から読み出され、そしてどのレジスタが自
由プールへ戻されるのかを決定するためにレジスタ目録
システム90によって使用される。同様にして、命令が
完了(終了)した場合、その命令は撤去され、そしてレ
ジスタ目録システム90は自由プールに戻される物理レ
ジスタを決定する。システムの撤去可自由ロジック97
及びバックアップ可自由ロジック108は同時的命令撤
去およびバックアップが前以って規定された単位時間に
おいて生じるのを許容する。
【0041】以上、本発明が好ましい実施例において記
述されたが、開示された発明は幾多の仕方において修正
できしかも前に特定的に記述された以外の多くの実施例
を取れることは当業者にとって明らかであろう。従っ
て、添付せる特許請求の範囲は本発明の精神及び範囲内
に入る本発明のすべての修正を含むものと理解された
い。
【0042】
【発明の効果】以上のように、本発明によれば、データ
を物理的に動かすことなく可変数の命令を同時に高速度
で実行可能となる。
【図面の簡単な説明】
【図1】本発明のデータ処理ユニットの好ましい実施例
を例示しているブロック図である。
【図2】本発明による、図1のデータ処理システムの論
理レジスタ内容アドレス指定可能メモリ(LR CA
M)を例示しているブロック図である。
【図3】本発明による、図1のデータ処理システムの物
理レジスタに対するレジスタ状態図である。
【図4】図1のデータ処理システムにおける命令発行の
進行を例示している説明図である。
【図5】本発明による命令撤去シナリオを例示している
説明図である。
【図6】撤去割当て方式を規定するための別な方法を例
示している説明図である。
【図7】図2のLA CAMの単一レジスタ目録システ
ムを例示している部分的概略図である。
【符号の説明】
10 データ処理システム 12 インストラクション・バッファ 14 バス・インタフェース・ユニット 16 デコーダ 18 被復号命令キャッシュ 20 シーケンサ 22 データ・キャッシュ 24 条件キャッシュ 25,…,30 ファンクション・ユニット 31,…,36 保留ステーション 37,38,39 レジスタファイル 40,41,42 LR CAM
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ミッチェル・アルスプ アメリカ合衆国テキサス州78620、ドリッ ピング・スプリングス、スパニッシュ・オ ーク・レーン 4007

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 シーケンサ(20)により出される複数
    の命令を同時に実行するための予め決められた数の実行
    ユニット(25−30)と、前記予め決められた数の命
    令の各々の前記実行ユニット(25−30)による実行
    から生ずる情報を選択的に記憶するためのレジスタファ
    イル(37)における複数の番号付けされた物理レジス
    タと、そして同時的命令撤去及びバックトラッキングを
    行うための手段(90)とを持つデータ処理システム
    (10)において:第1の一致チェックポイントから引
    き続く撤去チェックポイントへ進む前記シーケンサ(2
    0)に応答して、前記物理レジスタの各々の割当て状態
    変化を監視するための第1の手段(94,96,97)
    と;第1のバックアップチェックポイントと引き続く発
    行チェックポイントとの間で出される一連の命令を捨て
    る前記シーケンサ(20)に応答して、前記物理レジス
    タの各々の前記割当て状態変化を同時に監視するための
    第2の手段(76,100,101,108)と、 を備えていることを特徴とするデータ処理システム。
  2. 【請求項2】 シーケンサ(20)により出される複数
    の命令を同時に実行するための予め決められた数の実行
    ユニット(25−30)と、前記予め決められた数の命
    令の各々の前記実行ユニット(25−30)による実行
    から生ずる複数のデータ値を選択的に記憶するためのレ
    ジスタファイル(37)における複数の番号付けされた
    物理レジスタと、そして同時的命令撤去及びバックトラ
    ッキングを行うための手段とを持つデータ処理システム
    (10)において:第1の一致チェックポイントから引
    き続く撤去チェックポイントへ進む前記シーケンサ(2
    0)に応答して、前記物理レジスタの各々の割当て状態
    変化を監視するための第1の手段(94,96,97)
    と;バックアップチェックポイントと引き続く発行チェ
    ックポイントとの間で出される一連の命令を捨てる前記
    シーケンサ(20)に応答して、前記物理レジスタの各
    々の前記割当て状態変化を監視するための第2の手段
    (76,100,101,108)と、 を備え、前記複数のデータ値は、前記第1の手段(9
    4,96,97)又は前記第2の手段(76,100,
    101,108)の監視動作中、前記番号付けされた物
    理レジスタ間ではまったく転送されないことを特徴とす
    るデータ処理システム。
  3. 【請求項3】 シーケンサ(20)により出される複数
    の命令を同時に実行するための予め決められた数の実行
    ユニット(25−30)と、前記予め決められた数の命
    令の各々の前記実行ユニット(25−30)による実行
    から生ずる複数のデータ値を選択的に記憶するためのレ
    ジスタファイル(37)における複数の番号付けされた
    物理レジスタと、そして同時的命令撤去及びバックトラ
    ッキングを行うための手段(90)とを持つデータ処理
    システム(10)において:一意の物理レジスタ(4
    8)に連結されていて、前記シーケンサ(20)からの
    第1の制御信号に応答して第1のセットのビットを選択
    的に検索して記憶し、そして前記シーケンサ(20)か
    らの第2の制御信号に応答して第2のセットのビットを
    選択的に検索して記憶するための記憶手段(76,9
    2,94,96,100)と;前記記憶手段(76,9
    2,94,96,100)に結合されていて、第1の一
    致チェックポイントから引き続く撤去チェックポイント
    へ進む前記シーケンサ(20)に応答して、前記物理レ
    ジスタの各々の割当て状態変化を監視するための撤去手
    段(97)であって、該撤去手段(97)は前記第1の
    セットのビットを検索し、撤去チェックポイントで前記
    一意の物理レジスタ(48)を割当て解除すべきかどう
    かを決定するために前記第1のセットのビットを論理的
    に組合わせ、そしてそれを表わしている第1の出力割当
    て解除信号を付与するようになっているものと;第1の
    チェックポイントと引き続く発行チェックポイントとの
    間で出される一連の命令を捨てる前記シーケンサ(2
    0)に応答して、前記物理レジスタの各々の前記割当て
    状態変化を同時に監視するためのバックトラック手段
    (101,108)であって、前記バックトラック手段
    (101,108)は前記第2のセットのビットを検索
    し、バックアップ・チェックポイントで前記一意の物理
    レジスタ(48)を割当て解除するかどうかを決定する
    ために前記第2のセットのビットを論理的に組合わせ、
    そしてそれを表わしている第2の出力割当て解除信号を
    与えるようになっているものと;前記撤去手段(97)
    及び前記バックトラック手段(101,108)に結合
    されていて、前記シーケンサ(20)による再割当ての
    ために利用可能な1セットの物理レジスタを規定するた
    めに、前記第1の出力割当て解除信号及び前記第2の出
    力割当て解除信号を論理的に組合せるための手段(10
    3)と、 を備えていることを特徴とするデータ処理システム。
JP4148687A 1991-05-21 1992-05-15 同時的命令撤去及びバックトラッキングを行なうためのデータプロセッサ Pending JPH05216663A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/703,531 US5355457A (en) 1991-05-21 1991-05-21 Data processor for performing simultaneous instruction retirement and backtracking
US703,531 1991-05-21

Publications (1)

Publication Number Publication Date
JPH05216663A true JPH05216663A (ja) 1993-08-27

Family

ID=24825754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4148687A Pending JPH05216663A (ja) 1991-05-21 1992-05-15 同時的命令撤去及びバックトラッキングを行なうためのデータプロセッサ

Country Status (3)

Country Link
US (1) US5355457A (ja)
EP (1) EP0515166A1 (ja)
JP (1) JPH05216663A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076083A (ja) * 1995-02-14 2009-04-09 Fujitsu Ltd 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
EP0529303A3 (en) * 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
JP3730252B2 (ja) 1992-03-31 2005-12-21 トランスメタ コーポレイション レジスタ名称変更方法及び名称変更システム
JP3637920B2 (ja) * 1992-05-01 2005-04-13 セイコーエプソン株式会社 スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
US5481683A (en) * 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
GB2272549B (en) * 1992-11-03 1997-01-29 Tolsys Ltd Memory checkpointing
US6282629B1 (en) * 1992-11-12 2001-08-28 Compaq Computer Corporation Pipelined processor for performing parallel instruction recording and register assigning
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp., Tokio/Tokyo System und Verfahren zur Änderung der Namen von Registern
US5604912A (en) * 1992-12-31 1997-02-18 Seiko Epson Corporation System and method for assigning tags to instructions to control instruction execution
JPH06242948A (ja) * 1993-02-16 1994-09-02 Fujitsu Ltd パイプライン処理計算機
US5560025A (en) * 1993-03-31 1996-09-24 Intel Corporation Entry allocation apparatus and method of same
CA2125607A1 (en) * 1993-06-30 1994-12-31 David Thielen Method and system for buffering transient data
US5548776A (en) * 1993-09-30 1996-08-20 Intel Corporation N-wide bypass for data dependencies within register alias table
US5613132A (en) * 1993-09-30 1997-03-18 Intel Corporation Integer and floating point register alias table within processor device
US5471633A (en) * 1993-09-30 1995-11-28 Intel Corporation Idiom recognizer within a register alias table
US5826094A (en) * 1993-09-30 1998-10-20 Intel Corporation Register alias table update to indicate architecturally visible state
US5499352A (en) * 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
US5740393A (en) * 1993-10-15 1998-04-14 Intel Corporation Instruction pointer limits in processor that performs speculative out-of-order instruction execution
DE69425311T2 (de) * 1993-10-18 2001-03-15 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Mikroprozessor mit spekulativer Befehlsausführung
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
GB2284493B (en) * 1993-12-01 1998-04-01 Intel Corp Exception handling in a processor that performs speculative out-of-order instruction execution
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
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
US6101597A (en) * 1993-12-30 2000-08-08 Intel Corporation Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor
US5918046A (en) * 1994-01-03 1999-06-29 Intel Corporation Method and apparatus for a branch instruction pointer table
US6047369A (en) * 1994-02-28 2000-04-04 Intel Corporation Flag renaming and flag masks within register alias table
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
GB2287111B (en) * 1994-03-01 1998-08-05 Intel Corp Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer
US5535346A (en) * 1994-07-05 1996-07-09 Motorola, Inc. Data processor with future file with parallel update and method of operation
US6237082B1 (en) 1995-01-25 2001-05-22 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received
US5878244A (en) * 1995-01-25 1999-03-02 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage capable of storing results corresponding to a maximum number of concurrently receivable instructions regardless of a number of instructions received
US5901302A (en) 1995-01-25 1999-05-04 Advanced Micro Devices, Inc. Superscalar microprocessor having symmetrical, fixed issue positions each configured to execute a particular subset of instructions
US5903741A (en) * 1995-01-25 1999-05-11 Advanced Micro Devices, Inc. Method of allocating a fixed reorder buffer storage line for execution results regardless of a number of concurrently dispatched instructions
US5740414A (en) * 1995-02-14 1998-04-14 Hal Computer Systems, Inc. Method and apparatus for coordinating the use of physical registers in a microprocessor
JP3670290B2 (ja) * 1995-02-14 2005-07-13 富士通株式会社 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法
EP0727736A3 (en) * 1995-02-14 1997-04-16 Hal Computer Systems Inc Method and device for efficient writing of results in registers with changed names
US5675759A (en) * 1995-03-03 1997-10-07 Shebanow; Michael C. Method and apparatus for register management using issue sequence prior physical register and register association validity information
US5634118A (en) * 1995-04-10 1997-05-27 Exponential Technology, Inc. Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US5708837A (en) * 1995-06-30 1998-01-13 International Business Machines Corporation Method and apparatus for register renaming in a computer system using a separate arithmetic available queue
US5765215A (en) * 1995-08-25 1998-06-09 International Business Machines Corporation Method and system for efficient rename buffer deallocation within a processor
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5694565A (en) * 1995-09-11 1997-12-02 International Business Machines Corporation Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US5706489A (en) * 1995-10-18 1998-01-06 International Business Machines Corporation Method for a CPU to utilize a parallel instruction execution processing facility for assisting in the processing of the accessed data
US5911057A (en) * 1995-12-19 1999-06-08 Texas Instruments Incorporated Superscalar microprocessor having combined register and memory renaming circuits, systems, and methods
US5802573A (en) * 1996-02-26 1998-09-01 International Business Machines Corp. Method and system for detecting the issuance and completion of processor instructions
US5790821A (en) * 1996-03-08 1998-08-04 Advanced Micro Devices, Inc. Control bit vector storage for storing control vectors corresponding to instruction operations in a microprocessor
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
US5745780A (en) * 1996-03-27 1998-04-28 International Business Machines Corporation Method and apparatus for source lookup within a central processing unit
US5841999A (en) * 1996-04-17 1998-11-24 International Business Machines Corporation Information handling system having a register remap structure using a content addressable table
US5822560A (en) * 1996-05-23 1998-10-13 Advanced Micro Devices, Inc. Apparatus for efficient instruction execution via variable issue and variable control vectors per issue
US5946468A (en) * 1996-07-26 1999-08-31 Advanced Micro Devices, Inc. Reorder buffer having an improved future file for storing speculative instruction execution results
US5872951A (en) * 1996-07-26 1999-02-16 Advanced Micro Design, Inc. Reorder buffer having a future file for storing speculative instruction execution results
US5915110A (en) * 1996-07-26 1999-06-22 Advanced Micro Devices, Inc. Branch misprediction recovery in a reorder buffer having a future file
US5983342A (en) * 1996-09-12 1999-11-09 Advanced Micro Devices, Inc. Superscalar microprocessor employing a future file for storing results into multiportion registers
US5802338A (en) * 1996-10-01 1998-09-01 International Business Machines Corporation Method of self-parallelizing and self-parallelizing multiprocessor using the method
US5870612A (en) * 1996-10-15 1999-02-09 International Business Machines Corporation Method and apparatus for condensed history buffer
US5805906A (en) * 1996-10-15 1998-09-08 International Business Machines Corporation Method and apparatus for writing information to registers in a data processing system using a number of registers for processing instructions
US5860014A (en) * 1996-10-15 1999-01-12 International Business Machines Corporation Method and apparatus for improved recovery of processor state using history buffer
US6070235A (en) * 1997-07-14 2000-05-30 International Business Machines Corporation Data processing system and method for capturing history buffer data
US6438740B1 (en) * 1997-08-21 2002-08-20 Compaq Information Technologies Group, L.P. System and method for dynamically identifying free registers
US6237077B1 (en) * 1997-10-13 2001-05-22 Idea Corporation Instruction template for efficient processing clustered branch instructions
US5995960A (en) * 1998-04-08 1999-11-30 International Business Machines Corporaiton Method and system for improving efficiency of programs utilizing databases by exeuting scenarios based on recalled processed information
US6230262B1 (en) * 1998-07-31 2001-05-08 Advanced Micro Devices, Inc. Processor configured to selectively free physical registers upon retirement of instructions
US6421758B1 (en) 1999-07-26 2002-07-16 International Business Machines Corporation Method and system for super-fast updating and reading of content addressable memory with a bypass circuit
US6817011B1 (en) 1999-12-14 2004-11-09 International Business Machines Corporation Memory allocation profiling to discover high frequency allocators
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US7072916B1 (en) * 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US20030217356A1 (en) * 2002-01-10 2003-11-20 Leonid Baraz Register allocation for program execution analysis
CN100349125C (zh) * 2003-04-26 2007-11-14 华为技术有限公司 一种对寄存器进行巡检校验的方法
US7069411B1 (en) 2003-08-04 2006-06-27 Advanced Micro Devices, Inc. Mapper circuit with backup capability
US8443030B1 (en) 2007-03-09 2013-05-14 Marvell International Ltd. Processing of floating point multiply-accumulate instructions using multiple operand pathways
US7877559B2 (en) * 2007-11-26 2011-01-25 Globalfoundries Inc. Mechanism to accelerate removal of store operations from a queue
US10241800B2 (en) 2015-06-16 2019-03-26 International Business Machines Corporation Split-level history buffer in a computer processing unit
US11294683B2 (en) 2020-03-30 2022-04-05 SiFive, Inc. Duplicate detection for register renaming

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201057A (en) * 1987-01-22 1993-04-06 Uht Augustus K System for extracting low level concurrency from serial instruction streams
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
JP2752076B2 (ja) * 1988-02-23 1998-05-18 株式会社東芝 プログラマブル・コントローラ
US5197132A (en) * 1990-06-29 1993-03-23 Digital Equipment Corporation Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076083A (ja) * 1995-02-14 2009-04-09 Fujitsu Ltd 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法

Also Published As

Publication number Publication date
US5355457A (en) 1994-10-11
EP0515166A1 (en) 1992-11-25

Similar Documents

Publication Publication Date Title
JPH05216663A (ja) 同時的命令撤去及びバックトラッキングを行なうためのデータプロセッサ
US7496735B2 (en) Method and apparatus for incremental commitment to architectural state in a microprocessor
KR100292300B1 (ko) 레지스터재명명시스템및방법
KR100334479B1 (ko) 컴퓨터 처리 시스템에서 로드 동작의 순서 변경 방법 및 장치
US7228402B2 (en) Predicate register file write by an instruction with a pending instruction having data dependency
JP3824006B2 (ja) スーパースケーラマイクロプロセサ
KR102659813B1 (ko) 레지스터 리네이밍을 사용한 무브 명령어 처리
US5740414A (en) Method and apparatus for coordinating the use of physical registers in a microprocessor
JPS61105653A (ja) 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置
JP2006163474A (ja) 記憶装置、その制御方法及びプログラム
EP0646861B1 (en) A history buffer system
JPH05241830A (ja) 論理レジスタ内容アドレス可能メモリを有するデータプロセッサ
US5860014A (en) Method and apparatus for improved recovery of processor state using history buffer
US5870612A (en) Method and apparatus for condensed history buffer
US20230077629A1 (en) Assignment of microprocessor register tags at issue time
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
US6829693B2 (en) Auxiliary storage slot scavenger
EP0863460B1 (en) Management of renamed registers in a superscalar computer system
JPH0156411B2 (ja)
Song Reducing register pressure through LAER algorithm