[go: up one dir, main page]

JPS60123947A - Virtual memory - Google Patents

Virtual memory

Info

Publication number
JPS60123947A
JPS60123947A JP59233427A JP23342784A JPS60123947A JP S60123947 A JPS60123947 A JP S60123947A JP 59233427 A JP59233427 A JP 59233427A JP 23342784 A JP23342784 A JP 23342784A JP S60123947 A JPS60123947 A JP S60123947A
Authority
JP
Japan
Prior art keywords
address
page
virtual
bit
bits
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.)
Granted
Application number
JP59233427A
Other languages
Japanese (ja)
Other versions
JPH0332092B2 (en
Inventor
フイリツプ・ドイス・ヘスター
リチヤード・オズモンド・シンプソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS60123947A publication Critical patent/JPS60123947A/en
Publication of JPH0332092B2 publication Critical patent/JPH0332092B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、広くはコンピュータメモリシステムに関し
、特に仮想メモリシステムに関するものである。さらに
詳しく述べるなら、この発明は、仮想アドレスを実メモ
リアドレスに変換し、メモリ階層内で特定の制御機能を
行うための装置に関するものである。
DETAILED DESCRIPTION OF THE INVENTION Field of the Invention This invention relates generally to computer memory systems, and more particularly to virtual memory systems. More particularly, the present invention relates to an apparatus for converting virtual addresses to real memory addresses and performing certain control functions within a memory hierarchy.

[従来技術] 最新のコンピュータシステムにおいては、プログラムを
実行する際、システムのどこかに(すなわち、キャッシ
ュ/主記憶/ダイレクトアクセス記憶装@(DASD)
の記憶階層のどこかのレベル、もしくは分散ネットワー
クのノードに)在駐するデータ、またはコードにアクセ
スすることが頻繁に試みられる。例えば、最も初歩的な
システムにおいて、このアクセスを行うためにプログラ
ムが何を理解しなければならないかを考えてみよう: a−1) データ(あるいはコード)はどこにあるのか
?そのロケーションによってアクセスにはどんな種類の
アドレス(例えば、24ビツトからなる主記憶アドレス
、ディスクトラックのセクタアドレスまたはネットワー
クのノードアドレスなど)を使用しなければならないか
が決定されよう。また、そのデータの位置によって、ア
クセスを行うためには、どんな種類の命令(例えば、主
記憶アクセスのためのロード/記憶/分岐、ディスクア
クセスのためのコマンドワード、またはネットワークア
クセスのための回線プロトコルなど)を使用しなければ
ならないかが決定されよう。
[Prior Art] In modern computer systems, when a program is executed, it is stored somewhere in the system (i.e., cache/main memory/direct access storage (DASD)).
Attempts are frequently made to access data or code residing at some level in the storage hierarchy of a computer, or at a node in a distributed network. For example, consider what a program must understand to make this access in the most rudimentary system: a-1) Where is the data (or code) located? Its location will determine what type of address (eg, a 24-bit main memory address, a sector address of a disk track, or a node address of a network) must be used for access. Also, depending on the location of the data, what type of instruction (e.g. load/store/branch for main memory access, command word for disk access, or line protocol for network access) is required to perform the access. etc.) should be used.

a−2) このデータは他の実行プログラムと供用され
ているか?もしそうなら、ある種のロックが解除されな
ければアクセスを進めることはできない。そして、この
プログラムがデータに対して行おうとしている変化を、
この時点で他のプログラムが窺い知ることがなければ、
私用アドレスに対して記憶命令が出されなくてはならな
い。
a-2) Is this data shared with other executable programs? If so, access cannot proceed unless some type of lock is released. And the changes that this program is trying to make to the data,
If no other program knows at this point,
A store command must be issued to a private address.

a−3) このデータは回復可能であるべきか?もしそ
うなら、必要時にデータの一つ前の一定状態が検索可能
となるように、何らかの1′ジヤーナリング策が講じら
れなければならない。
a-3) Should this data be recoverable? If so, some 1' journaling strategy must be taken so that the previous constant state of the data can be retrieved when needed.

さて、このきわめて初歩的なシステムにおいて、プログ
ラムがアクセス毎に上記の識別動作を行うことを実際に
要求されているものと仮定しよう。
Now suppose that in this very rudimentary system, a program is actually required to perform the above identification operation on every access.

すると次のような結果が生じてこよう:b−1) もし
このプログラムが汎用でなくてはな 。
Then, the following results will occur: b-1) If this program must be general-purpose.

らないなら、最も頻繁に生じる“単純かつ安全な″諸要
求に対して、すなわち主記憶の私用で非回復的なデータ
に対してすらアクセスがきわめて低速になるだろう。
Otherwise, access would be extremely slow even for the most frequently encountered "simple and safe" requests, ie, for private, non-recoverable data in main memory.

b−2) もしプログラムを良好に走らせようとするな
ら、プログラムは1つのアクセスモードにロックされる
ことになろう。すると、プログラムは異なった特性のデ
ータに対しては正確に動作しないだろう。
b-2) If the program is to run well, it will be locked into one access mode. Then the program will not work correctly on data with different characteristics.

b−3) そのプログラムは複雑で、膨大で、エラーを
生じやすいものとなるだろう。
b-3) The program will be complex, voluminous, and error-prone.

そこで、最新のコンピュータシステムはさまざまな程度
において上記問題に取り組んでいる。例えば: c−1)再配置可能なアーキテクチャにより、一般的に
、私用で非回復的で非持続的なデータ及びプログラムが
、16〜32ビツトのアドレスサイズ(通常、一時計算
用)により一律にアドレス可能となる。これらのアーキ
テクチャを適正なアドレス’& 換(1ook−asi
de)ハードウェアについて実現した場合、それらのア
ドレスのきわめて大部分はキャッシュまたは主記憶の速
度で実行される。
Modern computer systems therefore address the above problems to varying degrees. For example: c-1) Relocatable architectures typically allow private, non-recoverable, non-persistent data and programs to be uniformly distributed with an address size of 16-32 bits (typically for temporary computations). Addressable. These architectures can be converted to appropriate addresses (1ook-asi
de) When implemented in hardware, the vast majority of those addresses are executed at cache or main memory speeds.

そして、このアドレス変換ハードウェアに障害が生じた
ときのみ(それが起こるのは100回のうち1回以下で
ある)、システムは再配置可能なテーブル構造にアクセ
スするという手間を払うことになる。さらに、その再配
置可能なテーブル構造に障害が生じたとき(すなわち、
データが主記憶にないとき)のみ、システムはページフ
ォールトというオーバーヘッドを払うことになる。この
ように、上記システムではペナルティが払われるのは実
際にそのペナルティが必要なときのみであるが、これは
すぐれたアーキテクチャの到達点であろう。
And only when this address translation hardware fails (which happens less than 1 time out of 100) does the system go to the trouble of accessing the relocatable table structure. Additionally, when that relocatable table structure fails (i.e.
Only when the data is not in main memory does the system incur the overhead of page faults. Thus, in the system described above, penalties are only paid when they are actually needed, which would be the goal of a good architecture.

c−2) このプログラムの実行能力を超えてデータを
持続すべきときは、最新のシステムでは、ロード/記憶
/分岐命令のかわりに、ソフトウェアによって実行され
る゛′アクセス方法″に対する明示的な要求によってア
クセスを行うことが必要とされる。これらのアクセス方
法は″記録及びファイル″と呼ばれるある決められた総
量に組成されたデータを汎くサポートするものである。
c-2) When data is to persist beyond the execution capabilities of this program, modern systems require an explicit request for an ``access method'' to be performed by the software instead of load/store/branch instructions. These access methods generally support data organized into fixed volumes called "records and files."

アクセスのための″命令″は通常、″読み取り/書き込
み″或いは″ゲット/プツト″と呼ばれている。
The "instructions" for access are commonly called "read/write" or "get/put."

このデータは共用されておらず、回復可能でもない。こ
のデータは実際上、主記憶(バッファ領域のどこか)に
在駐することができる。しかし、アクセスのたびに、プ
ログラムはこれらの明示的なパ読み取り/@:き込み″
要求というオーバヘラ1くを払わなりれはならない。こ
のようなアクセス方法は、適正に設定されたときは、初
歩的なシステムのみでなくより一般的なシステムで使用
可能かつあまり複雑でないプログラムを実現させる。
This data is neither shared nor recoverable. This data can actually reside in main memory (somewhere in a buffer area). However, on every access, the program reads/@:writes these explicit parameters.
You must not have to pay the extra burden of demands. Such an access method, when properly configured, allows for less complex programs that can be used not only in rudimentary systems but also in more general systems.

しかし、これらのアクセスの実行速度は一律にロード/
記憶方式よりも低く、またアクセスされたデータは好適
な集合構造に構成する必要がある。
However, the execution speed of these accesses is uniformly
storage scheme, and the accessed data must be organized into a suitable aggregate structure.

c−3) データを共用または回復させるべき場合に、
最新のシステムでは、ソフトウェアにより実行されるパ
データベースサブシステム″に対して明示的な要求が必
要である。これらのアクセスの速度は、一般的には上記
アクセス方法の場合の速度よりもより遅い。これは、ロ
ックとジャーナルの管理という付加的な機能のためのみ
でなく、これらのサブシステムが支持するデータの集計
の種類(例えば、データの関係、階層など)それ自身が
相当に複雑なためである。
c-3) When data should be shared or recovered,
Modern systems require explicit requests to the database subsystem implemented by software. The speed of these accesses is generally slower than that of the access methods described above. This is not only due to the additional functionality of locking and journal management, but also because the types of data aggregation these subsystems support (e.g., data relationships, hierarchies, etc.) are themselves fairly complex. be.

すなわち、実際、主記憶中のバッファでデータをより簡
単に構造化させることができるかもし1bないが、アク
セス要求のたび毎にオーノベヘッドを支払う必要がある
That is, it may indeed be possible to structure the data more easily in buffers in main memory, but one would have to pay an overhead for each access request.

また、″チェックポインティング″と呼ばれる手段を備
えて非持続性データの回復をはかるシステムが設けられ
ている。このとき、回復可能なアプリケーションを作成
しようとするプログラマは、計算データのチェックポイ
ンティング、ファイルの明示的バックアップ及びデータ
ベースに対する″確約″命令、という三つの異なる機能
を扱わなければならない。
Additionally, systems are provided that provide a means called "checkpointing" to recover non-persistent data. A programmer attempting to create a recoverable application must then deal with three different functions: checkpointing computational data, explicit backups of files, and "commit" commands to the database.

IBMシステム/38は、すべてのデータに対して少く
とも一様なアドレス構造を与える点で他のシステムより
も進んでいる。しかし、そのシステムも、すべてのアド
レスを膨大にし、アクセスを低下させ、アークテクチャ
を実現するのに必要な記憶とハードウェアとを増大させ
るという犠牲を払ってそのことを達成しているのであり
、さらにデータの共用や回復を行うための一様な手段を
与えるまでに至っていない。
The IBM System/38 is more advanced than other systems in providing at least a uniform address structure for all data. However, that system also achieves this at the cost of making all addresses larger, reducing access, increasing the storage and hardware required to implement the architecture, and... It still does not provide a uniform means for data sharing and recovery.

また、本質的には単一のユニットにより実行されるので
あれ、あるいは複数の処理ユニットにより実行されるの
であれ、単一のメモリを複数のコンピュータプログラム
で共用するようにしたさまざまな技術が従来より知られ
ている。メモリをこのようにして複数のプログラムで共
用しようとすると、きわめて大きい族メモリの容量を要
する。
Additionally, various techniques have been developed in the past for allowing a single memory to be shared by multiple computer programs, whether executed by essentially a single unit or by multiple processing units. Are known. Sharing memory among multiple programs in this way requires an extremely large amount of family memory.

この必要な容量はメモリの実際の容量よりもはるかに太
きいきとがしばしばである。例えば、もしシステ11が
32ビツトのアドレススキームを使用するなら、2の3
2乗バイトの仮想記憶容量が利用++J能となる。この
仮想記憶空間は、従来、予定の数の領域またはセグメン
トに分割されるものと考えられている。そしてこれらの
領域またはセグメントの各々はさらに複数のページに分
割され、各ページは予定の数のバイトをもつ予定の数の
ラインを備えることになる。このように、仮想記憶空間
に割りつけされたセグメント及びページの指定またはア
ドレスは任意にプログラムされた指定であり、主記憶の
中の実際のロケーションではない。従って、仮想セグメ
ントとページは、通常主記憶全体にランダムに配置され
ており、必要時に2次記憶装置と主記憶との間でスワッ
プ・インまたはスワップ・アウトする。
This required capacity is often much larger than the actual capacity of the memory. For example, if system 11 uses a 32-bit addressing scheme, 2 of 3
The virtual storage capacity of squared bytes becomes usable. This virtual storage space is conventionally thought of as being divided into a predetermined number of regions or segments. Each of these regions or segments is then further divided into pages, each page having a predetermined number of lines with a predetermined number of bytes. Thus, the designations or addresses of segments and pages allocated to virtual storage space are arbitrarily programmed designations and are not actual locations in main memory. Therefore, virtual segments and pages are typically randomly located throughout main memory and are swapped in and out between secondary storage and main memory as needed.

主記憶におけるセグメントとページのランダムな配置を
行うためには、主記憶中に配置されて従来ページフレー
ムテーブルと呼ばれている一組のアドレス変換テーブル
を用いて、仮想アドレスを実アドレスに変換する事が必
要である。大型の仮想システムにおいては、そのような
きわめて多数の変換テーブルが使用される。これらを構
成するには異なる複数の方法があるが、本質的な特徴は
In order to randomly arrange segments and pages in main memory, virtual addresses are converted to real addresses using a set of address translation tables, conventionally called page frame tables, located in main memory. things are necessary. In large virtual systems, a large number of such translation tables are used. There are several different ways to configure these, but the essential characteristics are:

特定の仮想アドレスが、その仮想アドレスに対応する実
アドレス(もし存在するなら)を含むテーブル中のメモ
リロケーションに対して論理的にマツプされなければな
らない、という事である。
This means that a particular virtual address must be logically mapped to a memory location in a table containing the virtual address's corresponding real address (if any).

機能的には、そのようなアドレス変換テーブルの動作は
次のとおりである: すなわち、特定の仮想アドレスの最高位ビットは上記変
換テーブルの特定のセクションにアクセスするのに使用
される。この変換テーブルは特定のフレームまたはセグ
メントに関するものであり、その変換テーブルでは下位
のビットについて特定の仮想ビットが含まれているか否
かの検索が行なわれる。そして、そこに特定の仮想ビッ
トが含まれていれば、どのような実アドレスがその仮想
アドレスに対応しているかがさらに検索される。仮想フ
レームアドレスにより指定された各ページテーブルには
、フレームのうちある1つのすべてのページの実ロケー
ションが含まれている。それゆえ、もし特定のフレーム
が例えば16ページに分割されているとすると、各フレ
ームに対するそれぞれ16ページのテーブルと、個々の
ページテーブルの特定の組を指定する記入項目をもつ、
分離したフレームテーブルとが存在することになろう。
Functionally, the operation of such an address translation table is as follows: The most significant bit of a particular virtual address is used to access a particular section of the translation table. This conversion table is related to a specific frame or segment, and in this conversion table, a search is performed to see whether or not the lower bits include a specific virtual bit. If a specific virtual bit is included, a search is made to find out what real address corresponds to that virtual address. Each page table specified by a virtual frame address contains the real locations of all pages in one of the frames. Therefore, if a particular frame is divided into, say, 16 pages, then each frame has a table of 16 pages and an entry specifying the particular set of individual page tables.
There will be a separate frame table.

ただし、これらは−膜化された記述であり、ページテー
ブルを用いたアドレス変換を構成する多くの異なった方
法やCPUで作成した仮想アドレスから出発して、アド
レスを行うための手段等もあることを理解されたい。尚
、のちに述べる本発明の好適な実施例の説明において、
ハツシュアドレステーブル(HAT)及び逆ページテー
ブル(■PT)についての詳細な記述を行うことにする
However, these are thin descriptions, and there are many different ways of configuring address translation using page tables, starting from virtual addresses created by the CPU, etc. I want you to understand. In addition, in the description of preferred embodiments of the present invention to be described later,
A detailed description will be given of the hash address table (HAT) and the reverse page table (PT).

さて、実アドレス変換を行う場合には、システム構成全
体の細部やページテーブルの使用にかかわりなく、ペー
ジ・フレームテーブルへの個有のエントリが作成され、
ページテーブルは現在の仮想アドレスを引数として使用
することによりアクセスされる。そして、通常は、複数
のメモリにアクセスした後に、ページテーブルへの所望
のエントリが見出される。この時点で、すべてのシステ
ムのプロトコルが追従されているか否かを決定するだめ
のチェックが行なわれ、もしそうなら、記憶装置中の要
求されたページの実アドレスがページテーブルからアク
セスされる。仮想アドレスのバイト部分は本質的に相対
アドレスであり、それは実アドレス中と仮想アドレス中
とで等しいものである。こうして、仮想アドレスの一所
望の実ページアドレス部分が−たん変換されると、その
バイ1へ部分は実ページアドレスロケーションに連結さ
れ、主記憶における実バイトアドレスが作成される。
Now, when performing real address translation, a unique entry in the page/frame table is created, regardless of the details of the overall system configuration or the use of page tables.
The page table is accessed by using the current virtual address as an argument. The desired entry into the page table is then typically found after accessing multiple memories. At this point, a check is made to determine whether all system protocols are being followed, and if so, the real address of the requested page in storage is accessed from the page table. The byte portion of a virtual address is essentially a relative address, which is the same in real and virtual addresses. Thus, once a desired real page address portion of a virtual address has been translated, that by-by-one portion is concatenated to a real page address location to create a real byte address in main memory.

ところで、最新の仮想メモリシステムでは周知のことで
はあるが、メモリにアクセスするたびに仮想アドレスを
変換しなければならないことを避けるため、仮想アドレ
スを実アドレスに変換するためのテーブルは、最新では
ディレクトリ変換テーブル(I)LAT)あるいはアド
レス変換テーブル(Translation Look
−aside Table:TLB)と呼ばれる特定の
組の高速アクセス可能なテーブルまたは高速メモリ中に
保持される。尚、上記DLATまたはTLBは本発明中
でも使用される。これらのテーブルまたはバッファは、
一般に、特に高速あるいは高速アクセス可能なメモリで
あり、前述したページフレームテーブルよりもずっと高
速にアクセス可能である。従って、これにより、頻繁に
使用される仮想アドレスがこのテーブル中に記憶され高
速アクセス可能となるので、コンピュータの実行時間を
大いに節約することができる。そのようなTLBアドレ
ス変換システムの有効性は、特定の仮想ページへの最初
のアクセスのあとで、所定のプログラムの実行の間にそ
の同一仮想ぺ一ジに対してきわめて多数回のアクセスが
ある、という事実に基づき肯定される。また、既に述べ
たように、それ以降のアクセスはあるページ内の異なる
ラインとバイトとに対して行なわれるのであるが、仮想
ページから実ページへの変換は、どのライン及びバイト
がアドレスされるかにがかわらず、そのページについて
は同一である。
By the way, as is well known in modern virtual memory systems, in order to avoid having to translate virtual addresses every time memory is accessed, the table for translating virtual addresses to real addresses is Translation table (I) LAT) or address translation table (Translation Look
-aside Table (TLB)) is maintained in a specific set of fast-accessible tables or fast memory. Note that the above DLAT or TLB is also used in the present invention. These tables or buffers are
Generally, it is a particularly fast or fast-accessible memory, and can be accessed much faster than the page frame table described above. This therefore saves a great deal of computer execution time since frequently used virtual addresses are stored in this table for fast access. The effectiveness of such a TLB address translation system is that after the first access to a particular virtual page, there are numerous accesses to that same virtual page during the execution of a given program. It is affirmed based on the fact that Additionally, as mentioned above, subsequent accesses are made to different lines and bytes within a page, but the conversion from a virtual page to a real page is dependent on which lines and bytes are addressed. Regardless of the page, the page is the same.

すなわち、TLBの使用により(ページフレームテーブ
ルで)行うべき変換回路が低減され、このようにして仮
想メモリシステム全体の動作に相当の効果が得られる。
That is, the use of TLBs reduces the translation circuitry that must be performed (in the page frame table), thus providing a significant benefit to the overall operation of the virtual memory system.

既に述べたように、仮想メモリシステムはコンピュータ
技術において長年来周知である。また、仮想アドレスの
実アドレスへの変換可能性を保証すべきある種のりロケ
ーション手段、あるいはアドレス変換手段を介して仮想
アドレスを実アドレスに変換しなければならないことも
周知である。
As previously mentioned, virtual memory systems have been known in computer technology for many years. It is also well known that a virtual address must be translated into a real address via some kind of location means or address translation means which must ensure that the virtual address can be translated into a real address.

そこで、仮想記憶装置に関連するすべての特許や論文を
すべてここにリストアツブすることはとても不可能だが
、次の示す従来技術が、典型的なアドレス変換機構とし
て十分例示的であり、また本願発明にとって、知られて
いる最も近い技術であると発明者は信じる。
Therefore, it is impossible to restore here all the patents and papers related to virtual storage devices, but the following prior art is sufficiently illustrative as a typical address translation mechanism, and is also useful for the present invention. , which the inventors believe is the closest technology known.

先ず、 Berglund他の米国特許第382832
7号にはアドレスに対し最高位ビットを付加する手段に
よりメモリを拡張するための記憶制御技術が記載されて
いる。その最高位ビットはプログラムの見かけのアドレ
スの一部ではなくて、割り込みモード、Ilo (入出
力)モード等の異なったシステムモードにより制御を受
けるのである。この特許はメモリ拡張システムに関する
ものだが、適当なアドレス変換用ハードウェアが組み込
まれている。
First, U.S. Patent No. 382,832 to Berglund et al.
No. 7 describes a storage control technique for expanding memory by adding the most significant bit to an address. The most significant bit is not part of the program's apparent address, but is controlled by different system modes such as interrupt mode, Ilo (input/output) mode, etc. This patent relates to a memory expansion system that incorporates appropriate address translation hardware.

次に、 Bourke他の米国特許第4042911号
には主記憶を拡大するためのシステムが開示されており
、そのシステムには明らかにアドレス変換手段が備えら
れている。
Next, U.S. Pat. No. 4,042,911 to Bourke et al. discloses a system for expanding main memory, which system apparently includes address translation means.

しかし、これらのどの特許にも、仮想アドレス拡張の概
念や、TLBとページフレームテーブルの双方に特別な
ロックビットを付与えることは開示されていない。
However, none of these patents disclose the concept of virtual address extension or the provision of special lock bits to both the TLB and page frame table.

1982年4月発行のACM SIGPLANMOTI
CES、Vo 1.17.No、4に記載の“The 
801 Minicomputer”と題するGeor
geRadinによる論文には、ある実験的なコンビニ
〜りについての一般的な記述が与えられている。そのコ
ンピュータとは、動作特性が、相当な程度、リロケーシ
ョン機構が特定の用途をもつようなきわめて高速のメモ
リサブシステムに依存するものである。
ACM SIGPLANMOTI published April 1982
CES, Vo 1.17. “The
801 Minicomputer”
The paper by geRadin gives a general description of an experimental convenience store. The computers are those whose operating characteristics depend to a considerable extent on very high speed memory subsystems for which relocation mechanisms have specific uses.

Bourke他の米国特許第4050094号は、スタ
ックセグメンテーションレジスタを有するアドレスリロ
ケーション変換器を備えたメモリ構成について開示する
。この特許に開示された特有のセグメンテーションレジ
スタは、本発明で利用される拡張された仮想アドレスよ
りもむしろ、主記憶中の物理的ブロックの、割り付けさ
れた実アドレスを記憶するために利用される。
US Pat. No. 4,050,094 to Bourke et al. discloses a memory organization with an address relocation translator having a stack segmentation register. The unique segmentation registers disclosed in this patent are utilized to store allocated real addresses of physical blocks in main memory, rather than the extended virtual addresses utilized in the present invention.

Mitchell他の米国特許第4251860号は、
大型の仮想アドレスメモリを実現するための仮想アドレ
ス装置を備えたメモリアドレスシスタムを開示する。こ
の特許には、仮想アトセスをセグメント部分とオフセッ
ト部分とに分割することが記載されている。しかし、そ
のセグメント部分と。
U.S. Pat. No. 4,251,860 to Mitchell et al.
A memory address system with a virtual address device for realizing a large-sized virtual address memory is disclosed. This patent describes dividing a virtual access into a segment part and an offset part. But with that segment part.

それに接続さ九たセグメントレジスタとはアドレスを分
割する、という従来の方法で使用されているのであり、
本発明のアドレス変換スキームとはその動作状態が全く
異なるのである。
The nine segment registers connected to it are used in the traditional way of dividing the address.
The operating state is completely different from the address translation scheme of the present invention.

n i r n e y他の米国特許第4037215
号は、上述した米国特許第4050094号のシステム
と非常によく似たシステムを開示する。すなわち、その
システムにおいては、セグメンテーションレジスタの列
が、特定の実メモリブロックを指定するために使用され
る。この特許にはさらに、特定のセグメンテーションレ
ジスタに接続された「読み取り専用」有効ビットを使用
することが示されている。しかし、これらのビットは、
この発明のりロケーション機構のハードウェアに設けら
れた特殊な目的のロックビットとはほとんど類似すると
ころがない。」 Cords他の米国特許第4077059号はジャーナ
リングとコピーバックとを容易ならしめるために特殊な
制御手段を備えた階層的メモリシステムを開示する。こ
の特許には複数の2重メモリについて記載されており、
それにおいてはデータの現版が2重メモリのうちの一方
に保持され、データの変化が2重メモリのうち他方に結
知され、これにより、それに続くジャーナリングとコピ
ーバックの動作が容易となる。この特許のハードウェア
と制御手段も本発明のロックビットシステムとはほとん
ど類似しない。
U.S. Patent No. 4,037,215 to nirny et al.
No. 4,050,094 discloses a system very similar to that of the above-mentioned US Pat. No. 4,050,094. That is, in that system, a column of segmentation registers is used to specify a particular block of real memory. The patent further teaches the use of "read-only" valid bits connected to certain segmentation registers. But these bits are
There is little resemblance to the special purpose lock bits provided in the hardware of the glue location mechanism of this invention. No. 4,077,059 to Cords et al. discloses a hierarchical memory system with special controls to facilitate journaling and copyback. This patent describes multiple dual memories,
Therein, the current version of the data is maintained in one of the dual memories, and changes in the data are posted to the other of the dual memories, thereby facilitating subsequent journaling and copyback operations. The hardware and control means of this patent also bear little resemblance to the Rockbit system of the present invention.

11ogan他の米国特許第4064948号にはアド
レス変換システムが開示されている。このシステムはカ
ウンタを備えた手段を有しており、その11offma
n他の米国特許第4218743号はIBMシステム/
38のりロケーションアーキテクチャに関連して今まで
にリストアツブしたいくつかの特W1°のうちの−っの
例をなすものである。この特許は、■/○が仮想記憶コ
ンピュータシステム中でアドレス動作を処理する方法の
簡略化について述べたものである。仮想記憶システムに
関連する特許としては他に、米国特許第4170039
号、第4251860号、第4215402号などがあ
る。
No. 4,064,948 to No. 11ogan et al. discloses an address translation system. This system has means with a counter, its 11offma
n et al. U.S. Pat. No. 4,218,743 is IBM Systems/
This is one example of several features W1° that have been restored in connection with the 38-point location architecture. This patent describes a simplification of how ■/○ handles addressing operations in virtual memory computer systems. Other patents related to virtual memory systems include U.S. Patent No. 4,170,039.
No. 4251860, No. 4215402, etc.

Corde他の米国特許第4020466号もまた、ジ
ャーナリングとコピーパック手続とを簡単化するための
特殊な手段を組み込んだメモリシステムを開示するもの
である。しかし、この特許は本発明のロックビット制御
手段に全く関連がない。
U.S. Pat. No. 4,020,466 to Corde et al. also discloses a memory system that incorporates special measures to simplify journaling and copy pack procedures. However, this patent has no bearing on the lock bit control means of the present invention.

Lowlorの米国特許第3942155号は、仮想メ
モリシステムにおいである形状のセグメントの区分方式
を開示する。しかし、この特許で採用されているセグメ
ントの区分方式は、仮想アドレスを拡張するために使用
されるこの発明のセグメント方式とは全く異なるもので
ある。
Lowlor, US Pat. No. 3,942,155, discloses a scheme for partitioning segments of a shape in a virtual memory system. However, the segmentation scheme employed in this patent is quite different from the segmentation scheme of this invention used to extend virtual addresses.

また、仮想メモリ変換機構にアクセスするために、さま
ざまなハツシュスキームを使用するものの一例として米
国特許第4215402号を挙げておこう6 [発明が解決しようとする問題点] この発明の目的は、仮想記憶装置において、ハツシュア
ドレステーブルと逆ページテーブルとを結合させたテー
ブルを使用することにより、仮想メモリアドレスから実
メモリアドレスへの変換動作を支援するために必要なハ
ードウェアの量を低減することにある。
Additionally, U.S. Pat. No. 4,215,402 is cited as an example of using various hash schemes to access the virtual memory translation mechanism.6 [Problem to be Solved by the Invention] The purpose of the present invention is to: Reduce the amount of hardware required to support translation operations from virtual memory addresses to real memory addresses by using a table that combines a hash address table and a reverse page table in a virtual storage device. There is a particular thing.

[問題点を解決するための手段] この発明は、仮想メモリアドレスを実メモリアドレスに
変換するためのシステムで使用される結合されたテーブ
ルに関するものである。この結合されたテーブルは、仮
想アドレスから形成されたハツシュアドレスを利用した
ものである。そして、ハラシュア1くレス中の仮想アド
レスは、さらにページテーブルにアクセスするために索
引される。
SUMMARY OF THE INVENTION The present invention relates to a combined table used in a system for converting virtual memory addresses to real memory addresses. This combined table utilizes hash addresses formed from virtual addresses. The virtual address in the harasser response is then indexed for further access to the page table.

すなわち、そのページテーブルには各実メモリアドレス
に個別に対応する仮想メモリアドレスが含まれているの
である。この発明は、ある選択した仮想アドレスをハツ
シングしてハツシュアドレスを作成するための手段と、
結合されたテーブルとを提供するものである。この結合
されたテーブルは、各メモリアドレスの個別の仮想アド
レスからなる第1のリストと、各ハツシュアドレスを予
定の初期仮想アドレスに結合させる第2のリストとから
なる。」−記の予定の初期仮想アドレスは連結された一
群の仮想アドレスからなるものであり、それらの仮想ア
ドレスはハツシュされたときは、結合させたハツシュア
ドレスを作成する。この発明のシステムはさらに、選択
された仮想アドレスが配置されるまで、テーブル中で各
々の連結された群を検索するための手段と、上記仮想ア
ドレスのロケーションに応答して上記第1のリストから
配置された仮想アドレスの実メモリアドレスにアクセス
するための手段とを備えている。
That is, the page table includes a virtual memory address that individually corresponds to each real memory address. The invention provides means for hashing a selected virtual address to create a hash address;
It provides a joined table. This combined table consists of a first list of individual virtual addresses for each memory address and a second list that binds each hash address to its expected initial virtual address. ''--The planned initial virtual address consists of a concatenated group of virtual addresses that, when hashed, create a combined hashed address. The system of the invention further includes means for searching each concatenated group in the table until a selected virtual address is located from the first list in response to the location of the virtual address. and means for accessing the real memory address of the located virtual address.

[実施例] (A)仮想アドレス−実アドレス変換 構の概要第1図
は、本発明の一実施例の仮想アドレス−実アドレス変換
機構の概要ブロック図である。この変換機構は、最大1
6Mバイトの記憶装置とインターフェースを行うのに必
要な論理回路を備えている。このとき記憶装置はインタ
ーリーブ(介在)されるものでもされないものでもどち
らでもよく、またスタティック型とダイナミック型のど
ちらでもよい。この変換機構は機能的には三つの部分に
分割される。すなわち、第1図において、CPU記憶チ
ャネル(CSC)インターフェースとしての論理回路1
0は、共通フロン1へエンド回路12 (CFE)と、
アドレス変換論理回路14と、記憶制御論理回路16と
からなる。このうち共通フロントエンド回路12は、記
憶用チャネルからアドレス変換論理回路14と記憶制御
論理回路16とに適正なプロトコルを供給するためのも
のである。そして、記憶用チャネルを介して行き来する
すべての情報データはこの共通フロントエンド回路12
で処理されることになる。また、アドレス変換論理回路
14は、記憶用チャネルから受け取った仮想アドレスを
、記憶装置にアクセスするために使用される実アドレス
に変換するはたらきをもつ。このために、アドレス変換
論理回路14は、16個の互いに合同な類をなす、両方
向の集合体として構成されたアドレス変換バッファ(T
LB)を備えている。さらにアドレス変換論理回路14
には、要求に応じて主記憶のページテーブルからTLB
の入力端子に自動的に再ロードさせるための論理回路が
設けられている。記憶制御論理回路16はアドレス変換
論理回路14から記憶装置へのインターフェースを行う
ためのものである。記憶装置としてダイナミックが使用
されているときは、そのダイナミックメモリのリフレッ
シュ制御もこの記憶制御論理回路16によって行う。
[Embodiment] (A) Overview of Virtual Address-Real Address Conversion Structure FIG. 1 is a schematic block diagram of a virtual address-real address conversion mechanism according to an embodiment of the present invention. This conversion mechanism has a maximum of 1
It includes the logic circuitry necessary to interface with a 6MB storage device. At this time, the storage device may be either interleaved or non-interleaved, and may be either static or dynamic. This conversion mechanism is functionally divided into three parts. That is, in FIG. 1, logic circuit 1 as a CPU storage channel (CSC) interface
0 is the end circuit 12 (CFE) to the common freon 1,
It consists of an address conversion logic circuit 14 and a storage control logic circuit 16. Among these, the common front end circuit 12 is for supplying an appropriate protocol from the storage channel to the address translation logic circuit 14 and the storage control logic circuit 16. All information data passing back and forth via the storage channel is transferred to this common front end circuit 12.
will be processed. Address translation logic 14 also serves to translate virtual addresses received from the storage channel into real addresses used to access the storage device. To this end, the address translation logic circuit 14 includes address translation buffers (T
LB). Furthermore, the address translation logic circuit 14
The TLB is retrieved from the main memory page table on demand.
Logic circuitry is provided to automatically reload the input terminals of the. Storage control logic circuit 16 provides an interface from address translation logic circuit 14 to a storage device. When a dynamic memory device is used, refresh control of the dynamic memory is also performed by the memory control logic circuit 16.

尚、このとき注意しなければならないのは、この発明が
何よりも先ず周知のコンピュータ回路や、装置や、機能
的ユニットの近親な構造的結合及び機能的動作に要する
ものであって、それらの特定の詳細な構造にあるのでは
ない、ということである。従って、これらの周知の回路
、装置及びブロックの構造、制御手段及び配列は、理解
しやすいようにブロック表示と機能的図表を用いて図示
することとし、この発明に関連が深い箇所のみを詳細に
図示することを了解頂きたい。というのは、構成を細々
と記載するとこの発明の焦点が不明瞭になってしまうか
らであり、またこの発明の焦点でない周知の箇所は機能
的記載だけで、熟練した当業者にはきわめて明らかであ
ろうと考えるからである。さらに、これらのシステムの
さまざまな部分は、この発明の関連が深い特徴をとくに
強調するために適当に重点を置かれ、あるいは機能的に
記載しである。これ以降の記載は熟練した当業者をして
開示されるメモリシステムの可能性と能力とを認めさせ
、またその開示は、当業者がさまざまなコンピュータア
ーキテクチャにこの発明のメモリシスタムを適用実施す
るに十分な程度詳しいものであると信じる。
It should be noted that this invention is primarily concerned with the close structural combination and functional operation of well-known computer circuits, devices, and functional units; The problem lies not in the detailed structure of the structure. Therefore, the structures, control means, and arrangements of these well-known circuits, devices, and blocks will be illustrated using block representations and functional diagrams for ease of understanding, and only those portions that are closely related to this invention will be described in detail. Please understand that I am illustrating this. This is because a detailed description of the structure would obscure the focus of this invention, and well-known parts that are not the focus of this invention are only functional descriptions and are quite obvious to a person skilled in the art. This is because I think there will be. Additionally, various portions of these systems may be appropriately emphasized or functionally described to particularly emphasize pertinent features of the invention. The following description will enable those skilled in the art to appreciate the possibilities and capabilities of the disclosed memory system, and the disclosure will be sufficient to enable those skilled in the art to apply and implement the memory system of the present invention in a variety of computer architectures. I believe it is very detailed.

さて、実施例の説明に戻ろう。第1図のシステムでアド
レスが変換される(すなわち、仮想アドレスとして処理
される)か、あるいは実アドレスとして処理されるかは
、CPU記憶チャネル(C8C)上の変換モードピット
(Tビット)の値によって制御される。C8C上に何ら
かのリクエストを出す各々の装置は、そのリクエスト毎
に変換モードピットの値を制御することになる。この変
換モードピットは、CPUから出されるメモリアクセス
命令の適当な領域から取ったものである。
Now, let's return to the explanation of the embodiment. Whether an address is translated (that is, treated as a virtual address) or as a real address in the system of Figure 1 is determined by the value of the translation mode pit (T bit) on the CPU storage channel (C8C). controlled by Each device that makes some request on the C8C will control the value of the conversion mode pit for each request. This conversion mode pit is taken from an appropriate area of a memory access instruction issued by the CPU.

I10装置によって出された記憶装置へのアクセス命令
に対し、付属アダプタによってTビットの値が作成され
る。そして、Tビットが“1”であると、記憶アドレス
(チェツチ命令、データロード、データストア)がアド
レス変換論理回路14に送られる。また、Tビットがi
t Otzであ′ると、記憶アドレスは実アドレスとし
て処理される。
A T-bit value is created by the attached adapter in response to a storage access command issued by an I10 device. If the T bit is "1", the storage address (check instruction, data load, data store) is sent to the address conversion logic circuit 14. Also, T bit is i
If t Otz, the storage address is treated as a real address.

なお、ここに開示するアーキテクチャの範囲内では、ア
ドレス変換論理回路14に送られていない記憶要求に対
しては、記憶保護が有効とされない。
Note that within the scope of the architecture disclosed herein, storage protection is not enabled for storage requests that have not been sent to address translation logic 14.

しかし、参照及び変更のレコーディングは、記憶要求が
アドレス変換論理回路14に送られているか否かにかか
わらずすべての記憶要求に対して有効である。
However, reference and modification recording is valid for all storage requests regardless of whether the storage request is sent to address translation logic 14.

さて、アドレス変換論理回路14に送られたアドレスに
ついては、その変換動作は次のように進行する。
Now, regarding the address sent to the address translation logic circuit 14, the translation operation proceeds as follows.

尚、以下では厳密に論理的に順次進行するプロセスとし
て記載を行うが、さまざまな実行動作によりこれらの機
能の各部分を平行して実行してもよい。
Although described below as a process that proceeds strictly logically and sequentially, portions of these functions may be performed in parallel by various execution operations.

本発明のアドレス変換機構は、″単一レベル記憶″アド
レス構造を採用している。このアドレス変換機構は、こ
こに開示した好適な実施例中の次のものに対して支援を
行う: a)多重独立仮想アドレス空間 b)4Gバイトのアドレス空間 C)要求時ページング d)2048バイトまたは4096バイトのページ e)記憶保護機構 f)命令及びデータに対して共用されたセグメント g)12’8バイトラインのジャーナリング及びロッキ
ング h)16Gバイトまでの実記憶アドレス可能性i)各実
ページに対する参照及び変更ビットj)実アドレスのロ
ード、アドレス変換バッファ(TLB)入力の無効化、
及び例外アドレスの記憶に対するハードウェアの援助 記憶装置は、各々256Mバイトを有する4096個の
セグメントからなる、単一の40ビツトのアドレス空間
上にマツプされているかのように処理される。すなわち
、CPU記憶チャネル(C8C)から受け取った32ビ
ツトのアドレスは、16個のセグメントレジスタのうち
1個を選択するための、4個の最高位ピッ1−を用いて
40ビツトのアドレス(″長形仮想アドレス″)に変換
される。これは、選択したセグメントレジスタのもつ1
2ビツトの内容と、SO8から受け取った32ビツトの
うちから上位4ビツトを除いた残り28ビツトとを連結
したものである。この40ビツトの仮想アドレスは、記
憶装置にアクセスするため、アドレス変換機構によって
実アドレスに変換される。なお、仮想アドレスの大きさ
がハードウェアによって多少異なることは容易に見てと
れよう。
The address translation mechanism of the present invention employs a "single level storage" address structure. This address translation mechanism supports in the preferred embodiment disclosed herein: a) multiple independent virtual address spaces b) 4 Gbyte address space C) on-demand paging d) 2048 bytes or 4096 byte pages e) Memory protection mechanism f) Shared segment for instructions and data g) Journaling and locking of 12'8 byte lines h) Up to 16 Gbytes of real memory addressability i) References to each real page and change bit j) Load real address, invalidate address translation buffer (TLB) input,
The hardware backup storage for storage of exception addresses and exception addresses is treated as if mapped onto a single 40-bit address space consisting of 4096 segments of 256 Mbytes each. That is, a 32-bit address received from the CPU storage channel (C8C) is converted into a 40-bit address ("long") using the four highest bits 1- to select one of the 16 segment registers. virtual address”). This is the one that the selected segment register has.
This is a concatenation of the 2-bit content and the remaining 28 bits after removing the upper 4 bits from the 32 bits received from SO8. This 40-bit virtual address is translated into a real address by an address translation mechanism to access the storage device. Note that it is easy to see that the size of the virtual address varies somewhat depending on the hardware.

さて、任意の瞬間に、記憶装置のうち4Gバイトのみ、
すなわち16個のセグメントレジスタとして指定された
、256Mバイトの容量をもつ16個のセグメントのみ
が1ドレス可能である。この事実により、セグメントレ
ジスタに対して適当な値をロードすることによって、オ
ペレーティングシステムが多重独立仮想アドレス空間を
つくり出すことが可能となる。この方式によれば、限界
的なケースとして、完全に独立な4Gバイトのアドレス
空間を256個つくり出すことができよう。
Now, at any given moment, only 4 GB of storage
That is, only 16 segments with a capacity of 256 Mbytes, which are designated as 16 segment registers, can be addressed once. This fact allows the operating system to create multiple independent virtual address spaces by loading appropriate values into the segment registers. According to this scheme, in a marginal case, it would be possible to create 256 completely independent 4 GB address spaces.

しかし、(中核コードのような)いくつかのセグメント
が多重アドレス空間に亘って共有されることが多いであ
ろう。
However, it is likely that some segments (such as core code) will be shared across multiple address spaces.

また、IBMシステム370記憶保護機構と同様な記憶
保護機構が、2Kまたは4にバイトのページ基体上に設
けられている。記憶保護とフェッチ保護とは、各256
Mバイトのセグメントに独立に指定された(IBMシス
テム370のプログラム状況ワードにおけるキーと等価
な)保護キーにより支援される。
A storage protection mechanism similar to the IBM System 370 storage protection mechanism is also provided on a 2K or 4 byte page substrate. Memory protection and fetch protection are each 256
It is supported by protection keys (equivalent to the keys in the program status word of the IBM system 370) that are specified independently in M-byte segments.

さらに、保持記憶クラスに対しては、各仮想ページに連
結した一組の″ロックビット″により支援が行なわれる
。このロックピットは、記憶保護の細分性を(2にペー
ジに対して128バイト、あるいは4にページに対して
256バイトの)記憶の″ライン″まで有効に延長し、
オペレーティングシステムが保持変数に対する変更を検
知してその変更を自動的にジャーナルすることを可能と
する。尚、ここで使用される保護記憶クラスは、ディス
クファイル記憶上に常駐する記憶を意味するものとする
Additionally, the persistent storage class is supported by a set of "lock bits" associated with each virtual page. This lockpit effectively extends the granularity of storage protection to "lines" of storage (2.128 bytes per page, or 4.256 bytes per page);
Allows the operating system to detect changes to retained variables and automatically journal those changes. Note that the protected storage class used here means storage that resides on disk file storage.

(B)この実施例で使 される特粗螢肚4夙定義以下に
示す用語は、このあとの説明を通して使用されるもので
あり、説明を簡明にするためここで予め定義しておこう
(B) Definitions of 4 terms used in this embodiment The following terms will be used throughout the explanation that follows, and will be defined here in advance to simplify the explanation.

バイト・インデックス: 2にバイトのページに対して
は0から2047までの、また4にバイトのページに対
してはOから4095までの範囲の数字であり、この数
字はページまたはページフレーム内のバイトを識別する
ためのものである。
Byte Index: A number ranging from 0 to 2047 for a 2-byte page and from 0 to 4095 for a 4-byte page, which is the number of bytes within a page or page frame. It is used to identify.

このバイト・インデックスは、2にパイ1〜ページの場
合は有効アドレスの下位11ビツトから、また4にバイ
トページの場合は有効アドレスの下位12ビツトから取
ったものである。
This byte index is taken from the lower 11 bits of the effective address in the case of a 2-byte page, and from the lower 12 bits of the effective address in the case of a 4-byte page.

聚東りスΣ: 各ページフレームに個別に関連づけられ
た1つのビットであり、そのページフレlzに対して次
の記憶の参照(書き込みのみ)が行なわれたときは必ず
、変更ビットはII I IIにセットされる。
Jutoris Σ: One bit individually associated with each page frame, and whenever the next memory reference (write only) is made to that page frame, the modified bit is Set to II.

有効アドレス: 記憶チャネル上の装置によった発生さ
れた32ビツトの記憶チャネルアドレスである。この有
効アドレスは、ホストCPUにより、フェッチ命令や、
データロードや、データスi−アとして出力されたアド
レスであってもよく。
Effective Address: A 32-bit storage channel address generated by a device on the storage channel. This effective address is used by the host CPU in a fetch instruction,
It may also be an address output as a data load or a data address.

さらにまたDMA (直接メモリアクセス)アドレスの
ような記憶チャネル上のI10装置によって発生された
アドレスであってもよい。
It may also be an address generated by an I10 device on the storage channel, such as a DMA (Direct Memory Access) address.

ライン= 128バイト境界上のページの128ビツト
部分である。この128ビツトがロックビット(後述)
によって制御される記憶の数である。
Line = 128-bit portion of a page on a 128-byte boundary. These 128 bits are lock bits (described later)
is the number of memories controlled by .

一引ムクビツ1−: 保持記憶セグメントの各ページに
接続された16ビツトの組のうちの1つのビットである
。各ロックピットは記憶装置の1つのラインと接続され
ている。そして、あるラインにおける1〜ランザクジヨ
ンより(取引識別信号)、書き込みビット、及びロック
ピットの値により、保護記憶セグメント内で記憶アクセ
ス要求を容認するか拒否するかのどちらかが決定される
1-: One bit of a set of 16 bits connected to each page of the retention storage segment. Each lock pit is connected to one line of storage. Then, depending on the value of the 1 to run sequence (transaction identification signal), the write bit, and the lock pit on a certain line, it is determined whether to accept or deny the storage access request within the protected storage segment.

ページ: 2048バイトの境界上の2048バイトの
容量をもつ記憶域、または4096バイトの境界上の4
096バイトの容量をもつ記憶域である。“ページ″と
は正しくは仮想記憶のことであり、″゛ページフレーム
″実記憶を示す。しかし、″ページ″という用語は慣用
的には仮想記憶と実記憶の両方の意味に用いられている
Page: A storage area with a capacity of 2048 bytes on a 2048-byte boundary, or 4 on a 4096-byte boundary
This is a storage area with a capacity of 096 bytes. "Page" actually refers to virtual memory, and "page frame" refers to real memory. However, the term "page" is conventionally used to refer to both virtual and real memory.

で辻二多乞4ヤニニhユニ 2048バイトの境界上の
2048バイトの容量をもつ記憶域、または4096バ
イトの境界上の4096バイトの容量をもつ記憶域であ
る。上記ページはページフレームの中、もしくは外部記
憶(例えばディスク)上に存在する。
A storage area with a capacity of 2048 bytes on a boundary of 2048 bytes, or a storage area with a capacity of 4096 bytes on a boundary of 4096 bytes. The page exists in a page frame or on external storage (for example, a disk).

ページテーブル: 主記憶内で、ハツシュアンカーテー
ブルと逆ページテーブルを結合した内容のことである。
Page table: This is the content in main memory that combines a hash anchor table and a reverse page table.

このページテーブルは、仮想アドレスを、それに対応す
る実アドレスに変換するために用いられる。尚、このあ
とページテーブルをHAT/IPTと記すことがある。
This page table is used to translate virtual addresses to their corresponding real addresses. Note that the page table may be referred to as HAT/IPT hereinafter.

保護キー: 各セグメントレジスタ中の1ビツトの値で
あり、所定のセグメント内のデータにアクセスすること
に関して現在実行中のプロセスの権限レベルを示すため
のものである。この保護キーはIBMシステム370の
プログラム状況ワードキーと機能が類似しているが、ア
ドレス可能なすべてのメモリ全体よりもむしろ各セグメ
ント個々に設けられている点で異なる。
Protection Key: A one-bit value in each segment register that indicates the privilege level of the currently executing process with respect to accessing data within a given segment. This protection key is similar in function to the IBM System 370 program status word key, except that it is provided for each segment individually rather than for all addressable memory as a whole.

失アドレス: 変換動作によって得られた結果であり、
有効アドレスの下位11(または12)ビットに実ペー
ジインデックス(後述)の10〜13ビツトを連結した
ものである。
Lost address: is the result obtained by the translation operation,
The lower 11 (or 12) bits of the effective address are concatenated with the 10 to 13 bits of the real page index (described later).

ページインデックス二 〇〜8192 (13ビツト)
の範囲の数であり実記憶中のページフレームを識別する
ためのものである。ある実施態様では上記13ビツトと
いう値は10ビット程度に限定されてしまうかもしれず
、すると支援すべき実記憶の最大容量も2Mバイトから
なる2にバイトページに制限されることになる。
Page index 20~8192 (13 bits)
This is a number in the range of , and is used to identify page frames in real storage. In some embodiments, the 13-bit value may be limited to as little as 10 bits, which would limit the maximum amount of real storage to be supported to two byte pages of 2 Mbytes.

1憔に又Σ: 各ページフレームと接続された1ビツト
のことである。この参照ビットは次の記憶参照信号(読
み取りまたは書き込み)がフレームに出されたときは必
ずII I 11にセットされる。
1 and Σ: One bit connected to each page frame. This reference bit is set to III I 11 whenever the next storage reference signal (read or write) is issued in a frame.

セグメントID: O〜4095 (12ビツト)の範
囲の数であり、256Mバイ1への仮想記憶セグメント
を識別するためのものである。仮想ページインデックス
と連結されたセグメントIDは40ビット仮想アドレス
空間内で個別にページを指定する。
Segment ID: A number in the range 0 to 4095 (12 bits) for identifying a virtual storage segment of 256 MB by 1. The segment ID concatenated with the virtual page index individually specifies a page within the 40-bit virtual address space.

記憶キー: 各TLB (後述)の内容中の2ビツトの
値であり、個有のページに連結した記憶保護のレベルを
示すためのものである。このキーはIBMシステム37
0の各メモリページに連結した記憶キーと機能において
類似している。
Storage key: A 2-bit value in the contents of each TLB (described later), which indicates the level of storage protection associated with a unique page. This key is IBM System 37
It is similar in function to the storage keys linked to each memory page of 0.

TLB : アドレス変換バッファ(Transla 
tionLook−aside Buffer)。この
TLBは、仮想−実マツピングを有するハードウェアで
ある。尚、ある実施態様では、任意の時にTLBがこの
マツピングの一部のみを含むようにしてもよい。そのマ
ツピングに加えて、TLBには変換識別信号や記憶キー
や、ロックビットなどのような、そのTLBに連結した
他の情報を収めるようにしてもよい。
TLB: Address translation buffer (Transla
tionLook-aside Buffer). This TLB is hardware with virtual-to-real mapping. Note that in some implementations, the TLB may include only a portion of this mapping at any given time. In addition to the mapping, the TLB may contain other information associated with the TLB, such as translation identification signals, storage keys, lock bits, and the like.

トランザクションID: O〜255(8ビツト)の範
囲の数であり、現在TLB中に6−ドされているロック
ビットの組の″所有者″を識別するためのものである。
Transaction ID: A number in the range 0 to 255 (8 bits) for identifying the "owner" of the set of lock bits currently coded in the TLB.

仮想アドレス: セグメントIDと、有効アドレスの下
位28ビツトとをアドレス変換機構の下位28ピツ1へ
と結合することにより形成した40ビツトのアドレスで
ある。
Virtual Address: A 40-bit address formed by combining the segment ID and the lower 28 bits of the effective address to the lower 28 bits 1 of the address translation mechanism.

想ページインデックス= 2にバイトページに対する0
〜131072 (17ビツト)までの範囲の数、また
は4にバイトページに対するO〜65536 (16ビ
ツl−)までの範囲の数であり、ある仮想記憶セグメン
ト内のページを識別するためのものである。仮想ページ
インデックスは、その範囲が17ビツトであるときは有
効アドレスの4〜20ビツトを、またその範囲が16ビ
ツトであるときは、効有アドレスの4〜19ビツトを占
めることになる。
Idea page index = 2 to 0 for byte page
A number ranging from ~131,072 (17 bits), or from ~65,536 (16 bits) for a 4 byte page, to identify a page within a virtual memory segment. . The virtual page index will occupy 4 to 20 bits of the effective address when the range is 17 bits, and 4 to 19 bits of the effective address when the range is 16 bits.

(C)アドレス変換機 のためのハードウェアそれでは
、アドレス変換機構を支援するために必要なハードウェ
アをこれから説明しよう。
(C) Hardware for Address Translation Machine We will now explain the hardware required to support the address translation mechanism.

先ずTLBは任意の数の内容を備え、これらの各内容は
1つのページの仮想アドレスを実アドレスに変換する制
御を行うためのものである。
First, the TLB has an arbitrary number of contents, and each of these contents is for controlling translation of a virtual address of one page into a real address.

TLBの構成の詳細は実施態様に依存する。このとき、
2つの実施態様が可能である。すなわち、セグメントI
Dによってアドレスされる連想記憶装置(CAM)と、
実記憶フレーム毎に1つの内容をもつ仮想ページインデ
ックスである。そして、CAMのインデックスは実ペー
ジインデックスに等しいと考えられる。また、連合する
組をなすTLBは仮想ページインデックスのいくつかの
下位ビットによりアドレスされると考えられる。さらに
、実ページインデックスは、TLBの内容のあるフィー
ルド内に含まれることになろう。
The details of the TLB configuration are implementation dependent. At this time,
Two implementations are possible. That is, segment I
a content addressable memory (CAM) addressed by D;
It is a virtual page index with one content per real storage frame. The CAM index is then considered to be equal to the real page index. It is also considered that the associated set of TLBs are addressed by some lower bits of the virtual page index. Additionally, the real page index will be included within some field of the TLB content.

そして、各TLBの内容はl0R(入出力読み出し)命
令またはl0W(入出力書き込み)命令を用いてCPU
により個別に読み出し・書き込み可能である。TLBの
内容は次のようなフィールドを含む: 先ず(CPUまたはI10装置から)入力された32ビ
ツトの有効アドレスは、この有効アドレスに対するセグ
メント識別アドレスの結合によって40ピツ1〜に拡張
される。この仮想アドレスは次に変換用ハードウェアへ
移送され、等価な実アドレスに変換される。それでは、
仮想アドレスが実アドレスに変換されるプロセスを、以
下に具体的に示そう。
The contents of each TLB are then read by the CPU using the l0R (input/output read) instruction or l0W (input/output write) instruction.
can be read and written individually. The contents of the TLB include the following fields: First, the 32-bit effective address input (from the CPU or I10 device) is expanded to 40 bits by concatenating the segment identification address to this effective address. This virtual address is then transported to translation hardware and translated to an equivalent real address. Well then,
The process by which a virtual address is converted into a real address will be specifically shown below.

(D)アドレス・換動作 入力された有効アトリスの最高位の4ビツトは、セグメ
ントテーブルに指標として与えられ、16個のセフメン
1−のうち1つを選択するために使用される。ここで第
2図を参照すると、エントリ番号O〜15を順次割り付
けたのが上記16個のセフメン1−である。同図に示す
ように、選択されたセグメントレジスタからは12ビツ
トのセグメントより(セグメント識別ビット)と、1ビ
ツトのセグメント特殊ビットと、1ビツトのキービット
とが得られる。特殊セグメントビットとキーピットとは
、以下に述べるアクセス検証のために使用される。
(D) Address/conversion operation The highest four bits of the input valid atris are given to the segment table as an index and used to select one of the 16 segments 1-. Referring now to FIG. 2, the 16 safety members 1- are sequentially allocated with entry numbers O to 15. As shown in the figure, a 12-bit segment (segment identification bit), 1 segment special bit, and 1 key bit are obtained from the selected segment register. Special segment bits and key pits are used for access verification as described below.

次に第3図を参照すると、12ビツトのセグメントID
は、入力された有効アドレスの4ビツト目から31ビツ
ト目までの28ビツトのアドレスと結合されて、40ビ
ツトの仮想アドレスが形成される。この有効アドレスの
うち、2にページに対しては下位11ビツトが、また4
にページに対しては下位12ビツトが、選択された実ペ
ージ用のバイトアドレス(バイトインデックス)として
使用される。残りの29ビツト(4にページの場合は2
8ビツト)は次に変換用ハードウェアに移送される。
Next, referring to Figure 3, the 12-bit segment ID
is combined with the 28-bit address from the 4th bit to the 31st bit of the input effective address to form a 40-bit virtual address. Of this effective address, 2 contains the lower 11 bits for the page, and 4
For pages, the lower 12 bits are used as the byte address (byte index) for the selected real page. The remaining 29 bits (2 if there are 4 pages)
8 bits) is then transferred to the conversion hardware.

次に第4図を参照すると、この図に示されたアドレス変
換システムは頻繁に使用される仮想アドレスの変換を行
うために、アドレス変換バッファ(TLB)を使用して
いる。また、新たな仮想アドレスが、変換されるために
TLBに移送されて来たとき、主記憶ページテーブルか
らのTL、Bの内容を自動的に更新するためにハードウ
ェアが使用される。尚、各TLBのフォーマットについ
ては第5図に示されている。
Referring now to FIG. 4, the address translation system shown in this figure uses an address translation buffer (TLB) to perform translations of frequently used virtual addresses. Also, hardware is used to automatically update the contents of TL,B from the main memory page table when a new virtual address is brought into the TLB for translation. Note that the format of each TLB is shown in FIG.

第4図のシステムは2個のTLBを使用しており、各T
LBは16個のエントリ(内容)、すなわち16個の合
同なりラスと連想的な両方向性のセットを備えている。
The system in Figure 4 uses two TLBs, each TLB
The LB has 16 entries (contents), ie 16 congruence classes and a set of associative bidirectionalities.

仮想ページインデックスの下位4ビツトは双方のTLB
を並列的にアドレスするために使用される。各TLB中
のアドレスタグエントリ(第4図中では″タフ”と表示
)は仮想ページインデックスの残りのビット(2にペー
ジの場合は25ビツト、4にページの場合は24ピツ1
〜)と結合されたセグメントIDと比較される。そして
、セグメントIDとアドレスタグエントリとが等しく且
つTLBの内容が有効(それは第5図の有効ビット■に
より指示される)であれば、連合されたTLBが所与の
仮想アドレスに対応する変換情報をもつことになる。
The lower 4 bits of the virtual page index are both TLBs.
used to address in parallel. The address tag entry (indicated as "tough" in Figure 4) in each TLB contains the remaining bits of the virtual page index (25 bits if page 2, 24 bits 1 if page 4).
~) and the combined segment ID. Then, if the segment ID and address tag entry are equal and the contents of the TLB are valid (as indicated by the valid bit ■ in Figure 5), then the federated TLB contains the translation information corresponding to the given virtual address. It will have .

さて、選択されたTLBエントリ中の実ページ番号フィ
ールド(第4.5図では” RP N ”と表示)は、
所与の仮想アドレスにマツプされる、主記憶中の実ペー
ジの番号を含む。もし、この番号が特殊セグメント(第
2図参照)でなければ、アクセスが許可される前−に、
TLBエントリからのキービットとセグメントレジスタ
からのキーピットとを使用して記憶保護の違反になって
いないかどうかのチェックが、そのアクセスにつき行な
われる。また、セグメントレジスタの特殊セグメントビ
ット(第2図参照)によって示されるように、この番号
が特殊セグメントであれば、アクセスが許可される前に
ロックビット処理が行なわれる。
Now, the real page number field (indicated as "RP N" in Figure 4.5) in the selected TLB entry is
Contains the number of the real page in main memory that maps to the given virtual address. If this number is not a special segment (see Figure 2), before access is granted,
A check is made on the access for a protection violation using the key bit from the TLB entry and the key pit from the segment register. Also, if this number is a special segment, as indicated by the special segment bit in the segment register (see FIG. 2), lock bit processing is performed before access is granted.

さて、次に記憶保護機能について説明する。この機能は
、特殊セグメントの処理を行うことである。
Now, the memory protection function will be explained next. This function is to handle special segments.

もし、アクセスが許容されると、主記憶に対してアクセ
スが行なわれて、ページに連結された参照ビットREF
(第4図)と変更ピッ1〜CHG(第4図)とが更新さ
れる。参照ピッ1−と変更ピッ1−のセット動作につい
ては後に説明する。
If access is permitted, the main memory is accessed and the reference bit REF connected to the page is accessed.
(Fig. 4) and change pins 1 to CHG (Fig. 4) are updated. The setting operation of reference pin 1- and change pin 1- will be explained later.

また、2個のTLBを比較して、これらから何ら一致が
得られないと、アドレス変換論理回路14が、主記憶の
ページテーブルから誤ったTLBの内容を再ロードしよ
うと試るであろう。主記憶のページテーブルは実記憶中
に在駐し、論理的には、ハツシュアンカーテーブル(H
AT)という2つの部分からなる。このHATは、ハツ
シング機能によって、すべての仮想アドレスを実アドレ
スにマツプ(射影)することを可能とする。
Also, if the two TLBs are compared and no match is found between them, address translation logic 14 will attempt to reload the contents of the erroneous TLB from the main memory page table. The main memory page table resides in real memory, and logically it is called the hash anchor table (H
It consists of two parts: AT). This HAT allows all virtual addresses to be mapped to real addresses by means of a hashing function.

また、逆ページテーブル(IPT)は、(もし存在する
ならば)各実ページフレームに関連づけられた仮想アド
レスを指示するためのものである。
Also, an inverse page table (IPT) is for indicating the virtual address associated with each real page frame (if any).

逆ページテーブルは実ページ番号によってインデックス
された複数の内容のアレイ(配列)として構成されてお
り、その各内容は、関連づけられたセフメン1〜I I
)と仮想ページインデックスとを含んでいる。
The reverse page table is organized as an array of contents indexed by real page number, each of which has an associated page number.
) and a virtual page index.

ところで、所与の実アドレスに対して仮想アドレスを決
定することは簡単である。なぜなら、IPTは実ページ
番号によってインデックスされているからである。一方
、所与の仮想アドレスに対して実アドレスを効率的に決
定するためには、ハツシュ衝突(Collisj、on
)を解決するべく仮想アドレスをアンカーポイントとエ
ントリ内容のチェーンに対してマツプすることが必要で
ある。このことは、熟練した当業者によって十分理解゛
されるだろう。
By the way, determining a virtual address for a given real address is easy. This is because the IPT is indexed by real page number. On the other hand, to efficiently determine the real address for a given virtual address, hash collisions (Collisj, on
), it is necessary to map the virtual address to the chain of anchor points and entry contents. This will be well understood by those skilled in the art.

ハツシュアンカーテーブル(HAT)は、ハードウェア
の有効性の理由から逆ページテーブル(IPT)に物理
的には組み入れられているのだけれども、論理的にはI
PTとは分離されている。
Although the hash anchor table (HAT) is physically incorporated into the inverse page table (IPT) for reasons of hardware efficiency, it is logically integrated into the IPT.
Separated from PT.

第6図に示すように、ハツシュ機能により、仮想アドレ
スは先ずHATの中のエントリのインデックスに変換さ
れる。そして、このHATインデックスは、そのHAT
インデックスと同じインデックスをもつIPTエントリ
(実ページ)チェーンの第1の部分を指定する。仮想ア
ドレスに一致するIPTエントリのチェーンを検索する
ことにより、その所望の仮想アドレスに対応するIPT
インテックス(すなわち実アドレス)が得られるか、あ
るいは何ら一致が得られないで検索を終えるか(ページ
がマツプされていない)のどちらかに帰着するであろう
。尚、この実施例では実記憶の各ページに対してHAT
のエントリとIPTのエン1〜りとが1つづつ対応して
いる。
As shown in FIG. 6, the hash function first converts the virtual address to an index of an entry in the HAT. And this HAT index is
Specifies the first part of the IPT entry (real page) chain with the same index as index. IPT corresponding to that desired virtual address by searching for a chain of IPT entries that match the virtual address.
It will either result in an intex (ie, a real address) or the search will end with no matches (no pages mapped). In addition, in this embodiment, HAT is applied to each page of real memory.
One entry corresponds to each entry of IPT.

仮想アドレスの実アドレスへの変換は、有効アドレスの
選択した下位ビットと、セグメントIDのビットとの排
他的論理和をとることによって実行される。この″ハツ
シュ″されたアドレスは、HATに対してインデックス
をつけるための使用される。また、選択されたHATの
内容は所与の仮想アドレスに対応して検索すべきIPT
エントリのリストの開始点へのポインタとなる。検索す
べきIPTエン1〜りのリスト中の内容は、検索すべき
次のIPTエントリを指定する、各エントリ中のポイン
タによって相互に連結される。IPTエン1−り中には
フラグビットがあり、このフラグビットはその検索チェ
ーンの最終点を表示するために使用される。尚、検索す
べき1つのIPTチェーンの中には複数の仮想アドレス
の内容が存在し得ることに注意されたい。というのは、
ハツシュ機能により異なる複数の有効アドレスに対して
同一のHATアドレスが生成されることがあるからであ
る。
Conversion of a virtual address to a real address is performed by exclusive ORing selected lower bits of the effective address with bits of the segment ID. This "hashed" address is used to index into the HAT. Also, the contents of the selected HAT are the IPT to be searched for a given virtual address.
Points to the start of the list of entries. The contents in the list of IPT entries to be searched are interconnected by pointers in each entry that specify the next IPT entry to be searched. There is a flag bit in the IPT engine that is used to indicate the end of the search chain. Note that there may be multiple virtual address contents within one IPT chain to be searched. I mean,
This is because the hash function may generate the same HAT address for a plurality of different valid addresses.

さて、前にも述べたように、ハードウェアの効率という
理由から、HATとIPTとは単一のインデックス構造
によりアドレス可能な単一の構造中に結合されている。
Now, as previously mentioned, for reasons of hardware efficiency, the HAT and IPT are combined into a single structure addressable by a single index structure.

すなわち、実記憶の各ページに対応して、この結合され
たHATとIPT中のエントリが1つづつ存在する。例
えば、2にバイトページとして構成された1Mバイトの
実記憶には、512個のエントリが必要だし、4にバイ
トページとして構成された512にバイトの実記憶には
128個のエントリが必要である。この結合されたHA
T及びIPTページエントリのフォーマットは第7図に
示されている。第7図のページエントリは1ページの実
メモリをあられしている。
That is, there is one entry in the combined HAT and IPT corresponding to each page of real memory. For example, 1 Mbyte of real storage organized as 2 byte pages requires 512 entries, and 512 bytes of real storage organized as 4 byte pages requires 128 entries. . This combined HA
The format of the T and IPT page entries is shown in FIG. The page entry in FIG. 7 occupies one page of real memory.

HAT/IPTは各ページエントリに対して16バイト
ずつの領域を有しており、そのテーブルの大きさの倍数
のアドレス上でスタートする。
The HAT/IPT has an area of 16 bytes for each page entry, starting at an address that is a multiple of the table size.

各ペヘジェトンリの第1ワードには、セグメントIDと
仮想ページインデックスとの結合により形成されたアド
レスタグが含まれている。尚、アドレスタグは、2にバ
イトページの場合は29ビツトであり、4にバイトペー
ジの場合は28ビツトであることに留意されたい。すな
わち、もし4にバイトの大きさのページが使用されるの
であれば、28ビツト長のアドレスタグが第1ワードの
3〜30ビツトに格納され、2ビツト目は保留される。
The first word of each Pehejetonri contains an address tag formed by combining the segment ID and the virtual page index. Note that the address tag is 29 bits for a 2 byte page and 28 bits for a 4 byte page. That is, if a 4 byte sized page is used, a 28 bit long address tag is stored in bits 3-30 of the first word, with the second bit reserved.

この第1ワードは、後述する記憶保護用の2ビツトのキ
ービットを含んでいる。
This first word includes two key bits for memory protection, which will be described later.

第2ワードには、HATポインタ、IPTポインタ、及
び空ビット(E)及び最終ビット(L)と称する各ポイ
ンタのための有効ビットとが含まれている。これらのフ
ィールドの用途については後述する。
The second word contains a HAT pointer, an IPT pointer, and a valid bit for each pointer, called the empty bit (E) and the last bit (L). The uses of these fields will be described later.

第3ワードには、書き込み保護ビットと、ロックビット
と、各特殊セグメント用のTID(トランザクションI
D)とが含まれている。これらのフィールドの用途につ
いても後述する。
The third word contains a write protect bit, a lock bit, and a TID (transaction ID) for each special segment.
D) is included. The uses of these fields will also be described later.

第4ワードはTLB (アドレス変換バッファ)の再ロ
ード用には使用されず、将来のあり得べき使用に備えて
保留される。
The fourth word is not used for reloading the TLB (Address Translation Buffer) and is reserved for possible future use.

HAT/IPTの基底アドレスは、変換制御レジスタ(
第12図参照)のフィールドであり、主記憶ページテー
ブルの開始アドレスを算出するために使用される。この
HAT/IPTの基底アドレスには、主記憶ページテー
ブルの開始アドレスの値を得るために、記憶容量とペー
ジのサイズに応じて表工 (すぐあとに示す)中の値を
掛けあわせる。表工にはまた、各記憶容量とページのサ
イズに対応するHAT/IPTの大きさが示されている
The base address of the HAT/IPT is the translation control register (
(see FIG. 12) and is used to calculate the start address of the main memory page table. This base address of the HAT/IPT is multiplied by the value in the table (shown immediately below) depending on the storage capacity and page size to obtain the value of the start address of the main memory page table. The table also shows the HAT/IPT size corresponding to each storage capacity and page size.

表I :HAT/IPT基底アドレス乗数値(E) ハ
ツシュアドレステーブル(HAT のすでに述べたよう
に、HA Tのインデックスは、セグメンl−I Dの
うちの選択した複数のビットと、有効アドレスの複数の
ピッ1−との排他的論理和をとることにより算出される
。このとき使用されるビットの数は、生成されるインデ
ックスがHA T/IPTのn個のエントリのうち1つ
を選択するように選定される。このハツシュ動作につい
ては第6図に示される。また、HATインデックスの生
成に使用されるビット、は表■(すぐあとに示す)にリ
ストされている。選択されたHATエントリの記憶アド
レスは、[HAT/IPT基底アドレスコ+[HA T
インデックスコにより算出される。
Table I: HAT/IPT Base Address Multiplier Value (E) HAT It is calculated by taking the exclusive OR with multiple pins.The number of bits used at this time is such that the generated index selects one of the n entries of HA T/IPT. This hash operation is illustrated in Figure 6. The bits used to generate the HAT index are also listed in Table 1 (shown immediately below). The storage address of [HAT/IPT base address co+[HAT
Calculated by indexco.

次に選択されたH A Tのエントリがアクセスされて
、IPT検索チェーンが空であるかどうかを検知するた
め空ビットE(第6図)がチェックされる。もし空ビッ
トが111”であれば、所与の仮想アドレスにマツプさ
れているページがない、ということなので、後述するよ
うに、″ページフォール1−″′が報告される。また空
ビットが110 ++であれば、i P T検索チェー
ン中のエントリが存在する。ということなので、IPT
中のエントリが検索される。その後、選択されたHAT
エントリのHATポインタフィールドがIPT検索チェ
ーンの起点のポインタとして使用される。
The selected H AT entry is then accessed and the empty bit E (FIG. 6) is checked to detect whether the IPT search chain is empty. If the empty bit is 111'', it means that there is no page mapped to the given virtual address, so a ``page fall 1-'''' is reported as described below. If it is ++, there is an entry in the iPT search chain.This means that the IPT
The entries inside are searched. Then the selected HAT
The entry's HAT pointer field is used as a pointer to the origin of the IPT search chain.

表n:HAT/IPTインデックス生成ソースフィール
ド※表■のn:m(n、mは整数)という表示は、nビ
ット目からmビットまでの間のフィール1くを示す。
Table n: HAT/IPT index generation source field *The display n:m (n and m are integers) in Table 2 indicates the field 1 between the n-th bit and the m-th bit.

以前にアクセスされたH A TポインタはIPTへの
起点インデックスとして使用される。そして、第1のI
 P l’エン1へりの記憶アドレスは、[HAゴ゛/
 I P l”基1mア14し、l + [HATポイ
ンタ]により算出される。
The previously accessed H AT pointer is used as the origin index into the IPT. And the first I
The memory address at the end of Pl'En1 is [HA Go/
I P l'' base 1mA14 and calculated by l + [HAT pointer].

次に、IPT内の第1のエントリにアクセスが行なわれ
て、そのアドレスタグが所与の仮想アドレスに比較され
る。もし、そのアドレスタグと仮想アドレスとが等しけ
れば、その仮想アドレスに割り付けられた実ページがロ
ケート(配置)され、フォールトするTLBエントリを
再ロードできるようになる。また、そのアドレスタグと
仮想アドレスとが等しくなければ、IPTポインタにア
クセスすることによりIPTの検索が続けられる。
The first entry in the IPT is then accessed and its address tag is compared to the given virtual address. If the address tag and virtual address are equal, the real page allocated to that virtual address is located, allowing the faulting TLB entry to be reloaded. Also, if the address tag and the virtual address are not equal, the IPT search continues by accessing the IPT pointer.

そのIPTポインタの値は、[HAT/IPT基j戊ア
1−レス] + [HATポインタ]により算出される
。次に、I I) Tポインタにアクセスが行なわれて
、lPT検索チェーン中にまだエントリが他にあるかど
うかを検知するため最終ピッ1〜L(第7図)のチェッ
クが行なわれる。そして、もし最終ビットが“0”であ
ると、これは他にもエン1ヘリがあるということだから
、検索プロセスが続けられる。また、もし最終ピッ1−
が“1″であれば、検索すべきIPTエントリがないと
いうことだから、″ページフォールト”が報告される。
The value of the IPT pointer is calculated by [HAT/IPT base] + [HAT pointer]. The II)T pointer is then accessed and the final pins 1-L (FIG. 7) are checked to see if there are any more entries in the IPT search chain. And if the last bit is "0", this means that there are other En1 helicopters, so the search process continues. Also, if the final pitch is 1-
If "1" means that there is no IPT entry to be searched, a "page fault" is reported.

検索すべきIPTエントリかある場合、検索を行うため
の次のIPTエントリのアドレスは。
If there is an IPT entry to be searched, what is the address of the next IPT entry to search for?

[HAT/IPT基底アドレス基底アドレスコインタコ
により算出される。このアドレスは、I PT検索チェ
ーン中の次のエントリにアクセスするために使用され、
その選択されたエントリ中に含まれるアドレスタグが所
与の仮想アドレスに比較される。そして、もしそのアト
セスタグとその仮想アドレスが等しいなら、その仮想ア
ドレスに割り付けられた実ページがロケートされ、フォ
ールド状態のTLBエン1−りが再ロード可能となる。
[HAT/IPT Base Address Base Address Calculated by Cointaco. This address is used to access the next entry in the IPT search chain,
The address tag contained in the selected entry is compared to the given virtual address. If the access tag and the virtual address are equal, the real page allocated to the virtual address is located, and the TLB entry in the folded state can be reloaded.

また、もしそのアドレスタグとその仮想71−レスとが
等しくないなら、検索すべき次のエン1−りに対するポ
インタにアクセスすることにより検索プメセスが続けら
れる。次のエントリに対するポインタのアドレスは[H
AT/IPT基底アドレス]+[IPTポインタ]によ
る算出される。次にこのワード(第7図において、HA
TポインタとIPTポインタとを含むワード)にアクセ
スが行なわれ、IPT−検索チェーン中にまだ他にエン
トリがあるかどうかを検知するため最終ビットL(第7
図)のチェックが行なわれる。そして、もし最終ピッI
−が“1″であれば、検査すべきIPTエンI−りはも
うないということだから、6ページフオール1−”が報
告される。また、もし最終ビットがII Q IIであ
れば、他にもまだIPTエントリが残っているというこ
とだから、検索プロセスが続けられる。この時点でのI
PTポインタは、上述したプロセスを実行することによ
りそれ以降のエンI−りにアクセスするために用いられ
るが、このことば、II)Tエン1−り中のアドレスタ
グが所与の仮想ア1くレスに等しくなるか、それらの一
致が見出されないで、これ以上のエントリが薇索チェイ
ン中に存在しないということを最終ビットが表示するま
で続けられる。
Also, if the address tag and the virtual address are not equal, the search process continues by accessing the pointer to the next address to search. The address of the pointer to the next entry is [H
AT/IPT base address] + [IPT pointer]. Next, this word (in Figure 7, HA
The word containing the T pointer and the IPT pointer) is accessed, and the last bit L (the 7th word) is accessed to detect whether there are any more entries in the IPT-search chain.
The check shown in Figure) is performed. And if the final pitch I
If - is "1", it means that there is no more IPT engine to check, so 6 pages fall 1-" is reported. Also, if the last bit is II Q II, other Since there are still IPT entries left in the IPT entry, the search process continues.
The PT pointer is used to access a subsequent entry by executing the process described above, which means that II) if the address tag in the entry points to a given virtual The search continues until the last bit indicates that there are no more entries in the search chain.

ここで、仮想アドレスをIPTエントリのインデックス
(及びそれに対応する実アドレス)に変換するために実
行すべきステップの概要について順次示してみようニ ステップa):仮想ページ番号の下位13ビツトを選択
する。この13ビツトは、4にバイ1−ページが使用さ
れているなら有効71〜レスの7〜19ビツトを占め、
2にバイトページが使用されているなら有効アドレスの
8〜20ピッ1−を占めることになる。
Let us now outline the steps to be performed in order to convert a virtual address to an index of an IPT entry (and its corresponding real address).Step a): Select the lower 13 bits of the virtual page number. These 13 bits occupy valid 71 to 7 to 19 bits of the response if a by 1-page is used for 4.
If a byte page is used for 2, it will occupy 8 to 20 bits of effective address.

ステップb)二次に、有効アドレスの0〜3ビツトによ
り指定されたセグメントレジスタの12ビツトの内容を
選択する。その12ビツトの左端に“OI+ビットを結
合することにより13ビツトのフィールドを形成する。
Step b) Second, select the contents of the 12 bits of the segment register specified by bits 0-3 of the effective address. By combining the "OI+ bit" with the left end of the 12 bits, a 13-bit field is formed.

ステップc)二上記ステップa)とステップb)とで得
られた各々13ビツトのフィールドの排他的論理和をと
り、13ピツ1〜のハツシュアンカーテーブル番号を作
成する。
Step c) 2 Exclusively OR the 13-bit fields obtained in steps a) and b) above to create a hash anchor table number of 13 bits 1 to 1.

ステップd)ニステップC)で得られた値を左方へ4ピ
ツ1〜シフトさせる。これにより、所望のII A T
エン1−りを物理的に含むIPTエントリの始点のバイ
トオフセットが行なわれたことになる。
Step d) Shift the value obtained in Step C) to the left by 4 points. This allows the desired II A T
This means that the byte offset of the starting point of the IPT entry that physically includes the en-1 has been performed.

ステップe): HAT/IPTエントリのアドレスを
算出する。この計算は、IPTの開始アドレスに、ステ
ップd)で得られた結果を加算することにより行なわれ
る。もし、IPTが好適な2乗バイトの境界上で開始す
るように束縛されているなら、−]二記の″加算″を行
うかわりに論理ORをとったり、2つの値を結合させて
もよい。
Step e): Calculate the address of the HAT/IPT entry. This calculation is performed by adding the result obtained in step d) to the starting address of the IPT. If the IPT is constrained to start on the preferred squared byte boundary, then instead of doing the -] double "add", we may do a logical OR or combine the two values.

ステップf):ここで、IPTチェーンが空かどうかの
チェックを行う。そのためにはHAT/11) U’エ
ン1−り中で1lET+ (空)ビット(第7図参照)
を調べる。もしE=1ならIPTチェーンが空(HΔT
ポインタが無効)ということだから、検索は不成功に終
ったことになる。すなわち、仮想ページはマツプされな
い。
Step f): Here, a check is made whether the IPT chain is empty. For this, HAT/11) 1lET+ (empty) bit in U'en1- (see Figure 7)
Find out. If E=1, the IPT chain is empty (HΔT
(pointer is invalid), the search was unsuccessful. That is, virtual pages are not mapped.

ステップg):もしIPTチェーンが空でないなら、ア
ドレスされたHAT/IPTエントリからHATポイン
タを選択する。この13ビツトのHATポインタ(第7
図参照)の値は、同一のハツシュ値(ステップC)参照
)をもつエントリのチェーン内で第1のIPTエントリ
のインデックスとなる。
Step g): If the IPT chain is not empty, select a HAT pointer from the addressed HAT/IPT entry. This 13-bit HAT pointer (7th
The value of (see figure) becomes the index of the first IPT entry in the chain of entries with the same hash value (see step C)).

ステップh):IPTインデックスの値を左に4ピッ1
−シフトさせる。これにより、仮想アドレスとの一致を
チェックすべきIPTエントリの始点のバイトオフセッ
トが行なわれたことになる。
Step h): Move the IPT index value 4 pips to the left.
- shift. This means that the byte offset of the starting point of the IPT entry to be checked for coincidence with the virtual address has been performed.

ステップj):Iprエントリのアドレスを算出する。Step j): Calculate the address of the Ipr entry.

このことは、IPTの開始アドレスに、ステップh)で
得られた結果を加算することにより行なわれる。もしI
PTが好適な2乗バイトの境界上で開始するように束縛
されているなら、上記の″加算゛′を行うかわりに、論
理ORをとるか、または2つの値を結合させてもよい。
This is done by adding the result obtained in step h) to the starting address of the IPT. If I
If PT is constrained to start on a suitable squared byte boundary, instead of doing the "addition" described above, one may perform a logical OR or combine the two values.

ステップk):仮想アドレスとの一致を調べるため比較
を行う。すなわち、セグメントIDに■PTエントリか
ら得た仮想ページ番号を結合した値と、有効アドレスに
よって指定されたセグメントレジスタの内容に有効アド
レス中の仮想ページ番号を結合した値とを比較する。
Step k): Perform a comparison to check for a match with the virtual address. That is, the value obtained by combining the segment ID with the virtual page number obtained from the ■PT entry is compared with the value obtained by combining the contents of the segment register specified by the effective address with the virtual page number in the effective address.

ステップQ):もしステップk)での比較の結果、両者
が一致していれば、検索は成功裡に終了する。このとき
のエントリは所望の仮想アドレスに対応するものであり
、そのインデックス番号は要求される実ページ番号に等
しい。
Step Q): If the result of the comparison in step k) is a match, the search ends successfully. The entry then corresponds to the desired virtual address, and its index number is equal to the requested real page number.

ステップm):もし、ステップk)での比較の結果、両
者が一致していなければ、チェーンの最終であるかどう
かをチェックする。そのためのはIPTエントリ中のI
ILI+(最終)ビットを調べる。もしL=1であれば
、これはチェーンの最終IPTエントリであることを示
し、検索は不成功裡に終了する。すなわち、仮想ページ
はマツプされない。
Step m): If the results of the comparison in step k) do not match, check whether it is the last in the chain. For that, I in the IPT entry
Examine the ILI+ (last) bit. If L=1, indicating this is the last IPT entry in the chain, the search ends unsuccessfully. That is, virtual pages are not mapped.

ステップn):もし、最終チェーンでないなら、IPT
エン1−りからIPTポインタフィールドを選択する。
Step n): If not the final chain, IPT
Select the IPT pointer field from En1.

この13ビツトの値は調べるべき次のI P Tエン1
〜りのインデックスとなる。
This 13-bit value is the next IP address to be examined.
It becomes an index of ~ri.

ステップp)ニステップh)に戻る。Return to step p) and step h).

さて、HATとIPTとを単一のテーブル構造中に結合
させることの意義は、それにより単一のインデックス構
造によりアドレスが可能となったことにある。このこと
は7A図を参照すればよりよく理解されよう。すなわち
第7A図は7つの代表的なページエントリをもつメモリ
の構造をあられしている。そして、その各ページエント
リはそれぞれ第7図の単一のページエントリと等しい構
造を有している。これら7つのページエントリは7ペー
ジの実記憶:10.20.30.40.50.60及び
70をあられす。実メモリ中にはそのようなページが数
百から数千、存在すると考えてよい。しかしながら、選
択したページエン1ヘリ中のHATポインタやIPTポ
インタのようなデータのインデックス付けやアドレス付
けは単一の基底アドレスレジスタ72に記憶された情報
に基づき行なわれるのである。尚、′このレジスタ72
は第12図の変換制御レジスタに関連して後に述べるH
AT/IPTフィールド、すなわち基底アドレスレジス
タと等価なものである。
Now, the significance of combining the HAT and IPT into a single table structure is that it allows addressing through a single index structure. This will be better understood with reference to Figure 7A. That is, FIG. 7A shows the structure of a memory having seven representative page entries. Each page entry has the same structure as the single page entry shown in FIG. These seven page entries correspond to seven pages of real memory: 10.20.30.40.50.60 and 70. It can be assumed that there are hundreds to thousands of such pages in real memory. However, indexing and addressing of data such as HAT pointers and IPT pointers in a selected page en 1 hemisphere is based on information stored in a single base address register 72. Furthermore, 'this register 72
is H, which will be described later in connection with the conversion control register in FIG.
It is equivalent to the AT/IPT field, ie, the base address register.

この時点で、第7A図のメモリ構成を用いて、個別の仮
想アドレスに対して実メモリページがどのようにロケ−
1・されるかを考慮してみれば、本発明が一層よく理解
できると思われる。ところで、第7Δ図に関連してこの
あと展開してゆく処理手続については、それらの機能及
び演算につき既に第6.7図に関連して説明済であるこ
とに注意頂きたい。従って、ここでは、メモリ構成内で
実ページアドレスをロケートすべきこれらの機能がどの
ように使用されるか、ということにつき段階的に説明を
進めてみたい。さて、仮想アドレスはハツシュ機能手段
71内で、前に述べたような方法でハツシュされて、ハ
ツシュアドレスが作成される。このパンシュア1zレス
は、テーブルエントリアドレスi!IW手段75に供給
される。テーブルエン1−リアドレス計算手段75は、
レジスタ72の基底アドレスから、アクセスすべきHA
Tポインタを含む特定のページエン1−りまでのオフセ
ットを言(算するためのものである。そこで、このHA
′1゛ポインタがページエントリ50に含まれていると
仮定しよう。すると、テーブルエントリアドレス計算手
段75はポインタ手段73を介してページエントリ50
にアクセスすることになる。次に。
At this point, using the memory configuration of Figure 7A, we can see how real memory pages are located for individual virtual addresses.
1. The present invention may be better understood if we consider how it is done. By the way, it should be noted that the functions and operations of the processing procedures that will be developed later in connection with FIG. 7Δ have already been explained in connection with FIG. 6.7. Therefore, we will now provide a step-by-step explanation of how these functions are used to locate real page addresses within a memory structure. The virtual address is now hashed in the hashing function means 71 in the manner described above to create a hashed address. This Pansure 1z reply is table entry address i! The signal is supplied to the IW means 75. The table en 1-read address calculation means 75 is
HA to be accessed from the base address of register 72
This is to calculate the offset to a specific page end including the T pointer.
Assume that the '1' pointer is included in page entry 50. Then, the table entry address calculation means 75 reads the page entry 50 via the pointer means 73.
will be accessed. next.

ページエントリ50上のHATポインタがフェッチされ
、バス74を介してテーブルエン1−リアドレス計算手
段75に加えられる。すると、テーブルエントリアドレ
ス計算手段75が基底アドレスから、ページ50上のポ
インタによって指定された特定のページエントリにアク
セスするための適当なオフセットを算出する。ここで、
ページエントリ20が指定されたものと仮定しよう。こ
のことは、ハツシュ機能手段71からハツシュアドレス
が供給されたときに、それと同一のハツシュアドレスを
生成させる(アドレスタグによって代表される)仮想ア
ドレスからなる一群のページのうち先頭のものがページ
20である、ということを意味する。
The HAT pointer on page entry 50 is fetched and applied via bus 74 to table entry 1 - rear address calculation means 75 . Then, the table entry address calculation means 75 calculates an appropriate offset for accessing the specific page entry specified by the pointer on the page 50 from the base address. here,
Assume that page entry 20 is specified. This means that when a hash address is supplied from the hash function means 71, the first page among a group of virtual addresses (represented by address tags) that generates the same hash address is a page. It means that it is 20.

次に、この先頭ページエントリが請求められている仮想
アドレス(そのめられている仮想アドレスのアドレスタ
グは、ハツシュ機能手段71に加えられる仮想アドレス
のアドレスタグに比較される。)を含んでいるかどうか
が判断さ・れる。そして、もしページ2oのこの仮想ア
ドレスと一致するものがないなら、連結された仮想アド
レス群の中の次のページエントリにアクセスする場合に
つきすでに述べたように、ページエントリ2o中のJP
Tポインタが基底として使用される。このことは、ハツ
シュされたポインタの情報をバス74を介してチーフル
エントリアドレス計算手段75に送ることしこより達成
させる。すなわち、ハツシュされたポインタの情報を受
け取ったテーブルエン1−リアドレス計算手段は、基底
アドレスから次の連結されたページエン1へり(第7A
図においてはページエンl−I730がそれに相当する
)までのオフセラI〜を算出する。
Next, does this first page entry contain a claimed virtual address (the address tag of the claimed virtual address is compared with the address tag of the virtual address added to the hash function means 71)? What happens is judged. Then, if there is no match for this virtual address of page 2o, then the JP in page entry 2o is
A T pointer is used as a basis. This is accomplished by sending the hashed pointer information via bus 74 to full entry address calculation means 75. That is, the table entry 1-readdress calculation means that received the hashed pointer information calculates the address from the base address to the next connected page entry 1 (7th A).
In the figure, offset I~ is calculated up to page en l-I 730 (which corresponds to it in the figure).

次に、ページエントリ2o中のアドレスダグと、加えら
れた仮想71−レスのアドレスタグとの比較が行なわれ
る。そして、これらが一致しなければ、ページエン1−
リ3o中のIPTポインタが、既に述べたように、次の
連結されたページエントリにアクセスするために使用さ
れる。言いかえると、同一のハツシュアドレスを供用す
る一群の仮想アドレスのうちの一つが見出されるような
次のページエントリを連結するために、IPTポインタ
が使用さ九でいるのである。この手続は、既に述べたよ
うに、加えられた仮想アドレスと、アクセスされる特定
のページ中のアドレスとで一致が見出されるか、さもな
ければ、一致が存在しないことが判明するまで続けられ
る。そこで、ページエントリ30上で一致があったもの
と仮定しよう。すると、ページ30が加えられた仮想ア
ドレスの実アドレスとなる。
Next, a comparison is made between the address tag in page entry 2o and the address tag of the added virtual 71-res. If these do not match, Page En1-
The IPT pointer in file 3o is used to access the next concatenated page entry, as previously described. In other words, the IPT pointer is used to concatenate the next page entry in which one of a group of virtual addresses sharing the same hash address is found. This procedure continues, as previously described, until a match is found between the added virtual address and an address in the particular page being accessed, or else it is determined that no match exists. So, let's assume that there is a match on page entry 30. Then, the virtual address becomes the real address to which page 30 is added.

本発明においてHATとIPTとの結合したテーブルが
使用されていることは第7図に示されているが、このこ
とは、第6図に図式的に示したような分離したH、AT
とIPTとを使用するシステムに比較して、著しいハー
ドウェアの節減をもたらし得ることが第7A図から見て
とれよう。さらに、第7A図のメモリ構造は単一の結合
テーブルを使用しているので、基底アドレスレジスタと
テ−プルエン1−リアドレス計算手段とはそれぞれ一個
づつあればよい。ところがもしそうでなく、第6図に示
すようにHA TとIPTとが分離している場合、各テ
ーブルにつき基底アドレスレジスタと、テーブルエント
リ計算手段とがそれぞれ個別に必要である。また、各テ
ーブルにつきポインタ及びフェッチ手段も個別に必要で
ある。
Although the use of a combined HAT and IPT table in the present invention is shown in FIG.
It can be seen from FIG. 7A that significant hardware savings can be achieved compared to systems using IPT and IPT. Furthermore, since the memory structure of FIG. 7A uses a single association table, only one base address register and one table en 1-read address calculation means are required. However, if this is not the case and the HAT and IPT are separated as shown in FIG. 6, a separate base address register and table entry calculation means are required for each table. Separate pointers and fetch means are also required for each table.

(E) T L B ロード もしアドレスタグフィールドについて所与の仮想アドレ
スと等しいIPTエントリが見出されたら、フォール1
−状態のTLBエントリが再ロートされる。この再ロー
ド手続は、フォールト状態にある仮想アドレスの合同な
りラスに対して最も以前に使用されたT L Bエント
リを選出することと、その所与の仮想アドレスタグフィ
ールドについての選択したエン1−リ、実ページ番号及
びキーピッI−をロードすることからなる。もし、この
IPTエン1−りがセグメントレジスタ中の特殊セフメ
ン1−ピツ1−(第21Hにより表示された特殊セフメ
ン1−であるなら、第5図に示す書き込みビット(W)
、トランザクションID(TID)及びロックビットも
再ロードされる。
(E) TLB Load If an IPT entry equal to the given virtual address is found for the address tag field, fall 1.
- State TLB entries are rerotated. This reload procedure consists of selecting the most recently used TLB entry for a congruent class of faulted virtual addresses and selecting the selected entry 1-1 for that given virtual address tag field. This consists of loading the real page number and the keypad I-. If this IPT en 1 is the special segment register 1 in the segment register (special segment 1 indicated by 21H), the write bit (W) shown in FIG.
, transaction ID (TID) and lock bits are also reloaded.

各合同クラスにおいてどのTLBエン1−りが最も前に
使用されたのかを決定するためにはバー1−ウェアが使
用される。そして、仮想アドレスの下位ビットによって
合同グラスが決定されるので、どのTLBが選択された
エントリを置換されているかを決定しさえすればよい。
Barware is used to determine which TLB engine was used most recently in each congruence class. And since the congruence glass is determined by the lower bits of the virtual address, it is only necessary to determine which TLB is replacing the selected entry.

そこで最も以前に参照された所与の合同クラス中のエン
トリを、2つのTLBのうちどちらのT LBが有する
かに基づき、どちらか一方のTLBが選択される。
One TLB is then selected based on which of the two TLBs has the most previously referenced entry in a given congruence class.

所与の合同クラスにつき最も以前に使用されたTLBの
エントリが決定されると、その選択されたTLBエント
リが再ロード可能となる。このとき、アドレスタグフィ
ールドとキーピッ1−とが主記憶に収められているIP
Tエントリから再ロードされる。このIPTエン)−り
のアドレスは前にIPT検索プロセスで算出されたもの
である。そして、その検索プロセスで算出されたIPT
インデックスは実ページ番号に等しいので、この値はT
LB中の実ページ番号フィールドを再ロードするために
使用される。もし、この値が、セフメン1−レジスタ中
の特殊セグメントビットにより表示された特殊セフメン
1−であれば、トランザクションI +)とロックビッ
トも再ロードされる。尚、この1−ランザクジョンID
とロックビットとは、選択されたTPTエントリ中の第
3のワード(第7図参照)にアクセスすることにより再
ロードされるのである。
Once the most recently used TLB entry for a given congruence class is determined, the selected TLB entry can be reloaded. At this time, the address tag field and key pick 1- are stored in the main memory.
Reloaded from T entry. This IPT address was previously calculated in the IPT search process. Then, the IPT calculated in the search process
Since the index is equal to the real page number, this value is T
Used to reload the real page number field in the LB. If this value is the special segment 1- indicated by the special segment bit in the segment 1- register, the transaction I+) and the lock bit are also reloaded. In addition, this 1-Ranzaku John ID
and lock bits are reloaded by accessing the third word (see Figure 7) in the selected TPT entry.

(F)iie填1クセス制御 この実施例のア1くレス変換機構は2つのアクセス制御
手段を備えている。第1のアクセス制御手段は、特殊で
ないセグメントに適用されるものであり、実記憶の各ペ
ージに対する読み出し/書き込み保護を行う。第2のア
クセス制御手段は、専ら特殊セグメントに適用されるも
のであり、持続型データを支持するために使用される。
(F) IIE access control The address conversion mechanism of this embodiment includes two access control means. The first access control means is applied to non-special segments and provides read/write protection for each page of real storage. The second access control means applies exclusively to special segments and is used to support persistent data.

尚、これらのアクセス制御手段は変換型のアクセスにの
み適用される。そして、その規則違反が一方のアクセス
制御手段により検知されると、記憶装置へのアクセスが
停止される。但し、それしこしま例外力へあり、その例
外についてはあとで述べる。
Note that these access control means are applied only to conversion type access. When a violation of the rule is detected by one of the access control means, access to the storage device is stopped. However, there are some exceptions to this, and I will discuss those exceptions later.

(G)星災匿1歎星 記憶保護処理は特殊でないセグメントレこつり)でのみ
適用される。すなわち、TLBにより実アドレスと仮想
アドレスとの対応が−たん定まると、適正なアクセスの
権限を保証するために、要求されたアクセスが検証され
る。この検証手段しこより、アクセスがないことや、読
み出しのみや、読み出し/書き込み等の情報を各ページ
にマークすることが可能となる。
(G) Seikai Hiro 1 The memory protection process is applied only to non-special segments. That is, once the correspondence between real and virtual addresses is determined by the TLB, the requested access is verified to ensure proper access privileges. This verification means makes it possible to mark each page with information such as no access, read only, read/write, etc.

アクセス制御は、選択したセグメントレジスタ中の1ビ
ツトの保護キー、及びTLBエントリ中の2ピツ1へキ
ー及びアクセスがロード状態力)ス1へア状態か否かの
関数である。
Access control is a function of the 1-bit protection key in the selected segment register, and whether the key and access to 2 bits 1 in the TLB entry is in the load state (load state) or whether the access is in the read state or not.

アクセスは次の表■に示すように制御される:表組:保
護キーの処理 もしアクセスが許容されなければ、アドレス変換動作は
終rし、記憶保護の例外がCPUに報告される。
Access is controlled as shown in the following table: Table 1: Protection Key Processing If access is not allowed, the address translation operation is terminated and a storage exception is reported to the CPU.

(11)旦ノi−e二6ヒ矩風 ロックビット処理は、選択されたセラメン1〜レジスタ
中の特殊セグメントビットにより表示された特殊セグメ
ントにのみ適用される。このロックビット処理により、
オペレーティングシステムが持続変数に対する変化を自
動的にモニタしてその変化をジャーナルすることを可能
にするとともに、またロックビット処理は陰のページ(
ShadowPage)を作成し、データベース維持の
ために必要な他の処理も行う。
(11) The rectangular lock bit processing is applied only to the special segment indicated by the special segment bit in the selected ceramic register. This lock bit processing allows
In addition to allowing the operating system to automatically monitor and journal changes to persistent variables, lockbit processing also uses hidden pages (
ShadowPage) and performs other processing necessary to maintain the database.

さらにロックビットにより、2Kまたは4にバイトの分
解能のページの記憶保護が128または256バイトの
ラインの記憶保護まで拡張される。
Additionally, lock bits extend 2K or 4 byte resolution page protection to 128 or 256 byte line protection.

言いかえると、2にバイトページには128バイトの分
解能が午えられ、4にバイ1−ページには256バイト
の分解能が与えられる。すなわち、個別のラインのロッ
クビットは、2にバイ1〜ページに対しては有効ビット
の21ピッ1−目から24ビ1−ト目までにより選択さ
れ、4にバイ1−ページに対しては有効ピッ1−の20
ピッ1−目から23ビツト目までにより選択される。
In other words, a 2-byte page is given a resolution of 128 bytes, and a 4-byte page is given a 256-byte resolution. That is, the lock bits of individual lines are selected by the valid bits from 21st bit 1st to 24th bit 1st for 2 by 1 to pages, and by 4 by 1 to 24 bits 1 to 24 bits. Valid pitch 1-20
It is selected by the 1st to 23rd bits.

このとは、アクセス制御は、選択したT L Bエント
リ中の1ビツトの書き込みピッ1−と、選択したライン
のロックビットの値と、TLB中のトランザクションI
Dと現在の1ヘランザクシヨンIDとの比較結果と、ア
クセスがロードとストアのどちらの動作モードであるか
の関数である。そして、アクセスは表1vのように制御
される。
This means that access control is based on the 1-bit write bit in the selected TLB entry, the value of the lock bit on the selected line, and the transaction I in the TLB.
This is a function of the comparison result between D and the current 1-transaction ID, and whether the access is in a load or store operation mode. Access is then controlled as shown in Table 1v.

表■■:ロックビット処理 データ記憶の例外が、ロックビットの規則違反を結告す
るために使用される。この規則違反は必ずしもエラーと
はならない。というのはそれはオペレーティングシステ
ムが新たに変更したラインを処理しなければならないと
いうことを指示するにすぎないからである。
Table ■■: LockBit Processing Data storage exceptions are used to flag violations of LockBit rules. Violation of this rule does not necessarily result in an error. This is because it simply tells the operating system that it should process the newly changed line.

さて、実記憶の各ページには参照ピッ1〜と変更ビット
とが設けられている。これらのビットは、本実施例のア
ドレス変換機構の外側に配列されており、実記憶へのア
クセスに対応して必要時にそれらのビットの値が更新さ
れる。参照ビットは、それに対応する実ページが読み出
しまたは1:き込みのためにアクセスされたときにrr
 I I+にセットされる。また変更ビットは、それに
対応するページが書き込まれたときに“1”にセラ(−
される6参照ピッ1−と変更ビットには、CPUからの
I10読み出し命令(IOR)及び書き込み命令(IO
W)によりアクセス可能である。各実記憶に対応する参
照ピッ1−と変更ビットは、I 10M底アドレスレジ
スタにより指定された1、10アトレスにX ’100
0’ を加えたアドレスを起点とする。そして、任意の
ページに対する参照ビットと変更ピッ1へのI10アド
レスは次の式で与えられる: [I10アドレス] = [I/○基底アドレスレジス
タにより指定されたアドレス] +X ’1001′+
[ページ番号] 各I10アドレスには、実記憶の1ページ毎に対応する
参照ピッ1〜と変更ビットとが含まれている。この参照
ピッI−Rと変更ビットCとのフォーマットは第8図に
示されている。すなわち、アクセスにより参照ビットと
変更ピッとへ転送されるデータは次のように定義されて
いる: ピッ1〜O〜29:ゼロ ビット30 :参照ビット。対応する実ページが、読み
出しまたは書き込み動作のためにアクセスされるとき1
”にセットされる。
Now, each page of real memory is provided with reference bits 1 to 1 and change bits. These bits are arranged outside the address translation mechanism of this embodiment, and the values of these bits are updated when necessary in response to accesses to real storage. The reference bit is set to rr when the corresponding real page is accessed for reading or writing.
I Set to I+. Also, the change bit is set to “1” (−) when the corresponding page is written.
The 6 reference pins 1- and the modified bits include the I10 read instruction (IOR) and write instruction (IO
W). The reference bit and change bit corresponding to each real memory are
The starting point is the address with 0' added. Then, the reference bit for any page and the I10 address to change pin 1 are given by the following formula: [I10 address] = [address specified by I/○ base address register] +X '1001'+
[Page Number] Each I10 address includes reference bits 1 to 1 and change bits corresponding to each page of real memory. The format of this reference bit I-R and change bit C is shown in FIG. That is, data transferred to reference bits and change pins upon access is defined as follows: Pits 1 to 0 to 29: Zero bit 30: Reference bit. 1 when the corresponding real page is accessed for a read or write operation
” is set.

ピッ1−31 :変更ビット。対応する実ページが、書
き込み動作のためにアクセスされるとき1”にセラ1〜
される。
Pip 1-31: Change bit. Sera 1 to 1” when the corresponding real page is accessed for a write operation.
be done.

尚、参照ビット及び変更ビットはハードウェアによって
初期化されない。これらのビットはシステムソフトウェ
アのIOW命令により初期化及びクリアされるのである
。そして、参照ピッ1〜及び変更ビットは、それらのビ
ットをセットまたはクリアするためのプログラムの実行
によりセットすることができるので、参照ビット及び変
更ピッ1−からデータを読み出す前に、それらのビン1
〜をセットまたはクリアするための書き込みの際に、書
き込まれたものと同一のデータが読み取ねれるとき限ら
ない。
Note that the reference bit and change bit are not initialized by hardware. These bits are initialized and cleared by system software IOW instructions. The reference bits 1- and change bits can be set by executing a program to set or clear those bits, so before reading data from the reference bits and change pins 1-,
This does not necessarily mean that when writing to set or clear ~, the same data that was written cannot be read.

(J)制御レジスタ群 さて、記憶構成や、ページテーブルアドレスや、I10
基底アドレスを設定するために複数の制御レジスタが備
えられている。これらのレジスタ群は、CPUからの工
/○読み出しくl0R)及びI10書き込み(IOW)
命令を介してシステムソフトウェアにより初期化(ロー
ド)される。その各々のレジスタの構成とフォーマット
は第9図から第18.3図までに示しである。これらの
レジスタは監視プログラム状態でのみアクセス可能であ
る。
(J) Control register group Now, the memory configuration, page table address, I10
A plurality of control registers are provided for setting the base address. These register groups are used for processing/reading (10R) and writing (IOW) from the CPU.
Initialized (loaded) by system software via instructions. The structure and format of each register are shown in FIGS. 9 to 18.3. These registers are only accessible in supervisor state.

64にブロックのI10アドレスを指定する工10基底
アドレス(第9図)が、アドレス変換システムには割り
付られている。この工/○基底アドレスの値はI10基
底アドレスレジスタに収められている値に65536 
(X ’10000’ )を掛けた値に等しい。I10
基底アドレスレジスタのフォーマットは第9図に示すと
おりである。
A base address (FIG. 9), which specifies the I10 address of the block at 64, is assigned to the address translation system. The value of this work/○ base address is 65536, which is the value stored in the I10 base address register.
(X '10000'). I10
The format of the base address register is as shown in FIG.

I10基底アドレスレジスタは次のように定義されてい
る: ビンl−0〜23 :保留 ピッ1〜24〜31:i10基底アドレス。この8ピッ
1−の値は、アドレス変換システムによって認識されて
いるI10アドレス内で、64にバイトのI10アドレ
スのブロックのうちどのブロックがアドレス変換システ
ムに割り付けられるかということを設定する。すなわち
、これらの8ビツトは最上位の8ビツトである。
The I10 base address register is defined as follows: Bin l-0-23: Pending pins 1-24-31: i10 base address. This 8-pi1 value sets which block of 64-byte I10 addresses within the I10 addresses known by the address translation system will be allocated to the address translation system. That is, these 8 bits are the most significant 8 bits.

第10図に示すレジスタは“RAM指定レジしタ″であ
る。このRAM指定レジスタは、RAMのサイズと、R
AMの開始アドレスと、リフレッシュ速度と、パリティ
チェックまたはエラー補正コード(FCC)が使用され
るか否かを設定するためのものである。尚、パリティチ
ェックとFCCは本発明の主旨からは外れているので、
ここではこれ以上説明しない。
The register shown in FIG. 10 is a "RAM designation register." This RAM specification register specifies the RAM size and R
It is used to set the AM start address, refresh rate, and whether parity check or error correction code (FCC) is used. Furthermore, since the parity check and FCC are outside the scope of the present invention,
I will not explain it further here.

RAM指従レジスタは第10図のフォーマツ1へをもち
、次のように設定されている: ビット0〜10 :保留 ビット11〜19:リフレッシュ速度。この9ビツトに
よりリフレッシュサイクルの速度が設定される。リフレ
ッシュサイクルの速度はピッ1−10〜18に収められ
ている値にCPUのクロック周波数を掛けたものに等し
い。このビット10〜18の値をゼロにするとリフレッ
シュ動作が不能化される。リフレッシュ速度の値は必要
とされるメモリリフレッシュ速度をCPUのクロック周
波数で割ることにより算出することができる。例えば、
128行に2ms毎にリフレッシュを必要とするダイナ
ミックメモリをもつシステムにおいては、各行毎のリフ
レッシュ間隔は2ms÷128=16.6μsである。
The RAM command register has format 1 in FIG. 10 and is set as follows: Bits 0-10: Reserved bits 11-19: Refresh rate. These 9 bits set the refresh cycle speed. The refresh cycle rate is equal to the value contained in pins 1-10 through 18 times the CPU clock frequency. Setting the value of bits 10 to 18 to zero disables the refresh operation. The refresh rate value can be calculated by dividing the required memory refresh rate by the CPU clock frequency. for example,
In a system with dynamic memory that requires 128 rows to be refreshed every 2 ms, the refresh interval for each row is 2 ms/128=16.6 μs.

そしてCPUのクロック周期が200nsだとすると、
リフレッシュ速度の計数値は15.6μs / 200
 n s、すなわち78 (X ’04E’ )である
。この値によりX’04E’ のリフレッシュ速度がロ
ードされる。
And if the CPU clock period is 200ns,
The refresh rate count is 15.6μs/200
n s, or 78 (X '04E'). This value loads the refresh rate of X'04E'.

尚、このリフレッシュ速度はプログラム操作シーケンス
の一部でX、’01A’ に初期化される。
Note that this refresh rate is initialized to X, '01A' as part of the program operation sequence.

ビット20〜27 : RAMの開始アドレス。この8
ピツ1〜フイールドにより変換アクセスと非変換アクセ
スの両方に対してRAMの開始アドレスが設定される。
Bits 20-27: RAM start address. This 8
The starting address of the RAM is set for both translation access and non-translation access by field 1~.

ビット28〜31:RAMのサイズ。この4ビツトフイ
ールドにより現在アドレス変換システムに配属されてい
るRAMのサイズが設定される。
Bits 28-31: RAM size. This 4-bit field sets the size of the RAM currently allocated to the address translation system.

(,1−2)足□q下1巨り隙2ノj−ここでROSと
はRead 0nly Storageすなわち読み出
し専用記憶装置をさすものとする。尚、このROSとい
う略称は第1図にも使用されている。
(, 1-2) foot □ q bottom 1 big gap 2 no j - Here, ROS refers to Read Only Storage, that is, a read-only storage device. The abbreviation ROS is also used in FIG.

さて、RO8指定レジスタとは、ROSの開始アドレス
と、ROSのサイズと、ROSによってパリティが与え
られているか否か、とを設定するためのものであり、そ
のフォーマットは第」1図に示すとおりである。尚、R
OSは変換モードと非変換モードのどちらでもアクセス
可能とする。
Now, the RO8 specification register is used to set the start address of ROS, the size of ROS, and whether or not parity is provided by ROS, and its format is as shown in Figure 1. It is. Furthermore, R
The OS can be accessed in either conversion mode or non-conversion mode.

RO3指定レジスタは次のように設定されている: ビットO〜19 :保留 ビット20〜27:ROSの開始アドレス。この8ピッ
1−のフィールドにより、変換アクセスと非変換アクセ
スのどちらの場合にもR,O5の開始アドレスが設定さ
れる。
The RO3 designation register is set as follows: Bits O-19: Reserved bits 20-27: Starting address of ROS. This 8-pi1- field sets the start address of R, O5 in both conversion access and non-conversion access.

ピッ1〜28〜31:ROSのサイズ。この4ビツトの
フィールドにより、アドレス変換システムに配属される
ROSのサイズが設定される。
Pi 1-28-31: Size of ROS. This 4-bit field sets the size of the ROS assigned to the address translation system.

(J−3)変換制御レジスタ 変換制御レジスタ(TCR)は、各ページのサイズ(2
にバイトまたは4にバイト)、主記憶ページテーブル(
ti A−rとIPTの組みあわせ)の開始アドレス、
次のハードウェアTLB再ロードに割り込みが発生して
いるか否か、及び参照アレイと変更アレイ上でパリティ
が使用されているか否かを指定するためのものであり、
そのフォーマットは第12図に示すとおりである。
(J-3) Conversion control register The conversion control register (TCR) is the size of each page (2
bytes or 4 bytes), main memory page table (
ti A-r and IPT combination) start address,
for specifying whether the next hardware TLB reload is interrupted and whether parity is used on the reference array and the modified array;
Its format is as shown in FIG.

変換制御レジスタは次のように設定されている:ピッ1
−0〜20:保留 ピッl−21(第12図R):TLB再ロード成功」二
の割り込みエネーブル。このビットはハードイアによる
1’ L Bの再ロード成功の報告を可能化するために
使用される。このビットRが“1″にセラ1〜されると
、ハードウェアによるTLBの再ロー1く成功により例
外応答が出されるとともに、記憶例外レジスタ(後述、
第13図参照)中のTL B再ロートピッ1〜丁が1”
にセットされる。
The conversion control register is set as follows: P1
-0 to 20: Pending pin l-21 (Figure 12R): Interrupt enable for "TLB reload successful". This bit is used to enable reporting of successful reload of 1'LB by hard ear. When this bit R is set to “1”, an exception response is issued due to a successful re-row of the TLB by the hardware, and the storage exception register (described later)
(See Figure 13) Medium TL B rerotation pitch 1~1"
is set to

また、このピッ1−R(第12図)が“0″にセラ1−
されると、TLBのエントリのハードウェアによる次の
再ロートは報告されない。このビットの機能はT L 
13の動作をソフトウェアにより測定するだめに使用す
ることができる。
Also, this pin 1-R (Fig. 12) is set to “0”.
, the next hardware rerotation of the TLB entry is not reported. The function of this bit is T L
13 can be used to measure the behavior by software.

ビット22(第12図P):参照アレイと変更アレイの
パリティエネーブル。このビットは、パリティが外部の
参照アレイと変更アレイ上で使用されているか否かを示
すために使用される。もしこのビットがII I II
にセットされていれば、パリティは参照アレイと変更ア
レイ上で使用されている。また、もしこのビットが0′
″にセットされていれば、参照アレイと変更アレイ上で
パリティが使用されていない。
Bit 22 (Figure 12P): Parity enable for reference array and modified array. This bit is used to indicate whether parity is used on the external reference and modification arrays. If this bit is II I II
If set to , parity is used on the reference and modified arrays. Also, if this bit is 0'
'', parity is not used on the reference and change arrays.

ビット23(第12図S)二ページサイズ。2にバイト
ページに対しては値“O”が使用され、4にバイトペー
ジに対しては値“1″が使用される。
Bit 23 (Figure 12S) Two page size. The value "O" is used for a 2 byte page and the value "1" is used for a 4 byte page.

ピッ1−24〜31 : HAT/IPT基底アドレス
。この8ビツトフイールドは、主記憶におけるHAT/
IPTエン1〜りの開始アドレスを指定するために使用
される。このフィールドに収められる値には、実記憶と
そのページサイズで決定されるある定数が掛けあわされ
、この値によりHAT/IPTエン1−りの開始アドレ
スが指定される。
Pits 1-24 to 31: HAT/IPT base address. This 8-bit field is the HAT/
Used to specify the starting address of IPT en 1-1. The value stored in this field is multiplied by a constant determined by the real memory and its page size, and this value specifies the starting address of the HAT/IPT engine.

2にバイトページの場合は、基底アドレスがこの変換制
御レジスタのビット24〜31により指定され、また4
にパイ1〜ページの場合は、基底アドレスがこのレジス
タのピッ[・25〜31により指定される。尚、記憶サ
イズとページサイズのさまざまな値に対する定数値が前
記衣Iにリストされているので参照されたい。
For 2 byte pages, the base address is specified by bits 24-31 of this translation control register, and 4
In the case of pi 1 to page, the base address is specified by pi 25 to 31 of this register. Note that constant values for various values of storage size and page size are listed in Section I above.

(,1−4’)敏箪孤匁少ジスタ 記憶例外レジスタ(SER)は記憶のアクセスのa、変
換プロセスにお(プるエラー及びシステムエラーを報告
するために使用される。すなわち、個々のピッ1〜は、
変換システムによって検出された各々のエラー条件を報
告するために設けられている。そして、エラーが複数重
なった場合、各々のエラーは、それぞれに割り当てられ
た適当なビットをセラ1〜することにより報告される。
(,1-4') The storage exception register (SER) is used to report errors in memory accesses, errors in the conversion process, and system errors; i.e., individual Pi1~ is
Provision is made for reporting each error condition detected by the conversion system. If a plurality of errors occur, each error is reported by setting appropriate bits assigned to each error.

尚、前回のエラーでセラ1−されたビットが、そのあと
に生じたエラーによりリセットされることはない。
Note that the bit that was set to 1 due to the previous error will not be reset due to a subsequent error.

この記憶例外レジスタ(S E R)は、プログラム操
作シーケンス(FOR)によりゼロに初期化される。そ
して、−たんある例外が報告されると、その例外動作が
処理されたあとシステムラフ1〜ウエアがSERをクリ
アする役割を担うことになる。
This storage exception register (SER) is initialized to zero by the program operation sequence (FOR). Then, when a certain exception is reported, the system rough 1~ware takes on the role of clearing the SER after the exception operation is processed.

この記憶例外レジスタ(s E R)のフォーマットは
第13図に示すとおりである。
The format of this storage exception register (sER) is as shown in FIG.

ビットQ〜21:保留 ビット22(第13図T):TLB再ロード成功。TL
Bのエントリ成功上の割り込みが首尾よく再ロードされ
たとき、このビットが1”にセットされる。
Bits Q~21: Pending bit 22 (T in Figure 13): TLB reload successful. T.L.
This bit is set to 1'' when the interrupt on successful entry of B is successfully reloaded.

ビット23 (第13図R):参照アレイと変更アレイ
のパリティエラー。参照アレイ及び変更アレイ中でパリ
ティエラーが検出されたときこのビットが1”にセラ1
−される。
Bit 23 (Figure 13R): Parity error between reference array and modified array. This bit is set to 1” when a parity error is detected in the reference array and modified array.
- to be done.

ビット24(第13図W):試みられたRO8への書き
込み、ROSアドレス空間に含まれるアドレスに対して
書き込みが試みられたときこのビットが“1”にセット
される。
Bit 24 (W in FIG. 13): This bit is set to "1" when a write is attempted to RO8 or to an address included in the ROS address space.

ビット25(第13図I):IPT指定エラー。Bit 25 (Figure 13 I): IPT specification error.

IPT検索チェーン中に無限ループが検出されたときこ
のピッ1〜が“1”にセットされる。無限ループは、シ
ステムソフトウェアのエラーにより誤ってIPTポイン
タの値が指定されたときに生じることがある。IPC検
索チェーンに無限ループが生じると、IPTポインタに
よりIPT検索チェーン中に、前のエン1−りが指定さ
れることになる。ピッh26(第13図E):外部装置
例外。
When an infinite loop is detected in the IPT search chain, this pin 1~ is set to "1". An infinite loop may occur when the value of the IPT pointer is incorrectly specified due to an error in the system software. If an infinite loop occurs in the IPC search chain, the IPT pointer will point to the previous entry in the IPT search chain. Pitch 26 (Figure 13E): External device exception.

このビットは外部装置によって例外がひき起こされたと
きに“1”にセットされる。
This bit is set to "1" when an exception is caused by an external device.

ピッh27(第13図M):4重例外。記憶例外レジス
タ中で例外表示がクリアされる前に二つ以−1−の例外
(ll”i’指定エラー、ページフォールト、記憶保護
あるいはデータ)が生じたときにこのピッ1−かl 1
.1″にセットされる。
Pih27 (Figure 13M): Quadruple exception. If two or more exceptions (ll"i' specification error, page fault, memory protection, or data) occur before the exception indication is cleared in the storage exception register, this pin 1- or l1-
.. Set to 1''.

このピッj〜は、通常はシステムソフトウェアが例外を
処理し損なったことを示す。しかしながら、多重ロー 
ド(LM)または多重ストア(STM)命令によって例
外が起こされたのであれば、このビットはセラ1−され
得る。というのは、多重ロード命令または多重ストア命
令は、例外によって終了する前に、その命令によって指
定されたすべてのレジスタをロードまたはストアしよう
と試みると考えられるからである。
This error usually indicates that the system software failed to handle the exception. However, multiple
This bit can be set to 1 if the exception was caused by a store (LM) or store multiple (STM) instruction. This is because a multiple load or multiple store instruction will attempt to load or store all registers specified by the instruction before terminating with an exception.

ビット28(第13図F)二ページフォールト。Bit 28 (Figure 13F) Two Page Fault.

このビットは、TLBエントリや主記憶のページテーブ
ルに仮想アドレスに対応する変換アドレスが含まれてい
ないという理由により変換動作が終了したときに“1″
にセットされる。
This bit is set to “1” when the translation operation is completed because the translation address corresponding to the virtual address is not included in the TLB entry or the main memory page table.
is set to

ピッ1〜29 (第13図S):指定。このビン1へは
、同一の仮想アドレスに対して2つのT、LBエントリ
が見出されたという理由で変換動作が終了したときに“
1″にセットされる。
Pitch 1-29 (Fig. 13 S): Designation. This bin 1 contains “
Set to 1''.

ビット30(第13図P):記憶保護。このビットは、
特殊でないセグメントに対する記憶保護処理により、記
憶へのアクセスが許容されないと決定されたことを理由
として変換動作が終了したときに“1″にセットされる
Bit 30 (Figure 13P): Memory protection. This bit is
It is set to "1" when the conversion operation ends because the storage protection process for a non-special segment has determined that access to the storage is not allowed.

ビット31(第13図D):データ。このビットは、特
殊セグメン1−に対するトランザクションID/ロック
ピッ1へ処理により、記憶へのアクセスが許容されない
と決定された事を理由として2変換動作が終了したとき
に“1”にセットされる。
Bit 31 (Figure 13D): Data. This bit is set to "1" when the 2 conversion operation is completed because it is determined that access to the memory is not permitted due to the transaction ID/lock pi 1 processing for the special segment 1-.

(J−5)g己憶例外アドレスレジスタ記憶例外71−
レスレジスタ(SEAR)は、有効記憶アドレスを収め
るためのものである。この有効記憶アドレスはCPUか
らのロード及びストア要求に対する例外を生じさせ、そ
の例外は記憶例外レジスタ(SER)によって報告され
る。尚、S E A Rはフェッチ命令や、外部デバイ
スによってひき起こされた例外に対してはロードされな
い。
(J-5) g Self-memory exception address register storage exception 71-
The address register (SEAR) is for storing a valid storage address. This valid storage address causes an exception to load and store requests from the CPU, and the exception is reported by the storage exception register (SER). Note that S E A R is not loaded for fetch instructions or exceptions caused by external devices.

この記憶例外アドレスレジスタのフォーマットは第L4
図に示すとおりである。
The format of this storage exception address register is L4.
As shown in the figure.

記憶例外アドレスレジスタは次のように定義されている
: ピッl−0〜31:記憶例外アドレス。この32ピツ1
〜有効記憶アドレスは、記憶例外レジスタによって報告
される例外をひき起こす。多重エラーが発生した場合(
記憶例外レジスタのビット27が1”にセットされてい
る場合)、記憶例外アドレスレジスタに収められている
アドレスは、最も古い例外のアドレスである。
The storage exception address register is defined as follows:Pill-0-31: Storage exception address. This 32 pics 1
~A valid storage address will cause an exception to be reported by the storage exception register. If multiple errors occur (
If bit 27 of the storage exception register is set to 1''), the address contained in the storage exception address register is the address of the oldest exception.

(J−6)被変換実アドレスレジスタ 被変換実アドレスレジスタ(TRAR)は、実アドレス
演算動作によって決定された実記憶アドレスを収めるた
めのものである。この実アドレス演算機能は、仮想アド
レスが実記憶内に現在マツプされているかどうかを判断
し、もしマツプされていればそれに対応する実アドレス
を決定するために使用される。実アドレス演算機能はあ
とで述べる。被変換実アドレスレジスタのフォーマツ1
−は第15図に示すとおりである。
(J-6) Translated real address register The translated real address register (TRAR) is for storing a real memory address determined by a real address arithmetic operation. This real address arithmetic function is used to determine whether a virtual address is currently mapped in real memory and, if so, to determine its corresponding real address. The real address calculation function will be described later. Format 1 of real address register to be converted
- is as shown in FIG.

被変換実アドレスレジスタは次のように定義されている
: ビットO(第15図1):無効ビット。このビットはア
ドレス変換が失敗したときに“1”にセットされ、アド
レス変換が成功したときにLL OI+にセットされる
The translated real address registers are defined as follows: Bit O (Figure 15 1): Invalid bit. This bit is set to "1" when address translation fails and is set to LLOI+ when address translation is successful.

ビット1〜7:ゼロ。これら7ビツトのフィールドは常
にゼロである。
Bits 1-7: Zero. These 7-bit fields are always zero.

ピッ1−8〜31:実記憶アドレス。アドレス変換が成
功したなら、この24ビツトのフィールドには所与の仮
想アドレスにマツプされる実記憶アドレスが収められる
。また、アドレス変換が失敗したなら、このフィールド
はゼロにセットされる。
Pits 1-8 to 31: Real memory address. If the address translation is successful, this 24-bit field contains the real storage address that maps to the given virtual address. This field is also set to zero if the address translation fails.

(,1−7)−j)−之ンザ久2目ン識別レジΔ叉1ヘ
ランザクション識別レジスタ(TID)は、現在q′η
殊ピッ1−の″所有者″として設定されているタクスを
識別するための8ビツトのデータを収める。すなわち、
もしあるセグメン1へが選択したセグメントレジスタ中
の特殊ビットによって特殊セグメン1へとして設定され
ているならば、その記憶アクセスに対して、既述したロ
ックビット処理が適用される。ロックビット処理は、1
−ランザクジョンI I)に収められた値を用い、その
値をTLB中の1−ランザクジョンIDエントリに対し
て比較し、その記憶アクセスが許容されているかどうか
を決定する。トランザクション識別アクセスが許容され
ているかどうかを決定する。I−ランザクジョン識別レ
ジスタのフォーマットは第16図に示すとおりである。
The transaction identification register (TID) is currently q'η
Contains 8-bit data for identifying the task that is set as the "owner" of the special task. That is,
If a segment 1 is set as special segment 1 by a special bit in the selected segment register, the lock bit processing described above is applied to that storage access. Lock bit processing is 1
-RunSakusion II Uses the value stored in I) and compares the value against the 1-RunSex ID entry in the TLB to determine whether the storage access is allowed. Determine whether transaction identification access is allowed. The format of the I-ranzaktion identification register is as shown in FIG.

トランザクション識別レジスタは次のように定義されて
いる: ビットO〜23:保留。
The transaction identification register is defined as follows: Bits O-23: Pending.

ビット24〜31ニドランザクジヨンID。この8ビツ
ト値は特殊セグメントの″所有者″を指定するためのも
のである。
Bits 24-31 Nidoranzaku Jiyon ID. This 8-bit value is for specifying the "owner" of the special segment.

(J−8)セグメントレジスタ セグメントレジスタは等しいフォーマツ1−のものが1
6個あり、ここではそのうち一つだけを示す。セグメン
トレジスタはセグメントID、特殊ビット、及びキービ
ットからなる。12ピッ1−のセグメントIDは各々2
56Mバイトをもつ、4096個の仮想記憶セグメント
のうちの1個を指定するためのものである。特殊ビット
は、このビットが立っているセグメン1〜が特殊セグメ
ントであり、ロックビット処理が適用されていることを
示す。キーピットは、ある所与のセグメン1−内で記憶
アクセスに関連して現在実行中のタスクについてのアク
セス権限レベルを示すためのものである。セグメントレ
ジスタのフォーマツ1へは第17図に示すとおりである
(J-8) Segment register The segment register has the same format 1- as 1
There are six, and only one of them is shown here. The segment register consists of a segment ID, special bits, and key bits. The segment ID of 12 pins 1- is 2 each.
It is used to specify one of 4096 virtual storage segments each having 56 Mbytes. The special bit indicates that segments 1 through 1 for which this bit is set are special segments, and lock bit processing is applied to them. The key pit is for indicating the access privilege level for the currently executing task related to storage access within a given segment 1-. The format 1 of the segment register is as shown in FIG.

各セグメントレジスタの内容は次のように定義されてい
る: ビンI−0〜17:保留。
The contents of each segment register are defined as follows: Bins I-0 to 17: Pending.

ピッ1〜18〜29:セグメントより0この12ピツ1
〜の値により、256Mバイトをもつ、4096個の仮
想記憶セグメン1−のうちの1つが指定される。
Pit 1-18-29: 0 from segment 12 pitsu 1
The value of ~ specifies one of 4096 virtual storage segments 1- each having 256 Mbytes.

ピッh30(第17図s):特殊ビット。このピッ1〜
は特殊セタメン1−に対してLL I IIにセットさ
れ、非特殊セグメン1へに対して1104′にセットさ
れる。
Pih30 (Fig. 17s): Special bit. This pic 1~
is set to LL I II for special segment 1- and to 1104' for non-special segment 1.

ビン1〜31 (第17図K):キーピット。このピッ
1−は所与のセグメント内のアクセスに対して現在実行
中のアクセス権限のレベルを決定するためのものである
。このビットを記憶アクセス制御に用いることについて
は例えば第2図との関連で説明しである。
Bins 1-31 (Fig. 17K): Keypit. This pin is for determining the level of access authority currently in effect for access within a given segment. The use of this bit for storage access control is discussed, for example, in connection with FIG.

ところで、ここで開示した実施例においては、2個のT
LBのうちの各々が16個ずつのエン1−りをもち、こ
れらのエントリにより仮想アドレスを実アドレスに変換
するために必要な変換及び制御情報が与えられる。それ
に加えて、各TLBエントリには記憶アクセス制御に使
用される情報も含まれている。また、TLBの内容はハ
ードウェアによって主記憶ページチルプルから自動的に
更新されるので、TLBエントリに書き込みを行ったあ
と読み取りを行っても、書き込まれた同一のデータは必
ずしも読み取られない。さらに、TLBエントリを変更
することは、仮想アドレスと実アドレスとの対応関係を
こわすことになるから、予測のつかない結果を招きかね
ない。すなわち、TLBの内容へのアクセスは診断的な
目的でのみ行なわれ、かつ非変換モードでのみ行なわれ
るべきである。そうして、他のすべての変換アクセスを
不能化して非変換モードでT L Bエン1へりに書き
込みを行い、そのあと読み取りを行えば、書き込まれた
のと同一のデータが読み取られることになろう。
By the way, in the embodiment disclosed here, two T
Each of the LBs has 16 entries, which provide the translation and control information necessary to translate virtual addresses to real addresses. In addition, each TLB entry also contains information used for storage access control. Further, since the contents of the TLB are automatically updated by hardware from the main memory page chill, even if a TLB entry is written and then read, the same written data is not necessarily read. Furthermore, changing the TLB entry destroys the correspondence between virtual addresses and real addresses, which may lead to unpredictable results. That is, access to the contents of the TLB should only be made for diagnostic purposes and only in non-translation mode. If you then write to TLB en 1 in non-translation mode, disabling all other translation accesses, and then read from it, you will read the same data that was written. Dew.

(K)’lI”LBエン1−リ 6 ’1’ L Bエン1へりは論理的に66ビツト(
保留ビットを除く)を有し、その66ビツトの内訳は、
アドレスタグが25ビツト、実ページ番号が13ピッ1
〜.有効ビットが1ビツト、キービットが2ピツ1〜、
書き込みピッ1−が1ビツト、トランザクション11.
)が8ビット、ロックビットが16ビツl−である。8
TLBエン1へりは3つのフィールドに画分けされてお
り、それらのフィールドは個別にアドレス可能である。
(K) 'lI' LB En 1 - 6 '1' LB En 1 edge is logically 66 bits (
(excluding reserved bits), and the breakdown of the 66 bits is as follows:
The address tag is 25 bits, and the actual page number is 13 bits.
~. Valid bit is 1 bit, key bit is 2 bits 1~,
Write bit 1- is 1 bit, transaction 11.
) is 8 bits, and the lock bit is 16 bits l-. 8
The TLB En1 edge is partitioned into three fields, which are individually addressable.

このTLBエントリの各フィールドのフォーマットは第
18.1〜第18゜3図に示すとおりである。
The format of each field of this TLB entry is as shown in Figures 18.1 to 18.3.

先ず第18.1図のフィールドをTLBアドレスダグフ
ィール1−と呼ぼう。このT L Bアドレスタグフィ
ール1〜にはセグメントIDと仮想ページインテックス
とが収められる。この収められるデータは2にバイ1−
ページに対してはセグメント■1〕と仮想ページインデ
ックスとの上位25ビツトであり、また4にパイ1〜ペ
ージに対してはそれらのL位24ヒッ1−である。
First, let's call the field in Figure 18.1 TLB address field 1-. The segment ID and virtual page index are stored in this TLB address tag field 1~. This stored data is 2 by 1-
For a page, it is the upper 25 bits of segment 1] and the virtual page index, and for pages 4 and 1 to 1 to 4, it is the L position 24 of them.

TLBアドレスタグフィールドは次のように定義されて
いる: ビットO〜2:保留。
The TLB address tag field is defined as follows: Bits O-2: Reserved.

ピッ1−3〜27:アドレスタグ。このフィールドには
、2にバイトページに対するセグメンl−IDと仮想ペ
ージインデックスの上位25ビツトが収められる。尚、
4にパイ1〜ページに対してはアドレスタグは[ビット
3〜26コとなる。
Pits 1-3 to 27: Address tag. This field contains the segment l-ID for the 2 byte page and the upper 25 bits of the virtual page index. still,
For pages 4 and 1 to pie, the address tag is bits 3 to 26.

ピッ1〜28〜31:保留。Pitch 1-28-31: Hold.

次に第18.2図のフィールドをTLB実ページ番号フ
ィールドと呼ぼう。このTI、B実ページ番号フィール
ドには、実ページ番号と、有効ビット(v)は、キーピ
ット(KEY)とが収められる。実ページ番号とはTL
Bエントリのアドレスタグフィールド中に収められた仮
想アドレスに割り付けられた番号である。有効ビット(
V)とは、所与のTLBエントリが有効な情報を有して
いることを示すためのビットである。また、キーピット
(KEY)とは、所与のページに対して必要なアクセス
権限を示すためのものである。
Next, let us call the field in Figure 18.2 the TLB real page number field. The TI and B real page number fields contain a real page number, a valid bit (v), and a key pit (KEY). What is the actual page number?TL
This is the number assigned to the virtual address contained in the address tag field of the B entry. Valid bit (
V) is a bit to indicate that a given TLB entry has valid information. Further, the key pit (KEY) is used to indicate the necessary access authority to a given page.

実ページ番号フィールドは次のように定義されている: ビッ1−〇〜15:保留。The real page number field is defined as follows: Bit 1-0~15: Suspended.

ヒラ1−16〜28:実ページ番号。この13ビツトの
フィールドにより8192個の実ページのうちの1つが
指定される。もし使用する実ページか8129個より少
ないなら、使用される実ページにアクセスするには、下
位側のビットのみを用いればよい。
Gila 1-16-28: Actual page number. This 13-bit field specifies one of 8192 real pages. If fewer than 8129 real pages are used, only the lower bits need to be used to access the real pages used.

ビット29 (第]8.2図V):有効ビット。Bit 29 (Figure 8.2 V): Valid bit.

このピッ1〜は、選択した1’ T、、 Bエン1−り
が有効な情報をもつときHI II−となり、もしTL
Bエントリが無効な情報をもっときrr OIIとなる
This pin 1~ becomes HI II- when the selected 1' T,, B en 1-ri has valid information, and if TL
If the B entry contains invalid information, it becomes rr OII.

ビット30〜31 (第18.2図KEY):キーピッ
1〜。この2ビツトのフィールドは各ページに対するア
クセス権限を設定する。 ′次に、第18.3図のフィ
ールドをTIDロックピッ1へフィールドと呼ぼう。こ
のTIDロックピッ1〜フィールドは、書き込みビット
と、トランザクションI l)と、ロックピッ1−とを
有している。
Bits 30-31 (Figure 18.2 KEY): Key Pip 1~. This 2-bit field sets access authority for each page. 'Next, let's call the field in Figure 18.3 the TID Lock Pi 1 field. This TID LockPi1~ field has a write bit, a transaction Il), and a LockPi1~ field.

もしTLBエントリが特殊ビット用であれば、ロックビ
ットはTLBのアドレスタグフィールド中に収められた
仮想アドレスに対して割付けされている。
If the TLB entry is for a special bit, the lock bit is assigned to the virtual address contained in the address tag field of the TLB.

TIDロックビットフィールドの内容は次のように定義
されている: ビットO〜6:保留。
The contents of the TID lock bit field are defined as follows: Bits O-6: Reserved.

ビット7(第18.3図W):書き込みビット。Bit 7 (Figure 18.3 W): Write bit.

このビットは特殊セグメントに対応する各ページに関す
るアクセス権限を設定する。
This bit sets the access rights for each page corresponding to the special segment.

ビット8〜14ニドランザクジヨンID、この8ビツト
のフィールドにより、現在、特殊セグメント内で選択さ
れたページを所有するタスクが設定される。これらのビ
ットをロックビット処理中で使用することについてはす
でに述へである。
Bits 8-14 Nidoranzaktion ID: This 8-bit field establishes the task that currently owns the selected page within the special segment. The use of these bits during lock bit processing has already been described.

ビット15〜31:ロックビット。この16ビツトのフ
ィールドにより特殊ビットに対応する2にバイトページ
または4にバイトページ内の各″ライン″に対するアク
セス権限が設定される。
Bits 15-31: Lock bits. This 16-bit field sets access authority for each "line" within a 2-byte page or a 4-byte page that corresponds to a special bit.

1本のラインは2にバイトページに対しては128バイ
ト、また4にバイトページに対しては256バイトであ
る。これらのビットをロックピット処理中で使用するこ
とについてはすでに述べである。
A line is 128 bytes for a 2 byte page and 256 bytes for a 4 byte page. The use of these bits during lock pit processing has already been discussed.

本実施例のアドレス変換機構においては、頻繁に要求さ
れる変換機能に対してはハードウェアで支援するように
している。このハードウェアはTL Bエントリを選択
的に無効化する能力と、IBMシステム/370ファミ
リがもつ機能に類似するパ実アドレスロード”機能を実
行する能力を備えている。
In the address translation mechanism of this embodiment, frequently requested translation functions are supported by hardware. This hardware has the ability to selectively invalidate TLB entries and perform a "parallel address load" function similar to the functionality possessed by the IBM System/370 family.

また、仮想アドレスマツピングへの変更が行なわれると
、システムソフトウェアはTLBの内容を主記憶中のペ
ージテーブルの内容に同期させる必要がある。そして、
それ以降のアドレス変換時に、既に使用済みのマツピン
グ情報が使用されることのないように、TLB中のエン
トリとページフレームテーブル中のエントリとは無効化
する必要がある。
Also, when changes to virtual address mapping are made, system software must synchronize the contents of the TLB with the contents of the page table in main memory. and,
Entries in the TLB and entries in the page frame table must be invalidated so that mapping information that has already been used is not used during subsequent address translation.

さて、上記同期化についてであるが、本実施例のシステ
ムはTLBエントリ・1′主記憶中のページテーブルに
同期させることを支援するために3つの機能を備えてい
る。これらの機能はTLBエントリのすべて、または選
択した一部のTLBエントリを無効化するために使用す
ることができる。
Now, regarding the above synchronization, the system of this embodiment has three functions to support synchronization with the TLB entry/1' page table in the main memory. These functions can be used to invalidate all or selected TLB entries.

また、これらの機能は、システムによって認識されたI
10アドレスの64バイトのブロック内で特定のI10
アドレスに指令されたI10書き込み命令(IOW)に
よって呼び出される。尚、これらの各々の機能に対する
アドレスの割り付けは必要に応じてシステムに与えるこ
とになる。
Additionally, these functions are recognized by the system.
A specific I10 within a 64-byte block of 10 addresses.
Invoked by an I10 write command (IOW) commanded to an address. Note that the allocation of addresses to each of these functions will be given to the system as necessary.

“全TLBの無効化2機能はすべてのTLBエントリを
無効化させるものである。このことにより、次のアドレ
ス変換に対応する主記憶中のページテーブルからTLB
の内容が更新される。
“The all TLB invalidation 2 function invalidates all TLB entries.This allows the TLB entry to be deleted from the page table in main memory corresponding to the next address translation.
The contents of will be updated.

この機能に関連づけられたアドレスへのI10書き込み
命令により、すべてのTLBエントリの無効化がはから
れる。なお、このときI10書き込み命令によって移送
されたデータは使用さ九ない。
An I10 write instruction to the address associated with this function will invalidate all TLB entries. Note that at this time, the data transferred by the I10 write command is not used.

(L−2)特 セグメント内のTLBエントリ無 化″
特定セグメント内のTLBエントリ無効化″機能により
特定のセグメントよりに関するすべてのTLBエントリ
が無効化される。このセグメントIDを使用する。それ
以降のアドレス変換動作によりTLBの内容が主記憶内
のページテープ取から更新される。
(L-2) No TLB entry in special segment''
The "Invalidate TLB Entries in a Specific Segment" function invalidates all TLB entries related to a specific segment. This segment ID is used. Subsequent address translation operations cause the contents of the TLB to be transferred to the page tape in main memory. Updated from take.

この機能に関連づけられたアドレスへのI10書き込み
命令により、特定のセグメントよりに関するTLBエン
(へりが無効化される。そして、I10書き込み命令に
よって移送されたビット0〜4のデータはセグメントI
Dを選択するために使用される。すなわち、その選択さ
れたセグメントIDを含む゛rLBエントリがすべて無
効化される。
An I10 write instruction to the address associated with this function disables the TLB edge for a particular segment. The data in bits 0-4 transferred by the I10 write instruction is then
Used to select D. That is, all the rLB entries including the selected segment ID are invalidated.

その無効化されたセグメント内の有効アドレスに関する
、以下のアドレス変換により、TLBの内容が主記憶の
ページテーブルから更新される。
The following address translations for valid addresses within the invalidated segment update the contents of the TLB from the main memory page table.

(L−3) の アドレスに対するTLBエン″特定有
効アドレスに対するTLBエントリ無効化″機能により
特定の有効アドレスに関するTLBエントリが無効化さ
れる。そして、特定の有効アドレスを含むページ内のあ
る有効アドレスに関して次にアドレス変換を行うことに
より、TLBの内容が主記憶の中のページテーブルから
更新される。
(L-3) TLB entry for address ``Invalidate TLB entry for specific effective address'' function invalidates the TLB entry for the specific effective address. Then, the contents of the TLB are updated from the page table in the main memory by performing address translation next on a certain effective address within the page that includes the specific effective address.

この機能に関連づけられたアドレスへのI10書き込み
命令により、特定の有効アドレスに関するTLBエント
リが無効化される。このとき、I10書き込み命令によ
って移送されたビットO〜31のデータは有効アドレス
として使用される。
An I10 write instruction to an address associated with this function invalidates the TLB entry for the particular valid address. At this time, the data of bits 0 to 31 transferred by the I10 write command is used as a valid address.

通常のアドレス変換プロセスは、本実施例のアドレス変
換機構中に含まれるセグメントレジスタの内容を使用す
ることにより適用される。
The normal address translation process is applied by using the contents of the segment registers included in the address translation mechanism of this embodiment.

(L−4)実アドレス演算 “実アドレス演算′″機能はシステムソフトウェアによ
り、i)所与の仮想アドレスが現在実記憶中にマツプさ
れているか、及び…)もしマツプされているならどの実
アトIノスが仮想アドレスに割り付られているのか、を
決定するために使用される。
(L-4) Real Address Arithmetic The "Real Address Arithmetic" function is used by system software to determine i) whether a given virtual address is currently mapped in real memory, and...) if so, which real address. Used to determine whether an I-nos is assigned to a virtual address.

そして、仮想アドレスがマツプされていなければ、実ア
ドレス演算機能め使用によりページフォールトがひき起
こされる。このページフォールトの情報は割り込みをデ
ィスエーブルして動作しているシステムルーチンに対し
ては重要であろう。
If the virtual address is not mapped, use of the real address arithmetic function will cause a page fault. This page fault information may be important to system routines operating with interrupts disabled.

というあは、たいていのI10動作は実記憶アドレスを
利用して実行されているからであり、それゆえにシステ
ムI10ルーチンにも仮想アドレスを実アドレスした変
換結果が必要である。
This is because most I10 operations are performed using real memory addresses, and therefore the system I10 routine also requires the result of converting virtual addresses to real addresses.

実アドレス演算機能は、この機能に関連づけられたアド
レスへのI10書き込み命令によって呼び出される。I
10データ書き込み命令によって移送されたデータのビ
ット0〜31は有効アドレスとして使用される。この有
効アドレスは、アドレス変換結果が記憶アクセスよりも
むしろ被変換実アドレスレジスタ(第15図)へロード
される場合を除き、通常の変換プロセスに使用されるこ
とになる。前にも述べたように、被変換実アドレスレジ
スタはアドレス変換が成功したかどうかを示すためのビ
ットと、そのアドレス変換が成功した場合の、対応する
実記憶アドレスとを備えている。通常の記憶保護処理と
ロックビット処理とはアドレス変換成功の表示がある際
に実行される。
The real address arithmetic function is invoked by an I10 write instruction to the address associated with this function. I
Bits 0-31 of the data transferred by the 10 data write command are used as effective addresses. This effective address will be used for the normal translation process, except when the address translation result is loaded into the translated real address register (FIG. 15) rather than a storage access. As previously mentioned, the translated real address register includes a bit to indicate whether the address translation was successful and the corresponding real storage address if the address translation was successful. Normal memory protection processing and lock bit processing are performed when there is an indication of successful address translation.

実アドレス演算機能により得られた結果は被変換実アド
レスレジスタのI10読み取り命令によって読み取られ
る。
The result obtained by the real address arithmetic function is read by the I10 read instruction of the real address register to be translated.

64にバイトからなるI10アドレスのブロックがアド
レス変換機構には割り付けられている。
A block of I10 addresses consisting of 64 bytes is allocated to the address translation mechanism.

この64にバイトのブロックはI10基底アドレスレン
スタにより指定されたI10アドレスから開始する。I
10基底アドレスは64にバイトの境界上に設定されて
いる。表4にリストした■10アドレスの割り当ては、
その指定された64にバイトのブロック中での変位であ
る。このとき、絶対I10アドレスはI10基底アドレ
スに変位を加えたものに等しい6 表4(1’/4) 表4 (2/4) 表4 (3/4) 表4 (4/4) [発明の効果] 以上のように、この発明によれば、仮想記憶装置におい
てHAT(ハツシュアドレステーブル)とIPT(逆ペ
ージテーブル)とを結合し、単一の結合テーブルとした
ので、基底アドレスレジスタ、テーブルエントリアドレ
ス計算手段、アドレスポインタ等のハードウェアが従来
の半分でよくなり、ハードウェアを低減できるという効
果がある。特に、大型コンピュータにおいては、上述し
たレジスタが多数使用されるので1本発明の適用により
きわめて多量のハードウェアを削減することができる。
This block of 64 bytes starts at the I10 address specified by the I10 base address register. I
Ten base addresses are set on 64 byte boundaries. ■The assignment of the 10 addresses listed in Table 4 is as follows:
The specified 64 is the displacement within the block of bytes. In this case, the absolute I10 address is equal to the I10 base address plus the displacement6 Table 4 (1'/4) Table 4 (2/4) Table 4 (3/4) Table 4 (4/4) [Invention [Effect] As described above, according to the present invention, HAT (hash address table) and IPT (inverse page table) are combined into a single combined table in the virtual storage device, so that the base address register, The hardware required for table entry address calculation means, address pointers, etc. is half of that of the conventional method, which has the effect of reducing the amount of hardware required. Particularly in large-sized computers, since a large number of the above-mentioned registers are used, application of the present invention can reduce an extremely large amount of hardware.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は、本発明におけるアドレス変換システムとアク
セス制御システムの要部のブロック図、第2図は、本発
明のアドレス変換機構で使用されるセグメントレジスタ
のフォーマットを示す図、第3図は、有効アドレスを仮
想アドレスに変換するためのシステムのブロック図及び
データの流れを示す図、 第4図は、有効アドレスを実アドレスに変換するための
システムのブロック図及びデータの流れを示す図、 第5図は、本発明のアドレス変換機構で使用されるアド
レス変換バッファの構成を示す図、第6図は、ハツシュ
アンカーテーブルと逆ページテーブルとの結合テーブル
のブロック図及び所与の仮想アドレスに対してTLBエ
ントリが見出されない場合のこれらのテーブルの動作を
示す図、第7図は、メモリに記憶されている状態の実際
のハツシュアンカーテーブル/逆ページテーブルの構成
及び内容を示す図、 第7A図は、各々実記憶の1ページを代表する複数の結
合HAT/IPTテーブルエントリに係るメモリ構成を
示すブロック図、 第8図は、各I10アドレスに関して使用される参照ビ
ットと変更ビットのフォーマットを示す図、 第9図は、I10基底アドレスレジスタのフォーマット
を示す図、 第10図は、RAM指定レジスタのフォーマットを示す
図、 第11図は、RO8指定レジスタのフォーマットを示す
図、 第12図は、変換制御レジスタのフォーマツ1−を示す
図、 第13図は、記憶例外レジスタのフォーマン1−を示す
図、 第14図は、記憶例外アドレスレジスタのフォーマット
を示す図、 第15図は、被変換実アドレスレジスタのフォーマット
を示す図、 FIG、9 FIG、10 FIG、11 FIG、42 FIG、13 FIG、I FIG、15 FIG、16 FIG、17 0 3 28 3( FIG、(8,I FIG、48.2 FIG、18.3
FIG. 1 is a block diagram of the main parts of the address translation system and access control system according to the present invention, FIG. 2 is a diagram showing the format of the segment register used in the address translation mechanism of the present invention, and FIG. FIG. 4 is a block diagram and data flow diagram of a system for converting an effective address into a virtual address; FIG. 4 is a block diagram and data flow diagram of a system for converting an effective address into a real address; FIG. 5 is a diagram showing the configuration of an address translation buffer used in the address translation mechanism of the present invention, and FIG. 6 is a block diagram of a combination table of a hash anchor table and a reverse page table, and FIG. 7 is a diagram showing the structure and contents of the actual hash anchor table/reverse page table as stored in memory; FIG. 7A is a block diagram illustrating the memory organization for multiple combined HAT/IPT table entries, each representing a page of real memory; FIG. 8 is the format of the reference and modification bits used for each I10 address; FIG. 9 is a diagram showing the format of the I10 base address register. FIG. 10 is a diagram showing the format of the RAM designation register. FIG. 11 is a diagram showing the format of the RO8 designation register. is a diagram showing the format 1- of the conversion control register, FIG. 13 is a diagram showing the format 1- of the storage exception register, FIG. 14 is a diagram showing the format of the storage exception address register, and FIG. A diagram showing the format of the real address register to be converted. , 48.2 FIG. , 18.3

Claims (2)

【特許請求の範囲】[Claims] (1)複数のページフレームをもつ階層形メモリと、仮
想アドレスを供給するための中央処理装置と、上記中央
処理装置から供給された仮想アドレスを上記ページフレ
ーム内の、該仮想アドレスよりも少さいメモリ空間をも
つ実記憶アドレスに変換するための変換手段とを有する
仮想記憶装置において、 所与の仮想アドレスをハツシュして、ハツシュアドレス
を作成するためのハツシュ手段と、各々の実アドレスに
仮想アドレスを対応させた第1のテーブルと、各々のハ
ツシュアドレスを、それぞれ異なる一群の連結された仮
想アドレスのうちの予定の仮想アドレスに結合させ、該
一群の仮想アドレスの各々がハツシュされたときは上記
結合されたハツシュアドレスを作成させるための第2の
テーブルとを結合させた、上記階層形メモリ内の結合テ
ーブルと、 上記結合テーブル内の上記一群の連結された仮想アドレ
ス内で所与の仮想アドレスの位置を検索するための検索
手段と、 上記検索手段により見出された仮想アドレスの位置に応
答して、上記第1のテーブルから、見出された該仮想ア
ドレスに対応する実記憶アドレスにアクセスするための
アクセス手段、 とを具備する仮想記憶装置。
(1) A hierarchical memory having a plurality of page frames, a central processing unit for supplying virtual addresses, and a virtual address supplied from the central processing unit that is smaller than the virtual address in the page frame. A virtual storage device having a hashing means for hashing a given virtual address to create a hashed address, and a hashing means for hashing a given virtual address to create a hashed address, and a virtual memory address for each real address. A first table in which addresses are associated, and each hashed address is combined with a scheduled virtual address of a different group of concatenated virtual addresses, and when each of the virtual addresses of the group is hashed; is a combination table in the hierarchical memory that combines the second table for creating the combined hash address; a search means for searching the position of the virtual address of the virtual address; and a real memory corresponding to the virtual address found from the first table in response to the position of the virtual address found by the search means. A virtual storage device comprising: access means for accessing an address.
(2)上記変換手段は、上記第1のテーブルの基底アド
レスと上記第2のテーブルの基底アドレスとを結合した
基底アドレスを記憶するための手段を備えてなる特許請
求の範囲第(1)項に記載の仮想記憶装置。
(2) Claim (1) wherein the conversion means comprises means for storing a base address that is a combination of the base address of the first table and the base address of the second table. The virtual storage device described in .
JP59233427A 1983-12-07 1984-11-07 Virtual memory Granted JPS60123947A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55824483A 1983-12-07 1983-12-07
US558244 1995-11-17

Publications (2)

Publication Number Publication Date
JPS60123947A true JPS60123947A (en) 1985-07-02
JPH0332092B2 JPH0332092B2 (en) 1991-05-09

Family

ID=24228755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59233427A Granted JPS60123947A (en) 1983-12-07 1984-11-07 Virtual memory

Country Status (2)

Country Link
JP (1) JPS60123947A (en)
CA (1) CA1220286A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63132355A (en) * 1986-06-18 1988-06-04 フランス国 Memory controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63132355A (en) * 1986-06-18 1988-06-04 フランス国 Memory controller

Also Published As

Publication number Publication date
JPH0332092B2 (en) 1991-05-09
CA1220286A (en) 1987-04-07

Similar Documents

Publication Publication Date Title
EP0113240B1 (en) Virtual memory address translation mechanism with controlled data persistence
US4680700A (en) Virtual memory address translation mechanism with combined hash address table and inverted page table
EP0072413B1 (en) A storage subsystem with hashed cache addressing
JP4268332B2 (en) Method and apparatus for calculating page table index from virtual address
US4905141A (en) Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5493660A (en) Software assisted hardware TLB miss handler
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5455834A (en) Fault tolerant address translation method and system
EP0650124B1 (en) Virtual memory computer system address translation mechanism that supports multiple page sizes
US5418927A (en) I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines
US7809921B2 (en) Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
US6401181B1 (en) Dynamic allocation of physical memory space
CA2057494A1 (en) Translation lookaside buffer
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
JPH04232551A (en) Method and apparatus for converting multiple virtaul addresses
JPH04320553A (en) Address converting mechanism
US4731740A (en) Translation lookaside buffer control system in computer or virtual memory control scheme
US5682495A (en) Fully associative address translation buffer having separate segment and page invalidation
US20010044880A1 (en) Method and apparatus for addressing main memory contents including a directory-structure in a computer system
US5287482A (en) Input/output cache
US5916314A (en) Method and apparatus for cache tag mirroring
EP0370175A2 (en) Method and system for storing data in and retrieving data
EP0409808A2 (en) Method for ensuring map integrity in a system-managed store of a computer
US5996062A (en) Method and apparatus for controlling an instruction pipeline in a data processing system