JP2769097B2 - アドレス変換方法及びデータ処理装置 - Google Patents

アドレス変換方法及びデータ処理装置

Info

Publication number
JP2769097B2
JP2769097B2 JP5221758A JP22175893A JP2769097B2 JP 2769097 B2 JP2769097 B2 JP 2769097B2 JP 5221758 A JP5221758 A JP 5221758A JP 22175893 A JP22175893 A JP 22175893A JP 2769097 B2 JP2769097 B2 JP 2769097B2
Authority
JP
Japan
Prior art keywords
address
translation
conversion
instruction
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
JP5221758A
Other languages
English (en)
Other versions
JPH06187152A (ja
Inventor
タン・ビエット・チュー
チャールズ・ロバーツ・ムーア
ジョン・ステファン・ムューニック
テレンス・マシュー・ポッター
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06187152A publication Critical patent/JPH06187152A/ja
Application granted granted Critical
Publication of JP2769097B2 publication Critical patent/JP2769097B2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチスカラ・データ
処理システム、より詳細に言えば、マルチスカラ・デー
タ処理システムにおいて、命令アドレスを変換する方法
及び装置に関する。更に本発明を具体的に言えば、本発
明は、マルチスカラ・データ処理システムにおいて、分
散された命令アドレス変換を行うための方法及び装置に
関する。
【0002】
【従来の技術】最新式のデータ処理システムの設計者
は、データ処理システムの性能面を強化するための努力
を続けている。データ処理システムの効率を強化するた
めの1つの技術は、サイクル時間を短縮することと、1
命令あたりのサイクル数(Cycle's-per-Instruction-CP
I)を少なくすることを達成する技術である。データ処
理システムの性能を向上するために、これらの技術を適
用した代表的な例としては、IBM社のRISCシステ
ム/6000(RS/6000)コンピユータがある。
RS/6000コンピユータ・システムは、数値計算を
主とした技術用及び科学用のアプリケーシヨンと、商業
的な利用分野で複数のユーザ用のアプリケーシヨンを遂
行するのに設計されている。RS6000のプロセツサ
は、複数の命令が同時に発生され、実行されることを意
味するマルチスカラ動作を採用している。
【0003】複数の命令の発生及び実行を同時に行なう
ことは、高い帯域幅で命令を同時に実行することのでき
る独立した機能ユニツトを必要とする。RS/6000
コンピユータ・システムは、処理がパイプライン化され
たブランチ用、固定小数点用及び浮動小数点用の独立し
た処理ユニツトを用いることによつて上述のことを達成
している。このようなシステムにおいては、条件付きブ
ランチ命令の実行が原因となつて、パイプライン処理に
よる著しい遅延が生じる。条件付きブランチ命令とは、
選択された1つ、またはそれ以上の命令の処理結果に応
答して、アプリケーシヨン中の特定の条件付きブランチ
を実行する命令である。従つて、動作時間の遅延を避け
るためには、条件付きブランチ命令がパイプラインの待
ち行列を通つてパイプラインの待ち行列中の実行位置に
進む時間までに、条件付きブランチ命令の背後の待ち行
列中の命令を、条件付きブランチの決定に先立ちロード
することが必要である。
【0004】マルチスカラ・データ処理システムにおい
て生じる遅延の他の原因は、マルチスカラ・データ処理
システムが、同時に複数のタスクを実行することにあ
る。通常、これらの複数のタスクの各々は、そのタスク
を実行するために用いられる仮想アドレス空間、即ち、
有効アドレス空間を持つている。そのような仮想アドレ
ス空間、即ち有効アドレス空間内の位置は、システム・
メモリ中の実アドレスに「マツプ」するアドレスを含ん
でいる。実メモリ中の1つの空間に対して、有効メモリ
の複数のアドレス、即ち仮想メモリの複数のアドレスを
マツプすることは通常行なわれていない。複数のタスク
の各々による有効アドレス、即ち仮想アドレスの使用
は、これらのアドレスをシステム・メモリ中の実アドレ
スに変換する必要があることが原因となつて、マルチス
カラ・データ処理システム内に付加的な遅延を生じるの
で、マルチスカラ・データ処理システムを構成する複数
の独立した機能ユニツトの1つに送るために、適当な命
令、またはデータがメモリから検索され、そして命令待
ち行列の中に置かれる。
【0005】この問題は複数のトランザクシヨン機構が
使用されるということによつて更に悪くなる。例えば、
ページ・テーブル変換(PTE)は、メモリの有効ペー
ジ、即ち仮想ページをページ・システムのメモリ中のメ
モリの実際のぺージにマツプするが、均一のサイズの変
換オブジエクトが用いられる。然しながら、アドレス・
ブロツク変換(BAT)は、128キロバイトのアドレ
ス・ブロツクから8メガバイトのアドレス・ブロツクま
でのサイズにわたる変換オブジエクトをマツプするため
に用いられる。従つて、変換アルゴリズム中の多様性
と、アプリケーシヨンの実行中に各有効命令アドレスを
実命令アドレスに変換する必要性とが、マルチスカラ・
データ処理システムにおいて著しい遅延を生じることに
なる。
【0006】この変換の問題は命令の実行時に特に厄介
な問題であり、そして、従来の多くのマルチスカラ・デ
ータ処理システムにおいて、命令の検索は、命令を検索
した後に、独立したプロセツサの1つにこれらの命令を
デイスパツチする所謂「フエツチヤ(取り出し装置)」
を使用して達成される。従来のマルチスカラ・データ処
理システムは、「ページ内(in-page)」フエツチング
ができる命令フエツチヤを含んでいる。つまり、この命
令フエツチヤはアドレスを変換する能力を持たず、メモ
リ中の単一の特定のページから命令をプリフエツチする
能力しかない。その代わり、「ページ外(out-of-pag
e)」フエツチヤは、命令アドレスの変換索引バツフア
(translation lookaside buffer-TLB)、セグメント・
レジスタのアクセス及び別々の変換ユニツトの全関連オ
ーバヘツドを要求される。このような能力は、アドレス
の変換及びメモリの管理のために与えられていたメモリ
管理ユニツトの能力に加えて新たに要求される。
【0007】多数のハードウエア原資を必要とせず、ア
クセスに必要な固有の遅延を最小限にとどめ、かつシス
テム・メモリの管理ユニツトを頻繁に使用しないで、有
効命令アドレスを実命令アドレスに迅速かつ効率的に変
換することのできる命令フエツチヤを得ることについて
利益があることは、当業者であれば上述の説明から容易
に理解できるであろう。
【0008】
【発明が解決しようとする課題】本発明の目的は新規な
マルチスカラ・データ処理システムを提供することにあ
る。
【0009】本発明の他の目的は、マルチスカラ・デー
タ処理システムにおいて、命令アドレスを変換するため
の新規な方法及び装置を提供することにある。
【0010】本発明の他の目的は、マルチスカラ・デー
タ処理システムにおいて、命令アドレスの分散された変
換処理を行なう新規な方法及び装置を提供することにあ
る。
【0011】
【課題を解決するための手段】本発明は、実アドレスで
メモリ中に記憶された複数のタスク、命令及びデータを
実行するための複数個のプロセツサ・ユニツトと、その
プロセツサ・ユニツトへ命令を取り出してデイスパツチ
するフエツチヤ・ユニツトとを有するマルチスカラ・デ
ータ処理システムにおいて、分散された命令アドレスの
変換方法及び装置を与える。本発明の実施例のシステム
は、データ処理システムの中のすべての有効アドレスを
メモリの中の実アドレスに変換するページ・テーブル型
及びアドレス・ブロツク型の変換装置を実施するための
変換バツフア及び変換アルゴリズム実行部を含むメモリ
管理ユニツト(MMU)が設けられている。有効アドレ
スを実アドレスに変換するための少数の変換オブジエク
トを含む変換アレイがフエツチヤ・ユニツトの中に設け
られている。変換オブジエクトは、フエツチヤ・ユニツ
ト中で有効アドレスを実アドレスに変換し損なうことに
応答して、メモリ管理ユニツト(MMU)の変換能力を
用いて、周期的にかつ選択的に変更される。このように
して、フエツチヤ・ユニツトは、メモリ管理ユニツト
(MMU)へ連続してアクセスすることなく、かつ、そ
のようなアクセスに伴つて付随した効率の低下を生じる
ことなく、有効アドレスを実アドレスに効率的に変換す
ることができる。変換アレイ中の変換オブジエクトは、
フエツチヤが有効アドレスを実アドレスに変換し損なう
たびに、最長時間未使用(the least recently utiliza
tion-LRU)の変換オブジエクトを新しく決定された
変換オブジエクトで置換するのが望ましい。予測された
条件付きブランチ命令の場合、使用状態(LRU)は、
一時的に記憶され、その後、若し予測された条件付きブ
ランチが誤りであると決定された場合に、変換アレイ
を、直前の使用状態(LRU)に復元するのに使用され
る。このようにして、変換アレイの直前の使用状態(L
RU)は、正しくない経路予測によつて改ざんされるこ
とはない。
【0012】
【実施例】図1を参照すると、本発明を適用するのに用
いられるマルチスカラ・コンピユータ・システム10の
高レベルのブロツク図が示されている。図示されている
ように、マルチスカラ・コンピユータ・システム10
は、データ、命令等を記憶するのに用いられるメモリ1
8を含むのが望ましい。メモリ18の中に記憶されたデ
ータまたは命令は、この分野で公知の方法で、キヤツシ
ユ/メモリ・インターフエース20を用いてアクセスさ
れるのが望ましい。キヤツシユ・メモリ・システムの大
きさ及び利用方法は、公知なのでこれ以上の説明はしな
い。然しながら、最近の連想キヤツシユ・メモリ技術を
用いることによつて、メモリ・アクセスの大部分は、キ
ヤツシユ/メモリ・インターフエース20の中に一時的
に記憶されたデータを用いて行なわれることは当業者に
は容易に理解できるであろう。
【0013】キヤツシユ/メモリ・インターフエース2
0からの命令は、通常、複数個の待ち行列の位置を持つ
のが好ましい命令待ち行列22の中にロードされる。マ
ルチスカラ・コンピユータ・システムの代表的な例にお
いて、命令待ち行列は8個の待ち行列位置を含んでいる
ので、キヤツシユ/メモリ・インターフエース20によ
つていくつの有効な命令が通され、どの位の大きさの空
間が命令待ち行列22で利用可能かに従つて、与えられ
たサイクルで、0から8個の間の命令が命令待ち行列に
ロードされる。
【0014】代表的なマルチスカラ・コンピユータ・シ
ステムと同じように、命令待ち行列22は、命令を複数
の実行ユニツトにデイスパツチするのに用いられる。図
1に示したように、コンピユータ・システム10は浮動
小数点プロセツサ・ユニツト24、固定小数点プロセツ
サ・ユニツト26及びブランチ・ユニツト28を含んで
いる。従つて、命令待ち行列22は、各実行ユニツト毎
に、1サイクルの間で0から3個の命令をデイスパツチ
することができる。
【0015】命令待ち行列22からデイスパツチされた
一連の命令に加えて、ブランチ・プロセツサによつて実
行される所謂「条件付きブランチ命令」が命令待ち行列
22の中にロードされる。条件付きブランチ命令は、1
つまたはそれ以上の順序付けられた命令を処理した結果
のうち、選択された結果に応答して、アプリケーシヨン
中で実行される関連条件付きブランチを特定するための
命令である。マルチスカラ・コンピユータ・システム1
0のようなパイプライン化されたプロセツサ・システム
において動作時間の遅延を小さくする努力において、命
令待ち行列の中の条件付き命令の存在が検出され、条件
付きブランチ命令の結果が予測される。当業者には明ら
かなように、条件付きブランチが「ブランチしない(no
t-taken)」と予測された時、命令待ち行列中の順番付
けられた命令は現在の経路に沿つて単純に続けられ、変
更される命令はない。然しながら、若し、ブランチの発
生に関する予測が正しくなければ、命令待ち行列は、プ
ログラム順で条件付きブランチ命令に続く命令が除去
(puge)されなければならず、目標命令が取り出されな
ければならない。そうではなく、若し、条件付きブラン
チ命令が「ブランチする(taken)」と予測されたなら
ば、目標命令は取り出され、若し予測が正しいと決定さ
れたならば、条件付きブランチ命令を続行するのに用い
られる。勿論、若し「ブランチする」の予測が正しくな
ければ、目標命令は除去されなければならず、そして、
プログラム順で条件付きブランチ命令に続く命令が検索
されなければならない。
【0016】図1に示されたように、マルチスカラ・コ
ンピユータ・システム10は、条件レジスタ32を含む
のが望ましい。条件レジスタ32は、コンピユータ・シ
ステム10の中で処理された一連の命令の結果を用いて
発生する種々の比較結果を一時的に記憶するために使用
される。従つて、浮動小数点プロセツサ・ユニツト2
4、固定小数点プロセツサ・ユニツト26及びブランチ
・プロセツサ・ユニツト28はすべて条件レジスタ32
に接続される。条件レジスタ32の中の特定の状態は、
ブランチのターゲツトとなる目標アドレスを発生するた
めに検出され、ブランチ・プロセツサ・ユニツト28に
接続され、ブランチ命令を開始する条件の発生に応答し
て、目標命令を取り出すために用いられる。
【0017】その後、ブランチ・プロセツサ・ユニツト
28は目標命令のアドレスをフエツチヤ30に供給す
る。フエツチヤ30は条件付きブランチを追従するのに
必要な目標命令のためにフエツチ・アドレスを計算し、
そして、これらのフエツチ・アドレスをキヤツシユ/メ
モリ・インターフエース20に供給する。当業者に容易
に理解できるように、若しこれらのフエツチ・アドレス
と関連する目標命令がキヤツシユ/メモリ・インターフ
エース20の中にあれば、これらの目標命令は命令待ち
行列22の中にロードされる。そうでない場合には、目
標命令はメモリ18から取り出され、その後、これらの
目標命令を取り出すのに必要な遅延の後にキヤツシユ/
メモリ・インターフエース20から命令待ち行列22の
中にロードされる。
【0018】当業者には明らかなように、マルチスカラ
・コンピユータ・システム10の中の各タスクは有効メ
モリ空間、即ち仮想メモリ空間と関連しており、各タス
クを実行するのに必要な命令は、有効アドレス、即ち仮
想アドレスを用いた空間の中に説明されている。従つ
て、フエツチヤ30は、各タスクによつて用いられる有
効アドレスから、命令の実アドレスを決定することがで
きるものでなければならない。既に述べたように、従来
のフエツチヤ30の動作は、複雑な変換索引バツフア
(TLB)、シーケンス・レジスタ及び複数の変換アル
ゴリズムを組み入れたものか、あるいは有効アドレス即
ち仮想命令アドレスから実命令アドレスを決定するため
の能力を持つ複雑な変換機能を有するメモリ管理ユニツ
ト(MMU)にアクセスすることを必要とするものであ
つた。
【0019】また、図1に示されたように、マルチスカ
ラ・コンピユータ・システム10の中にメモリ管理ユニ
ツト(MMU)34がある。以下に細部を説明するよう
に、メモリ管理ユニツト34は、マルチスカラ・コンピ
ユータ・システム10の中の各有効アドレスをメモリ中
の実アドレスに変換するために用いられる変換索引バツ
フア(TLB)40、必要なすべてのレジスタ及び変換
アルゴリズムを実行するための手段を含んでいる。フエ
ツチヤ・ユニツトはメモリ管理ユニツト(MMU)をア
クセスする優先度が非常に低いので、メモリ管理ユニツ
ト(MMU)を利用する実命令アドレスを獲得すること
は、マルチスカラ・コンピユータ・システムにおいて著
しく性能を低下することになる。
【0020】図2を参照すると、図1に示したマルチス
カラー・コンピユータ・システム10の中の分散された
命令アドレス変換機能を説明するための高レベルのブロ
ツク図が示されている。図2に示されているように、キ
ヤツシユ/メモリ・インターフエース20、フエツチヤ
30及びメモリ管理ユニツト(MMU)34の間の関係
が示されている。代表的な公知のメモリ管理ユニツトと
同じように、メモリ管理ユニツト(MMU)34は、変
換索引バツフア(TLB)を含んでいる。当業者には明
らかなように、変換索引バツフア(TLB)40は有効
アドレス、即ち仮想アドレスから実アドレスに変換する
ための非常に高速度に動作する技術を用いている。ま
た、メモリ管理ユニツト(MMU)34の中にはPTE
変換部42と、BAT変換部44とが与えられている。
上述したように、PTE変換部42はページ・テーブル
型の変換を実行するのに用いられ、BAT変換部44は
アドレス・ブロツク型の変換を実行するのに用いられ
る。ページ・テーブル型の変換は均一の大きさのメモリ
・ページを有するシステム中で発生するのに反して、ア
ドレス・ブロツク型の変換は、メモリの128キロバイ
トから8メガバイトまでにわたる可換サイズを有するも
のとして定義されたアドレス・ブロツクの中に生じるの
で、当業者には明らかなように、これら2つの変換アル
ゴリズムは相互に全く異なつている。
【0021】従つて、図2に示されたPTE変換部42
と関連して変換索引バツフア(TLB)40を使用する
ことによつて、ページ・テーブル型の変換を使用するマ
ルチスカラ・コンピユータ・システム中のすべての有効
アドレスは、システム・メモリ中の実アドレスに変換で
きることは当業者には自明である。また、セグメント・
レジスタがこのような変換にも勿論使用できることは、
当業者には明らかである。このような変換とは別に、B
AT変換部44を使用してアドレス・ブロツク型の変換
を行なうことができることも、当業者には明らかであ
る。上述したような態様で複数の変換アルゴリズムを与
えることによつて、マルチスカラ・コンピユータ・シス
テム10の中の有効アドレス、即ち仮想アドレスのすべ
てを、メモリ管理ユニツト(MMU)34を用いること
によりシステム・メモリ中の実アドレスに変換すること
ができる。
【0022】フエツチヤ30を参照すると本発明の重要
な特徴が示されている。フエツチヤ30の中に示されて
いるように、変換アレイ38が与えられている。変換ア
レイ38は少数の変換オブジエクトを含むのが望まし
い。図示した本発明の実施例において、変換アレイ38
は4個の変換オブジエクトを含んでいる。変換アレイ3
8中の各変換オブジエクトは、20ビツトの有効ページ
・インデツクス(EPI)と、20ビツトの実ページ・
インデツクス(RPI)と、11ビツトのマスク値とを
含んでいる。以下に細部を説明するが、有効ページ・イ
ンデツクス(EPI)、実ページ・インデツクス(RP
I)及びマスクは、マルチスカラ・コンピユータ・シス
テム10で選択された数の有効アドレスについてページ
・テーブル型変換及びアドレス・ブロツク型変換の両方
を高速度で、かつ効率的に実行するのに使用することが
できる。上述の説明から明らかなように、マルチスカラ
・コンピユータ・システムは、文字どおり数百ページの
命令を含むことができるが、しかし所与のアプリケーシ
ヨンにおいて、命令に対して用いられるメモリのページ
数は、それよりも遥かに小さい。本発明は、変換アレイ
38の中に記憶された変換オブジエクトを選択的に選
び、以下に詳細に説明するような態様で変換アレイ38
の内容を変更することによつて、メモリ管理ユニツト
(MMU)34への連続したアクセスを要求せず、か
つ、そのようなアクセスに伴つて付随するシステム効率
の劣下を生じることなく、非常に高い割合の命令変換要
求が変換アレイ38を用いることによつてフエツチヤ3
0の中で達成されるのを決定する。
【0023】図3を参照すると、マルチスカラ・コンピ
ユータ・システム10の命令フエツチヤ30の中の変換
アレイ38を用いた命令アドレスの変換を説明するため
の高レベルの論理的流れ図が示されている。図示されて
いるように、処理はブロツク60で開始する。その後、
処理は命令アドレスの変換が要求されたか否かを決定す
る処理ブロツク62に進む。若し、命令アドレスの変換
が要求されなければ、変換が要求されるまで、この決定
処理が単に繰り返される。
【0024】命令アドレスの変換が要求された時に、処
理はブロツク64に進む。処理ブロツク64において、
有効アドレスの最初の20個のアドレス・ビツトと、変
換アレイ38中の有効ページ・インデツクス(EPI)
のエントリの各々とが比較される。変換アレイ38の中
にある変換オブジエクトがマルチスカラ・コンピユータ
・システム10中の実アドレスへの有効命令アドレスの
変換を許容するのに充分であるか否かを決定すること
が、この比較には必要である。その後、処理は、有効ア
ドレスの最初の20個のアドレス・ビツトが変換アレイ
38中にある4個の有効ページ・インデツクス(EP
I)のエントリのいずれかのエントリと一致するか否か
を決定する処理ブロツク66に進む。若し、有効ページ
・インデツクス(EPI)のいずれのエントリとも一致
しなければ、処理は、変換アレイ中の変換オブジエクト
を変更するために、変換アレイの再ロードを行なう処理
ブロツク70に進む。以下に詳細に説明するように、本
発明の技術は、選択されたアプリケーシヨンの実行中に
命令アドレスを変換する時に最も効率的な変換オブジエ
クトを、変換アレイ38が連続して含むことを保証する
ように用いられる。
【0025】再度、処理ブロツク66を参照して、有効
アドレスの最初の20個のビツトと変換アレイ38中の
有効ページ・インデツクスのエントリの任意の1つとの
間に一致が生じた場合、処理はブロツク68に進む。処
理ブロツク68において、変換アレイから、実アドレス
が発生される。本発明の説明を簡略化するために、マル
チスカラ・コンピユータ・システム中の各命令のビツト
数は、有効アドレスが32ビツトであり、実アドレス
(RA)も32ビツトであるものとする。従つて、有効
ページ番号は有効アドレスの最初の20ビツトで構成さ
れ、そして、ページ・オフセツトは有効アドレスの残り
の12ビツトで構成される。上述した変換アレイ中の各
エントリは、20ビツトの有効ページ・インデツクス
(EPIn0,19)と、20ビツトの実ページ・インデツ
クス(RPIn0,19)と、11ビツトのマスク(MAS
0,10)とを含んでいる。従つて、変換される各命令の
有効ページ番号は、変換アレイ中の各変換オブジエクト
の中で比較される。若し、有効ページ番号が変換アレイ
38の中の有効ページのエントリの1つと一致するなら
ば、その命令の実アドレス(RA)は、下記に示した有
効ページ・インデツクス(EPIn9,19)、実ページ・
インデツクス(RPIn0,19)及びマスク(MASK
0,10)とを用いて構成される。
【0026】(1) RA=RPIn0,8||[(MAS
0,10 & RPIn9,19)|(MASK0,10 & EPI
n9,19)]||PO0,11
【0027】上述の式を参照すると、実アドレス(R
A)は、実ページ・インデツクス(RPIn0,19)の最
初の9ビツト(RPIn0,8)と、これに連結された11
ビツトのマスク値(MASK0,10)と9乃至19ビット
から成る11ビットの実ページ・インデツクス(RPI
n9,19)と9乃至19ビットから成る11ビットの有効
ページ・インデツクス(EPIn9,19)との組合せから
成る11ビットと、ページ・オフセツト(POn0,11
の12ビツトから構成されていることが理解できる。上
記の式(1)で示された態様で組み合わされた時、結果
の実アドレス(RA)は、12個のビツト乃至23個の
ビツトの範囲で変化することのできるオフセツト値と、
9ビツトから20ビツトの範囲で変化する実ページ番号
とから構成される。従つて、変換アレイ38中の各変換
オブジエクトの中で与えられたマスクの内容を変更する
ことによつて、各変換アルゴリズムは、上述した態様で
有効及び実ページ・インデツクスの部分とマスク値
((1)の右辺の「RPIn0,8」及び「POn0,11」以
外の部分)とを選択的に組合せることにより効率的に遂
行することができる。その後、変換アレイ38中に含ま
れた変換オブジエクトを用いて実アドレスを発生した後
に、図3の処理は処理ブロツク72に進み戻る。
【0028】図4を参照すると、マルチスカラ・コンピ
ユータ・システム10の命令フエツチヤ30の中の変換
アレイ38の実施例を説明する高レベルの論理的流れ図
が示されている。図示されているように、この処理はブ
ロツク80で開始され、変換アレイの再ロードが図3の
処理ブロツク70で要求される。その後処理は、命令フ
エツチヤ30からメモリ管理ユニツト(MMU)34へ
変換要求を送る処理を示した処理ブロツク82に進む。
既に述べたように、これは、有効アドレスの最初の20
ビツトと、変換アレイ38の中の4つの有効ページ・イ
ンデツクスのアレイの任意の1つとの間の一致がない場
合に生じる。その後、処理はブロツク84に進む。処理
ブロツク84において、変換アレイ38のその有効アド
レスの変換及び関連するマスクがメモリ管理ユニツト
(MMU)34から受け取られたか否かが決定される。
若し、それらが受け取られなければ、処理は処理ブロツ
ク82に戻り、再度、変換要求をメモリ管理ユニツト
(MMU)34に送る。
【0029】再度、処理ブロツク84を参照して、有効
アドレスに対して、アドレスの変換及び関連したマスク
値がメモリ管理ユニツト(MMU)34から受け取られ
た場合、処理はブロツク88に進む。処理ブロツク88
において、有効命令アドレスから、特定のアプリケーシ
ヨンのための実命令アドレスへの最も効率的な変換を与
えるために、変換アレイ38中のLRUオブジェクトを
置き換える。
【0030】最後に、図5を参照すると、条件付きブラ
ンチの正しくない予測結果に続いて、マルチスカラ・コ
ンピユータ・システム10の命令フエツチヤ30中の変
換アレイ38の状態の復元動作を説明するための高レベ
ルの論理的流れ図が示されている。図示されているよう
に、この処理は、ブロツク100で開始し、その後、処
理ブロツク102に進む。処理ブロツク102におい
て、条件付きブランチ命令が命令待ち行列22(図1参
照)の中で検出されたか否かと、その条件付きブランチ
の結果が予測されたか否かとが決定される。既に説明し
たように、若し、その結果が条件付きブランチ命令に対
して予測されていれば、予測されたブランチについて目
標命令が取り出され、命令待ち行列の中に置かれる。若
し、この予測が正しくなければ、条件付きブランチ及び
これに関連する目標命令の取り出しは、変換アレイ38
の動作効率を低下させうることは、上述の説明によつ
て、当業者には容易に理解できるであろう。
【0031】再度、処理ブロツク102を参照すると、
条件付きブランチ命令は検出されたが、条件付きブラン
チの結果が予測されたものではなかつた場合、処理は、
その条件が発生するまで反復される。そうではなく、条
件付きブランチの結果が、遭遇した条件付きブランチ命
令について予測されたものである場合、処理はブロツク
104に進む。処理ブロツク104において、変換アレ
イ38中の変換オブジエクトの現在の状態が記憶され
る。
【0032】その後、処理はブロツク108に進む。処
理ブロツク108において、条件付きブランチの予測が
正しかつたか否かの決定が行なわれ、若し、正しけれ
ば、処理はブロツク110に進んで戻る。この場合、変
換アレイ38中の変換オブジエクトは、目標命令の新し
いセツトに適合するために修正される事実と、その成功
裡になされた条件付きブランチの予測がこれらの変換オ
ブジエクトの連続した使用を必要とするという事実に起
因する、さらなる動作は必要としない。然しながら、処
理ブロツク108において、条件付きブランチの予測が
正しくなかつた場合には、処理はブロツク112に進
む。処理ブロツク112において、変換アレイ38中の
変換オブジエクトの状態を、条件付きブランチの予測結
果の前に存在した状態に復元する。
【0033】このようにして、LRU状態の変換アレイ
38は、正しくない経路予測によつて改ざんされない。
このことは、誤つて予測された経路から目標命令が取り
出されている一方で、変換アレイ中の変換オブジエクト
が置換されたような場合には、特に当て嵌る。更に、コ
ード位置は、予測可能性の結果として、変換アレイ中の
LRUアルゴリズム実行部により最適化される。このよ
うなソフトウエアは、条件付きブランチが予測されるか
否かを予測することができないので、誤つて予測された
ブランチ命令がLRU状態を改ざんする場合、この状態
を決定することができない。
【0034】
【発明の効果】上述の説明から、本発明は、これらのア
ドレス変換がページ・テーブル型の変換(PPE)を必
要とするのか、あるいは、アドレス・ブロツク型の変換
(BAT)を必要とするのかに関らず、命令の実アドレ
スを発生するために有効ページ番号及び有効ページ・オ
フセツトとを選択的に組み合わせることができるマスク
を選択するという単純な方法によつて、命令フエツチヤ
中の比較的小さな変換アレイを用いた非常に効率のよい
有効命令アドレスから実命令アドレスへの変換を可能に
する、マルチスカラ・データ処理システムでの分散命令
アドレス変換方法及び装置を提供するものであることは
当業者であれば容易に理解できるであろう。
【0035】本発明は、所与の処理についての命令を指
定するのに必要なページが、ページ・メモリ・システム
において比較的少数であることに着想し、上述の構造を
有する関連変換アレイを、キヤツシユ・メモリの構造と
同じ態様で動作することができる。従つて、本発明のシ
ステムは、命令が取り出される度に変換機能にアクセス
することを必要とするといつた犠牲を払うことなく、大
型の変換索引バツフア(TLB)の利益を享受すること
ができる。更に、有効アドレスと選択的に組み合わすこ
とのできるマスクのエントリを与えることによつて、上
述の変換アレイは、命令フエツチヤにおいて、通常、複
数のタイプの変換アルゴリズムに対して用いられる論理
を必要とすることなく、これらの変換アルゴリズムを使
用することができる。
【0036】多数のハードウエアを用いず、アクセスに
付随する遅延を最小限に止め、かつ、システム・メモリ
の管理ユニツトを頻繁に使用しないで、仮想メモリ中の
命令アドレスを実アドレスに迅速かつ効率的に変換する
ことができる。
【図面の簡単な説明】
【図1】本発明の方法及び装置を適用することのできる
マルチスカラ・コンピユータ・システムの高レベルのブ
ロツク図である。
【図2】図1のマルチスカラ・コンピユータ・システム
の中の分散された命令アドレスの変換機能を説明するた
めの高レベルのブロツク図である。
【図3】図1のマルチスカラ・コンピユータ・システム
の中の変換アレイを使用した命令アドレスの変換を説明
するための高レベルの論理的流れ図である。
【図4】図1のマルチスカラ・コンピユータ・システム
の命令フエツチヤ中の変換アレイの変更を説明するため
の高レベルの論理的流れ図である。
【図5】図1のマルチスカラ・コンピユータ・システム
の命令フエツチヤ中の変換アレイの状態を復元する動作
を説明するための高レベルの論理的流れ図である。
【符号の説明】
10 マルチスカラ・コンピユータ・システム 18 メモリ 20 キヤツシユ/メモリ・インターフエース 22 命令待ち行列 24 浮動小数点ユニツト 26 固定小数点ユニツト 28 ブランチ・ユニツト 30 フエツチヤ 32 状態レジスタ 34 メモリ管理ユニツト(MMU) 38 変換アレイ 40 変換索引バツフア 42 ページ・テーブル型(PTE)の変換部 44 アドレス・ブロツク型(BAT)の変換部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ステファン・ムューニック アメリカ合衆国 テキサス州 オースチ ン アルバートストーン・ウエイ 8606 (72)発明者 テレンス・マシュー・ポッター アメリカ合衆国 テキサス州 オースチ ン ツイン・レッジ・コウブ 6107 (56)参考文献 特開 平2−85943(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のタスクを実行する複数のプロセツサ
    ・ユニツトと、複数の命令及びデータを複数の実アドレ
    スで記憶するメモリと、前記複数のタスク中で使用され
    る複数の有効アドレスを前記メモリ中の実アドレスに変
    換するために、前記複数のプロセツサ・ユニツトへ命令
    を取り出してデイスパツチするフエツチヤ・ユニツトと
    を有するデータ処理システムにおいて、有効アドレスを
    実アドレスに変換する方法であつて、 前記データ処理システムが、有効アドレスを前記メモリ
    中の実アドレスに変換するための変換バツフア及び変換
    アルゴリズム実行部を有するメモリ管理ユニツトを有
    し、 前記フエツチヤ・ユニツトが、変換アレイを有し、 前記複数の有効アドレスの中で選択された有効アドレス
    を実アドレスに変換する際に、複数の変換技術を実施す
    るために前記複数の変換オブジエクトを前記変換アレイ
    中に記憶するステツプと、 前記メモリ管理ユニツトに連続してアクセスすることな
    く有効アドレスを実アドレスに変換するために、前記フ
    エツチヤ・ユニツトにおける特定の有効アドレスの実ア
    ドレスへの変換の誤りに応答して、前記メモリ管理ユニ
    ツトを使用して前記変換アレイ中に記憶された複数の変
    換オブジエクトを変更するステツプと、を具備する、ア
    ドレス変換方法。
  2. 【請求項2】前記複数のプロセツサ・ユニツトへの条件
    付きブランチ命令のデイスパツチと、前記条件付きブラ
    ンチ命令の結果の予測とに応答して、前記変換アレイの
    中に記憶された前記複数の変換オブジエクトのために使
    用されるデータを一時的に記憶するステツプを含む、請
    求項1に記載のアドレス変換方法。
  3. 【請求項3】前記条件付きブランチ命令の結果の前記予
    測の誤りの検出に続いて、前記複数の変換オブジエクト
    のために使用される一時的に記憶されたデータを復元す
    るステツプを含む、請求項2に記載のアドレス変換方
    法。
  4. 【請求項4】前記複数の変換オブジエクトを記憶する前
    記ステツプは、前記複数の変換技術を各々実施するため
    の各複数の変換オブジエクト中に変換マスク情報を記憶
    するステツプを含む、請求項1に記載のアドレス変換方
    法。
  5. 【請求項5】複数のタスクを実行する複数のプロセツサ
    ・ユニツトと、複数の命令及びデータを複数の実アドレ
    スで記憶するメモリと、前記複数のタスク中で使用され
    る複数の有効アドレスを前記メモリ中の実アドレスに変
    換するために、前記複数のプロセツサ・ユニツトへ命令
    を取り出してデイスパツチするフエツチヤ・ユニツトと
    を有し、有効アドレスを実アドレスに変換するデータ処
    理システムであつて、 有効アドレスを前記メモリ中の実アドレスに変換するた
    めの変換バツフア及び変換アルゴリズム実行部を有する
    メモリ管理ユニツトを有し、 前記フエツチヤ・ユニツトが、変換アレイを有し、 前記複数の有効アドレスの中で選択された有効アドレス
    を実アドレスに変換する際に、複数の変換技術を実施す
    るために前記複数の変換オブジエクトを前記変換アレイ
    中に記憶する手段と、 前記メモリ管理ユニツトに連続してアクセスすることな
    く有効アドレスを実アドレスに変換するために、前記フ
    エツチヤ・ユニツトにおける特定の有効アドレスの実ア
    ドレスへの変換の誤りに応答して、前記メモリ管理ユニ
    ツトを使用して前記変換アレイ中に記憶された複数の変
    換オブジエクトを変更する手段と、を具備する、データ
    処理システム。
  6. 【請求項6】前記複数のプロセツサ・ユニツトへの条件
    付きブランチ命令のデイスパツチと、前記条件付きブラ
    ンチ命令の結果の予測とに応答して、前記変換アレイの
    中に記憶された前記複数の変換オブジエクトのために使
    用されるデータを一時的に記憶する手段を含む、請求項
    5に記載のデータ処理システム。
  7. 【請求項7】前記条件付きブランチ命令の結果の前記予
    測の誤りの検出に続いて、前記複数の変換オブジエクト
    のために使用される一時的に記憶されたデータを復元す
    る手段を含む、請求項6に記載のデータ処理システム。
  8. 【請求項8】前記複数の変換オブジエクトを記憶する前
    記手段は、前記複数の変換技術を各々実施するための各
    複数の変換オブジエクト中に変換マスク情報を記憶する
    手段を含む、請求項5に記載のデータ処理システム。
JP5221758A 1992-10-09 1993-09-07 アドレス変換方法及びデータ処理装置 Expired - Lifetime JP2769097B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/959,194 US5442766A (en) 1992-10-09 1992-10-09 Method and system for distributed instruction address translation in a multiscalar data processing system
US959194 1992-10-09

Publications (2)

Publication Number Publication Date
JPH06187152A JPH06187152A (ja) 1994-07-08
JP2769097B2 true JP2769097B2 (ja) 1998-06-25

Family

ID=25501763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5221758A Expired - Lifetime JP2769097B2 (ja) 1992-10-09 1993-09-07 アドレス変換方法及びデータ処理装置

Country Status (2)

Country Link
US (1) US5442766A (ja)
JP (1) JP2769097B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5712998A (en) * 1993-07-13 1998-01-27 Intel Corporation Fast fully associative translation lookaside buffer with the ability to store and manage information pertaining to at least two different page sizes
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
US5956753A (en) * 1993-12-30 1999-09-21 Intel Corporation Method and apparatus for handling speculative memory access operations
US5752275A (en) * 1995-03-31 1998-05-12 Intel Corporation Translation look-aside buffer including a single page size translation unit
US5918250A (en) * 1995-05-05 1999-06-29 Intel Corporation Method and apparatus for preloading default address translation attributes
US5721858A (en) * 1995-12-12 1998-02-24 International Business Machines Corporation Virtual memory mapping method and system for memory management of pools of logical partitions for bat and TLB entries in a data processing system
US5708790A (en) * 1995-12-12 1998-01-13 International Business Machines Corporation Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system
US5819080A (en) * 1996-01-02 1998-10-06 Advanced Micro Devices, Inc. Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor
US6330691B1 (en) * 1996-02-23 2001-12-11 Institute For The Development Of Emerging Architectures Llc Use of dynamic translation to provide breakpoints in non-writeable object code
US6026476A (en) * 1996-03-19 2000-02-15 Intel Corporation Fast fully associative translation lookaside buffer
US5832205A (en) * 1996-08-20 1998-11-03 Transmeta Corporation Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
US5890011A (en) * 1997-01-27 1999-03-30 International Business Machines Corporation Method and system for dynamically translating bus addresses within a computer system
US5926645A (en) * 1997-07-22 1999-07-20 International Business Machines Corporation Method and system for enabling multiple store instruction completions in a processing system
JP3279253B2 (ja) * 1998-05-27 2002-04-30 日本電気株式会社 キャッシュページの管理方法およびキャッシュページの管理プログラムを記憶した媒体
US6470436B1 (en) 1998-12-01 2002-10-22 Fast-Chip, Inc. Eliminating memory fragmentation and garbage collection from the process of managing dynamically allocated memory
US6272597B1 (en) * 1998-12-31 2001-08-07 Intel Corporation Dual-ported, pipelined, two level cache system
WO2001018653A1 (en) * 1999-09-07 2001-03-15 Fast-Chip Incorporated Dynamic memory caching
EP1667027A1 (en) 1999-09-07 2006-06-07 Intel Corporation Dynamic memory caching
US7509391B1 (en) * 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
GB2378277B (en) * 2001-07-31 2003-06-25 Sun Microsystems Inc Multiple address translations
US7305669B2 (en) * 2002-09-27 2007-12-04 Sun Microsystems, Inc. Software upgrades with multiple version support
US7506105B2 (en) 2005-05-02 2009-03-17 Freescale Semiconductor, Inc. Prefetching using hashed program counter
US20060248279A1 (en) * 2005-05-02 2006-11-02 Al-Sukhni Hassan F Prefetching across a page boundary
US20070101100A1 (en) * 2005-10-28 2007-05-03 Freescale Semiconductor, Inc. System and method for decoupled precomputation prefetching
CN101216778B (zh) * 2008-01-21 2011-04-13 中国科学院计算技术研究所 一种risc处理器装置及其指令地址转换查找方法
US10579384B2 (en) 2017-12-08 2020-03-03 International Business Machines Corporation Effective address based instruction fetch unit for out of order processors

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5155828A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Computing system with a cache memory and an additional look-aside cache memory
JPH0285943A (ja) * 1989-07-14 1990-03-27 Nec Corp データ処理装置
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
US5155825A (en) * 1989-12-27 1992-10-13 Motorola, Inc. Page address translation cache replacement algorithm with improved testability
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5168538A (en) * 1991-01-16 1992-12-01 Gillespie Donald E Optical probe employing an impedance matched sub-lambda transmission line
US5263140A (en) * 1991-01-23 1993-11-16 Silicon Graphics, Inc. Variable page size per entry translation look-aside buffer
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access

Also Published As

Publication number Publication date
JPH06187152A (ja) 1994-07-08
US5442766A (en) 1995-08-15

Similar Documents

Publication Publication Date Title
JP2769097B2 (ja) アドレス変換方法及びデータ処理装置
JP2565648B2 (ja) 変換索引バッファのコヒーレンス維持方法及びシステム
US4985825A (en) System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
CA1325285C (en) Method and apparatus for ordering and queueing multiple memory requests
CN107111550B (zh) 用于隐藏程序提取的页遗漏转换时延的方法和装置
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
CA1325288C (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
KR930002328B1 (ko) 가상 어드레스의 유효 성능을 물리적 어드레스 변환으로 예측하는 방법 및 장치
US5278963A (en) Pretranslation of virtual addresses prior to page crossing
EP0097790A2 (en) Apparatus for controlling storage access in a multilevel storage system
US7266676B2 (en) Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays
EP0492838B1 (en) Apparatus for enhancing the performance of a translation lookaside buffer
US5822788A (en) Mechanism for prefetching targets of memory de-reference operations in a high-performance processor
JP2006520964A5 (ja)
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US7987337B1 (en) Translation lookaside buffer prediction mechanism
JPH04213135A (ja) 外部メモリアクセスシステム
US5414821A (en) Method of and apparatus for rapidly loading addressing environment by checking and loading multiple registers using a specialized instruction
Hua et al. Early resolution of address translation in cache design
US7085887B2 (en) Processor and processor method of operation
US5970512A (en) Translation shadow array adder-decoder circuit for selecting consecutive TLB entries
IE901525A1 (en) Processing of memory access exceptions with pre-fetched¹instructions within the instruction pipeline of a memory¹system based digital computer
McWilliams et al. Lawrence LiV rmore Laboratory