JPH0198040A - メモリ管理システムおよびその動作方法 - Google Patents
メモリ管理システムおよびその動作方法Info
- Publication number
- JPH0198040A JPH0198040A JP63167450A JP16745088A JPH0198040A JP H0198040 A JPH0198040 A JP H0198040A JP 63167450 A JP63167450 A JP 63167450A JP 16745088 A JP16745088 A JP 16745088A JP H0198040 A JPH0198040 A JP H0198040A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- translation
- management system
- logical address
- memory management
- 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
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
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
背景技術
1、発明の分野
この発明はディジタルコンピュータのメモリ機能を管理
するシステムおよびその方法に関するものである。特に
、この発明はディジタルコンピュータにおいて使用する
ためのダイナミックメモリ管理システムのためのアーキ
テクチャおよび対応する方法に向けられている。
するシステムおよびその方法に関するものである。特に
、この発明はディジタルコンピュータにおいて使用する
ためのダイナミックメモリ管理システムのためのアーキ
テクチャおよび対応する方法に向けられている。
2、背景技術
近年、ディジタルコンピュータは数年前のディジタルコ
ンピュータと比べてより強力でかつより゛ 複雑になっ
てきている。モノリシック集積回路の製造における発展
およびまた他の技術の発展につれてディジタルコンピュ
ータは将来、より強力にかつより複雑になるであろうこ
とが予想される。
ンピュータと比べてより強力でかつより゛ 複雑になっ
てきている。モノリシック集積回路の製造における発展
およびまた他の技術の発展につれてディジタルコンピュ
ータは将来、より強力にかつより複雑になるであろうこ
とが予想される。
たとえば、集積回路製造技術が進歩して1個の半導体材
料の超小型チップ上に置かれる回路構成要素が増え、デ
ィジタルコンピュータの能力を劇的に増加させることが
可能となっている。
料の超小型チップ上に置かれる回路構成要素が増え、デ
ィジタルコンピュータの能力を劇的に増加させることが
可能となっている。
コンピュータのハードウェアが近年より強力になってき
ている一方で、コンピュータのソフトウェアを書いたり
またそのようなソフトウェアを購入したりする人々は常
により一層強力なハードウェアを所望している。コンピ
ュータプログラムのデザインおよびユーザの期待は入手
可能なハードウェアの容量によって幾分制限されてしま
うであろうことが予想でき得る。こうして、ソフトウェ
アの性能要求およびユーザの期待に応えるかまたはそれ
らを超えるコンピュータシステムを提供する必要がある
。
ている一方で、コンピュータのソフトウェアを書いたり
またそのようなソフトウェアを購入したりする人々は常
により一層強力なハードウェアを所望している。コンピ
ュータプログラムのデザインおよびユーザの期待は入手
可能なハードウェアの容量によって幾分制限されてしま
うであろうことが予想でき得る。こうして、ソフトウェ
アの性能要求およびユーザの期待に応えるかまたはそれ
らを超えるコンピュータシステムを提供する必要がある
。
コンピュータの相対的な能力および性能を決定するため
にしばしば用いられる2つのパラメータがあるが、その
1つはプログラマ−が入手可能なメモリの量と、2つ目
はコンピュータが動作することができる速度(すなわち
、1秒あたりの動作の回数)である。コンピュータシス
テムが動作することができる速度はしばしばコンピュー
タの主要メモリがアクセスされる速度によって制限され
る。さらに、そのメモリのサイズまたは性能によって制
限されるコンピュータシステムはしばしば「メモリ境界
」であるとみなされる。大量のメモリを提供するには比
較的費用がかかるので、利用可能なメモリを効果的に用
いることが重要である。
にしばしば用いられる2つのパラメータがあるが、その
1つはプログラマ−が入手可能なメモリの量と、2つ目
はコンピュータが動作することができる速度(すなわち
、1秒あたりの動作の回数)である。コンピュータシス
テムが動作することができる速度はしばしばコンピュー
タの主要メモリがアクセスされる速度によって制限され
る。さらに、そのメモリのサイズまたは性能によって制
限されるコンピュータシステムはしばしば「メモリ境界
」であるとみなされる。大量のメモリを提供するには比
較的費用がかかるので、利用可能なメモリを効果的に用
いることが重要である。
磁気または光学メモリデバイス上には大量のディジタル
メモリを提供することが可能である。しかしながら、こ
れらの本質的に機械的なデバイスへのデータの書込およ
びそこからのデータの読出は150ナノ秒以下で動作す
ることができる現代のマイクロプロセッサの速度と比べ
て骨の折れる遅いタスク(ミリ秒で測定される)である
。さらに、マイクロプロセッサの動作速度は毎年速くな
っている。マイクロプロセッサの性能の増加とは対照的
に、機械的に動作される磁気および光学ディスクデバイ
スの動作の高速化は非常に遅く、その増加は通常わずか
であり、かつ工学的な努力と力を合わせてのみ達成され
る。
メモリを提供することが可能である。しかしながら、こ
れらの本質的に機械的なデバイスへのデータの書込およ
びそこからのデータの読出は150ナノ秒以下で動作す
ることができる現代のマイクロプロセッサの速度と比べ
て骨の折れる遅いタスク(ミリ秒で測定される)である
。さらに、マイクロプロセッサの動作速度は毎年速くな
っている。マイクロプロセッサの性能の増加とは対照的
に、機械的に動作される磁気および光学ディスクデバイ
スの動作の高速化は非常に遅く、その増加は通常わずか
であり、かつ工学的な努力と力を合わせてのみ達成され
る。
大部分のコンピュータシステムにおいて、中央処理装置
(CP U)は主要メモリ装置と通じて命令(しばしば
コードと呼ばれる)を得たりデータの読出および書込を
行なう。CPUはアドレスを発生しかつそのアドレスを
アドレスバスに置いて次にデータバス上で特定されたメ
モリ位置にデータを送るかまたはそこからデータを受取
ることによって、特定の主要メモリ装置の位置にアクセ
スする。
(CP U)は主要メモリ装置と通じて命令(しばしば
コードと呼ばれる)を得たりデータの読出および書込を
行なう。CPUはアドレスを発生しかつそのアドレスを
アドレスバスに置いて次にデータバス上で特定されたメ
モリ位置にデータを送るかまたはそこからデータを受取
ることによって、特定の主要メモリ装置の位置にアクセ
スする。
メモリ管理システムがディジタルコンピュータに組込ま
れると主要メモ°り装置のより効率的な使用が可能とな
る能力が提供される。これらの能力にはCPUによって
割当てられた(または他の「論理アドレス発生デバイス
」によって発生された)論理アドレスを主要メモリの物
理アドレスに翻訳したり、コンピュータにある異なるプ
ロセスのために多数の隔離されたアドレス空間を提供(
。
れると主要メモ°り装置のより効率的な使用が可能とな
る能力が提供される。これらの能力にはCPUによって
割当てられた(または他の「論理アドレス発生デバイス
」によって発生された)論理アドレスを主要メモリの物
理アドレスに翻訳したり、コンピュータにある異なるプ
ロセスのために多数の隔離されたアドレス空間を提供(
。
たり、成るメモリ区域において読出や書込のみといった
動作を行なうことを可能にすることによってその区域を
保護したりすることが含まれる。
動作を行なうことを可能にすることによってその区域を
保護したりすることが含まれる。
コンピュータシステムにあるプロセス(1つのコンピュ
ータシステムが多くの別のプロセスを取扱うかもしれな
い)にその中での動作のために多数の論理メモリ位置を
提供する一方で、実際の制限内に物理メモリ位置の数を
止めておくために、仮想メモリ機構がしばしば用いられ
る。仮想メモリ機構は1つのプロセスで利用可能なメモ
リ位置の数(「論理アドレス」で表わされる)が主要メ
モリで利用可能なメモリ位置の数(「物理アドレス」で
表わされる)より大きいということである。
ータシステムが多くの別のプロセスを取扱うかもしれな
い)にその中での動作のために多数の論理メモリ位置を
提供する一方で、実際の制限内に物理メモリ位置の数を
止めておくために、仮想メモリ機構がしばしば用いられ
る。仮想メモリ機構は1つのプロセスで利用可能なメモ
リ位置の数(「論理アドレス」で表わされる)が主要メ
モリで利用可能なメモリ位置の数(「物理アドレス」で
表わされる)より大きいということである。
そのような仮想メモリ機構によって主要メモリを効率的
に利用することができ、なぜなら任意の特定のプロセス
は短い時間期間の間コードまたはデータ(これより先は
総称して「データ)と呼ぶ)の小さなグループにアクセ
スすることしか必要としないからである。
に利用することができ、なぜなら任意の特定のプロセス
は短い時間期間の間コードまたはデータ(これより先は
総称して「データ)と呼ぶ)の小さなグループにアクセ
スすることしか必要としないからである。
こうして、多くのメモリ管理システムの重要な機能は仮
想メモリの支持を提供している。このように、CPUは
主要メモリ内の実際の物理的に存在しているよりも広い
論理メモリ空間にアクセスすることが許容される。言換
えれば、プログラム志たはプロセスは主要メモリで利用
できる物理または実メモリ空間よりずっと大きい仮想メ
モリ空間を利用することができるであろう。
想メモリの支持を提供している。このように、CPUは
主要メモリ内の実際の物理的に存在しているよりも広い
論理メモリ空間にアクセスすることが許容される。言換
えれば、プログラム志たはプロセスは主要メモリで利用
できる物理または実メモリ空間よりずっと大きい仮想メ
モリ空間を利用することができるであろう。
仮想メモリ機構を実現するコンピュータシステムにおい
て、特定のプロセス、たとえば10億バイト(1ギガバ
イト)が利用可能なメモリの総量は通常磁気ディスクデ
バイスにストアされる。たとえば100万バイト(1メ
ガバイト)のような少量のランダムアクセスメモリ(R
AM)はコンピュータシステムの主要メモリ内のプロセ
スのために提供される。磁気ディスクに含まれるデータ
はプロセスが必要とするとRA M内の利用可能な制限
された空間に移動する。そのプロセスがデータの一部分
の利用を終えると、そのデータは主要メモリから2次記
憶装置に移され、主要メモリに移されてきた他のデータ
と入替わる。
て、特定のプロセス、たとえば10億バイト(1ギガバ
イト)が利用可能なメモリの総量は通常磁気ディスクデ
バイスにストアされる。たとえば100万バイト(1メ
ガバイト)のような少量のランダムアクセスメモリ(R
AM)はコンピュータシステムの主要メモリ内のプロセ
スのために提供される。磁気ディスクに含まれるデータ
はプロセスが必要とするとRA M内の利用可能な制限
された空間に移動する。そのプロセスがデータの一部分
の利用を終えると、そのデータは主要メモリから2次記
憶装置に移され、主要メモリに移されてきた他のデータ
と入替わる。
従来、上で述べられた仮想メモリ機構は仮想メモリ空間
の合計(「論理空間」とも呼ばれる)を「ページ」と呼
ばれる多くの同じ大きさのユニットに分割することによ
って行なわれる。1つのプロセスのためのページがすべ
てが磁気ディスクのような2次記憶装置デバイスにスト
アされる。論理メモリ空間のページからデータをストア
する物理メモリ内の位置は「フレーム」と呼ばれる。デ
ータのページがCPUによって要求されると、それらは
主要メモリのフレームに移動する。
の合計(「論理空間」とも呼ばれる)を「ページ」と呼
ばれる多くの同じ大きさのユニットに分割することによ
って行なわれる。1つのプロセスのためのページがすべ
てが磁気ディスクのような2次記憶装置デバイスにスト
アされる。論理メモリ空間のページからデータをストア
する物理メモリ内の位置は「フレーム」と呼ばれる。デ
ータのページがCPUによって要求されると、それらは
主要メモリのフレームに移動する。
ページはその利用頻度および利用可能な主要(物理)メ
モリの量の制限によってそのまま主要メモリに置かれる
かまたは2次記憶装置に再び移動されるかが決定される
。メモリ管理システムの1つの通常の機能は主要メモリ
内に現在存在していないページへのCPUのアクセスの
試みを検出しそして要求されたアドレスを含むページが
主要メモリに移動してくるまでCPUの動作を中断させ
ることである。
モリの量の制限によってそのまま主要メモリに置かれる
かまたは2次記憶装置に再び移動されるかが決定される
。メモリ管理システムの1つの通常の機能は主要メモリ
内に現在存在していないページへのCPUのアクセスの
試みを検出しそして要求されたアドレスを含むページが
主要メモリに移動してくるまでCPUの動作を中断させ
ることである。
たとえば、メモリ管理システムを有するコンピュータシ
ステムにおいて、各ページは2048バイトを含んでも
よい。1ページ内の個々のメモリ位置はシーケンシャル
に0.1.2.3、・・・2046.2047と示され
てもよい。1つのプロセスは一般に連続したメモリ位置
にストアされるデータにアクセスする。すなわち、はと
んどのプロセスは最初に位置Oにアクセスし次に位置1
にアクセスし以下同様である。
ステムにおいて、各ページは2048バイトを含んでも
よい。1ページ内の個々のメモリ位置はシーケンシャル
に0.1.2.3、・・・2046.2047と示され
てもよい。1つのプロセスは一般に連続したメモリ位置
にストアされるデータにアクセスする。すなわち、はと
んどのプロセスは最初に位置Oにアクセスし次に位置1
にアクセスし以下同様である。
CPUが位置0にストアされているデータを要求すると
、データのページ全体が2次記憶装置から(たとえば磁
気ディスク)主要メモリに移動する。そのようなデータ
の転送はCPUの動作速度と比べて非常に遅い。データ
のページが主要メモリに移動している間、プロセスの実
行は中断しCPUは一般に要求されたデータを待機する
であろう。
、データのページ全体が2次記憶装置から(たとえば磁
気ディスク)主要メモリに移動する。そのようなデータ
の転送はCPUの動作速度と比べて非常に遅い。データ
のページが主要メモリに移動している間、プロセスの実
行は中断しCPUは一般に要求されたデータを待機する
であろう。
2次記憶装置にストアされたデータが主要メモリ内のど
こに移動するかを同定するタスクは「マツピング」と呼
ばれる。「マツピング」は仮想メモリ機構を実現しない
メモリ管理システムおよび実現するメモリ管理システム
の両方においてプロセスを説明するために用いられても
よい。
こに移動するかを同定するタスクは「マツピング」と呼
ばれる。「マツピング」は仮想メモリ機構を実現しない
メモリ管理システムおよび実現するメモリ管理システム
の両方においてプロセスを説明するために用いられても
よい。
1ペ一ジ分のデータが主要メモリに移されると、そのペ
ージのデータの位置は翻訳メモリと呼ばれる特別のメモ
リ区域にストアされるかまたはマツピングされる。たと
えば、次にCPUは2047までのそのページのデータ
位置のすべてがアクセスされるまで位置0、次に位置1
、というようにデータにアクセスするであろう。次に、
もし必要なら、CPUは次のページのデータが主要メモ
リに移されるようにし、そこでは位置0へのアクセスで
再びシーケンスが始まり位置2047まで続けられ得る
。このように、実際にはいつもデータの一部しか主要メ
モリ内にないのに1つのプロセスにとって、1ギガバイ
トの物理メモリ位置がその主要メモリ内で利用可能であ
るように見えることができる。
ージのデータの位置は翻訳メモリと呼ばれる特別のメモ
リ区域にストアされるかまたはマツピングされる。たと
えば、次にCPUは2047までのそのページのデータ
位置のすべてがアクセスされるまで位置0、次に位置1
、というようにデータにアクセスするであろう。次に、
もし必要なら、CPUは次のページのデータが主要メモ
リに移されるようにし、そこでは位置0へのアクセスで
再びシーケンスが始まり位置2047まで続けられ得る
。このように、実際にはいつもデータの一部しか主要メ
モリ内にないのに1つのプロセスにとって、1ギガバイ
トの物理メモリ位置がその主要メモリ内で利用可能であ
るように見えることができる。
どのページが主要メモリに含まれているかそしてそのペ
ージの位置責成る時点で決定する通常の1つの方法は、
1個以上の翻訳テーブルを含むであろう翻訳テーブルま
たは翻訳メモリと呼ばれるメモリ機構を利用する。翻訳
テーブル自身で見つけられるメモリ位置は「エントリ」
と呼ばれる。
ージの位置責成る時点で決定する通常の1つの方法は、
1個以上の翻訳テーブルを含むであろう翻訳テーブルま
たは翻訳メモリと呼ばれるメモリ機構を利用する。翻訳
テーブル自身で見つけられるメモリ位置は「エントリ」
と呼ばれる。
メモリ管理システムの主な機能は、論理アドレス発生デ
バイスたえばCPUからの論理アドレスを入力として認
知し、その論理アドレスを主要メモリの対応する物理ア
ドレスに翻訳し、次にそれを主要メモリに出力する。通
常、翻訳テーブルはメモリ管理システムの内部にある高
速ランダムアクセスメモリ(RAM)内にストアされて
いる。
バイスたえばCPUからの論理アドレスを入力として認
知し、その論理アドレスを主要メモリの対応する物理ア
ドレスに翻訳し、次にそれを主要メモリに出力する。通
常、翻訳テーブルはメモリ管理システムの内部にある高
速ランダムアクセスメモリ(RAM)内にストアされて
いる。
論理アドレスのビットパターンは成る様式で利用されて
翻訳メモリのエントリを選択し、そしてそのエントリに
ストアされている物理アドレス翻訳がメモリ管理システ
ムから出力される。
翻訳メモリのエントリを選択し、そしてそのエントリに
ストアされている物理アドレス翻訳がメモリ管理システ
ムから出力される。
この種のメモリ管理システムの最も簡単な形式は、2次
記憶装置内の各論理ページごとに翻訳メモリにエントリ
が存在する直接マツピングされるシステムである。この
メモリ管理のアプローチは仮想メモリ機構においてはし
ばしばあるが論理アドレス空間が非常に広い場合実際的
ではない。たとえ8キロバイトのような大きなページが
選択されたとしても、各プロセスは1ギガバイトの仮想
アドレス空間を提供するために翻訳テーブルにおいて1
31,072個のエントリを要求するであろう。これは
費用が非常にかかりかつ非効率であり、というのも高速
スタティックRAMは高価でかつ物理メモリ(主要メモ
リ)の最も小さな割当可能部分は依然として非常に大き
いであろうからである。
記憶装置内の各論理ページごとに翻訳メモリにエントリ
が存在する直接マツピングされるシステムである。この
メモリ管理のアプローチは仮想メモリ機構においてはし
ばしばあるが論理アドレス空間が非常に広い場合実際的
ではない。たとえ8キロバイトのような大きなページが
選択されたとしても、各プロセスは1ギガバイトの仮想
アドレス空間を提供するために翻訳テーブルにおいて1
31,072個のエントリを要求するであろう。これは
費用が非常にかかりかつ非効率であり、というのも高速
スタティックRAMは高価でかつ物理メモリ(主要メモ
リ)の最も小さな割当可能部分は依然として非常に大き
いであろうからである。
直接マツピングされるメモリ管理システムのさらなる制
限は、多数のプロセスがCPUと主要メモリを共用しな
くてはならないときにわかる。コンピュータシステムは
他のプロセスを取扱うためには一方のプロセスを非活動
状態にするので、種々の変化がコンピュータシステムに
分配されているデータ内で発生するに違いない。一方の
プロセスを活性状態にしかつ他方のプロセスを非活性状
態にすることは一般に「文脈切換」と呼ばれる。
限は、多数のプロセスがCPUと主要メモリを共用しな
くてはならないときにわかる。コンピュータシステムは
他のプロセスを取扱うためには一方のプロセスを非活動
状態にするので、種々の変化がコンピュータシステムに
分配されているデータ内で発生するに違いない。一方の
プロセスを活性状態にしかつ他方のプロセスを非活性状
態にすることは一般に「文脈切換」と呼ばれる。
さらに、「文脈切換時間」はコンピュータシステムが成
るプロセスまたは文脈から他のものに切換わるのに必要
とされる時間を言うのに用いられる。
るプロセスまたは文脈から他のものに切換わるのに必要
とされる時間を言うのに用いられる。
直接マツピングされるシステムにおける文脈切換は、翻
訳テーブルの全体の内容は各プロセスが活性状態になる
と再びロードされることを必要とする。そのようなシス
テムの代わりとして、各プロセスに1つのいくつかの組
の翻訳が維持されることになるであろう。しかしながら
、これは一般に非常に費用がかる、より高速のRAMを
必要とする。
訳テーブルの全体の内容は各プロセスが活性状態になる
と再びロードされることを必要とする。そのようなシス
テムの代わりとして、各プロセスに1つのいくつかの組
の翻訳が維持されることになるであろう。しかしながら
、これは一般に非常に費用がかる、より高速のRAMを
必要とする。
メモリ管理への他のアプローチは完全連想翻訳ルックア
サイドバッファを用いる。その翻訳ルックアサイドバッ
ファは一般的に通常16かまたは32個のエントリしか
含まない小さな内容アドレス可能メモリ(CAM)であ
る。各エントリはタグとフレームポインタからなる。C
PUが論理アドレスを発生すると、それは翻訳ルックア
サイドバッファにストアされたタグの各々と同時に比較
される。
サイドバッファを用いる。その翻訳ルックアサイドバッ
ファは一般的に通常16かまたは32個のエントリしか
含まない小さな内容アドレス可能メモリ(CAM)であ
る。各エントリはタグとフレームポインタからなる。C
PUが論理アドレスを発生すると、それは翻訳ルックア
サイドバッファにストアされたタグの各々と同時に比較
される。
もし一致する翻訳エントリが発見されたなら、エントリ
内に含まれる対応するフレームポインタがページのため
の物理アドレスとして用いられる。
内に含まれる対応するフレームポインタがページのため
の物理アドレスとして用いられる。
もしいかなる一致も発見されないなら、メモリ管理シス
テムによってそのプロセッサは適切なタグおよびフレー
ムポインタが通常コンピュータシステムの主要メモリ内
のテーブルから翻訳ルックアサイドバッファにロードさ
れ得るまで、メモリアクセスを中断する。成る設計では
、メモリ管理システムは自動的にエンリドをフェッチし
そして他のデザインでは、CPUはそれをフェッチする
ためにソフトウェアルーチンを実行しなくてはならない
。
テムによってそのプロセッサは適切なタグおよびフレー
ムポインタが通常コンピュータシステムの主要メモリ内
のテーブルから翻訳ルックアサイドバッファにロードさ
れ得るまで、メモリアクセスを中断する。成る設計では
、メモリ管理システムは自動的にエンリドをフェッチし
そして他のデザインでは、CPUはそれをフェッチする
ためにソフトウェアルーチンを実行しなくてはならない
。
内容アドレス可能メモリの複雑さにより、完全連想翻訳
ルックアサイドバッファは通常32個のエントリより少
ない制限された大きさである。もしプロセスが短い時間
期間に32ページより多くアクセスするなら、新しいエ
ントリが古いエントリに取って代わるために入って来な
くてはならず、これが遅延を引き起こす。また、新しい
プロセスへの文脈切換はすべての翻訳ルックアサイドバ
ッファエントリが無効にされることを必要にする。
ルックアサイドバッファは通常32個のエントリより少
ない制限された大きさである。もしプロセスが短い時間
期間に32ページより多くアクセスするなら、新しいエ
ントリが古いエントリに取って代わるために入って来な
くてはならず、これが遅延を引き起こす。また、新しい
プロセスへの文脈切換はすべての翻訳ルックアサイドバ
ッファエントリが無効にされることを必要にする。
メモリ管理システム設計のさらに別のアプローチでは直
接マツピングおよび完全連想設計の両方の特定が含まれ
る。これらはセ;ット連想メモリ管理システムと呼ばれ
る。これらのシステムは翻訳メモリにおいてエントリを
選択するために論理アドレスの一部を利用する。論理ア
ドレスの残余部分は選択された翻訳テーブルエントリに
おいてタグと比較される。もし論理アドレスがタグと一
致するなら、そのエントリでのフレームポインタは主要
メモリにおいてフレームのアドレスとして利用される。
接マツピングおよび完全連想設計の両方の特定が含まれ
る。これらはセ;ット連想メモリ管理システムと呼ばれ
る。これらのシステムは翻訳メモリにおいてエントリを
選択するために論理アドレスの一部を利用する。論理ア
ドレスの残余部分は選択された翻訳テーブルエントリに
おいてタグと比較される。もし論理アドレスがタグと一
致するなら、そのエントリでのフレームポインタは主要
メモリにおいてフレームのアドレスとして利用される。
この設計を改善していくと、各々がそれ自身のタグを有
し同時に比較される多数のエントリが提供される。これ
らは「Nウェイセット連想」メモリ管理システムと呼ば
れ、ここでrNJは同時に比較されるセットのエントリ
の数である。セット連想システムはいくつかのプロセス
のための翻訳が同時に主要メモリ内にあることを許容し
て文脈切換速度を改善するために仕切られることができ
る。
し同時に比較される多数のエントリが提供される。これ
らは「Nウェイセット連想」メモリ管理システムと呼ば
れ、ここでrNJは同時に比較されるセットのエントリ
の数である。セット連想システムはいくつかのプロセス
のための翻訳が同時に主要メモリ内にあることを許容し
て文脈切換速度を改善するために仕切られることができ
る。
以前に利用可能なNウェイセット連想メモリ管理システ
ムの欠点は主要メモリ内に設けられた仕切りおよびまた
翻訳テーブル内に設けられた仕切りの大きさがプロセス
の大きさに関係なく固定されているといった事実に起因
している。これはもしプロセスが小さいなら多くの翻訳
テーブルエントリは用いられないままにであるというこ
とがあり得る。代わりに、もしプロセスが大きいなら、
非常にわずかな翻訳テーブルエントリしか効果的な動作
に割当てられないかもしれない。
ムの欠点は主要メモリ内に設けられた仕切りおよびまた
翻訳テーブル内に設けられた仕切りの大きさがプロセス
の大きさに関係なく固定されているといった事実に起因
している。これはもしプロセスが小さいなら多くの翻訳
テーブルエントリは用いられないままにであるというこ
とがあり得る。代わりに、もしプロセスが大きいなら、
非常にわずかな翻訳テーブルエントリしか効果的な動作
に割当てられないかもしれない。
こうして、おそらく特定のプロセスは効果的な動作のた
めに主要メモリにおいて64フレーム(64個の2キロ
バイトのデータのページに対応する)を必要とするだけ
である。しかしながら、従来のNウェイセット連想メモ
リ管理システムでは、たとえば、翻訳テーブルは204
8ページを表わす区域に仕切られるのみかもしれない。
めに主要メモリにおいて64フレーム(64個の2キロ
バイトのデータのページに対応する)を必要とするだけ
である。しかしながら、従来のNウェイセット連想メモ
リ管理システムでは、たとえば、翻訳テーブルは204
8ページを表わす区域に仕切られるのみかもしれない。
これは多くのプロセスが主要メモリ内で64以下のフレ
ームを要求したり、他のプロセスでは効果的な動作のた
めに主要メモリ内で2048フレームより多くを必要と
するかもしれないといった事実と関係がない。
ームを要求したり、他のプロセスでは効果的な動作のた
めに主要メモリ内で2048フレームより多くを必要と
するかもしれないといった事実と関係がない。
以上のことを鑑みれば、十分な翻訳テーブルのエントリ
のみが(各エントリは主要メモリのページを表わす)効
果的な動作のために各プロセスに割当てられることがで
きるように仕切られるエントリを提供するメモリ管理シ
ステムを提供することは当該技術分野において意義深い
進歩であろう。
のみが(各エントリは主要メモリのページを表わす)効
果的な動作のために各プロセスに割当てられることがで
きるように仕切られるエントリを提供するメモリ管理シ
ステムを提供することは当該技術分野において意義深い
進歩であろう。
ダイナミックに、すなわち「オンザフライ」またはコン
ピュータシステムの動作においていかなる重大な割込な
しに、プロセスが活性化されかつ非活性化されるに従っ
て仕切られ得るメモリ管理システムを提供することは当
該技術分野においてさらなる前進であろう。
ピュータシステムの動作においていかなる重大な割込な
しに、プロセスが活性化されかつ非活性化されるに従っ
て仕切られ得るメモリ管理システムを提供することは当
該技術分野においてさらなる前進であろう。
翻訳テーブルのダイナミックな形態が翻訳テーブルを再
び形作ることがハードウェアの変化を必要とするよりも
むしろソフトウェアを管理するコンピュータシステムに
よって実現されることができる、メモリ管理システムを
提供することは当該技術分野においてさらなる前進であ
ろう。当該技術分野における他の進歩は高速で、すなわ
ちCPUが主要メモリから要求されたデータのページを
「待機」する必要なしに論理アドレスを物理アドレスに
翻訳することができる、ダイナミックに形成可能なメモ
リ管理ユニットを提供することであろう。
び形作ることがハードウェアの変化を必要とするよりも
むしろソフトウェアを管理するコンピュータシステムに
よって実現されることができる、メモリ管理システムを
提供することは当該技術分野においてさらなる前進であ
ろう。当該技術分野における他の進歩は高速で、すなわ
ちCPUが主要メモリから要求されたデータのページを
「待機」する必要なしに論理アドレスを物理アドレスに
翻訳することができる、ダイナミックに形成可能なメモ
リ管理ユニットを提供することであろう。
この発明の要約および目的
以前に入手可能であったメモリ管理システムにおける欠
点を鑑みれば、この発明の目的は翻訳メモリを可変サイ
ズのエントリのグループに形作ることができ、各グルー
プは1つのプロセスに割当てられそのグループの大きさ
はコンピュータシステム内にある特定のプロセスのメモ
リの必要性によって決定される、メモリ管理システムお
よび方法を提供することである。
点を鑑みれば、この発明の目的は翻訳メモリを可変サイ
ズのエントリのグループに形作ることができ、各グルー
プは1つのプロセスに割当てられそのグループの大きさ
はコンピュータシステム内にある特定のプロセスのメモ
リの必要性によって決定される、メモリ管理システムお
よび方法を提供することである。
この発明の他の目的は効果的な動作のために大量のメモ
リ空間を必要とするプロセスに多数の翻訳メモリエント
リを割当てる一方で、また効果的な動作のためにより少
ない量のメモリ空間を必要とするプロセスに少数の翻訳
メモリエントリを割当てることによって、主要メモリに
おいて利用可能なメモリ空間を最大限効果的に利用する
ことである。
リ空間を必要とするプロセスに多数の翻訳メモリエント
リを割当てる一方で、また効果的な動作のためにより少
ない量のメモリ空間を必要とするプロセスに少数の翻訳
メモリエントリを割当てることによって、主要メモリに
おいて利用可能なメモリ空間を最大限効果的に利用する
ことである。
この発明のさらに別の目的は、データのページが主要メ
モリと2次記憶装置の間で移動されなくてはならない回
数を最小にすることである。
モリと2次記憶装置の間で移動されなくてはならない回
数を最小にすることである。
この発明のさらに他の目的はダイナミックに、すなわち
コンピュータシステムの実行における実質的な割込なし
に、プロセスが活性状態と非活性状態になると、プロセ
スに対する翻訳メモリエントリのグループをサイズの異
なるプロセスに割当てることである。
コンピュータシステムの実行における実質的な割込なし
に、プロセスが活性状態と非活性状態になると、プロセ
スに対する翻訳メモリエントリのグループをサイズの異
なるプロセスに割当てることである。
この発明の他の目的はメモリ管理システムに関連したC
PUがデータの提示を待機することを必要とせずに高速
で論理アドレスを物理アドレスに翻訳することができる
、メモリ管理システムおよび方法を提供することである
。
PUがデータの提示を待機することを必要とせずに高速
で論理アドレスを物理アドレスに翻訳することができる
、メモリ管理システムおよび方法を提供することである
。
この発明のさらに別の目的は有効メモリアクセスの所与
の数で発生するページの欠陥の数や「ミス」または「ヒ
ツト」を減じることである。
の数で発生するページの欠陥の数や「ミス」または「ヒ
ツト」を減じることである。
この発明のさらに別の目的はコンピュータシステムにあ
るプロセスの数を増すことである。
るプロセスの数を増すことである。
この発明のさらに別の目的はダイナミックに形成される
、すなわち翻訳テーブルエントリの仕切りがプロセスが
活性状態や非活性状態になっている間および種々のプロ
セスの主要メモリの要求が変化している間に必要に従っ
て発生するかもしれない、高速のメモリ管理システムお
よびその方法を提供することである。
、すなわち翻訳テーブルエントリの仕切りがプロセスが
活性状態や非活性状態になっている間および種々のプロ
セスの主要メモリの要求が変化している間に必要に従っ
て発生するかもしれない、高速のメモリ管理システムお
よびその方法を提供することである。
この発明のさらに別の目的は仮想メモリ機構が効果的に
実現されることを許容するメモリ管理システムおよびそ
の方法を提供することである。
実現されることを許容するメモリ管理システムおよびそ
の方法を提供することである。
この発明のさらに他の目的はコンピュータシステム内に
ある各特定のプロセスに割当てられる翻訳テーブルエン
トリの数が最適に利用され得るメモリ管理システムおよ
びその方法を提供することである。
ある各特定のプロセスに割当てられる翻訳テーブルエン
トリの数が最適に利用され得るメモリ管理システムおよ
びその方法を提供することである。
この発明のさらに別の目的はメモリアクセスがCPUに
よって許容される最小の時間期間内に発生することがで
きる、メモリ管理システムおよびその方法を提供するこ
とである。
よって許容される最小の時間期間内に発生することがで
きる、メモリ管理システムおよびその方法を提供するこ
とである。
この発明のさらに別の目的はコンピュータシステムの文
脈切換時間を最小に維持することである。
脈切換時間を最小に維持することである。
この発明のこれらおよび他の目的は添付の図面と関連し
て以下の要約、詳細な説明および特許請求の範囲からよ
り完全に明らかになるであろう。
て以下の要約、詳細な説明および特許請求の範囲からよ
り完全に明らかになるであろう。
この発明はコンピュータのメモリ管理システム内で翻訳
メモリエントリのダイナミックな形態を可能にするため
のシステムおよびその方法を提供する。開示された実施
例において、CPUにより発生される論理アドレスの部
分はオフセット、ページ、ボリューム/ページ、および
ボリュームフィールドで規定される。オフセットフィー
ルドは変えられずに主要メモリに提示され、メモリの1
ページ内で特定の位置を選択する。ページフィールドは
翻訳メモリにおいて選択されたエントリのアドレスの第
1の部分を形成する。ボリューム/ページフィールドは
翻訳メモリにおいて選択されたエントリのアドレスの残
余部分を形成するために、マスクレジスタの内容によっ
て特定されるベースレジスタの内容と組合わされる。ボ
リュームフィールドおよびボリューム/ページフィール
ドは翻訳メモリにおいてストアされた1個以上のタグと
比較されて一致が存在するかを決定する。もし一致が存
在するなら、一致タグと関連したフレームポインタが所
望のページを含むフレームの物理アドレスとして主要メ
モリに出力される。
メモリエントリのダイナミックな形態を可能にするため
のシステムおよびその方法を提供する。開示された実施
例において、CPUにより発生される論理アドレスの部
分はオフセット、ページ、ボリューム/ページ、および
ボリュームフィールドで規定される。オフセットフィー
ルドは変えられずに主要メモリに提示され、メモリの1
ページ内で特定の位置を選択する。ページフィールドは
翻訳メモリにおいて選択されたエントリのアドレスの第
1の部分を形成する。ボリューム/ページフィールドは
翻訳メモリにおいて選択されたエントリのアドレスの残
余部分を形成するために、マスクレジスタの内容によっ
て特定されるベースレジスタの内容と組合わされる。ボ
リュームフィールドおよびボリューム/ページフィール
ドは翻訳メモリにおいてストアされた1個以上のタグと
比較されて一致が存在するかを決定する。もし一致が存
在するなら、一致タグと関連したフレームポインタが所
望のページを含むフレームの物理アドレスとして主要メ
モリに出力される。
この発明は翻訳テーブルエントリの数および各プロセス
に割当てられる主要メモリにおける対応する空間の量が
プロセスごとに変化できるようにする。仮想メモリ機構
を実現することまたは論理アドレス発生デバイスによっ
て主要メモリの物理アドレスに割当てられた論理アドレ
スを単に置き直すことが所望である、コンピュータシス
テムに応用できる。この発明はまた各プロセスの効果的
な動作に必要な翻訳メモリエントリの最適な数が提供さ
れることができるようにする。翻訳エントリの割当がプ
ロセスが活性状態および非活性状態になっている間、す
なわちダイナミックに発生するので、この発明のメモリ
管理システムはダイナミックまたはダイナミックに形成
可能なメモリ管理システムと呼ばれる。
に割当てられる主要メモリにおける対応する空間の量が
プロセスごとに変化できるようにする。仮想メモリ機構
を実現することまたは論理アドレス発生デバイスによっ
て主要メモリの物理アドレスに割当てられた論理アドレ
スを単に置き直すことが所望である、コンピュータシス
テムに応用できる。この発明はまた各プロセスの効果的
な動作に必要な翻訳メモリエントリの最適な数が提供さ
れることができるようにする。翻訳エントリの割当がプ
ロセスが活性状態および非活性状態になっている間、す
なわちダイナミックに発生するので、この発明のメモリ
管理システムはダイナミックまたはダイナミックに形成
可能なメモリ管理システムと呼ばれる。
この発明は、論理アドレス発生デバイス、たとえばCP
Uによって提示される論理アドレスをアドレス可能メモ
リ、たとえば主要メモリにおける物理アドレスにマツピ
ングするための少なくとも1つの翻訳メモリ手段を含む
。また、コンピュータシステム管理またソフトウェア(
たとえば「システムソフトウェア」または「オペレーテ
ィングシステム」)が各プロセスによってアクセス可能
な翻訳テーブルエントリの数のダイナミックな割当を指
図することができるハードウェア構造もまた設けられて
いる。このようにして、システムソフトウェアはコンピ
ュータシステム内にある種々のプロセスの各々によって
即座にアクセス可能なアドレス可能メモリの量を制御す
ることができる。
Uによって提示される論理アドレスをアドレス可能メモ
リ、たとえば主要メモリにおける物理アドレスにマツピ
ングするための少なくとも1つの翻訳メモリ手段を含む
。また、コンピュータシステム管理またソフトウェア(
たとえば「システムソフトウェア」または「オペレーテ
ィングシステム」)が各プロセスによってアクセス可能
な翻訳テーブルエントリの数のダイナミックな割当を指
図することができるハードウェア構造もまた設けられて
いる。このようにして、システムソフトウェアはコンピ
ュータシステム内にある種々のプロセスの各々によって
即座にアクセス可能なアドレス可能メモリの量を制御す
ることができる。
これらのハードウェア構造は特定のプロセスのために割
当てられるか、または「仕切られる」翻訳テーブルエン
トリの数を示すシステム管理ソフトウェアから命令を受
取るために利用される、マスクレジスタまたはグループ
サイズレジスタとここでは呼ばれるデバイスを含む。翻
訳テーブルエントリのグループが始まる、翻訳テーブル
内の位置およびアドレスを示すために用いられる、ここ
ではベースレジスタまたはグループ位置レジスタと呼ば
れるハードウェア構造がまた提供される。
当てられるか、または「仕切られる」翻訳テーブルエン
トリの数を示すシステム管理ソフトウェアから命令を受
取るために利用される、マスクレジスタまたはグループ
サイズレジスタとここでは呼ばれるデバイスを含む。翻
訳テーブルエントリのグループが始まる、翻訳テーブル
内の位置およびアドレスを示すために用いられる、ここ
ではベースレジスタまたはグループ位置レジスタと呼ば
れるハードウェア構造がまた提供される。
システム管理ソフトウェアは特定のプロセスに割当てら
れるべき翻訳テーブルエントリの数を決定しかつ選択さ
れた翻訳テーブルエントリの割当および位置決めを制御
する。
れるべき翻訳テーブルエントリの数を決定しかつ選択さ
れた翻訳テーブルエントリの割当および位置決めを制御
する。
この発明の方法は多くの異なるノー−ドウエアの機構を
用いて実行されてもよい。この発明の一実施例では、論
理アドレスは最初にメモリ管理システムに提示される。
用いて実行されてもよい。この発明の一実施例では、論
理アドレスは最初にメモリ管理システムに提示される。
論理アドレスのオフセットフィールド部分が次に規定さ
れる。論理アドレスのオフセットフィールド部分は所望
のデータが置かれる主要メモリの特定のページ内の位置
を特定する。次に、ページフィールドおよびボリューム
フィールドは論理アドレスにおいて規定される。
れる。論理アドレスのオフセットフィールド部分は所望
のデータが置かれる主要メモリの特定のページ内の位置
を特定する。次に、ページフィールドおよびボリューム
フィールドは論理アドレスにおいて規定される。
論理アドレスのどのビットがページフィールドを含むと
規定され、どのビットがボリュームフィールドを含むと
規定されるかを変えることによって、この発明のシステ
ムは各グループが1つのプロセスに割当てられる、エン
トリのグループへの翻訳テーブルの仕切りを決定する。
規定され、どのビットがボリュームフィールドを含むと
規定されるかを変えることによって、この発明のシステ
ムは各グループが1つのプロセスに割当てられる、エン
トリのグループへの翻訳テーブルの仕切りを決定する。
オペレーティングシステムのようなシステム管理ソフト
ウェアはいくつの翻訳エントリがプロセスに割当てられ
るかをこの発明のメモリ管理システムに示す。こうして
、いかなるハードウェアの修正も翻訳テーブルの仕切り
を再び形成するためには必要でない。
ウェアはいくつの翻訳エントリがプロセスに割当てられ
るかをこの発明のメモリ管理システムに示す。こうして
、いかなるハードウェアの修正も翻訳テーブルの仕切り
を再び形成するためには必要でない。
さらに、システム管理ソフトウェアは翻訳テーブルの仕
切りをダイナミックに、すなわち通常の動作の中断なし
に変えることができる。
切りをダイナミックに、すなわち通常の動作の中断なし
に変えることができる。
この発明の方法において、ベース値がまたシステム管理
ソフトウェアによって提供される。ベース値は翻訳テー
ブルにおけるインデックス位置を特定する。翻訳テーブ
ルエントリは次に所望の翻訳テーブルエントリが置かれ
るベース位置からの距離を示すページフィールド内に含
まれる情報に従って選択される。
ソフトウェアによって提供される。ベース値は翻訳テー
ブルにおけるインデックス位置を特定する。翻訳テーブ
ルエントリは次に所望の翻訳テーブルエントリが置かれ
るベース位置からの距離を示すページフィールド内に含
まれる情報に従って選択される。
選択された翻訳テーブルエントリに含まれる1つのタグ
は論理アドレスにおいて規定されるボリュームフィール
ドと比較される。次に論理アドレスのボリュームフィー
ルドおよび選択された翻訳テーブルエントリのタグフィ
ールドは等しいかどうか決定される。もし一致が発生し
たなら(すなわちボリュームフィールドとタグが等しい
なら)、フレームポインタ(主要メモリにおいてフレー
ムを識別する選択された翻訳テーブルエントリの位置)
は論理アドレスのオフセットフィールド部分と連結され
、主要メモリにおいて単一の位置を示す物理アドレスを
形成する。物理アドレスは次に主要メモリかまたは他の
アドレス可能メモリデバイスに提示される。
は論理アドレスにおいて規定されるボリュームフィール
ドと比較される。次に論理アドレスのボリュームフィー
ルドおよび選択された翻訳テーブルエントリのタグフィ
ールドは等しいかどうか決定される。もし一致が発生し
たなら(すなわちボリュームフィールドとタグが等しい
なら)、フレームポインタ(主要メモリにおいてフレー
ムを識別する選択された翻訳テーブルエントリの位置)
は論理アドレスのオフセットフィールド部分と連結され
、主要メモリにおいて単一の位置を示す物理アドレスを
形成する。物理アドレスは次に主要メモリかまたは他の
アドレス可能メモリデバイスに提示される。
この発明の現在好ましい実施例の詳細な説明次に図面を
参照するが、そこでは同様の部分は同様の数字で示され
ている。システムおよび方法の両方のここで示されてい
る実施例は単にこの発明の現在好ましい実施例を単に例
示するものであって、この発明は他の同等の構造および
方法によって実施されてもよいことが理解されるべきで
ある。
参照するが、そこでは同様の部分は同様の数字で示され
ている。システムおよび方法の両方のここで示されてい
る実施例は単にこの発明の現在好ましい実施例を単に例
示するものであって、この発明は他の同等の構造および
方法によって実施されてもよいことが理解されるべきで
ある。
現在好ましい実施例のシステムおよび方法の一般の概略
的な説明がまず提示され、その後でその示された実施例
のシステムの回路実現化例の説明が続く。ここで(第6
図ないし第9図)とともに含まれる現在好ましい実施例
の回路の詳細な概略図を明白にするために、当該技術分
野において一般に用いられる英数字表示がこれらの図面
において付される。
的な説明がまず提示され、その後でその示された実施例
のシステムの回路実現化例の説明が続く。ここで(第6
図ないし第9図)とともに含まれる現在好ましい実施例
の回路の詳細な概略図を明白にするために、当該技術分
野において一般に用いられる英数字表示がこれらの図面
において付される。
第1図を参照すると、第1図はメモリ管理システムの現
在好ましい実施例を含むコンピュータシステムのアーキ
テクチャを示すブロック図である。
在好ましい実施例を含むコンピュータシステムのアーキ
テクチャを示すブロック図である。
コンピュータシステムの心臓部であるマイクロプロセッ
サすなわち中央処理装置(CPU)は10で示される。
サすなわち中央処理装置(CPU)は10で示される。
CPUはマイクロプロセッサかまたは他のハードウェア
構造のいずれかの意味であることが認められるであろう
。この現在好ましい実施例において、CPUl0はモト
ローラMC68020マイクロプロセツサである。当業
者はMC68020が強力な32ビットマイクロプロセ
ツサであり、これは現在好ましいものでは16.67M
Hzまたは20MHzのいずれかで動作することを認め
るであろう。MC68020マイクロプロセツサは現在
好ましい実施例と共にCPUとして利用するために特定
によくそれを適合させる多くの特定を有する。たとえば
、MC68020は多数プロセス環境、すなわち必要な
とき活性状態になる異なる多数のプロセスをホストする
コンピュータシステムにおける動作によく適している。
構造のいずれかの意味であることが認められるであろう
。この現在好ましい実施例において、CPUl0はモト
ローラMC68020マイクロプロセツサである。当業
者はMC68020が強力な32ビットマイクロプロセ
ツサであり、これは現在好ましいものでは16.67M
Hzまたは20MHzのいずれかで動作することを認め
るであろう。MC68020マイクロプロセツサは現在
好ましい実施例と共にCPUとして利用するために特定
によくそれを適合させる多くの特定を有する。たとえば
、MC68020は多数プロセス環境、すなわち必要な
とき活性状態になる異なる多数のプロセスをホストする
コンピュータシステムにおける動作によく適している。
MC68020CPUの他の有益な特定はこの開示の後
に明らかになるであろう。
に明らかになるであろう。
重要なことには、当業者は多くの代替のマイクロプロセ
ッサおよび同等の回路がそれが1つでまたは他の同様の
デバイスと組合わされるかのいずれかで、この発明とと
もに用いられることができることを認めるであろう。さ
らに、この発明を理解すると、当業者は現在入手可能で
あるかまたは将来入手可能となるかもしれないそのよう
な代替のプロセッサまたは同等のデバイスおよび構造を
利用して、この発明を組込む実施例を提供する方法を認
めるであろう。
ッサおよび同等の回路がそれが1つでまたは他の同様の
デバイスと組合わされるかのいずれかで、この発明とと
もに用いられることができることを認めるであろう。さ
らに、この発明を理解すると、当業者は現在入手可能で
あるかまたは将来入手可能となるかもしれないそのよう
な代替のプロセッサまたは同等のデバイスおよび構造を
利用して、この発明を組込む実施例を提供する方法を認
めるであろう。
CPUl0はデータが主要(1次)メモリ24から検索
されることを要求する。CPUにはCPUと主要メモリ
を直接に接続するアドレスバスが設けられていることが
可能である。しかしながら、先に説明されたように、C
PUl0と主要メモリ24とをインターフェイスさせる
第1図のブロック18で示されるメモリ管理システムを
提供することがしばしばずっと効果的である。
されることを要求する。CPUにはCPUと主要メモリ
を直接に接続するアドレスバスが設けられていることが
可能である。しかしながら、先に説明されたように、C
PUl0と主要メモリ24とをインターフェイスさせる
第1図のブロック18で示されるメモリ管理システムを
提供することがしばしばずっと効果的である。
他の「論理アドレス発生デバイス」はまた論理アドレス
バス12に接続されかつそうしてメモリ管理システム1
8を介して主要メモリ24にアクセスできるかもしれな
いこともまた認められるべきである。そのような他の論
理アドレス発生デバイスが論理アドレスバス12に接続
されると、メモリ管理システムはあたかもCPUl0に
よってなされるようにこれらの他のデバイスによってメ
モリアドレスを取扱う。こうして、この説明におけるC
PUへのいかなる参照もまた他の論理アドレス発生デバ
イスに関して同一の応用性を有する。
バス12に接続されかつそうしてメモリ管理システム1
8を介して主要メモリ24にアクセスできるかもしれな
いこともまた認められるべきである。そのような他の論
理アドレス発生デバイスが論理アドレスバス12に接続
されると、メモリ管理システムはあたかもCPUl0に
よってなされるようにこれらの他のデバイスによってメ
モリアドレスを取扱う。こうして、この説明におけるC
PUへのいかなる参照もまた他の論理アドレス発生デバ
イスに関して同一の応用性を有する。
データが主要メモリ24から検索されることをCPU1
0が要求すると、CPUl0は第1図の論理アドレスバ
ス12上にアドレスを提示する。
0が要求すると、CPUl0は第1図の論理アドレスバ
ス12上にアドレスを提示する。
この開示を通して「バス」という言葉は1個以上の信号
を搬送する1個以上の導体のグループについて言うとい
うことが当業者によって認められるであろう。現在好ま
しい実施例において、CPU10は32ビットのプロセ
ッサであるので、はぼすべてのアドレスおよびデータバ
スは32ビットのアドレスまたはデータが並列に転送さ
れるように配置された32個の導体のグループであろう
。
を搬送する1個以上の導体のグループについて言うとい
うことが当業者によって認められるであろう。現在好ま
しい実施例において、CPU10は32ビットのプロセ
ッサであるので、はぼすべてのアドレスおよびデータバ
スは32ビットのアドレスまたはデータが並列に転送さ
れるように配置された32個の導体のグループであろう
。
しかしながら、データおよびアドレスバスの両方はこの
発明に応用できるであろう多くの異なる形式で実現され
てもよいことが認められるべきである。
発明に応用できるであろう多くの異なる形式で実現され
てもよいことが認められるべきである。
さらに、当該技術分野において慣習であるように、図面
においてバスは個々のバスの導体を示すよりもむしろ、
1つの導体ラインと区別するためにより太いラインで表
わされている。
においてバスは個々のバスの導体を示すよりもむしろ、
1つの導体ラインと区別するためにより太いラインで表
わされている。
さらに、ここで用いられるように、「データ」という言
葉は広い意味がある。すなわち、「データ」という言葉
はそれがCPUによって操作されるべき実行可能な命令
(コード)であろうと数字であろうと、コンピュータシ
ステム内に含まれる任意のビット配置を言うために用い
られるであろう。
葉は広い意味がある。すなわち、「データ」という言葉
はそれがCPUによって操作されるべき実行可能な命令
(コード)であろうと数字であろうと、コンピュータシ
ステム内に含まれる任意のビット配置を言うために用い
られるであろう。
CPUl0が論理アドレスを提示すると、それはメモリ
管理システム18によって受取られる。
管理システム18によって受取られる。
しかしながら、後に説明されるように、現在好ましい実
施例(第2図ないし第5図)では、論理アドレスの一部
はメモリ管理システム18によるいかなる操作も受けず
かつオフセットアドレスバス14によって主要メモリ2
4に直接に提示される。
施例(第2図ないし第5図)では、論理アドレスの一部
はメモリ管理システム18によるいかなる操作も受けず
かつオフセットアドレスバス14によって主要メモリ2
4に直接に提示される。
メモリ管理システム18によって一旦受取られると、論
理アドレスは物理アドレスに翻訳されかつ物理アドレス
は物理アドレスバス22によって主要メモリ24に提示
される。しかしながら、所望のデータが主要メモリ24
内に含まれていないとメモリ管理システム18が決定す
るなら、メモリ管理システムはCPUが動作を中断する
ことを引き起こす「ページフォルト」を出す。
理アドレスは物理アドレスに翻訳されかつ物理アドレス
は物理アドレスバス22によって主要メモリ24に提示
される。しかしながら、所望のデータが主要メモリ24
内に含まれていないとメモリ管理システム18が決定す
るなら、メモリ管理システムはCPUが動作を中断する
ことを引き起こす「ページフォルト」を出す。
さらに、メモリ管理システム18は要求されたデータが
第1図でブロック26で示される2次記憶デバイスで発
見されることを引き起こし、そしてそのデータを含むペ
ージが主要メモリ24の適当な位置に送られてくる。現
在好ましい実施例の2次記憶装置26は一般に磁気ディ
スクメモリデバイスを含む。認められるように、非常に
大量のメモリが1ビットあたり非常に安い価格で磁気デ
ィスクメモリによって提供されるかもしれない。
第1図でブロック26で示される2次記憶デバイスで発
見されることを引き起こし、そしてそのデータを含むペ
ージが主要メモリ24の適当な位置に送られてくる。現
在好ましい実施例の2次記憶装置26は一般に磁気ディ
スクメモリデバイスを含む。認められるように、非常に
大量のメモリが1ビットあたり非常に安い価格で磁気デ
ィスクメモリによって提供されるかもしれない。
現在好ましい実施例は仮想メモリ機構を実現しているが
、この発明は仮想メモリ能力を有するコンピュータシス
テムまたは仮想メモリ機構を実現しないコンピュータシ
ステムのいずれにおいても応用できる。
、この発明は仮想メモリ能力を有するコンピュータシス
テムまたは仮想メモリ機構を実現しないコンピュータシ
ステムのいずれにおいても応用できる。
一旦適切なデータが主要メモリ24内に置かれると、メ
モリ管理システムの内部翻訳テーブル(第1図には明白
に示されていない)の内容が次に再編成される。CPU
l0は次に最後のアドレス要求を再び初期設定する。適
切なデータが主要メモリ24内に移動されており、かつ
翻訳テーブルが更新されているので、アドレス要求が次
に実行され、アクセスされたデータがCPUl0へのデ
ータバス16上で提示されるであろう。
モリ管理システムの内部翻訳テーブル(第1図には明白
に示されていない)の内容が次に再編成される。CPU
l0は次に最後のアドレス要求を再び初期設定する。適
切なデータが主要メモリ24内に移動されており、かつ
翻訳テーブルが更新されているので、アドレス要求が次
に実行され、アクセスされたデータがCPUl0へのデ
ータバス16上で提示されるであろう。
効果的なメモリ管理システムの主な目的は発生するペー
ジフォルトの数を最小にすることである。
ジフォルトの数を最小にすることである。
先に説明されたように、これを達成するための当該技術
分野における初期の試みでは、大量の非常に速いアクセ
スのメモリがメモリ管理システム内に設けられることを
必要とした。しかしながら、所望の量の速いアクセスメ
モリを提供するのは一般に非常に費用がかかる。さらに
、以前に利用可能なシステムでは、コンピュータシステ
ム内にあるプロセスの数が増加するので、翻訳メモリの
サイズが一定のままであると発生するページフォルトの
数は一般に増加する。この発明はこれらの問題点を克服
する。
分野における初期の試みでは、大量の非常に速いアクセ
スのメモリがメモリ管理システム内に設けられることを
必要とした。しかしながら、所望の量の速いアクセスメ
モリを提供するのは一般に非常に費用がかかる。さらに
、以前に利用可能なシステムでは、コンピュータシステ
ム内にあるプロセスの数が増加するので、翻訳メモリの
サイズが一定のままであると発生するページフォルトの
数は一般に増加する。この発明はこれらの問題点を克服
する。
この発明のもとになっている重大なこの発明の概念を最
良に説明するために、第1A図のブロック図が与えられ
る。第1A図のブロック図は16゜384個のエントリ
(0ないし16,383)を有する1つの翻訳テーブル
を含む翻訳メモリ136を利用してこの発明の実施例を
表わす。
良に説明するために、第1A図のブロック図が与えられ
る。第1A図のブロック図は16゜384個のエントリ
(0ないし16,383)を有する1つの翻訳テーブル
を含む翻訳メモリ136を利用してこの発明の実施例を
表わす。
第1A図のメモリ管理システム18はいくつかの重要な
機能を果たすかもしれない。たとえば、コンピュータシ
ステムにおいて実行される種々のプロセスは各々動作の
ために主要メモリ24において成る空間を必要とする。
機能を果たすかもしれない。たとえば、コンピュータシ
ステムにおいて実行される種々のプロセスは各々動作の
ために主要メモリ24において成る空間を必要とする。
さらに、オペレーティングシステムのようなコンピュー
タシステム管理ソフトウェアは最小の量のメモリが連続
的に利用可能であることを必要とする。
タシステム管理ソフトウェアは最小の量のメモリが連続
的に利用可能であることを必要とする。
1度にたった1つのプロセスまたはプログラムを実行す
ることしかできない小さなコンピュータシステムは第1
A図に例示されるようなメモリ管理システムを必要とし
ない。これはシステムのパワーアップまたはリブート(
reboot)でメモリの特定の部分がオペレーティン
グシステムに対して専用にされるためである。主要メモ
リにおける残余の空間はユーザによって動作されるべき
1つのプロセス(たとえばワード処理プログラムまたは
部品言語「テーブル形」)に専用である。
ることしかできない小さなコンピュータシステムは第1
A図に例示されるようなメモリ管理システムを必要とし
ない。これはシステムのパワーアップまたはリブート(
reboot)でメモリの特定の部分がオペレーティン
グシステムに対して専用にされるためである。主要メモ
リにおける残余の空間はユーザによって動作されるべき
1つのプロセス(たとえばワード処理プログラムまたは
部品言語「テーブル形」)に専用である。
また、同時にいくつかのプロセスを扱うコンピュータシ
ステムは一人のユーザまたは多数のユーザにとっても扱
われるべき各プロセスに対してメモリ空間を割当てなく
てはならない。
ステムは一人のユーザまたは多数のユーザにとっても扱
われるべき各プロセスに対してメモリ空間を割当てなく
てはならない。
いくつかのプロセスのためにメモリ容量を提供する1つ
のアプローチはコンピュータシステムによって取扱われ
るべき各個々のプロセスにメモリの1つのセクションを
専用にすることである。このアプローチは一般に非常に
非効率であって、なぜなら主要メモリの変えることがで
きない量の空間が長い時間期間の間主要メモリ内の専用
空間を用いるプロセスは多くなくても各プロセスに専用
にしなくてはならないからである。
のアプローチはコンピュータシステムによって取扱われ
るべき各個々のプロセスにメモリの1つのセクションを
専用にすることである。このアプローチは一般に非常に
非効率であって、なぜなら主要メモリの変えることがで
きない量の空間が長い時間期間の間主要メモリ内の専用
空間を用いるプロセスは多くなくても各プロセスに専用
にしなくてはならないからである。
こうして、多数のプロセスを扱うコンピュータシステム
において主要メモリを効果的に利用するというのはメモ
リ管理システムがコンピュータシステム内に含まれると
いうことを必要とする。第1A図に例示されるこの発明
の実施例はコンピュータシステムが同時に多数のプロセ
スを扱いながら主要メモリ空間を効果的に利用すること
を可能にするために第1図に例示されるコンピュータシ
ステムに組込まれてもよい。
において主要メモリを効果的に利用するというのはメモ
リ管理システムがコンピュータシステム内に含まれると
いうことを必要とする。第1A図に例示されるこの発明
の実施例はコンピュータシステムが同時に多数のプロセ
スを扱いながら主要メモリ空間を効果的に利用すること
を可能にするために第1図に例示されるコンピュータシ
ステムに組込まれてもよい。
第1A図に例示される実施例の動作の間、論理アドレス
は論理アドレスバス10上に置かれる。
は論理アドレスバス10上に置かれる。
論理アドレスはCPUl0を含む任意の論理アドレス発
生デバイスによって発生されてもよい。
生デバイスによって発生されてもよい。
以前に入手可能なメモリ管理システムにおいては、各プ
ロセスは翻訳メモリエントリの1グループ(そのアドレ
スは第1A図で一般に134で表わされる)に割当てら
れる。たとえば、第1A図に例示される実施例では、各
翻訳メモリエントリは主要メモリ24において2キロバ
イトのページを示す。1ページのデータをストアする主
要メモリの位置は一般に「フレーム」と呼ばれる。こう
して、16,384+ o (下付きの数字はその数
字が前進数であるかを示す)個のエントリを有しかつ最
初に4個のプロセスに対してメモリ空間を必要とする翻
訳メモリを組込む先行技術のメモリ管理システムにおい
て、メモリ管理システムはエントリ0ないし4095を
プロセス番号1に、エントリ4096ないし8191を
プロセス番号2に、エントリ8192ないし12,28
7をプロセス番号3にそしてエントリ12,288ない
し16.383をプロセス番号4に割当てるであろう。
ロセスは翻訳メモリエントリの1グループ(そのアドレ
スは第1A図で一般に134で表わされる)に割当てら
れる。たとえば、第1A図に例示される実施例では、各
翻訳メモリエントリは主要メモリ24において2キロバ
イトのページを示す。1ページのデータをストアする主
要メモリの位置は一般に「フレーム」と呼ばれる。こう
して、16,384+ o (下付きの数字はその数
字が前進数であるかを示す)個のエントリを有しかつ最
初に4個のプロセスに対してメモリ空間を必要とする翻
訳メモリを組込む先行技術のメモリ管理システムにおい
て、メモリ管理システムはエントリ0ないし4095を
プロセス番号1に、エントリ4096ないし8191を
プロセス番号2に、エントリ8192ないし12,28
7をプロセス番号3にそしてエントリ12,288ない
し16.383をプロセス番号4に割当てるであろう。
現在の具体例では、各プロセスには各翻訳メモリエント
リ134が2キロバイトのメモリのページを示すとして
、主要メモリ空間の8,388゜608バイト(一般に
8メガバイトと言われる)が与えられるであろう。しか
しながら、このアプローチを利用することは一般に非常
に非効率である。
リ134が2キロバイトのメモリのページを示すとして
、主要メモリ空間の8,388゜608バイト(一般に
8メガバイトと言われる)が与えられるであろう。しか
しながら、このアプローチを利用することは一般に非常
に非効率である。
第1に、多くのプロセスは8メガバイトの主要メモリよ
りずっと少なくしか必要としない。たとえば、多くのプ
ロセスは効果的に動作するために任意の時点で256キ
ロバイト、128キロバイト、64キロバイトまたはそ
れより少ない主要メモリにおける空間を必要とする。反
対に、効果的な動作のために8メガバイトより多い主要
メモリを必要とするプロセス(しばしば「数字を砕くも
の(number crunc’hers)Jと呼ば
れる)があるかもしれない。こうして、以前に入手可能
なメモリ管理システムは主要メモリ空間を非能率的に使
用しており、なぜならあまりに多い主要メモリ空間が(
すなわち、あまりに多数の翻訳メモリエントリが)プロ
セスに割当てられるプロセスがある一方で、十分でない
主要メモリ空間が割当てられている他のプロセスがある
からである。
りずっと少なくしか必要としない。たとえば、多くのプ
ロセスは効果的に動作するために任意の時点で256キ
ロバイト、128キロバイト、64キロバイトまたはそ
れより少ない主要メモリにおける空間を必要とする。反
対に、効果的な動作のために8メガバイトより多い主要
メモリを必要とするプロセス(しばしば「数字を砕くも
の(number crunc’hers)Jと呼ば
れる)があるかもしれない。こうして、以前に入手可能
なメモリ管理システムは主要メモリ空間を非能率的に使
用しており、なぜならあまりに多い主要メモリ空間が(
すなわち、あまりに多数の翻訳メモリエントリが)プロ
セスに割当てられるプロセスがある一方で、十分でない
主要メモリ空間が割当てられている他のプロセスがある
からである。
さらに、大きなプロセスは割当てられるよりも大きいメ
モリ空間を必要とするので、メモリにおけるページが主
要メモリと2次記憶装置の間を移動しなくてはならない
ときページフォルトが連続的に発生する。また、個々の
プロセスに割当てられるかもしれないもっとも小さなエ
ントリのグループは、たとえばプロセス番号5のような
付加のプロセスが主要メモリにおいて空間を必要とする
とき4096であるので、プロセス番号工ないし4のう
ちの1つに割当てられるメモリ空間はプロセス番号5に
与えられなくてはならない。これは各プロセスに割当て
られる8メガバイトのメモリのうちプロセス番号1ない
し3が各々256キロバイトしか必要としなくてもあて
はまる。こうして、以前入手可能なメモリ管理システム
において、ページフォルトは時々はぼ連続的に発生しか
つ顕著でかついらいらする動作上の遅延がデータのペー
ジが主要メモリと2次記憶装置の間を移動するとコンビ
二一タシテムのユーザによって経験される。7 この発明は以前に人手可能であったメモリ管理シテムに
おける制限および困難さを克服する。この発明は各プロ
セスは異なる大きさのグループの翻訳メモリエントリを
割当てられてもよいということを規定する。こうして、
上で述べられた具体例を続行すると、この発明に関して
プロセス番号工ないし3は各々128個の翻訳メモリエ
ントリ(Oないし127.128ないし255、および
256ないし383からグループ分けされる)が割当て
られてもよく、これはプロセス番号工ないし3の各々に
256キロバイトの主要メモリ24内の空間(128ペ
ージ)を与えるであろう。
モリ空間を必要とするので、メモリにおけるページが主
要メモリと2次記憶装置の間を移動しなくてはならない
ときページフォルトが連続的に発生する。また、個々の
プロセスに割当てられるかもしれないもっとも小さなエ
ントリのグループは、たとえばプロセス番号5のような
付加のプロセスが主要メモリにおいて空間を必要とする
とき4096であるので、プロセス番号工ないし4のう
ちの1つに割当てられるメモリ空間はプロセス番号5に
与えられなくてはならない。これは各プロセスに割当て
られる8メガバイトのメモリのうちプロセス番号1ない
し3が各々256キロバイトしか必要としなくてもあて
はまる。こうして、以前入手可能なメモリ管理システム
において、ページフォルトは時々はぼ連続的に発生しか
つ顕著でかついらいらする動作上の遅延がデータのペー
ジが主要メモリと2次記憶装置の間を移動するとコンビ
二一タシテムのユーザによって経験される。7 この発明は以前に人手可能であったメモリ管理シテムに
おける制限および困難さを克服する。この発明は各プロ
セスは異なる大きさのグループの翻訳メモリエントリを
割当てられてもよいということを規定する。こうして、
上で述べられた具体例を続行すると、この発明に関して
プロセス番号工ないし3は各々128個の翻訳メモリエ
ントリ(Oないし127.128ないし255、および
256ないし383からグループ分けされる)が割当て
られてもよく、これはプロセス番号工ないし3の各々に
256キロバイトの主要メモリ24内の空間(128ペ
ージ)を与えるであろう。
重要なことに、プロセス番号1ないし3には384個の
翻訳メモリエントリのみが割当てられているので、プロ
セス番号4には主要メモリにおいて16メガバイトまで
マツピング動作する8、192個までのエントリが割当
てられてもよい。また、プロセス番号4で利用可能なメ
モリ空間を増加するのではなく、多数の小さなプロセス
に主要メモリ24における空間が割当てられることがで
きる。第1A図に例示される実施例はこの発明を実施す
るために用いられる特定のこの発明の概念を強調してい
る。
翻訳メモリエントリのみが割当てられているので、プロ
セス番号4には主要メモリにおいて16メガバイトまで
マツピング動作する8、192個までのエントリが割当
てられてもよい。また、プロセス番号4で利用可能なメ
モリ空間を増加するのではなく、多数の小さなプロセス
に主要メモリ24における空間が割当てられることがで
きる。第1A図に例示される実施例はこの発明を実施す
るために用いられる特定のこの発明の概念を強調してい
る。
述べられるように、論理アドレスは論理アドレス発生デ
バイス10から論理アドレスバス12上に置かれる。次
に翻訳メモリアドレスマルチプレクサ130は論理アド
レスバス12およびグループ位置レジスタ122とグル
ープサイズレジスタ126内のビットパターンに従って
16,384個の翻訳メモリエントリ134のうち1つ
を選択するように機能する。
バイス10から論理アドレスバス12上に置かれる。次
に翻訳メモリアドレスマルチプレクサ130は論理アド
レスバス12およびグループ位置レジスタ122とグル
ープサイズレジスタ126内のビットパターンに従って
16,384個の翻訳メモリエントリ134のうち1つ
を選択するように機能する。
マスクレジスタとも呼ばれるグループサイズレジスタ1
26はいくつの翻訳メモリエントリがフンピユータシス
テムにおいて現在活性状態のプロセスに割当てられるか
を決定する。ベースレジスタとも呼ばれるグループ位置
レジスタ122は翻訳メモリ136内のどこに(すなわ
ちベース位置)翻訳メモリエントリの特定のグループが
置かれるかを決定する。
26はいくつの翻訳メモリエントリがフンピユータシス
テムにおいて現在活性状態のプロセスに割当てられるか
を決定する。ベースレジスタとも呼ばれるグループ位置
レジスタ122は翻訳メモリ136内のどこに(すなわ
ちベース位置)翻訳メモリエントリの特定のグループが
置かれるかを決定する。
動作において、コンピュータシステム管理ソフトウェア
がたとえばプロセス番号1を活性状態にすると、適切な
ビットパターンがグループサイズレジスタ126にロー
ドされるであろう。また、適当なビットパターンがグル
ープ位置レジスタ122にロードされる。次に、翻訳メ
モリアドレスマルチプレクサ130に翻訳メモリエンド
リグルーブサイズとグループの位置を決定するのに必要
な情報が与えられる。翻訳メモリアドレスマルチプレク
サ130は次に論理アドレスバス12上のビットパター
ンを利用してグループサイズレジスタ126およびグル
ープ位置レジスタ122にロードされたビットパターン
によって以前に規定されたグループの中から1つの翻訳
メモリエントリを選択する。
がたとえばプロセス番号1を活性状態にすると、適切な
ビットパターンがグループサイズレジスタ126にロー
ドされるであろう。また、適当なビットパターンがグル
ープ位置レジスタ122にロードされる。次に、翻訳メ
モリアドレスマルチプレクサ130に翻訳メモリエンド
リグルーブサイズとグループの位置を決定するのに必要
な情報が与えられる。翻訳メモリアドレスマルチプレク
サ130は次に論理アドレスバス12上のビットパター
ンを利用してグループサイズレジスタ126およびグル
ープ位置レジスタ122にロードされたビットパターン
によって以前に規定されたグループの中から1つの翻訳
メモリエントリを選択する。
一旦適当な翻訳メモリエントリが選択されると、選択さ
れた翻訳メモリエントリ内で発見されるビットパターン
は物理アドレスバス22上に置かれる。選択された翻訳
メモリエントリからのビットパターンは最上位ビットの
物理アドレスを形成し、これは主要メモリ24内の1フ
レームのアドレスを示す。データのページまたはフレー
ム内の位置を表わすオフセットアドレスバス14上のビ
ットパターンは、物理アドレスバス上に置かれて最下位
部分の物理アドレスを形成する。連結された翻訳メモリ
エントリビットパターンおよびオフセットアドレスバス
ビットパターンは物理アドレス可能メモリ24に提示さ
れ、次に主要メモリ24内のアドレスされた位置にアク
セスする。
れた翻訳メモリエントリ内で発見されるビットパターン
は物理アドレスバス22上に置かれる。選択された翻訳
メモリエントリからのビットパターンは最上位ビットの
物理アドレスを形成し、これは主要メモリ24内の1フ
レームのアドレスを示す。データのページまたはフレー
ム内の位置を表わすオフセットアドレスバス14上のビ
ットパターンは、物理アドレスバス上に置かれて最下位
部分の物理アドレスを形成する。連結された翻訳メモリ
エントリビットパターンおよびオフセットアドレスバス
ビットパターンは物理アドレス可能メモリ24に提示さ
れ、次に主要メモリ24内のアドレスされた位置にアク
セスする。
当業者はいくつかのタスクがコンピュータシステム管理
ソフトウェアまたはオペレーティングシステムによって
実行されなくてはならずかつ多くの現存するオペレーテ
ィングシステムはこれらのタスクをするために修正され
るかもしれないということを容易に認めるであろう。た
とえば、コンピュータシステム管理ソフトウェアはグル
ープ位置レジスタ122およびグループサイズレジスタ
126を適切にロードしなくてはならないことが認めら
れるであろう。コンピュータシステム管理ソフトウェア
に割当てられる他のタスクは第1A図の点線28で表わ
される、翻訳メモリ136に適当な値をロードすること
である。当業者は、グループのサイズをソフトウェアの
制御以下にすれば最大の融通性が提供されることを認め
るであろうが、なぜなら翻訳メモリ136の仕切りを再
度形成するのにいかなるハードウェアの変化も必要でな
いからである。
ソフトウェアまたはオペレーティングシステムによって
実行されなくてはならずかつ多くの現存するオペレーテ
ィングシステムはこれらのタスクをするために修正され
るかもしれないということを容易に認めるであろう。た
とえば、コンピュータシステム管理ソフトウェアはグル
ープ位置レジスタ122およびグループサイズレジスタ
126を適切にロードしなくてはならないことが認めら
れるであろう。コンピュータシステム管理ソフトウェア
に割当てられる他のタスクは第1A図の点線28で表わ
される、翻訳メモリ136に適当な値をロードすること
である。当業者は、グループのサイズをソフトウェアの
制御以下にすれば最大の融通性が提供されることを認め
るであろうが、なぜなら翻訳メモリ136の仕切りを再
度形成するのにいかなるハードウェアの変化も必要でな
いからである。
どのステップがコンピュータシステム管理ソフトウェア
、たとえばオペレーティングシステムによって実行され
なくてはならないかを明らかに示すために、第1B図の
フローチャートが提供される。第1B図に例示されるス
テップは多くの現存のオペレーティングシステムに容易
に組込まれるであろうことが認められるであろう。
、たとえばオペレーティングシステムによって実行され
なくてはならないかを明らかに示すために、第1B図の
フローチャートが提供される。第1B図に例示されるス
テップは多くの現存のオペレーティングシステムに容易
に組込まれるであろうことが認められるであろう。
第1B図のフローチャートにおいて、150で示される
「開始」と示されるのはこの発明を組込むコンピュータ
システムがパワーオンされるかまたはリブートされる時
を表わしている。実行されなくてはならない最初のステ
ップは152と印が付けられたところに表わされている
ように、入手可能なグループリストを初期設定すること
である。
「開始」と示されるのはこの発明を組込むコンピュータ
システムがパワーオンされるかまたはリブートされる時
を表わしている。実行されなくてはならない最初のステ
ップは152と印が付けられたところに表わされている
ように、入手可能なグループリストを初期設定すること
である。
いかなる翻訳メモリエントリもまだプロセスに割当てら
れていないので、入手可能なグループのリストにはすべ
ての翻訳メモリエントリが含まれる。
れていないので、入手可能なグループのリストにはすべ
ての翻訳メモリエントリが含まれる。
コンピュータシステムが動作を始めると、プロセスがユ
ーザによって呼出されるであろう。こうして、次のステ
ップは154で表わされるように実行されるべきプロセ
スを識別することである。
ーザによって呼出されるであろう。こうして、次のステ
ップは154で表わされるように実行されるべきプロセ
スを識別することである。
次に、156で示されるように、プロセスのためにメモ
リに必要なバイトの数が入力されることが必要である。
リに必要なバイトの数が入力されることが必要である。
この情報はユーザからまたはプロセスのためのコードに
含まれるデータやシステム管理ソフトウェアによって割
当てられる省略値から受取られる。−旦主要メモリで必
要とされるバイトの数が知られると、プロセスに割当て
られるべき翻訳テーブルエントリの数が簡単に計算でき
る。
含まれるデータやシステム管理ソフトウェアによって割
当てられる省略値から受取られる。−旦主要メモリで必
要とされるバイトの数が知られると、プロセスに割当て
られるべき翻訳テーブルエントリの数が簡単に計算でき
る。
割当てられるべき翻訳テーブルエントリの数が一旦計算
されると、翻訳テーブルグループの割当てを決定するた
めのサブルーチンが第1B図の158で示されるように
実行される。そのような割当サブルーチンの典型的な具
体例は本出願に付加されかつ引用により援用されている
付録に含まれる。付録のソースコードは「C」のプログ
ラミング言語で書かれかつここで引用により援用されて
いる「コンピュータプログラミングの技法、第1巻基本
的アルゴリズム(The Art ofCompu
ter Programming、Volume
I Fundamental Algor i t
hms)(1973)Jのクヌースドナルド E (K
nuth、Donald E、)による出版物におい
て見られるアルゴリズムに基づいている。
されると、翻訳テーブルグループの割当てを決定するた
めのサブルーチンが第1B図の158で示されるように
実行される。そのような割当サブルーチンの典型的な具
体例は本出願に付加されかつ引用により援用されている
付録に含まれる。付録のソースコードは「C」のプログ
ラミング言語で書かれかつここで引用により援用されて
いる「コンピュータプログラミングの技法、第1巻基本
的アルゴリズム(The Art ofCompu
ter Programming、Volume
I Fundamental Algor i t
hms)(1973)Jのクヌースドナルド E (K
nuth、Donald E、)による出版物におい
て見られるアルゴリズムに基づいている。
162で示されているようにそのプロセスを収容するの
に十分な大きさの利用可能なエントリのグループが存在
しなかったときのようにもしその割当が失敗に終わった
なら、そのプロセスは適切な大きさのグループが164
で示されるように入手可能になるまで非活性状態のまま
である。プロセスが終了するかまたは中断するとグルー
プが入手可能となりかつ「自由な」エントリのグループ
が入手可能なグループリストに再び加えられる。
に十分な大きさの利用可能なエントリのグループが存在
しなかったときのようにもしその割当が失敗に終わった
なら、そのプロセスは適切な大きさのグループが164
で示されるように入手可能になるまで非活性状態のまま
である。プロセスが終了するかまたは中断するとグルー
プが入手可能となりかつ「自由な」エントリのグループ
が入手可能なグループリストに再び加えられる。
166で示されるようにもしその割当が成功に終わるな
ら、次にグループの大きさはグループサイズレジスタに
ロードされるビットパターンに変換される。プロセスの
ためのグループサイズビットパターンはまた168で示
されるように後の使用のためにメモリ内に保管される。
ら、次にグループの大きさはグループサイズレジスタに
ロードされるビットパターンに変換される。プロセスの
ためのグループサイズビットパターンはまた168で示
されるように後の使用のためにメモリ内に保管される。
割当サブルーチンはまた翻訳メモリ内でグループの位置
を決定する。こうして、グループの開始アドレスはビッ
トパターンとしてグループ位置レジスタにロードされ(
170)かつプロセスのためのグループ位置ビットパタ
ーンはまた172で示されるように後の使用のためにメ
モリに保管される。
を決定する。こうして、グループの開始アドレスはビッ
トパターンとしてグループ位置レジスタにロードされ(
170)かつプロセスのためのグループ位置ビットパタ
ーンはまた172で示されるように後の使用のためにメ
モリに保管される。
割当てられた翻訳メモリエントリおよび適切なビットパ
ターンが一旦グループサイズレジスタおよびグループ位
置レジスタにロードされてしまうと、メモリ管理システ
ムのプロセスおよび動作の実行は第1B図の174で示
されるように、プロセスの実行およびメモリ管理システ
ムの動作が始まってもよい。もし「新しい」プロセス(
すなわち、以前に割当てられていないプロセス)がある
なら、「A」および153で示される部分と176で示
される部分との間に発生するステップが再び実行される
。もし新しいプロセスがないなら、一般に178で示さ
れるもう一方のrNOJが選択される。
ターンが一旦グループサイズレジスタおよびグループ位
置レジスタにロードされてしまうと、メモリ管理システ
ムのプロセスおよび動作の実行は第1B図の174で示
されるように、プロセスの実行およびメモリ管理システ
ムの動作が始まってもよい。もし「新しい」プロセス(
すなわち、以前に割当てられていないプロセス)がある
なら、「A」および153で示される部分と176で示
される部分との間に発生するステップが再び実行される
。もし新しいプロセスがないなら、一般に178で示さ
れるもう一方のrNOJが選択される。
翻訳メモリエントリの割当てを必要とする新しいプロセ
スがないと、任意の用いられていないエントリの割当て
を解除することが必要である。第1B図の182で示さ
れるように、終了した任意のプロセスは186で示され
る割当て解除サブルーチンの実行を引き起こすことによ
って割当てが解除される。上述のクヌースの参照で述べ
られた割当て解除サブルーチンを実現するソースコード
の具体例はまた添付の付録に含まれている。
スがないと、任意の用いられていないエントリの割当て
を解除することが必要である。第1B図の182で示さ
れるように、終了した任意のプロセスは186で示され
る割当て解除サブルーチンの実行を引き起こすことによ
って割当てが解除される。上述のクヌースの参照で述べ
られた割当て解除サブルーチンを実現するソースコード
の具体例はまた添付の付録に含まれている。
割当て解除サブルーチンから戻った後またはもし184
で示されるrNOJが示されていかなるプロセスも終了
されていなかったなら、以前に翻訳メモリエントリが割
当てられたいくつかのプロセスが188で示されるよう
に呼出されたかどうかを決定する必要がある。190で
示される「NO」で示されるようにもしそうでないなら
、176で示されるステップにループバックする。もし
「以前に割当てられた」プロセスが呼出されるなら、グ
ループサイズビットパターンが検索されかつグループサ
イズレジスタにロードされ(192のステップで表わさ
れる)、かつグループ位置ビットパターンが検索されて
グループ位置レジスタにロードされる(194で示され
るステップ)。
で示されるrNOJが示されていかなるプロセスも終了
されていなかったなら、以前に翻訳メモリエントリが割
当てられたいくつかのプロセスが188で示されるよう
に呼出されたかどうかを決定する必要がある。190で
示される「NO」で示されるようにもしそうでないなら
、176で示されるステップにループバックする。もし
「以前に割当てられた」プロセスが呼出されるなら、グ
ループサイズビットパターンが検索されかつグループサ
イズレジスタにロードされ(192のステップで表わさ
れる)、かつグループ位置ビットパターンが検索されて
グループ位置レジスタにロードされる(194で示され
るステップ)。
グループサイズレジスタおよびグループ位置レジスタが
適切にロードされると、呼出されたプロセスの実行が始
まってもよくかつメモリ管理システムは動作を始める(
第1B図の196で示される)。実行は176で示され
るステップに戻ってもよくかつループはシステムがパワ
ーダウンナなわちリブートされるまで続けられる。
適切にロードされると、呼出されたプロセスの実行が始
まってもよくかつメモリ管理システムは動作を始める(
第1B図の196で示される)。実行は176で示され
るステップに戻ってもよくかつループはシステムがパワ
ーダウンナなわちリブートされるまで続けられる。
示
第2図を参照すると、この発明のメモリ管理システムの
ための現在好ましい配列を概略的に示すブロック図が示
される。第2図に例示される実施例はモトローラMC6
8020マイクロプロセツサを利用してコンピュータシ
ステムに組込まれることが意図される。MC68020
マイクロプロセツサに関する完全な情報はここで引用に
より援用される、プレンティス ホール(Prenti
ce−Hall)出版社から入手可能な「MC6802
0の32ビットマイクロプロセツサのユーザマニュアル
」と題される2d、Ed、 (1985)の出版物に
おいて見つけることができる。
ための現在好ましい配列を概略的に示すブロック図が示
される。第2図に例示される実施例はモトローラMC6
8020マイクロプロセツサを利用してコンピュータシ
ステムに組込まれることが意図される。MC68020
マイクロプロセツサに関する完全な情報はここで引用に
より援用される、プレンティス ホール(Prenti
ce−Hall)出版社から入手可能な「MC6802
0の32ビットマイクロプロセツサのユーザマニュアル
」と題される2d、Ed、 (1985)の出版物に
おいて見つけることができる。
さらに、このメモリ管理システムは第1図の主要メモリ
24または他のアドレス可能デバイスが高速で動作する
ことができるときにのみ完全に利用できるというのが認
められるであろう。この発明とともに利用するのに特に
よく適した高速の主要メモリはここで引用により援用さ
れる、「スタティックフレームディジタルメモリ(ST
ATICFRAME DIGITAL MEMOR
Y)」と題されるこれと共に現在出願された同時係属中
の米国特許出願連続番号第 に記述されてい
る。
24または他のアドレス可能デバイスが高速で動作する
ことができるときにのみ完全に利用できるというのが認
められるであろう。この発明とともに利用するのに特に
よく適した高速の主要メモリはここで引用により援用さ
れる、「スタティックフレームディジタルメモリ(ST
ATICFRAME DIGITAL MEMOR
Y)」と題されるこれと共に現在出願された同時係属中
の米国特許出願連続番号第 に記述されてい
る。
以前に説明されたように、CPUによるデータの要求は
論理アドレスによって識別される。第2図では、現在好
ましい実施例の論理アドレスは一般に102で示される
ブロックによって表わされる。第2図でわかるように、
論理アドレスは32ビットワードを含む。しかしながら
、この発明は任意の数のビットからなるワードを利用し
てコンピュータシステムで応用できることが認められる
であろう。
論理アドレスによって識別される。第2図では、現在好
ましい実施例の論理アドレスは一般に102で示される
ブロックによって表わされる。第2図でわかるように、
論理アドレスは32ビットワードを含む。しかしながら
、この発明は任意の数のビットからなるワードを利用し
てコンピュータシステムで応用できることが認められる
であろう。
第2図では、論理アドレスブロック102が32個の増
分にされて各々1ビットを示す。こうして、AOで示さ
れる増分は論理アドレス102の最下位ビットを表わし
、一方でA31で記される増分は論理アドレス102の
最上位ビットを表わす。
分にされて各々1ビットを示す。こうして、AOで示さ
れる増分は論理アドレス102の最下位ビットを表わし
、一方でA31で記される増分は論理アドレス102の
最上位ビットを表わす。
この発明に従えば、論理アドレスは種々のフィールドに
分けられ、各フィールドは特定の機能を果たしかつ特定
の情報を提供する。現在好ましい実施例では、論理アド
レスはオフセットフィールド(一般に104で示される
)と、ページフィールド(一般に106で示される)と
、ボリュームベージフィールド(一般に108で示され
る)と、ボリュームフィールド(一般に110で示され
る)と、システムフィールド(一般に112で示される
)とに分けられる。これらのフィールドの各々の機能お
よびそれによって与えられる情報は以下で説明される。
分けられ、各フィールドは特定の機能を果たしかつ特定
の情報を提供する。現在好ましい実施例では、論理アド
レスはオフセットフィールド(一般に104で示される
)と、ページフィールド(一般に106で示される)と
、ボリュームベージフィールド(一般に108で示され
る)と、ボリュームフィールド(一般に110で示され
る)と、システムフィールド(一般に112で示される
)とに分けられる。これらのフィールドの各々の機能お
よびそれによって与えられる情報は以下で説明される。
この発明の現在好ましい実施例の重要な要素は第2図に
示される一般に136で示される翻訳メモリと呼ばれる
メモリの配置である。翻訳メモリは2個の翻訳テーブル
136Aおよび136Bを含む。「翻訳テーブル」とい
う言葉が取入れられるのは、実際に翻訳メモリはプリン
トされたべ−ジ上で発見されるかもしれないデータのテ
ーブルとして最も簡単に概念化されてもよいからである
。
示される一般に136で示される翻訳メモリと呼ばれる
メモリの配置である。翻訳メモリは2個の翻訳テーブル
136Aおよび136Bを含む。「翻訳テーブル」とい
う言葉が取入れられるのは、実際に翻訳メモリはプリン
トされたべ−ジ上で発見されるかもしれないデータのテ
ーブルとして最も簡単に概念化されてもよいからである
。
しかしながら、翻訳メモリの回路実現比例内のデータビ
ットの実際の位置は「テーブル配置」を真似ていないか
もしれない。けれども、翻訳「テーブル」の概念はこの
発明の詳細な説明するのに最も役立つ。
ットの実際の位置は「テーブル配置」を真似ていないか
もしれない。けれども、翻訳「テーブル」の概念はこの
発明の詳細な説明するのに最も役立つ。
さらに、この発明に従って内容アドレス可能メモリ(C
AM)を利用するなどして多くの異なる翻訳メモリ構造
を利用することが可能であるかもしれないということが
認められるべきである。CAMSのようなデバイスおよ
び他のデバイスおよび翻訳メモリとして利用するのに適
している構造がこの発明で利用されてもよいことが予想
される。
AM)を利用するなどして多くの異なる翻訳メモリ構造
を利用することが可能であるかもしれないということが
認められるべきである。CAMSのようなデバイスおよ
び他のデバイスおよび翻訳メモリとして利用するのに適
している構造がこの発明で利用されてもよいことが予想
される。
第2図に例示される現在好ましい実施例では、翻訳メモ
リは2個の翻訳テーブル、すなわち136Aで示される
テーブルAと一般に136Bで示されるテーブルBとを
含む。以上の説明から、現在好ましい実施例は当該技術
分野において「2ウェイセット連想翻訳メモリ」で知ら
れるものを組込むことが認められるであろう。
リは2個の翻訳テーブル、すなわち136Aで示される
テーブルAと一般に136Bで示されるテーブルBとを
含む。以上の説明から、現在好ましい実施例は当該技術
分野において「2ウェイセット連想翻訳メモリ」で知ら
れるものを組込むことが認められるであろう。
また、翻訳メモリ136の回路実現化例は多くの異なる
形式をとってもよいことが認められる、その1つはこの
開示でより詳細に後に説明されるであろう。さらに、翻
訳メモリは1つの翻訳テーブルかまたは多くの翻訳テー
ブルを組込んでもよいことが認められるであろう。しか
しながら、現在好ましい実施例では、2ウエイ翻訳メモ
リ、すなわち翻訳メモリ内の2個の翻訳テーブルは付加
的なメモリを提供する費用に対してバランスがとれると
、素晴らしい性能を発揮することが発見されている。
形式をとってもよいことが認められる、その1つはこの
開示でより詳細に後に説明されるであろう。さらに、翻
訳メモリは1つの翻訳テーブルかまたは多くの翻訳テー
ブルを組込んでもよいことが認められるであろう。しか
しながら、現在好ましい実施例では、2ウエイ翻訳メモ
リ、すなわち翻訳メモリ内の2個の翻訳テーブルは付加
的なメモリを提供する費用に対してバランスがとれると
、素晴らしい性能を発揮することが発見されている。
この発明の目的はメモリアクセスがCPUによって許容
される最小の時間期間内に発生することを可能にするこ
とであるので、翻訳メモリは非常に迅速にアクセスされ
る型であることが所望される。たとえば、MC6802
0マイクロプロセツサを利用すると、この時間は好まし
くは30ナノ秒より少ない。
される最小の時間期間内に発生することを可能にするこ
とであるので、翻訳メモリは非常に迅速にアクセスされ
る型であることが所望される。たとえば、MC6802
0マイクロプロセツサを利用すると、この時間は好まし
くは30ナノ秒より少ない。
現在好ましい実施例では、翻訳メモリはこの開示では後
に詳細に説明されるであろう当該技術分野においてはス
タティックランダムアクセスメモリ(SRAM)と一般
に呼ばれるデバイスの型からなる。しかしながら、現在
入手可能であるかまたは将来に入手可能になるであろう
メモリデバイスの他の型がまたこの発明とともに利用す
るために適合されてもよい。
に詳細に説明されるであろう当該技術分野においてはス
タティックランダムアクセスメモリ(SRAM)と一般
に呼ばれるデバイスの型からなる。しかしながら、現在
入手可能であるかまたは将来に入手可能になるであろう
メモリデバイスの他の型がまたこの発明とともに利用す
るために適合されてもよい。
第2図に示されるように、現在好ましい実施例における
各翻訳テーブル136Aおよび136Bには16,38
4個のエントリが設けられ、各エントリは32ビットワ
ードを含む。両方の翻訳テーブル136Aおよび136
Bにおけるエントリは一つの翻訳メモリアドレスが提示
されると同時にアクセスされる。エントリのセットまた
は対に対応する数個の翻訳メモリアドレスは一般に13
4で表わされる0、1.2.3・・・16,381.1
6.382.16,383で示される縦の増分によって
表わされる。
各翻訳テーブル136Aおよび136Bには16,38
4個のエントリが設けられ、各エントリは32ビットワ
ードを含む。両方の翻訳テーブル136Aおよび136
Bにおけるエントリは一つの翻訳メモリアドレスが提示
されると同時にアクセスされる。エントリのセットまた
は対に対応する数個の翻訳メモリアドレスは一般に13
4で表わされる0、1.2.3・・・16,381.1
6.382.16,383で示される縦の増分によって
表わされる。
この開示を通しておよび前掲の特許請求の範囲において
「エントリ」という言葉は現在好ましい実施例において
1対のエントリを示すために用いられることに注目すべ
きである。しかしながら、この開示および前掲の特許請
求の範囲をより明らかにするために、かつNウェイセッ
ト連想翻訳メモリでは1つのエントリをアドレスするこ
とはまたセットの中の他のエントリもすべてアドレスす
るので、「エントリ」という言葉は同等の構造であると
同様に、Nウェイ翻訳メモリにおける「エントリの組」
または2ウエイ翻訳メモリにおける「エントリの対」の
意味であることが意図されると理解して用いられるであ
ろう。
「エントリ」という言葉は現在好ましい実施例において
1対のエントリを示すために用いられることに注目すべ
きである。しかしながら、この開示および前掲の特許請
求の範囲をより明らかにするために、かつNウェイセッ
ト連想翻訳メモリでは1つのエントリをアドレスするこ
とはまたセットの中の他のエントリもすべてアドレスす
るので、「エントリ」という言葉は同等の構造であると
同様に、Nウェイ翻訳メモリにおける「エントリの組」
または2ウエイ翻訳メモリにおける「エントリの対」の
意味であることが意図されると理解して用いられるであ
ろう。
14ビットの翻訳テーブルアドレスが翻訳テーブル13
6Aおよび136Bにおける任意の対の16.384個
のエントリを独自に識別するのに十分であるということ
をこの点で気付くことは役立つであろう。翻訳メモリ内
の翻訳テーブルの数と同様、翻訳テーブル136Aおよ
び136Bのエントリの数は第2図に例示される数より
大きいかまたは少ないであろうことが認められるべきで
ある。費用の面での制限やシステム機能の要求およびコ
ンピュータシステムにおける物理的な空間の利用の可能
性といったことを考慮することによって各翻訳テーブル
内に設けられるエントリの数が決定されるだろう。
6Aおよび136Bにおける任意の対の16.384個
のエントリを独自に識別するのに十分であるということ
をこの点で気付くことは役立つであろう。翻訳メモリ内
の翻訳テーブルの数と同様、翻訳テーブル136Aおよ
び136Bのエントリの数は第2図に例示される数より
大きいかまたは少ないであろうことが認められるべきで
ある。費用の面での制限やシステム機能の要求およびコ
ンピュータシステムにおける物理的な空間の利用の可能
性といったことを考慮することによって各翻訳テーブル
内に設けられるエントリの数が決定されるだろう。
第2図に示されるように、各翻訳テーブルエントリは3
2個の増分にされており、各増分はビットを表わす。ビ
ット0ないし16は第2図で一般に14OAおよび14
0Bで示される各エントリのフレームポインタとして用
いられる。こうして、翻訳テーブルエントリのフレーム
ポインタの最下位ビットおよび最上位ビットはそれぞれ
2図ではFOおよびF16と示される。
2個の増分にされており、各増分はビットを表わす。ビ
ット0ないし16は第2図で一般に14OAおよび14
0Bで示される各エントリのフレームポインタとして用
いられる。こうして、翻訳テーブルエントリのフレーム
ポインタの最下位ビットおよび最上位ビットはそれぞれ
2図ではFOおよびF16と示される。
第2図では一般に138Aおよび138Bで示される各
翻訳テーブルエントリのビットはタグと呼ばれる。こう
して、第2図では、各エントリのタグ部分を含む13ビ
ットのうちの最下位ビットと最上位ビットそれぞれT1
7およびT29と表わされる。各翻訳テーブルエントリ
の残余の2つのビット30および31はビット142A
ないし142Bを有効および保護(V P)ビットとじ
て規定される。
翻訳テーブルエントリのビットはタグと呼ばれる。こう
して、第2図では、各エントリのタグ部分を含む13ビ
ットのうちの最下位ビットと最上位ビットそれぞれT1
7およびT29と表わされる。各翻訳テーブルエントリ
の残余の2つのビット30および31はビット142A
ないし142Bを有効および保護(V P)ビットとじ
て規定される。
当業者によって認められるであろうように、「タグ」と
いう言葉は、その同等性を決定するために他のビットの
グループと後に比較されるであろうビットのシーケンス
を示すためにもともと用いられる。そのようなことは各
翻訳テーブルエントリのタグ内に含まれるビットに関ス
ル。フレームポインタや、タグおよび各翻訳テーブルエ
ントリの有効および保護ビットの機能はさらに下で説明
されるであろう。
いう言葉は、その同等性を決定するために他のビットの
グループと後に比較されるであろうビットのシーケンス
を示すためにもともと用いられる。そのようなことは各
翻訳テーブルエントリのタグ内に含まれるビットに関ス
ル。フレームポインタや、タグおよび各翻訳テーブルエ
ントリの有効および保護ビットの機能はさらに下で説明
されるであろう。
第2図に示されるように、現在好ましい実施例には第1
A図のグループサイズレジスタ126に対応する8ビッ
トマスクレジスタ126(ビットMOないしM7を有す
る)と、第1A図のグループ位置レジスタ122に対応
する8ビットベースレジスタ122(ビットBOないし
B7を有する)とがまた提供されている。マスクレジス
タ126およびベースレジスタ122はブロック130
として識別される翻訳メモリアドレスマルチプレクサと
関連している。
A図のグループサイズレジスタ126に対応する8ビッ
トマスクレジスタ126(ビットMOないしM7を有す
る)と、第1A図のグループ位置レジスタ122に対応
する8ビットベースレジスタ122(ビットBOないし
B7を有する)とがまた提供されている。マスクレジス
タ126およびベースレジスタ122はブロック130
として識別される翻訳メモリアドレスマルチプレクサと
関連している。
第2図にはまた、ブロック148Aおよび148Bで示
される2個のタグ比較器が示されている。
される2個のタグ比較器が示されている。
タグ比較器148Aおよび148Bの各々はそれぞれそ
の対応する翻訳テーブル136Aまたは136Bと関連
している。また、現在好ましい実施例には、ブロック1
50で示されるフレームポインタ/オフセットフィール
ドマルチプレクサが含まれている。
の対応する翻訳テーブル136Aまたは136Bと関連
している。また、現在好ましい実施例には、ブロック1
50で示されるフレームポインタ/オフセットフィール
ドマルチプレクサが含まれている。
以前に識別された機能ブロックのすべての一般的な構造
および機能はここで説明される。第2図に例示された実
施例の実際の回路実現化例の詳細な説明は第6図ないし
第9図に与えられる概略図と関連してこの開示の後に述
べられるであろう。
および機能はここで説明される。第2図に例示された実
施例の実際の回路実現化例の詳細な説明は第6図ないし
第9図に与えられる概略図と関連してこの開示の後に述
べられるであろう。
以前に述べられたように、CPU (第2図では示され
ていない)がメモリセル位置にアクセスすることを所望
するとき、論理アドレスはCPUI:よってメモリ管理
システム18に提示される(第1図参照)。32ビット
ワードによって示される論理アドレスは論理アドレスO
7゜から論理アドレス4,294,967.295+。
ていない)がメモリセル位置にアクセスすることを所望
するとき、論理アドレスはCPUI:よってメモリ管理
システム18に提示される(第1図参照)。32ビット
ワードによって示される論理アドレスは論理アドレスO
7゜から論理アドレス4,294,967.295+。
の範囲にあってもよい。しかしながら、そのような広い
範囲の論理アドレスは滅多にプロセスで必要とされない
ので、論理アドレスビットA30およびA31が論理ア
ドレスを特定する以外の目的で他に置かれてもよい。
範囲の論理アドレスは滅多にプロセスで必要とされない
ので、論理アドレスビットA30およびA31が論理ア
ドレスを特定する以外の目的で他に置かれてもよい。
現在好ましい実施例では、論理アドレスビットA30お
よびA31は主要メモリへのメモリアクセスを行ない、
かつまた他のシステムレベルの機能を実行するためにコ
ンピュータシステム管理ソフトウェアによって用いられ
る。30ビットの(AOないしA29)論理アドレスの
能力で、現在好ましい実施例は1,073,741,8
24、。の論理メモリ位置(1ギガバイト)にアクセス
できる。
よびA31は主要メモリへのメモリアクセスを行ない、
かつまた他のシステムレベルの機能を実行するためにコ
ンピュータシステム管理ソフトウェアによって用いられ
る。30ビットの(AOないしA29)論理アドレスの
能力で、現在好ましい実施例は1,073,741,8
24、。の論理メモリ位置(1ギガバイト)にアクセス
できる。
思い出されるであろうように、コンピュータシステムで
メモリ管理システムを実現するとき、メモリの空間をペ
ージと呼ばれるグループに分割することが一般である。
メモリ管理システムを実現するとき、メモリの空間をペ
ージと呼ばれるグループに分割することが一般である。
物理メモリにおいて、主要メモリか2次メモリのいずれ
であっても、データのページをストアする連続的なメモ
リ位置のグル−ブはフレームと呼ばれる。こうして、各
翻訳エントリ内のビットFOないしF16はフレームポ
インタ140Aおよび140Bと呼ばれるが、その理由
は後にこの開示で明らかになるであろう。
であっても、データのページをストアする連続的なメモ
リ位置のグル−ブはフレームと呼ばれる。こうして、各
翻訳エントリ内のビットFOないしF16はフレームポ
インタ140Aおよび140Bと呼ばれるが、その理由
は後にこの開示で明らかになるであろう。
現在好ましい実施例において、各ページは2048バイ
ト(2キロバイト)を含む。データは1ページの増分に
おいて主要メモリにかつ主要メモリから動く。こうして
、もしCPUが特定のバイトにアクセスすることを所望
し、そのバイトが主要メモリではなく2次記憶装置に置
かれているなら、2次記憶装置から主要メモリにバイト
を含む完全なページを移動させることが必要である。
ト(2キロバイト)を含む。データは1ページの増分に
おいて主要メモリにかつ主要メモリから動く。こうして
、もしCPUが特定のバイトにアクセスすることを所望
し、そのバイトが主要メモリではなく2次記憶装置に置
かれているなら、2次記憶装置から主要メモリにバイト
を含む完全なページを移動させることが必要である。
2キロバイトより大きいかまたは小さいページの大きさ
がこの発明とともに用いられるために選択され得ること
が認められるであろう。しかしながら、ページの長さを
変えることは現在好ましい実施例の修正を必要とするで
あろう。2キロバイトのページのサイズは現在最も好ま
しいページのサイズであるとされている。
がこの発明とともに用いられるために選択され得ること
が認められるであろう。しかしながら、ページの長さを
変えることは現在好ましい実施例の修正を必要とするで
あろう。2キロバイトのページのサイズは現在最も好ま
しいページのサイズであるとされている。
ページ全体のデータが2次記憶装置から主要メモリに動
かされると理解すると、ページ全体が主要メモリに動か
されるだけなので主要メモリの各ページに1つの翻訳テ
ーブルのエントリしか必要とされないことが認められ得
るであろう。しかしながら、翻訳メモリが連想翻訳メモ
リであるという事実により、メモリ管理システムによっ
てアクセスされるかもしれないページの数は翻訳メモリ
内のエントリの数(16,384,。)より大きい。
かされると理解すると、ページ全体が主要メモリに動か
されるだけなので主要メモリの各ページに1つの翻訳テ
ーブルのエントリしか必要とされないことが認められ得
るであろう。しかしながら、翻訳メモリが連想翻訳メモ
リであるという事実により、メモリ管理システムによっ
てアクセスされるかもしれないページの数は翻訳メモリ
内のエントリの数(16,384,。)より大きい。
第2図は論理アドレスのフィールドの各々の特定の機能
を説明するためにさらに参照される。主要メモリおよび
2次記憶装置の両方におけるメモリ空間は2キロバイト
のページに分割されるので、ページ内の注意の位置は1
1ビットのアドレスフィールドによって特定されてもよ
い。オフセットフィールドビットAOないしAIOは任
意の2キロバイトのページ内の任意の特定のメモリ位置
を特定するのに必要な11ビットを提供する。
を説明するためにさらに参照される。主要メモリおよび
2次記憶装置の両方におけるメモリ空間は2キロバイト
のページに分割されるので、ページ内の注意の位置は1
1ビットのアドレスフィールドによって特定されてもよ
い。オフセットフィールドビットAOないしAIOは任
意の2キロバイトのページ内の任意の特定のメモリ位置
を特定するのに必要な11ビットを提供する。
オフセットフィールドは2キロバイトページ内の1つの
位置を特定するのみであるので、オフセットフィールド
はメモリ管理システムによるいかなる翻訳も行なわずか
つ第2図のライン114で示されるようにフレームマル
チプレクサ150に直接送られる。しかしながら、主要
メモリは論理アドレスの残余ビットが主要メモリ内のペ
ージの位置を識別するために物理アドレスに翻訳される
ことを必要とする。翻訳プロセスの間、もし所望のペー
ジが主要メモリ内に含まれるなら、そして翻訳メモリ内
に対応するエントリを有するなら、「ヒツト」が発生す
る。もし所望のページが主要メモリ内に含まれていない
なら、そのような発生は「ミス」と呼ばれかつページフ
ォルトが発生したと言われる。
位置を特定するのみであるので、オフセットフィールド
はメモリ管理システムによるいかなる翻訳も行なわずか
つ第2図のライン114で示されるようにフレームマル
チプレクサ150に直接送られる。しかしながら、主要
メモリは論理アドレスの残余ビットが主要メモリ内のペ
ージの位置を識別するために物理アドレスに翻訳される
ことを必要とする。翻訳プロセスの間、もし所望のペー
ジが主要メモリ内に含まれるなら、そして翻訳メモリ内
に対応するエントリを有するなら、「ヒツト」が発生す
る。もし所望のページが主要メモリ内に含まれていない
なら、そのような発生は「ミス」と呼ばれかつページフ
ォルトが発生したと言われる。
第2図に示されるように、各翻訳テーブルエントリには
一般に14OAまたは140Bで示されるフレームポイ
ンタと、一般に138Aまたは13Bで示されるタグと
、一般に142Aまたは142Bで召される有効および
保護(V P)ビットが設けられる。第1B図と関連し
て先に述べられたように、コンピュータシステム管理ソ
フトウェアはフレームポインタ140Aまたは140B
と、タグ138Aまたは138Bと、VPビット142
Aまたは142Bとを後に説明されるであろう理由で各
翻訳テーブルエントリにロードすることができることに
気付くのが重要である。
一般に14OAまたは140Bで示されるフレームポイ
ンタと、一般に138Aまたは13Bで示されるタグと
、一般に142Aまたは142Bで召される有効および
保護(V P)ビットが設けられる。第1B図と関連し
て先に述べられたように、コンピュータシステム管理ソ
フトウェアはフレームポインタ140Aまたは140B
と、タグ138Aまたは138Bと、VPビット142
Aまたは142Bとを後に説明されるであろう理由で各
翻訳テーブルエントリにロードすることができることに
気付くのが重要である。
有効および保護(V P)ビット142Aおよび142
Bは翻訳テーブルエントリの「状態」を示すために用い
られる。その状態は無効(メモリ管理システムが最初「
パワーアップ」されるときのように有効な情報を何も含
んでいない)かまたは有効(タグおよびフレーム値が初
期にエントリ内に置かれていたことを示す)のいずれで
あってもよい。
Bは翻訳テーブルエントリの「状態」を示すために用い
られる。その状態は無効(メモリ管理システムが最初「
パワーアップ」されるときのように有効な情報を何も含
んでいない)かまたは有効(タグおよびフレーム値が初
期にエントリ内に置かれていたことを示す)のいずれで
あってもよい。
■Pビットはまたエントリと関連しているページではユ
ーザの書込から保護されていることを示してもよく、こ
うしていかなるユーザのプログラムもそのページに書込
まれることが妨げられる。
ーザの書込から保護されていることを示してもよく、こ
うしていかなるユーザのプログラムもそのページに書込
まれることが妨げられる。
その状態はまたユーザのプログラムとコンピュータシス
テム管理ソフトウェアの両方がその主要メモリにおける
その位置に書込まれることを防ぐ、完全に書込が保護さ
れており、これはもしシステム管理ソフトウェア自身に
本質的であるいくつかのコードがそれらのページに含ま
れているなら所望であるかもしれない。
テム管理ソフトウェアの両方がその主要メモリにおける
その位置に書込まれることを防ぐ、完全に書込が保護さ
れており、これはもしシステム管理ソフトウェア自身に
本質的であるいくつかのコードがそれらのページに含ま
れているなら所望であるかもしれない。
たとえば、2ビットvPフィールドで示され得る1つの
状態は翻訳テーブルエントリが有効でかつ保護されてい
ないので論理アドレスから物理アドレスへの翻訳のため
に用いられてもよく、また関連ページがCPUによって
所望されるように書込まれてもよいことを示す。4個の
状態の組合わせの各々を示す種々のビットパターンが以
下の第1表に表わされる。
状態は翻訳テーブルエントリが有効でかつ保護されてい
ないので論理アドレスから物理アドレスへの翻訳のため
に用いられてもよく、また関連ページがCPUによって
所望されるように書込まれてもよいことを示す。4個の
状態の組合わせの各々を示す種々のビットパターンが以
下の第1表に表わされる。
第1表
状態VP31 VP31
無効 00ユーザの書込か
ら保護されている 01完全に書込から保護されている
10有効−保護されていない 11以前に
述べられたように、オフセットフィールド104は主要
メモリ内に含まれる各ページの第1のメモリ位置から所
望のメモリアクセスのオフセット位置を示す。翻訳テー
ブルエントリのフレームポインタ140Aまたは140
Bは主要メモリ内の所望のページの位置に対応する物理
アドレスの残余の最上位ビットを含む。
ら保護されている 01完全に書込から保護されている
10有効−保護されていない 11以前に
述べられたように、オフセットフィールド104は主要
メモリ内に含まれる各ページの第1のメモリ位置から所
望のメモリアクセスのオフセット位置を示す。翻訳テー
ブルエントリのフレームポインタ140Aまたは140
Bは主要メモリ内の所望のページの位置に対応する物理
アドレスの残余の最上位ビットを含む。
こうして、論理アドレスのオフセットフィールド104
は物理アドレスの最下位ビットを含み、一方で選択され
た翻訳テーブルエントリのフレームポインタ140Aま
たは140Bは物理アドレスの最上位ビットを提供する
。さらに、オフセットフィールド104および選択され
たフレームポインタ140Aまたは140Bは268,
435゜456、。のメモリ位置(256メガバイト)
の1つの位置を識別するのに十分である28ビットの物
理メモリアドレスを提供する。
は物理アドレスの最下位ビットを含み、一方で選択され
た翻訳テーブルエントリのフレームポインタ140Aま
たは140Bは物理アドレスの最上位ビットを提供する
。さらに、オフセットフィールド104および選択され
たフレームポインタ140Aまたは140Bは268,
435゜456、。のメモリ位置(256メガバイト)
の1つの位置を識別するのに十分である28ビットの物
理メモリアドレスを提供する。
こうして、以前に示されたように、現在好ましい実施例
によって利用される2ウェイセット連想翻訳メモリによ
って、翻訳メモリ内に存在するエントリより多くの、す
なわち256メガバイトまでの主要メモリがアクセスさ
れることが可能になる。
によって利用される2ウェイセット連想翻訳メモリによ
って、翻訳メモリ内に存在するエントリより多くの、す
なわち256メガバイトまでの主要メモリがアクセスさ
れることが可能になる。
以上のことから認められるように、この発明のメモリ管
理システムの主要なタスクは、CPUから受取られた論
理アドレスによって示されるバイトを含む主要メモリ内
の適当なフレームを識別することである。このタスクを
達成するために、ページフィールド106、ボリューム
/ページフィールド108、ボリュームフィールド11
0が用いられる。
理システムの主要なタスクは、CPUから受取られた論
理アドレスによって示されるバイトを含む主要メモリ内
の適当なフレームを識別することである。このタスクを
達成するために、ページフィールド106、ボリューム
/ページフィールド108、ボリュームフィールド11
0が用いられる。
第2図に示されるように、ページフィールド106およ
びボリューム/ページフィールド108は共に14ビッ
トを含む。ページフィールド106およびボリューム/
ページフィールド108は共に1つの翻訳テーブルエン
トリを選択するために用いられる。ボリューム/ページ
フィールド108はそのように示されるのは、これらの
8ビットはボリュームフィールド110かページフィー
ルド106のいずれかの部分として規定されてもよいか
らである。合計が4ビットの可能性のある「ページ」ア
ドレスに関して、各翻訳テーブルエントリが主要メモリ
の1フレームを識別して16゜384個(0ないし16
.383)翻訳テーブルエントリの1つを識別すること
が可能である。
びボリューム/ページフィールド108は共に14ビッ
トを含む。ページフィールド106およびボリューム/
ページフィールド108は共に1つの翻訳テーブルエン
トリを選択するために用いられる。ボリューム/ページ
フィールド108はそのように示されるのは、これらの
8ビットはボリュームフィールド110かページフィー
ルド106のいずれかの部分として規定されてもよいか
らである。合計が4ビットの可能性のある「ページ」ア
ドレスに関して、各翻訳テーブルエントリが主要メモリ
の1フレームを識別して16゜384個(0ないし16
.383)翻訳テーブルエントリの1つを識別すること
が可能である。
この発明に従えば、現在好ましい実施例によって翻訳テ
ーブルエントリはグループに区切られ得る。翻訳テーブ
ルエントリの現在好ましい実施例における仕切り(グル
ープ分け)は64個の翻訳テーブルエントリ(各エント
リは主要メモリにおいて2キロバイトのページを表わす
)の256個のグループからいかなる仕切りも設けられ
ていない1つの翻訳テーブル(すなわち16,384個
の翻訳テーブルエントリの1グループ)までの範囲があ
ってもよい。
ーブルエントリはグループに区切られ得る。翻訳テーブ
ルエントリの現在好ましい実施例における仕切り(グル
ープ分け)は64個の翻訳テーブルエントリ(各エント
リは主要メモリにおいて2キロバイトのページを表わす
)の256個のグループからいかなる仕切りも設けられ
ていない1つの翻訳テーブル(すなわち16,384個
の翻訳テーブルエントリの1グループ)までの範囲があ
ってもよい。
そのような仕切りによって形成されたグループのサイズ
は論理アドレス空間の「ボリューム」のサイズである。
は論理アドレス空間の「ボリューム」のサイズである。
ボリュームのサイズは1グループ内の翻訳メモリエント
リの数および1ページ内のメモリ位置の数の積に等しい
。現在好ましい実施例では、1つのボリュームはわずか
128キロバイト(64エントリ)かまたは32メガバ
イト(16,384エントリ)であってもよい。
リの数および1ページ内のメモリ位置の数の積に等しい
。現在好ましい実施例では、1つのボリュームはわずか
128キロバイト(64エントリ)かまたは32メガバ
イト(16,384エントリ)であってもよい。
この発明に従って、各翻訳テーブルエントリの適切なフ
レームポインタ値の挿入はコンピュータシステム管理ソ
フトウェアに割当てられるタスクであることを知ること
が重要である。さらに、システム管理ソフトウェアはま
た適切な値を翻訳テーブルエントリのタグ138Aまた
は138Bに挿入する。第2図では、タグビットT17
ないしT2OはCPUからの論理アドレスのボリューム
/ベージフィールド108およびボリュームフィールド
110(ビットA17ないしA29)に対応することが
注目されるべきである。
レームポインタ値の挿入はコンピュータシステム管理ソ
フトウェアに割当てられるタスクであることを知ること
が重要である。さらに、システム管理ソフトウェアはま
た適切な値を翻訳テーブルエントリのタグ138Aまた
は138Bに挿入する。第2図では、タグビットT17
ないしT2OはCPUからの論理アドレスのボリューム
/ベージフィールド108およびボリュームフィールド
110(ビットA17ないしA29)に対応することが
注目されるべきである。
選択された翻訳テーブルエントリがフレームポインタ1
40Aまたは140B (それは主要メモリにおいて物
理アドレスを提供するために論理アドレス102内のオ
フセットフィールド104と連結し得る)を含むかどう
かを決定するために、選択された翻訳テーブルエントリ
のタグ138Aまたは138Bは論理アドレスのボリュ
ームフィールド110およびボリューム/ページフィー
ルド108(−緒にしてビットA17ないしA29を含
む)と比較される。この比較機能は第2図のブロック1
48Aおよび148Bによって示されるタグ比較器によ
って実行される。
40Aまたは140B (それは主要メモリにおいて物
理アドレスを提供するために論理アドレス102内のオ
フセットフィールド104と連結し得る)を含むかどう
かを決定するために、選択された翻訳テーブルエントリ
のタグ138Aまたは138Bは論理アドレスのボリュ
ームフィールド110およびボリューム/ページフィー
ルド108(−緒にしてビットA17ないしA29を含
む)と比較される。この比較機能は第2図のブロック1
48Aおよび148Bによって示されるタグ比較器によ
って実行される。
ボリューム/ページフィールド108およびボリューム
フィールド110は論理アドレス102において最上位
アドレスビットを作るので、これらのビット値を組込む
タグ138Aまたは138Bは適切な翻訳テーブルエン
トリのみが(適当なフレームフィールド140Aまたは
140Bを有している)論理アドレスがメモリ管理シス
テム18に提示されると、オフセットフィールドと連結
されるであろうことを確実にする。
フィールド110は論理アドレス102において最上位
アドレスビットを作るので、これらのビット値を組込む
タグ138Aまたは138Bは適切な翻訳テーブルエン
トリのみが(適当なフレームフィールド140Aまたは
140Bを有している)論理アドレスがメモリ管理シス
テム18に提示されると、オフセットフィールドと連結
されるであろうことを確実にする。
ボリューム/ベージフィールド108およびボリューム
フィールド110内に含まれるビットはライン118お
よび120で示されるバスによってタグ比較器148A
および148Bに提示される。タグ138Aまたは13
8Bに含まれるビットがそれぞれライン144Aまたは
144Bで表わされるバスによってタグ比較器148A
または148Bに提示される。
フィールド110内に含まれるビットはライン118お
よび120で示されるバスによってタグ比較器148A
および148Bに提示される。タグ138Aまたは13
8Bに含まれるビットがそれぞれライン144Aまたは
144Bで表わされるバスによってタグ比較器148A
または148Bに提示される。
もし選択された翻訳テーブルエントリのタグ138Aま
たは138Bに含まれる値が論理アドレス102のビッ
トA17ないしA29と等しいなら(すなわち一致する
なら)、翻訳テーブルエントリの対応するフレームポイ
ンタ140Aまたは140Bが主要メモリに所望の物理
アドレスのための最上位ビットを含むことが確実にされ
る。
たは138Bに含まれる値が論理アドレス102のビッ
トA17ないしA29と等しいなら(すなわち一致する
なら)、翻訳テーブルエントリの対応するフレームポイ
ンタ140Aまたは140Bが主要メモリに所望の物理
アドレスのための最上位ビットを含むことが確実にされ
る。
現在好ましい実施例においてコンピュータシステム管理
ソフトウェアは翻訳テーブルエントリのタグ(第2図の
ビットT17ないしT2O)として論理アドレスビット
A17ないしA29を2重にするビットパターンを書込
むことに気付くことは重要である。さらに、現在好まし
い実施例は常に論理アドレスビットA17ないしA29
をタグビットT17ないしT2Oと比較し、選択された
翻訳テーブルエントリがヒツトであるかどうかを決定す
る。しかしながら、多くの他の配置がこの発明を実施す
るのに利用され得る。
ソフトウェアは翻訳テーブルエントリのタグ(第2図の
ビットT17ないしT2O)として論理アドレスビット
A17ないしA29を2重にするビットパターンを書込
むことに気付くことは重要である。さらに、現在好まし
い実施例は常に論理アドレスビットA17ないしA29
をタグビットT17ないしT2Oと比較し、選択された
翻訳テーブルエントリがヒツトであるかどうかを決定す
る。しかしながら、多くの他の配置がこの発明を実施す
るのに利用され得る。
現在好ましい実施例において、論理アドレスビットA3
0およびA31はCPUがメモリ管理システムを「バイ
パス」することを可能にし、かつ主要メモリに直接にア
クセスするために用いられることにもまた注目すべきで
ある。当業者は他の機構がCPUが主要メモリ直接アク
セスできるように工夫され得ることを認めるであろう。
0およびA31はCPUがメモリ管理システムを「バイ
パス」することを可能にし、かつ主要メモリに直接にア
クセスするために用いられることにもまた注目すべきで
ある。当業者は他の機構がCPUが主要メモリ直接アク
セスできるように工夫され得ることを認めるであろう。
以上のように、この発明は1つの翻訳テーブルかまたは
多数の翻訳テーブルを利用して実施されてもよい。第2
図に示される現在好ましい実施例においては、2個の翻
訳テーブルが設けられている。現在の好ましい実施例に
おいて2個の翻訳テーブル136Aおよび136Bを組
込むことによって、提供されなくてはならない翻訳テー
ブルエントリの数を2倍にするだけで発生するミスの数
は非常に減じられ得る。
多数の翻訳テーブルを利用して実施されてもよい。第2
図に示される現在好ましい実施例においては、2個の翻
訳テーブルが設けられている。現在の好ましい実施例に
おいて2個の翻訳テーブル136Aおよび136Bを組
込むことによって、提供されなくてはならない翻訳テー
ブルエントリの数を2倍にするだけで発生するミスの数
は非常に減じられ得る。
各翻訳テーブル136Aおよび136Bにおける各エン
トリはシステム管理ソフトウェアによって個々に書込ま
れてもよい。こうして、そのタグが比較器148Aない
し148Bを利用して同時に比較される、2個の翻訳テ
ーブル136Aおよび136Bを利用することによって
、主要メモリにおいて32,768ページ(64メガバ
イトのメモリ空間を示す)ものページを同時にマツピン
グすることが可能となる。
トリはシステム管理ソフトウェアによって個々に書込ま
れてもよい。こうして、そのタグが比較器148Aない
し148Bを利用して同時に比較される、2個の翻訳テ
ーブル136Aおよび136Bを利用することによって
、主要メモリにおいて32,768ページ(64メガバ
イトのメモリ空間を示す)ものページを同時にマツピン
グすることが可能となる。
2ウエイ翻訳メモリを利用することによって、これから
「マツピング衝突」と呼ばれる、「高周波数マツピング
衝突」と呼ばれてもよい問題を非常に減じることができ
る。マツピング衝突はCPUがボリュームサイズの整数
倍だけ間隔が離されている論理アドレスを交互に要求す
ると発生する。
「マツピング衝突」と呼ばれる、「高周波数マツピング
衝突」と呼ばれてもよい問題を非常に減じることができ
る。マツピング衝突はCPUがボリュームサイズの整数
倍だけ間隔が離されている論理アドレスを交互に要求す
ると発生する。
もし翻訳テーブルが翻訳メモリに1つしか組込まれてい
ないなら、CPUがボリュームサイズの整数倍だけ間隔
が離された論理アドレスを交互に要求すると、ミスがま
た各メモリアクセスで発生し、これはコンピュータシス
テムの速度を非常に減じる。2個の翻訳テーブル、すな
わち2ウエイ翻訳メモリを提供することによって、ボリ
ュームサイズの整数倍だけ間隔があけられているメモリ
位置を含む2つのページの各々にそれ自身の翻訳テーブ
ルエントリが設けられ得る。
ないなら、CPUがボリュームサイズの整数倍だけ間隔
が離された論理アドレスを交互に要求すると、ミスがま
た各メモリアクセスで発生し、これはコンピュータシス
テムの速度を非常に減じる。2個の翻訳テーブル、すな
わち2ウエイ翻訳メモリを提供することによって、ボリ
ュームサイズの整数倍だけ間隔があけられているメモリ
位置を含む2つのページの各々にそれ自身の翻訳テーブ
ルエントリが設けられ得る。
しかしながら、その対の両方のエントリはメモリ管理シ
ステムに対して分けることができないユニットとみなさ
れなくてはならず、なぜなら同じ翻訳メモリアドレスが
両方のエントリにアクセスしかつその両方が同時に比較
されて2つのテーブルのうちのどちらのエントリが適当
なタグ値を有するかそしてまた適当なフレームポインタ
を含むかを決定するからである。こうして、以前に説明
されたように、「エントリ」という言葉はその意味にお
いてNウェイ翻訳メモリにおいて2個以上の対応するエ
ントリを含むことが意図されている。
ステムに対して分けることができないユニットとみなさ
れなくてはならず、なぜなら同じ翻訳メモリアドレスが
両方のエントリにアクセスしかつその両方が同時に比較
されて2つのテーブルのうちのどちらのエントリが適当
なタグ値を有するかそしてまた適当なフレームポインタ
を含むかを決定するからである。こうして、以前に説明
されたように、「エントリ」という言葉はその意味にお
いてNウェイ翻訳メモリにおいて2個以上の対応するエ
ントリを含むことが意図されている。
以前に述べられたように、選択された翻訳テーブルエン
トリのいずれかが適切なタグを含むならヒツトが発生す
る。たとえば、もし翻訳メモリアドレスOで翻訳テーブ
ルAに置かれたエントリがそのタグ138A(T17な
いしT29)として適当な値を含むなら、第2図のブロ
ック5oで表わされるフレームポインタ/オフセットフ
ィールドマルチプレクサは、翻訳された(物理)アドレ
スの最上位ビットとして選択された翻訳メモリエントリ
のフレームポインタ138Aを使用しかつフレームポイ
ンタビット(FOないしF16)と論理アドレス102
のオフセットフィールドビット(AOないしA10)を
連結してライン52で表わされるバス上で主要メモリに
提示される28ビットの翻訳された(物理)アドレスを
得る。
トリのいずれかが適切なタグを含むならヒツトが発生す
る。たとえば、もし翻訳メモリアドレスOで翻訳テーブ
ルAに置かれたエントリがそのタグ138A(T17な
いしT29)として適当な値を含むなら、第2図のブロ
ック5oで表わされるフレームポインタ/オフセットフ
ィールドマルチプレクサは、翻訳された(物理)アドレ
スの最上位ビットとして選択された翻訳メモリエントリ
のフレームポインタ138Aを使用しかつフレームポイ
ンタビット(FOないしF16)と論理アドレス102
のオフセットフィールドビット(AOないしA10)を
連結してライン52で表わされるバス上で主要メモリに
提示される28ビットの翻訳された(物理)アドレスを
得る。
以前に述べられたこの発明の現在好ましい実施例のアー
キテクチャを利用することによって、CPUによって提
示される論理アドレスを主要メモリにおける特定の位置
を識別する物理アドレスに非常に迅速に翻訳することが
できるメモリ管理システムを提供することが可能である
。以前に説明された種々の構造の適切な制御をし、かつ
それらの構造内に適切な値を設置することを実行するの
が必要であるコンピュータシステム管理ソフトウェアは
種々の形式をとってもよいことが認められるであろう。
キテクチャを利用することによって、CPUによって提
示される論理アドレスを主要メモリにおける特定の位置
を識別する物理アドレスに非常に迅速に翻訳することが
できるメモリ管理システムを提供することが可能である
。以前に説明された種々の構造の適切な制御をし、かつ
それらの構造内に適切な値を設置することを実行するの
が必要であるコンピュータシステム管理ソフトウェアは
種々の形式をとってもよいことが認められるであろう。
たとえば、UNIX”バージョン4.2BSDで知られ
る人気のあるオペレーティングシステムは以前に与えら
れた説明に従ってこの発明とともに利用するように簡単
に適合されるであろう。UNIX(jf)オペレーティ
ングシステムに関する情報は、ハワード W、サム(H
oward W、Sams)(1983)によって出
されたウェイト(Waite)、v−チン(Marti
n)およびブラタ(P r a t a)のrUNIX
入門書プラス(The UNIX Primer
Plus)」や、グロブ(Groff)およびユーリ
ンバーグ(Urinberg)のキュー・コーポレーシ
ョン(Que Corporation)(1983
)によって出されたrUNIXの理解(Underst
anding UNIX)Jといった出版物に見られ
るであろう。UNIX[F]バージョン4,2BSDソ
ースコードは米国電信電話会社からのライセンスのもと
にバークレーのカリフォルニア大学から入手可能である
。「UNIX入門書プラス」およびrUNIXの理解」
の両方の出版物およびUNIX@バージョン4.28S
Dソースコードはここで引用により援用される。
る人気のあるオペレーティングシステムは以前に与えら
れた説明に従ってこの発明とともに利用するように簡単
に適合されるであろう。UNIX(jf)オペレーティ
ングシステムに関する情報は、ハワード W、サム(H
oward W、Sams)(1983)によって出
されたウェイト(Waite)、v−チン(Marti
n)およびブラタ(P r a t a)のrUNIX
入門書プラス(The UNIX Primer
Plus)」や、グロブ(Groff)およびユーリ
ンバーグ(Urinberg)のキュー・コーポレーシ
ョン(Que Corporation)(1983
)によって出されたrUNIXの理解(Underst
anding UNIX)Jといった出版物に見られ
るであろう。UNIX[F]バージョン4,2BSDソ
ースコードは米国電信電話会社からのライセンスのもと
にバークレーのカリフォルニア大学から入手可能である
。「UNIX入門書プラス」およびrUNIXの理解」
の両方の出版物およびUNIX@バージョン4.28S
Dソースコードはここで引用により援用される。
以前に述べられたように、この発明の前には翻訳メモリ
を効果的に利用することができるメモリ管理システムは
入手可能でなかったが、この理由はそこで論理アドレス
を物理アドレスにマツピングするために各プロセスに固
定数の翻訳メモリエントリが割当てられていたからであ
る。こうして、この発明に従えば、現在好ましい実施例
は各プロセスに最適数の翻訳メモリエントリを含むグル
ープが与えられるために翻訳メモリをグループにダイナ
ミックに形作るシステムおよび方法を提供する。どのよ
うに翻訳メモリが形成されるかの具体例が以下に示され
る。
を効果的に利用することができるメモリ管理システムは
入手可能でなかったが、この理由はそこで論理アドレス
を物理アドレスにマツピングするために各プロセスに固
定数の翻訳メモリエントリが割当てられていたからであ
る。こうして、この発明に従えば、現在好ましい実施例
は各プロセスに最適数の翻訳メモリエントリを含むグル
ープが与えられるために翻訳メモリをグループにダイナ
ミックに形作るシステムおよび方法を提供する。どのよ
うに翻訳メモリが形成されるかの具体例が以下に示され
る。
以前に述べられたように、マスクレジスタおよびベース
レジスタは現在好ましい実施例において提供されている
。マスクレジスタは第2図のブロック126で表わされ
る(ビットMOないしM7を含む)。ベースレジスタは
第2図のブロック122によって表わされる(ビットB
OないしB7を含む)。また、第2図のブロック130
によって表わされる翻訳メモリアドレスマルチプレクサ
が提供される。これらの構造によってシステム管理ソフ
トウェアはいずれのハードウェアも変化させずまた実行
されているプロセスの動作を通常でないように割込ませ
ることなく翻訳メモリを再形成する重要な機能を実行す
ることができる。
レジスタは現在好ましい実施例において提供されている
。マスクレジスタは第2図のブロック126で表わされ
る(ビットMOないしM7を含む)。ベースレジスタは
第2図のブロック122によって表わされる(ビットB
OないしB7を含む)。また、第2図のブロック130
によって表わされる翻訳メモリアドレスマルチプレクサ
が提供される。これらの構造によってシステム管理ソフ
トウェアはいずれのハードウェアも変化させずまた実行
されているプロセスの動作を通常でないように割込ませ
ることなく翻訳メモリを再形成する重要な機能を実行す
ることができる。
思い出されるであろうように、この発明の目的は主要メ
モリにおけるデータの1ページを各々のエントリが表わ
している、翻訳テーブルエントリをコンピュータシステ
ムによって実行されている特定のプロセスの必要に応じ
て可変サイズのグループに仕切ることである。現在好ま
しい実施例がどのようにグループのサイズを変えるこの
機能を実行するかを説明するために、第2図、第3A図
ないし第3C図および第4A図および第4B図を参照す
る。
モリにおけるデータの1ページを各々のエントリが表わ
している、翻訳テーブルエントリをコンピュータシステ
ムによって実行されている特定のプロセスの必要に応じ
て可変サイズのグループに仕切ることである。現在好ま
しい実施例がどのようにグループのサイズを変えるこの
機能を実行するかを説明するために、第2図、第3A図
ないし第3C図および第4A図および第4B図を参照す
る。
第4A図は翻訳メモリ136の一部の1つの可能な形態
の具体例である。現在好ましい実施例において、両方の
翻訳テーブルの形は同一でなくてはならない。前に示さ
れたように、ここで述べられる現在好ましい実施例で可
能な最も小さなグループは64個の翻訳メモリエントリ
のグループである。しかしながら、グループの最小サイ
ズにそのような限界を有さない実施例も案出され得る。
の具体例である。現在好ましい実施例において、両方の
翻訳テーブルの形は同一でなくてはならない。前に示さ
れたように、ここで述べられる現在好ましい実施例で可
能な最も小さなグループは64個の翻訳メモリエントリ
のグループである。しかしながら、グループの最小サイ
ズにそのような限界を有さない実施例も案出され得る。
第4A図では、増分マーク(一般に134で示され、第
2図の翻訳メモリアドレス134に対応する)は64個
の翻訳テーブルエントリ、すなわち最も小さい可能性の
グループを示す。翻訳メモリ136は各々64個のエン
トリの256個のグループまで含んでもよい。
2図の翻訳メモリアドレス134に対応する)は64個
の翻訳テーブルエントリ、すなわち最も小さい可能性の
グループを示す。翻訳メモリ136は各々64個のエン
トリの256個のグループまで含んでもよい。
以前に説明されたように、この発明は多数プロセシング
内に含まれるコンピュータシステムにおいて利用するた
めに特定に適合される。翻訳メモリ136のダイナミッ
クな形態を最良に説明するために、第4A図の翻訳メモ
リ136が形成されて翻訳メモリ136において各々グ
ループが割当てられた番号0ないし9と打たれたプロセ
スを示す。
内に含まれるコンピュータシステムにおいて利用するた
めに特定に適合される。翻訳メモリ136のダイナミッ
クな形態を最良に説明するために、第4A図の翻訳メモ
リ136が形成されて翻訳メモリ136において各々グ
ループが割当てられた番号0ないし9と打たれたプロセ
スを示す。
第4A図に示される翻訳メモリ136の形に従えば、非
常に小さなプロセス(番号0.4.5.8)には最も小
さな可能性のグループ、すなわち64個の翻訳テーブル
エントリが割当てられる。
常に小さなプロセス(番号0.4.5.8)には最も小
さな可能性のグループ、すなわち64個の翻訳テーブル
エントリが割当てられる。
小さなサイズのプロセス(番号3および6)は各々12
8個のエントリのグループが割当てられる。
8個のエントリのグループが割当てられる。
中間サイズのプロセス(番号1および7)は各々256
個の翻訳テーブルを含むグループが割当てられる。大き
なサイズのプロセス(番号2および9)は各々512個
の翻訳テーブルエントリのグループが割当てられる。
個の翻訳テーブルを含むグループが割当てられる。大き
なサイズのプロセス(番号2および9)は各々512個
の翻訳テーブルエントリのグループが割当てられる。
第4B図は非常に大きなサイズのプロセス(番号10)
のための16,384個の翻訳テーブルエントリの1つ
のグループである最も大きな可能性のグループサイズを
提供するために形成された翻訳メモリ136を示す。そ
のような非常に大きなプロセスには一般に通常の応用で
は遭遇しないであろう。しかしながら、もし非常に多数
のメモリ位置への迅速なアクセスを要求するプロセスに
よって必要とされるなら、現在好ましい実施例の汎用性
によって第4B図に示される形態が許容される。
のための16,384個の翻訳テーブルエントリの1つ
のグループである最も大きな可能性のグループサイズを
提供するために形成された翻訳メモリ136を示す。そ
のような非常に大きなプロセスには一般に通常の応用で
は遭遇しないであろう。しかしながら、もし非常に多数
のメモリ位置への迅速なアクセスを要求するプロセスに
よって必要とされるなら、現在好ましい実施例の汎用性
によって第4B図に示される形態が許容される。
重要なことに、この発明によってシステム管理ソフトウ
ェアはメモリがそのプロセスを変えることを要求すると
特定のプロセスのためにグループのサイズを変えること
が可能である。すべての以前に入手可能であったメモリ
管理システムにおいて、第4A図に示される形態は許容
されなかったであろうことを認めることが重要である。
ェアはメモリがそのプロセスを変えることを要求すると
特定のプロセスのためにグループのサイズを変えること
が可能である。すべての以前に入手可能であったメモリ
管理システムにおいて、第4A図に示される形態は許容
されなかったであろうことを認めることが重要である。
すなわち、以前に入手可能であったシステムでは、多く
の翻訳テーブルエントリかまたは少数の翻訳テーブルエ
ントリを効果的な動作のために必要としてもすべてのプ
ロセスが同じサイズのグループ、すなわち同じ数の翻訳
テーブルエントリが割当てられたであろう。実際の動作
において、コンピュータシステム管理ソフトウェアの注
意がそのグループに対応する特定のプロセスに向けられ
る時、翻訳テーブルの適切なグループが利用されるであ
ろう。以前に述べられたように、64個のエントリの2
56個°までのグループが現在好ましい実施例で可能で
ある。
の翻訳テーブルエントリかまたは少数の翻訳テーブルエ
ントリを効果的な動作のために必要としてもすべてのプ
ロセスが同じサイズのグループ、すなわち同じ数の翻訳
テーブルエントリが割当てられたであろう。実際の動作
において、コンピュータシステム管理ソフトウェアの注
意がそのグループに対応する特定のプロセスに向けられ
る時、翻訳テーブルの適切なグループが利用されるであ
ろう。以前に述べられたように、64個のエントリの2
56個°までのグループが現在好ましい実施例で可能で
ある。
第2図および第3A図および第3C図のブロック122
で表わされるベースレジスタの機能は、コンピュータシ
ステム管理ソフトウェアが特定のプロセスのためのグル
ープが始まる翻訳メモリアドレス134をメモリ管理シ
ステム18に送ることを可能にすることである。第2図
および第3A図ないし第3C図のブロック126によっ
て示されるマスクレジスタの機能は、システム管理ソフ
トウェアが特定のプロセスのためのグループに含まれる
べきエントリの数をメモリ管理システム18に送ること
を可能にすることである。第3八図ないし第3C図はど
のようにシステム管理ソフトウェアがこの発明に従って
マスクレジスタ126とベースレジスタ122を利用す
るかを説明するために用いられるであろう。
で表わされるベースレジスタの機能は、コンピュータシ
ステム管理ソフトウェアが特定のプロセスのためのグル
ープが始まる翻訳メモリアドレス134をメモリ管理シ
ステム18に送ることを可能にすることである。第2図
および第3A図ないし第3C図のブロック126によっ
て示されるマスクレジスタの機能は、システム管理ソフ
トウェアが特定のプロセスのためのグループに含まれる
べきエントリの数をメモリ管理システム18に送ること
を可能にすることである。第3八図ないし第3C図はど
のようにシステム管理ソフトウェアがこの発明に従って
マスクレジスタ126とベースレジスタ122を利用す
るかを説明するために用いられるであろう。
たとえば、翻訳メモリアドレス0でグループが開始する
なら、第2図のベースレジスタ122にはすべてゼロが
ロードされる。同様に、もし64のエンドリグルーブが
翻訳テーブルエントリの64で始まったなら、ベースレ
ジスタ122においてBOビットがセットされるであろ
う。そのシーケンスはベースレジスタ122のすべての
ビット(BOないしB7)がセットされて、各々のグル
ープが64個の翻訳テーブルエントリを有する、翻訳メ
モリの255番目のグループでその選択されたグループ
が始まることを示すまで継続し得る。
なら、第2図のベースレジスタ122にはすべてゼロが
ロードされる。同様に、もし64のエンドリグルーブが
翻訳テーブルエントリの64で始まったなら、ベースレ
ジスタ122においてBOビットがセットされるであろ
う。そのシーケンスはベースレジスタ122のすべての
ビット(BOないしB7)がセットされて、各々のグル
ープが64個の翻訳テーブルエントリを有する、翻訳メ
モリの255番目のグループでその選択されたグループ
が始まることを示すまで継続し得る。
以前に述べられたように、コンピュータシステム管理ソ
フトウェアは所望される特定のグループのための開始翻
訳メモリアドレスの位置をストアしかつ再び読出し、そ
してこれを第2図に示されるベースレジスタ122にお
いて搬送する。
フトウェアは所望される特定のグループのための開始翻
訳メモリアドレスの位置をストアしかつ再び読出し、そ
してこれを第2図に示されるベースレジスタ122にお
いて搬送する。
第3A図、第3B図、第3C図は各々ベースレジスタ1
22とマスクレジスタ126のため可能なビットパター
ンを示し、その図面の各々は第4A図および第4B図に
示されるプロセス(番号工ないし10)の1つに対応す
る。第3A図に示されているように、マスクレジスタに
おけるいずれのビットも断定されないとき、すなわちM
OないしM7はすべてセットされている(否定論理)と
き、ページフィールド106Aは論理アドレスビットA
llないしA16のみからなると規定される。こうして
、64個の翻訳テーブルエントリのグループのみ(6ビ
ットで識別可能な最大数)が可能にされる。さらに、第
3A図のベースレジスタ122には16.。(1000
0□)がロードされているのが示される。マスクレジス
タ126においてすべてのビットがセットされかつベー
スレジスタ122の第5のビットがセットされると(す
なわち、B4がセットされる)、翻訳テーブルアドレス
マルチプレクサ130(第2図に示される)が64個の
エントリの16番目の整数倍、すなわちエントリの16
番目のグループである翻訳メモリにおけるアドレスを選
択する。
22とマスクレジスタ126のため可能なビットパター
ンを示し、その図面の各々は第4A図および第4B図に
示されるプロセス(番号工ないし10)の1つに対応す
る。第3A図に示されているように、マスクレジスタに
おけるいずれのビットも断定されないとき、すなわちM
OないしM7はすべてセットされている(否定論理)と
き、ページフィールド106Aは論理アドレスビットA
llないしA16のみからなると規定される。こうして
、64個の翻訳テーブルエントリのグループのみ(6ビ
ットで識別可能な最大数)が可能にされる。さらに、第
3A図のベースレジスタ122には16.。(1000
0□)がロードされているのが示される。マスクレジス
タ126においてすべてのビットがセットされかつベー
スレジスタ122の第5のビットがセットされると(す
なわち、B4がセットされる)、翻訳テーブルアドレス
マルチプレクサ130(第2図に示される)が64個の
エントリの16番目の整数倍、すなわちエントリの16
番目のグループである翻訳メモリにおけるアドレスを選
択する。
第3A図に示されるマスクおよびベースレジスタビット
配置では、第4図のプロセス番号Oが割当てられた翻訳
エントリが選択される。さらに、もし論理アドレス10
2のページフィールド106(AllないしA16)の
すべてのビットがクリアされるなら、プロセス番号0に
割当てられた64の第1の翻訳メモリエントリが選択さ
れるであろう。
配置では、第4図のプロセス番号Oが割当てられた翻訳
エントリが選択される。さらに、もし論理アドレス10
2のページフィールド106(AllないしA16)の
すべてのビットがクリアされるなら、プロセス番号0に
割当てられた64の第1の翻訳メモリエントリが選択さ
れるであろう。
しかしながら、たとえば、第4A図に示されるようにプ
ロセス番号0からプロセス番号1(中間サイズのプロセ
ス)に切換えるために文脈を切換えることを所望すると
き、CPUは異なるビットパターンを第3B図に示され
るようにベースレジスタ122およびマスクレジスタ1
26にロードする必要がある。重要なことには、翻訳メ
モリの仕切りは種々のプロセスが活性状態にされるかま
たは非活性状態にされるに従って変化してもよいことを
認めるべきである。
ロセス番号0からプロセス番号1(中間サイズのプロセ
ス)に切換えるために文脈を切換えることを所望すると
き、CPUは異なるビットパターンを第3B図に示され
るようにベースレジスタ122およびマスクレジスタ1
26にロードする必要がある。重要なことには、翻訳メ
モリの仕切りは種々のプロセスが活性状態にされるかま
たは非活性状態にされるに従って変化してもよいことを
認めるべきである。
たとえば、第4A図に示されるすべてのプロセスでは、
プロセス番号1が以前に活性状態のプロセスであったか
もしれない(かつプロセス番号1のための翻訳メモリが
以前に割当てられていたかもしれない)。また、プロセ
ス番号1は初めて、ちょうど活性化されたばかりかもし
れず(こうしてプロセス番号1のための翻訳メモリの位
置はちょうど割当てられたところかもしれない)。さら
に、システム管理ソフトウェアは特定のいずれかのプロ
セスに割当てられた翻訳メモリ割当の解除をすることが
できる。「オンザフライ」、すなわちダイナミックに翻
訳メモリにおける空間の割当がこの発明の主要な利点で
ある。
プロセス番号1が以前に活性状態のプロセスであったか
もしれない(かつプロセス番号1のための翻訳メモリが
以前に割当てられていたかもしれない)。また、プロセ
ス番号1は初めて、ちょうど活性化されたばかりかもし
れず(こうしてプロセス番号1のための翻訳メモリの位
置はちょうど割当てられたところかもしれない)。さら
に、システム管理ソフトウェアは特定のいずれかのプロ
セスに割当てられた翻訳メモリ割当の解除をすることが
できる。「オンザフライ」、すなわちダイナミックに翻
訳メモリにおける空間の割当がこの発明の主要な利点で
ある。
今述べられたように、第4A図に示されるプロセス番号
1が選択されるべきなら、CPUは第3図に示されるビ
ットパターンをベースレジスタ122とマスクレジスタ
126とにロードする。第3B図では、1111110
0□がマスクレジスタ126にロードされて、ボリュー
ムサイズが256個の翻訳エントリであるべきことを示
す。
1が選択されるべきなら、CPUは第3図に示されるビ
ットパターンをベースレジスタ122とマスクレジスタ
126とにロードする。第3B図では、1111110
0□がマスクレジスタ126にロードされて、ボリュー
ムサイズが256個の翻訳エントリであるべきことを示
す。
256個の翻訳テーブルエントリのグループはここでプ
ロセス番号1に割当てられているので、第3B図で示さ
れるページフィールド106BはビットAllないしA
18(8ビットはプロセス番号1に割当てられたグルー
プにおける256個のエントリを特定するために必要で
ある)を含むように再び規定されることが認められるで
あろう。
ロセス番号1に割当てられているので、第3B図で示さ
れるページフィールド106BはビットAllないしA
18(8ビットはプロセス番号1に割当てられたグルー
プにおける256個のエントリを特定するために必要で
ある)を含むように再び規定されることが認められるで
あろう。
逆に、ボリュームフィールド110Bは論理アドレスビ
ットA19ないしA29のみを含むように再び規定され
る。
ットA19ないしA29のみを含むように再び規定され
る。
第3B図に示されるように、20.。(1o100□)
がベースレジスタ122にロードされる。
がベースレジスタ122にロードされる。
ベースレジスタ122においてビットB2およびB4を
セットすることによって、翻訳メモリアドレスマルチプ
レクサ(第2図の130)がプロセス番号1のためのグ
ループの開始アドレスとして翻訳メモリアドレス128
0.。を選択することを引き起こす。このアドレスは2
0.oをベースレジスタ122にロードすることによっ
て示される64の20番目の倍数である。さらに、6ビ
ットのみしか256個のエントリの64個のグループを
識別するために必要としないので、ベースレジスタ12
2の2つの最上位ビットは「気にしない」 (BOおよ
びB1の両方でXで示される)とみなされてもよい。
セットすることによって、翻訳メモリアドレスマルチプ
レクサ(第2図の130)がプロセス番号1のためのグ
ループの開始アドレスとして翻訳メモリアドレス128
0.。を選択することを引き起こす。このアドレスは2
0.oをベースレジスタ122にロードすることによっ
て示される64の20番目の倍数である。さらに、6ビ
ットのみしか256個のエントリの64個のグループを
識別するために必要としないので、ベースレジスタ12
2の2つの最上位ビットは「気にしない」 (BOおよ
びB1の両方でXで示される)とみなされてもよい。
こうして、翻訳メモリ内のベースインデックス位置、す
なわちそのグループのための開始翻訳メモリアドレスを
ベースレジスタが示すとみなされ得ることが認められる
であろう。論理アドレスのページフィールドは次にグル
ープ内の位置、すなわちグループの最初の翻訳メモリア
ドレスの「上」の距離を特定するために利用される。第
3A図を利用して説明される具体例と同様、もし第3B
図の論理アドレス102のビットAllないしA18が
すべてクリアされるなら、プロセス番号1に割当てられ
たグループにおいて発見される第1の翻訳テーブルアド
レスが選択されるであろう。
なわちそのグループのための開始翻訳メモリアドレスを
ベースレジスタが示すとみなされ得ることが認められる
であろう。論理アドレスのページフィールドは次にグル
ープ内の位置、すなわちグループの最初の翻訳メモリア
ドレスの「上」の距離を特定するために利用される。第
3A図を利用して説明される具体例と同様、もし第3B
図の論理アドレス102のビットAllないしA18が
すべてクリアされるなら、プロセス番号1に割当てられ
たグループにおいて発見される第1の翻訳テーブルアド
レスが選択されるであろう。
翻訳メモリ位置を割当てるために現在好ましい実施例の
上述のシステムは全体の翻訳メモリが1つのプロセスに
割当てられることを可能にし得る。
上述のシステムは全体の翻訳メモリが1つのプロセスに
割当てられることを可能にし得る。
そのような状況は第3C図に示されるビットパターンお
よび非常に大きなプロセスのプロセス番号10のために
第4B図で示された翻訳メモリ割当によって表わされる
。
よび非常に大きなプロセスのプロセス番号10のために
第4B図で示された翻訳メモリ割当によって表わされる
。
第3C図に示されるように、マスクレジスタ126のす
べてのビットがクリアされると、所望の翻訳メモリエン
トリのアドレスを形成するために用いられるすべてのビ
ットは論理アドレスから得られる。こうして、ページフ
ィールド(第3C図の106C)は論理アドレスビット
AllないしA24 (14ビット)を含むように規定
され、それらのビットは16,384から1つの翻訳メ
モリアドレスを特定するのに十分であるさらに、翻訳メ
モリが仕切られていない、すなわち全体の翻訳テーブル
がたった1つのグループにしか割当てられていないので
、ベースレジスタ122におけるすべてのビット(BO
ないしB7)は「気にしない」で示される。第4B図や
例示される翻訳メモリ形態は第3C図で示されるビット
パターンから得られる。
べてのビットがクリアされると、所望の翻訳メモリエン
トリのアドレスを形成するために用いられるすべてのビ
ットは論理アドレスから得られる。こうして、ページフ
ィールド(第3C図の106C)は論理アドレスビット
AllないしA24 (14ビット)を含むように規定
され、それらのビットは16,384から1つの翻訳メ
モリアドレスを特定するのに十分であるさらに、翻訳メ
モリが仕切られていない、すなわち全体の翻訳テーブル
がたった1つのグループにしか割当てられていないので
、ベースレジスタ122におけるすべてのビット(BO
ないしB7)は「気にしない」で示される。第4B図や
例示される翻訳メモリ形態は第3C図で示されるビット
パターンから得られる。
要約すると、現在好ましい実施例の翻訳メモリが仕切ら
れる最も小さいグループは64個の翻訳エントリであり
、全部で16,384個の翻訳メモリエントリを含むひ
とつのグループまで、そのサイズは2進の整数のべきだ
け増加する。以下ρ第■表は現在好ましい実施例に従っ
た翻訳テーブルエントリの可能な形態の概略である。
れる最も小さいグループは64個の翻訳エントリであり
、全部で16,384個の翻訳メモリエントリを含むひ
とつのグループまで、そのサイズは2進の整数のべきだ
け増加する。以下ρ第■表は現在好ましい実施例に従っ
た翻訳テーブルエントリの可能な形態の概略である。
当業者はUNIX(9オペレーテイングシステムのよう
なコンピュータシステム管理ソフトウェアがここで述べ
られた実施例とともに利用するために簡単に適合され得
ることを認めるであろう。第1B図のフローチャートお
よび付録AおよびBに含まれるソースコードはどのタス
クがオペレーティングシステムによって実行されなくて
はならないかを示す。
なコンピュータシステム管理ソフトウェアがここで述べ
られた実施例とともに利用するために簡単に適合され得
ることを認めるであろう。第1B図のフローチャートお
よび付録AおよびBに含まれるソースコードはどのタス
クがオペレーティングシステムによって実行されなくて
はならないかを示す。
現在好ましい実施例の動作をより明らかに記述するため
に、現在好ましい実施例の方法は第5図のフローチャー
トと関連して説明される。
に、現在好ましい実施例の方法は第5図のフローチャー
トと関連して説明される。
第5図に例示されるフローチャート200は202で示
されかつ「開始」と記されているところで始まる。現在
好ましい実施例において、その開始点ではCPU (第
1図の10)は動作を完了してかつ現在活性状態のプロ
セスにおいて次のステップを継続するためにデータがそ
こに提示されるように要求するであろう。次に、204
で示されるように、CPUは論理アドレスをこの発明の
メモリ管理システム18に提示する。
されかつ「開始」と記されているところで始まる。現在
好ましい実施例において、その開始点ではCPU (第
1図の10)は動作を完了してかつ現在活性状態のプロ
セスにおいて次のステップを継続するためにデータがそ
こに提示されるように要求するであろう。次に、204
で示されるように、CPUは論理アドレスをこの発明の
メモリ管理システム18に提示する。
206で示されるように、論理アドレスのオフセットフ
ィールドが次に規定される。現在好ましい実施例では、
論理アドレスオフセットフィールドはサイズが固定され
ておりかつビットAOないしAl0(11ビット)から
なる。しかしながら、異なるサイズのオフセットフィー
ルドを利用するか、または論理アドレス内で異なるビッ
トを利用するか、またはオフセットフィールドをなくし
てしまうかして、この発明の範囲内で実施例を案出する
ことが可能である。
ィールドが次に規定される。現在好ましい実施例では、
論理アドレスオフセットフィールドはサイズが固定され
ておりかつビットAOないしAl0(11ビット)から
なる。しかしながら、異なるサイズのオフセットフィー
ルドを利用するか、または論理アドレス内で異なるビッ
トを利用するか、またはオフセットフィールドをなくし
てしまうかして、この発明の範囲内で実施例を案出する
ことが可能である。
208で示されるように次のステップは論理アドレスペ
ージフィールドの規定である。以前の説明から認められ
るように、ページフィールドの目的はグループ内の翻訳
メモリアドレスを特定することである。現在好ましい実
施例において、ページフィールドは最小で論理アドレス
ビットAllないしA16を含み、かつ最大で論理アド
レスビットAllないしA24を含むであろう。
ージフィールドの規定である。以前の説明から認められ
るように、ページフィールドの目的はグループ内の翻訳
メモリアドレスを特定することである。現在好ましい実
施例において、ページフィールドは最小で論理アドレス
ビットAllないしA16を含み、かつ最大で論理アド
レスビットAllないしA24を含むであろう。
第5図の210で示されるように次のステップにおいて
は、論理アドレスのボリュームフィールドが規定される
。現在好ましい実施例においてページフィールドが拡大
されてより大きな数のビットを含むことで、所与のグル
ープ内でより大きな数のエントリを特定することができ
ると、ボリュームフィールドは対応する数のビットを減
じるであろうことが認められるであろう。しかしながら
、当業者は各グループに割当てられる数のページを変化
させるための他の機構もこの発明を実施するために利用
され得ることを認めるであろう。こうして、この発明に
とってページフィールドとボリュームフィールドに以上
述べられた特定の関係が°存在するということは絶対に
必要というわけではない。
は、論理アドレスのボリュームフィールドが規定される
。現在好ましい実施例においてページフィールドが拡大
されてより大きな数のビットを含むことで、所与のグル
ープ内でより大きな数のエントリを特定することができ
ると、ボリュームフィールドは対応する数のビットを減
じるであろうことが認められるであろう。しかしながら
、当業者は各グループに割当てられる数のページを変化
させるための他の機構もこの発明を実施するために利用
され得ることを認めるであろう。こうして、この発明に
とってページフィールドとボリュームフィールドに以上
述べられた特定の関係が°存在するということは絶対に
必要というわけではない。
論理アドレスのオフセット、ページおよびボリュームフ
ィールドが規定されると、ベースインデックス位置が以
前に説明されたシステム管理ソフトウェアによって提供
される。このステップは第5図で214で示される。以
上の説明から明らかであるように、「粗いインデックス
位置」としてもまた呼ばれるベースインデックス翻訳エ
ントリはベースレジスタに置かれたビットパターンによ
って特定される翻訳メモリアドレスに置かれる。
ィールドが規定されると、ベースインデックス位置が以
前に説明されたシステム管理ソフトウェアによって提供
される。このステップは第5図で214で示される。以
上の説明から明らかであるように、「粗いインデックス
位置」としてもまた呼ばれるベースインデックス翻訳エ
ントリはベースレジスタに置かれたビットパターンによ
って特定される翻訳メモリアドレスに置かれる。
ベースインデックス位置は翻訳メモリエントリのいずれ
か特定のグループ内の第1のエントリのアドレスを示す
。
か特定のグループ内の第1のエントリのアドレスを示す
。
ベースインデックス位置が決定された後、ベースインデ
ックス翻訳エントリが第5図の214で示されるように
選択される。次に、ベースインデックス位置の「上」の
多数のエントリである、特定の翻訳テーブルエントリが
選択される。第5図の216で示されるこのステップは
、たとえば、6410番目のベースインデックスエント
リが選択された後にそしてページフィールドがたとえば
10、oの値を有すると、翻訳メモリアドレス741゜
の「選択」を引き起こす。
ックス翻訳エントリが第5図の214で示されるように
選択される。次に、ベースインデックス位置の「上」の
多数のエントリである、特定の翻訳テーブルエントリが
選択される。第5図の216で示されるこのステップは
、たとえば、6410番目のベースインデックスエント
リが選択された後にそしてページフィールドがたとえば
10、oの値を有すると、翻訳メモリアドレス741゜
の「選択」を引き起こす。
−H翻訳メモリアドレスが特定されると、翻訳メモリア
ドレスによって特定される翻訳テーブルエントリすべて
のうち、第2図に示されるタグフィールドが論理アドレ
スのボリュームフィールドと同時に比較される。このス
テップは第5図の218で示される。
ドレスによって特定される翻訳テーブルエントリすべて
のうち、第2図に示されるタグフィールドが論理アドレ
スのボリュームフィールドと同時に比較される。このス
テップは第5図の218で示される。
次に220で決定が行なわれる。もし選択された翻訳メ
モリエントリのいずれかのタグが論理アドレスのボリュ
ームフィールドと一致するなら、ヒツトが発生する(二
者択一のrYEsJ 222で示される)。もしヒツト
が発生したなら、現在好ましい実施例は一致している翻
訳テーブルエントリからのフレームポインタと論理アド
レスからのオフセットフィールドとを連結し、翻訳され
た(物理)アドレスを形成する。今述べられた連結ステ
ップは第5図の226で表わされる。
モリエントリのいずれかのタグが論理アドレスのボリュ
ームフィールドと一致するなら、ヒツトが発生する(二
者択一のrYEsJ 222で示される)。もしヒツト
が発生したなら、現在好ましい実施例は一致している翻
訳テーブルエントリからのフレームポインタと論理アド
レスからのオフセットフィールドとを連結し、翻訳され
た(物理)アドレスを形成する。今述べられた連結ステ
ップは第5図の226で表わされる。
フレームポインタとページフィールドが連結されて翻訳
された(物理)アドレスを形成した後、その同じ翻訳さ
れた(物理)アドレスは230で示されるように主要メ
モリに提示される。メモリ管理システムの即座のタスク
は次に232で示されかつ「終了」と記されるように終
了される。
された(物理)アドレスを形成した後、その同じ翻訳さ
れた(物理)アドレスは230で示されるように主要メ
モリに提示される。メモリ管理システムの即座のタスク
は次に232で示されかつ「終了」と記されるように終
了される。
もし220でヒツトが発生しないなら(二者択一のrN
OJ 224で示される)、現在好ましい実施例のメモ
リ管理システムはCPUにページフォルトがブロック2
28で示されるように発生したと示す。次にメモリ管理
システムの即座のタスクが終えられて、コンピュータシ
ステム管理ソフトウェアと関連して適切なページが主要
メモリに移動するのを見るようにCPUは適当な動作を
行ない、かつCPUは次に同様の論理アドレスをメモリ
管理システムに提示しヒツトが発生する。
OJ 224で示される)、現在好ましい実施例のメモ
リ管理システムはCPUにページフォルトがブロック2
28で示されるように発生したと示す。次にメモリ管理
システムの即座のタスクが終えられて、コンピュータシ
ステム管理ソフトウェアと関連して適切なページが主要
メモリに移動するのを見るようにCPUは適当な動作を
行ない、かつCPUは次に同様の論理アドレスをメモリ
管理システムに提示しヒツトが発生する。
第6図ないし第9図およびこれらの図面の簡な説明にお
いて、ディジタル回路の概略図で当該技術分野において
一般に用いられる参照番号表示はこれらの図面を最も理
解しやすくするために残されている。さらに、集積回路
デバイスのピンアウトや、デバイス人力/出力機能や、
デバイス型表示およびバスや信号導体経路および接続の
従来の表示がまた最大に明らかになるために残されてい
る。
いて、ディジタル回路の概略図で当該技術分野において
一般に用いられる参照番号表示はこれらの図面を最も理
解しやすくするために残されている。さらに、集積回路
デバイスのピンアウトや、デバイス人力/出力機能や、
デバイス型表示およびバスや信号導体経路および接続の
従来の表示がまた最大に明らかになるために残されてい
る。
デバイス型の表示に関して、ここで用いられる構成要素
のデバイス表示としばしば関連したプレフィクス「74
」は省略されている。しかしながら、当業者は図面に示
されているデバイス表示を簡単に認識するであろう。さ
らに、名称の後のスラッシュ記号(r/J ’)は信号
が「ローに断定される、」ことを示す。「/」信号は「
ローに断定される」信号を示すのに従来用いられてきた
「バー記号」と等しいとみなされてもよい。
のデバイス表示としばしば関連したプレフィクス「74
」は省略されている。しかしながら、当業者は図面に示
されているデバイス表示を簡単に認識するであろう。さ
らに、名称の後のスラッシュ記号(r/J ’)は信号
が「ローに断定される、」ことを示す。「/」信号は「
ローに断定される」信号を示すのに従来用いられてきた
「バー記号」と等しいとみなされてもよい。
第6図ないし第9図に与えられる現在好ましい実施例の
回路の概略図によって、現在好ましい実施例の回路の制
作またコンピュータシステムへのその組込みが当業者に
よって簡単に達成されるであろうことが認められるであ
ろう。
回路の概略図によって、現在好ましい実施例の回路の制
作またコンピュータシステムへのその組込みが当業者に
よって簡単に達成されるであろうことが認められるであ
ろう。
第6図はこの発明の現在好ましい実施例のベースレジス
タと、マスクレジスタと、翻訳アドレスマルチプレクサ
の現在好ましい実施例の回路実現化例の詳細な概略図を
含む。
タと、マスクレジスタと、翻訳アドレスマルチプレクサ
の現在好ましい実施例の回路実現化例の詳細な概略図を
含む。
U48で示されるデバイスは第2図で示されるマスクレ
ジスタ126として機能する。第6図の現在好ましい実
施例のデバイス048は当該技術分野において一般にA
S574で知られる型であり、かつ3状態出力を有する
8進Dタイプエツジトリガフリツプフロツプとして記述
される。
ジスタ126として機能する。第6図の現在好ましい実
施例のデバイス048は当該技術分野において一般にA
S574で知られる型であり、かつ3状態出力を有する
8進Dタイプエツジトリガフリツプフロツプとして記述
される。
第6図の049で示されるデバイスは第2図に示される
ベースレジスタ122として機能する。
ベースレジスタ122として機能する。
デバイスU49はまた3状態出力を有する8進Dタイプ
エツジトリガフリツプフロツプとして一般に述べられる
AS574デバイスである。各々8ビットレジスタであ
るデバイスU48およびU49は第6図に示されるよう
に、データバスラインD16ないしD23に接続され、
その結果CPUによってロードされてもよい。
エツジトリガフリツプフロツプとして一般に述べられる
AS574デバイスである。各々8ビットレジスタであ
るデバイスU48およびU49は第6図に示されるよう
に、データバスラインD16ないしD23に接続され、
その結果CPUによってロードされてもよい。
第6図のU58およびU59で示されるデバイスは当該
技術分野において一般にF244として示される型であ
り、かつ3状態出力を有する8進バツフア/ライントラ
イバとして説明される。U58およびU59はCPUに
よって用いられ、データバス(DATABUS)上のマ
スクおよびべ−スレジスタ内に含まれる値を得る。
技術分野において一般にF244として示される型であ
り、かつ3状態出力を有する8進バツフア/ライントラ
イバとして説明される。U58およびU59はCPUに
よって用いられ、データバス(DATABUS)上のマ
スクおよびべ−スレジスタ内に含まれる値を得る。
第6図に075で示されるデバイスは当該技術分野にお
いてAS240で一般に示される型であり、かつ反転3
状態出力を有する8進バツフア/ライントライバとして
記述される。デバイスU75の機能は論理アドレスのペ
ージフィールドのためのドライバとして働くことである
。
いてAS240で一般に示される型であり、かつ反転3
状態出力を有する8進バツフア/ライントライバとして
記述される。デバイスU75の機能は論理アドレスのペ
ージフィールドのためのドライバとして働くことである
。
第6図のU41およびU4gで示されたデバイスはまた
当該技術分野においてAS240 (反転3状態出力を
有する8進バツフア/ライントライバ)として一般に示
される型であり、かつコンピュータシステム管理ソフト
ウェアによって利用され、翻訳テーブルエントリ上で読
出および書込動作を行なう。
当該技術分野においてAS240 (反転3状態出力を
有する8進バツフア/ライントライバ)として一般に示
される型であり、かつコンピュータシステム管理ソフト
ウェアによって利用され、翻訳テーブルエントリ上で読
出および書込動作を行なう。
第6図のU40およびU34で示されるデバイスは第2
図において翻訳アドレステーブルマルチプレクサとして
機能する。デバイス034およびU40は当該技術分野
においてPAL16L8−10と一般に表わされる型の
プログラム可能アレイ論理(PAL)デバイスである。
図において翻訳アドレステーブルマルチプレクサとして
機能する。デバイス034およびU40は当該技術分野
においてPAL16L8−10と一般に表わされる型の
プログラム可能アレイ論理(PAL)デバイスである。
プログラム可能アレイ論理デバイスU40およびU34
はベースレジスタU49または論理アドレスA17ない
しA24のどのビットが翻訳メモリアドレスとしてゲー
ト動作されるべきかを決定する機能を果たす。
はベースレジスタU49または論理アドレスA17ない
しA24のどのビットが翻訳メモリアドレスとしてゲー
ト動作されるべきかを決定する機能を果たす。
PALS U34およびU40はそれぞれBITMU
XOPALおよびBITMUXI PALと呼ばれる
。ビットマルチプレクサ(BITMUX)はこれらのP
ALの機能を示す。PALU40 (BITMUXI)
は翻訳テーブルアドレスバス(TTADRSBUS)の
8個の選択可能ビットの最上位4ビットのための多重化
機能を提供する。各アドレスビットは選択され得てバッ
ファされていないアドレスバス(UBADR8BUS)
のビットからかまたはベースレジスタ内のビットから来
る。以前に説明されたように、その選択はマスクレジス
タU48のビットパターンによって決定される。
XOPALおよびBITMUXI PALと呼ばれる
。ビットマルチプレクサ(BITMUX)はこれらのP
ALの機能を示す。PALU40 (BITMUXI)
は翻訳テーブルアドレスバス(TTADRSBUS)の
8個の選択可能ビットの最上位4ビットのための多重化
機能を提供する。各アドレスビットは選択され得てバッ
ファされていないアドレスバス(UBADR8BUS)
のビットからかまたはベースレジスタ内のビットから来
る。以前に説明されたように、その選択はマスクレジス
タU48のビットパターンによって決定される。
PAL U34 (B ITMUXO)は翻訳テーブ
ルアドレスバス(TTADRSBUS)の8個の選択可
能ビットの最上位の4ビットのための多重化機能を果た
す。各アドレスビットはバッファされていないアドレス
バス(UBADR3BUS)のビットからかまたはベー
スレジスタのビットから選択され得る。PAL U4
0のように、選択はマスクレジスタ048のビットによ
って決定される。
ルアドレスバス(TTADRSBUS)の8個の選択可
能ビットの最上位の4ビットのための多重化機能を果た
す。各アドレスビットはバッファされていないアドレス
バス(UBADR3BUS)のビットからかまたはベー
スレジスタのビットから選択され得る。PAL U4
0のように、選択はマスクレジスタ048のビットによ
って決定される。
各PALデバイスU40およびU34は入力の各特定の
組合わせによって予め定められた出力組合わせが生じる
ような当該技術分野において周知の技術を用いてプログ
ラムされてもよい。PAL、デバイスのプログラミング
はカリフォルニア州すンタクララにあるモロリシックメ
モリーズインコーホレーテッド(Mololithic
Menories、Incorporated)か
ら入手可能なPALASMのようなプログラミング言語
を利用すると大いに助けになるかもしれない。
組合わせによって予め定められた出力組合わせが生じる
ような当該技術分野において周知の技術を用いてプログ
ラムされてもよい。PAL、デバイスのプログラミング
はカリフォルニア州すンタクララにあるモロリシックメ
モリーズインコーホレーテッド(Mololithic
Menories、Incorporated)か
ら入手可能なPALASMのようなプログラミング言語
を利用すると大いに助けになるかもしれない。
現在好ましい実施例におけるPAL U40をプログ
ラムするためのPALASMコーFは第m表に示され、
一方でPAL U34をプログラムするためのコード
は第■表で示される。PALASM言語に精通している
者は以下に述べられるコードにおいて、そのビンアウト
にはシーケンシャルにレベルが割当てられかつ出力には
各々等式が設けられ、もし成立つなら出力は断定される
。・第■表 A3 A2 AI An B382 BI BONCG
ND/EN /QO/AI NOMI M2 M3 /
Q2 /Q3 VCCIP (EN) Q3− /M3
* A3+旧*B3IP (EN) Q2− /M2
* A3+罰零B2IP (II:N) Ql −/
Ml t^1+肘零BIIP (EN) QO−/NO
* AO+ NO本BO!■遣 A3 A2 AI AOB382 BI BONCGN
D/EN /QO/QI MOMI M2 M3 /A
2 /Q3 VCCIt’ (EN) Q3− /Ma
本AS + M3本B3IF (EN) Q2− /M
2 * A3+舵零B2IP (EN) Ql −/M
l * At十肘本BIIP (EN) QO−/MO
t AO+罰零BO現在好ましい実施例内で用いられる
PALデノくイスの各々は同じ一般的な型でありかつP
ALデバイスの各々のプログラミングはここではPAL
ASM言語のためのコードを用いて与えられる。
ラムするためのPALASMコーFは第m表に示され、
一方でPAL U34をプログラムするためのコード
は第■表で示される。PALASM言語に精通している
者は以下に述べられるコードにおいて、そのビンアウト
にはシーケンシャルにレベルが割当てられかつ出力には
各々等式が設けられ、もし成立つなら出力は断定される
。・第■表 A3 A2 AI An B382 BI BONCG
ND/EN /QO/AI NOMI M2 M3 /
Q2 /Q3 VCCIP (EN) Q3− /M3
* A3+旧*B3IP (EN) Q2− /M2
* A3+罰零B2IP (II:N) Ql −/
Ml t^1+肘零BIIP (EN) QO−/NO
* AO+ NO本BO!■遣 A3 A2 AI AOB382 BI BONCGN
D/EN /QO/QI MOMI M2 M3 /A
2 /Q3 VCCIt’ (EN) Q3− /Ma
本AS + M3本B3IF (EN) Q2− /M
2 * A3+舵零B2IP (EN) Ql −/M
l * At十肘本BIIP (EN) QO−/MO
t AO+罰零BO現在好ましい実施例内で用いられる
PALデノくイスの各々は同じ一般的な型でありかつP
ALデバイスの各々のプログラミングはここではPAL
ASM言語のためのコードを用いて与えられる。
当該技術分野においては慣習であるように、第6図ない
し第9図で示される各信号またはノ(スの機能は各図面
のための用語集における以下で与えられる。読者に便宜
を図って1個以上の図面1こ現われる信号および/また
はバスはたとえ同じ機能がその信号および/またはバス
によってなされるとしても各図面の用語集に繰返される
であろう。
し第9図で示される各信号またはノ(スの機能は各図面
のための用語集における以下で与えられる。読者に便宜
を図って1個以上の図面1こ現われる信号および/また
はバスはたとえ同じ機能がその信号および/またはバス
によってなされるとしても各図面の用語集に繰返される
であろう。
また、当該技術分野においては慣習であるように、「ロ
ーに断定される」信号は以下の用語集や表および第6図
ないし第9図においてはスラッシュ記号(r/J )と
関連している。
ーに断定される」信号は以下の用語集や表および第6図
ないし第9図においてはスラッシュ記号(r/J )と
関連している。
UIlADR8BUS バッファされていないアド
レスバス。
レスバス。
CPUからメモリセル管理シス
テムに論理アドレスを送る。サ
イズは32ビットでAOないし
A31と示されている。
DATABLIS データバス。
データをCPUにおよびCPU
から送る。サイズは32ビット
でDOないしD31と示される。
MB/ マスクベース選択信号(ローに断
定される)。
定される)。
CPUからのアドレスビットの
組合わせからデコード回路(第
6図に示されていない)によっ
て発生される。この信号はCP
Uがマスクおよびペースレジス
タを読出すかまたは書込むとき
断定される。
UUWE/ 上部の上部書込可能化信号(ロ
ーに断定される)。
ーに断定される)。
CPUがデータバスの最上位8
ビットバイト(D24ないしD
31)を書込むときデコード回
路(第6図に示されていない)
によって発生される。
1JrIte 書込信号。
書込動作が行なわれるとCPU
によって発声される。
UMWE/ 上部の中間書込可能化信号(ロ
ーに断定される)。
ーに断定される)。
CPUがデータバスの第2の最
上位8ビットバイト(D16な
いしD23)を書込むときデコ
ード回路(第6図に示されてい
ない)によって発生される。
TTADR8BtlS 翻訳テーブルアドレスバ
ス。
ス。
アドレス情報を翻訳メモリに提
供する。サイズは14ビットで
ある(AOないしA13で示さ
れる)。
現在好ましい実施例はベースレジスタと、マスクレジス
タと、翻訳メモリアドレスマルチプレクサの実現のため
のただ1つの可能性のある配列を示していることを認め
るべきである。同じまたは異なるデバイスを用いても多
くの異なるアキーテチャが当業者によって設計されるこ
とができ、ベースレジスタ、マスクレジスタおよび翻訳
メモリアドレスマルチプレクサの要求される機能を果た
す。
タと、翻訳メモリアドレスマルチプレクサの実現のため
のただ1つの可能性のある配列を示していることを認め
るべきである。同じまたは異なるデバイスを用いても多
くの異なるアキーテチャが当業者によって設計されるこ
とができ、ベースレジスタ、マスクレジスタおよび翻訳
メモリアドレスマルチプレクサの要求される機能を果た
す。
4、第7A図および第7B図の現在好ましい実施例の翻
訳テーブルの回路実現化例の説明第7A図および第7B
図は第2図に表わされる翻訳テーブルA 136Aお
よび翻訳テーブル8136Bの現在好ましい実施例回路
実現化例の詳細な概略図を含む。第7A図および第7B
図の翻訳テーブル回路は各々はぼ同一である。その違い
は以下に述べられる。
訳テーブルの回路実現化例の説明第7A図および第7B
図は第2図に表わされる翻訳テーブルA 136Aお
よび翻訳テーブル8136Bの現在好ましい実施例回路
実現化例の詳細な概略図を含む。第7A図および第7B
図の翻訳テーブル回路は各々はぼ同一である。その違い
は以下に述べられる。
現在好ましい実施例の各翻訳テーブル回路には当該技術
分野においてHM6788−30で一般に示されかつ速
いアクセスの16KX4ビットSRAMとして記述され
る8個のスタティックランダムアクセスメモリ(SRA
M)デバイスが提供されている。
分野においてHM6788−30で一般に示されかつ速
いアクセスの16KX4ビットSRAMとして記述され
る8個のスタティックランダムアクセスメモリ(SRA
M)デバイスが提供されている。
8個のこれらのSRAMデバイスを提供することによっ
て、各翻訳テーブルの合計のメモリは524.288ビ
ット(512K)であり、16゜384個の32ビット
エントリが各翻訳テーブルにストアされることを可能に
する。各デバイスは読出または書込サイクルごとに、合
計32ビットの1度に4ビットのデータを読出すか書込
むことに気付くであろう。
て、各翻訳テーブルの合計のメモリは524.288ビ
ット(512K)であり、16゜384個の32ビット
エントリが各翻訳テーブルにストアされることを可能に
する。各デバイスは読出または書込サイクルごとに、合
計32ビットの1度に4ビットのデータを読出すか書込
むことに気付くであろう。
第7A図に示されるU42、U3O、U54、U3O、
U66、U3O、U76、U78で示されるSRAMデ
バイスは翻訳テーブルAを含む。
U66、U3O、U76、U78で示されるSRAMデ
バイスは翻訳テーブルAを含む。
第7B図に示されるU43、U51、U55、U61、
U67、U71、U77、U79で示されるSRAMデ
バイスは翻訳テーブルBを含む。
U67、U71、U77、U79で示されるSRAMデ
バイスは翻訳テーブルBを含む。
各翻訳テーブル回路はPALデバイスと関連している。
第7A図では、PALデバイスはUIO8で示されかつ
第7B図ではPALデバイスはUlooで示される。こ
れらのデバイスの両方は一般に当該技術分野においてP
AL16L8−10で表わされる。
第7B図ではPALデバイスはUlooで示される。こ
れらのデバイスの両方は一般に当該技術分野においてP
AL16L8−10で表わされる。
PALデバイス0108 (TTACTRL)は翻訳テ
ーブルAのためのデータ可能化信号と書込可能化信号を
発生する。これらの信号はテーブルエントリがコンピュ
ータシステム管理ソフトウェアによってアクセスされて
いるとき発生し、メモリ管理システムがプロセスのため
にアドレス翻訳を行なっているときには発生しない。P
ALデバイスU100 (TTBCTRL)は同様に翻
訳テーブルBのためにデータ可能化信号と書込可能化信
号とを発生する。これらの信号はテーブルエントリがシ
ステム管理ソフトウェアによってアクセスされていると
き発生する。
ーブルAのためのデータ可能化信号と書込可能化信号を
発生する。これらの信号はテーブルエントリがコンピュ
ータシステム管理ソフトウェアによってアクセスされて
いるとき発生し、メモリ管理システムがプロセスのため
にアドレス翻訳を行なっているときには発生しない。P
ALデバイスU100 (TTBCTRL)は同様に翻
訳テーブルBのためにデータ可能化信号と書込可能化信
号とを発生する。これらの信号はテーブルエントリがシ
ステム管理ソフトウェアによってアクセスされていると
き発生する。
U2O5で示されるPALデバイスをプログラムするた
めに用いられるコードは以下の第7表に示される。Ul
ooで示されるPALデバイスをプログラムするために
用いられるコードは第4表に示される。
めに用いられるコードは以下の第7表に示される。Ul
ooで示されるPALデバイスをプログラムするために
用いられるコードは第4表に示される。
(以壬合白)
スタティックランダムアクセスメモリデバイスからの4
個の入力/出力(110)累積的にDOないしD31で
示される)は場合次第で翻訳テーブルAのデータバス(
TTADABUS)または翻訳テーブルBのデータバス
(TTBDATABUS)に直接与えられる。DOない
しD31で表わされる32ビットはまた4個のデバイス
に与えられ、各々は一般に当該技術分野においてF24
5で示されかつ8ビットの双方向ドライバとして説明さ
れる。翻訳テーブルAと関連した双方向ドライバはU3
O、Ulol、U2O5、U120で第7A図に示され
かつデータバス(DATABUS、)に接続される。翻
訳テーブルBに関連した双方向のドライバは第7B図で
U91、U2O5、UIIO1U121で示され、同様
に接続される。
個の入力/出力(110)累積的にDOないしD31で
示される)は場合次第で翻訳テーブルAのデータバス(
TTADABUS)または翻訳テーブルBのデータバス
(TTBDATABUS)に直接与えられる。DOない
しD31で表わされる32ビットはまた4個のデバイス
に与えられ、各々は一般に当該技術分野においてF24
5で示されかつ8ビットの双方向ドライバとして説明さ
れる。翻訳テーブルAと関連した双方向ドライバはU3
O、Ulol、U2O5、U120で第7A図に示され
かつデータバス(DATABUS、)に接続される。翻
訳テーブルBに関連した双方向のドライバは第7B図で
U91、U2O5、UIIO1U121で示され、同様
に接続される。
TTADR8BUS 翻訳テーブルアドレスバス
。
。
アドレス情報をアドレス翻訳メ
モリに与える。サイズは14ビ
ット(AOないしA13で示さ
れる)。
UUWE/ 上部の上部書込可能化信号(ロ
ーに断定される)。
ーに断定される)。
CPUがデータバスの最上位の
8バイト(D24ないしD31)
を書込むときデコード回路(第
7A図および第7B図には示さ
れていない)によって発生され
る。
UMVE/ 上部の中間書込可能化信号(ロ
ーに断定される)。
ーに断定される)。
CPUがデータバスの第2の最
上位8ビットバイト(D16な
いしD23)を書込むときデコ
ード回路(第7A図および第7
B図には示されていない)によ
って発生される。
LMWE/ 下部の中間書込可能化信号(ロ
ーに断定される)。
ーに断定される)。
CPUがデータバスの第3の最
上位8ビットバイト(D8ない
しD15)を書込むときデコー
ド回路(第7A図および第7B
図には示されていない)によっ
て発生される。
LLWE/ 下部の下部書込可能化信号(ロ
ーに断定される)。
ーに断定される)。
CPUがデータバスの最下位8
ビットバイト(DoないしD7)
を書込むときデコード回路(第
7A図および第7B図には示さ
れていない)によって発生され
る。
TRN5LD/ 翻訳テーブルロード選択信号
(ローに断定される)。
(ローに断定される)。
CPUからのアドレスビットの
組合わせからデコード回路(第
7A図および第7B図には示さ
れていない)によって発生され
る。この信号はCPUがシステ
ムソフトウェアよるメンテナン
スのために翻訳テーブルを読出
すかまたは書込むとき断定する。
この信号はメモリ管理システム
がプロセスのためのアドレス翻
訳を行なっているときは発生し
ない。
WRITE 書込信号。
書込動作が行なわれているとき
CPUによって発生される。
ADH8BUS アドレスバス。
バッファされていないアドレス
バス(第6図のUBADR8B
US)と同じ情報を搬送する。
DATABUS データバス。
データをCPUにまたCPUか
ら搬送する。大きさは32ビツ
ト(DOないしD31で示され
る)。
第7A図には現われるが第7B図には現われないバス。
TTADATABUS 翻訳テーブルAデータバ
ス。
ス。
データを翻訳テーブルAからタ
グ比較器およびフレームポイン
タ/オフセットフィールドマル
チプレクサに搬送する。サイズ
は32ビット。
第7B図には現われないが第7A図に現われるバス。
TTI3DATABLIS 翻訳テープ/l/B
データバス。
データバス。
翻訳テーブルBからタグ比較器
およびフレームポインタ/オフ
セットフィールドマルチプレク
サにデータを搬送する。サイズ
は32ビット。
翻訳メモリの現在好ましい実施例はこの発明とともに用
いるための翻訳メモリを提供するために利用され得るほ
んの1つの可能性のある配置であることが認められるべ
きである。この発明の翻訳メモリ部分を実行すための代
替の実施例もまた案出されてもよい。
いるための翻訳メモリを提供するために利用され得るほ
んの1つの可能性のある配置であることが認められるべ
きである。この発明の翻訳メモリ部分を実行すための代
替の実施例もまた案出されてもよい。
第8図は第2図のブロック148Aおよび148Bによ
って示されるタグ比較器の現在好ましい実施例の回路実
現化例の詳細な概略図を含む。第8図に例示されている
ように、各タグ比較器は当該技術分野においては一般に
FCT521で表わされる2個のデバイスを含む。FC
T521デバイスは一般に8ビット一致比較器として説
明される。デバイスU35およびU29は翻訳テーブル
Aと関連してタグ比較器を形成する。デバイスU36お
よびU30は翻訳テーブルBと関連してタグ比較器を形
成する。
って示されるタグ比較器の現在好ましい実施例の回路実
現化例の詳細な概略図を含む。第8図に例示されている
ように、各タグ比較器は当該技術分野においては一般に
FCT521で表わされる2個のデバイスを含む。FC
T521デバイスは一般に8ビット一致比較器として説
明される。デバイスU35およびU29は翻訳テーブル
Aと関連してタグ比較器を形成する。デバイスU36お
よびU30は翻訳テーブルBと関連してタグ比較器を形
成する。
第8図に示されているように、翻訳テーブルAデータバ
ス(TTADATABUS)からのU17ないしU29
はデバイスU35およびU29に与えられる。同様に、
論理アドレスビットA17ないしA29はまたバッファ
されていないアドレスバス(UBADRSBUS)から
デバイスU35およびU29に提示される。この構造は
それによって、タグピットT17ないしT29(第2図
に示されておりらかつ第8図のU17ないしU29に対
応する)は論理アドレスビットA17ないしA29と比
較される手段を設けることが認められるであろう。13
ビットのみが比較されるのでU35の3つの入力は用い
られないことに気付くであろう。U36およびU30を
利用する同一の配置は、翻訳テーブルB (TTBDA
TABUS)から受取られるU17ないしU29を利用
することを除いて、先に説明されたのと同じ機能を実行
する。
ス(TTADATABUS)からのU17ないしU29
はデバイスU35およびU29に与えられる。同様に、
論理アドレスビットA17ないしA29はまたバッファ
されていないアドレスバス(UBADRSBUS)から
デバイスU35およびU29に提示される。この構造は
それによって、タグピットT17ないしT29(第2図
に示されておりらかつ第8図のU17ないしU29に対
応する)は論理アドレスビットA17ないしA29と比
較される手段を設けることが認められるであろう。13
ビットのみが比較されるのでU35の3つの入力は用い
られないことに気付くであろう。U36およびU30を
利用する同一の配置は、翻訳テーブルB (TTBDA
TABUS)から受取られるU17ないしU29を利用
することを除いて、先に説明されたのと同じ機能を実行
する。
比較器デバイス(U35、U29、U36、U30)か
らの信号の各々は第9図の065で示されるPALデバ
イスに提示される。U65で示されるPALデバイスは
好ましくは当該技術分野においてPAL16L8−10
で知られる型である。
らの信号の各々は第9図の065で示されるPALデバ
イスに提示される。U65で示されるPALデバイスは
好ましくは当該技術分野においてPAL16L8−10
で知られる型である。
デバイスU65は現在好ましい実施例においてVBER
RPALと言われる。PAL U65は2つの信号の仮
想バス(VBERR)とヒツトA(HITA)を発生す
る。これらの信号の各々は以下に説明されるであろう。
RPALと言われる。PAL U65は2つの信号の仮
想バス(VBERR)とヒツトA(HITA)を発生す
る。これらの信号の各々は以下に説明されるであろう。
デバイスU35およびデバイスU29の両方の出力が断
定されるなら、ヒツトが翻訳テーブルAで発生すること
が知られる。同様に、U36およびU30の出力が両方
とも断定されるなら、ヒツトが翻訳テーブルBで発生す
ることが知られる。
定されるなら、ヒツトが翻訳テーブルAで発生すること
が知られる。同様に、U36およびU30の出力が両方
とも断定されるなら、ヒツトが翻訳テーブルBで発生す
ることが知られる。
保護違反が発生したときのようにヒツトが起こらないか
または他のパラメータが正しくないと、PAL U6
5はCPUに提示されてページフォルトが発生したこと
を示す仮想バスエラー(VBERR)を発生するように
プログラムされる。2個の信号のみがPAL U65
か、HITAか、VBERRから出力される。もしHI
TAもVBERRも断定されないなら、ヒツトは翻訳テ
ーブルBで発生したに違いない。
または他のパラメータが正しくないと、PAL U6
5はCPUに提示されてページフォルトが発生したこと
を示す仮想バスエラー(VBERR)を発生するように
プログラムされる。2個の信号のみがPAL U65
か、HITAか、VBERRから出力される。もしHI
TAもVBERRも断定されないなら、ヒツトは翻訳テ
ーブルBで発生したに違いない。
第■表で提供されるコードは他のPALデバイスと関連
して先に説明されたのと同じ態様で現在好ましい実施例
においてPAL U65をプログラムするために用い
られる。
して先に説明されたのと同じ態様で現在好ましい実施例
においてPAL U65をプログラムするために用い
られる。
(以下余白)
有効および保護(v p)ビット(D30ないしD31
)が直接PAL U65に提示されることに気付くで
あろう。こうして、U65はもし選択された翻訳テーブ
ルエントリが無効であるかまたはそれが保護されている
なら、CPUに仮想バスエラー(VBERR)信号を発
生するようにプログラムされる。第8図に表わされる信
号および/またはバスは以下の用語集Cに挙げられてい
る。
)が直接PAL U65に提示されることに気付くで
あろう。こうして、U65はもし選択された翻訳テーブ
ルエントリが無効であるかまたはそれが保護されている
なら、CPUに仮想バスエラー(VBERR)信号を発
生するようにプログラムされる。第8図に表わされる信
号および/またはバスは以下の用語集Cに挙げられてい
る。
TTBDATABUS 翻訳テーブル日データバ
ス。
ス。
翻訳テーブルBからタグ比較器
およびフレームポインタ/オフ
セットフィールドマルチプレク
サにデータを搬送する。サイズ
は32ビット。
UBADR3BUS バッファされていないアド
レスバス。
レスバス。
CPUからメモリ管理システム
に論理アドレスを搬送する。サ
イズは32ビット(AOないし
A31で表わされる)。
TTADATABUS 翻訳テーブルAデータノ
くス。
くス。
翻訳テーブルAからタグ比較器
およびフレームポインタ/オフ
セットフィールドマルチプレク
サにデータを搬送する。サイズ
は32ビット。
一0CALDATAEN/ 論理データ可能化信号
(ローに断定される)。
(ローに断定される)。
メモリ管理システムが可能化さ
れてかつメモリ管理システムに
よるアドレス翻訳を要求するア
クセスが行なわれることを示す。
UBFC2バッファされていない機能コード2信号。
スーパーバイザーモードでアク
セスが行なわれる間CPUによ
って発生される。このモードは
コンピュータシステム管理ソフ
トウエアよって用いるために確
保される。
WRITE/ 書込信号(ローに断定される
)。
)。
書込動作が行なわれるときCP
Uによって発生される。
VALSTATE 有効状態信号。
有効なときのみCPUにエラー
状態を示すようにVBERR信
号を可能化するためにタイミン
グ回路(第8図に示されていな
い)によって発生される。
OVRI DB/ オーバーライド信□号(ロ
ーに断定される)。
ーに断定される)。
この信号はコンピュータシステ
ム管理ソフトウェアの制御のも
とにありかつ保護違反が発生し
たときVBERR信号が出され
ることを妨げる。システム管理
ソフトウェア機能と同じ特権を
プロセスに与えるために用いら
れ得る。
CMPAI/ 比較テーブルA1信号(ロー
に断定される)。
に断定される)。
翻訳テーブルAにおいてタグの
最上位5ビットが論理アドレス
のそれらの対応するビットに等
しいとき断定する。
CMPA2/ 比較テーブルA2信号(ロー
に断定される)。
に断定される)。
翻訳テーブルAにおけるタグの
最下位8ビットが論理アドレス
のそれらの対応するビットに等
しいとき断定する。
CMPBI / 比較テーブルB1信号(ロー
に断定される)。
に断定される)。
翻訳テーブルBにおけるタグの
最上位5ビットが論理アドレス
のそれらの対応するビットに等
しいとき断定する。
CMPB2/ 比較テーブルB2信号(ロー
に断定される)。
に断定される)。
翻訳テーブルBにおいてタグの
最下位8ビットが論理アドレス
のそれらの対応するビットに等
しいとき断定する。
HITA/ ヒツトテーブルA信号(ローに
断定される)。
断定される)。
翻訳テーブルAのタグとその論
理アドレスの対応するビットと
の間に一致が検出されたとき断
定する。
VBERR/ 仮想バスエラー信号(ローに
断定される)。
断定される)。
いかなる一致も翻訳テーブルタ
グに発見されないかまたは翻訳
違反が発生したときに断定する。
現在好ましい実施例はこの発明の比較器の実現のための
1つの可能性のある配置にすぎないことが認められるべ
きである。現在入手可能な多くの異なるデバイスおよび
将来において入手可能となるものが現在好ましい実施例
のこれらの部分の機能を発生するために用いることがで
きるということが予想される。
1つの可能性のある配置にすぎないことが認められるべ
きである。現在入手可能な多くの異なるデバイスおよび
将来において入手可能となるものが現在好ましい実施例
のこれらの部分の機能を発生するために用いることがで
きるということが予想される。
第9図はこの発明の現在好ましい実施例の第2図におい
てブロック150で示される、フレームポインタ/オフ
セットフィールドマルチプレクサの現在好ましい回路実
現化例の詳細な概略図を含む。
てブロック150で示される、フレームポインタ/オフ
セットフィールドマルチプレクサの現在好ましい回路実
現化例の詳細な概略図を含む。
以上の説明から認められるであろうように、フレームマ
ルチプレクサの機能は、もしヒツトが発生したなら論理
アドレスおよび選択された翻訳テーブルのフレームポイ
ンタから得られる物理(翻訳された)アドレスを提供す
ることである。第9図において、当該技術分野において
一般にAS352で示されかつデュアル4ラインないし
1ラインデータセレクタ/マルチプレクサとして説明さ
れる10個のデバイスが提供されることがわかる。
ルチプレクサの機能は、もしヒツトが発生したなら論理
アドレスおよび選択された翻訳テーブルのフレームポイ
ンタから得られる物理(翻訳された)アドレスを提供す
ることである。第9図において、当該技術分野において
一般にAS352で示されかつデュアル4ラインないし
1ラインデータセレクタ/マルチプレクサとして説明さ
れる10個のデバイスが提供されることがわかる。
U127、U141、U140、U117、U2O5、
U115、U2O5、U130、U116、U152で
第9図に表わされるこれらのデバイスの各々は論理アド
レス(UBADRSBUSAllないしA27によって
出される)の1ビットと翻訳テーブルAの選択されたエ
ントリまたは翻訳Bの選択されたエントリからの1ビッ
トとともに提示される。選択された翻訳テーブルからの
ビットが翻訳テーブルA (TTADATABUS)ま
たは翻訳テーブル日データバス(TTBDATABUS
)によってAS352デバイスに提示される。
U115、U2O5、U130、U116、U152で
第9図に表わされるこれらのデバイスの各々は論理アド
レス(UBADRSBUSAllないしA27によって
出される)の1ビットと翻訳テーブルAの選択されたエ
ントリまたは翻訳Bの選択されたエントリからの1ビッ
トとともに提示される。選択された翻訳テーブルからの
ビットが翻訳テーブルA (TTADATABUS)ま
たは翻訳テーブル日データバス(TTBDATABUS
)によってAS352デバイスに提示される。
各AS352デバイスはHITA1DAS/、A30
(BPOとも言われる)信号の状態に従って動作し、そ
のため論理アドレスか、翻訳テーブルAエントリかまた
は翻訳テーブルBエントリのいずれかからの適切なビッ
トがアドレスを主要メモリに提示するローカルアドレス
バス(LOCALADR5BUS)上に置かれるかもし
れない。
(BPOとも言われる)信号の状態に従って動作し、そ
のため論理アドレスか、翻訳テーブルAエントリかまた
は翻訳テーブルBエントリのいずれかからの適切なビッ
トがアドレスを主要メモリに提示するローカルアドレス
バス(LOCALADR5BUS)上に置かれるかもし
れない。
第1表は情報がLOCALADR8BUSおよびLOC
ALVPBUSバス上に置かれるA30(VPO) 、
HITA、DAS/信号の効果の要約を示す。
ALVPBUSバス上に置かれるA30(VPO) 、
HITA、DAS/信号の効果の要約を示す。
(以下余色)
第1表
LOCALVPBUS上
LOCALADR8BUS上に に置かれるビA30
HITA %q置かれるとット ット0 00 論理
アドレス テーブルBVPビット 001 翻訳テーブルB テーブルB VPフレー
ムポインタ ビット 0 10 論理アドレス テーブルA VPビ
ット 011 翻訳テーブルA テーブルA VPフレー
ムポインタ ビット 1 00 論理アドレス 0.01 01
論理アドレス 0.01 10 論理アドレ
ス 0,01 11 論理アドレス
0.0以上に説明されたように、主要メモリの2キロバ
イトページ内の位置を特定するのは論理アドレスAOな
いしAIOのオフセットフィールドである。このため、
論理アドレスのビットAOないしAIOを物理アドレス
に翻訳する必要がない。これらのビットは翻訳する一必
要がないので、論理アドレスビットAOないしAIOは
当該技術分野においてAS240で示され、かつ反転3
状態出力を有する8進バツフア/ライントライバとして
説明されるデバイスU129およびU130などに直接
提示される。この態様で、論理アドレスのオフセットフ
ィールドビットに対応するビットは直接論理アドレスバ
ス(LOCALADR8BUS)上に置かれる。
HITA %q置かれるとット ット0 00 論理
アドレス テーブルBVPビット 001 翻訳テーブルB テーブルB VPフレー
ムポインタ ビット 0 10 論理アドレス テーブルA VPビ
ット 011 翻訳テーブルA テーブルA VPフレー
ムポインタ ビット 1 00 論理アドレス 0.01 01
論理アドレス 0.01 10 論理アドレ
ス 0,01 11 論理アドレス
0.0以上に説明されたように、主要メモリの2キロバ
イトページ内の位置を特定するのは論理アドレスAOな
いしAIOのオフセットフィールドである。このため、
論理アドレスのビットAOないしAIOを物理アドレス
に翻訳する必要がない。これらのビットは翻訳する一必
要がないので、論理アドレスビットAOないしAIOは
当該技術分野においてAS240で示され、かつ反転3
状態出力を有する8進バツフア/ライントライバとして
説明されるデバイスU129およびU130などに直接
提示される。この態様で、論理アドレスのオフセットフ
ィールドビットに対応するビットは直接論理アドレスバ
ス(LOCALADR8BUS)上に置かれる。
ローカル有効および保護バス(LOCALVPBUS)
がまた与えられることにも気付くべきである。デバイス
U152 (またAS352デバイス)はローカル有効
および保護バス上に適切なビットを置くように機能する
。ローカル有効および保護バスは簡単に入手可能な信号
を選択された翻訳テーブルエントリが有効でありかつ/
または保護されているかどうかを即座に決定する必要の
あるコンピュータシステムの他の部分に与える。上に示
される第1表はデバイスU152の機能動作を示す。
がまた与えられることにも気付くべきである。デバイス
U152 (またAS352デバイス)はローカル有効
および保護バス上に適切なビットを置くように機能する
。ローカル有効および保護バスは簡単に入手可能な信号
を選択された翻訳テーブルエントリが有効でありかつ/
または保護されているかどうかを即座に決定する必要の
あるコンピュータシステムの他の部分に与える。上に示
される第1表はデバイスU152の機能動作を示す。
以下の用語集りは第9図に現われる信号および/または
バスのリストである。
バスのリストである。
TTBDATABUS 翻訳テーブルBデータバ
ス。
ス。
翻訳テーブルBからタグ比較器
およびフレームポインタ/オフ
セットフィールドマルチプレク
サにデータを搬送する。サイズ
は32ビット。
TTADATABUS 翻訳テーブルAデータバ
ス。
ス。
翻訳テーブルAから比較器およ
びフレームポインタ/オフセラ
トフィールドマルチプレクサに
データを搬送する。サイズは3
2ビット。
UBADR8BUS バッファされていないアド
レスバス。
レスバス。
CPUからメモリ管理システム
に論理アドレスを搬送する。サ
イズは32ビットでAOないし
A31で表わされる。
DAS/ 遅延されたアドレスストローブ
信号(ローに断定される)。
信号(ローに断定される)。
メモリアクセスが始まりかつア
ドレスバスが有効であることを
示すためにCPUによって発生
される。
HITA/ ヒツトテーブルA信号(ローに
断定される)。
断定される)。
翻訳テーブルAのタグと論理ア
ドレスの対応するビットとの間
に一致が検出されたとき断定す
る。
LOCALADR3BUS ローカルアドレスバス
。
。
主要メモリにアドレス情報を搬
送する。サイズは32ビット。
LOCALVPBUS ローカル有効保護バス。
有効および保護情報を主要メモ
リに搬送する。サイズは2ビツ
ト。
他の特定の説明された回路実現化例のように、以上のこ
とはフレームポインタ/オフセットフィールドマルチプ
レクサの実現化例のための1つの可能性のある配置を示
している。同じまたは異なるデバイスを用いて他のアー
キテクチャがフレームポインタ/オフセットフィールド
マルチプレクサ要求される機能を果たすために設計され
得る。
とはフレームポインタ/オフセットフィールドマルチプ
レクサの実現化例のための1つの可能性のある配置を示
している。同じまたは異なるデバイスを用いて他のアー
キテクチャがフレームポインタ/オフセットフィールド
マルチプレクサ要求される機能を果たすために設計され
得る。
要約
この発明はディジタルコンピュータのためのメモリ管理
システムの当該技術分野における意義深い進歩を含む。
システムの当該技術分野における意義深い進歩を含む。
より効率的に物理メモリを用いるかまたは仮想メモリ機
構を実現するためにコンピュータシステムにおいてメモ
リ管理システムを提供することが望ましい一方で、メモ
リ管理システムがその機能を迅速にかつ効果的に実行す
ることができるということが必要である。
構を実現するためにコンピュータシステムにおいてメモ
リ管理システムを提供することが望ましい一方で、メモ
リ管理システムがその機能を迅速にかつ効果的に実行す
ることができるということが必要である。
この発明は以前に入手可能であったシステムよりいくつ
かの点で効果的であるメモリ管理システムを提供する。
かの点で効果的であるメモリ管理システムを提供する。
この発明はグループに形成可能なメモリ管理システムを
提供し、各グループはコンピュータシステム内にあるプ
ロセスの特定の必要性に従って変化するエントリの数を
含む。こうして、この発明は多重プロセスにおいて含ま
れるコンピュータシステムにおいて利用するために特定
的に応用できる。
提供し、各グループはコンピュータシステム内にあるプ
ロセスの特定の必要性に従って変化するエントリの数を
含む。こうして、この発明は多重プロセスにおいて含ま
れるコンピュータシステムにおいて利用するために特定
的に応用できる。
この発明による他の利点はメモリ管理システムの形成ま
たは仕切りがダイナミックに達成され得るということで
ある。すなわち、プロセスが活性状態になりかつページ
が主要メモリにおよび主要メモリから移動すると、翻訳
メモリの仕切りが翻訳メモリおよび主要メモリを最も効
果的に利用するために変えられてもよい。
たは仕切りがダイナミックに達成され得るということで
ある。すなわち、プロセスが活性状態になりかつページ
が主要メモリにおよび主要メモリから移動すると、翻訳
メモリの仕切りが翻訳メモリおよび主要メモリを最も効
果的に利用するために変えられてもよい。
重要なことに、この発明によってコンピュータシステム
管理ソフトウェア、たとえばオペレーティングシステム
は通常の動作を行なっている間に翻訳メモリの仕切りを
迅速に再び形成することが可能である。こうして、この
発明は翻訳メモリの再形成がソフトウェアの制御のもと
にありかつコンピュータステムハードウェアのいかなる
変化も必要とせず、またいかなるコンピュータシステム
の「ダウン時間」も引き起こさないので、非常に融通性
がある。
管理ソフトウェア、たとえばオペレーティングシステム
は通常の動作を行なっている間に翻訳メモリの仕切りを
迅速に再び形成することが可能である。こうして、この
発明は翻訳メモリの再形成がソフトウェアの制御のもと
にありかつコンピュータステムハードウェアのいかなる
変化も必要とせず、またいかなるコンピュータシステム
の「ダウン時間」も引き起こさないので、非常に融通性
がある。
さらに、この発明によって、メモリ管理システムおよび
それに伴なう主要メモリが翻訳メモリ空間の増加を必要
とせずに増加したプロセスの数を取扱うことが可能とな
る。さらに、この発明によって、各プロセスに向けられ
た翻訳メモリの量が最適に利用され得る。この発明の利
用によって生じる他の利点は、コンピュータシステムに
おける文脈切換時間が最小にまで減じられ、かつ発生す
るページフォルトの数がまた減じられるということであ
る。これらのまた多くの他の利点が当業者にとって認め
られるであろう。
それに伴なう主要メモリが翻訳メモリ空間の増加を必要
とせずに増加したプロセスの数を取扱うことが可能とな
る。さらに、この発明によって、各プロセスに向けられ
た翻訳メモリの量が最適に利用され得る。この発明の利
用によって生じる他の利点は、コンピュータシステムに
おける文脈切換時間が最小にまで減じられ、かつ発生す
るページフォルトの数がまた減じられるということであ
る。これらのまた多くの他の利点が当業者にとって認め
られるであろう。
この発明はその精神または本質的な特定から逸脱するこ
となくここで述べられた好ましい実施例以外に特定の形
式に具体化されてもよい。説明された実施例は例示の目
的のためのみであって制限的なものではないとすべての
点においてみなされるべきである。それゆえ、この発明
の範囲は以上の説明よりもむしろ前掲の特許請求の範囲
によって示される。特許請求の範囲の意味および同等物
の範囲内にあるすべての変化はその範囲内に含まれてい
るべきである。
となくここで述べられた好ましい実施例以外に特定の形
式に具体化されてもよい。説明された実施例は例示の目
的のためのみであって制限的なものではないとすべての
点においてみなされるべきである。それゆえ、この発明
の範囲は以上の説明よりもむしろ前掲の特許請求の範囲
によって示される。特許請求の範囲の意味および同等物
の範囲内にあるすべての変化はその範囲内に含まれてい
るべきである。
第1図はこの発明のメモリ管理システムを含むコンピュ
ータシステムの主要な機能的要素を概略的に表わすブロ
ック図である。 第1A図はこの発明によって利用されるこの発明の概念
の概要を提供するために用いられるこの発明の一実施例
の主要な機能ブロックを概略的に示すブロック図である
。 第1B図はこの発明を組込むコンピュータシステムのシ
ステム管理ソフトウェアによって実行されるべきステッ
プを示すフローチャートである。 第2図はこの発明のメモリ管理システムの現在好ましい
実施例の主要な機能要素を概略的に表わすブロック図で
ある。 第3八図ないし第3C図はこの発明の現在好ましい実施
例において用いられる論理アドレスビットの配置を概略
的に例示する図である。 第4A図および第4B図はこの発明に従って翻訳メモリ
の可能な割当を示す図である。 第5図はこの発明の現在好ましい方法のステップを含む
フローチャートである。 第6図はこの発明の現在好ましい実施例の翻訳メモリア
ドレスマルチプレクサ回路の回路実現化例を示す詳細な
概略図である。 第7A図および第7B図はこの発明の現在好ましい実施
例の翻訳メモリの回路実現化例を示す詳細な概略図であ
る。 第8図はこの発明の現在好ましい実施例のタグ比較器回
路の回路実現化例を示す詳細な概略図である。 第9図はこの発明の現在好ましい実施例のフレームポイ
ンタ/オフセットフィールドマルチプレクサ回路の回路
実現化例を示す詳細な概略図である。 図において、18はメモリ管理システム、24け主要(
1次)メモリ、122はグループ位置レジスタ、126
はグループサイズレジスタ、130は翻訳メモリアドレ
スマルチプレクサ、136は翻訳メモリ、140はフレ
ームポインタ、1゜8はボリューム/ベージフィールド
、11oはボリュームフィールドである。 第七図 16,3114 15.3611 14.336 13.312 12.2811 1I、264 till、246 9.216 8.192 5.121 4、g96 3.1i72 2.111411 1、g24 手続補正書(、/J式) 2、発明の名称 メモリ管理システムおよびその動作h゛法3、補正をす
る者 ylf件との関係 特許出願人 住 所 大阪府守口市京阪木通2丁1118番地名
称 (188)三洋電機株式会社代表者 井植 敏 4、代理人 住 所 大阪市北区南森町2丁口1番29号 住友銀
行南森町ビル6、補正の対象 図面 7、補正の内容 図面の第7A図、第7B図、第8図および第9図を別紙
のとおり(内容に変更なし)。 以上
ータシステムの主要な機能的要素を概略的に表わすブロ
ック図である。 第1A図はこの発明によって利用されるこの発明の概念
の概要を提供するために用いられるこの発明の一実施例
の主要な機能ブロックを概略的に示すブロック図である
。 第1B図はこの発明を組込むコンピュータシステムのシ
ステム管理ソフトウェアによって実行されるべきステッ
プを示すフローチャートである。 第2図はこの発明のメモリ管理システムの現在好ましい
実施例の主要な機能要素を概略的に表わすブロック図で
ある。 第3八図ないし第3C図はこの発明の現在好ましい実施
例において用いられる論理アドレスビットの配置を概略
的に例示する図である。 第4A図および第4B図はこの発明に従って翻訳メモリ
の可能な割当を示す図である。 第5図はこの発明の現在好ましい方法のステップを含む
フローチャートである。 第6図はこの発明の現在好ましい実施例の翻訳メモリア
ドレスマルチプレクサ回路の回路実現化例を示す詳細な
概略図である。 第7A図および第7B図はこの発明の現在好ましい実施
例の翻訳メモリの回路実現化例を示す詳細な概略図であ
る。 第8図はこの発明の現在好ましい実施例のタグ比較器回
路の回路実現化例を示す詳細な概略図である。 第9図はこの発明の現在好ましい実施例のフレームポイ
ンタ/オフセットフィールドマルチプレクサ回路の回路
実現化例を示す詳細な概略図である。 図において、18はメモリ管理システム、24け主要(
1次)メモリ、122はグループ位置レジスタ、126
はグループサイズレジスタ、130は翻訳メモリアドレ
スマルチプレクサ、136は翻訳メモリ、140はフレ
ームポインタ、1゜8はボリューム/ベージフィールド
、11oはボリュームフィールドである。 第七図 16,3114 15.3611 14.336 13.312 12.2811 1I、264 till、246 9.216 8.192 5.121 4、g96 3.1i72 2.111411 1、g24 手続補正書(、/J式) 2、発明の名称 メモリ管理システムおよびその動作h゛法3、補正をす
る者 ylf件との関係 特許出願人 住 所 大阪府守口市京阪木通2丁1118番地名
称 (188)三洋電機株式会社代表者 井植 敏 4、代理人 住 所 大阪市北区南森町2丁口1番29号 住友銀
行南森町ビル6、補正の対象 図面 7、補正の内容 図面の第7A図、第7B図、第8図および第9図を別紙
のとおり(内容に変更なし)。 以上
Claims (105)
- (1)多数のプロセスを同時に取扱うことができるディ
ジタルコンピュータにおいて使用するためメモリ管理シ
ステムであって、ディジタルコンピュータは論理アドレ
ス発生デバイスとアドレス可能メモリとを含み、そのメ
モリ管理システムは: 論理アドレス発生デバイスからアドレス可能メモリに提
示される物理アドレスに論理アドレスをマッピングする
ための翻訳メモリ手段を含み、その翻訳メモリ手段は複
数個のエントリを含み、各エントリは論理アドレスをア
ドレス可能メモリに置かれるアドレスの翻訳に必要なア
ドレス指定情報を含み:さらに 翻訳メモリ手段のエントリを可変数のエントリを含むこ
とができるグループに仕切るための割当手段を含み、各
グループはディジタルコンピュータ内にある1つのプロ
セスに割当てられ、それによって各プロセスは最適数の
エントリおよび各プロセスによって必要とされる対応す
るアドレス可能メモリ空間が割当てられるであろう、メ
モリ管理システム。 - (2)プロセスがディジタルコンピュータ内で活性状態
および非活性状態になると異なるサイズのグループが種
々のプロセスに割当てられるように、割当手段がエント
リをグループにダイナミックに仕切るための手段を含む
、請求項1記載のメモリ管理システム。 - (3)割当手段がグループサイズレジスタとグループ位
置レジスタとを含む、請求項1記載のメモリ管理システ
ム。 - (4)割当手段が論理アドレスのページフィールドとボ
リュームフィールドとを規定するための手段を含み、ペ
ージフィールドとボリュームフィールドを規定するビッ
トの数は可変である、請求項1記載のメモリ管理システ
ム。 - (5)割当手段がページフィールドとして規定される論
理アドレスのビットの数に従って各グループに仕切られ
るエントリの数を決定するための手段を含む、請求項4
記載のメモリ管理システム。 - (6)割当手段がページフィールドを受取りかつ翻訳メ
モリエントリの仕切られたグループの中で1つの翻訳メ
モリエントリを選択するための手段を含む、請求項5記
載のメモリ管理システム。 - (7)論理アドレスがオフセットフィールドをさらに含
む、請求項5記載のメモリ管理システム。 - (8)論理アドレスのオフセットフィールドがアドレス
可能メモリの1ページ内の1つの位置を規定する、請求
項7記載のメモリ管理システム。 - (9)各グループに仕切られるエントリの数を決定する
ための手段がマスクレジスタを含み、そのマスクレジス
タの内容はページフィールドとして規定される論理アド
レスのビットの数を決定する、請求項5記載のメモリ管
理システム。 - (10)割当手段がベースレジスタをさらに含み、その
ベースレジスタの内容はエントリのグループが置かれる
であろう翻訳テーブル手段内に位置を決定する、請求項
9記載のメモリ管理システム。 - (11)割当手段がページフィールドと、マスクレジス
タと、ベースレジスタとからのビットパターンに従って
翻訳テーブル手段からエントリを選択するための翻訳メ
モリアドレス多重化手段をさらに含む、請求項10記載
のメモリ管理システム。 - (12)マスクレジスタおよびベースレジスタの各々が
8ビットレジスタを含み、かつページフィールドは6ビ
ットから14ビットを含み、ページフィールドとして規
定される論理アドレスのビット数はマスクレジスタの各
ビットが断定されると1ビットだけ増加する、請求項1
0記載のメモリ管理システム。 - (13)仕切られるかもしれない翻訳メモリエントリの
最も小さいグループは、ページフィールドが6ビットと
規定されるとき発生する64個のエントリであり、かつ
仕切られるかもしれない翻訳メモリエントリの最も大き
いグループはページフィールドが14ビットと規定され
るとき発生する16、384個のエントリである、請求
項10記載のメモリ管理システム。 - (14)ベースレジスタの値が現在活性状態のプロセス
のために仕切られたエントリのグループのための開始エ
ントリを規定する、請求項10記載のメモリ管理システ
ム。 - (15)各エントリが; フレームポインタと; タグとを含む、請求項1記載のメモリ管理システム。
- (16)フレームポインタがアドレス可能メモリのディ
スクリート部分を特定する、請求項15記載のメモリ管
理システム。 - (17)フレームポインタがアドレス可能メモリ内のペ
ージを特定する、請求項15記載のメモリ管理システム
。 - (18)タグと同じエントリに含まれるフレームポイン
タによって特定されるアドレス可能メモリ空間の1ペー
ジにマッピングされる論理アドレスにおける特定のビッ
トパターンとそのタグが等しい、請求項15記載のメモ
リ管理システム。 - (19)タグをメモリ管理システムに提示される論理ア
ドレスの一部と比較し、かつタグと論理アドレスのその
部分の同一性を決定するための手段をさらに含む、請求
項15記載のメモリ管理システム。 - (20)タグを比較するための手段がタグ比較器を含む
、請求項19記載のメモリ管理システム。 - (21)タグを比較するための手段がヒットが発生した
かどうかを示すための手段を含む、請求項19記載のメ
モリ管理システム。 - (22)フレームポインタと論理アドレスの1フィール
ドを連結して翻訳された物理アドレスを形成するための
連結手段をさらに含む、請求項19記載のメモリ管理シ
ステム。 - (23)連結手段がフレームポインタ/オフセットフィ
ールドマルチプレクサを含む、請求項22記載のメモリ
管理システム。 - (24)翻訳メモリがNウェイセット連想翻訳メモリを
含む、請求項1記載のメモリ管理システム。 - (25)翻訳メモリが2ウェイセット連想翻訳メモリを
含む、請求項1記載のメモリ管理システム。 - (26)翻訳メモリが2個の対応する翻訳テーブルを含
み、各翻訳テーブルにおけるエントリは同じ翻訳メモリ
アドレスによって同時にアクセスされる、請求項1記載
のメモリ管理システム。 - (27)多数のプロセスを同時に取扱いかつ仮想メモリ
機構を実現することができるディジタルコンピュータシ
ステムにおいて利用するためのメモリ管理システムであ
って、そのディジタルコンピュータは仮想メモリ空間に
アドレスする論理アドレス発生デバイスと物理アドレス
によってアドレス指定されるアドレス可能物理メモリと
を含み、メモリ管理システムは: 仮想メモリ空間のディスクリート部分を物理アドレス可
能メモリ空間のディスクリート部分にマッピングするこ
とが必要であるアドレス指定情報を各々が含む複数個の
エントリを含む翻訳メモリと; 論理アドレス発生デバイスによってメモリ管理システム
に提示された論理アドレスに従って特定の翻訳メモリエ
ントリを選択するための翻訳メモリアドレス指定手段と
; 翻訳メモリアドレス指定手段によって選択された翻訳メ
モリエントリとメモリ管理システムに提示された論理ア
ドレスを連結することによってアドレス可能物理メモリ
に含まれる物理アドレスを得るための連結手段と;さら
に 可変数の翻訳メモリエントリを選択的に含みかつ1つの
プロセスに各々割当てられるグループに翻訳メモリエン
トリを仕切るための割当手段とを含む、メモリ管理シス
テム。 - (28)翻訳メモリがNウェイ翻訳メモリを含む、請求
項27記載のメモリ管理システム。 - (29)翻訳メモリが2つの一致する翻訳テーブルを含
み、2個の翻訳テーブルのうち各対応するエントリが同
時にアクセス可能である、請求項27記載のメモリ管理
システム。 - (30)翻訳メモリがセット連想翻訳テーブルを含む、
請求項27記載のメモリ管理システム。 - (31)翻訳メモリが2ウェイセット連想翻訳メモリを
含む、請求項27記載のメモリ管理システム。 - (32)各エントリがフレームポインタを含む、請求項
27記載のメモリ管理システム。 - (33)各エントリがタグを含む、請求項32記載のメ
モリ管理システム。 - (34)フレームポインタが物理アドレス可能メモリの
1ページの物理アドレスを特定する、請求項33記載の
メモリ管理システム。 - (35)タグと同じ翻訳メモリエントリ内に含まれるフ
レームポインタの値によって特定されるメモリ内のペー
ジに対応する論理アドレスの一部分とタグが等しいビッ
トパターンを含む、請求項33記載のメモリ管理システ
ム。 - (36)タグが論理アドレスの最上位部分に等しいビッ
トパターンを含む、請求項33記載のメモリ管理システ
ム。 - (37)タグと同じ翻訳メモリエントリ内に含まれるフ
レームポインタの値によって特定されるメモリ内のペー
ジに対応する論理アドレスのボリュームフィールドビッ
トパターンに等しいビットパターンをタグが含む、請求
項33記載のメモリ管理システム。 - (38)論理アドレスが: オフセットフィールドを含み、そのオフセットフィール
ドはアドレス可能物理メモリのページ内で1つのアドレ
スの位置を特定し; ページフィールドを含み、そのページフィールドは翻訳
メモリエントリ位置を特定し;さらにボリュームフィー
ルドを含み、そのボリュームフィールドは、選択された
翻訳メモリエントリが適切なフレームポインタを含むか
どうかを決定するために、選択された翻訳メモリエント
リのタグと比較されるべきである、請求項27記載のメ
モリ管理システム。 - (39)割当手段がプロセスごとにページフィールドと
ボリュームフィールドを再びダイナミックに規定するた
めの手段を含む、請求項38記載のメモリ管理システム
。 - (40)ページフィールドとボリュームフィールドが共
に論理アドレスに固定数のビットを含みかつページフィ
ールドおよびボリュームフィールドはページフィールド
とボリュームフィールドの間の固定数のビットの分割を
変えることによってダイナミックに再び規定される、請
求項38記載のメモリ管理システム。 - (41)各翻訳エントリが有効および保護ビットをさら
に含む、請求項38記載のメモリ管理システム。 - (42)有効および保護ビットが選択的にセットされか
つクリアされてエントリの状態を示すかもしれない、請
求項41記載のメモリ管理システム。 - (43)翻訳メモリが内容アドレス可能メモリを含む、
請求項27記載のメモリ管理システム。 - (44)翻訳メモリが複数個の翻訳テーブルを含み、か
つ複数個の翻訳テーブル内のすべての対応するエントリ
が同時に選択されかつすべての選択されたエントリのタ
グが論理アドレスの一部と同時に比較されるかもしれな
い、請求項27記載のメモリ管理システム。 - (45)選択されたエントリがヒットかどうかを決定す
るための手段をさらに含む、請求項27記載のメモリ管
理システム。 - (46)割当手段が各プロセスがコンピュータシステム
において活動状態になると最適数の翻訳メモリエントリ
を各プロセスにダイナミックに割当てるための手段を含
む、請求項27記載のメモリ管理システム。 - (47)各プロセスがコンピュータシステムにおいて活
動状態になるとプロセスに割当てられるべき翻訳メモリ
エントリの数をコンピュータシステム管理ソフトウェア
が特定できるようにするための手段を割当手段が含む、
請求項27記載のメモリ管理システム。 - (48)コンピュータシステム管理ソフトウェアが翻訳
メモリエントリの数を特定することができるようにする
ための手段がマスクレジスタを含む、請求項47記載の
メモリ管理システム。 - (49)マスクレジスタがCPUによってロードされる
、請求項48記載のメモリ管理システム。 - (50)マスクレジスタが8ビットレジスタを含む、請
求項49記載のメモリ管理システム。 - (51)割当手段がマスクレジスタにロードされるビッ
トパターンを受取りかつ現在活動状態のプロセスによっ
て即座にアクセスされるかもしれない翻訳メモリエント
リの数を決定するための手段を含む、請求項49記載の
メモリ管理システム。 - (52)コンピュータシステム管理ソフトウェアによっ
てロードされるベースレジスタをさらに含み、かつ翻訳
メモリのエントリのグループにおける第1のエントリの
位置を特定する、請求項47記載のメモリ管理システム
。 - (53)割当手段が: マスクレジスタと; ベースレジスタと;さらに マスクレジスタと、ベースレジスタと、論理アドレスの
一部分からの値を受取りかつマスクレジスタと、ベース
レジスタと、論理アドレスの一部の値によつて識別され
る翻訳メモリエントリを選択するための翻訳メモリアド
レス選択手段とを含む、請求項27記載のメモリ管理シ
ステム。 - (54)ベースレジスタが8ビットレジスタを含む、請
求項53記載のメモリ管理システム。 - (55)翻訳メモリアドレス選択手段がマスクレジスタ
のビットが断定されると現在活動状態のプロセスに割当
てられるエントリの数を増加するための手段をさらに含
む、請求項53記載のメモリ管理システム。 - (56)論理アドレスがメモリ管理システムに提示され
、かつ論理アドレスはオフセットフィールドと、ページ
フィールドと、ボリュームフィールドとを含み、かつエ
ントリは各々フレームポインタとタグを含み、そのシス
テムはボリュームフィールドと選択されたエントリのタ
グとが等しいかどうかを決定するための比較器手段をさ
らに含み、さらに連結手段がフレームポインタとオフセ
ットフィールドを連結しアドレス可能物理メモリに提示
される翻訳された物理アドレスを得る、請求項27記載
のメモリ管理システム。 - (57)翻訳メモリが複数個の対応する翻訳テーブルを
含み、そのシステムはさらに各翻訳テーブルに提供され
ている比較器手段を含み、それによって翻訳テーブルで
選択されたエントリのすべてのタグが同時に論理アドレ
スのボリュームフィールドと比較されるかもしれない、
請求項56記載のメモリ管理システム。 - (58)連結手段がフレームポインタ/オフセットフィ
ールドマルチプレクサを含む、請求項56記載のメモリ
管理システム。 - (59)多数のプロセスを同時に取扱うことができかつ
少なくとも1つの論理アドレス発声デバイスとアドレス
可能メモリを有するディジタルコンピュータのメモリ機
能を管理するためのシステムであって、そのメモリ管理
システムは:システムに提示された論理アドレスを受取
りかつ論理アドレスに対応する翻訳メモリエントリを選
択するための翻訳メモリアドレス指定手段と;複数個の
エントリを有する翻訳メモリを含み、各エントリは論理
アドレス発生デバイスによってシステムに提示された論
理アドレスをアドレス可能メモリの物理アドレスにマッ
ピングするのに必要な情報を含むことができ; 選択されたエントリが論理アドレスを対応する物理アド
レスに翻訳するのに必要な情報を含むかどうかを決定す
るための手段と; 選択されたエントリと対応する論理アドレス内に含まれ
るビットパターンから物理アドレスを得るための手段と
;さらに 翻訳メモリエントリをグループに仕切るための手段とを
含み、各グループは選択的にエントリの可変数を含みか
つ各グループはコンピュータシステム内にある特定のプ
ロセスに割当てられ、それによって各プロセスに割当て
られる翻訳テーブルエントリの数は翻訳メモリエントリ
の最適の数が各プロセスに割当てられ得るように変える
ことができる、システム。 - (60)翻訳メモリエントリが仮想メモリ空間の論理ア
ドレスを物理メモリ空間の物理アドレスに翻訳するのに
必要な情報を含む、請求項59記載のメモリ管理システ
ム。 - (61)翻訳メモリがNウェイセット連想翻訳メモリを
含む、請求項59記載のメモリ管理システム。 - (62)翻訳メモリが2個の翻訳テーブルを含み、その
翻訳テーブルの対応するエントリは同時にアクセス可能
である、請求項59記載のメモリ管理システム。 - (63)各翻訳メモリエントリが: フレームポインタと;さらに タグとを含む、請求項59記載のメモリ管理システム。
- (64)フレームポインタが物理アドレスの最上位部分
を含む情報を含む、請求項63記載のメモリ管理システ
ム - (65)タグと同じエントリに置かれるフレームポイン
タに対応する論理アドレスの一部に等しいビットパター
ンをタグが含む、請求項63記載のメモリ管理システム
。 - (66)選択されたエントリが正しい情報を含むかどう
かを決定するための手段が比較器を含む、請求項63記
載のメモリ管理システム。 - (67)選択されたエントリのタグがシステムに提示さ
れる論理アドレスの一部に等しいかどうかを比較器が決
定する、請求項66記載のメモリ管理システム。 - (68)論理アドレスの部分が論理アドレスのボリュー
ムフィールドを含む、請求項67記載のメモリ管理シス
テム。 - (69)翻訳メモリが複数個の翻訳テーブルを含み、か
つシステムが各翻訳テーブルのための比較器を含み、そ
れによって複数個の対応するエントリが同時に選択され
かつ各エントリのタグがその論理アドレスの部分と同時
に比較される、請求項67記載のメモリ管理システム。 - (70)物理アドレスを得るための手段が選択されたエ
ントリのフレームポインタと論理アドレスの一部とを連
結して翻訳された物理アドレスを得るための連結手段を
含む、請求項59記載のメモリ管理システム。 - (71)論理アドレスの部分がオフセットフィールドと
して規定される、請求項70記載のメモリ管理システム
。 - (72)物理アドレスを得るための手段がフレームポイ
ンタ/オフセットフィールドマルチプレクサを含む、請
求項71記載のメモリ管理システム。 - (73)翻訳メモリアドレス指定手段が論理アドレスの
一部を受取るための手段を含む、請求項59記載のメモ
リ管理システム。 - (74)論理アドレスの部分がページフィールドを含む
、請求項73記載のメモリ管理システム。 - (75)仕切り手段が: 現在活動状態のプロセスに割当てられるエントリのグル
ープのベースエントリ位置を示すためのベース指示手段
と;さらに 論理アドレスのビットの数がページフィールドとして規
定されていることを示し、それによってプロセスに割当
てられたグループにおけるエントリの数を決定するため
のマスク指示手段を含み、そのベース指示手段およびマ
スク指示手段は両方ともコンピュータシステム管理ソフ
トウェアの制御のもとにありかつ翻訳メモリアドレス指
定手段に入力される、請求項59記載のメモリ管理シス
テム。 - (76)ベース指示手段がベースレジスタを含み、かつ
マスク指示手段がマスクレジスタを含む、請求項75記
載のメモリ管理システム。 - (77)マスク指示手段がページフィールドとして規定
されるべき論理アドレスのビット数を示す、請求項75
記載のメモリ管理システム。 - (78)翻訳メモリアドレス指定手段がページフィール
ドとして規定される論理アドレスのビットによって特定
されるエントリを選択する、請求項77記載のメモリ管
理システム。 - (79)ベース指示手段がプロセスに割当てられたエン
トリのグループの翻訳メモリにおいて開始アドレスを決
定するための手段を含む、請求項75記載のメモリ管理
システム。 - (80)翻訳メモリアドレス指定手段が(a)マスク指
示手段およびベース指示手段から値を受取り、かつ(b
)論理アドレスのビットパターンとマスク指示手段とベ
ース指示手段とのビットパターンに従ってエントリを選
択するための手段を含む、請求項79記載のメモリ管理
システム。 - (81)複数個のプロセスをホストするディジタルコン
ピュータにおいて使用するためのプロセスごとの翻訳メ
モリエントリの最適数の割当を許容するメモリ管理シス
テムであって、ディジタルコンピュータは論理アドレス
を論理アドレスバスに置くCPUとアドレス可能メモリ
とを含み、メモリ管理システムは: 複数個のエントリを有する連想翻訳メモリを含み、各エ
ントリはタグ部分とフレームポインタとを含み; 前記論理アドレスの1つにおいてページフィールドとし
て規定されるビットの数を特定するビットパターンを含
むマスクレジスタを含み、そのページフィールドは1グ
ループとして割当てられかつディジタルコンピュータに
よって実行されるべき特定のプロセスに割当てられる翻
訳メモリエントリの数を決定し、各グループは1つのそ
のようなプロセスに割当てられ; 前記エントリのグループの1つの翻訳メモリ内の開始位
置を特定するビットパターンを含むベースレジスタと; 論理アドレスバスと、マスクレジスタと、ベースレジス
タとに接続される翻訳メモリアドレスマルチプレクサと
を含み、その翻訳メモリアドレスマルチプレクサはペー
ジフィールドと、マスクレジスタと、ベースレジスタと
で見られるビットパターンに従って翻訳メモリエントリ
を選択するための手段を含み; 選択された翻訳メモリエントリのタグ部分と論理アドレ
スバスのビットパターンの第1の部分とを比較し、かつ
タグおよび論理アドレスの第1の部分が等しいときを示
すための手段と;さらに論理アドレスの第2の部分と選
択された翻訳メモリエントリのフレームポインタとを連
結し、そこから翻訳された物理アドレスを得るための手
段を含む、メモリ管理システム。 - (82)ディジタルコンピュータにおけるメモリ資源を
管理する方法であって、ディジタルコンピュータはメモ
リ管理システムと、CPUと、アドレス可能メモリデバ
イスとを有し、メモリ管理システムは少なくとも1つの
翻訳テーブルを含み、その方法は; 論理アドレスをメモリ管理システムに提示するステップ
と; ページフィールドとして規定されるべき論理アドレスの
ビットの数を示すCPUからグループサイズ値を受取る
ステップと;さらに ページフィールドのビット数によって規定されるかもし
れないエントリと同じ数を含む翻訳テーブルのエントリ
のグループを活動状態のプロセスに割当てステップとを
含む、方法。 - (83)グループサイズ値を受取るステップがマスクレ
ジスタにロードされるビットパターンを受取るステップ
を含む、請求項82記載の方法。 - (84)グループ位置値を受取ることをさらに含む、請
求項82記載の方法。 - (85)グループ位置値を受取るステップがベースイン
デックス位置ビットパターンをベースレジスタにロード
することを含む、請求項84記載の方法。 - (86)ページフィールドのビットパターンによって規
定される翻訳テーブルエントリを選択するステップをさ
らに含む、請求項82記載の方法。 - (87)ベース値を受取るステップをさらに含み、かつ
ベース値がページフィールドによって規定されるエント
リの開始アドレスを特定する、請求項86記載の方法。 - (88)論理アドレスにおいてオフセットフィールドを
規定するステップと; 論理アドレスにおいてボリュームフィールドを規定する
ステップとをさらに含む、請求項82記載の方法。 - (89)選択された翻訳テーブルエントリのタグとボリ
ュームフィールドとを比較するステップをさらに含む、
請求項88記載の方法。 - (90)ページフィールドによって規定される翻訳テー
ブルエントリを選択するステップをさらに含む、請求項
89記載の方法。 - (91)選択された翻訳テーブルエントリの一部と論理
アドレスの一部を連結して物理アドレスを得るステップ
をさらに含む、請求項89記載の方法。 - (92)選択された翻訳テーブルエントリに含まれるフ
レームポインタと論理アドレスのオフセットフィールド
とを連結して論理アドレスに対応する物理アドレスを得
るステップをさらに含む、請求項89記載の方法。 - (93)メモリ管理システムが翻訳テーブルアドレスマ
ルチプレクサを含み、かつ翻訳テーブルのエントリのグ
ループを活動状態のプロセスに割当てるステップが; コンピュータシステム管理ソフトウェアによって入力さ
れるグループ位置値を受取るステップと;グループ位置
値とページフィールドを翻訳テーブルアドレスマルチプ
レクサに入力するステップと; ページフィールドによって特定されたエントリの数だけ
グループ位置値によって特定された翻訳テーブルエント
リから少し離れて置かれる1つの翻訳テーブルアドレス
を選択するステップとを含む、請求項82記載の方法。 - (94)多数のプロセスを同時に処理することができか
つ少なくとも1つの論理アドレス発生デバイと、アドレ
ス可能メモリと、複数個のエントリを有する翻訳メモリ
を含むメモリ管理システムとを有するディジタルコンピ
ュータにおいて、各エントリは論理アドレス発生デバイ
スによってシステムに提示される論理アドレスをアドレ
スメモリ内の物理アドレスにマッピングするのに必要な
情報を含むことができ、メモリ管理システムを動作する
ための方法は; メモリ管理システムに提示された論理アドレスを受取る
ステップと; 論理アドレスに対応する翻訳メモリエントリを選択する
ステップと; 選択されたエントリが論理アドレスを対応する物理アド
レスに翻訳するのに必要な情報を含むかどうか決定する
ステップと; 選択されたエントリ内に含まれるビットパターンと対応
する論理アドレスから物理アドレスを得るステップと;
さらに 翻訳メモリエントリをグループに仕切るステップとを含
み、各グループは選択的にエントリの変化する数を含み
かつ各グループは各グループに割当てられた翻訳テーブ
ルエントリの数が翻訳メモリエントリの最適数が各プロ
セスに割当てられるように変化されるようにコンピュー
タシステム内にあるプロセスを特定するために割当てら
れる、方法。 - (95)論理アドレスを受取るステップが仮想メモリ空
間で論理アドレスを受取るステップを含み、かつ物理ア
ドレスを得るステップがアドレス可能メモリ内で物理ア
ドレスを得るステップとを含む、請求項94記載の方法
。 - (96)翻訳メモリが2個の翻訳テーブル含み、かつ翻
訳メモリエントリを選択するステップが両方の翻訳テー
ブルの対応するエントリを同時に選択するステップを含
む、請求項94記載の方法。 - (97)各翻訳メモリエントリが物理アドレスの最上位
部分を含む情報を含むフレームポインタと、タグと同じ
エントリに置かれたフレームポインタに対応する論理ア
ドレスの一部に等しいいビットパターンを含むタグを含
み、かつ選択されたエントリが正しい情報を含んでいる
かどうかを決定するステップが論理アドレスの一部とタ
グを比較するステップを含む、請求項94記載の方法。 - (98)タグを比較するステップが選択されたエントリ
のタグが論理アドレスの一部に等しいかどうかを決定す
るステップを含む、請求項97記載の方法。 - (99)翻訳メモリが複数個の翻訳テーブルを含みかつ
そのシステムは各翻訳テーブルのための比較器を含み、
かつ選択されたエントリが情報を含むかどうかを決定す
るステップが各エントリのタグを論理アドレスの一部と
同時に比較するステップを含む、請求項94記載の方法
。 - (100)物理アドレスを得るステップが選択されたエ
ントリのフレームポインタと論理アドレスの一部を連結
して翻訳された物理アドレスを得ることを含む、請求項
94記載の方法。 - (101)フレームポインタを連結するステップがフレ
ームポインタとオフセットフィールドとして規定される
論理アドレスの一部を連結するステップを含む、請求項
100記載の方法。 - (102)翻訳メモリエントリを選択するステップが論
理アドレスで規定されるページフィールドのビットパタ
ーンに従って翻訳メモリエントリを選択するステップを
含む、請求項94記載の方法。 - (103)仕切るステップが: 現在活動状態のプロセスに割当てられたエントリのグル
ープの位置を示すベースエントリ値を受取るステップと
;さらに ページフィールドとして規定される論理アドレス内のビ
ット数を決定しかつそれによって両方ともコンピュータ
システム管理ソフトウェアの制御のもとにありかつ翻訳
メモリアドレス指定手段への入力である、プロセス値お
よびマスク値に割当てられたグループにおけるエントリ
の数を決定する、請求項94記載の方法。 - (104)翻訳メモリエントリを選択するステップが論
理アドレスのビットパターンとマスク値およびベース値
のビットパターンとに従ってエントリを選択するマスク
値およびベース値を受取るステップを含む、請求項10
2記載の方法。 - (105)論理アドレスを発生するCPUと、少なくと
も1つの翻訳テーブルを有するメモリ管理ユニットと、
物理アドレスによってアドレスされる主要メモリとを有
するディジタル計算システムのメモリ機能を管理するた
めの方法であって、その方法は: 論理アドレスをメモリ管理ユニットに提示するステップ
と; 論理アドレスのオフセットフィールド部分を規定するス
テップとを含み、そのオフセットフィールドはメモリの
ページにおける位置を特定し;CPUによってメモリ管
理ユニットに入力されるマスク値を受取るステップを含
み、そのマスク値はページフィールドとして規定される
べき論理アドレスのビット数を示し; 論理アドレスの一部をボリュームフィールドとして規定
するステップと; CPUによってメモリ管理ユニットに入力されるベース
値を受取り、そのベース値は翻訳テーブルのベースイン
デックス位置を特定し; ページフィールドのビットパターンによって規定される
ベースインデックス位置から離れてアドレスの数が置か
れた1つの翻訳テーブルエントリを選択するステップと
; 選択された翻訳テーブルエントリに含まれるタグをボリ
ュームフィールドと比較するステップと;論理アドレス
のボリュームフィールドと選択された翻訳テーブルエン
トリのタグフィールド等しいかどうかを決定するステッ
プと; 等しいタグを含む選択された翻訳テーブルエントリのフ
レーム部分とオフセットフィールドとを連結して物理ア
ドレスを得るステップと;さらに物理アドレスを主要メ
モリに提示するステップとを含む、方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US074,310 | 1987-07-16 | ||
| US07/074,310 US4914577A (en) | 1987-07-16 | 1987-07-16 | Dynamic memory management system and method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0198040A true JPH0198040A (ja) | 1989-04-17 |
Family
ID=22118900
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63167450A Pending JPH0198040A (ja) | 1987-07-16 | 1988-07-05 | メモリ管理システムおよびその動作方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4914577A (ja) |
| JP (1) | JPH0198040A (ja) |
| AU (1) | AU2254988A (ja) |
| CA (1) | CA1320591C (ja) |
| WO (1) | WO1989000727A1 (ja) |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3732983A1 (de) * | 1987-09-30 | 1989-04-13 | Thomson Brandt Gmbh | Cd-spieler mit einem speicher |
| JPH0291747A (ja) * | 1988-09-29 | 1990-03-30 | Hitachi Ltd | 情報処理装置 |
| US5535359A (en) * | 1988-12-02 | 1996-07-09 | Mitsubishi Denki Kabushiki Kaisha | Computer system with cache memory having address mask register |
| US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
| KR930007185B1 (ko) * | 1989-01-13 | 1993-07-31 | 가부시키가이샤 도시바 | 레지스터뱅크회로 |
| US5297283A (en) * | 1989-06-29 | 1994-03-22 | Digital Equipment Corporation | Object transferring system and method in an object based computer operating system |
| US5347642A (en) * | 1989-11-30 | 1994-09-13 | Nec Electronics Inc. | Cache memory management unit |
| EP0438011A3 (en) * | 1990-01-18 | 1993-05-19 | International Business Machines Corporation | Logic on main storage memory cards for insertion and extraction of tag bits |
| US5414826A (en) * | 1990-01-31 | 1995-05-09 | Hewlett-Packard Company | System and method for memory management in microcomputer |
| US5838946A (en) * | 1990-04-14 | 1998-11-17 | Sun Microsystems, Inc. | Method and apparatus for accomplishing processor read of selected information through a cache memory |
| DE69130967T2 (de) * | 1990-08-06 | 1999-10-21 | Ncr International, Inc. | Rechnerspeicheranordnung |
| US5530941A (en) * | 1990-08-06 | 1996-06-25 | Ncr Corporation | System and method for prefetching data from a main computer memory into a cache memory |
| US5412787A (en) * | 1990-11-21 | 1995-05-02 | Hewlett-Packard Company | Two-level TLB having the second level TLB implemented in cache tag RAMs |
| US5293595A (en) * | 1990-12-17 | 1994-03-08 | Unisys Corporation | Paging system using extension tables for conflict resolution |
| US5222222A (en) * | 1990-12-18 | 1993-06-22 | Sun Microsystems, Inc. | Apparatus and method for a space saving translation lookaside buffer for content addressable memory |
| US5278987A (en) * | 1991-03-05 | 1994-01-11 | Franklin Chiang | Virtual pocket sorting |
| KR100319770B1 (ko) * | 1991-08-13 | 2002-01-16 | 마거리트 와그너-달 | 영상화 및 그래픽 처리 시스템내에서의 다차원 주소발생방법 |
| US5353424A (en) * | 1991-11-19 | 1994-10-04 | Digital Equipment Corporation | Fast tag compare and bank select in set associative cache |
| US5235613A (en) * | 1992-03-02 | 1993-08-10 | The Boeing Company | Frequency hopping method and apparatus |
| US5367637A (en) * | 1992-03-26 | 1994-11-22 | International Business Machines Corporation | Self-tuning virtual storage management for dedicated real-time computer system |
| JP3230898B2 (ja) * | 1993-06-02 | 2001-11-19 | シャープ株式会社 | データ駆動型情報処理システム |
| US5761739A (en) * | 1993-06-08 | 1998-06-02 | International Business Machines Corporation | Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment |
| US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
| US5765209A (en) * | 1993-09-23 | 1998-06-09 | Hewlett-Packard Co. | Method and apparatus to eliminate redundant mapping in a TLB utilizing variable sized pages |
| JPH07210395A (ja) * | 1994-01-10 | 1995-08-11 | Fujitsu Ltd | ファームウェアメンテナンス方式 |
| US5555399A (en) * | 1994-07-07 | 1996-09-10 | International Business Machines Corporation | Dynamic idle list size processing in a virtual memory management operating system |
| US5907867A (en) * | 1994-09-09 | 1999-05-25 | Hitachi, Ltd. | Translation lookaside buffer supporting multiple page sizes |
| US5680566A (en) * | 1995-03-03 | 1997-10-21 | Hal Computer Systems, Inc. | Lookaside buffer for inputting multiple address translations in a computer system |
| US5787476A (en) | 1995-05-05 | 1998-07-28 | Silicon Graphics, Inc. | System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer |
| US5638315A (en) * | 1995-09-13 | 1997-06-10 | International Business Machines Corporation | Content addressable memory for a data processing system |
| US5813027A (en) * | 1996-03-08 | 1998-09-22 | Vlsi Technology, Inc. | Method for storing and transferring wave table audio samples using a DSP cache, a link list structure, and compression |
| US5793970A (en) * | 1996-07-11 | 1998-08-11 | Microsoft Corporation | Method and computer program product for converting message identification codes using a conversion map accesible via a data link |
| US5749087A (en) * | 1996-07-30 | 1998-05-05 | International Business Machines Corporation | Method and apparatus for maintaining n-way associative directories utilizing a content addressable memory |
| US6199152B1 (en) | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
| US6047365A (en) * | 1996-09-17 | 2000-04-04 | Vlsi Technology, Inc. | Multiple entry wavetable address cache to reduce accesses over a PCI bus |
| US6438663B1 (en) * | 1996-12-11 | 2002-08-20 | Steeleye Technology, Inc. | System and method for identifying shared virtual memory in a computer cluster |
| US5991862A (en) * | 1996-12-30 | 1999-11-23 | Sun Microsystems, Inc. | Modified indirect addressing for file system |
| US5899994A (en) * | 1997-06-26 | 1999-05-04 | Sun Microsystems, Inc. | Flexible translation storage buffers for virtual address translation |
| JP3621116B2 (ja) * | 1997-08-11 | 2005-02-16 | トランスメタ・コーポレーション | 先進のプロセッサのための変換メモリ保護装置 |
| US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
| US6631442B1 (en) | 1999-06-29 | 2003-10-07 | Emc Corp | Methods and apparatus for interfacing to a data storage system |
| US6877158B1 (en) * | 2000-06-08 | 2005-04-05 | International Business Machines Corporation | Logical partitioning via hypervisor mediated address translation |
| US6968469B1 (en) | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
| TW591388B (en) * | 2003-02-21 | 2004-06-11 | Via Tech Inc | Memory address decoding method and related apparatus by bit-pattern matching |
| TWI221221B (en) * | 2003-02-27 | 2004-09-21 | Via Tech Inc | Address decoding method and related apparatus by comparing mutually exclusive bit-patterns of address |
| KR100543932B1 (ko) * | 2003-04-30 | 2006-01-23 | 주식회사 하이닉스반도체 | 초기화 동작시간이 감소된 태그블럭을 구비하는 반도체 메모리 장치 및 그의 구동방법 |
| US8099577B2 (en) * | 2007-03-20 | 2012-01-17 | Oracle International Corporation | Managing memory in a system that includes a shared memory area and a private memory area |
| US9092359B2 (en) | 2012-06-14 | 2015-07-28 | International Business Machines Corporation | Identification and consolidation of page table entries |
| US9811472B2 (en) * | 2012-06-14 | 2017-11-07 | International Business Machines Corporation | Radix table translation of memory |
| US9753860B2 (en) | 2012-06-14 | 2017-09-05 | International Business Machines Corporation | Page table entry consolidation |
| KR20160122278A (ko) | 2012-08-18 | 2016-10-21 | 퀄컴 테크놀로지스, 인크. | 프리페칭을 갖는 변환 색인 버퍼 |
| US10997071B2 (en) * | 2018-11-27 | 2021-05-04 | Micron Technology, Inc. | Write width aligned storage device buffer flush |
| US11061598B2 (en) * | 2019-03-25 | 2021-07-13 | Western Digital Technologies, Inc. | Optimized handling of multiple copies in storage management |
| US12321300B2 (en) * | 2023-06-30 | 2025-06-03 | Advanced Micro Devices, Inc. | Apparatus and methods for translating transactions between one or more requesting units and a target unit |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3618045A (en) * | 1969-05-05 | 1971-11-02 | Honeywell Inf Systems | Management control subsystem for multiprogrammed data processing system |
| US4376297A (en) * | 1978-04-10 | 1983-03-08 | Signetics Corporation | Virtual memory addressing device |
| FR2428871A1 (fr) * | 1978-06-15 | 1980-01-11 | Philips Data Syst | Extension de l'espace d'adressage direct dans un systeme d'ordinateur |
| US4218743A (en) * | 1978-07-17 | 1980-08-19 | International Business Machines Corporation | Address translation apparatus |
| JPS5576447A (en) * | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
| US4254463A (en) * | 1978-12-14 | 1981-03-03 | Rockwell International Corporation | Data processing system with address translation |
| US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
| US4484262A (en) * | 1979-01-09 | 1984-11-20 | Sullivan Herbert W | Shared memory computer method and apparatus |
| JPS55112651A (en) * | 1979-02-21 | 1980-08-30 | Fujitsu Ltd | Virtual computer system |
| US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
| US4378591A (en) * | 1980-12-31 | 1983-03-29 | Honeywell Information Systems Inc. | Memory management unit for developing multiple physical addresses in parallel for use in a cache memory |
| US4485435A (en) * | 1981-03-09 | 1984-11-27 | General Signal Corporation | Memory management method and apparatus for initializing and/or clearing R/W storage areas |
| US4445170A (en) * | 1981-03-19 | 1984-04-24 | Zilog, Inc. | Computer segmented memory management technique wherein two expandable memory portions are contained within a single segment |
| US4477871A (en) * | 1981-11-23 | 1984-10-16 | Motorola, Inc. | Global operation coordination method and circuit |
| US4488256A (en) * | 1981-11-23 | 1984-12-11 | Motorola, Inc. | Memory management unit having means for detecting and preventing mapping conflicts |
| US4473878A (en) * | 1981-11-23 | 1984-09-25 | Motorola, Inc. | Memory management unit |
| US4519032A (en) * | 1982-06-09 | 1985-05-21 | At&T Bell Laboratories | Memory management arrangement for microprocessor systems |
| US4550368A (en) * | 1982-07-02 | 1985-10-29 | Sun Microsystems, Inc. | High-speed memory and memory management system |
| US4527232A (en) * | 1982-07-02 | 1985-07-02 | Sun Microsystems, Inc. | High-speed memory and memory management system |
| US4528648A (en) * | 1982-07-21 | 1985-07-09 | Sperry Corporation | Memory management system |
| US4545016A (en) * | 1983-01-07 | 1985-10-01 | Tandy Corporation | Memory management system |
| US4736287A (en) * | 1983-06-20 | 1988-04-05 | Rational | Set association memory system |
| US4580217A (en) * | 1983-06-22 | 1986-04-01 | Ncr Corporation | High speed memory management system and method |
| US4577274A (en) * | 1983-07-11 | 1986-03-18 | At&T Bell Laboratories | Demand paging scheme for a multi-ATB shared memory processing system |
| US4532120A (en) * | 1983-12-28 | 1985-07-30 | Ethyl Corporation | Silane purification process |
-
1987
- 1987-07-16 US US07/074,310 patent/US4914577A/en not_active Expired - Fee Related
-
1988
- 1988-07-05 JP JP63167450A patent/JPH0198040A/ja active Pending
- 1988-07-13 AU AU22549/88A patent/AU2254988A/en not_active Abandoned
- 1988-07-13 WO PCT/US1988/002378 patent/WO1989000727A1/en not_active Ceased
- 1988-07-15 CA CA000572244A patent/CA1320591C/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CA1320591C (en) | 1993-07-20 |
| US4914577A (en) | 1990-04-03 |
| WO1989000727A1 (en) | 1989-01-26 |
| AU2254988A (en) | 1989-02-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0198040A (ja) | メモリ管理システムおよびその動作方法 | |
| US5475827A (en) | Dynamic look-aside table for multiple size pages | |
| CA1278101C (en) | Paged virtual cache system | |
| US5628023A (en) | Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view | |
| EP0175091B1 (en) | Fast two-level dynamic address translation method and means | |
| JP2684196B2 (ja) | ワークステーシヨン | |
| US6173369B1 (en) | Computer system for processing multiple requests and out of order returns using a request queue | |
| US4905141A (en) | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification | |
| US4525778A (en) | Computer memory control | |
| CA1199420A (en) | Hierarchical memory system including separate cache memories for storing data and instructions | |
| US5257361A (en) | Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation | |
| US5835963A (en) | Processor with an addressable address translation buffer operative in associative and non-associative modes | |
| US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
| EP0911737A1 (en) | Cache memory with reduced access time | |
| JPS62260248A (ja) | データ処理システム | |
| JP3669555B2 (ja) | 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置 | |
| CN85106711A (zh) | 微处理机系统的存储管理 | |
| US6351797B1 (en) | Translation look-aside buffer for storing region configuration bits and method of operation | |
| US5276850A (en) | Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously | |
| JP3045952B2 (ja) | フルアソシアティブ・アドレス変換器 | |
| JP4459628B2 (ja) | キャッシュメモリにおけるコンテクスト識別子の使用 | |
| US5287482A (en) | Input/output cache | |
| US20020156989A1 (en) | Method for sharing a translation lookaside buffer between CPUs | |
| EP0730228B1 (en) | ECC protected memory organization with pipelined read-modify-write accesses | |
| US5452418A (en) | Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation |