JPH07152654A - メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法 - Google Patents

メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法

Info

Publication number
JPH07152654A
JPH07152654A JP6259622A JP25962294A JPH07152654A JP H07152654 A JPH07152654 A JP H07152654A JP 6259622 A JP6259622 A JP 6259622A JP 25962294 A JP25962294 A JP 25962294A JP H07152654 A JPH07152654 A JP H07152654A
Authority
JP
Japan
Prior art keywords
address
physical address
translation
memory
logical address
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
JP6259622A
Other languages
English (en)
Inventor
Lee Parrot Clifford
クリフォード・リー・パロット
Allen Museman Gary
ゲーリー・アレン・ミューズマン
Charles Saasero Joseph
ジョゼフ・チャールズ・サーセロ
M Mccarthy Daniel
ダニエル・マイケル・マッカーシー
Juan G Revilla
ジュアン・ギレルモ・リヴァイラ
C Podner Robert Jr
ロバート・シー・ポッドナー・ジュニア
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 JPH07152654A publication Critical patent/JPH07152654A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 コンピュータ・タッチ命令(つまりPLPA
命令)を使用して、メモリ管理装置(MMU16)によ
り1ページのメモリにタッチする方法を提供する。 【構成】 コンピュータ・タッチ命令はオペランド・パ
イプライン装置14によって実行され、タッチ命令のオ
ペランドである論理アドレスはMMU16に転送され
る。タッチ命令の実行により、MMU16は論理アドレ
スを物理アドレスに変換する。MMU16はまた、タッ
チ命令の実行により、アドレス変換によって発生したす
べての誤りを検出し、有効な変換が存在する場合はアド
レス変換キャッシュ(ATC22)に有効な物理アドレ
ス変換をロードし、ATC22にアクセス許可ビットを
セットし、有効ならばその物理アドレスをプログラマ可
視レジスタでユーザに提供する。これらの機能はすべ
て、論理アドレスに対応するメモリ位置に実際にアクセ
スすることなく、MMU16によって実行される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に半導体回路に関
し、さらに詳しくは、メモリにアクセスすることなくア
ドレス変換キャッシュのアドレス変換を更新する方法に
関する。
【0002】
【従来の技術】要求時ページング・メモリ管理装置(P
MMUまたはMMU)では、ページおよび許可誤りをク
リアし、特定のメモリ・ページのアドレス変換キャッシ
ュ(ATC)を実際に使用する前にプリロードすること
がしばしば必要である。これは、その後の実際のメモリ
・アクセス時にMMUの誤りが発生しないことを確実に
するために行われる。この能力は、従来は、通常のメモ
リ・アクセスを実行することによって達成されていた。
通常のメモリ・アクセスを用いてATCをプリロードす
ることは可能であるが、そのアクセスが空間を制御する
場合には、望ましくない副作用を生じることがあった。
場合によっては、メモリ・アドレスから値を読み出す
と、読み出された値が消去あるいはリセットされる。こ
れは、いったん読み出されるとクリアされるレジスタ値
を有するメモリ・マッピングされた周辺装置の場合、特
にそうである。通常のメモリ・アクセスによるこれらの
周辺装置のデータの損失は不都合である。
【0003】
【発明が解決しようとする課題】システムによっては、
MMUにおける誤り処理によりこうした問題の幾つかを
処理するソフトウェア命令をオペレーティング・システ
ムに組み込んでいるものもある。これまでのシステムで
は、例外が発生した場合、誤りハンドラがPTEST命
令を実行し、状態レジスタを読み出して誤りの原因を発
見する必要があった。特に、PTEST命令は、MMU
を用いてアドレス変換テーブルを探索し、指定された論
理アドレスの変換に関する状態情報を決定する。次に、
不良変換は、プロセッサのアーキテクチャによってPF
LUSHまたはPLOAD命令によりクリーンアップし
なければならない。これらの操作は、ユーザにとって面
倒である。したがって、ページおよび許可誤りをクリア
し、特定のメモリ・ページのアドレス変換キャッシュ
(ATC)を実際の使用に先んじてプリロードするため
の方法が必要になる。
【0004】
【課題を解決するための手段】上述の欠点は本発明によ
って克服され、他の利点が本発明によって達成される。
本発明は一態様として、論理アドレスに対応する外部記
憶位置にアクセスすることなく、メモリ管理情報を提供
する方法から成る。この方法は、メモリ管理装置に論理
アドレスを提供することによって始まる。この論理アド
レスは、メモリ管理装置内で物理アドレス変換にマッピ
ングされる。物理アドレス変換が有効なアドレス変換で
あるか否かの決定が実行される。物理アドレス変換が無
効な変換である場合には、例外状態が呼び出される。物
理アドレス変換が有効である場合は、アドレス変換キャ
ッシュに物理アドレス変換がロードされる。物理アドレ
ス変換が有効であることが決定されると、物理アドレス
変換はユーザ・アクセス可能な位置に戻される。
【0005】本発明は、添付の図面に関連する以下の詳
細な説明から、いっそう明確に理解されるであろう。
【0006】添付の図面に示す要素は、図の簡潔性およ
び明瞭性を期すために、必ずしも縮尺通りに描かれてい
ないことを理解されたい。例えば、幾つかの要素の寸法
は、明瞭性を期すために他の要素に比べて誇張されてい
る。さらに、適切と思われる場合には、対応する要素ま
たは類似の要素であることを示すために、複数の図面で
同じ参照符号を使用した。
【0007】
【実施例】要求時ページング・メモリ管理システムで
は、ページおよび許可誤りをクリアし、特定のページの
アドレス変換キャッシュ(ATC)を実際の使用に先ん
じてプリロードすることがしばしば必要である。この能
力は、通常時間が重要な要素となるソフトウェア・エミ
ュレーション命令シーケンスにとって特に便利である。
中間シーケンス誤り(例えば再始動例外モデルの読出し
−修正−書込み命令における書込み保護誤り)に敏感に
反応する演算も、上述の機能から利益を受ける。上述の
機能を実行するために、タッチ命令,ページ・タッチ,
またはページング・メモリ管理装置(PMMU)ロード
物理アドレス(PLPA)命令と呼ばれる命令が使用さ
れる。PLPA命令は、誤りスタック・フレームにすべ
ての関連情報がすぐに得られ、かつPLPA命令を含む
コードによってクリーンアップが要求されないので、有
利である。
【0008】図1は、上述の機能を実行するために使用
されるシステムを示す。図1はデータ・プロセッサ12
を示す。プロセッサ12はマイクロプロセッサ,パイプ
ライン実行デバイス,アプリケーション特定的な集積回
路(ASIC)デバイス,プログラム可能論理配列(P
LA),ハードワイヤード論理,マイクロコードおよび
/またはナノコードによって少なくとも部分的にソフト
ウェア駆動される実行装置,多数の実行デバイス,ディ
ジタル信号プロセッサ(DSP),マイクロコントロー
ラ・ユニット(MCU),コンピュータなどとすること
ができる。プロセッサ12はオペランド・パイプライン
装置14を有する。装置14は、プロセッサ12内で命
令を実行するために使用される。
【0009】図1にメモリ管理装置(MMU)16が図
示されている。好適な形態では、MMU16はページン
グMMU(PMMU)であるが、技術上多くのMMUが
存在し、プロセッサ12内で使用することができる。M
MU16の基本機能は、装置14によって提供される論
理アドレスを物理アドレスに変換することである。MM
U16は、論理アドレスを物理アドレスに変換するため
に使用されるテーブルウォーク・コントローラを有す
る。MMU16は、高速アクセスのために最近変換され
たアドレスのコピーを保持するために使用されるアドレ
ス変換キャッシュ(ATC)22をも有する。ATC2
2に保存された物理アドレスは、テーブルウォーク・コ
ントローラ20が論理アドレスを物理アドレスに変換で
きる速度より高速で、MMU物理アドレス出力として提
供することができる。したがって、ATC22は、改良
されたアドレス変換性能を目的として使用される。
【0010】装置14,16は、外部メモリ18に接続
される。MMU変換テーブルはこのメモリ18に保存さ
れる。装置14はメモリ18からデータを受け取り、装
置16はメモリ18にアドレス情報を提供する。
【0011】装置14は、メモリ18へのアクセスが必
要か否かを決定する。図に示すように、論理アドレスが
MMU16に提供される。MMUはまずATC22を探
索し、前の変換からのアドレスがATC22に保存され
ているか否かを決定する。装置14によって提供された
論理アドレスに対応する物理アドレスがATCにある場
合には、ATC22がキャッシュ保存された物理アドレ
スを出力する。論理アドレスから物理アドレスへの変換
がATC22に含まれない場合には、テーブルウォーク
・コントローラ20が、メモリ18に保存されたMMU
テーブルを用いて論理アドレスを物理アドレスに変換
し、物理アドレスを出力として提供する。また、テーブ
ルウォーク・コントローラは、多数のデータ・ラインを
介してATC22にこの変換を渡す。次に、ATC22
は、テーブルウォーク・コントローラ20によって行わ
れた変換を将来使用するために保存する。ここで再び、
ATC22がコントローラ20より高速アドレス変換を
提供することに留意することが重要である。
【0012】いったん適切な物理アドレスをプロセッサ
12から受け取ると、外部メモリ18は、一般に読出し
要求または書込み要求として定義されるメモリ要求に応
答することができる。外部メモリ18は、データ・バス
として知られる多数のデータ・ビットによってプロセッ
サ12に接続される。データ・バスは一般に、読出し要
求時に要求されたデータを提供するために外部メモリ1
8によって使用される。さらに、データ・バスは、書込
み要求時に外部メモリ18に保存すべきデータを転送す
るためにプロセッサによって使用される。
【0013】図2は、図1で先に説明したタグおよび論
理アドレスを保存するために、ATC22によって使用
される一般的なフォーマットを示す。図2はまた、MM
U16によって使用される物理アドレスおよび物理タグ
のフォーマットをも示す。その他の論理および物理アド
レスおよびタグも技術上周知であり、図2で使用するこ
とができる。図2は、Vビット・タグを有する論理アド
レスを示す。Vビットがセットされた場合、それはAT
C22のアドレスまたはエントリが有効アドレスである
ことを示し、また、そのアドレスが非グローバルである
ことを示す。Vビットは、MMU16が有効な変換を実
行したときにセットされる。Vビットをクリアするに
は、PFLUSHとして知られるソフトウェア命令を使
用することができ、それによってATC22のエントリ
は無効化される。
【0014】論理アドレス・タグはGビット・タグを有
し、これがセットされた場合、論理アドレスが有効かつ
グローバルであることを示す。任意の変換に対し、Vビ
ットとGビットが同時にセット状態になることはない。
論理アドレスは、図2に示すFC2(ファンクション・
コード・ビット2)タグを有する。FC2ビットは、A
TCエントリの論理アドレスに対応するファンクション
・コードを含む。FC2は、スーパバイザ・モード・ア
クセスの場合にセットされ、ユーザ・モード・アクセス
の場合にクリアされる。ビット31ないし16は、論理
アドレス・ビット・タグを示す。
【0015】論理アドレスは、論理アドレスの最上位ビ
ットを含む16ビット・フィールド(ビット31ないし
16)を有する。MMUページ・サイズが4Kバイトの
場合、MMU18内でのATC/テーブルウォーク比較
を介して16ビット全部が使用される。8Kバイトのペ
ージの場合、最下位ビットの16ビット・フィールドは
MMU比較で無視される。
【0016】物理アドレスはU1(ユーザ・ページ属性
1)ビット・タグを有する。U1ビットはプロセッサ1
2によって解釈されることはないが、アクセスによって
外部バス転送が生じたときに(つまり、アドレスがオン
チップ・キャッシュに無いときや、キャッシュ禁止ビッ
トがセットされたときなど)、プロセッサ12のUPA
1ピンにエコーされる。UPA1は、設計によってはチ
ップ選択として使用することができる。U0ビット(ユ
ーザ・ページ属性0)は、U1ビット・タグと同様の方
法で機能する。
【0017】CM(キャッシュ・モード)は2ビットを
含み、1ページのメモリのキャッシュ・モードを選択す
るために使用される。
【0018】M(修正ビット)タグは、ATCエントリ
に対応する論理アドレスへの有効書込みアクセスが発生
したときにセットされるビットである。Wタグ・ビット
は、書込み保護タグ・ビットである。Wビットがセット
された論理アドレス(つまりATCエントリ)への書込
みアクセスまたは読出し−修正−書込みアクセスが発生
すると、すぐにアクセス誤り例外が生じる。図2で「物
理アドレス」と表示された部分は、変換された物理アド
レスの最上位ビットである。
【0019】図3は、図1のATC22の詳細編成を示
す。好適な実施例では、ATC22は、16セットの4
路セット・アソシエーティブ方式で編成された64エン
トリのキャッシュを実現する。図3は論理アドレス24
を示す。論理アドレス24は、ページ・オフセットと呼
ばれる最下位ビットを含む。ページ・オフセットは、、
4Kバイトのメモリ・ページ・サイズまたは8Kバイト
のメモリ・ページ・サイズをそれぞれ示す11ビット長
または12ビット長のいずれかとすることができる。図
3の論理アドレス24でビット12ないし16と表示さ
れた5ビットのうちの4ビットは、16行の4路セット
・アソシエーティブ・キャッシュ・ユニット26の行位
置を示すのに使用される。論理アドレス24のページ・
フレーム部は、比較装置24を介して、ユニット26に
保存された論理ページ・フレーム・タグ値と比較される
ビット群である。マルチプレクサ(MUX)30および
マルチプレクサ(MUX)32は、MMUページ・サイ
ズ(つまり4Kバイトまたは8Kバイト)によって、論
理アドレス24のビット12またはビット16のいずれ
か一方を選択する。8KバイトのMMUページを使用す
る場合は、ビット16がMUX30によって選択され、
4KバイトのMMUページを使用する場合は、ビット1
2がMUX30によって選択される。ページ・サイズ
は、4Kページ・モードまたは8Kページ・モードのい
ずれか一方を示す制御信号である。8KのMMUモード
を選択すると、MUX32は、物理アドレス・ビット1
2[つまりPA(12)]として、論理アドレス24の
論理アドレス・ビット12を出力する。4KのMMUモ
ードを選択すると、MUX32は、物理アドレス・ビッ
ト12[つまりPA(12)]として、ユニット26か
らキャッシュ保存ビットを出力する。
【0020】キャッシュ・ユニット26は4路セット・
アソシエーティブである。したがって、論理アドレス2
4からビット12〜15またはビット13〜16(ペー
ジ・サイズによって異なる)のいずれかを使用して、ユ
ニット26の16行のうちの1つを決定/復号した後、
特定の復号された行内の4つのタグ全部をページ・フレ
ームと比較することにより、論理アドレス24のアドレ
ス変換がユニット26に含まれるか否かが決定される。
論理アドレス24のアドレス変換がユニット26に含ま
れる場合は、信号Hit3,Hit2,Hit1,また
はHit0のうちの1つが表明される。OR部34は、
装置28からの4個のHit信号を1個のHIT信号に
圧縮する。OR部34は、キャッシュ・ヒットが発生し
たときに4個のエントリのうちのどれをキャッシュから
読み出すかを、「ライン選択」信号を介してMUX36
に知らせる。アドレス変換がATC22内にある場合
は、物理アドレスが「出力」と表示されたラインを介し
て出力される。ATC22内でキャッシュ・ヒットが発
生しない場合は、MMU16がテーブルウォーク・コン
トローラ22を呼び出す。出力は、ページ・オフセット
によって形成される最下位ビット(LSB),およびユ
ニット26からのデータによって形成される最上位ビッ
ト(MSB)を有する。
【0021】図4は、図1のテーブルウォーク・コント
ローラ20の動作をより詳細に示す。図4は、4Kバイ
トのページ・サイズを使用する典型的なテーブルウォー
ク方を示す。図4は、論理アドレス38を示す。論理ア
ドレス38は、コントローラ20によって4つの個別領
域にパージング(parsing)される。1つの領域は、ペー
ジ・オフセットと呼ばれる。第2領域はテーブル・イン
デックスA(TIA)と呼ばれる。第3領域は、テーブ
ル・インデックスB(TIB)と呼ばれる。第4領域
は、テーブル・インデックスC(TIC)と呼ばれる。
図に示すようにTIAは7ビットを持ち、TIBは7ビ
ットを持ち、TICは6ビットを持つ。他の形態では、
「スーパバイザ/ユーザ・モード」と表示された制御信
号を論理アドレスのビット32とすることができる(図
示せず)。このビット32は、FC2ビットと呼ばれる
(図2参照)。
【0022】図4はまた、スーパバイザ・ルート・ポイ
ンタ40およびユーザ・ルート・ポインタ42をも示
す。ルート・ポインタ40,42はそれぞれ23ビット
長である。FC2ビットまたはスーパバイザ/ユーザ・
モード制御ビットは、ルート・ポインタ40,42のい
ずれかを選択するために使用される。プロセッサがスー
パバイザ・アクセス(FC2=1)を行う場合には、ル
ート・ポインタ40が選択される。プロセッサ12がユ
ーザ・アクセス(FC2=0)を行う場合には、ルート
・ポインタ42が選択される。一般に、ルート・ポイン
タ40,42は2組のテーブルウォーク・メモリ配列が
可能であり、1組はユーザ・モード用、もう1組はスー
パバイザ・モード用である。したがって、ユーザ・モー
ドおよびスーパバイザ・モードはそれぞれ、異なるアド
レス変換を持つことができる。
【0023】ルート・ポインタ40,42の一方が、テ
ーブルウォーク・ステージAのAレベル・テーブル・ベ
ースとして使用される。ステージAでは、論理アドレス
38からのTIAビットが下位ビットとして、Aレベル
・テーブル・ベースに付加される。ステージAではTI
Aビットの最下位ビット(つまり右側)にバイナリ00
が付加される。バイナリ00は、Aレベル・テーブル・
ベースおよび付加されたTIAビットが、32ビット,
4メモリ・バイト,または1メモリ長語にアクセスする
ことを確実にする(これらはすべて等価的なビット・サ
イズである)。Aレベル・テーブル・ベース,付加TI
Aビット,および付加バイナリ00最下位ビットは一緒
に、テーブルAのアドレス44を形成する。アドレス4
4はメモリ・テーブル46の32ビット位置のアドレス
である。TIAビットはAレベル・テーブル・ベースの
範囲内(最上位ビット)に128の個別アドレスを持つ
ことができるので、メモリ・テーブル46は128エン
トリを有する。アドレス44は、単独長語データ値にア
クセスする(記述子0ないし記述子127の1つと呼ば
れる)。メモリ・テーブル46のアドレス44によって
アクセスされる23ビットの記述子は、テーブルウォー
クのステージBのBレベル・テーブル・ベースとして使
用される。
【0024】Bレベル・テーブル・ベースは、テーブル
Bのアドレス48の最下位ビットを形成する。論理アド
レス38のTIBビットは、ステージAの場合と同様の
方法で、最下位バイナリ00ビットと共に、アドレス4
8の下位ビットに付加される。アドレス48は、ステー
ジBでメモリ配列50へのポインタとして使用される。
配列50は、TIBに7ビットが含まれるために(つま
り27 =128)、128の長語位置を有する。アドレ
ス48によってアドレス指定された24ビット値が配列
50から引き出され、ステージCでCレベル・テーブル
・ベースとして使用される。
【0025】Cレベル・テーブル・ベースは、図4に示
すように付加バイナリ00を有する6個のTICビット
に付加され、テーブルCのアドレス52を形成する。ア
ドレス52は、64長語のメモリ配列54内の1つの位
置を示す(TICは6ビットなので、ステージCには6
4の位置が必要である)。配列54における64の位置
の1つに、32ビットの物理アドレスの変換された20
の最上位ビットが含まれる。配列54からのこの20ビ
ット,論理アドレス・タグ・フィールド,およびその他
の任意タグビット/制御ビットは、図1および図4に示
すように、テーブルウォーク・コントローラ20からA
TC22に転送される(図1のATC22とコントロー
ラ20との間のデータ接続を参照のこと)。論理アドレ
ス38のページ・オフセットは、物理アドレス56の最
下位ビットを形成するのに使用され、配列54からの2
0ビットは、物理アドレス56の最上位ビットを形成す
るのに使用される。メモリ配列46,50,54は、外
部メモリ18に配置される。
【0026】図5は、8Kバイトのページ・サイズを利
用する場合のMMU16の典型的なテーブルウォークを
示す。図4の要素に類似した図5の要素は、同一符号で
表示する。図4と図5の唯一の顕著な相違は、ページ・
オフセットのビット数,配列50,54に使用されたビ
ット数、およびTICのビット数が図4と図5の間で異
なることである。図5のテーブルウォークの動作は図4
のテーブルウォークのそれと同様であり、したがってこ
れ以上説明しない。
【0027】好適な実施例を提示するために。特定のビ
ット数,特定のメモリ・サイズ,特定のステージ数,特
定の種類の論理アドレスのパージング・サイズ,および
特定のアドレス・サイズを先に示したが、図4および図
5で他のビット数、他のメモリ・ページ・サイズ,他の
パージング方式,他のアドレス・サイズ,および異なる
テーブルウォーク・ステージ数を使用することもできる
ことは明らかである。メモリ読出しやメモリ書込みを必
要とする命令のような通常のメモリ・アクセスを実行す
る場合は、オペランド・パイプライン装置14が対応す
る論理アドレスをMMU16に転送する。MMU16
は、上述の演算を実行して物理アドレスを生成する。次
にこの物理アドレスはメモリ18によって使用され、ユ
ニット14にデータが提供される(図1参照)。
【0028】場合によっては、プロセッサ12がすべて
のMMU機能またはMMU機能の大部分を実行し、メモ
リ18にはアクセスしないことがある。上述のPLPA
命令はこの演算を実行する。PLPA命令は、特定の下
層アドレスまたは論理アドレスのための物理アドレス・
マッピングを返し、ATC22は更新される。ATC2
2の更新は、他の設計においては任意とすることができ
る。
【0029】一般に、PLPA命令は、1ページのメモ
リに「タッチ」する命令である。「タッチ」とは、PL
PA命令によって得られる論理アドレスが、メモリ管理
装置(MMU)の変換テーブルを用いて物理メモリアド
レスに変換されるアドレスであることを意味する(MM
U16参照)。したがって、変換テーブルの経歴ビット
は、変換に応答してセットされる。MMU16内または
MMU16に関連して発生する誤りは、PLPA命令実
行の不可欠な一部として誤りを処理することによって解
消される。アドレス変換キャッシュ(ATC)22は、
指定された読出しまたは書込みのためにロードされ、事
前設定される。一般にすべての許可は正しくセットまた
はクリアされ、適切なメモリ・アクセスが可能になる。
PLPA命令の実行の結果、論理アドレスに対応する物
理メモリアドレスがプログラマに返されるか、またはプ
ログラマブル可視レジスタ内でプログラマに利用可能に
なる。
【0030】いったんPLPA命令が実行されると、有
効なアドレス変換がATCに存在する。したがって、プ
ログラマが1ページのメモリに「タッチ」し、それをそ
の後の使用/アクセスのために準備するために必要なも
のは、単独の命令(PLPA)だけであり、その後の使
用/アクセスは誤りが無く効果的な方法で行われること
が保証される。PLPA命令は1ページ内のアドレス値
に実行されるという事実のために、そのメモリ・アドレ
スまたはページへのその後のアクセスは、PLPA命令
によりアドレス変換がすでに強制的に行われ,誤りが訂
正され、履歴ビットが更新されているので、結果的にア
クセス時間がより高速になる。
【0031】PLPA命令を使用することにより、以下
の利点が得られる。PLPA命令を実行することによ
り、プログラマが誤り処理のための特定の要求事項を知
らなくても、誤りはオペレーティング・システム,カー
ネル,またはハードウェアにいずれかによって自動的に
解消される。MMU状態を知るために特別の命令を必要
とせず、メモリ・アクセスの前に状態レジスタを読み出
す必要がない。特殊な事例を処理するための追加コード
を必要としない。例えば、オペレーティング・システム
は、PLPA命令が誤りを生じたことを知る必要がな
い。PLPAによって誤りが発生しても、追加クリーン
アップの必要がない。通常メモリ・アクセスを用いてA
TCをプリロードすることができるが、アクセスが空間
を制御する場合には望ましくない副作用が生じることが
ある。PLPA命令を使用すると、そうしたアクセスを
行う必要がなくなる。また、場合によっては、メモリか
ら値を読み出すと、読み出された値が消去またはリセッ
トされることがある。これは、いったん読み出されると
クリアされるレジスタ値を持つメモリ・マッピングされ
た周辺装置の場合、特にそうである。メモリ位置の実際
の読出し前に実行されるPLPA命令は、読出し時にデ
ータ損失が発生しないように、すべての誤りを処理す
る。
【0032】これまでのシステムでは、例外が発生した
場合、誤りハンドラがPTEST命令を実行し、状態レ
ジスタを読み出して誤りの原因を発見することが必要で
あった。特に、PTEST命令は、MMU内のアドレス
変換テーブルを探索して、指定された論理アドレスの変
換に関する状態情報を決定する。その後、プロセッサの
アーキテクチャによってPFLUSHまたはPLOAD
命令を用いて、不良変換をクリーンアップしなければな
らない。PLPA命令を使用すると、誤りスタック・フ
レームによりすぐにすべての関連情報が得られ、クリー
ンアップは必要ない。
【0033】図6は、タッチ(つまりPLPA)命令の
演算を記述する流れ図を示す。図6の段階60は、PL
PAつまりタッチ命令がオペランド・パイプライン装置
14(図1)にロードされ、実行が開始されることを示
す。段階61は、ATC22に有効なアドレス変換(つ
まりヒット)があるかどうかを探索する。段階63でA
TCヒットが発生すると、段階62は迂回される。段階
63でATC22にヒットが発生しないことが決定され
た場合、段階62は、MMUがテーブルウォーク・コン
トローラ20にアクセスすることによってアドレス変換
を得ることを示す(図1参照)。段階62はテーブル経
歴情報を更新する。段階64は、段階62の変換が有効
な変換であるか否かを決定する。この変換が無効の場
合、あるいはアクセスに必要な許可がない場合には、段
階68が実行される。段階68は、無効変換の結果とし
て、例外状態を呼び出す。段階70は、例外ハンドラの
ルーチンの誤りを処理する。誤り情報は、例外スタック
・フレームから直接入手することができる。例外スタッ
ク・フレームは、外部メモリに形成されたユーザ・アク
セス可能なメモリ・スタックであり、アドレス/データ
・バスを介してアクセスすることができる。オペレーテ
ィング・システムまたはカーネルは、PLPA命令を含
むコードとの対話をほとんど、またはまったく必要とす
ることなく、誤りを修正する。次に、タッチ命令は他の
誤りに対して再処理される。段階64の変換が有効であ
る場合(つまり誤りが発生しない場合)、段階66が実
行される。段階66では、ATC22に有効な変換がロ
ードされ、それにしたがって特権/許可がセットされ
る。段階72では、有効な物理アドレス(つまり有効な
変換)がプログラマ可視レジスタまたはメモリ位置に返
される。
【0034】以上、本発明を特定の実施例に照らして図
示し説明したが、当業者は別の変化例や改良例を思いつ
くであろう。例えば、ここでは4路セット・アソシエー
ティブ・キャッシュを説明したが、多くのキャッシュ,
多くのキャッシュ・サイズ,多くのキャッシュ交換アル
ゴリズム,および多くのキャッシュ構造が技術上存在す
ることを理解されたい。N路セット・アソシエーティブ
・キャッシュやその他の技術上周知のキャッシュをここ
で使用することができる。ここでは、説明を容易にする
ために、テーブルウォーク・コントローラをMMUに内
蔵するものとして説明したが、必ずしもそうする必要は
ない。テーブルウォーク・コントローラは、プロセッサ
12の外部またはMMUの外部に設けることができる。
タッチ(PLPA)命令は通常のメモリ・アクセスとは
異なると先に述べた。その相違点の一つは、変換された
論理アドレスに対応するメモリ位置が、PLPA命令に
よってアクセスされないことである。一般に、論理アド
レスに対応するアクセスは防止または強制排除されてい
ると言える。他の設計では、メモリ・アクセス回路が論
理アドレスに対応するメモリ位置にアクセスしないよう
に、特定の制御信号が生成されないようになっていると
言う方がより正確かもしれない(つまり、論理アドレス
に対応する外部メモリのアクセスは使用許可されなかっ
た)。したがって、本発明は、図に示した特定の形態に
制限されず、本発明の精神および範囲から逸脱しないす
べての変化例を網羅するものであることを理解された
い。
【図面の簡単な説明】
【図1】本発明によるシステムをブロック図形式で示
す。
【図2】両方とも本発明による論理アドレスMMUフォ
ーマットおよび物理アドレスMMUフォーマットをブロ
ック図形式で示す。
【図3】図1のアドレス変換キャッシュ(ATC)の動
作をブロック図形式で示す。
【図4】図1のテーブルウォーク・コントローラの動作
モードをブロック図形式で示す。
【図5】図1のテーブルウォーク・コントローラの別の
動作モードをブロック図形式で示す。
【図6】本発明によるソフトウェア・タッチ命令(PL
PA命令)の動作を流れ図として示す。
【符号の説明】
12 データ・プロセッサ 14 オペランド・パイプライン装置 16 メモリ管理装置(MMU) 18 メモリ 20 テーブルウォーク・コントローラ 22 アドレス変換キャッシュ(ATC) 24 論理アドレス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョゼフ・チャールズ・サーセロ アメリカ合衆国アリゾナ州フェニックス、 ウエスト・マーサー・レーン3209 (72)発明者 ダニエル・マイケル・マッカーシー アメリカ合衆国アリゾナ州フェニックス、 イースト・キャスリーン・ロード7 (72)発明者 ジュアン・ギレルモ・リヴァイラ アメリカ合衆国テキサス州オースティン、 ジョリーヴィル・ロード10926、アパート メント206 (72)発明者 ロバート・シー・ポッドナー・ジュニア アメリカ合衆国テキサス州オースティン、 ウエスト・ウィリアム・キャノン・ドライ ヴ1500

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 論理アドレスに対応する外部メモリ位置
    にアクセスすることなく、メモリ管理情報を提供する方
    法であって:メモリ管理装置に論理アドレスを提供する
    段階;前記メモリ管理ユニットを用いて、前記論理アド
    レスを物理アドレス変換にマッピングする段階;前記物
    理アドレス変換が有効なアドレス変換であるか否かを決
    定し、前記物理アドレス変換が無効な変換である場合に
    は例外状態を呼び出す段階;前記物理アドレス変換が有
    効である場合には、アドレス変換キャッシュに前記物理
    アドレス変換をロードする段階;および前記物理アドレ
    ス変換が有効である場合には、ユーザ・アクセス可能な
    位置に前記物理アドレス変換を返す段階;によって構成
    されることを特徴とする方法。
  2. 【請求項2】 実行装置およびメモリ管理装置を有する
    データ・プロセッサからメモリ管理装置データを生成す
    る方法であって:タッチ・コンピュータ命令を実行装置
    にロードする段階;タッチ・コンピュータ命令の実行を
    開始する段階であって、 前記タッチ命令の実行が、 前記メモリ管理装置に論理アドレスを提供する段階;前
    記メモリ管理装置で前記論理アドレスを物理アドレス変
    換に変換する段階;および前記論理アドレスから物理ア
    ドレス変換への変換の結果発生した誤りを例外ハンドラ
    により処理する段階;から成る実行開始段階;前記物理
    アドレス変換が有効である場合には、前記物理アドレス
    変換をプログラマ可視位置に提供する段階;およびメモ
    リ位置にアクセスするために前記物理アドレスが前記デ
    ータ・プロセッサによって使用されるのを防止する段
    階;によって構成されることを特徴とする方法。
  3. 【請求項3】 データ・プロセッサ内のメモリ管理装置
    を制御する方法であって:実行装置から前記メモリ管理
    装置に論理アドレスを提供する段階;前記論理アドレス
    を物理アドレスに変換する段階;前記物理アドレスの変
    換の結果発生した全ての誤りを訂正する段階;ユーザに
    よるアクセスのためにプログラマ可視位置に前記物理ア
    ドレスを提供する段階;および前記実行ユニットによっ
    て提供された論理アドレスに対応するメモリに前記デー
    タ・プロセッサがアクセスするのを防止する段階;によ
    って構成されることを特徴とする方法。
JP6259622A 1993-10-04 1994-09-30 メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法 Pending JPH07152654A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13124293A 1993-10-04 1993-10-04
US131242 1993-10-04

Publications (1)

Publication Number Publication Date
JPH07152654A true JPH07152654A (ja) 1995-06-16

Family

ID=22448571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6259622A Pending JPH07152654A (ja) 1993-10-04 1994-09-30 メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法

Country Status (1)

Country Link
JP (1) JPH07152654A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048164A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 情報処理装置およびソフトウェアプリフェッチ制御方法
JP2012123814A (ja) * 2007-06-01 2012-06-28 Intel Corp ページ属性サポートのある仮想アドレスから物理アドレスへの変換
JP2019517081A (ja) * 2016-05-24 2019-06-20 ザイリンクス インコーポレイテッドXilinx Incorporated 仮想メモリのメモリプリフェッチ

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048164A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 情報処理装置およびソフトウェアプリフェッチ制御方法
JP4520790B2 (ja) * 2004-07-30 2010-08-11 富士通株式会社 情報処理装置およびソフトウェアプリフェッチ制御方法
JP2012123814A (ja) * 2007-06-01 2012-06-28 Intel Corp ページ属性サポートのある仮想アドレスから物理アドレスへの変換
JP2014067445A (ja) * 2007-06-01 2014-04-17 Intel Corp ページ属性サポートのある仮想アドレスから物理アドレスへの変換
US9158703B2 (en) 2007-06-01 2015-10-13 Intel Corporation Linear to physical address translation with support for page attributes
US9164917B2 (en) 2007-06-01 2015-10-20 Intel Corporation Linear to physical address translation with support for page attributes
US9164916B2 (en) 2007-06-01 2015-10-20 Intel Corporation Linear to physical address translation with support for page attributes
US11074191B2 (en) 2007-06-01 2021-07-27 Intel Corporation Linear to physical address translation with support for page attributes
JP2019517081A (ja) * 2016-05-24 2019-06-20 ザイリンクス インコーポレイテッドXilinx Incorporated 仮想メモリのメモリプリフェッチ

Similar Documents

Publication Publication Date Title
US6266755B1 (en) Translation lookaside buffer with virtual address conflict prevention
US6321314B1 (en) Method and apparatus for restricting memory access
US5247639A (en) Microprocessor having cache bypass signal terminal
JP4593792B2 (ja) 32ビット・マイクロプロセッサにおける4および8バイト・ページ・テーブル・エントリを使用した線形アドレス拡張および物理メモリへのマッピング
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US7089398B2 (en) Address translation using a page size tag
US7739477B2 (en) Multiple page size address translation incorporating page size prediction
JP3713312B2 (ja) データ処理装置
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US5666509A (en) Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
JP2507756B2 (ja) 情報処理装置
EP0851357A1 (en) Method and apparatus for preloading different default address translation attributes
JPH11161547A (ja) データ処理装置用記憶装置、および記憶場所にアクセスする方法
US8156308B1 (en) Supporting multiple byte order formats in a computer system
US4937738A (en) Data processing system which selectively bypasses a cache memory in fetching information based upon bit information of an instruction
JP4499237B2 (ja) 単純高性能メモリ管理ユニット
JPH07191903A (ja) データ処理システムおよび動作方法
JPH07200399A (ja) マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法
JP2006526203A (ja) ストレージの無効化、バッファ・エントリの消去
KR20170139659A (ko) 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
US6351797B1 (en) Translation look-aside buffer for storing region configuration bits and method of operation
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
KR100373576B1 (ko) 변환 장치의 엔트리를 무효로 하는 시스템 및 방법
JP3618868B2 (ja) 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム