JPH05210592A - 多重仮想空間におけるアドレス変換方法 - Google Patents

多重仮想空間におけるアドレス変換方法

Info

Publication number
JPH05210592A
JPH05210592A JP4042106A JP4210692A JPH05210592A JP H05210592 A JPH05210592 A JP H05210592A JP 4042106 A JP4042106 A JP 4042106A JP 4210692 A JP4210692 A JP 4210692A JP H05210592 A JPH05210592 A JP H05210592A
Authority
JP
Japan
Prior art keywords
task
address
virtual
virtual memory
mmu
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
JP4042106A
Other languages
English (en)
Inventor
Yasuaki Miyauchi
安明 宮内
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.)
Hewlett Packard Japan Inc
Original Assignee
Yokogawa Hewlett Packard Ltd
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 Yokogawa Hewlett Packard Ltd filed Critical Yokogawa Hewlett Packard Ltd
Priority to JP4042106A priority Critical patent/JPH05210592A/ja
Publication of JPH05210592A publication Critical patent/JPH05210592A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【目的】 多重仮想記憶システムを搭載したマイクロプ
ロセッサ応用機器のICEによるデバッグにおいて、ユ
ーザによる、任意タスクの仮想記憶空間へのエミュレー
タ側からのアクセスを可能とし、これによりデバッグの
効率化を図る。 【構成】 仮想メモリ6に配置されてたターゲットシス
テム5の複数タスクT,T,・・・について、それ
ぞれのタスクのアドレス変換テーブル9a,9b,・・
・が格納されている領域の先頭アドレスを特定するため
の情報を記憶するMMUキャッシュ4を設け、エミュレ
ータ1側からの前記仮想メモリ6へのアクセスに際し、
ホストプロセッサ3は、アクセスしたい任意タスクにつ
いての前記情報をMMUキャッシュ4から取り込み、該
情報に基づきエミュレーションプロセッサ2に設けられ
た仮想記憶管理ユニット21の動作をシミュレートする
ことで、仮想アドレス・実アドレス変換を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多重仮想記憶システム
を搭載したマイクロプロセッサ応用機器のICEによる
デバッグに際して用いる仮想アドレス・実アドレス変換
方法に関し、前記プロセッサのマルチタスク動作中に、
任意タスクの任意仮想アドレスへのホスト側からのアク
セスを可能とする多重仮想空間におけるアドレス変換方
法に関するものである。
【0002】
【技術背景】図2は、仮想記憶管理ユニットを搭載した
マイクロプロセッサが複数のタスクを処理する場合を示
す説明図である。同図において、多重仮想メモリ36に
は、タスクT〜Tn−1の仮想記憶空間が配置されて
おり、実メモリ38には複数タスクT,T,・・
・,Tn−1のページP(T),P(T),・
・・(i=0,1,・・・,n−1)のうち所望ページ
が動的再配置されている。また、マイクロプロセッサ3
2は仮想記憶管理ユニット(同図では、VMMUで示
す)321を有しており(通常、同図に示すようにマイ
クロプロセッサ内部に設けられる)、この管理ユニット
は仮想記憶管理レジスタ(MMUレジスタ)322等の
内部資源を有している。なお、通常、MMUレジスタ3
22には、現在実行中のタスクの変換テーブル(39
a,39b,・・・のうちの何れか)の先頭アドレスが
書き込まれる。
【0003】ところで、マイクロプロセッサ32が、あ
るタスクを実行する場合には、仮想記憶管理ユニット3
21は、 (1)まず、MMUレジスタ322に書き込まれた値か
ら、主記憶装置37の固定領域に設けられた変換テーブ
ル領域39(39a,39b,・・・のテーブルから構
成される)のうちの該タスクについてのテーブルの所在
(先頭番地)を知る。 (2)そして、このテーブルに記録されている実アドレ
ス情報から、与えられた仮想アドレスに対応する実アド
レスを求める。なお、マイクロプロセッサの種類によっ
ては、この変換テーブル39a,39b,・・・が複数
段(複数階層)に分かれている場合もある。
【0004】ところで、上記のような多重仮想記憶シス
テムを搭載したマイクロプロセッサ応用機器のICEに
よるデバッグでは、マイクロプロセッサ(以下、「エミ
ュレーションプロセッサ」と言う)32があるタスクを
実行している際に、ユーザが、何れかのタスクの仮想記
憶空間のあるアドレスにアクセスしたい場合がしばしば
生じる。図3は、図2のシステムにICEを接続した場
合の説明図である。同図において、例えば、エミュレー
タ31側に搭載した設けたエミュレーションプロセッサ
32の動作中に、ユーザがターゲットシステム35のタ
スクT,T,・・・の何れかの仮想記憶空間にアク
セスする場合、ホストプロセッサ33は、該タスクのア
ドレス変換テーブルを参照して、所定の仮想アドレスを
実アドレスに変換する必要がある。
【0005】エミュレーションプロセッサ32がシング
ルタスク動作をしている場合には、変換テーブル39は
一義的に特定されるので、ホストプロセッサ33は、こ
の変換テーブル領域39に基づき、エミュレーションプ
ロセッサ32に内蔵された仮想記憶管理ユニット321
の動作をシミュレートして、仮想アドレスに対応する実
アドレスを求めることができる。一方、エミュレーショ
ンプロセッサ32がマルチタスク動作をしている場合に
は、ホストプロセッサ33は、各タスクに対応した複数
のアドレス変換テーブル39a,39b,・・・から、
ユーザがアクセスしたいタスクの変換テーブルを特定す
る(すなわち、該変換テーブルの先頭番地情報等の情報
を含むMMUレジスタ322の内容を知る)必要があ
る。この場合には、MMUレジスタ322の内容を外部
から直接知る方法は無いため、アドレス変換のたびにエ
ミュエーションプロセッサ32が現在実行しているタス
クを一時中断して、MMUレジスタ322の値をメモリ
ー等の記憶手段に書き出し、該レジスタ322の値をも
とに変換テーブル(39a,39b,・・・の何れか)
の所在を求め、前記と同様のシミュレートを行うこと
で、仮想アドレスに対応した実アドレスを求めなければ
ならない。
【0006】上記エミュレーションプロセッサ32のタ
スク実行動作を中断する方法として、例えば、(1)エ
ミュレーションプロセッサ32によるタスクの実行をユ
ーザが強制中断する、(2)エミュレーションプロセッ
サ32があるタスクにアクセスを開始した時点で、該タ
スクの実行が中断されるように、エミュレータの機能を
設定しておくなどの方法が考えられる。
【0007】(1)の方法では、まず、エミュレーショ
ンプロセッサ32があるタスクを実行している最中に該
実行をエミュレータの機能を使って強制的に中断する。
つぎに、ホストプロセッサ33が、MMUレジスタの値
をメモリ等に書き出し、この値に基づいて仮想記憶管理
ユニットの動作をシミュレートすることで、アクセスし
たいタスクの変換テーブル(39a,39b,・・・の
何れか)の先頭アドレスを求める。そして、該当する変
換テーブルを読むことで実アドレスを得、この後、上記
中断したタスクの実行を再開する。 この方法では、エミュレーションプロセッサ32は、実
行しているタスクに対応してMMUレジスタ322の値
を逐一書き換え、仮想記憶管理ユニット321は該値に
基づいてアドレス変換処理を行っている。したがって、
ユーザが、あるタスクの仮想記憶空間をアクセスしたい
場合には、エミュレーションプロセッサ32による該タ
スクの実行中に該タスクの実行を中断させなければなら
ないが、ホストプロセッサ33がむやみに仮想記憶管理
ユニットのシミュレートを開始しても、開始時に、エミ
ュレーションプロセッサ32が所望タスクを実行してい
るとは限らない。このため、ユーザが、仮想メモリに配
置されているある特定のタスクの仮想記憶空間をアクセ
スしようとしても、該タスクを指定することは実際上不
可能である。
【0008】(2)のエミュレーションプロッサ32が
該当するタスクの実行を開始する時点で、タスクの実行
を中断するように、エミュレータの機能を設定しておく
方法では、実際のアクセスを行う前に所望のタスクでエ
ミュレーションプロセッサが実行を中断するようにエミ
ュレータの機能を毎回設定しておかなければならず、デ
バッグの効率が悪いといった不都合がある。 また、この場合には、エミュレーションプロセッサ32
による実行頻度の低いタスクにユーザがアクセスしよう
とするときは、上記エミュレータ機能の設定を行ったと
しても、エミュレーションプロセッサ32による該タス
クの実行があるまで待たなくてはならず、最悪の場合に
はアクセスできないといった事態も生じうる。
【0009】さらに、上記(1),(2)の何れの方法
も、エミュレーションプロセッサ32によるタスクの再
開はユーザがコマンド入力により行うため、タスクの中
断時間が長くなり、エミュレータの機能的透過性が著し
く悪化する、といった不都合がある。
【0010】
【発明の目的】本発明は、上記のような問題を解決する
ために提案されたものであって、多重仮想記憶システム
を搭載したマイクロプロセッサ応用機器のICEによる
デバッグにおいて、エミュレーションプロセッサのマル
チタスク動作中であっても、ユーザによる任意タスクの
仮想記憶空間へのアクセスを可能とし、これによりデバ
ッグの効率化を図り、またICEの機能的透過性を向上
させるアドレス変換方法を提供することを目的とする。
【0011】
【発明の概要】本発明のアドレス変換方法は、仮想記憶
管理ユニットを有するエミュレーションプロセッサを搭
載したICEに適用されるものであって、仮想メモリに
配置されてたターゲットシステムの複数タスクについ
て、それぞれのタスクのアドレス変換テーブルが格納さ
れているアドレスを特定するための情報を記憶する手段
(以下、「MMUキャッシュ」と言う)を設け、エミュ
レータ側システムからの前記仮想メモリへのアクセスに
際し、ホストプロセッサは、アクセスしたい任意タスク
についての前記情報を前記記憶手段から取り込み、該情
報に基づきエミュレーションプロセッサに設けられた仮
想記憶管理ユニットの動作をシミュレートすることで、
仮想アドレス・実アドレス変換を行うことを特徴とす
る。
【0012】以下、本発明の作用を説明する。いま、タ
ーゲットシステムの仮想メモリには、複数のタスクが配
置されており、実メモリには各タスクの所要ページが動
的再配置されており、エミュレーションプロセッサは、
マルチタスク動作を行っているものとする。エミュレー
ションプロセッサが、仮想メモリ上の任意タスクを実行
している場合、該エミュレーションプロセッサの資源
(通常は、プロセッサに内蔵されている)である仮想記
憶管理ユニットの、仮想記憶管理レジスタ(MMUレジ
スタ)には、現在実行中のタスクに対応するアドレス変
換テーブルについての情報(該テーブルの開始アドレス
情報等)が書き込まれている。アドレス変換テーブル
は、ターゲットシステムあるいはエミュレータの主記憶
装置内に格納されている。仮想記憶管理ユニットは前記
アドレス情報から、アドレス変換テーブルを特定し、こ
の変換テーブルに基づき、実行しているタスクの仮想ア
ドレスを実アドレスに変換し、エミュレーションプロセ
ッサは、該変換したアドレスに基づいて実メモリにアク
セスしている。
【0013】一方、MMUキャッシュには、各タスクに
ついての上記アドレス変換テーブルについての情報が書
き込まれる。この書き込みは、ユーザからのコマンドに
より行われる。このMMUキャッシュは、MMUレジス
タのビット幅と同一ビット幅に構成され、通常、エミュ
レータ側の主記憶装置内の領域に設けられる。上記情報
は、ユーザがタスクのプログラム構造から計算して求め
ることもできるし、MMUレジスタの値を計算する外部
プログラムによって得ることもできる。更に、エミュレ
ータの機能を用いてタスクを中断したときのMMUレジ
スタの値をそのまま用いることもできる。あるいは、エ
ミュレータの機能を用いてアクセスしたいタスクで中断
し、そのときのMMUレジスタの値を、MMUキャッシ
ュにコピーすることで得ることもできる。
【0014】ここで、ユーザが特定タスクの特定アドレ
ス(仮想メモリのアドレス)にアクセスするものとす
る。なお、この特定タスクは、エミュレーションプロセ
ッサが現在実行中のタスクであるか否かは問わない。ホ
ストプロセッサは、MMUキャッシュに書き込まれてい
る情報から、ユーザがアクセスしたい特定タスクについ
てのアドレス変換テーブルの開始アドレスを既に認識し
ている。したがって、ホストプロセッサは、このアドレ
ス変換テーブルの情報に基づき、仮想記憶管理ユニット
が行う動作をシミュレートすることで、仮想アドレス・
実アドレス変換を行うことで、上記ユーザが望むタスク
にアクセスすることができる。
【0015】
【実施例】図1は本発明の一実施例を示す説明図であ
る。同図において、エミュレータ1側(ICE側)に
は、エミュレーションプロセッサ2,ホストプロセッサ
3およびMMUキャッシュ4が図示されている。エミュ
レーションプロセッサ2はマルチタスク動作しており、
該プロセッサ2に内蔵した仮想記憶管理ユニット(VM
MU)21により、仮想記憶管理を行っている。また、
MMUキャッシュ4は、エミュレータ1側の主記憶装置
の一部を構成しており、MMUレジスタ22(仮想記憶
管理ユニット21の一部を構成する)に書き込まれるべ
きアドレス変換情報を格納することができる。なお、こ
のMMUキャッシュ4は、MMUレジスタ22と同様の
ビット構成のメモリから成っている。
【0016】エミュレーションプロセッサ2が実行する
各タスクT〜Tn−1は、ターゲットシステム5側の
仮想メモリ6に配置されているものとする。なお、図1
では、それぞれのタスクT(i=0,1,・・・,n
−1)のページをP(T),P(T),・・・
で表してある。また、ターゲットシステム5の主記憶装
置7の一部8には上記タスクT〜Tn−1の適宜部分
がページ単位で分割されて動的再配置されている。
【0017】そして、主記憶装置7の他の一部には、仮
想アドレスを実アドレスに対応づけるための、変換テー
ブル9a,9b,・・・(これらを、一括して符合9で
示す)が設けられている。この変換テーブル9は、タス
クごとに設けられ、実メモリ8に配置されているページ
について仮想アドレスと実アドレスとの対応がなされて
いる。なお、仮想記憶空間のページがマッピングされた
り変換テーブルが置かれるメモリ8,9は、図1ではタ
ーゲットシステム5上の主記憶装置7を使用するように
書かれているが、本発明はこれに限定されない。これら
は、エミュレータ1側に設けられている主記憶装置上に
置くこともできるし、またエミュレータ1とターゲット
システム5の両方に分散配置することもできる。
【0018】いま、エミュレーションプロセッサ2があ
るタスクを実行する場合、MMUレジスタ22内に、該
タスクについてのアドレス変換テーブル9a,9b,・
・・の所在を示す情報(具体的には、主記憶装置7内の
変換テーブル9a,9b,・・・の何れかの先頭アドレ
ス)が書き込まれる。この情報は、ホストプロセッサ3
によりMMUキャッシュ4に書き込まれる。MMUキャ
ッシュ4は、一つのタスクについてのアドレス変換テー
ブルの情報だけを持つようにしてもよい。
【0019】本発明においては、アドレス変換を行うプ
ログラムは、MMUレジスタ22の値をMMUキャッシ
ュ4に保存するためのプロセス(A)、この保存された
値を用いて仮想アドレスを実アドレスに変換するプロセ
ス(B)を有している。先ず、プロセス(A)において
は、ユーザがあるタスクをアクセスしようとするとき、
該アクセスの前にアクセスしようとするタスクのMMU
レジスタ22の値をMMUキャッシュ4に記憶させてお
く処理が必要とされる。この方には以下に述べる2通り
の方法がある。なお、通常、いずれの方法によっても、
MMUレジスタ22の値のMMUキャッシュ4への書き
込みを行えるように、それぞれにコマンドを用意してお
く。また、上記設定は、エミュレータ1側からの所望タ
スクへのアクセスの前に1度だけ実行するだけで足り
る。
【0020】(1)ユーザがMMUレジスタ22の値を
MMUキャッシュ4に直接入力する方法 ユーザが、アクセスしたいタスクの実行にあたってMM
Uレジスタ22に書き込まれる値をMMUキャッシュ4
に設定するコマンドにより直接入力する。MMUレジス
タ22の値は、ユーザがタスクやプログラムの構造から
計算してもよいし、MMUレジスタ22の値を計算する
外部のプログラムによって得てもよい。また、エミュレ
ータの機能を使って、このタスクを中断したときの実際
にMMUレジスタ22に書かれている値をそのまま使用
してもよい。
【0021】 (2)MMUレジスタ22の値をコピーする方法 エミュレータの機能を使って、アクセスしたいタスクで
中断し、そのときのMMUレジスタ22の値をMMUキ
ャッシュ4にコマンドを用いてコピーする。つぎに、プ
ロセス(B)では、MMUキャッシュの値を使って、マ
イクロプロセッサ内部の仮想記憶管理ユニットの働きを
シミュレートして仮想アドレス・実アドレス変換を行
う。このプロセスはエミュレートしようとするマイクロ
プロセッサによって変更を必要とする部分であるが、概
ね、以下のようにして行われる。すなわち、まず入力さ
れた仮想アドレスの一部とMMUキャッシュ4の値とに
より、対応するアドレス変換テーブル(具体的には、9
a,9b,・・・の何れか)の先頭アドレスを知る。つ
いで、所定のアドレス変換テーブル9の値を読み、その
値と仮想アドレスの一部から、対応する実アドレスを計
算する。ここで、変換テーブル9が多段構成(複数階
層)となっているとき(例えば、セグメントテーブルに
基づく変換を行い、次にページテーブルに基づく変換を
行う場合)には、該階層に応じた回数の変換が必要とな
る。変換テーブル9やアクセスすべきページがターゲッ
トシステム5側にある場合は、エミュレーションプロセ
ッサ2を介してアクセスするが、これらがエミュレータ
1側にある場合にはホストプロセッサ3が直接アクセス
できる。
【0022】
【発明の効果】本発明は上記のように構成したので、以
下の効果を奏することができる。 (1)多重仮想記憶空間では、エミュレーションプロセ
ッサがタスク実行中であっても、ユーザが希望するタス
クを選択的にアクセスすることができるようになり、こ
れにより、効率の高いデバッグが可能となった。 (2)一度、MMUレジスタの値をMMUキャッシュに
書き込んでしまえば、アクセスのたびにエミュレーショ
ンプロセッサの動作を中断する必要はなくなる。 また、希望するタスクがターゲットシステム上で実行さ
れているいないに関わらず、ユーザは所望タスクの仮想
記憶空間へのアクセスをすることができる。したがっ
て、MMUレジスタの値を高速に参照できるので、透過
性の高いエミュレーションシステムを提供することがで
きる。
【図面の簡単な説明】
【図1】本発明の一実施例説明するためのICEの説明
図である。
【図2】多重仮想記憶システムを説明するための説明図
である。
【図3】図2のシステムにICEを接続して場合の従来
技術を説明するための図である。
【符号の説明】
1 エミュレータ 2 エミュレーションプロセッサ 21 仮想記憶管理ユニット(VMMU) 22 MMU 3 ホストプロセッサ 4 MMUキャッシュ 5 ターゲットシステム 6 仮想メモリ 7 主記憶装置 9 変換テーブル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 仮想記憶管理ユニットを有するエミュレ
    ーションプロセッサを搭載したインサーキットエミュレ
    ータに適用される多重仮想空間におけるアドレス変換方
    法であって、 仮想メモリに配置されているターゲットシステムの複数
    タスクの少なくとも一部のもののアドレス変換テーブル
    が格納されているアドレスを特定するための情報を記憶
    する手段を設け、 ホスト側システムからの前記仮想メモリへのアクセスに
    際し、ホストプロセッサは、アクセスしたい前記タスク
    についての前記情報を前記記憶手段から取り込み、該情
    報に基づきエミュレーションプロセッサに設けられた仮
    想記憶管理ユニットの動作をシミュレートすることで、
    仮想アドレス・実アドレス変換を行うことを特徴とする
    多重仮想空間におけるアドレス変換方法。
JP4042106A 1992-01-30 1992-01-30 多重仮想空間におけるアドレス変換方法 Pending JPH05210592A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4042106A JPH05210592A (ja) 1992-01-30 1992-01-30 多重仮想空間におけるアドレス変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4042106A JPH05210592A (ja) 1992-01-30 1992-01-30 多重仮想空間におけるアドレス変換方法

Publications (1)

Publication Number Publication Date
JPH05210592A true JPH05210592A (ja) 1993-08-20

Family

ID=12626720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4042106A Pending JPH05210592A (ja) 1992-01-30 1992-01-30 多重仮想空間におけるアドレス変換方法

Country Status (1)

Country Link
JP (1) JPH05210592A (ja)

Similar Documents

Publication Publication Date Title
US4951195A (en) Condition code graph analysis for simulating a CPU processor
US5301302A (en) Memory mapping and special write detection in a system and method for simulating a CPU processor
US5167023A (en) Translating a dynamic transfer control instruction address in a simulated CPU processor
US5815686A (en) Method and apparatus for address space translation using a TLB
JPH05257803A (ja) 仮想記憶空間管理方法及びアドレス計算装置
JPH0816479A (ja) メモリ・アドレス空間管理
JPS62165250A (ja) 仮想記憶方法
JP2006526203A (ja) ストレージの無効化、バッファ・エントリの消去
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
EP0595880A4 (en) Memory management method
EP0405318A2 (en) Microprocessor having cash bypass signal terminal
JP5318197B2 (ja) ホストデータ処理装置内におけるデバイスエミュレーションのサポート
US6606697B1 (en) Information processing apparatus and memory control method
US20050108440A1 (en) Method and system for coalescing input output accesses to a virtual device
CN118312277A (zh) 虚拟机内存管理方法、装置、处理器和存储介质
EP0327198B1 (en) Processor simulation
CN118331685A (zh) 虚拟机内存管理方法、装置、处理器和存储介质
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
KR20240167917A (ko) 오더링 제약 액세스 동작들을 핸들링하기 위한 기술
US20070156386A1 (en) Linearization of page based memory for increased performance in a software emulated central processing unit
US20120216189A1 (en) Methods, Devices and Computer Program Products for Emulating a Physical Hard Drive as Multiple Virtual Hard Drives
JPH0548500B2 (ja)
CN114282465B (zh) 一种SoC芯片仿真验证方法、装置、设备及存储介质
JPS5850383B2 (ja) 情報処理装置
JPS62120543A (ja) メモリバンクの切替方式