JPH0654479B2 - 仮想記憶方式 - Google Patents
仮想記憶方式Info
- Publication number
- JPH0654479B2 JPH0654479B2 JP61111741A JP11174186A JPH0654479B2 JP H0654479 B2 JPH0654479 B2 JP H0654479B2 JP 61111741 A JP61111741 A JP 61111741A JP 11174186 A JP11174186 A JP 11174186A JP H0654479 B2 JPH0654479 B2 JP H0654479B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- virtual
- page
- virtual 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/206—Memory mapped I/O
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Description
【発明の詳細な説明】 〔発明の技術分野〕 本発明は仮想記憶方式の改良に関する。
従来技術においては、コンピユータ・システム上で走る
各プロセスは自身の仮想記憶空間を持つている。これに
よりシステムが非常に複雑になりまた最適な性能も得ら
れない。たとえば、プロセス毎に別々のページ・テーブ
ルが必要になる。ページ・テーブルとは仮想メモリ・ア
ドレスをメモリ中の物理ロケーシヨンへマツピングする
ためのものである。更に各プロセスが自分自身の仮想記
憶空間を持つている場合、コンピユータ内でプロセスが
切替る毎に、これまで実行されていたプロセスに基くT
LBおよびキヤツシユ・エントリが無効化されねばなら
ない。
各プロセスは自身の仮想記憶空間を持つている。これに
よりシステムが非常に複雑になりまた最適な性能も得ら
れない。たとえば、プロセス毎に別々のページ・テーブ
ルが必要になる。ページ・テーブルとは仮想メモリ・ア
ドレスをメモリ中の物理ロケーシヨンへマツピングする
ためのものである。更に各プロセスが自分自身の仮想記
憶空間を持つている場合、コンピユータ内でプロセスが
切替る毎に、これまで実行されていたプロセスに基くT
LBおよびキヤツシユ・エントリが無効化されねばなら
ない。
更に、従来の仮想記憶システムでは、入出力デバイスは
2つの方法のいずれかによつてアクセスされる。第1の
方法では、コンピユータの命令セツト中に、入出力デバ
イスを制御する命令が設けられる。第2の方法はメモリ
・マツプトI/Oと呼ばれるもので、メモリ・アドレス
の一部を各入出力デバイスに割当てる。各入出力デバイ
スに割当てられたアドレスはその入出力アドレス領域と
呼ばれる。メモリ・マツプトI/Oでは、プロセツサが
ある入出力デバイスの入出力アドレス領域内のアドレス
に読出し/書込みを行なおうとすると、その入出力装置
によつて検出およびデコードされる。入出力装置内の各
レジスタにはそのアドレス領域内のアドレスが対応付け
られている。これらレジスタへのアクセス動作は、入出
力デバイスのアドレス領域内での読出しあるいは書込み
を行なうと、そのアドレス領域に対応付けられた入出力
デバイス内のレジスタの読出しあるいは書込みが行なわ
れるようになつている。このようにして、入出力デバイ
スに割当てられたアドレス領域のアドレスへの読出しあ
るいは書込みを、入出力デバイスの制御に用いることが
できる。
2つの方法のいずれかによつてアクセスされる。第1の
方法では、コンピユータの命令セツト中に、入出力デバ
イスを制御する命令が設けられる。第2の方法はメモリ
・マツプトI/Oと呼ばれるもので、メモリ・アドレス
の一部を各入出力デバイスに割当てる。各入出力デバイ
スに割当てられたアドレスはその入出力アドレス領域と
呼ばれる。メモリ・マツプトI/Oでは、プロセツサが
ある入出力デバイスの入出力アドレス領域内のアドレス
に読出し/書込みを行なおうとすると、その入出力装置
によつて検出およびデコードされる。入出力装置内の各
レジスタにはそのアドレス領域内のアドレスが対応付け
られている。これらレジスタへのアクセス動作は、入出
力デバイスのアドレス領域内での読出しあるいは書込み
を行なうと、そのアドレス領域に対応付けられた入出力
デバイス内のレジスタの読出しあるいは書込みが行なわ
れるようになつている。このようにして、入出力デバイ
スに割当てられたアドレス領域のアドレスへの読出しあ
るいは書込みを、入出力デバイスの制御に用いることが
できる。
メモリ・マツプトI/Oシステムを用いるひとつの利点
は、言級言語で書かれたプロシージヤから入出力デバイ
スをアクセスできることである。従来のいくつかのコン
ピユータ・アーキテクチヤにおいては、アプリケーシヨ
ン・プログラムからコンピユータの入出力デバイスのア
ドレス領域の全てあるいは一部分に直接にアクセスする
ことができた。しかしながら、このようにした場合、マ
ルチタスクを行なおうとすると困難な問題をひきおこす
ことがあつた。たとえば、あるアプリケーシヨン・プロ
グラムが、DMAを行なう入出力デバイスを誤つて始動
させた場合、この入出力デバイスは他のアプリケーシヨ
ン・プログラムに割当てられたメモリ領域上で読出しあ
るいは書込みを行なうかもしれず、これによりシステム
の安全性を危くする可能性があつた。
は、言級言語で書かれたプロシージヤから入出力デバイ
スをアクセスできることである。従来のいくつかのコン
ピユータ・アーキテクチヤにおいては、アプリケーシヨ
ン・プログラムからコンピユータの入出力デバイスのア
ドレス領域の全てあるいは一部分に直接にアクセスする
ことができた。しかしながら、このようにした場合、マ
ルチタスクを行なおうとすると困難な問題をひきおこす
ことがあつた。たとえば、あるアプリケーシヨン・プロ
グラムが、DMAを行なう入出力デバイスを誤つて始動
させた場合、この入出力デバイスは他のアプリケーシヨ
ン・プログラムに割当てられたメモリ領域上で読出しあ
るいは書込みを行なうかもしれず、これによりシステム
の安全性を危くする可能性があつた。
ある従来の方式によれば、マルチタスクを行なう場合の
システムの安全性上の危険を回避するため、アプリケー
シヨン・プログラムが入出力デバイスのアドレス領域に
直接的にアクセスするのを妨げていた。そのかわり、全
入出力アドレスは、入出力ドライバと呼ばれる特権化さ
れたプロシージヤを介してのみアクセスが可能であつ
た。これによれば、高水準のシステムの安全性が得られ
るのではあるが、他方多くのソフトウエア・オーバヘツ
ドをもたらし、非効率的でかつ制限が強いものであつ
た。
システムの安全性上の危険を回避するため、アプリケー
シヨン・プログラムが入出力デバイスのアドレス領域に
直接的にアクセスするのを妨げていた。そのかわり、全
入出力アドレスは、入出力ドライバと呼ばれる特権化さ
れたプロシージヤを介してのみアクセスが可能であつ
た。これによれば、高水準のシステムの安全性が得られ
るのではあるが、他方多くのソフトウエア・オーバヘツ
ドをもたらし、非効率的でかつ制限が強いものであつ
た。
本発明は上述した従来技術の問題点を解決し、効率的な
仮想記憶方式を提供することを目的とする。
仮想記憶方式を提供することを目的とする。
本発明の仮想記憶方式の一実施例によれば、全域的な仮
想記憶空間が与えられる。ここで全域的とは、どのプロ
セスがプロセツサ上で実行されているかにはかかわりな
く、物理メモリ・ロケーシヨンは同じ仮想記憶空間へマ
ツピングされる、ということを意味する。書込み禁止ビ
ツトがついたアクセス・コードを用いることにより、プ
ロセスの各種のアドレスへのアクセスが制御される。
想記憶空間が与えられる。ここで全域的とは、どのプロ
セスがプロセツサ上で実行されているかにはかかわりな
く、物理メモリ・ロケーシヨンは同じ仮想記憶空間へマ
ツピングされる、ということを意味する。書込み禁止ビ
ツトがついたアクセス・コードを用いることにより、プ
ロセスの各種のアドレスへのアクセスが制御される。
これに加えて、仮想記憶の特性が入出力デバイスのアド
レス領域へのアクセスの制御に用いられる。仮想記憶シ
ステムにおいては、プロセツサのアドレス空間内のペー
ジへのアクセス権はアプリケーシヨン・プログラム毎に
割当てられる。このアクセス権はアドレス空間内にスト
アされている情報を読出す能力(読出しアクセス)であ
つてもよいし、またあるいはアドレス空間内にストアさ
れた情報を読出す能力とともにアドレス空間内に情報を
書込む能力(読出しアクセスおよび書込みアクセス)で
あつてもよい。
レス領域へのアクセスの制御に用いられる。仮想記憶シ
ステムにおいては、プロセツサのアドレス空間内のペー
ジへのアクセス権はアプリケーシヨン・プログラム毎に
割当てられる。このアクセス権はアドレス空間内にスト
アされている情報を読出す能力(読出しアクセス)であ
つてもよいし、またあるいはアドレス空間内にストアさ
れた情報を読出す能力とともにアドレス空間内に情報を
書込む能力(読出しアクセスおよび書込みアクセス)で
あつてもよい。
本発明の一実施例においては、各入出力デバイスは2ペ
ージのアドレス領域を割当てられている。一方のページ
は特権化されており、他方のページは特権化されていな
い。1ページはかなり大きくてもよいので(たとえば1
ページに512個のレジスタ用のアドレス・ロケーシヨン
を含んでよい)、各ページ内の多くのアドレスには入出
力デバイスのレジスタが割当てられていなくてもよい。
ージのアドレス領域を割当てられている。一方のページ
は特権化されており、他方のページは特権化されていな
い。1ページはかなり大きくてもよいので(たとえば1
ページに512個のレジスタ用のアドレス・ロケーシヨン
を含んでよい)、各ページ内の多くのアドレスには入出
力デバイスのレジスタが割当てられていなくてもよい。
しかしながら入出力デバイスの各レジスタには、入出力
デバイスのアドレス領域としてとられた2ページの夫々
のページ中に1つずつのアドレスが割当てられる。単一
のレジスタに割当てられた夫々のページ内のアドレス
は、両ページ内で同一のページ内オフセツトを持つてい
る。各レジスタは特権的あるいは非特権的であると見な
される。もしあるレジスタが入出力デバイスのDMA動
作に関係したり、またプロセツサへの割込みに関係した
り、またあるいはシステムの安全性を危くするような他
のやり方で使われるかもしれないものである場合には、
そのレジスタは特権的であると見なされる。
デバイスのアドレス領域としてとられた2ページの夫々
のページ中に1つずつのアドレスが割当てられる。単一
のレジスタに割当てられた夫々のページ内のアドレス
は、両ページ内で同一のページ内オフセツトを持つてい
る。各レジスタは特権的あるいは非特権的であると見な
される。もしあるレジスタが入出力デバイスのDMA動
作に関係したり、またプロセツサへの割込みに関係した
り、またあるいはシステムの安全性を危くするような他
のやり方で使われるかもしれないものである場合には、
そのレジスタは特権的であると見なされる。
非特権なレジスタは特権化されたページおよび特権化さ
れていないページのどちらにおいても完全に備えられて
いてよい。ここで「完全に備えられている」とは、レジ
スタに対応付けられたアドレスでの読出し、書込みを行
なえば、そのレジスタの読出し、書込みが行なわれると
いうことである。
れていないページのどちらにおいても完全に備えられて
いてよい。ここで「完全に備えられている」とは、レジ
スタに対応付けられたアドレスでの読出し、書込みを行
なえば、そのレジスタの読出し、書込みが行なわれると
いうことである。
特権的なレジスタは特権化されたページ内のみで、上述
した意味において、完全に備えられている。特権的なレ
ジスタが特権化されていないページ上でどのような形態
で現れるかは、システムの具体的な実現のやり方によつ
て変わるが、読出し可能だが書込み不可としてもよい
し、あるいは読出し書込みとも不可としてもよい。
した意味において、完全に備えられている。特権的なレ
ジスタが特権化されていないページ上でどのような形態
で現れるかは、システムの具体的な実現のやり方によつ
て変わるが、読出し可能だが書込み不可としてもよい
し、あるいは読出し書込みとも不可としてもよい。
第1図に本発明の実施例のために用いることができるコ
ンピユータ・システムを示す。このコンピユータ・シス
テムにはシステム・プロセツサ101、システム・メモリ1
02、入出力デバイス103、104、105、106、107が含まれ、こ
れらがバス100によつて結合されている。システム・プ
ロセツサ101がこれら入出力デバイス103ないし107と交
信するには、各入出力デバイス103ないし107に割当てら
れたアドレス領域からデータを読出したりまたはデータ
を書込むことによつて行なう。
ンピユータ・システムを示す。このコンピユータ・シス
テムにはシステム・プロセツサ101、システム・メモリ1
02、入出力デバイス103、104、105、106、107が含まれ、こ
れらがバス100によつて結合されている。システム・プ
ロセツサ101がこれら入出力デバイス103ないし107と交
信するには、各入出力デバイス103ないし107に割当てら
れたアドレス領域からデータを読出したりまたはデータ
を書込むことによつて行なう。
第3図は、第1図中に示されたコンピユータ・システム
のアドレス空間370がどのように割当てられているかを
示している。アドレス空間370は232バイトのデータ
(あるいは230語のデータ)をアドレスできる。アドレ
ス空間370のうちの領域371はメモリ用のアドレスとなつ
ている。領域371中の部分領域371bはメモリ用のアドレ
スとして確保されているがメモリは実装されていない。
部分領域371aには実際にメモリが入つており、システム
・プロセツサ101上で走るオペレーテイング・システム
およびユーザのアプリケーシヨン・プログラムによつて
使用される。一般に部分領域371bは部分領域371aに比較
してかなり大きい。アドレス空間370の領域373は入出力
デバイス用に割当てられている。アドレス空間370は全
て、ページ301、302等のページに分割されている。各ペ
ージには32ビツト語で512語が入つている。メモリの
ページへのアクセスは、第7図に示された変換表550中
のエントリに入つているAID(アクセス識別値)によ
つて制限することができる。変換表550は仮想記憶ペー
ジ・アドレスを、システム・メモリ102内の物理メモリ
空間内のページ・アドレスに変換する。変換表550をシ
ステム・メモリ102内に設けてよい。変換表550には一連
のリンク付きリスト(linked list)が含まれている。
たとえば変換表550中にはリンク付きリスト702、703、70
4、705が示されている。リンク付きリスト702中のエント
リ501、511を第5図に示す。エントリ501、511は夫々32
ビツト語で4つのメモリ・ロケーシヨンを占める。
のアドレス空間370がどのように割当てられているかを
示している。アドレス空間370は232バイトのデータ
(あるいは230語のデータ)をアドレスできる。アドレ
ス空間370のうちの領域371はメモリ用のアドレスとなつ
ている。領域371中の部分領域371bはメモリ用のアドレ
スとして確保されているがメモリは実装されていない。
部分領域371aには実際にメモリが入つており、システム
・プロセツサ101上で走るオペレーテイング・システム
およびユーザのアプリケーシヨン・プログラムによつて
使用される。一般に部分領域371bは部分領域371aに比較
してかなり大きい。アドレス空間370の領域373は入出力
デバイス用に割当てられている。アドレス空間370は全
て、ページ301、302等のページに分割されている。各ペ
ージには32ビツト語で512語が入つている。メモリの
ページへのアクセスは、第7図に示された変換表550中
のエントリに入つているAID(アクセス識別値)によ
つて制限することができる。変換表550は仮想記憶ペー
ジ・アドレスを、システム・メモリ102内の物理メモリ
空間内のページ・アドレスに変換する。変換表550をシ
ステム・メモリ102内に設けてよい。変換表550には一連
のリンク付きリスト(linked list)が含まれている。
たとえば変換表550中にはリンク付きリスト702、703、70
4、705が示されている。リンク付きリスト702中のエント
リ501、511を第5図に示す。エントリ501、511は夫々32
ビツト語で4つのメモリ・ロケーシヨンを占める。
エントリ501には、次のエントリ511を指示するアドレス
が入つているロケーシヨン503が含まれている。エント
リ501にはまた、仮想ページ・アドレスが入つているロ
ケーシヨン504、505が含まれている。変換表550中のどの
位置にエントリ501が置かれているかによつて、システ
ム・プロセツサ101はロケーシヨン504、505に示されてい
る仮想記憶ページ・アドレスに対応する物理メモリ空間
のアドレスを知ることができる。エントリ501にはまた
ロケーシヨン506が含まれている。ロケーシヨン506に
は、16ビツトのアクセス権フイールド507、AIDを
含む15ビツトのセクシヨン508、および常時0の1ビ
ツトのセクシヨン509が含まれている。
が入つているロケーシヨン503が含まれている。エント
リ501にはまた、仮想ページ・アドレスが入つているロ
ケーシヨン504、505が含まれている。変換表550中のどの
位置にエントリ501が置かれているかによつて、システ
ム・プロセツサ101はロケーシヨン504、505に示されてい
る仮想記憶ページ・アドレスに対応する物理メモリ空間
のアドレスを知ることができる。エントリ501にはまた
ロケーシヨン506が含まれている。ロケーシヨン506に
は、16ビツトのアクセス権フイールド507、AIDを
含む15ビツトのセクシヨン508、および常時0の1ビ
ツトのセクシヨン509が含まれている。
エントリ511には、リンク付きリスト702上での次のエン
トリを指示するアドレスが入つているロケーシヨン513
が含まれている。エントリ511にはまた、仮想記憶ペー
ジ・アドレスが入つているロケーシヨン514、515が含ま
れている。変換表550中のどの位置にエントリ511が置か
れているかによつて、システム・プロセツサ101はロケ
ーシヨン514、515に示されている仮想記憶ページ・アド
レスに対応する物理メモリ空間のアドレスを知ることが
できる。エントリ511にはまたロケーシヨン516が含まれ
る。ロケーシヨン516には16ビツトのアクセス権フイ
ールド517、AIDを含んでいる15ビツトのセクシヨ
ン518、および常時0の1ビツトのセクシヨン519が含ま
れている。
トリを指示するアドレスが入つているロケーシヨン513
が含まれている。エントリ511にはまた、仮想記憶ペー
ジ・アドレスが入つているロケーシヨン514、515が含ま
れている。変換表550中のどの位置にエントリ511が置か
れているかによつて、システム・プロセツサ101はロケ
ーシヨン514、515に示されている仮想記憶ページ・アド
レスに対応する物理メモリ空間のアドレスを知ることが
できる。エントリ511にはまたロケーシヨン516が含まれ
る。ロケーシヨン516には16ビツトのアクセス権フイ
ールド517、AIDを含んでいる15ビツトのセクシヨ
ン518、および常時0の1ビツトのセクシヨン519が含ま
れている。
システム・プロセツサ101には第6図に示す4個の制御
レジスタ601、611、621、631が設けられている。制御レジ
スタ601、611、621、631には現在実行中のプロセスのAI
Dが夫々入つている。制御レジスタ601、611、621、631の
セクシヨン602、612、622、632には夫々15ビツト長のA
IDがひとつずつ入つている。制御レジスタ601、611、62
1、631のセクシヨン603、613、623、633には夫々1ビツトの
書込み禁止値が入つている。
レジスタ601、611、621、631が設けられている。制御レジ
スタ601、611、621、631には現在実行中のプロセスのAI
Dが夫々入つている。制御レジスタ601、611、621、631の
セクシヨン602、612、622、632には夫々15ビツト長のA
IDがひとつずつ入つている。制御レジスタ601、611、62
1、631のセクシヨン603、613、623、633には夫々1ビツトの
書込み禁止値が入つている。
システム・プロセツサ101上で実行中のあるプロセスが
メモリ・アクセスを要求した場合、仮想記憶のページ・
アドレスが、変換表550を用いて物理ページ・アドレス
に変換される。この変換過程において、第7図中に示さ
れているハツシユ・デバイス701が仮想アドレスを受け
取つてハツシングし、変換表550中のあるリンク付きリ
ストの先頭のエントリの物理アドレスを生成する。たと
えば、仮想ページ・アドレスをハツシングすることによ
り、変換表550中のエントリ501の物理アドレスが生成さ
れたとする。ハツシングされる前の仮想ページ・アドレ
スはエントリ501のロケーシヨン504および505にまたが
つて入つているひとつの仮想ページ・アドレスと比較さ
れる。もし一致すれば、エントリ501の変換表550中にお
けるデイスプレースメントから対応する物理ページ・ア
ドレスが求まる(たとえばデイスプレースメントを所定
ビツト数左シフトすればよい)。
メモリ・アクセスを要求した場合、仮想記憶のページ・
アドレスが、変換表550を用いて物理ページ・アドレス
に変換される。この変換過程において、第7図中に示さ
れているハツシユ・デバイス701が仮想アドレスを受け
取つてハツシングし、変換表550中のあるリンク付きリ
ストの先頭のエントリの物理アドレスを生成する。たと
えば、仮想ページ・アドレスをハツシングすることによ
り、変換表550中のエントリ501の物理アドレスが生成さ
れたとする。ハツシングされる前の仮想ページ・アドレ
スはエントリ501のロケーシヨン504および505にまたが
つて入つているひとつの仮想ページ・アドレスと比較さ
れる。もし一致すれば、エントリ501の変換表550中にお
けるデイスプレースメントから対応する物理ページ・ア
ドレスが求まる(たとえばデイスプレースメントを所定
ビツト数左シフトすればよい)。
更に、アクセス権フイールド507中のアクセス・コード
がチエツクされる。アクセス・コードは、読出し、書込
みおよび/または実行が許されるにはプロセスはどのよ
うな特権レベルでなければならないかを示している。更
にセクシヨン508に入つているAIDがチエツクされ
る。このAIDが0であるか、あるいは制御レジスタ60
1、611、621、631のいずれかに入つているAIDと一致し
た場合には、このプロセスはメモリ中の物理ページへの
アクセスを許される。ただし、一致するAIDを持つて
いる制御レジスタの書込み禁止値が1であれば、そのプ
ロセスによる書込みアクセスは拒否される。もし、ロケ
ーシヨン508中のAIDが制御レジスタ601、611、621、631
中のいずれのAIDとも一致せず、またこのAIDが0
でもないのならば、そのプロセスはメモリ中の物理ペー
ジへのアクセスを拒否される。
がチエツクされる。アクセス・コードは、読出し、書込
みおよび/または実行が許されるにはプロセスはどのよ
うな特権レベルでなければならないかを示している。更
にセクシヨン508に入つているAIDがチエツクされ
る。このAIDが0であるか、あるいは制御レジスタ60
1、611、621、631のいずれかに入つているAIDと一致し
た場合には、このプロセスはメモリ中の物理ページへの
アクセスを許される。ただし、一致するAIDを持つて
いる制御レジスタの書込み禁止値が1であれば、そのプ
ロセスによる書込みアクセスは拒否される。もし、ロケ
ーシヨン508中のAIDが制御レジスタ601、611、621、631
中のいずれのAIDとも一致せず、またこのAIDが0
でもないのならば、そのプロセスはメモリ中の物理ペー
ジへのアクセスを拒否される。
もしハツシングされた元の仮想アドレスがエントリ501
中のロケーシヨン504、505中の仮想アドレスと一致しな
かつた場合は、リンク付きリスト702上の次のエント
リ、すなわちエントリ511が調べられる。つまりこの仮
想アドレスがエントリ511中のロケーシヨン514、515中の
仮想アドレスと比較される。もし一致すれば、アクセス
権フイールド517中のアクセス・コードが調べられる。
現在の特権レベルが評価され、そのプロセスに対してど
のようなアクセスの許可が与えられてよいのかが定めら
れる。そしてロケーシヨン518中のAIDが制御レジス
タ601、611、621、631中の各AIDと比較される。以下同
様の手順がくりかえされる。
中のロケーシヨン504、505中の仮想アドレスと一致しな
かつた場合は、リンク付きリスト702上の次のエント
リ、すなわちエントリ511が調べられる。つまりこの仮
想アドレスがエントリ511中のロケーシヨン514、515中の
仮想アドレスと比較される。もし一致すれば、アクセス
権フイールド517中のアクセス・コードが調べられる。
現在の特権レベルが評価され、そのプロセスに対してど
のようなアクセスの許可が与えられてよいのかが定めら
れる。そしてロケーシヨン518中のAIDが制御レジス
タ601、611、621、631中の各AIDと比較される。以下同
様の手順がくりかえされる。
第8図にはハツシユ・デバイス701と変換表550が示され
ている。ハツシユ・デバイス701にはハツシユ発生器720
とハツシユ表801が含まれている。ハツシユ表801もシス
テム・メモリ内に設けてよい。またハツシユ発生器720
はソフトウエア、ハードウエアのいずれで実現されても
よい。ハツシユ発生器720は仮想アドレスを受け取つて
ハツシユ表アドレスを発生する。このハツシユ表アドレ
スで指示されたハツシユ表801の内容が調べられる。も
しこの内容が空ポインタであれば、この仮想アドレスで
アドレスされたデータは主記憶上にはない。またこのハ
ツシユ表アドレスで指示された内容が変換表550内のア
ドレスであれば、変換表550内でこのアドレスから始ま
るリンク付きリストが順次サーチされる。このサーチは
上に説明したように、変換したい仮想アドレスが入つて
いるエントリが見つかるかあるいは空ポインタが見つか
るまで続けられる。ここで空ポインタが見つかれば、そ
れは、仮想アドレスでアドレスされたデータは主記憶上
に存在しないことを意味している。アドレスされたデー
タが主記憶上に存在しない場合には、ページ・フオルト
が起り、一般にソフトウエアを用いてそのデータをデイ
スクあるいは他の記憶装置に取り込む。
ている。ハツシユ・デバイス701にはハツシユ発生器720
とハツシユ表801が含まれている。ハツシユ表801もシス
テム・メモリ内に設けてよい。またハツシユ発生器720
はソフトウエア、ハードウエアのいずれで実現されても
よい。ハツシユ発生器720は仮想アドレスを受け取つて
ハツシユ表アドレスを発生する。このハツシユ表アドレ
スで指示されたハツシユ表801の内容が調べられる。も
しこの内容が空ポインタであれば、この仮想アドレスで
アドレスされたデータは主記憶上にはない。またこのハ
ツシユ表アドレスで指示された内容が変換表550内のア
ドレスであれば、変換表550内でこのアドレスから始ま
るリンク付きリストが順次サーチされる。このサーチは
上に説明したように、変換したい仮想アドレスが入つて
いるエントリが見つかるかあるいは空ポインタが見つか
るまで続けられる。ここで空ポインタが見つかれば、そ
れは、仮想アドレスでアドレスされたデータは主記憶上
に存在しないことを意味している。アドレスされたデー
タが主記憶上に存在しない場合には、ページ・フオルト
が起り、一般にソフトウエアを用いてそのデータをデイ
スクあるいは他の記憶装置に取り込む。
変換表550はページ・デイレクトリとして示されてい
る。エントリPIDR0の位置が変換表550のベース・
アドレスである。エントリPIDR0はアドレス空間37
0の最下位のアドレスのページに対応し、それより上の
エントリPIDR1、PIDR2、……はエントリPI
DR0に対応するページよりも1,2、……だけ上位ア
ドレス側のページに対応する。このようにして、表550
中でベース・アドレスに対して非負のオフセツトを持つ
たエントリはアドレス空間中の領域371中のページに対
応する。アドレス空間370中の入出力デバイスのレジス
タに対応する領域373もまた変換表550中のエントリによ
つてアドレス変換される必要がある。しかしながらこの
領域373に対応するエントリも上述のようにして変換表5
50中に配置するならば、変換表550が極めて大きくな
る。なんとなればこの領域373のためのエントリは変換
表550の上端に配置されるが、この部分と変換表550の下
端に配される部分領域371aのためのエントリ群との間
に、実際には使用されることのない部分領域371b用の極
めて大きなエントリ・スペースがとられてしまうからで
ある。これを防止するため、変換表550中の領域373用の
エントリはベース・アドレスの下から負の方向に配置さ
れる。たとえば、エントリPDIR−1 PDIR−
2、……は夫々アドレス空間370の最上位のページ(す
なわち領域373の最上位のページでもある)、最上位側
から数えて2番目のページ、……に対応する。このよう
にして、アドレス空間370内の未使用の部分領域371bに
対応する大きなギヤツプを変換表550に持込むことなし
に、領域373に関するアドレス変換が可能となる。
る。エントリPIDR0の位置が変換表550のベース・
アドレスである。エントリPIDR0はアドレス空間37
0の最下位のアドレスのページに対応し、それより上の
エントリPIDR1、PIDR2、……はエントリPI
DR0に対応するページよりも1,2、……だけ上位ア
ドレス側のページに対応する。このようにして、表550
中でベース・アドレスに対して非負のオフセツトを持つ
たエントリはアドレス空間中の領域371中のページに対
応する。アドレス空間370中の入出力デバイスのレジス
タに対応する領域373もまた変換表550中のエントリによ
つてアドレス変換される必要がある。しかしながらこの
領域373に対応するエントリも上述のようにして変換表5
50中に配置するならば、変換表550が極めて大きくな
る。なんとなればこの領域373のためのエントリは変換
表550の上端に配置されるが、この部分と変換表550の下
端に配される部分領域371aのためのエントリ群との間
に、実際には使用されることのない部分領域371b用の極
めて大きなエントリ・スペースがとられてしまうからで
ある。これを防止するため、変換表550中の領域373用の
エントリはベース・アドレスの下から負の方向に配置さ
れる。たとえば、エントリPDIR−1 PDIR−
2、……は夫々アドレス空間370の最上位のページ(す
なわち領域373の最上位のページでもある)、最上位側
から数えて2番目のページ、……に対応する。このよう
にして、アドレス空間370内の未使用の部分領域371bに
対応する大きなギヤツプを変換表550に持込むことなし
に、領域373に関するアドレス変換が可能となる。
第3A図は、領域373を指示する物理アドレスのビツト
がどのように割当てられているかを示す。セクシヨン38
1はアドレス380の最上位4ビツトを含む。アドレス空間
380の上端256Mバイトが入出力デバイスのレジスタ用の
領域373に割当てられているので、領域373を指示するア
ドレスのセクシヨン381の各ビツトは1になる。セクシ
ヨン382はアドレス380のうちの16ビツトを含んでい
る。この16ビツトにより、どの入出力デバイスがアド
レスされているかが定められる。本実施例においては、
216個(約65,000)の入出力デバイスをアドレスできる
だけの領域が与えられている。ビツト383により、特権
化されたページがアドレスされているのかそれとも特権
化されていないページがアドレスされているのかが示さ
れる。アドレス380のセクシヨン384は、入出力デバイス
内のどの特定のレジスタがアドレスされているのかが示
される。セクシヨン385はアドレス380の最下位2ビツト
を含む。セクシヨン385内の2つのビツトはいずれも0
である。なんとなれば、本実施例では各レジスタは32
ビツトの語単位でアドレスされるのに対しアドレス空間
370は8ビツトのバイト単位でアドレスできるからであ
る。
がどのように割当てられているかを示す。セクシヨン38
1はアドレス380の最上位4ビツトを含む。アドレス空間
380の上端256Mバイトが入出力デバイスのレジスタ用の
領域373に割当てられているので、領域373を指示するア
ドレスのセクシヨン381の各ビツトは1になる。セクシ
ヨン382はアドレス380のうちの16ビツトを含んでい
る。この16ビツトにより、どの入出力デバイスがアド
レスされているかが定められる。本実施例においては、
216個(約65,000)の入出力デバイスをアドレスできる
だけの領域が与えられている。ビツト383により、特権
化されたページがアドレスされているのかそれとも特権
化されていないページがアドレスされているのかが示さ
れる。アドレス380のセクシヨン384は、入出力デバイス
内のどの特定のレジスタがアドレスされているのかが示
される。セクシヨン385はアドレス380の最下位2ビツト
を含む。セクシヨン385内の2つのビツトはいずれも0
である。なんとなれば、本実施例では各レジスタは32
ビツトの語単位でアドレスされるのに対しアドレス空間
370は8ビツトのバイト単位でアドレスできるからであ
る。
第4図には入出力デバイス107の構成が示されている。
入出力デバイス107には入出力アダプタ410とデバイス・
インタフエース411が設けられている。説明しやすくす
るため、レジスタ400、401、402、403、404、405およびバツ
フア406が入出力アダプタ410内に図示されている。レジ
スタ400にはアドレスが入つており、そこへ書込みが行
なわれた場合、システム・プロセツサ101に対する割込
みが発生するようになつている。レジスタ401は入出力
デバイスに指示を与えるコマンドを受け取るレジスタで
ある。このコマンドにより、たとえばデバイス・インタ
フエース411を初期化したり、デバイス・インタフエー
ス411からデータを読出したり、あるいはデバイス・イ
ンタフエース411にデータを書込む指示を与える。レジ
スタ402には入出力アダプタ410がシステム・メモリ102
上のDMA(直接メモリ・アクセス)転送を行なう際の
開始アドレスを示す数が入る。レジスタ403には、DM
A転送によりシステム・メモリ102で転送されるデータ
の量を示すバイト数が入る。レジスタ404はDMA転送
を開始させたりまたは終了させるコマンドを受け取る。
レジスタ405には、入出力アダプタ410とシステム・メモ
リ402との間の直前のDMAトランザクシヨンのステー
タスに関する情報が入つている。
入出力デバイス107には入出力アダプタ410とデバイス・
インタフエース411が設けられている。説明しやすくす
るため、レジスタ400、401、402、403、404、405およびバツ
フア406が入出力アダプタ410内に図示されている。レジ
スタ400にはアドレスが入つており、そこへ書込みが行
なわれた場合、システム・プロセツサ101に対する割込
みが発生するようになつている。レジスタ401は入出力
デバイスに指示を与えるコマンドを受け取るレジスタで
ある。このコマンドにより、たとえばデバイス・インタ
フエース411を初期化したり、デバイス・インタフエー
ス411からデータを読出したり、あるいはデバイス・イ
ンタフエース411にデータを書込む指示を与える。レジ
スタ402には入出力アダプタ410がシステム・メモリ102
上のDMA(直接メモリ・アクセス)転送を行なう際の
開始アドレスを示す数が入る。レジスタ403には、DM
A転送によりシステム・メモリ102で転送されるデータ
の量を示すバイト数が入る。レジスタ404はDMA転送
を開始させたりまたは終了させるコマンドを受け取る。
レジスタ405には、入出力アダプタ410とシステム・メモ
リ402との間の直前のDMAトランザクシヨンのステー
タスに関する情報が入つている。
第2A図は、入出力デバイス107に関連付けられた、特
権化されていないページ301を示している。第2B図
は、入出力デバイス107に関連付けられた特権化されて
いるページ302を示している。
権化されていないページ301を示している。第2B図
は、入出力デバイス107に関連付けられた特権化されて
いるページ302を示している。
レジスタ400ないし405の各々にはページ301および302内
のアドレスが関連付けられている。たとえば、ページ30
1については、 アドレス1P0……レジスタ400 アドレス1P1……レジスタ401 アドレス1P2……レジスタ402 アドレス1P3……レジスタ403 アドレス1P4……レジスタ404 アドレス1P5……レジスタ405 となつている。またページ302については、 アドレス2P0……レジスタ400 アドレス2P1……レジスタ401 アドレス2P2……レジスタ402 アドレス2P3……レジスタ403 アドレス2P4……レジスタ404 アドレス2P5……レジスタ405 となつている。特権化されていないページ301の残りの
アドレス1P6−1P511、および特権化されたペー
ジ302の残りのアドレス2P6−2P511にはレジス
タが対応付けられておらず従つて実装されていないアド
レスとなつてもよい。
のアドレスが関連付けられている。たとえば、ページ30
1については、 アドレス1P0……レジスタ400 アドレス1P1……レジスタ401 アドレス1P2……レジスタ402 アドレス1P3……レジスタ403 アドレス1P4……レジスタ404 アドレス1P5……レジスタ405 となつている。またページ302については、 アドレス2P0……レジスタ400 アドレス2P1……レジスタ401 アドレス2P2……レジスタ402 アドレス2P3……レジスタ403 アドレス2P4……レジスタ404 アドレス2P5……レジスタ405 となつている。特権化されていないページ301の残りの
アドレス1P6−1P511、および特権化されたペー
ジ302の残りのアドレス2P6−2P511にはレジス
タが対応付けられておらず従つて実装されていないアド
レスとなつてもよい。
レジスタ400ないし405は夫々特権化されていないページ
301および特権化されたページ302の両方のアドレスに関
連付けられているが、レジスタ400ないし405が皆両ペー
ジで完全に備えられているわけではない。たとえば、レ
ジスタ400、402、403は特権化されたページ302内でのみ完
全に備えることができる。これらのレジスタに対して権
限のないアクセスが行なわれるならば、システムの安全
性が損なわれるおそれがある。というのはレジスタ400
はプロセツサに直接に割込みをおこすために用いられ、
またレジスタ402、403はシステム・メモリ102とのDMA
トランザクシヨンに関係しているからである。実現形態
によつては、特権化されていないページ301を介しての
レジスタ400、402、403への読出しアクセスは許可されて
もよい。レジスタ401はデバイス・インタフエース411と
入出力アダプタ410との間のトランザクシヨンに関係し
ている。これらのトランザクシヨンを行なう能力を与え
たとしても別にシステムの安全をおびやかさない。従つ
てレジスタ401は特権化されていないページ301および特
権化されたページ302の両方で完全に備えられてよい。
レジスタ404、405はDMA転送に用いられるのではある
が、システムが適切に設計されていれば、これらのレジ
スタはシステムの安全性を損なうことなしに使用される
ことができる。たとえば、レジスタ403のような特権的
なレジスタ内のビツトをDMAトランザクシヨンを付勢
するのに用い、これによつて特権化されたプロセスによ
つて付勢された場合にのみ、DMAトランザクシヨンが
開始されるようにできる。
301および特権化されたページ302の両方のアドレスに関
連付けられているが、レジスタ400ないし405が皆両ペー
ジで完全に備えられているわけではない。たとえば、レ
ジスタ400、402、403は特権化されたページ302内でのみ完
全に備えることができる。これらのレジスタに対して権
限のないアクセスが行なわれるならば、システムの安全
性が損なわれるおそれがある。というのはレジスタ400
はプロセツサに直接に割込みをおこすために用いられ、
またレジスタ402、403はシステム・メモリ102とのDMA
トランザクシヨンに関係しているからである。実現形態
によつては、特権化されていないページ301を介しての
レジスタ400、402、403への読出しアクセスは許可されて
もよい。レジスタ401はデバイス・インタフエース411と
入出力アダプタ410との間のトランザクシヨンに関係し
ている。これらのトランザクシヨンを行なう能力を与え
たとしても別にシステムの安全をおびやかさない。従つ
てレジスタ401は特権化されていないページ301および特
権化されたページ302の両方で完全に備えられてよい。
レジスタ404、405はDMA転送に用いられるのではある
が、システムが適切に設計されていれば、これらのレジ
スタはシステムの安全性を損なうことなしに使用される
ことができる。たとえば、レジスタ403のような特権的
なレジスタ内のビツトをDMAトランザクシヨンを付勢
するのに用い、これによつて特権化されたプロセスによ
つて付勢された場合にのみ、DMAトランザクシヨンが
開始されるようにできる。
特権化されたレジスタも特権化されていないレジスタ
も、これらのレジスタを読出すことによるシステム内で
の副作用を起さないように構成されなければならない。
たとえば読出しによつて新たな入出力動作が起つてはな
らない。これにより、ユーザ・プロセスは入出力動作を
行なうデバイスに影響を与えることなしに、入出力動作
を観察し監視することが許される。
も、これらのレジスタを読出すことによるシステム内で
の副作用を起さないように構成されなければならない。
たとえば読出しによつて新たな入出力動作が起つてはな
らない。これにより、ユーザ・プロセスは入出力動作を
行なうデバイスに影響を与えることなしに、入出力動作
を観察し監視することが許される。
特権化されたレジスタおよび特権化されていないレジス
タは更に、実装されていないアドレスへの書込みは無視
されるか、あるいは定義されないデータが同じページ内
のある別の実装されているアドレスへ書込まれるのと等
価な効果を与えるように構成されなければならない。
タは更に、実装されていないアドレスへの書込みは無視
されるか、あるいは定義されないデータが同じページ内
のある別の実装されているアドレスへ書込まれるのと等
価な効果を与えるように構成されなければならない。
上述の実施例はデバイスの割当てについての最大限の柔
軟性とこれに加えてシステムの保護を与えるものではあ
るが、これにかわる他の実現形態も可能である。たとえ
ば、各入出力デバイスは特権化されたページおよび特権
化されていないページの2ページにマツピングされる
が、各レジスタは一方のページにのみ備えられてもよ
い。これはプロセツサのソフトウエアの性能に影響を与
える。なんとなればこの方式ではひとつの入出力デバイ
スの全ての制御レジスタにアクセスしたい場合には2ペ
ージへのアクセスが必要となるからである。これに代え
て、各ユーザ・デバイスは単一のページにマツピングさ
れてよい。これによれば、ひとつの入出力デバイス中の
全レジスタへのアクセスはひとつのページへのアクセス
だけで行なえるが、非特権的なレジスタのみを持つてい
る入出力デバイスについてしか安全性を確保できない。
軟性とこれに加えてシステムの保護を与えるものではあ
るが、これにかわる他の実現形態も可能である。たとえ
ば、各入出力デバイスは特権化されたページおよび特権
化されていないページの2ページにマツピングされる
が、各レジスタは一方のページにのみ備えられてもよ
い。これはプロセツサのソフトウエアの性能に影響を与
える。なんとなればこの方式ではひとつの入出力デバイ
スの全ての制御レジスタにアクセスしたい場合には2ペ
ージへのアクセスが必要となるからである。これに代え
て、各ユーザ・デバイスは単一のページにマツピングさ
れてよい。これによれば、ひとつの入出力デバイス中の
全レジスタへのアクセスはひとつのページへのアクセス
だけで行なえるが、非特権的なレジスタのみを持つてい
る入出力デバイスについてしか安全性を確保できない。
以上説明したように、本発明によればシステムの構成が
簡単になるとともに、入出力制御等のオーバーヘツドを
少なくすることができるという効果が得られる。
簡単になるとともに、入出力制御等のオーバーヘツドを
少なくすることができるという効果が得られる。
【図面の簡単な説明】 第1図は本発明の仮想記憶方式が適用されるコンピユー
タ・システムのブロツク図、第2A図および第2B図は
本発明の一実施例における入出力デバイスの各レジスタ
の仮想記憶上のページ内の配置を示す図、第3図は第1
図のコンピユータ・システムのアドレス空間の割当てを
示す図、第3A図は入出力デバイス用の領域を指示する
物理アドレスの各ビツトの割当てを示す図、第4図は入
出力デバイスの構成の概略図、第5図は変換表中のエン
トリの構成を示す図、第6図はシステム・プロセツサ内
の4個の制御レジスタの構成を示す図、第7図および第
8図は実施例におけるアドレス変換のための構成を示す
図である。 101:システム・プロセツサ、 102:システム・メモリ、 103、104、105、106、107:入出力デバイス、 301、302:ページ、 400、402、403、404、405:レジスタ、 410:入出力アダプタ、 411:デバイス・インタフエース、 501、511:エントリ、 550:変換表、 601、611、621、631:制御レジスタ、 701:ハツシユ・デバイス、 702、703、704、705:リンク付きリスト、 801:ハツシユ表。
タ・システムのブロツク図、第2A図および第2B図は
本発明の一実施例における入出力デバイスの各レジスタ
の仮想記憶上のページ内の配置を示す図、第3図は第1
図のコンピユータ・システムのアドレス空間の割当てを
示す図、第3A図は入出力デバイス用の領域を指示する
物理アドレスの各ビツトの割当てを示す図、第4図は入
出力デバイスの構成の概略図、第5図は変換表中のエン
トリの構成を示す図、第6図はシステム・プロセツサ内
の4個の制御レジスタの構成を示す図、第7図および第
8図は実施例におけるアドレス変換のための構成を示す
図である。 101:システム・プロセツサ、 102:システム・メモリ、 103、104、105、106、107:入出力デバイス、 301、302:ページ、 400、402、403、404、405:レジスタ、 410:入出力アダプタ、 411:デバイス・インタフエース、 501、511:エントリ、 550:変換表、 601、611、621、631:制御レジスタ、 701:ハツシユ・デバイス、 702、703、704、705:リンク付きリスト、 801:ハツシユ表。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・ジエイ・マホン アメリカ合衆国カリフオルニア州サン・ノ ゼ・アデル・プレイス 1975 (72)発明者 テレンス・シー・ミラー アメリカ合衆国カリフオルニア州メンロ・ パーク・オーク・コート 169 (72)発明者 ウイリアム・エス・ウオーリイ.ジユニア アメリカ合衆国カリフオルニア州サラト ガ・フアルマス・コート 19316 審査官 大日方 和幸
Claims (4)
- 【請求項1】レジスタを含む入出力装置と、 複数の物理記憶ロケーションを含みデータをストアする
記憶手段と、 複数のプロセスを実行する処理手段と、 前記前記レジスタ及び複数の物理記憶ロケーションに仮
想アドレスを割り当てる仮想アドレス・マッピング手段
と を設けた情報処理装置の仮想記憶方式において、 前記物理記憶ロケーション及び前記レジスタへの仮想ア
ドレスの割り当ては前記複数のプロセスのいずれを実行
しているかにかかわりなく行われることを特徴とする仮
想記憶方式。 - 【請求項2】前記仮想アドレスはページにグループ化さ
れ、前記仮想アドレス・マッピング手段は前記ページの
各々についてアクセス・コードを有することを特徴とす
る特許請求の範囲第1項記載の仮想記憶方式。 - 【請求項3】前記プロセスの各々は少なくとも1つのア
クセス・コードを有し、前記プロセスが前記仮想アドレ
スを発行した場合、当該プロセスの持っている前記アク
セス・コードが前記発行された仮想アドレスの属する前
記ページについて前記仮想アドレス・マッピング手段の
持っている前記アクセス・コードと一致しない限り前記
発行された仮想アドレスへのアクセスを許さないことを
特徴とする特許請求の範囲第2項記載の仮想記憶方式。 - 【請求項4】前記仮想アドレス・マッピング手段は、前
記レジスタに対して夫々別のページである第1のページ
及び第2のページにグループ化される複数の仮想アドレ
スを割り当てるとともに、前記レジスタが割り当てられ
る異なるページのアクセス・コードが互いに異なってい
ることを特徴とする特許請求の範囲第1項ないし第3項
記載の仮想アドレス方式。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/750,578 US4777589A (en) | 1985-06-28 | 1985-06-28 | Direct input/output in a virtual memory system |
| US750578 | 1985-06-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS623359A JPS623359A (ja) | 1987-01-09 |
| JPH0654479B2 true JPH0654479B2 (ja) | 1994-07-20 |
Family
ID=25018430
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61111741A Expired - Lifetime JPH0654479B2 (ja) | 1985-06-28 | 1986-05-15 | 仮想記憶方式 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US4777589A (ja) |
| EP (2) | EP0551148A3 (ja) |
| JP (1) | JPH0654479B2 (ja) |
| KR (1) | KR930009062B1 (ja) |
| CN (1) | CN1006096B (ja) |
| AU (2) | AU583634B2 (ja) |
| CA (1) | CA1261479A (ja) |
| DE (1) | DE3689209T2 (ja) |
Families Citing this family (76)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4926322A (en) * | 1987-08-03 | 1990-05-15 | Compag Computer Corporation | Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management |
| US5155822A (en) * | 1987-08-13 | 1992-10-13 | Digital Equipment Corporation | High performance graphics workstation |
| JP2507756B2 (ja) * | 1987-10-05 | 1996-06-19 | 株式会社日立製作所 | 情報処理装置 |
| US5297268A (en) * | 1988-06-03 | 1994-03-22 | Dallas Semiconductor Corporation | ID protected memory with a readable/writable ID template |
| US5125086A (en) * | 1989-06-29 | 1992-06-23 | Digital Equipment Corporation | Virtual memory paging apparatus with variable size in-page clusters |
| US5469556A (en) * | 1989-12-12 | 1995-11-21 | Harris Corporation | Resource access security system for controlling access to resources of a data processing system |
| JPH0692666B2 (ja) * | 1989-12-15 | 1994-11-16 | 徳厚 小島 | 排水立て管継手 |
| US5371890A (en) * | 1991-10-30 | 1994-12-06 | International Business Machines Corporation | Problem state cross-memory communication using communication memory domains |
| US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
| JP2974526B2 (ja) * | 1992-12-18 | 1999-11-10 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
| JP3676411B2 (ja) * | 1994-01-21 | 2005-07-27 | サン・マイクロシステムズ・インコーポレイテッド | レジスタファイル装置及びレジスタファイルアクセス方法 |
| JPH0844655A (ja) * | 1994-06-20 | 1996-02-16 | Internatl Business Mach Corp <Ibm> | マルチプル・バス情報処理システムのアドレス空間の拡張 |
| US5640591A (en) * | 1995-05-15 | 1997-06-17 | Nvidia Corporation | Method and apparatus for naming input/output devices in a computer system |
| US5623692A (en) * | 1995-05-15 | 1997-04-22 | Nvidia Corporation | Architecture for providing input/output operations in a computer system |
| US5768618A (en) * | 1995-12-21 | 1998-06-16 | Ncr Corporation | Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space |
| US5926648A (en) * | 1996-08-22 | 1999-07-20 | Zilog, Inc. | I/O port and RAM memory addressing technique |
| CN1104504C (zh) * | 2000-05-23 | 2003-04-02 | 厦门大学 | 一种海洋细菌胞外多糖的生产工艺 |
| US7337306B2 (en) * | 2000-12-29 | 2008-02-26 | Stmicroelectronics, Inc. | Executing conditional branch instructions in a data processor having a clustered architecture |
| US6865665B2 (en) * | 2000-12-29 | 2005-03-08 | Stmicroelectronics, Inc. | Processor pipeline cache miss apparatus and method for operation |
| DE10127195A1 (de) * | 2001-06-05 | 2002-12-19 | Infineon Technologies Ag | Prozessor mit interner Speicherkonfiguration |
| US7254720B1 (en) * | 2002-02-13 | 2007-08-07 | Lsi Corporation | Precise exit logic for removal of security overlay of instruction space |
| US7206906B1 (en) * | 2004-03-10 | 2007-04-17 | Sun Microsystems, Inc. | Physical address mapping framework |
| TWI368224B (en) * | 2007-03-19 | 2012-07-11 | A Data Technology Co Ltd | Wear-leveling management and file distribution management of hybrid density memory |
| US8365040B2 (en) | 2007-09-20 | 2013-01-29 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
| US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
| US8751726B2 (en) | 2007-12-05 | 2014-06-10 | Densbits Technologies Ltd. | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices |
| US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
| US8972472B2 (en) | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
| US8819385B2 (en) | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
| US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
| US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
| US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
| US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
| US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
| US9037777B2 (en) | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
| US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
| US8621321B2 (en) | 2010-07-01 | 2013-12-31 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
| US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
| US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
| US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
| US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
| US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
| US8996790B1 (en) * | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
| US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
| US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
| US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
| US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
| US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
| US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
| US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
| US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
| US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
| US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
| US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
| US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
| US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
| US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
| US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
| US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
| US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
| US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
| US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
| CN103970680A (zh) * | 2014-04-28 | 2014-08-06 | 上海华为技术有限公司 | 内存管理方法、装置及嵌入式系统 |
| US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
| US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
| US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
| US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
| US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
| US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
| US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
| US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
| US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
| CN105653478B (zh) * | 2015-12-29 | 2019-07-26 | 致象尔微电子科技(上海)有限公司 | 串行闪存控制器、串行闪存控制方法及串行闪存控制系统 |
| US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
| US11061819B2 (en) | 2019-05-28 | 2021-07-13 | Micron Technology, Inc. | Distributed computing based on memory as a service |
| US12436804B2 (en) | 2019-05-28 | 2025-10-07 | Micron Technology, Inc. | Memory as a service for artificial neural network (ANN) applications |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| BE758815A (fr) * | 1969-11-28 | 1971-04-16 | Burroughs Corp | Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire |
| US4053948A (en) * | 1976-06-21 | 1977-10-11 | Ibm Corporation | Look aside array invalidation mechanism |
| FR2431732A1 (fr) * | 1978-07-19 | 1980-02-15 | Materiel Telephonique | Dispositif de conversion d'adresse virtuelle en adresse reelle |
| US4320456A (en) * | 1980-01-18 | 1982-03-16 | International Business Machines Corporation | Control apparatus for virtual address translation unit |
| US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
| US4493023A (en) * | 1981-05-22 | 1985-01-08 | Data General Corporation | Digital data processing system having unique addressing means and means for identifying and accessing operands |
| US4439830A (en) * | 1981-11-09 | 1984-03-27 | Control Data Corporation | Computer system key and lock protection mechanism |
| US4477871A (en) * | 1981-11-23 | 1984-10-16 | Motorola, Inc. | Global operation coordination method and circuit |
| US4654777A (en) * | 1982-05-25 | 1987-03-31 | Tokyo Shibaura Denki Kabushiki Kaisha | Segmented one and two level paging address translation system |
| JPS6047624B2 (ja) * | 1982-06-30 | 1985-10-22 | 富士通株式会社 | アドレス変換制御方式 |
| US4635189A (en) * | 1984-03-01 | 1987-01-06 | Measurex Corporation | Real-time distributed data-base management system |
-
1985
- 1985-06-28 US US06/750,578 patent/US4777589A/en not_active Expired - Lifetime
-
1986
- 1986-05-15 JP JP61111741A patent/JPH0654479B2/ja not_active Expired - Lifetime
- 1986-06-02 CN CN86103675.1A patent/CN1006096B/zh not_active Expired
- 1986-06-12 EP EP19930104861 patent/EP0551148A3/en not_active Withdrawn
- 1986-06-12 DE DE86304492T patent/DE3689209T2/de not_active Expired - Fee Related
- 1986-06-12 EP EP86304492A patent/EP0208428B1/en not_active Expired - Lifetime
- 1986-06-26 CA CA000512587A patent/CA1261479A/en not_active Expired
- 1986-06-27 AU AU59413/86A patent/AU583634B2/en not_active Ceased
- 1986-06-27 KR KR1019860005176A patent/KR930009062B1/ko not_active Expired - Fee Related
-
1989
- 1989-06-14 AU AU36410/89A patent/AU623146B2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| EP0208428A2 (en) | 1987-01-14 |
| EP0551148A3 (en) | 1993-09-15 |
| KR870000645A (ko) | 1987-02-19 |
| CN1006096B (zh) | 1989-12-13 |
| EP0551148A2 (en) | 1993-07-14 |
| US4777589A (en) | 1988-10-11 |
| AU3641089A (en) | 1989-10-05 |
| AU5941386A (en) | 1987-01-08 |
| CN86103675A (zh) | 1986-12-24 |
| KR930009062B1 (ko) | 1993-09-22 |
| AU583634B2 (en) | 1989-05-04 |
| EP0208428A3 (en) | 1989-04-26 |
| DE3689209D1 (de) | 1993-12-02 |
| AU623146B2 (en) | 1992-05-07 |
| JPS623359A (ja) | 1987-01-09 |
| EP0208428B1 (en) | 1993-10-27 |
| CA1261479A (en) | 1989-09-26 |
| DE3689209T2 (de) | 1994-03-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0654479B2 (ja) | 仮想記憶方式 | |
| US6230248B1 (en) | Method and apparatus for pre-validating regions in a virtual addressing scheme | |
| US4376297A (en) | Virtual memory addressing device | |
| US6070173A (en) | Method and apparatus for assisting garbage collection process within a java virtual machine | |
| EP0058844B1 (en) | Address generator for multiple virtual address spaces | |
| JP2635058B2 (ja) | アドレス変換方式 | |
| JP4295111B2 (ja) | メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法 | |
| US5809546A (en) | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers | |
| US5280614A (en) | Apparatus and method for controlling access to data using domains | |
| US5182805A (en) | Method and system for determining copy-on-write condition | |
| JPS61141055A (ja) | 情報処理装置のアドレス変換方式 | |
| JPS63289659A (ja) | 記憶装置保護方式 | |
| JPH0531776B2 (ja) | ||
| EP0377970A2 (en) | I/O caching | |
| JPS6248258B2 (ja) | ||
| US5293622A (en) | Computer system with input/output cache | |
| EP0175398A2 (en) | Data processing system comprising a memory access controller which is provided for combining descriptor bits of different descriptors associated with virtual addresses | |
| US5479631A (en) | System for designating real main storage addresses in instructions while dynamic address translation is on | |
| EP0428079A2 (en) | Translation look aside buffer with parallel exception checking and update bypass | |
| JP2000276405A (ja) | アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム | |
| JP2823038B2 (ja) | 論理ダイレクトメモリアクセス方式 | |
| US7181587B1 (en) | Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment | |
| JPH0233639A (ja) | 主記憶装置管理方法および計算機システム | |
| JP2000267932A (ja) | タグアドレス比較装置 | |
| JPH04205535A (ja) | コピーオンライト方式 |
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 |
|
| EXPY | Cancellation because of completion of term |