JP3170301B2 - アドレス変換装置 - Google Patents

アドレス変換装置

Info

Publication number
JP3170301B2
JP3170301B2 JP05052091A JP5052091A JP3170301B2 JP 3170301 B2 JP3170301 B2 JP 3170301B2 JP 05052091 A JP05052091 A JP 05052091A JP 5052091 A JP5052091 A JP 5052091A JP 3170301 B2 JP3170301 B2 JP 3170301B2
Authority
JP
Japan
Prior art keywords
address
logical address
logical
physical
register
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 - Fee Related
Application number
JP05052091A
Other languages
English (en)
Other versions
JPH04216151A (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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies 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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JPH04216151A publication Critical patent/JPH04216151A/ja
Application granted granted Critical
Publication of JP3170301B2 publication Critical patent/JP3170301B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサの
動作を解析するシステムに関するものであり、更に詳細
には、オン・チップ・メモリ管理ユニットを備えたマイ
クロプロセッサによるプログラム実行中に物理的アドレ
スを論理的アドレスに翻訳する方法および装置に関す
る。
【0002】
【従来の技術】マイクロプロセッサを基準とするシステ
ムの開発時の補助としてエミュレーション・システムが
ハードウェアおよびソフトウェアの技術者により利用さ
れている。エミュレーション・システムは代表的には、
プロセッサ特定基板、目標(target)システムへ
接続するケーブル、および各種解析ユニットを備えてい
る。エミュレータの機能、タイミング、および電気信号
の各特性は、終極的に目標システムを制御するマイクロ
プロセッサのそれら特性と合致すべきである。エミュレ
ータにより容易になるタスクにはソフトウェアのデバッ
グ、ハードウェアのデバッグ、およびハードウェアおよ
びソフトウェアの統合がある。これらタスクはプログラ
ムのロードおよび実行、走行/停止制御、記憶の表示お
よび修正、全体的および局部的記号表示、内部資源の表
示および修正、解析、プログラムの進行、資源のマッピ
ング、記憶の特徴づけ、区切り点の発生、およびクロッ
ク源の選択のような、エミュレータの特徴を利用して実
施することができる。エミュレーション・システムの重
要な機能は、プロセッサの動作の解析である。典型的に
は、エミュレータは、プロセッサ・バスに接続され、プ
ロセッサが記憶装置および他の装置と通信する各プロセ
ッサ・バス・サイクルを監視することにより動作を解析
する。
【0003】大きなコンピュータ・プログラムおよび多
重・タスク・コンピュータ・システムに応じて仮想メモ
リ・システムが開発された。プログラムが大きくなるに
つれて、プロセッサが直接アクセスできる記憶装置はも
はや全プログラムおよびそのデータを入れることができ
なくなった。多重タスク・システムでは、数種のプログ
ラムが一度に活性になることがあり、CPUはプログラ
ム間で時間分担される。仮想メモリ・システムは実用的
大きさの物理的メモリによる大型プログラムおよび多重
タスクの実行を可能とするものである。
【0004】仮想メモリ・システムは、必要に応じて大
きな仮想的、または論理的、アドレス空間を物理的メモ
リに割当てることにより物理的メモリを管理する。論理
的アドレス空間の部分は、ディスクのような、大量格納
装置に転送することができ、必要なとき物理的メモリ内
で作動される。CPUはプログラムを論理的アドレス空
間で実行する。メモリ管理ユニットは動作システムと協
同してCPUの実行ユニットが要求した論理的アドレス
を物理的アドレスに翻訳する。論理的アドレスが物理的
アドレス空間に存在していないときは、論理的アドレス
空間の一部を主メモリで作動させなければならない。論
理的アドレスおよび物理的アドレスは共に所定数のバイ
トを備えるページに分類される。データは物理的メモリ
と大容量格納装置の間をページで転送される。他の仮想
メモリ・システムでは、論理的アドレス空間全体が物理
的メモリに入っており、大容量格納装置は不要である。
【0005】仮想メモリ・システムでの論理的アドレス
と物理的アドレスとの間の関係は、メモリ管理ユニット
により制御される。論理的アドレスと物理的アドレスと
の間の翻訳はテーブル構造により指定される。実行ユニ
ットが要求する論理的アドレスは、メモリ管理ユニット
により物理的アドレスに翻訳され、これは物理的メモリ
の記憶場所にアクセスするのに使用される。
【0006】マイクロプロセッサの動作速度を向上させ
るために、メモリ管理ユニットが、論理的アドレス空間
でプログラムを実行するユニットと共に、同じチップ
に、または集積回路に、設置されている。この構成は論
理的アドレスの発生から対応する物理的アドレスの発生
までの時間を極小にする。このようなプロセッサの一例
はモトローラ社で製造、販売されているMC68030
である。MC68030マイクロプロセッサは、論理的
アドレス対物理的アドレス翻訳が実行プログラムにより
要求されたときだけ決定されるデマンド・ページ式メモ
リ管理ユニットを利用している。
【0007】エミュレーション・システムがプログラム
の実行を解析するためには、エミュレーション・システ
ムの状態解析部が、アクセスされる論理的アドレスを知
る必要がある。論理的アドレスは、ユーザが書いた原ソ
ースコードの絶対値および記号値と関連づけることがで
きる。しかし、マイクロプロセッサがオン・チップ・メ
モリ管理ユニットを備えているときは、プロセッサ・チ
ップのピンで物理的アドレスだけが利用可能である。物
理的アドレスは状態アナライザにプログラム実行を解析
するに必要な情報を示さない。したがって、オン・チッ
プ・メモリ管理ユニットを備えたマイクロプロセッサの
動作を監視し、解析することは困難であった。
【0008】
【発明が解決しようとする課題】マイクロプロセッサの
動作を解析する改良されたシステムを提供するのが本発
明の一般的目的である。メモリ管理ユニットが示した物
理的アドレスを論理的アドレスに翻訳する方法および装
置を提供するのが本発明の他の目的である。本発明の更
に他の目的は、プロセッサが行うテーブル探索を監視す
ることにより論理的アドレスを決定し、論理的アドレス
を物理的アドレスに翻訳する方法および装置を提供する
ことである。本発明の更に他の目的は、プロセッサに関
連するメモリ管理ユニットが示す物理的アドレスを、プ
ロセッサによるプログラムの実行中にリアルタイムで論
理的アドレスに翻訳する方法および装置を提供すること
である。
【0009】
【課題を解決するための手段】本発明によれば、これら
のおよび他の目的および利点は、メモリ管理ユニットを
備えたプロセッサと共に使用する方法および装置により
達成される。装置はメモリ管理ユニットが示した物理的
アドレスを論理的アドレスに翻訳する。本発明の装置お
よび方法は、代表的にはエミュレーション・システム
で、更に詳細には、プロセッサ動作を解析するエミュレ
ーション・システムで利用される。本発明の装置および
方法は代表的には、オン・チップ・メモリ管理ユニット
を備えているマイクロプロセッサと共に使用される。こ
の種のマイクロプロセッサでは、実行ユニットが要求す
る論理的アドレスは集積回路の外部ピンでは利用できな
い。
【0010】この装置は、プロセッサと通信するための
バス、メモリ管理ユニットによるテーブル探索中バス手
段上の情報に応じて論理的アドレスを決定するアドレス
捕捉手段、論理的アドレスを対応する物理的アドレスに
より識別される記憶場所に格納するメモリ手段、および
プログラム実行中メモリ管理ユニットにより示される物
理的アドレスに応じてメモリ手段内の対応する論理的ア
ドレスにアクセスし、対応する論理的アドレスを出力に
発生するアクセス手段、を備えている。出力は典型的に
はアナライザ・ユニットに接続されている。
【0011】アドレス捕捉手段は、メモリ管理ユニット
によるテーブル探索中動作し、テーブル探索の各レベル
期間中に論理的アドレスの一部を得る。テーブル探索
は、テーブル構造の連続レベルにアクセスすることによ
り動作し、実行ユニットが要求する論理的アドレスに対
応する物理的アドレスを得る。アドレス捕捉手段は、テ
ーブル探索の期間中バスで利用できる情報を利用して論
理的アドレスを決定する。アドレス捕捉手段は、テーブ
ル・アドレスをテーブル・アクセス・アドレスから差引
き、テーブル探索の各レベル期間中に論理的アドレス部
分を発生する減算器手段、およびテーブル検索の各レベ
ルからの論理的アドレス部分を論理的アドレスに組合わ
せる手段、を備えている。
【0012】論理的アドレスは、論理的アドレス用の複
数の格納場所を備えたマップRAMに格納されている。
各格納場所は物理的アドレスに対応し、物理的アドレス
によりアクセス可能である。テーブル探索の完了に続く
バス・サイクルで、物理的アドレスはメモリ管理ユニッ
トによりバスに載せられる。物理的アドレスは対応する
論理的アドレスが格納されているマップRAM内の記憶
場所にアクセスする。アナライザ・ユニットに供給され
るバス情報では、物理的アドレスは論理的アドレスで置
き換えられている。続く物理的アドレスの要求で、マッ
プRAMは対応する論理的アドレスを得るためにアクセ
スされる。
【0013】本発明の装置は、平行する三つの径路を有
するパイプライン構造を利用している。アドレス捕捉径
路は、メモリ管理ユニットによるテーブル探索期間中バ
ス情報に応じて論理的アドレスを決定し、格納する。翻
訳径路は、プログラム実行中メモリ管理ユニットが示す
物理的アドレスに応じてアドレス捕捉径路により決定さ
れ格納されている対応する論理的アドレスにアクセスし
て論理的アドレスをアナライザに供給する。転送径路
は、各物理的アドレスに対応するデータ・フィールドお
よび状態フィールドを提供する。データ・フィールドお
よび状態フィールドは、各物理的アドレスに対応する論
理的アドレスと共に同時にアナライザに供給される。
【0014】本発明の他の特徴によれば、メモリ管理ユ
ニットにより示される物理的アドレスを対応する論理的
アドレスに翻訳する方法が提供される。この方法は、テ
ーブル・アドレスをメモリ管理ユニットによるテーブル
探索の各レベルでテーブル・アクセス・アドレスから差
引いて論理的アドレス部分を発生するステップ、および
論理的アドレス部分を論理的アドレスに組合せるステッ
プから構成される。
【0015】
【実施例】マイクロプロセッサ・システムの簡略ブロッ
ク図を図1に示す。マイクロプロセッサ10は、実行ユ
ニット12、メモリ管理ユニット14、およびバス制御
ユニット16を備えている。実行ユニット12は、プロ
グラム実行中に論理的アドレスおよびデータを発生す
る。論理的アドレスはメモリ管理ユニット14に供給さ
れ、このユニットは論理的アドレスを物理的アドレスに
翻訳する。実行ユニット12からのデータ、メモリ管理
ユニット14からの物理的アドレス、および状態情報
は、バス制御ユニット16によりシステム・バス20に
結合される。物理的アドレスはバス20によりメモリ・
ユニット22に結合され、メモリ・ユニット22の指定
記憶場所にアクセスする。論理的アドレス空間の異なる
ページを必要に応じて大容量記憶装置ユニット(図示せ
ず)からメモリ・ユニット22に転送することができ
る。
【0016】マイクロプロセッサ10の重要な特徴は、
実行ユニット12およびメモリ管理ユニット14が同じ
集積回路に設置されていることである。プログラム実行
中実行ユニット12により発生された論理的アドレス
は、マイクロプロセッサ10の外部ピンでは利用でき
ず、したがって外部解析システムでは監視することがで
きない。このようなマイクロプロセッサの一例はMC6
8030プロセッサである。上述のように、プログラム
実行中に論理的アドレスを決定できないということはマ
イクロプロセッサ動作の解析および監視に際し重大な短
所である。本発明によれば、プロセッサ10によるテー
ブル探索中に論理的アドレスを決定して格納し、続いて
プロセッサ10によるプログラム実行中に物理的アドレ
スを論理的アドレスに翻訳する方法および装置が提供さ
れる。本発明は、メモリ管理ユニットおよび実行ユニッ
トが同じ集積回路に載っているときでもマイクロプロセ
ッサ動作の解析を行うことができる。
【0017】テーブル検索は、実行プログラムが要求す
る論理的アドレスを物理的アドレスに翻訳するためにプ
ロセッサ10により行われ、物理的アドレスはメモリ・
ユニット22にアクセスするのに使用される。上に説明
したように、アドレスはページと呼ばれるブロックに共
に分類されている。ブロックは典型的には同じ大きさで
あるが、異なる大きさの場合もある。MC68030プ
ロセッサのメモリ管理ユニットでのページの大きさは、
256バイトから32Kバイトまでに構成することがで
きる。ページの大きさの選択は典型的にはプロセッサ・
ブートストラップ・プログラムを実行するときに行われ
る。メモリ管理ユニット14は、所定数の論理的対物理
的アドレス翻訳を保持するアドレス翻訳キャッシュ24
を備えている。論理的アドレスのページが実行ユニット
12により要求されると、メモリ管理ユニット14はテ
ーブル探索を行って物理的ページ・アドレスを決定し、
論理的対物理的翻訳をアドレス翻訳キャッシュに格納す
る。アドレス翻訳キャッシュが一杯になると、「最近最
も少く使用された(least recentlyus
ed)」として知られているアルゴリズムが、要求され
た次の論理ページを収容するよう取除くことができるエ
ントリを決定する。アドレス翻訳キャッシュは最近最も
多く使用された翻訳を保持しているので、これらページ
への後続アクセスは物理的アドレスを得るのにテーブル
探索を繰返す必要がない。その代り、アドレス翻訳キャ
ッシュは、要求された論理的アドレスで索引され、物理
的アドレスを出力する。
【0018】MC68030マイクロプロセッサのメモ
リ管理ユニット14のアドレス翻訳キャッシュは大きさ
が22エントリに制限されている。物理的メモリ(メモ
リ・ユニット22)の一部にあるテーブル構造は、物理
的メモリに実際に存在する実行プログラムの部分を識別
する。メモリ管理ユニット14は、アドレス翻訳キャッ
シュに入っていない所要論理ページに対応する物理的ペ
ージを決定するときテーブル構造にアクセスする。テー
ブル構造にアクセスするプロセスをテーブル探索プロセ
スまたはテーブル歩行プロセスと言う。MC68030
プロセッサはデマンド・ページ式メモリ管理ユニットを
利用しているが、このユニットでは論理的アドレス対物
理的アドレス翻訳は、それが実行プログラムにより要求
されたときにだけ決定される。
【0019】テーブル構造は、メモリ管理ユニット14
の構成により決まり、複数レベル組織を備えることがで
きる。テーブル構造のレベルの数は論理的アドレスの構
造に対応する。論理的アドレスの一例を図2に示すが、
これは図3に示すテーブル構造に対応する。テーブル構
造は、物理的メモリ内の必要なテーブル空間およびテー
ブル構造にアクセスするのに必要な時間を可能な限り少
くするよう柔軟性を備えている一方、メモリ管理の柔軟
性を示す。
【0020】図2に示す論理的アドレスは、8ビットの
ページ索引、および3レベルの論理的アドレス、各8ビ
ット、総計32ビットを備えている。論理的アドレスの
三つの部分をレベルA、レベルB、およびレベルCと名
付ける。ページ索引、すなわち論理的アドレスの最低位
の部分、は翻訳されない。その代り、ページ索引は物理
的ページの所要エントリを指示するのに直接使用され
る。この例でのページ索引は8ビットであるから、ペー
ジの大きさは256バイトである。ページ索引はMC6
8030プロセッサでは最大15ビットまでとすること
ができる。
【0021】物理的アドレスにアクセスしなければなら
ないとき、およびアドレス翻訳キャッシュにそのページ
に対する論理的対物理的翻訳が入っていないときは、メ
モリ管理ユニット14はテーブル探索プロセスを開始す
る。テーブル探索はテーブル構造の開始アドレスを決め
ることから始まる。メモリ管理ユニット14のレジスタ
にはテーブル構造の開始アドレス、時にはルート・ポイ
ンタと言われることがある、が入っている。今度は図3
を参照すると、テーブル構造の開始アドレスすなわちル
ート・ポインタがテーブルAの始めを指している。論理
的アドレスのレベルAの部分はテーブルAの開始アドレ
スに付加されてテーブルAのアクセス・アドレスを得
る。テーブルAのアクセス・アドレスに入っているデー
タ・エントリはテーブルBの開始アドレスである。テー
ブルAの他のエントリは他のレベルBのテーブルを指
す。論理的アドレスのレベルBの部分はテーブルBの開
始アドレスに付加されてテーブルBのアクセス・アドレ
スを得る。同様に、テーブルBのアクセス・アドレスに
あるデータ・エントリはテーブルCの開始アドレスであ
る。論理的アドレスのレベルCの部分はテーブルCの開
始アドレスに付加されてテーブルCのアクセス・アドレ
スを発生する。テーブルCにあるデータ・エントリは所
要の物理的アドレスである。物理的アドレスは、プロセ
ッサ10に戻され、アドレス翻訳キャッシュに置かれ
る。テーブル探索プロセスは3レベルの探索を完了する
のに3バスサイクルを必要とする。
【0022】テーブル探索プロセスは各レベルについて
下記アルゴリズムに従って動作する。レベルNアクセス
・アドレス=レベルNテーブル・アドレス+レベルN論
理的アドレス−−−(1)ここでレベルNアクセス・ア
ドレスはテーブル探索プロセスの各バス・サイクルでプ
ロセッサ10により供給されるアドレスであり、レベル
Nテーブル・アドレスは各テーブルの開始のアドレスで
あり、レベルN論理的アドレスは各テーブルの索引に使
用される論理的アドレスの部分である。レベルNテーブ
ル・アドレスは、N−1バス・サイクルでテーブル構造
からメモリ管理ユニットに戻される。テーブル探索プロ
セスの第1レベルのアクセスで、レベルAのテーブル・
アドレスはメモリ管理ユニットのルート・ポインタ・レ
ジスタに入れられる。
【0023】本発明のアドレス翻訳装置は、上述のテー
ブル探索プロセスを監視することにより特定の物理的ア
ドレスに対応する論理的アドレスを決定する。完全な物
理的アドレスを発生するのに必要な情報は論理的アドレ
スのレベルA、レベルB、およびレベルCの部分であ
る。上に注記したように、論理的アドレスのページ索引
部分は翻訳されない。各レベルについての論理的アドレ
スの部分はレベルN論理的アドレスについて方程式
(1)を解くことにより決定される。レベルN論理的ア
ドレス=レベルNアクセス・アドレス−レベルNテーブ
ル・アドレス−−−(2)レベルN・アクセス・アドレ
スは、テーブル探索プロセスの各バス・サイクル中にプ
ロセッサ10のアドレス・バスにより供給される。レベ
ルNテーブル・アドレスは、各N−1バス・サイクル中
にデータ・バス上に現われる。論理的アドレスの各部分
またはレベルがテーブル探索プロセス中に決定される
と、それは各論理的アドレスの部分を完全な論理的アド
レスに結びつけるレジスタに格納される。論理的アドレ
ス全体が構成されてしまえば、これはRAMアレイに格
納される。
【0024】本発明を組込んでいるエミュレーション・
システムを図4にブロック図の形で示す。プローブ70
はプロセッサ10に接続する。プローブ70は、ケーブ
ル72によりエミュレータ・ポッド74に接続されてい
る。エミュレータ・ポッド74の機能は従来どおりのエ
ミュレーション特徴を示すことである。状態フィール
ド、データ・フィールド、アドレス・フィールド、およ
びクロック信号は、エミュレータ・ポッド74からアド
レス翻訳ユニット76に接続される。状態、データ、お
よびアドレスの各フィールドはプロセッサ・バス20に
載っている情報と実質的に同じ情報を備えている。アド
レス・フィールドには実行ユニット12から要求された
物理的アドレスが入っている。アドレス翻訳ユニット7
6はプロセッサから供給された物理的アドレスを論理的
アドレスに翻訳し、論理的アドレス、データ、および状
態の各フィールドを状態アナライザ78に供給する。状
態アナライザ78は、プログラム実行中にプロセッサ1
0からの論理的アドレス、データ、および状態の各情報
を利用してプロセッサの動作を解析し、測定する。
【0025】本発明によるアドレス翻訳ユニット76の
ブロック図を図5に示す。アドレス翻訳ユニットは、プ
ロセッサ・バス・サイクル情報をエミュレータ・ポッド
74から受取る。プロセッサ・バス・サイクル情報には
アドレス・フィールド102、データ・フィールド10
4、および状態フィールド106がある。アドレス・フ
ィールドおよびデータ・フィールド102、104は各
32ビットであり、状態フィールド106は16ビット
である。アドレス・フィールド102は通常物理的アド
レスが入っている。エミュレータ・ポッド74から受取
ったクロック108は、プロセッサの活性低アドレス・
ストローブ(LAS)の遲延したものである。エミュレ
ータ・ポッド74からのバス・サイクル情報はポッド・
インターフェース・レジスタ110に格納される。状態
アナライザ78への出力は解析インターフェース・レジ
スタ120に格納される。解析インターフェース・レジ
スタ120は、データ・フィールド104、状態フィー
ルド106、およびアドレス・フィールド122を受取
る。アドレス・フィールド122は普通論理的アドレス
であるが、或る場合には以下に記すように物理的アドレ
スであることもある。アドレス翻訳ユニットは、パイプ
ライン構造を利用してMC68030プロセッサの33
メガヘルツのバス速度を処理する。パイプラインは高速
動作を行う共通使用構造である。情報はパイプラインの
数段を通して順次転送され、動作は各段で行われる。各
段は機能回路および段レジスタを備えている。パイプラ
インの各段で異なる機能が同時に行われるから、全体の
動作速度は大きい。
【0026】図5に示すアドレス翻訳ユニットのパイプ
ライン構造にはエミュレータ・ポッド74からの入力と
状態アナライザ78への出力との間に三つの並列径路が
ある。物理的径路124は、物理的アドレス、データ、
および状態の各フィールドをエミュレータ・ポッドから
状態アナライザ78へ転送する。翻訳径路126は、物
理的アドレス対論理的アドレスの翻訳を行う。アドレス
捕捉径路128は、メモリ管理ユニットによるテーブル
探索中に論理的アドレスを決定する。物理的径路124
および翻訳径路126は同数のパイプライン段を備えて
いるので物理的アドレスは論理的アドレスと同時にアド
レス選択器に到着する。アドレス捕捉径路128の所有
する段数は物理的径路および翻訳径路の段数より少い。
論理的アドレスが発生し終ってから、これは翻訳径路1
26に転送される。
【0027】アドレス・フィールド102、データ・フ
ィールド104、および状態フィールド106は、クロ
ック108によりポッド・インターフェース・レジスタ
110に転送される。クロック108はまた、アドレス
・フィールド102をアドレス・シフト・レジスタ13
0に転送し、ポッド・インターフェース・レジスタ11
0の出力からデータ・フィールド104を現在テーブル
・アドレス(CTA)レジスタ132に転送する。アド
レス・シフト・レジスタ130の出力は減算器134の
一つの入力に接続されており、CTAレジスタ132の
出力は減算器134の他の入力に接続されている。減算
器134は、減算の結果を保持するレジスタ134aを
備えている。減算器レジスタ134aの出力は、バレル
シフタ136の入力に接続されている。バレルシフタ1
36の出力は論理的アドレス・ビルダ138の入力に接
続されている。バレルシフタ136および論理的アドレ
ス・ビルダ138は、レジスタ・ファイル140から
の、それぞれシフト信号および保持信号により制御され
る。レジスタ・ファイル140は、テーブル探索制御器
142により制御される。テーブル探索制御器は図6に
示すようにアドレス翻訳ユニットの動作を制御する信号
を発生する。アドレス・シフト・レジスタ130、CT
Aレジスタ132、減算器134、バレルシフタ13
6、論理的アドレス・ビルダ138、レジスタ・ファイ
ル140、およびテーブル探索制御器142は、アドレ
ス翻訳ユニットのアドレス捕捉径路128の要素から構
成されている。
【0028】クロック108は、連続する遅延線15
0、152、154、および156を通して結合されて
おり、遅延線の各々の遅れは約50ナノ秒である。。遅
延線150、152、154および156の出力はパイ
プライン式アドレス翻訳ユニットの動作を制御するため
の遅延クロックを発生する。パイプライン構造の翻訳径
路126にはオフセット保持レジスタ170がある。ポ
ッド・インターフェース・レジスタ110の出力にある
アドレス・フィールド102はオフセット保持レジスタ
170の入力に接続されている。オフセット保持レジス
タ170は遅延線150の出力によりストローブされ
る。オフセット保持レジスタ170の出力はマッパ17
2の入力に接続されている。
【0029】マッパ172は、アドレス・フィールド1
02の物理的アドレスを、物理的対論理的アドレス翻訳
を格納しているマップRAMにアクセスするに適するア
ドレスに変換する。マッパ172はまた物理的アドレス
をチェックして翻訳をアドレス翻訳ユニットにより行う
ことができるアドレスの許容範囲内にあるか判定する。
物理的アドレスは、マッパ172で許容アドレス範囲の
下方境界とおよび許容アドレス範囲の上方境界と比較さ
れる。物理的アドレスが翻訳を行うことができるアドレ
スの許容範囲の外側にあるときは「マップせず」の信号
が発生する。物理的アドレスがアドレスの許容範囲の内
部にあるときは、パターンが物理的アドレスに付加され
て「マップ後物理的アドレス」を発生する。或る場合に
は、アドレスの許容範囲内部にあっても物理的アドレス
を翻訳することができないことがある。この場合には、
マップ172は、その特定の物理的アドレスが有効で且
つ翻訳できるか否かを示すタグ・ビットを発生する。こ
のようにして、マップせず信号およびタグ・ビットが共
に、アドレス翻訳ユニットが翻訳を行わなかった物理的
アドレスを識別する。
【0030】マッパ172の出力は、マップ保持レジス
タ174の入力に接続されている。マップ保持レジスタ
174は遅延線152の出力によりストローブされてい
る。マップ保持レジスタ174の出力は、マップRAM
176のアドレス入力およびタグRAM178のアドレ
ス入力に接続されている。タグRAM178は、マップ
RAM176の各記憶場所について1ビットを備えてお
り、各マップRAMの記憶場所にあるデータが有効局部
アドレスを表わしているか否かを示す。マップRAM1
76は、局部アドレス・ビルダ138からデータ入力
を、およびレジスタ・ファイル140から書込ストロー
ブ信号を受取る。マップRAM176およびタグRAM
178の出力は、局部アドレス保持およびタグ保持レジ
スタ180の入力と接続されている。レジスタ180は
遅延線154の出力によりストローブされる。レジスタ
180の出力は、アドレス・マルチプレクサ182の一
つの入力に接続されている。アドレス・マルチプレクサ
182は、タグRAM178からのタグ・ビットおよび
マッパ172からのマップせず信号により制御される。
オフセット保持レジスタ170、マッパ172、マップ
保持レジスタ174、マップRAM176、タグRAM
178、レジスタ180、およびアドレス・マルチプレ
クサ182は、パイプライン構造のアドレス翻訳径路1
26の要素を構成している。
【0031】マップRAM176は物理的記憶装置の各
ページに対する翻訳を保持するに充分な容量を備えてい
る。好適実施例では、マップRAMは、各々が24ビッ
トの、64Kの記憶場所を備えている。24ビットは論
理的アドレスの上位ビットに対応する。タグRAM17
8は、マップRAM176の各記憶場所に対応する1ビ
ットの記憶場所を備えている。したがって、好適実施例
では、タグRAM178は64K×1ビットである。
【0032】パイプライン構造の物理的径路124に
は、レジスタ190、192、および194がある。ア
ドレス・フィールド102、データ・フィールド10
4、および状態フィールドは、ポッド・インターフェー
ス・レジスタ110、レジスタ190、レジスタ19
2、レジスタ194を通して解析インターフェース・レ
ジスタ120に順次移動する。レジスタ190は遲延線
150の出力によりストローブされ、レジスタ192は
遲延線152の出力によりストローブされ、レジスタ1
94は遲延線154の出力によりストローブされ、解析
インターフェース・レジスタ120は遲延線156の出
力によりストローブされる。
【0033】レジスタ194の出力で、アドレス・フィ
ールドの最下位8ビットがバス196により直接解析イ
ンターフェース・レジスタ120に結合されている。ア
ドレス・フィールドの上位24ビットはバス198によ
りアドレス・マルチプレクサ182の他の入力に接続さ
れている。物理的アドレスの下位8ビットは、論理的ア
ドレスの下位8ビットと同じでページ索引を表わしてい
る。物理的アドレスの下位8ビットは変らないので、こ
れらは解析インターフェース120に直接接続されてお
り、アドレス翻訳プロセスの一部ではない。アドレス・
マルチプレクサ182は、タグ・ビットおよびマッパ1
72のマップせず出力の状態によりレジスタ180から
の論理的アドレスかまたはレジスタ194からの物理的
アドレスかを選択する。或る場合には、物理的アドレス
から論理的アドレスへの翻訳を行うことができず、物理
的アドレスが状態アナライザ78に供給される。マップ
せず信号が活性で物理的アドレスが翻訳ユニットの許容
アドレス範囲の外側にあることを示しているとき、また
はタグ・ビットが活性で物理的アドレスが許容アドレス
範囲内にあるが翻訳されないことを示しているとき、物
理的アドレスはマルチプレクサ182により供給され
る。
【0034】パイプライン構造の各段は、図5を参照し
て識別することができる。ポッド・インターフェース・
レジスタ110、アドレス・シフト・レジスタ130、
およびCTAレジスタ132は、エミュレータ・ポッド
・インターフェース段を表わしており、これはクロック
108によりストローブされる。減算器レジスタ134
a、オフセット保持レジスタ170、およびレジスタ1
90は、パイプラインの第1段を表わしており、これは
遲延線150の出力によりストローブされる。論理的ア
ドレス・ビルダ138、マップ保持レジスタ174、お
よびレジスタ192は、パイプラインの第2段を表わし
ており、これは遲延線152の出力によりストローブさ
れる。論理的アドレス保持およびタグ保持レジスタ18
0、およびレジスタ194は、パイプラインの第3段を
表わしており、これは遲延線154の出力によりストロ
ーブされる。解析インターフェース・レジスタ120は
状態アナライザ78とのインターフェースであり、遲延
線156の出力によりストローブされる。
【0035】図5のアドレス翻訳ユニットの動作を図6
のパイプライン・タイミング図を参照して説明する。図
6の各縦欄は図5のアドレス翻訳ユニットの1パイプラ
イン・サイクルを表わす。9パイプライン・サイクルを
示してある。図6の最初の3パイプライン・サイクル中
に、プロセッサ10は、テーブル歩行、またはテーブル
探索を行っており、翻訳ユニット76のアドレス捕捉径
路128は、アドレス捕捉を行っている。テーブル探索
は、プロセッサにより発生され且つ状態フィールド10
6に組込まれているテーブル信号により識別される。テ
ーブル探索は、物理的アドレス翻訳に対する所要論理が
メモリ管理ユニットのアドレス翻訳キャッシュ24に入
っていないとき行われる。プロセッサを初期設定する
と、アドレス翻訳キャッシュは空であり、実行ユニット
12によりメモリ・アクセスにはすべて対応する物理的
アドレスを決定するのにテーブル探索が必要である。テ
ーブル探索が行われるにつれて、アドレス翻訳ユニット
76は後に説明するように将来の参照のため翻訳を格納
する。
【0036】テーブル探索が図2および図3に示し且つ
上に説明した例に従ってプロセッサにより開始されてい
ると仮定する。図6のパイプライン・サイクル1で示す
ようなテーブル探索の第1段階で、テーブルAのアクセ
ス・アドレスがアドレス・フィールド102に現われ、
アドレス・シフト・レジスタ130に格納される。上に
説明したように、テーブルAの開始アドレスまたはルー
ト・ポインタは、MC68030プロセッサでは外部か
ら利用できない。それ故、テーブル探索プロセスの第1
段階中、0をCTAレジスタ132にロードする。正し
い論理的アドレスが本発明に従って確実に決定されるた
めには、プロセッサのユーザはプロセッサのルート・ポ
インタ・レジスタの下位8ビットを0に設定しなければ
ならない。この必要条件はプロセッサのユーザに重大な
制限を課すものではない。
【0037】パイプラインの第2サイクルで、減算器1
34はテーブルAのアクセス・アドレスとテーブルAの
アドレス(0)との差を求め、結果(レベルAの論理的
アドレスの部分)を減算器レジスタ134aに格納す
る。第1のパイプライン・サイクル中に、プロセッサは
テーブルAのアクセス・アドレスにより指定されたテー
ブルAの特定のエントリにアクセスした。第1のパイプ
ライン中にテーブルAからデータ・フィールド104に
戻されたデータはテーブルBアドレスである。テーブル
Bアドレスは、ポッド・インターフェース・レジスタ1
10の出力からCTAレジスタ132にロードされ、テ
ーブルBアクセス・アドレスは、第2パイプライン・サ
イクル中に到来アドレス・フィールド102からアドレ
ス・シフト・レジスタ130にロードされる。第2のパ
イライン・サイクル中にテーブルBから戻されたデータ
・フィールドはテーブルCアクセス・アドレスである。
【0038】テーブルCアクセス・アドレスは、第3の
パイプライン・サイクル中にCTAレジスタ132にロ
ードされ、テーブルCアクセス・アドレスはアドレス・
シフト・レジスタ130にロードされる。第3のパイプ
ライン・サイクル中、減算器134はテーブルBアクセ
ス・アドレスとテーブルBアドレスとの間の差を求め、
結果(レベルBの論理的アドレスの部分)を減算器レジ
スタ134aに格納する。また第3パイプライン・サイ
クル中、レベルAの論理的アドレスの部分は、後に更に
詳細に説明するように論理的アドレス・ビルダ138の
レベルAの部分にロードされる。第4のパイプライン・
サイクル中に、レベルCの論理的アドレスの部分が、テ
ーブルCアクセス・アドレスとテーブルCアドレスとの
間の差として決定され、減算器レジスタ134aにロー
ドされる。また、レベルB論理的アドレスは、第3パイ
プライン・サイクル中に決定されているが、論理的アド
レス・ビルダ138にロードされる。図6に示す最初の
3パイプライン・サイクル中に、プロセッサはテーブル
探索プロセスを完了する。パイプライン・サイクル4
で、プロセッサによりテーブル探索プロセスの結果とし
て決定された物理的アドレス1が、アドレス・フィール
ド102に現われ、ポッド・インターフェース・レジス
タ110にロードされる。
【0039】パイプライン・サイクル5の期間中にレベ
ルCの論理的アドレスが減算器レジスタ134aから論
理的アドレス・ビルダ138にロードされ、これにより
論理的アドレス1が完成する。またパイプライン・サイ
クル5の期間中に、物理的アドレス1がポッド・インタ
ーフェース・レジスタ110からオフセット保持レジス
タ170に転送される。現在の例では、実行ユニット1
2により要求される次の論理的アドレスがメモリ管理ユ
ニット14のアドレス翻訳キャッシュに入っており、テ
ーブル探索は不要であると仮定している。したがって、
第2の物理的アドレスは次のバス・サイクルで現われ
る。物理的アドレス2は、パイプライン・サイクル5の
期間中ポッド・インターフェース・レジスタ110にロ
ードされる。
【0040】パイプライン・サイクル6の期間中、マッ
プされた形態の物理的アドレス1がマップ保持レジスタ
174にロードされ、マップRAM176およびタグR
AM178にアドレスする。論理的アドレス・ビルダ1
38に入っている論理的アドレス1はマップRAM17
6に対するデータである。物理的アドレス1がマッパ1
72により有効物理的アドレスと決定されれば、ビット
がタグRAM178の対応するアドレスにロードされて
有効論理的アドレスがこの論理的アドレスに対してマッ
プRAM176に入っていることを示す。またパイプラ
イン・サイクル6の期間中に、物理的アドレス2はポッ
ド・インターフェース・レジスタ110からオフセット
保持レジスタ170に転送される。
【0041】パイプライン・サイクル7の期間中、論理
的アドレス1およびタグ・ビットが論理的アドレス保持
およびタグ保持レジスタ180に転送される。またパイ
プライン・サイクル7の期間中、マップされた形態の物
理的アドレス2がマップ保持レジスタ174にロードさ
れ、前に格納された論理的アドレスにアドレスする。パ
イプライン・サイクル8の期間中、論理的アドレス1
は、レジスタ180から解析インターフェース・レジス
タ120に転送される。タグ・ビットが有効論理アドレ
スを示していると仮定すると、アドレス・マルチプレク
サ182はレジスタ180の出力を選択し、論理的アド
レスの上位24ビットを解析インターフェース・レジス
タ120に供給する。上に説明したように、下位8ビッ
トは、物理的アドレスおよび論理的アドレスに対して同
じであり、且つ変らない。したがって、論理的アドレス
の下位8ビットは、バス196を経由し、パイプライン
構造の物理的径路124を通って供給される。第8パイ
プライン・サイクル中、論理的アドレス1に対応するデ
ータおよび状態の各フィールドは解析インターフェース
・レジスタ120に到達する。また第8パイプライン・
サイクル中、論理的アドレス2は、物理的アドレス2に
対応するものであるが、マップRAM176でアクセス
され、レジスタ180に転送される。
【0042】第9のパイプライン・サイクル中、論理的
アドレス2は論理的アドレス1と同じ仕方で解析インタ
ーフェース・レジスタ120に転送される。プロセッサ
の正常動作中、テーブル探索および物理的アドレスの連
続流れがプロセッサにより、実行されているプログラム
によりおよびテーブル探索を行うのに必要な頻度により
決まる順序で供給されることが理解されよう。開示した
アドレス翻訳ユニットはバス・サイクル情報をプロセッ
サから受取り、所要動作を行い、バス・サイクル情報を
論理的アドレスに翻訳された物理的アドレスと共に状態
アナライザに転送する。翻訳ユニット76は、ポッド・
インターフェース・レジスタ110で受取る情報と解析
インターフェース・レジスタ120に供給される情報と
の間に約200ナノ秒の遅れを生ずる。
【0043】上述の例において、論理的アドレスは8ビ
ットのページ索引および3レベルの論理的アドレス・フ
ォーマットを備えている。プロセッサは他の論理的アド
レス・フォーマットを供給するように構成することがで
きることが理解されよう。したがって、たとえば、ペー
ジ索引は9ビット以上を備えることができる。その他、
論理的アドレスは3レベルより少くすることができ、各
論理的アドレス・レベルのビット数を多くしたり少くし
たりすることができる。プロセッサに供給される初期設
定情報を調べ、アドレス捕捉および翻訳動作という各種
動作に使用されるビットの数を調節することにより、異
なる論理的アドレス・フォーマットをアドレス翻訳ユニ
ット76に適応させることができる。
【0044】バレル・シフタ136および論理的アドレ
ス・ビルダ138の動作を図7を参照して更に詳細に説
明する。減算器134は、テーブル探索の連続するサイ
クル期間中に論理的アドレスの部分を供給する。論理的
アドレスの部分は常に減算器134からの同じ組合せの
出力線に現われ、論理的アドレスの適切なビット部分に
転送されなければならない。減算器134により供給さ
れるレベルAの論理的アドレス部分は論理的アドレスの
ビット部分24から31までに移動しなければならない
(図2を参照)。レベルBの論理的アドレス部分は、ビ
ット部分16から23までに、およびレベルCの論理的
アドレス部分はビット部分8から15までに移動しなけ
ればならない。バレル・シフタ136は、レジスタ・フ
ァイル140から受取ったシフト信号に基きビット位置
に関する所要移動を行う。シフト信号は、バレル・シフ
タ136により移動させられるビット位置の数を示す5
ビット信号である。バレル・シフタ136は、たとえ
ば、テキサス・インスツルメントが製造するSN74A
S8838形とすることができる。
【0045】論理的アドレス・ビルダ138は、論理的
アドレスを保持するレジスタ、および論理的アドレス部
分の連続入力を制御して完全な論理的アドレスを構成す
る論理を備えている。保持入力は前の状態に保持されて
いる論理的アドレスのビット数およびバレル・シフタ1
36からの入力に従って更新されるビット数を決定する
5ビット入力である。レベルAの論理的アドレスの部分
をバレル・シフタ136から受取ると、保持入力は論理
的アドレス・ビルダ138のレジスタに入っているすべ
てのビットを変化させる。アドレス構成サイクルの次の
段階中に、保持入力はビット24から31まで(レベル
A)を保持しなければならず、残りのビットを変化させ
る。したがって、レベルBの論理的アドレスの部分はビ
ット部分16から23までにロードされる。アドレス構
成サイクルの第3段階中に、保持入力はビット位置16
から31まで(レベルAおよびB)を保持する必要があ
り、レベルC論理アドレス部分によりビット部分8から
15までを変化させる。今や完全な24ビットの論理的
アドレスが構成されている。上に示したように、論理的
アドレスが低位8ビットはページ索引を表わしており、
翻訳されない。
【0046】上に図示し且つ説明したアドレス翻訳ユニ
ットは本発明のハードウェア実行であり、物理的アドレ
ス対論理的アドレスのリアルタイム翻訳を行う。このよ
うにして、論理的アドレスは、アドレス翻訳ユニット7
6により対応するデータ・フィールドおよび状態フィー
ルドと同時に状態アナライザ78に供給される。この構
成により状態アナライザは論理的アドレスに関してトリ
ガすることができ、リアルタイムで動作することができ
る。本発明のアドレス捕捉技法はプロセッサ・バスで利
用できる情報を後処理することによりソフトウェアで実
施することもできる。たとえば、バス情報を直接状態ア
ナライザ78に供給し、格納することができる。プログ
ラムをプロセッサ10で実行してから、バス情報を方程
式(2)に従って処理し、物理的アドレスに対応する論
理的アドレスを得ることができる。
【0047】論理的アドレスを決定する際行うステップ
を示す流れ図を図8に示す。図8の流れ図は、プロセッ
サによるテーブル探索中に論理的アドレスを捕捉するア
ルゴリズムを示し、本発明のハードウェアおよびソフト
ウェアの双方の実施に適用することができる。ステップ
202で、レベルAのテーブル・アドレスをレベルAア
クセス・アドレスから差引いてレベルAの論理的アドレ
スの部分を得る。ステップ204の期間中に、レベルB
のテーブル・アドレスをレベルBのアクセス・アドレス
を差引いてレベルBの論理的アドレスの部分を得る。ス
テップ206の期間中、レベルCのテーブル・アドレス
をレベルCのアクセス・アドレスから差引いてレベルC
の論理的アドレスの部分を得る。ステップ208の期間
中、レベルA、レベルB、およびレベルCの各論理的ア
ドレスの部分を組合せて所要の論理的アドレスを作る。
ステップ208での論理的アドレスの部分の組合せは、
論理的アドレスの部分が計算されるにつれて行うことが
できるか、またはすべての論理的アドレスの部分が計算
されてしまってから行うことができることが理解されよ
う。更に、減算ステップの数は、論理的アドレスの数お
よび対応するテーブル探索のレベルの数によって変る。
【0048】本発明についてデマンド・ページ式メモリ
管理ユニットを備えているMC68030プロセッサと
関連して説明してきた。本発明は論理的アドレスを物理
的アドレスに変換するのにテーブル探索を行うどんなプ
ロセッサにも利用することができることが理解されるで
あろう。メモリ管理ユニットは必らずしも実行ユニット
と同じチップ上にはなく、必らずしもデマンド・ページ
・モードで動作しない。その他、プロセッサは大容量記
憶装置を用いてまたは用いずに動作することができる。
【0049】
【発明の効果】以上説明したように、本発明を用いるこ
とにより、同一チップ上にメモリ管理ユニットを有する
マイクロプロセッサのプログラム実行中に物理的アドレ
スを論理的アドレスにリアルタイムで翻訳することがで
きる。
【図面の簡単な説明】
【図1】オン・チップ・メモリ管理ユニットを有するマ
イクロプロセッサ・システムのブロック図である。
【図2】論理的アドレスの一例を示す概略図である。
【図3】メモリ管理ユニットによって使用されるテーブ
ル探索を示す概略図である。
【図4】本発明によるアドレス翻訳ユニットを組み込ん
だエミュレーション・システムの簡略ブロック図であ
る。
【図5】該アドレス翻訳ユニットのブロック図である。
【図6】前記アドレス翻訳ユニットの動作を示すパイプ
ライン・タイミング図である。
【図7】図5のバレル・シフタ及び論理的アドレス・ビ
ルダの動作を示すブロック図である。
【図8】本発明のアドレス捕捉アルゴリズムを示す流れ
図である。
【符号の説明】
70:プローブ 74:エミュレータ・ポッド 76:アドレス翻訳ユニット 78:状態アナライザ
フロントページの続き (73)特許権者 399117121 395 Page Mill Road Palo Alto,Californ ia U.S.A. (56)参考文献 特開 平1−134636(JP,A) 特開 昭63−82525(JP,A) 特開 平2−118739(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/10 505 G06F 11/28 G06F 12/08 543 G06F 12/08 583

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】メモリ管理ユニットを有するプロセッサと
    共に使用可能であり、物理的アドレスを対応する論理的
    アドレスに変換する装置であって、 アドレス・バス及びデータ・バスを有し、前記プロセッ
    サと通信するバス手段と、 前記メモリ管理ユニットによるテーブル探索中、前記バ
    ス手段上の情報に応答して論理的アドレスを決定するア
    ドレス捕捉手段と、 前記対応する物理的アドレスによって識別される場所に
    前記論理的アドレスを記憶する記憶手段と、 プログラム実行中前記メモリ管理ユニットによって発生
    された物理的アドレスに応答して前記記憶手段内の前記
    対応する論理的アドレスにアクセスし、前記プロセッサ
    によるプログラム実行中、前記対応する論理的アドレス
    を出力にリアルタイムで供給するアクセス手段と、 を備えて成る装置。
  2. 【請求項2】前記アドレス捕捉手段が、 テーブル・アクセス・アドレスからテーブル・アドレス
    を差し引いて、前記テーブル探索の各レベル期間中、論
    理的アドレス部分を発生する減算器手段と、 前記テーブル探索の各レベルからの前記論理的アドレス
    部分を論理的アドレスに結合する手段と、 を備えて成ることを特徴とする請求項1に記載の装置。
  3. 【請求項3】前記アドレス捕捉手段が、 前記テーブル・アドレスを一時的に記憶する第1のレジ
    スタ手段と、 前記テーブル・アクセス・アドレスを一時的に記憶する
    第2のレジスタ手段と、 をさらに備えて成り、前記第1、第2のレジスタ手段
    は、前記減算器手段の入力に結合された出力を備えてい
    る、請求項2に記載の装置。
  4. 【請求項4】論理的アドレス部分を結合する前記手段
    が、論理的アドレス・レジスタ手段と、前記減算器手段
    の出力を前記論理的アドレス・レジスタにおける所定の
    位置に転送する手段とを備えていることを特徴とする請
    求項2に記載の装置。
  5. 【請求項5】前記記憶手段が、前記論理的アドレスに関
    する複数の記憶位置を有するマップRAMを有し、各記
    憶位置は、物理的アドレスに対応し、かつ物理的アドレ
    スによってアドレス指定可能であることを特徴とする請
    求項1に記載の装置。
  6. 【請求項6】前記記憶手段が、前記マップRAMにおけ
    る各記憶位置に対応するタグ・ビットを有するタグRA
    Mをさらに備えで成り、前記タグ・ビットは、有効な論
    理的アドレスが前記マップRAMにおける対応する記憶
    位置に記憶されているかどうかを指示することを特徴と
    する請求項5に記載の装置。
  7. 【請求項7】前記メモリ管理ユニットから受信した物理
    的アドレスに応答して、前記物理的アドレスを、前記マ
    ップRAMにおけるアドレスに対応する値にマッピング
    し、かつ、前記物理的アドレスが特定の範囲内にあると
    き、前記タグRAMにビットを設定するマッパ手段を前
    記アクセス手段が備えでいることを特徴とする請求項6
    に記載の装置。
  8. 【請求項8】前記タグ・ビットの状態に応答して、前記
    論理的アドレスまたは前記物理的アドレスを前記出力に
    供給するマルチプレクサ手段をさらに備えて成ることを
    特徴とする請求項7に記載の装置。
  9. 【請求項9】プロセッサに関連したメモリ管理ユニット
    によって供給される物理的アドレスを対応する論理的ア
    ドレスに変換する方法であって、 前記メモリ管理ユニットが論理的アドレスを物理的アド
    レスに変換するテーブル探索中、論理的アドレスを決定
    するステップと、 前記対応する物理的アドレスによって識別される位置に
    前記論理的アドレスの各々を記憶するステップと、 物理的アドレスが前記メモリ管理ユニットによって発生
    されたときに、前記対応する、記憶された論理的アドレ
    スにアクセスし、前記プロセッサによるプログラム実行
    中、前記対応する論理的アドレスをリアルタイムで供給
    するステップと、 を備えて成る方法。
  10. 【請求項10】論理的アドレスを決定する前記ステップ
    が、 テーブル・アクセス・アドレスからテーブル・アドレス
    を差し引いて、前記メモリ管理ユニットによる前記テー
    ブル探索の各レベル期間中、論理アドレス部分を供給す
    るステップと、 前記テーブル探索の各レベルからの論理的アドレス部分
    を論理的アドレスに結合するステップと、 を備えて成ることを特徴とする請求項9に記載の方法。
JP05052091A 1990-02-22 1991-02-22 アドレス変換装置 Expired - Fee Related JP3170301B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/483,153 US5278961A (en) 1990-02-22 1990-02-22 Physical address to logical address translator for memory management units
US483153 1990-02-22

Publications (2)

Publication Number Publication Date
JPH04216151A JPH04216151A (ja) 1992-08-06
JP3170301B2 true JP3170301B2 (ja) 2001-05-28

Family

ID=23918879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05052091A Expired - Fee Related JP3170301B2 (ja) 1990-02-22 1991-02-22 アドレス変換装置

Country Status (2)

Country Link
US (1) US5278961A (ja)
JP (1) JP3170301B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386522A (en) * 1991-12-30 1995-01-31 International Business Machines, Corp. Dynamic physical address aliasing during program debugging
US5623636A (en) * 1993-11-09 1997-04-22 Motorola Inc. Data processing system and method for providing memory access protection using transparent translation registers and default attribute bits
JPH07210395A (ja) * 1994-01-10 1995-08-11 Fujitsu Ltd ファームウェアメンテナンス方式
US6430548B1 (en) * 1994-01-18 2002-08-06 Honeywell Inc. Optimized database management system
US5666509A (en) * 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
KR100596594B1 (ko) 1997-03-27 2006-07-06 휴렛-팩커드 컴퍼니(델라웨어주법인) 전기적 제어 가능 소자 어레이의 어드레싱
CN1111835C (zh) 1997-03-27 2003-06-18 惠普公司 解码器***
US6038625A (en) * 1998-01-06 2000-03-14 Sony Corporation Of Japan Method and system for providing a device identification mechanism within a consumer audio/video network
US6594701B1 (en) 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6321276B1 (en) * 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6957419B2 (en) * 2002-03-15 2005-10-18 International Business Machines Corporation Facilitating the use of aliases during the debugging of applications
US8769517B2 (en) 2002-03-15 2014-07-01 International Business Machines Corporation Generating a common symbol table for symbols of independent applications
JP3928730B2 (ja) * 2004-06-25 2007-06-13 セイコーエプソン株式会社 半導体装置、マイクロコンピュータ及び電子機器
JP4523639B2 (ja) * 2005-03-24 2010-08-11 富士通株式会社 ファームウェアによるメモリエラーアドレス管理
KR100732633B1 (ko) * 2006-02-01 2007-06-27 삼성전자주식회사 비연속적인 비트라인 디코딩을 수행하는 플래시 메모리장치
WO2010004243A2 (en) * 2008-07-10 2010-01-14 Cambridge Consultants Limited Interrupt processing
US8402258B2 (en) * 2008-07-25 2013-03-19 Freescale Semiconductor, Inc. Debug message generation using a selected address type
JP5412667B2 (ja) * 2008-12-26 2014-02-12 独立行政法人産業技術総合研究所 積層lsiチップのシステム検査のための方法および検査システム
US8412880B2 (en) * 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US8677203B1 (en) * 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US9298631B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Managing transactional and non-transactional store observability
US9311101B2 (en) 2012-06-15 2016-04-12 International Business Machines Corporation Intra-instructional transaction abort handling
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
US9262320B2 (en) 2012-06-15 2016-02-16 International Business Machines Corporation Tracking transactional execution footprint
US9015419B2 (en) 2012-06-15 2015-04-21 International Business Machines Corporation Avoiding aborts due to associativity conflicts in a transactional environment
US9223687B2 (en) 2012-06-15 2015-12-29 International Business Machines Corporation Determining the logical address of a transaction abort
US10104004B2 (en) * 2012-11-08 2018-10-16 Texas Instruments Incorporated Openflow match and action pipeline structure
CN105027213A (zh) * 2013-03-12 2015-11-04 惠普发展公司,有限责任合伙企业 可编程地址映射和存储器访问操作
GR20130100707A (el) * 2013-12-23 2015-07-31 Arm Limited, Μεταφραση διευθυνσης σε μια συσκευη επεξεργασιας δεδομενων
EP3286640A4 (en) * 2015-04-24 2019-07-10 Optimum Semiconductor Technologies, Inc. COMPUTER PROCESSOR HAVING SEPARATE RECORDS FOR ADDRESSING A MEMORY
US10078567B2 (en) * 2016-03-18 2018-09-18 Alibaba Group Holding Limited Implementing fault tolerance in computer system memory
US10482031B1 (en) * 2016-08-25 2019-11-19 Cadence Design Systems, Inc. Method and system for reconstructing virtual address from physical memory
US10613989B2 (en) * 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
CN114327497A (zh) * 2020-09-30 2022-04-12 华为技术有限公司 一种代码处理方法、装置及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4482952A (en) * 1980-12-15 1984-11-13 Nippon Electric Co., Ltd. Virtual addressing system using page field comparisons to selectively validate cache buffer data on read main memory data
US4636940A (en) * 1983-03-31 1987-01-13 Hewlett-Packard Company Logic analyzer using source program or other user defined symbols in the trace specification and the trace listing
JP2589713B2 (ja) * 1987-11-20 1997-03-12 株式会社日立製作所 データプロセッサ及びデータ処理システム
US4825412A (en) * 1988-04-01 1989-04-25 Digital Equipment Corporation Lockout registers
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system

Also Published As

Publication number Publication date
US5278961A (en) 1994-01-11
JPH04216151A (ja) 1992-08-06

Similar Documents

Publication Publication Date Title
JP3170301B2 (ja) アドレス変換装置
Calder et al. Predictive sequential associative cache
US5167023A (en) Translating a dynamic transfer control instruction address in a simulated CPU processor
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
US5301302A (en) Memory mapping and special write detection in a system and method for simulating a CPU processor
US4951195A (en) Condition code graph analysis for simulating a CPU processor
US7577790B2 (en) Caching of dynamic arrays
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
US5805930A (en) System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs
JPH10232839A (ja) キャッシュシステムおよびキャッシュメモリの作動方法
US5696990A (en) Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area
US5924126A (en) Method and apparatus for providing address translations for input/output operations in a computer system
JP3449487B2 (ja) 変換索引緩衝機構
JPH08212136A (ja) 仮想メモリ変換処理を効率的に共有する方法及び装置
US6606697B1 (en) Information processing apparatus and memory control method
JP2001034537A (ja) アドレス変換回路
JP2768503B2 (ja) 仮想記憶アドレス空間アクセス制御方式
JP2004030638A (ja) マイクロプロセッサキャッシュ設計初期化
EP0327198B1 (en) Processor simulation
US7900019B2 (en) Data access target predictions in a data processing system
US5012410A (en) Data processor with instruction cache memory
CA1264200A (en) System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4598361A (en) Allocator for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US6961839B2 (en) Generation of native code to enable page table access

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

LAPS Cancellation because of no payment of annual fees