JPH03265049A - Address conversion method - Google Patents

Address conversion method

Info

Publication number
JPH03265049A
JPH03265049A JP2277954A JP27795490A JPH03265049A JP H03265049 A JPH03265049 A JP H03265049A JP 2277954 A JP2277954 A JP 2277954A JP 27795490 A JP27795490 A JP 27795490A JP H03265049 A JPH03265049 A JP H03265049A
Authority
JP
Japan
Prior art keywords
address
bit
page
bits
storage
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
JP2277954A
Other languages
Japanese (ja)
Other versions
JPH0679294B2 (en
Inventor
Albert Chung
チヤング・アルバート
John Coke
コーク、ジヨン
Mark F Margene
マージン、マーク・エフ
George Radin
ラデイン、ジヨージ
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
Priority to JP2277954A priority Critical patent/JPH0679294B2/en
Publication of JPH03265049A publication Critical patent/JPH03265049A/en
Publication of JPH0679294B2 publication Critical patent/JPH0679294B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE: To delicately protect storage by allowing a special bit and a conversion index buffering mechanism provided for each segment and a lock bit concerning each lien provided for a page frame to cooperate with each other. CONSTITUTION: A hierarchical storage system is constituted to convert a virtual address supplied by CPU to a real address by using the conversion index buffering mechanism and a page frame memory. In this constitution, plural segment registers are accessed by a segment identification field among the virtual addresses supplied by CPU. Then a segment identifier and the page offset field and the byte offset field of the virtual address are connected to generate a second virtual address having more bits than the virtual address to converts it to a real address. In addition, when the special bit is set to be a prescribed value, locking is executed for every line corresponding to a lock bit provided in each line.

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般的にはコンピュータ記憶サブシステム、と
りわけ当業者には、仮想記憶として知られた記憶装置に
構成された記憶サブシステムに関する。さらに詳しく言
えば、本発明は、仮想アドレスを実アドレスに変換し記
憶階層内である特有の制御機能を遂行するための装置に
関する。
DETAILED DESCRIPTION OF THE INVENTION A. Field of the Invention The present invention relates generally to computer storage subsystems, and more particularly to storage subsystems configured in storage devices known to those skilled in the art as virtual storage. More particularly, the present invention relates to an apparatus for converting virtual addresses to real addresses and performing certain specific control functions within a storage hierarchy.

B、従来の技術及びその課題 最新のコンピュータシステムにおいては、プログラムは
実行に際して、システム内のどこかすなわち、キャッシ
ュ/主記憶装置/直接アクセス記憶装置(DASD)の
記憶階層のあるレベルあるいは分散システムネットワー
クの別のノードに存在するデータまたはコードのアクセ
スを頻繁に試みる。最も基本的なシステムにとって、こ
のアクセスを行うためにはプログラムが伺を理解しなけ
ればならないかを、考えてみよう。
B. PRIOR ART AND ITS PROBLEMS In modern computer systems, programs execute somewhere within the system, either at some level in the storage hierarchy of cache/main memory/direct access storage (DASD) or in a distributed system network. Frequently attempts to access data or code that resides on another node. Consider how, for the most basic system, a program would have to understand what is being asked in order to have this access.

データ(またはコード)はどこに所在するか。その場所
によって、一般に、アクセスのためにどんな種類のアド
レスを用いるべきかが決まる。
Where is the data (or code) located? Its location generally determines what kind of address should be used for access.

(例えば、24ビツトの主記憶アドレス、ディスクトラ
ック上のセクタアドレス、またはネットワークのノード
アドレス)。また、そのアクセスを遂行するためにどん
な種類の命令を用いるべきかも場所によって決まる(例
えば、主記憶アクセスの場合はロード/記憶/分岐、デ
ィスクアクセスの場合はチャネル指令ワード、ネットワ
ークアクセスの場合は通信プロトコル)。
(For example, a 24-bit main memory address, a sector address on a disk track, or a network node address). The location also determines what kind of instruction should be used to accomplish the access (e.g. load/store/branch for main memory access, channel command word for disk access, communication for network access). protocol).

このデータが他のプログラムによって共有きれているか
。このデータが共有きれていれば、一定のロックが維持
されていない限りはアクセスを進行させることはできな
い。このプログラムがなそうとしているデータの変更を
他のプログラムに知られたくない場合は、記憶命令ある
いは私用アドレスに向けられるべきで、ある。
Is this data shared by other programs? Once this data is shared, no access can proceed unless a certain lock is maintained. If you do not want other programs to know about the data changes that this program is about to make, it should be directed to a store instruction or a private address.

当該データが回復可能であるべきか。もしそうであれば
、必要な場合に、前と同じ状態のデータを検索できるよ
うに、あるジャーナリング方法を実施しなければならな
い。
Should the data be recoverable? If so, some journaling method must be implemented so that when needed, the data can be retrieved in the same state as before.

こうした極めて基本的なシステムにおいて、各々のアク
セスの際にこれらを区別することを実際にプログラムが
要求きれていたと仮定する。そうすると、次のような事
が起こるであろう。
Assume that in such a very basic system, the program was actually required to distinguish between these at each access. Then the following will happen:

−プログラムを一般的に適覆可能にしようとすると、最
も頻繁に発生する°°単純で安全°′な要求の場合でさ
え、言い換えれば、主記憶装置に在る私用の回復不能デ
ータの場合できえ、そのアクセスは非常に遅くなるであ
ろう。
- Even in the case of simple and safe requests that occur most frequently when trying to make a program generally adaptable, in other words, for private, unrecoverable data residing in main memory. Yes, the access will be very slow.

プログラムをうまく働かせるためにそのアクセスモード
を1つに固定してしまうと、そのプログラムは異なる性
質を有するデータに対しては正しく実行されないであろ
う。
If you fix a program to one access mode in order to make it work well, the program will not run correctly on data with different properties.

プログラムは複雑かつ大規模で、しかもエラーを発生し
やすいものとなるであろう。
The program will be complex, large, and error-prone.

最近のシステムは、程度の、差はあれ、こうした問題に
取り組んできた。例えば、 再配置アーキテクチャによって、一般に、私用の回復不
能な一時的データおよびプログラムを、16ピツトない
し32ビツトのアドレスサイズ(通常、計算上の一時的
な要求にとっては適切)で統一的にアドレス指定するこ
とができる。再配置アーキテクチャが適切な°°索引°
°ハードウェアを用いて実施される場合、そうしたアク
セスのほとんどがキャッシュまたは主記憶装置の速度で
行われる。この索引ハードウェアが役に立たない場合(
これは100回試行して1回起こるよりも少ない頻度で
ある)にのみ、システムは再配置テーブル構造をアクセ
スする。再配置テーブルが役に立たない場合(すなわち
データが主記憶装置にない場合)にのみ、システムに°
゛ベージ不在°°のオーバーヘッドが生じる。従って、
真に必要な場合だけオーバーヘッドが解決される。これ
は、良好なアーキテクチャおよびその実施の目的である
Recent systems have addressed these problems to varying degrees. For example, relocation architectures typically allow private, unrecoverable, temporary data and programs to be uniformly addressed with address sizes ranging from 16 pits to 32 bits (usually appropriate for temporary computational needs). can do. °°Indexes with appropriate relocation architecture
° When implemented using hardware, most such accesses occur at cache or main memory speeds. If this indexing hardware is not useful (
The system only accesses the relocation table structure (which is less often than once in 100 attempts). Only when the relocation table is useless (i.e. when the data is not in main memory)
゛The overhead of page absence°° occurs. Therefore,
Overhead is resolved only when truly necessary. This is the goal of good architecture and its implementation.

プログラム実行の範囲を超えてデータを維持する場合は
、最新のシステムでば、ロード/記憶/分岐命令の代わ
りに、ソフトウェアで実現される°°アクセス方式°°
への明示要求によってアクセスを行うことを要求きれる
。こうしたアクセス方式は、一般に、°゛レコード°°
よび°′ファイル°“と呼ばれる定義きれた一定の基礎
群に構成きれるデータを支援する。アクセスのための°
°命令°°は、一般に、°°読取り/書込み°°または
°°ゲット/プツト°と呼ばれる。
To maintain data beyond the scope of program execution, modern systems use software-implemented access methods instead of load/store/branch instructions.
You can request access by explicitly requesting. These access methods generally
It supports data that can be organized into a defined set of basic groups called files and files.
The ° command ° ° is commonly referred to as ° ° read/write ° ° or ° ° get / put °.

データは共有されないか、または、回復不能である。そ
れは、実際に主記憶装置(成るバッファ領域)に記憶さ
れているかも知れない。しかしアクセスの度に、プログ
ラムはこのような明示的な°°読取り/書込み゛°呼出
しを行わねばならない。
Data is not shared or unrecoverable. It may actually be stored in main memory (consisting of a buffer area). However, for each access, the program must make such an explicit read/write call.

こうして、アクセス方式が適切に定義されれば、それに
よって、基本的システムにおけるよりも複雑でなくかつ
一般的に適用できるプログラムが生成される。しかしな
がらこうしたアクセスの性能は、−律に、ロード/記憶
よりも劣ったものとなり、アクセスされるデータを適切
な基礎群タイプに構成する必要が生じる。
Thus, if the access scheme is properly defined, it produces a less complex and generally applicable program than in the basic system. However, the performance of such accesses is typically inferior to that of load/store, and requires the data being accessed to be organized into appropriate base group types.

データが共有されるか、または、回復可能な場合は、最
新のシステムでは、ソフトウェアで実現される°°デー
タベースサブシステム゛への明示要求を必要とする。こ
うしたアクセスは、−船釣に、アクセス方式の場合のア
クセスに比べて極めて遅い。この原因は、ロックおよび
ジャーナル管理の機能を付加しているということだけで
なく、サブシステムが支援する基礎群の種類(例えば関
係、階層)がそれ自体さらに複雑であるということにも
ある。
If data is to be shared or recoverable, modern systems require an explicit request to a database subsystem implemented in software. Such access is extremely slow compared to access methods for boat fishing. This is not only due to the additional functionality of locking and journal management, but also because the type of infrastructure that the subsystem supports (e.g., relationships, hierarchies) is itself more complex.

ここでも、データが、実際にはさらに間車な構造で主記
憶装置のバッファ内にあるかも知れないが、アクセス要
求の度にオーバーヘッドの問題が生じる。
Again, the data may actually be in a buffer in main memory in a more compact structure, but each access request introduces an overhead problem.

゛°チエツクボインティング°゛と呼ばれる手段を用い
て一時的なデータの回復を支援するシステムもある。こ
の場合、プログラマが回復可能なアプリケーションを書
こうとすれば、3つの異なった手段を取り扱わねばなら
ない。3つの手段とは、計算データのためのチエツクボ
インティング、ファイルのための明示バックアップ、お
よびデータベースのための°゛確約命令である。
Some systems use a technique called "checkpointing" to assist in the recovery of temporary data. In this case, if a programmer wants to write a recoverable application, he or she must deal with three different approaches. The three measures are checkpointing for computational data, explicit backup for files, and commit commands for databases.

IBMシステム/38は、少なくとも、全てのデータに
とって統一的なアドレス指定構造を提供するという点に
関して言えば、大多数のシステムよりも進んでいる。し
かしながら、すべてのアドレスは極めて長く、多くのア
クセスは極めて遅く、アーキテクチャを実施するために
多大な記憶領域およびハードウェアを必要とする、とい
う犠牲のもとにこれが提供されているのであり、また、
共有または回復のための統一的な手法を提供するもので
はない。
The IBM System/38 is more advanced than most systems, at least when it comes to providing a uniform addressing structure for all data. However, this is provided at the cost that all addresses are extremely long, many accesses are extremely slow, and the architecture requires significant storage and hardware to implement;
It does not provide a uniform method for sharing or recovery.

1台または複数台の基本処理ユニットによって実行され
る多数のコンピュータプログラムが1つの記憶装置を共
有するための様々な手法がこれまで知られている。プロ
グラムによって共有されている記憶装置は極めて大きな
新記憶容量を必要とする。その容量は、記憶装置の実際
の容量よりも島かに大きいことが多い。例えば、システ
ムが32ビットアドレス方式を使用しているとすれば、
仮想記憶のアドレス指定可能な232バイトが使用可能
である。こうした仮想記憶空間は、通常、所定数の領域
すなわちセグメントに分けられるものとして考えられて
いる。各々のセグメントは所定数のラインから成るペー
ジに分けられ、各々のラインは所定数のバイトを有して
いる。従ってセグメントおよびページの指定、すなわち
、仮想記憶に割当てられたアドレスは、プログラムによ
って任意に指定きれるものであって、主記憶装置におけ
る実際の記憶位置を示すものではない。従って、仮想セ
グメントおよび仮想ページは主記憶装置全体にわたって
通常は任意の場所に位置して、必要に応じて外部記憶装
置から主記憶装置にスワップインしたり、主記憶装置か
ら外部記憶装置にスワップアウトしたりする。
Various techniques are known in the past for multiple computer programs executed by one or more elementary processing units to share a storage device. Storage shared by programs requires extremely large amounts of new storage capacity. Its capacity is often much larger than the actual capacity of the storage device. For example, if your system uses a 32-bit addressing scheme,
232 addressable bytes of virtual memory are available. Such virtual storage space is typically thought of as being divided into a predetermined number of regions or segments. Each segment is divided into pages of a predetermined number of lines, each line having a predetermined number of bytes. Therefore, the segment and page specifications, that is, the addresses assigned to virtual memory, can be arbitrarily specified by a program, and do not indicate actual storage locations in the main memory. Therefore, virtual segments and virtual pages are typically located anywhere throughout main memory and can be swapped in and out from external storage to main storage as needed. I do things.

主記憶装置内でのセグメントおよびページの位置が可変
のため、仮想アドレスから真の、すなわち実アドレスへ
の変換が必要である。この変換には、通常、主記憶装置
内にあってページフレームテーブルと呼ばれる一組のア
ドレス変換テーブルを用いる。大きな仮想システムにお
いては、非常に多くのアドレス変換テーブルが使用され
ている。
Because of the variable location of segments and pages within main memory, translation from virtual addresses to true, or real, addresses is necessary. This conversion typically uses a set of address translation tables located in main memory and called page frame tables. In large virtual systems, a large number of address translation tables are used.

これは様々な方法によって構成できる。そうしたあらゆ
る構成において必須の特徴は、特定の仮想アドレスが前
記テーブルにおいて該仮想アドレスに対する実アドレス
(もしあれば)を含む記憶位置へ論理的に写像されなけ
ればならないということである。
This can be configured in various ways. An essential feature in all such configurations is that a particular virtual address must be logically mapped to a storage location in the table that contains the real address (if any) for that virtual address.

機能的には、こうしたアドレス変換テーブルの動作は次
の通りである:特定の仮想アドレスの上位ビットを用い
て前記変換テーブルの特定のセクションをアクセスする
。使用される上位ビットは1つの特定のフレームすなわ
ちセグメントに関係する。そうして次に、下位ビットを
用いて特定の仮想アドレスがその中に含まれるかどうか
、およびもし含まれていれば、どの実アドレスがそれに
vj達しているかを検査する。仮想フレームアドレスに
よって指定される各々のページテーブルは、1つのフレ
ームに含まれる全てのページの実記憶位置を含んでいる
。従って1.1つの特定のフレームが例えば16ページ
に分けられるとすれば、フレームの各々に対して16個
のページテーブルが存在し、更にページテーブルの特定
の組を指定するエントリを持った1つのフレームテーブ
ルが別にある。以上の説明は一般化されており、ページ
テーブルとCPUの生成した仮想アドレスを出発点とす
るページテーブルアドレス指定手段とを利用してアドレ
ス変換を組織化する多くの異なった方法があることを理
解されたい。後の発明の良好な形態の説明において、基
本的に上述のような機能的構成を有するハツシュアドレ
ステーブル(HAT)および逆ページテーブル(IPT
)を詳述する。
Functionally, the operation of such an address translation table is as follows: The high order bits of a particular virtual address are used to access a particular section of said translation table. The high order bits used relate to one particular frame or segment. The lower bits are then used to check whether a particular virtual address is included therein and, if so, which real address vj reaches it. Each page table specified by a virtual frame address contains the real storage locations of all pages included in one frame. Thus: 1. If a particular frame is divided into, say, 16 pages, there will be 16 page tables for each frame, plus one page table with entries specifying a particular set of page tables. There is a separate frame table. It is understood that the above description is generalized and that there are many different ways to organize address translations using page tables and page table addressing means starting from CPU-generated virtual addresses. I want to be In later description of the preferred form of the invention, a hash address table (HAT) and an inverse page table (IPT) having a functional configuration essentially as described above will be described.
) in detail.

実際にアドレス変換を行う場合は、システム構成全体の
細部およびページテーブルの使用には関係なく、ページ
・フレームテーブルへの適切な入口点が作成され、与え
られた仮想アドレスを引き数として用いてページテーブ
ルがアクセスされる。
When actually performing address translation, regardless of the details of the overall system configuration and the use of page tables, an appropriate entry point into the page frame table is created and the page is translated using the given virtual address as an argument. A table is accessed.

そうして、通常は、複数回の記憶アクセスを経て、ペー
ジテーブルの所望のエントリが見い出される。
The desired entry in the page table is then typically found through multiple storage accesses.

通常、その時点において、全てのシステムプロトコルに
従っていたかどうかが検査され、もしそうならば、要求
されたページの実アドレスがページテーブルからアクセ
スされる。仮想アドレスのバイト部分すなわち°°バイ
トオフセット°°は、本来、相対アドレスであり、実ペ
ージおよび仮定ページにおいて同じである。従って、仮
想アドレスの所望の実ページアドレス部分が、−旦、変
換きれれば、バイトオフセット部分は実ページアドレス
場所と連結されて主記憶装置の実バイトアドレスを与え
る。
Typically, at that point it is checked whether all system protocols have been followed and, if so, the real address of the requested page is accessed from the page table. The byte portion of the virtual address, ie the °°byte offset °°, is a relative address in nature and is the same for real and hypothetical pages. Thus, once the desired real page address portion of the virtual address has been translated, the byte offset portion is concatenated with the real page address location to provide a real byte address in main memory.

現行の仮想記憶システムにおいてよく知られているとお
り、記憶装置をアクセスするたびにいちいち仮想アドレ
スの変換をしなくてもよいように、最近使用された仮想
アドレスから実アドレスへの変換が、本発明においても
使用する登録索引テーブル(DLAT)または変換索引
緩衝機fll(TLB)と呼ばれる一組の高速アクセス
可能なテーブルあるいは高速記憶装置に記憶される。こ
うしたテーブルあるいは緩衝機構は、通常、高速アクセ
ス可能な特別の記憶装置であり、これは前述のページフ
レームテーブルよりもさらに高速にアクセスできる。こ
れによって、頻繁に使用される仮想アドレスをこのテー
ブルに記憶しそれを高速にアクセスすれば、コンピュー
タの実行時間を大幅に節約できる。TLBアドレス変換
システムの効率のよさは、所定のプログラム実行におい
である仮想ページがアクセスされた場合それに続いて同
じページが何度もアクセスされるという事実に基づいて
いる。前述のように、続いて起こるアクセスかページ内
の異なったラインおよびバイトに対して行われる場合で
さえも、仮想ページアドレスから実ページアドレスへの
変換は、どのラインまたはどのバイトがアドレス指定さ
れるかに関係なく、そのページに関する限り同じである
As is well known in current virtual storage systems, the present invention is capable of converting recently used virtual addresses to real addresses so that virtual addresses do not have to be converted every time a storage device is accessed. The data is stored in a set of fast-accessible tables or high-speed storage devices called the registration lookaside table (DLAT) or translation lookaside buffer full (TLB). Such a table or buffer is typically a special fast-access storage device, which can be accessed even faster than the page frame table described above. This can save a computer a great deal of run time by storing frequently used virtual addresses in this table and accessing them quickly. The efficiency of the TLB address translation system is based on the fact that when a virtual page is accessed in a given program execution, the same page is subsequently accessed many times. As mentioned above, the translation from a virtual page address to a real page address depends on which line or byte is addressed, even if subsequent accesses are to different lines and bytes within the page. Regardless of the page, it is the same as far as the page is concerned.

TLBを用いればページフレームテーブル内で必要な変
換を大幅に減することができる。従って、仮想記憶シス
テム全体の性能を格段に高めることができる。
Using TLBs can significantly reduce the translations required within the page frame table. Therefore, the performance of the entire virtual storage system can be significantly improved.

こうした従来の再配置システムの有する別の問題は、ジ
ャーナリング問題の処理である。すなわち、現プログラ
ムが実行中でデータを使用している間、外部記憶装置内
にデータの複製を保持しておくことである。従って、ハ
ードウェアまたはソフトウェアに何らかの障害が発生し
ても、もとのデータの有効な複製は依然として使用可能
である。
Another problem with these conventional relocation systems is handling journaling issues. That is, a copy of the data is maintained in an external storage device while the current program is running and using the data. Therefore, even if some hardware or software failure occurs, a valid copy of the original data is still available.

このような機能は、従来、時間を浪費する複雑なハード
ウェアおよびソフトウェアによって実現きれており、要
求されるジャーナリング機能のために再び記憶装置の性
能低下という犠牲を強いることになる。
Such functionality has traditionally been accomplished through time-consuming and complex hardware and software, again at the cost of reduced storage performance for the required journaling functionality.

前述のようにコンピュータ技術においては、長年にわた
って仮想記憶システムが普及してきた。
As mentioned above, virtual storage systems have been popular in computer technology for many years.

何らかの再配置すなわちアドレス変換手段によって仮想
アドレスを実アドレスに変換しなければならならないと
いうこともまたよく知られている。
It is also well known that virtual addresses must be translated into real addresses by some relocation or address translation means.

こうしたアドレス変換手段においては、仮想アドレスか
ら実アドレスへの可変換性が保証されていなければなら
ない。この主題に関する特許朽よび論文を全て挙げるこ
とはできないが、以下に挙げる従来技術はアドレス変換
機構の代表的な例であって、かつ本発明に最も係りの深
い従来技術を示すものである。
In such address translation means, convertibility from a virtual address to a real address must be guaranteed. Although it is not possible to list all patents and papers related to this subject, the following prior art is a typical example of an address translation mechanism, and represents the prior art most closely related to the present invention.

Berglund他による米国特許第3828327号
は、アドレスに上位ビットを付加することによって記憶
装置を拡張するための従来の記憶制御手法を示している
。この上位ビットはプログラムによって明示されるアド
レスの一部ではないが、割込みモード、I10モード等
の別のシステムモードによって制!IIされる。この特
許は記憶装置拡張システムに関するものであるが、この
記憶装置拡張システムには同時にアドレス変換ハードウ
ェアが提供されている。Bourke他による米国特許
第4042911号もまた主記憶装置拡張の為のシステ
ムが示され、アドレス変換手段を明らかに含んでいる。
US Pat. No. 3,828,327 to Berglund et al. shows a conventional storage control technique for expanding storage by appending high order bits to addresses. This upper bit is not part of the address specified by the program, but can be controlled by another system mode such as interrupt mode or I10 mode. II will be done. Although this patent relates to a storage expansion system, the storage expansion system is also provided with address translation hardware. U.S. Pat. No. 4,042,911 to Bourke et al. also shows a system for main memory expansion and explicitly includes address translation means.

しかしながらこれら2つの米国特許は、TLB及びペー
ジフレームテーブルの両方に特別のロックビットを用意
するという事だけでなく、仮想アドレス拡張の概念をも
開示していない。
However, these two US patents do not disclose the concept of virtual address extension, as well as the provision of special lock bits in both the TLB and page frame table.

論文、George  Radin、  ” The 
 801Minicomputer”、  ACM  
  S  I  GPLAN   N0TICES、第
17巻、第4号、1982年4月号、39ないし47ペ
ージ、には非常に高速の記憶サブシステムに大きく依存
する動作特性を持った実験的なコンピュータに関する一
般的な記載が示されている。本発明の再配置機構はこの
ようなコンピュータに特に適しているであろう。
Paper, George Radin, “The
801Minicomputer”, ACM
SI GPLAN NOTICES, Volume 17, No. 4, April 1982, pages 39-47, contains general information on experimental computers whose operating characteristics depend heavily on very fast storage subsystems. The description is shown. The relocation mechanism of the present invention may be particularly suited for such computers.

Bourke他による米国特許第4050084号には
、スタックセグメンテーションレジスタを備えたアドレ
ス再配置変換器を含む記憶構成が示されている。この特
許に示される特別のセグメンテーションレジスタは、本
発明で用いるような拡張された仮想アドレスの記憶とい
うよりはむしろ主記憶装置内の物理ブロックに割り当て
られた実アドレスの記憶を目的としている。
No. 4,050,084 to Bourke et al. shows a storage arrangement that includes an address relocation translator with a stack segmentation register. The special segmentation register shown in this patent is intended for storage of real addresses assigned to physical blocks within main memory, rather than storage of extended virtual addresses as used in the present invention.

Mitchell他による米国特許第4251860号
には、広大な仮想アドレス記憶を実現するための仮想ア
ドレス指定装置を有する記憶アドレス指定システムが示
されている。この特許は、仮想アドレスをセグメント部
とオフセット部とに分割することを開示している。しか
しながら、セグメント部およびこれに係るセグメントレ
ジスタはアドレス分割を行う適切な手段として用いられ
るものであって、本発明のアドレス変換機構とはその動
作が全く異なる。
U.S. Pat. No. 4,251,860 to Mitchell et al. shows a storage addressing system having a virtual addressing device to provide vast virtual address storage. This patent discloses dividing a virtual address into a segment part and an offset part. However, the segment unit and its associated segment register are used as appropriate means for performing address division, and their operation is completely different from that of the address translation mechanism of the present invention.

B frney他による米国特許第4037215号に
示きれているシステムは、特定の実記憶ブロックを指定
するために一連のセグメンテーションレジスタを利用す
るという点において、前記米国特許第4050094号
に極めて類似している。この特許は、さらに特別のセグ
メンテーションレジスタに組み込まれる°°読取り専用
°°有効ピットの使用に関した記載もある。こうしたビ
ットは、本発明の再配置機構のハードウェアに設けられ
る特殊目的のロックビットとは全く異なるものである。
The system shown in U.S. Pat. No. 4,037,215 by B. frney et al. is very similar to U.S. Pat. No. 4,050,094 in that it utilizes a series of segmentation registers to specify particular blocks of real storage. . This patent also describes the use of read-only valid pits that are incorporated into special segmentation registers. These bits are quite different from the special purpose lock bits provided in the hardware of the relocation mechanism of the present invention.

Gordi他による米国特許第4077059号には、
ジャーナリングおよびコピーバックを容易に行うための
特別の制御手段を備えた階層記憶システムが示されてい
る。この特許には、複数の複式記憶装置もまた示されて
いる。これによって、現行データを一方の記憶装置に保
持して、後続のジャーナリングオペレーションおよびコ
ピーバックオペレーションを容易に行うために、変更を
他方の記憶装置に通知する。この特許のハードウェアお
よび1iIItM手段は本発明のaツクビットシステム
とは全く異なるものである。
US Pat. No. 4,077,059 to Gordi et al.
A hierarchical storage system is shown with special controls to facilitate journaling and copyback. This patent also shows multiple dual storage devices. This keeps current data in one storage device and notifies the other storage device of changes to facilitate subsequent journaling and copyback operations. The hardware and 1iIIItM means of this patent are quite different from the a-bit system of the present invention.

Hogan他による米国特許第4053948号には、
登録索引テーブル(DLAT)の各エントリに対してカ
ウンタを含む特別の手段を備えたアドレス変換システム
が示されている。
U.S. Pat. No. 4,053,948 to Hogan et al.
An address translation system is shown with special means including a counter for each entry in a registration lookaside table (DLAT).

Hoffman他による米国特許第4218743号は
、18Mシステム/38の再配置アーキテクチャに関し
て以下に列挙する多数の特許の例である。
US Pat. No. 4,218,743 to Hoffman et al. is an example of a number of patents listed below regarding the 18M System/38 relocation architecture.

この特許は仮想記憶コンピュータシステムにおいてIl
oが処理するアドレス指定を簡単にする方法を示唆して
いる。仮想記憶システムの課題に係る他の特許は第41
70039号、第4251860号、第4277862
号、および第4215402号である。
This patent describes Il in a virtual memory computer system.
suggests a way to simplify the addressing handled by o. Other patents related to virtual memory system issues are No. 41
No. 70039, No. 4251860, No. 4277862
No. 4215402.

Cord i他による米国特許第4020466号もま
た、ジャーナリングおよびコピーバック手順を容易に行
うための特別の手段を組み込んだ記憶システムを示すも
のである。この特許は、本発明のロックビット制御手段
とは全く関係がない。
US Pat. No. 4,020,466 to Cordi et al. also shows a storage system that incorporates special means to facilitate journaling and copyback procedures. This patent has nothing to do with the lock bit control means of the present invention.

Law lorによる米国特許第3942155号は仮
想記憶システムのセグメント区分形式を開示しているが
、この特許で使用されているセグメント化は、仮想アド
レスを拡張するために利用される本発明のセグメント化
オペレーションとは全く異なるものである。
U.S. Pat. No. 3,942,155 to Law Law discloses a segmented form of a virtual storage system, but the segmentation used in this patent is different from the segmentation operation of the present invention utilized to extend virtual addresses. This is completely different.

種々のハツシュ方式を用いて仮想記憶変換機構をアクセ
スする例として米国特許第4215402号を挙げてお
く。
US Pat. No. 4,215,402 is cited as an example of accessing a virtual memory conversion mechanism using various hashing methods.

C9課題を解決するための手段 本発明の手法に従って、アドレス変換および全体的な記
憶制御機能に対してハードウェアおよびソフトウェアを
十分に利用した仮想記憶サブシステムが提供される。シ
ステム内の嫌でのデータおよびプログラムは、それらが
どこに所在するのが、それらが−時間なものであるのか
、カタログされているのが、共有されているのかまたは
私用のものなのが、回復可能なのかまたは回復不能なの
か、ということに関係なく1、統一的にアドレス指定さ
れる。このことは、例えば、キャッシュ内に存在する私
用の回復不能な計算データがキャッシュの速度で回復で
きることを意味する。一方さらに、データがたとえ共有
されていても、キーを保持する特定のプログラムによる
アクセスもまたキャッシュの速度で行われる。
SUMMARY OF THE INVENTION In accordance with the approach of the present invention, a virtual storage subsystem is provided that fully utilizes hardware and software for address translation and overall storage control functions. Data and programs in the system are recoverable, including where they are located, how long they are cataloged, whether they are shared, or private. Uniformly addressed regardless of whether it is possible or irrecoverable. This means, for example, that private, non-recoverable computational data residing in the cache can be recovered at the speed of the cache. Furthermore, even though the data is shared, access by the particular program holding the key is also done at the speed of the cache.

こうして、このような統一的ラインのアドレス指定すな
わち°“単一レベル記憶°°アドレス指定を可能にした
ここに開示する記憶サブシステムの構成は、32ビツト
の仮想アドレスを使用する。この仮想アドレスはCPU
によって生成されるもので、そのうちの4ビツトで組に
なった16個の12ビツトセグメントレジスタを指定す
る。選択されたセグメントレジスタの内容と仮想アドレ
スの残りの28ビツトを連結して40ビツトの有効アド
レスを生成する。従って、各セグメントは、228バイ
トまでのデータを含むことができることが容易に理解き
れるであろう。この新しい40ビツトのアドレスは依然
として仮想アドレスであることに留意されたい。実アド
レスが存在するか否かを判断するために高速の部分連想
式変換索引緩衝機構を初めにアクセスすることによって
この40ビツトのアドレスが変換きれる。実アドレスが
存在しない場合は、他の変換システムと同じく、ページ
テーブルを参照してアドレス変換を実施する。
Thus, the configuration of the storage subsystem disclosed herein that enables such uniform line addressing or single-level storage addressing uses 32-bit virtual addresses. CPU
The 4 bits of these registers specify 16 12-bit segment registers. The contents of the selected segment register and the remaining 28 bits of the virtual address are concatenated to generate a 40-bit effective address. Therefore, it will be readily appreciated that each segment can contain up to 228 bytes of data. Note that this new 40 bit address is still a virtual address. This 40-bit address can be translated by first accessing a fast partially associative translation lookaside buffer to determine if a real address exists. If a real address does not exist, address translation is performed by referring to the page table, like other translation systems.

本構成の別の個有の特徴は、変換索引緩衝機構だけでな
くさらにページフレームテーブル内にも、ロッキング、
ジャーナリングおよび許可を検査するための特殊ロック
ビットを設けることである。
Another unique feature of this configuration is the locking,
A special lock bit is provided to check journaling and permissions.

各々の実アドレスに対して変換索引緩衝機構およびペー
ジフレームテーブルに複数のロックビット(実施例では
16個)が設けられることに留意されたい。1ページ内
の各ラインに対して1つのロックビットが与えられ、シ
ステム内のジャーナリング制纒のために使用される。ア
クセス手段およびソフトウェア手段がさらにシステムに
設けられ、それによってこうしたビットはハードウェア
だけでなくソフトウェアによるアクセスも可能である。
Note that multiple lock bits (16 in the example embodiment) are provided in the translation lookaside buffer and page frame table for each real address. One lock bit is provided for each line within a page and is used for journaling control within the system. Access means and software means are further provided in the system, whereby these bits are accessible not only by hardware but also by software.

本発明の主な目的は非常に広大な仮想アドレス空間を有
する仮想記憶サブシステムを提供することである。
The main objective of the present invention is to provide a virtual storage subsystem with a very large virtual address space.

本発明の他の目的は全ての記憶オペレーションにおいて
゛単一レベル記憶装置°°として機能するような記憶サ
ブシステムを提供することである。
Another object of the present invention is to provide a storage subsystem that functions as a ``single level storage'' for all storage operations.

本発明の他の目的は正しくない変換テーブルを使用した
ことによるアドレス指定エラーが発生しにくいような記
憶サブシステムを提供することである。
Another object of the present invention is to provide a storage subsystem that is less prone to addressing errors due to the use of incorrect translation tables.

本発明の他の目的はそうした仮想記憶サブシステム内で
ジャーナリングおよび関連するデータ保護を極めて容易
に行う制御機構を提供することである。
Another object of the present invention is to provide a control mechanism that greatly facilitates journaling and associated data protection within such a virtual storage subsystem.

本発明の他の目的はソフトウェアおよびハードウェアの
いずれにとっても使用可能であるそうした制御機構を提
供することである。
Another object of the invention is to provide such a control mechanism that can be used in both software and hardware.

本発明のこうした目的、特徴、および利点は、添付図面
に図示するように以下に示す発明の好ましい実施例の詳
細な記述から明らかになるであろう。
These objects, features, and advantages of the invention will become apparent from the following detailed description of the preferred embodiments of the invention, as illustrated in the accompanying drawings.

D、実施例 本発明の目的はここで開示される記憶制御装置によって
一般的に達成される。この記憶制御装置は、前に一般的
な形で述べたアドレス変換アーキテクチャを実施するホ
ストCPU記憶チャネルと接続する。アドレス変換アー
キテクチャは後でさらに詳しく説明する。変換機構は、
16メガバイトまでの容量を有する記憶装置とのインタ
ーフェースに要する論理を含む。記憶装置はインタリー
ブしてもしなくてもよいし、スタティック型でもダイナ
ミック型でも構わない。変換機構は機能的に3つのセク
ションに分けられる(第1図参照)。
D. Embodiments The objects of the invention are generally achieved by the storage controller disclosed herein. This storage controller interfaces with a host CPU storage channel that implements the address translation architecture previously described in general form. The address translation architecture will be explained in more detail later. The conversion mechanism is
Contains the logic required to interface with storage devices having capacities up to 16 megabytes. The storage device may or may not be interleaved, and may be of static or dynamic type. The conversion mechanism is functionally divided into three sections (see Figure 1).

CPU記憶チャネルインターフェース(CSC)10の
論理は共通フロントエンド(CFE)のセクション12
を有する。セクション12は記憶チャネルからアドレス
変換論理14および記憶IrIaI+論理16へ適切な
プロトコルを提供する。記憶チャネルとの通信は全てこ
の論理によって取り扱われる。アドレス変換論理は、記
憶チャネルより受は取った仮想アドレスを、記憶装置の
アクセスに用いられる実アドレスに、変換する。この論
理は16個のコングルエンスフラスを備えた2ウエイの
セットアソシアティブとして構成された変換索引緩衝機
構(TLB)を含む。必要な場合に主記憶装置にあるペ
ージテーブルから自動的にTLBエントリを再ロードす
る論理が設゛けられる。記憶制御論理16はアドレス変
換論理14から記憶装置へのインターフェースを提供す
る。この論理はダイナミックメモリリフレッシュ制御も
また備えている。
The logic of the CPU storage channel interface (CSC) 10 is implemented in section 12 of the common front end (CFE).
has. Section 12 provides the appropriate protocols from the storage channel to address translation logic 14 and storage IrIaI+ logic 16. All communications with storage channels are handled by this logic. Address translation logic translates virtual addresses received from the storage channel into real addresses used to access the storage device. The logic includes a translation lookaside buffer (TLB) configured as a two-way set-associative with 16 congruence frames. Logic is provided to automatically reload TLB entries from page tables located in main memory when necessary. Storage control logic 16 provides an interface from address translation logic 14 to storage devices. This logic also provides dynamic memory refresh control.

本発明は、主として、よく知られたコンピュータ回路、
装置、および機能ユニットの新規な組合せと機能動作と
に関するものであって、それらの特定の詳細な構造に係
るものではない。従ってこうしたよく知られた回路、装
置、およびブロックの構造、制御および、配置は本発明
に関係する部分だけを詳細に示した容易に理解できるブ
ロック表現および機能図の形で図面に偶因されている。
The present invention primarily relates to well-known computer circuits,
It relates to devices and novel combinations and functional operations of functional units, and not to their specific detailed structure. The structure, control and arrangement of such well-known circuits, devices and blocks are therefore presented in the drawings in easily understood block representations and functional diagrams showing in detail only those parts pertinent to the present invention. There is.

これは、構造的な詳細によって本発明が不明瞭になって
しまうことのないようにするためである。
This is in order to avoid obscuring the invention in structural details.

この構造的な詳細はその機能的な記述だけで当業者には
容易に明らかなものである。本発明に係るそうした特徴
を強調するために、さらに、これらのシステムの様々な
部分は適切に整理され機能的に記述されている。以下の
記述により、当業者は開示された記憶サブシステムの実
施可能性を理時解でき、さらに、様々なコンピュータア
ーキテクチャの任意の1つにそれを組み込むことができ
るであろう。
The structural details will be readily apparent to those skilled in the art from the functional description alone. Additionally, the various parts of these systems have been suitably organized and functionally described to emphasize such features of the present invention. From the following description, those skilled in the art will be able to appreciate the implementation possibilities of the disclosed storage subsystem and furthermore, be able to incorporate it into any one of a variety of computer architectures.

第1図は本アドレス変換システムの前述の機能部分を示
す。本アドレス変換システムは超LSI技術によって1
つの論理チップに集積できるであろう。
FIG. 1 shows the aforementioned functional parts of the present address translation system. This address translation system uses VLSI technology to
It could be integrated into one logic chip.

本システムでアドレスが変換されるか(仮想アドレスと
して取扱われるか)実アドレスとして取扱われるかは、
CPU記憶チャネル(C3C)上の変換モードピット(
Tビット)の値によって制御される。C5Cに要求を出
す各装置は要求の度に変換モードピットの値を制御する
。TビットはCPUが供給する記憶装置アクセス命令の
適切なフィールドから取り出される。I10装置による
記憶装置アクセスの場合は、Tビットの値はアダプタ接
続機構によって生成される。Tビットが1の場合は、記
憶装置アドレス(命令取出し、データロード、データ記
憶)は変換される。Tビットが0の場合は、記憶装置ア
ドレスは実アドレスとして取扱われる。
Whether this system converts the address (handles it as a virtual address) or treats it as a real address depends on the following:
Conversion mode pit (
T bit). Each device making a request to the C5C controls the value of the conversion mode pit each time it makes a request. The T bit is taken from the appropriate field of the CPU-supplied storage access instruction. For storage accesses by I10 devices, the value of the T bit is generated by the adapter attachment. If the T bit is 1, storage addresses (instruction fetch, data load, data store) are translated. If the T bit is 0, the storage address is treated as a real address.

ここに開示されたアーキテクチャにおいては、変換が行
われない記憶装置要求にとっては、記憶装置保護は有効
ではない。
In the architecture disclosed herein, storage protection is not effective for storage requests that do not undergo translation.

参照および変更の記録は、変換が行われるかどうかには
関係なく全ての記憶装置にとって有効である。
Records of references and changes are valid for all storage devices regardless of whether a conversion occurs.

アドレス変換が行われる場合は、変換オペレーションは
以下に示すように論理的に進められる。
When address translation is performed, the translation operation proceeds logically as shown below.

また以下に示すような厳密な論理的シーケンスではなく
異なる各部分の機能を並行して実行するようにしてもよ
い。
Further, the functions of different parts may be executed in parallel instead of in a strict logical sequence as shown below.

本アドレス変換機構は°°単一レベル記憶“アドレス指
定構造を実現する。ここに開示された良好な実施例では
アドレス変換は以下に示す事柄を支援する。
The present address translation mechanism implements a single-level storage "addressing structure. In the preferred embodiment disclosed herein, address translation supports the following:

1、複数の独立した仮想アドレス空間 264ギガバイトのアドレス空間 3、要求時ベージング 4.2048バイトまたは4096バイトのページ 5、記憶装置保護 6、命令およびデータのための共有セグメント’112
8バイトのラインのジャーナリングおよびロッキング 8.16メガバイトまでアドレス指定可能な実記憶 9、実ページごとの参照ビットおよび変更ビット 10、実アドレスロード、TLBエントリ無効化、およ
び記憶装置例外アドレスのためのハードウェア支援 記憶装置は、各々256メガバイトの容量を有する40
96個のセグメントから成る、単一の40ビット仮想ア
ドレス空間に写像きれているかのごとく取り扱われる。
1. Multiple independent virtual address spaces 264 gigabytes of address space 3. On-demand paging 4. 2048-byte or 4096-byte pages 5. Storage protection 6. Shared segment for instructions and data '112
Journaling and locking of 8-byte lines 8. Real memory addressable up to 16 megabytes 9, reference and change bits per real page 10, hard for real address loads, TLB entry invalidations, and storage exception addresses There are 40 hardware-assisted storage devices each with a capacity of 256 MB.
It is treated as if it were mapped into a single 40-bit virtual address space consisting of 96 segments.

C8Cより受は取った32ビツトのアドレスのうち上位
4ビツトを用いて16個のセグメントレジスタのうちの
1つを選択し、選択されたセグメントレジスタの内容1
2ビツトと、有効アドレスの残りの28ビツトとを連結
することによって、32ビツトのアドレスを40ビツト
の(長形式仮想)アドレスに変換する。そうして変換機
構が記憶装置アクセスのために40ビツトの仮想アドレ
スを実アドレスに変換する。容易にわかるように、ハー
ドウェアをわずかに変更するだけで仮想アドレスの大き
さを変更することも可能である。
The receiver uses the upper 4 bits of the 32-bit address received from C8C to select one of the 16 segment registers, and stores the contents 1 of the selected segment register.
A 32-bit address is converted to a 40-bit (long form virtual) address by concatenating the 2 bits with the remaining 28 bits of the effective address. A translation mechanism then translates the 40-bit virtual address to a real address for storage access. As can be easily seen, it is also possible to change the size of the virtual address with only slight changes to the hardware.

アドレス指定可能な記憶装置の容量は、常に、4ギガバ
イトのみである。言い換えれば、16個のセグメントレ
ジスタによって各々256メガバイトの容量を有する1
6個のセグメントが指定可能である。従ってオペレーテ
ィングシステムは適切な値をセグメントレジスタにロー
ドすることによって複数の独立した仮想アドレス空間を
生成することができる。限られた場合には、このように
して、256個の全く独立した4ギガバイトアドレス空
間を生成できるかも知れないが、(中核コードのような
)M&つかのセグメントが複数のアドレス空間で共有さ
れる可能性の方が高い。
Addressable storage capacity is always only 4 gigabytes. In other words, 16 segment registers each have a capacity of 256 MB.
Six segments can be specified. Thus, the operating system can create multiple independent virtual address spaces by loading appropriate values into the segment registers. In limited cases, it might be possible to create 256 completely independent 4 gigabyte address spaces in this way, but M&a few segments (such as core code) are shared by multiple address spaces. More likely.

IBMシステム/370と同様な記憶装置保護が2にバ
イトまたは4にバイトのページ単位で備えられる。25
6メガバイトのセグメントごとに独立して指定される保
護キー(S/370のPSWにあるキーと等価なもの)
によって記憶保護および取出し保護が達成される。なお
、異なるセグメントレジスタに同一の値(セグメント識
別子)をロードしておくことによって、異なるタスク間
でセグメントを共有することが可能となる(特にタスク
間通信の場合などに有益である)。
Storage protection similar to the IBM System/370 is provided in 2 byte or 4 byte pages. 25
Protection key specified independently for each 6 MB segment (equivalent to the key in the S/370 PSW)
Storage and retrieval protection is achieved by: Note that by loading the same value (segment identifier) into different segment registers, it becomes possible to share segments between different tasks (this is particularly useful in the case of inter-task communication).

持続記憶クラスに対するサポートは、各仮想ページに関
連する一組のロックビットによって与えられる。このロ
ックビットは記憶装置保護の細分性を記憶装置の゛ライ
ン゛°にまで効果的に拡張しく2にページの場合は12
8バイト、4にページの場合は256バイト)、こうし
てオペレーティングシステムは持続変数の変更を検知し
それを自動的にジャーナリングすることができる。ここ
で云う持続記憶クラスは、その内容が例えばディスクフ
ァイル記憶装置に永続的に記憶きれているものを意味す
る。
Support for persistent storage classes is provided by a set of lock bits associated with each virtual page. This lock bit effectively extends the granularity of storage protection to 2 or 12 pages of storage.
8 bytes, or 256 bytes for 4 pages), thus allowing the operating system to detect changes to persistent variables and automatically journal them. The persistent storage class here means one whose contents can be permanently stored, for example, in a disk file storage device.

以下の用語は本明細書で使用され、明瞭かつ簡便のため
にここで定義される。
The following terms are used herein and are defined here for clarity and convenience.

バイトインデックス 2にバイトページの場合、ページまたはページフレーム
内で1つのバイトを識別するためのOないし2047 
(11ビツト)の範囲の数値[4にバイトページの場合
ばOないし4095 (12ビツト)]。バイトインデ
ックスは有効アドレスの下位11ビツト[12ビツト]
から取り出される。
If byte index 2 is a byte page, O to 2047 to identify one byte within the page or page frame.
(11 bits) [O to 4095 (12 bits) for 4 byte pages]. The byte index is the lower 11 bits [12 bits] of the effective address.
taken from.

変更ビット 各ページフレームに関連するビット。change bit Bits associated with each page frame.

そのフレームに対して記憶装置参照(書込みのみ)が成
功した場合は常に°1°°にセットされる。
Set to °1°° whenever a storage reference (write only) is successful for that frame.

有効アドレス 記憶チャネル上の装置によって生成される32ビツトの
記憶チャラネルアドレス。このアドレスは、命令取出し
、データロード、またはデータ記憶の際にポストCPU
によって生成できる。また、DMAアドレスのように、
記憶チャネル上の■10装置によって生成することもで
きる。
Effective Address A 32-bit storage channel address generated by a device on the storage channel. This address is used by the post CPU when fetching instructions, loading data, or storing data.
It can be generated by Also, like a DMA address,
It can also be generated by a 10 device on a storage channel.

ライン 128バイトごとの境界を有する1ページの128バイ
ト部分、これは1つのロックビットによって制alTき
れる記憶容量である。
A 128-byte portion of a page with a line boundary of 128 bytes, which is the storage capacity that can be limited by one lock bit.

ロックビット 持続記憶セグメントの各ページに関連した16ビツトの
うちの1つ。各ロックビットは記憶装置の1つのライン
に関連する。トランザクションID1書込みビット、お
よびロックビットの値を組合せて、1つのラインに対し
、持続記憶セグメントにおいて記憶装置アクセス要求が
許可きれているかまたは禁止されているかを決定する。
Lock Bit One of 16 bits associated with each page of a persistent storage segment. Each lock bit is associated with one line of storage. The values of the transaction ID1 write bit and the lock bit are combined to determine whether storage access requests are permitted or prohibited in the persistent storage segment for a line.

ページ 2048バイト[または4096バイト]の境界で区切
られた2048バイト[または4096バイト]の記憶
単位。゛°ベージ゛°は正しくは仮想記憶に関し、一方
、゛ページフレーム内°は実記憶に関するものであるが
、歴史的に°“ページ゛°は仮想記憶および実記憶のい
ずれにも使用されている。
A storage unit of 2048 bytes [or 4096 bytes] separated by page 2048 byte [or 4096 byte] boundaries. ``Bage'' properly refers to virtual memory, while ``page frame'' refers to real memory, although historically ``page'' has been used for both virtual and real memory. .

ページフレーム 2048バイト[または4096バイト]の境界で区切
られた2048バイト[または4096バイト]の記憶
単位。ページはページフレーム内または外部記憶装置(
すなわちディスク)上に存在する。
A storage unit of 2048 bytes [or 4096 bytes] separated by page frame 2048 byte [or 4096 byte] boundaries. The page can be stored in a page frame or on external storage (
i.e. on the disk).

ページテーブル 主記憶装置内のハツシュアンカーテーブルおよび逆ペー
ジテーブルのエントリを組合せたもので、仮想アドレス
から対応する実アドレスへの変換に用いられる(ここで
はHAT/IPTとも云う)。
A page table is a combination of entries from the hash anchor table and the reverse page table in main memory, and is used to convert a virtual address to a corresponding real address (herein also referred to as HAT/IPT).

保護キー 各セグメントレジスタにある1ビツトの値であって、現
在実行中のプロセスが所与のセグメント内のデータをア
クセスできるかどうかを示す。この保護キーは機能的に
はIBMシステム/370のPSWキーと似ているが、
アドレス指定可能な全ての記憶域に対して大域的に適用
されるのではなく、各セグメントに対して個々に適用さ
れる。
Protection Key A one-bit value in each segment register that indicates whether the currently executing process can access the data in a given segment. This protection key is functionally similar to the IBM System/370 PSW key, but
It is applied individually to each segment rather than globally to all addressable storage.

実アドレス 変換オペレーションの結果、実ページインデックス(1
0ビツトないし13ビツト)と有効アドレスの下位11
ビツト[または12ビツト]を連結したもの(実ページ
インデックス11バイトインデツクス)。
As a result of the real address translation operation, the real page index (1
0 bit to 13 bits) and the lower 11 of the effective address
A concatenation of bits [or 12 bits] (real page index 11-byte index).

実ページインデックス 実記憶のページフレームを識別するためのOないし81
92 (13ビツト)の範囲の数値。この値を10ビツ
トまで減らすことによって、実記憶の最大i量を2にバ
イトのページで2Mバイトまでに制限する場合もある。
Real page index O to 81 for identifying page frames in real memory
Numeric value in the range 92 (13 bits). By reducing this value to 10 bits, the maximum amount of real storage may be limited to 2M bytes in 2 byte pages.

参照ビット 各ページフレームに関連するビット。そのフレームに対
して記憶装置参照(読取りまたは書込み)が成功した場
合は常に“1゛°にセットされる。
Reference Bits Bits associated with each page frame. Set to ``1'' whenever a storage reference (read or write) is successful for that frame.

セグメントID 256Mバイトの仮想記憶セグメントを識別するための
Oないし4095 (12ビツト)の範囲の数値。セグ
メントIDと仮想ページインデックスとを連結して、4
0ビット仮想アドレス空間の1ページを指定する。
Segment ID A numeric value ranging from 0 to 4095 (12 bits) to identify a 256 MB virtual storage segment. Concatenate the segment ID and virtual page index to create 4
Specifies one page of 0-bit virtual address space.

記憶装置キー 特定の1ページに関連した保護レベルを識別するための
、各TLBエントリ内の2ビツトの値。
Storage Key A two-bit value within each TLB entry that identifies the level of protection associated with a particular page.

このキーは、機能的にはシステム/370の各べ−ジに
関連した記憶装置キーに似ている。
This key is functionally similar to the storage keys associated with each System/370 page.

TLB 変換索引緩衝機構。TLBは仮想−実写像を含むハード
ウェアである(常にこの写像の一部のみをTLBに含ま
せる場合もある)。この写像の他に、各TLBエントリ
は、変換TD、記憶装置キー、およびロックビットのよ
うな、それに関連するページに係る他の情報を含む。
TLB Translation index buffer. The TLB is hardware that contains a virtual-to-real mapping (although only a portion of this mapping may be included in the TLB at any given time). Besides this mapping, each TLB entry contains other information about the page associated with it, such as the translation TD, storage key, and lock bits.

トランザクションID 現在TLBエントリにロードされている一組のロックビ
ットの゛所有者°゛を識別するためのOないし255 
(8ビツト)の範囲の数値。
Transaction ID O to 255 to identify the "owner" of the set of lock bits currently loaded in the TLB entry
(8 bits).

仮想アドレス セグメントIDと有効アドレスの下位28ビツトとを連
結することによって本アドレス変換機構内で形成される
40ビツトのアドレス値。(すなわち、セグメントID
11仮想ページインデツクス11バイトインデツクス)
A 40-bit address value formed within the present address translation mechanism by concatenating the virtual address segment ID and the lower 28 bits of the effective address. (i.e. segment ID
11 virtual page index 11 byte index)
.

仮想ページインデックス 2にバイトページの場合、仮想記憶セグメント内の1ペ
ージを識別するためのOないし131072 (17ビ
ツト)の範囲の数値[4にバイトページの場合ばOない
し65536 (16ビツト)]。
If virtual page index 2 is a byte page, a number in the range O to 131072 (17 bits) to identify a page within the virtual memory segment [0 to 65536 (16 bits) if 4 is a byte page].

仮想ページインデックスは有効アドレスのビット4〜2
0[4〜19]から取り出される。
The virtual page index is bits 4-2 of the effective address.
0[4-19].

記号11は連結を表わす。Symbol 11 represents connection.

本アドレス変換機構を支援するのに要するハードウェア
を以下に説明する。実施態様によってはフィールド輻を
変更することもできることに留意されたい。
The hardware required to support the present address translation mechanism is described below. Note that the field vergence can also be changed in some implementations.

TLBは任意の個数のエントリから成り、各エントリは
成るページの仮想アドレスからその実アドレスへの変換
を制御する。
The TLB consists of an arbitrary number of entries, each of which controls the translation of a page's virtual address to its real address.

TLBの詳細な構成は実施態様に依存する。2つの実施
態様が可能である。セグメントIDI仮想ページインデ
ックスによってアドレス指定され、かつ、実記憶フレー
ムあたり1つのエントリを含む内容アドレス記憶装置(
CAM)。CAMエントリのインデックス(序数)は実
ページインデックスに等しい。仮想ページインデックス
の下位ビットの成る数値によってアドレス指定きれるセ
ットアソシアティブTLBo実ページインデックスはT
LBエントリの1つのフィールドに含まれる。
The detailed configuration of the TLB depends on the implementation. Two implementations are possible. Content addressable storage (addressed by segment IDI virtual page index and containing one entry per real storage frame)
CAM). The index (ordinal number) of a CAM entry is equal to the real page index. The set-associative TLBo real page index that can be addressed by the numerical value consisting of the lower bits of the virtual page index is T.
Contained in one field of the LB entry.

TLBの形に対する唯一の制約は、非CAM型の実施が
少なくとも2ウエイのセットアソシアティブでなければ
ならないことである。各TLBエントリは、rOR命令
およびIOW命令を用いて、個別に、CPUから読み取
られたり書き込まれたりする。TLBエントリは以下に
示すフィールドを含む。
The only constraint on the shape of the TLB is that the non-CAM implementation must be at least two-way set-associative. Each TLB entry is individually read from and written to by the CPU using rOR and IOW instructions. A TLB entry includes the fields shown below.

32ビツトの入力有効アドレス(CPUまたはI10装
置より)は、初めに、セグメント識別子を有効アドレス
に連結することによって40ビツトの仮想アドレスに拡
張きれる。fi想アドレスは、次に、等価な実アドレス
への変換のために変換ハードウェアに供給される。仮想
アドレスは以下に示すプロセスによって実アドレスに変
換される。
A 32-bit input effective address (from the CPU or I10 device) can be expanded to a 40-bit virtual address by first concatenating the segment identifier to the effective address. The virtual address is then provided to translation hardware for translation to an equivalent real address. Virtual addresses are translated to real addresses by the process described below.

入力有効アドレスの上位4ビツトを用いてセグメントテ
ーブルを検索し、16個のセグメントのうちの1つを選
択する。12ビツトのセグメント識別子、″°特殊セグ
メント°°ビット、およびキービットは、選択きれたセ
グメントレジスタから得られる。12ビツトのセグメン
ト識別子は仮想アドレスの生成のために用いる。特殊セ
グメントビットおよびキーピットは次の示すアクセス有
効化のために用いる。第2図はセグメントテーブルの形
式を示している。
The upper 4 bits of the input valid address are used to search the segment table and select one of the 16 segments. The 12-bit segment identifier, special segment bits, and key bits are obtained from the selected segment register. The 12-bit segment identifier is used for virtual address generation. The special segment bits and key bits are: It is used for access validation indicated by .FIG. 2 shows the format of the segment table.

12ビツトのセグメント識別子は入力有効アドレスのビ
ット4ないしビット31に連結されて40ビツトの仮想
アドレスを生成する。有効アドレスのうち、2にページ
の場合は下位11ビツト、または4にページの場合は、
12ビツトが、選択きれた実ページのためのバイトアド
レスとして使用される。これらのビットは変換プロセス
によって変更されることはない。仮想アドレスの残りの
29 (28)ビットは、次に、変換ハードウェアに与
えられる。第3図は、セグメント識別子および記憶装置
有効アドレスを用いて行われる仮想アドレスの生成を示
す。
The 12-bit segment identifier is concatenated with bits 4 through 31 of the input effective address to produce a 40-bit virtual address. If the 2nd page of the valid address is a page, the lower 11 bits, or if the 4th page is a page, the lower 11 bits are
Twelve bits are used as the byte address for the selected real page. These bits are not changed by the conversion process. The remaining twenty-nine (28) bits of the virtual address are then provided to the translation hardware. FIG. 3 illustrates the generation of a virtual address using a segment identifier and a storage device effective address.

本明細書に示すアドレス変換システムは、最後に使用さ
れた仮想アドレス(本実施例では32)の変換を含む変
換索引緩衝機構(T L B)を、利用する。変換のた
めに新しい仮想アドレスがTLBに与えられる場合に、
ハードウェアを用いてTLBエントリを主記憶ページテ
ーブルから更新する。変換ハードウェアの簡単化きれた
データフローを第4図に示し、各TLBの形式を第5図
に示す。
The address translation system presented herein utilizes a translation lookaside buffer (TLB) that includes the translation of the last used virtual address (32 in this example). When a new virtual address is given to the TLB for translation,
TLB entries are updated from the main memory page table using hardware. FIG. 4 shows a simplified data flow of the conversion hardware, and FIG. 5 shows the format of each TLB.

システムは、ITLBあたり16個のエントリを備えた
2つのTLB (16個のコングルエンスフラスを備え
た2ウエイのセットアソシアティブ)を利用する。仮想
ページインデックスの下位4ビツトが同時に両方のTL
Bをアドレス指定するのに用いられる。各TLBのアド
レスタグエントリは、仮想ページインデックスの残りの
ビット(2にページの場合は25ビツト、4にページの
場合は24ビツト)に連結されたセグメント識別子と、
比較される。2つの比較のいずれかが等しくかつそのT
LBエントリが有効(有効ビットによって示される)な
らば、関連するTLBが所与の仮想アドレスのための変
換情報を含む。
The system utilizes two TLBs (2-way set-associative with 16 congruence frames) with 16 entries per ITLB. The lower 4 bits of the virtual page index are simultaneously used in both TLs.
Used to address B. The address tag entry in each TLB consists of a segment identifier concatenated with the remaining bits of the virtual page index (25 bits for page 2, 24 bits for page 4);
be compared. If either of the two comparisons are equal and that T
If an LB entry is valid (indicated by a valid bit), the associated TLB contains translation information for the given virtual address.

選択されたTLBエントリ内の実ページ番号フィールド
(RPN)は主記憶装置にある実ページの番号を含む。
The real page number field (RPN) in the selected TLB entry contains the number of the real page located in main memory.

実ページ番号は所与の仮想アドレスに写像される。これ
が特殊セグメントでない場合は、アクセスが許可される
前に、TLBエントリからのキービットとセグメントレ
ジスタからのキービットとを用いて、記憶装置保護違反
の有無を検査する。セグメントレジスタの特殊ビットで
示されるようにこれが特殊セグメントである場合は、ア
クセスが許可される前に、ロックビット処理が実行され
る。記憶装置保護機構は、特殊セグメント処理と同様、
後で説明する。アクセスが許可されれば、主記憶装置が
アクセスされて、そのページに関連する参照および変更
ビットが更新される。参照および変更ビットのセットも
後で説明する。
A real page number is mapped to a given virtual address. If this is not a special segment, the key bit from the TLB entry and the key bit from the segment register are used to check for a storage protection violation before access is allowed. If this is a special segment, as indicated by the special bits in the segment register, lock bit processing is performed before access is allowed. Storage device protection mechanisms, as well as special segment processing,
I'll explain later. If access is granted, main memory is accessed and the reference and modification bits associated with the page are updated. The reference and modification bit sets are also discussed below.

2つのTLBの比較から一致が得られない場合は、アド
レス変換論理は主記憶装置にあるページテーブルエント
リから不在TLBエントリの再ロードを試みる。主記憶
ページテーブルは実記憶に常駐し、論理的には2つの部
分すなわちハツシュアンカーテーブル(HAT)と逆ペ
ージテーブル(IPT)から成る。HATはハツシング
によって任意の仮想アドレスを任意の実ページに写像で
きる。
If the comparison of the two TLBs does not yield a match, the address translation logic attempts to reload the missing TLB entry from the page table entry in main memory. The main memory page table resides in real memory and logically consists of two parts: the hash anchor table (HAT) and the inverse page table (IPT). HAT can map any virtual address to any real page by hashing.

逆ページテーブル(I PT)は各々の実ページフレー
ムに関連する仮想アドレス(もしあれば)を指定する。
The inverse page table (IPT) specifies the virtual address (if any) associated with each real page frame.

IPTは実ページ番号によって指標きれるエントリのア
レイとして構成され、各エントリはそれに関連するセグ
メントIDおよび仮想ページ番号を含む。
The IPT is organized as an array of entries indexed by real page number, each entry containing its associated segment ID and virtual page number.

IPTは実ページ番号によって指標きれるので、所与の
実アドレスに対する仮想アドレスを決定するのは極めて
容易である。所与の仮想アドレスに対する実アドレスを
効率よく決定するためには、パッシングによって仮想ア
ドレスをアンカー点に写像すること、およびエントリを
連鎖してハツシュ衝突を解決すること、が必要である。
Since the IPT can be indexed by the real page number, it is very easy to determine the virtual address for a given real address. Efficiently determining the real address for a given virtual address requires mapping the virtual address to an anchor point by passing and chaining entries to resolve hash collisions.

これは当業者には容易に理解されるであろう。This will be readily understood by those skilled in the art.

ハツシュアンカーテーブル(HAT)は論理的にはIP
Tから分離されている(ハードウェアの効率化という理
由から物理的にはIPTに組み込まれているが)。第6
図に示すように、ハツシュ関数は仮想アドレスをHAT
内の1つのエントリのインデックスに変換し、そのエン
トリが同じHATインデックスを持ったIPTエントリ
(実ページ)の連鎖における最初のエントリを指定する
Hash Anchor Table (HAT) is logically IP
It is separated from T (although it is physically integrated into IPT for reasons of hardware efficiency). 6th
As shown in the figure, the hash function converts the virtual address to HAT
This entry specifies the first entry in a chain of IPT entries (real pages) with the same HAT index.

仮想アドレスの一致を求めてIPTエントリの連鎖を探
索した場合、所望の仮想アドレスに対するIPTインデ
ックス(従って実アドレス)が得られるか、又は、一致
が見出されることなく (ページが写像されていない)
探索が終了する。本実施例では実記憶の各ページに対し
て1つのHATおよびIPTエントリが存在する。
When searching a chain of IPT entries for a virtual address match, either one obtains an IPT index for the desired virtual address (and thus a real address), or no match is found (the page is not mapped).
The search ends. In this embodiment, there is one HAT and IPT entry for each page of real storage.

仮想アドレスから実アドレスへの変換は、初めに、有効
アドレスの選択された下位ビットとセグメント識別子か
らのビットとを排他的にオアすることによって、達成さ
れる。この“°ハツシュきれた゛アドレスはHATへの
指標付けに用いられる。
Conversion from a virtual address to a real address is accomplished by first exclusively ORing selected low order bits of the effective address with bits from the segment identifier. This "hashed" address is used for indexing to the HAT.

選択されたHATエントリは所与の仮想アドレスのため
の、探索されるべtIPTエントリのリストの開始点へ
のポインタである。探索されるべきIPTエントリのリ
スト内のエントリは、次の探索すべきIPTエントリを
指定する各エントリ内のポインタによってリンクされて
いる。rPTエントリ中のフラグビットを用いて探索連
鎖の終了点が示される。ハツシングは、一般に幾つかの
異なった有効アドレスに対して同じHATアドレスを生
成するので、探索されるべきIPT連鎖には仮想アドレ
スエントリが幾つか含まれていることに留意されたい。
The selected HAT entry is a pointer to the beginning of the list of IPT entries to be searched for a given virtual address. Entries in the list of IPT entries to be searched are linked by pointers within each entry that specify the next IPT entry to be searched. A flag bit in the rPT entry is used to indicate the end of the search chain. Note that since hashing typically generates the same HAT address for several different effective addresses, the IPT chain to be searched will contain several virtual address entries.

ハードウェアの効率化という理由から、HATおよびI
PTは、1つのインデクシング構造でアドレス指定でき
る1つの構造に組み合わされる。
For reasons of hardware efficiency, HAT and I
The PTs are combined into one structure that can be addressed with one indexing structure.

組み合わされたHATおよびIPTには、実記憶の各ペ
ージに対して1つのエントリが存在する。
There is one entry in the combined HAT and IPT for each page of real storage.

例えば、2にバイトのページで構成された1Mバイトの
実記憶は512のエントリを要し、4にバイトのページ
で構成された512にバイトの実記憶は128のエント
リを要する。組み合わきれたHATおよびrPTのエン
トリの形式は、第7図に示す。HAT/TPTは各エン
トリに対して16バイトを有し、テーブルサイズの倍数
のアドレス場所から始まる。
For example, 1 Mbyte of real storage made up of 2 byte pages requires 512 entries, and 512 byte real storage made up of 4 byte pages requires 128 entries. The format of the combined HAT and rPT entries is shown in FIG. The HAT/TPT has 16 bytes for each entry, starting at an address location that is a multiple of the table size.

各エントリの第1ワードはアドレスタグを含む。The first word of each entry contains an address tag.

アドレスタグはセグメント識別子と仮想ページインデッ
クスとを連結して作られる。2にページの場合は、アド
レスタグは29ビツト、4にページの場合は28ビツト
であることに留意されたい。
An address tag is created by concatenating a segment identifier and a virtual page index. Note that for pages 2, the address tag is 29 bits, and for pages 4, it is 28 bits.

4にページサイズが使用されたとすれば、28ビツトの
アドレスタグがビット3ないしビット30に記憶される
。ビット2は予約されている。第1ワードは、さらに、
2ビツトキーを含む。2ビツトキーは後に説明する記憶
装置保護のために使用される。
If page size 4 were used, a 28-bit address tag would be stored in bits 3 through 30. Bit 2 is reserved. The first word is also
Contains a 2-bit key. The 2-bit key is used for storage protection, which will be explained later.

第2ワードは、HATポインタ、IPTポインタ、およ
び各ポインタのための有効ビットを含む。
The second word contains a HAT pointer, an IPT pointer, and a valid bit for each pointer.

ポインタの使用については後で説明する。The use of pointers will be explained later.

第3ワードは、書込み保護、ロックビット、および特殊
セグメントのためのTIDを含む。これらのフィールド
の使用についても後で説明する。
The third word contains the write protection, lock bit, and TID for the special segment. The use of these fields will also be explained later.

第4ワードはTLBの再ロードには使用されず、将来の
使用に備えて予約きれている。
The fourth word is not used to reload the TLB and is reserved for future use.

HAT/IPTベースアドレスは変換制御レジスタ(後
で説明する)内の1つのフィールドであり、これを用い
て主記憶ページテーブルの開始アドレスを計算する。H
AT/rPTベースアドレスに含まれる値は、記憶装置
およびページのサイズに依存して表1に示す量で乗算き
れて、それによって、主記憶ページテーブルの開始アド
レスが得られる。表1は、さらに、記憶装置サイズおよ
びページサイズの各々に対するHAT/IPTのサイズ
も示す。
The HAT/IPT base address is a field in the translation control register (described later) and is used to calculate the starting address of the main memory page table. H
The value contained in the AT/rPT base address can be multiplied by the amount shown in Table 1, depending on the storage device and the size of the page, thereby obtaining the starting address of the main memory page table. Table 1 also shows the HAT/IPT size for each storage size and page size.

い4 HATアドレス生成 前述のように、HATインデックスは、セグメント識別
子から選択されたビットと有効アドレスからのビットと
を排他的オアして計算される。使用されるビット数は、
結果インデックスがHAT/IPTのn個のエントリの
うちの1つを選択するように選ぶ。このパッシング操作
を第6図に示す。HATインデックス生成に用いるビッ
トを表2に列挙する。選択されたHATエントリの記憶
アドレスは、 HAT/IPTベースアドレス+HATインデックス1
10100 として計算される。
4 HAT Address Generation As mentioned above, the HAT index is calculated by exclusive-ORing selected bits from the segment identifier and bits from the effective address. The number of bits used is
Choose one of the n entries with result index HAT/IPT. This passing operation is shown in FIG. Table 2 lists the bits used for HAT index generation. The storage address of the selected HAT entry is: HAT/IPT base address + HAT index 1
Calculated as 10100.

選択されたHATエントリがアクセスきれて、IPT探
索連鎖が空いているかどうかを判定するために空きビッ
トが検査きれる。もし空きビットが1ならば、所与の仮
想アドレスへ写像されるベージは存在せず、後で説明す
るように°°ベージ不在°。
The free bit is checked to determine if the selected HAT entry has been accessed and the IPT search chain is free. If the free bit is 1, there is no page mapped to the given virtual address, and as explained below, page not present.

が報告きれる。もし、空きビットがOならば、IPT探
索連鎖にエントリが存在してIPT内のエントリが探索
される。そのとき、選択されたHATエントリのHAT
ポインタフィールドが、IPT探索連鎖の開始点へのポ
インタとして使用される。
can be reported. If the free bit is O, an entry exists in the IPT search chain and the entry in the IPT is searched. At that time, the HAT of the selected HAT entry
A pointer field is used as a pointer to the start of the IPT search chain.

0 前にアクセスされたHATポインタは、IPTへの開始
インデックスとして使用きれる。最初のIPTエントリ
の記憶装置アドレスは、HAT/IPTベースアドレス
+HATポインタ+10000 として計算される。
0 A previously accessed HAT pointer can be used as a starting index into the IPT. The storage address of the first IPT entry is calculated as HAT/IPT base address + HAT pointer + 10000.

IPT内の最初のエントリに対してアドレスが行われ、
そのアドレスタグと所与の仮想アドレスとの比較が行わ
れる。両者が一致すれば、仮想アドレスに割り当てられ
た実ページが見つかったことになり、不在TLBエント
リを再ロードすることができる。TLBエントリの再ロ
ードは後で説明する。両者が一致しなければ、■PTポ
インタをアクセスしてIPT探索を続行する。IPTポ
インタは、 HAT/IPTベースアドレス+HATポインタ!10
100 として計算される。次にIPTポインタがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかど
うかを判定するために最終ビットが検査される。最終ビ
ットがOならば、付加的なエントリが存在し探索処理を
続行する。最終ビットが1ならば、探索されるべき付加
的なIPTエントリは存在せず、“ベージ不在゛が報告
される。
The first entry in the IPT is addressed,
A comparison is made between that address tag and a given virtual address. If the two match, it means that the real page assigned to the virtual address has been found, and the absent TLB entry can be reloaded. Reloading of TLB entries will be explained later. If the two do not match, ①Access the PT pointer and continue the IPT search. IPT pointer is HAT/IPT base address + HAT pointer! 10
Calculated as 100. The IPT pointer is then accessed and the final bit is checked to determine if there are additional entries in the IPT search chain. If the final bit is O, additional entries exist and the search process continues. If the final bit is 1, there are no additional IPT entries to be searched and a "page not present" is reported.

探索されるべき付加的なIPTエントリが存在すれば、
探索のための次のIPTエントリのアドレスは、 HAT/rPTベースアドレス+HATポインタ110
000 として計算される。このアドレスを用いてIPTの次の
エントリをアクセスし、選択されたエントリに含まれる
アドレスタグと所与の仮想アドレスとの比較を行う。両
者が一致すれば、仮想アドレスに割り当てられた実ペー
ジが見つかり、不在TLBエントリを再ロードすること
ができる。両者が一致しなければ、探索されるべき次の
エントリへのポインタをアクセスして探索処理を続行す
る。次のエントリへのポインタのアドレスは、HAT/
IPTベースアドレス+IPTポインタ+10100 として計算される。次に、このワードがアクセスされて
、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビットが検査きれる。最終ビッ
トが1ならば、探索されるべき付加的なIPTエントリ
は存在せず、°°べ一ジ不在°°が報告きれる。最終ビ
ットがOならば、付加的なエントリが存在し探索処理を
続行する。
If there are additional IPT entries to be searched,
The address of the next IPT entry for searching is: HAT/rPT base address + HAT pointer 110
Calculated as 000. This address is used to access the next entry in the IPT and a comparison is made between the address tag contained in the selected entry and the given virtual address. If they match, the real page assigned to the virtual address is found and the absent TLB entry can be reloaded. If they do not match, the pointer to the next entry to be searched is accessed and the search process continues. The address of the pointer to the next entry is HAT/
Calculated as IPT base address + IPT pointer + 10100. This word is then accessed and the final bit is checked to determine if there are additional entries in the IPT search chain. If the final bit is 1, there are no additional IPT entries to be searched and a ``Bage Missing'' can be reported. If the final bit is O, additional entries exist and the search process continues.

IPTエントリのアドレスタグが所与の仮想アドレスと
一致するか、または、一致が見出されずかつ最終ビット
が探索連鎖内でそれ以上のエントリの存在はないという
ことを示すまでは、現IPTポインタを用いて前述の処
理によって後続のエントリのアクセスが行われる。
The current IPT pointer is used until the address tag of the IPT entry matches the given virtual address or no match is found and the final bit indicates that there are no more entries in the search chain. Then, subsequent entries are accessed through the above-described processing.

以下の記載は、仮想アドレスからIPTエントリのイン
デックス(従って対応する実アドレス)への変換に要す
るステップを要約したものである。
The following description summarizes the steps required to convert a virtual address to an index of an IPT entry (and thus a corresponding real address).

(1)仮想ページ番号の下位13ビツトを選択する。(1) Select the lower 13 bits of the virtual page number.

これは、4にバイトのページが使用されていれば有効ア
ドレスのビットマないし19であり、2にバイトのペー
ジが使用されていればビット8ないし20である。
This is bits 1-19 of the effective address if a 4-byte page is used, and bits 8-20 if a 2-byte page is used.

(2)有効アドレスのビットOないし3で指定きれるセ
グメントレジスタの12ビツトの内容を選択する。左端
に゛°0°゛ビットを連結して13ビツトのフィールド
を形成する。
(2) Select the 12-bit contents of the segment register that can be specified by bits 0 to 3 of the effective address. A 13-bit field is formed by concatenating the ゛°0°゛ bit to the left end.

(3)ステップ(1)および(2)からの2つの13ビ
ツトフイールドを排他的オアして13ビツトのハツシュ
アンカーテーブルエントリ番号を形成する。
(3) Exclusive-OR the two 13-bit fields from steps (1) and (2) to form a 13-bit hash anchor table entry number.

(4)ステップ(3)の値を左方に4ビツトだけシフト
する。これは物理的に所望のHATエントリを含むIP
Tエントリの開始点のバイトオフセットを形成する。
(4) Shift the value in step (3) to the left by 4 bits. This is the IP that physically contains the desired HAT entry.
Forms the byte offset of the start of the T entry.

(5)HAT/IPTエントリのアドレスを計算する。(5) Calculate the address of the HAT/IPT entry.

これは、ステップ(4)の結果とIPTの開始アドレス
とを加算することによってなされる。工PTが、2のべ
き乗バイトの境界の所から始まるように制約されていれ
ば、この°°加算°゛はORまたは連結で置き換えても
よい。
This is done by adding the result of step (4) and the starting address of the IPT. This addition may be replaced by an OR or concatenation if the PT is constrained to start at a power-of-two byte boundary.

(6)空きIPT連鎖を検査する。HAT/IPTエン
トリの°’E”(”空き゛)ビットを検査する。
(6) Check free IPT chains. Check the 'E'("Empty") bit of the HAT/IPT entry.

E=1ならば、IPT連鎖は空いている(HATポイン
タは無効):探索が不成功に終る;仮想ページは写像さ
れていない。
If E=1, the IPT chain is empty (HAT pointer is invalid): the search is unsuccessful; the virtual page is not mapped.

(7)IPT連鎮が空いていなければ、アドレス指定さ
れたHAT/IPTエントリからHATポインタを選択
する。この13ビツトの値は、同じハツシュ結果[ステ
ップ(3)]を有するエントリの連鎖内の最初のIPT
エントリのインデックスである。
(7) If the IPT chain is not free, select a HAT pointer from the addressed HAT/IPT entry. This 13-bit value is the first IPT in the chain of entries with the same hash result [step (3)].
is the index of the entry.

(8)IPTインデックスの値を左方に4ビツトだけシ
フトする。これは、仮想アドレスの一致を検査すべtI
PTエントリの開始点のバイトオフセットを形成する。
(8) Shift the IPT index value to the left by 4 bits. This should check virtual address matching.
Forms the byte offset of the start of the PT entry.

(9)IPTエントリのアドレスを計算する。これは、
ステップ(8)の結果とIPTの開始アドレスとを加算
することによってなされる。IPTが、2のべき乗バイ
トの境界の所から始まるように制約されていれば、この
°゛加算°°はORまたは連結で置き換えてもよい。
(9) Calculate the address of the IPT entry. this is,
This is done by adding the result of step (8) and the start address of the IPT. This addition may be replaced by an OR or concatenation if the IPT is constrained to start at a power-of-two byte boundary.

(10)仮想アドレスの比較。セグメントIDをIPT
エントリからの仮想ページ番号(28ビツトまたは29
ビツト)に連結したものと、有効アドレスで指定された
セグメントレジスタの内容[ステップ(2)]を有効ア
ドレスの仮想ページ番号に連結したものと、を比較する
(10) Comparison of virtual addresses. IPT segment ID
Virtual page number from entry (28 bit or 29
The contents of the segment register specified by the effective address [step (2)] are compared with the virtual page number of the effective address.

(11)一致すれば、探索は成功裏に終る。このエント
リは所望の仮想アトドレスに対応するものである。その
インデックス番号は要求された実ページ番号に等しい。
(11) If there is a match, the search ends successfully. This entry corresponds to the desired virtual address. Its index number is equal to the requested real page number.

(12)一致しなければ、連鎖の終りを検査する。IP
Tエントリの°l L II (IT最終″)ビットを
検査する。L=1ならば、そこがこの連鎖における最終
のIPTエントリである。探索は不成功に終り、仮想ペ
ージは写像されていない。
(12) If there is no match, check the end of the chain. IP
Check the L II (IT Last'') bit of the T entry. If L=1, it is the last IPT entry in this chain. The search was unsuccessful and the virtual page is not mapped.

(13)連鎖の終りでなければ、IPTエントリからI
PTポインタフィールドを選択する。この13ビツトの
値は、検査されるべき、次のIPTエントリのインデッ
クスである。
(13) If it is not the end of the chain, I
Select the PT pointer field. This 13-bit value is the index of the next IPT entry to be examined.

(14)ステップ(8)へ進む。(14) Proceed to step (8).

TLB再ロード 所与の仮想アドレスに一致するアドレスタグフィールド
を持ったIPTエントリが見つかると、不在TLBエン
トリが再ロードされる。再ロードは、不在仮想アドレス
のコングルエンスフラスに対して最も長い間使用されな
かったTLBエントリを選択することならびに選択され
たエントリに所与の仮想アドレスタグフィールド、対応
する実ページ番号およびキービットをロードすること、
から成る。もしこれが、セグメントレジスタ内の特殊ビ
ットによって指示されるような特殊セグメントであるな
らば、書込みビット、TIDlおよびロックビットも再
ロードされる。
TLB Reload Absent TLB entries are reloaded when an IPT entry with an address tag field matching a given virtual address is found. Reloading involves selecting the least recently used TLB entry for the congruence frame of absent virtual addresses and assigning the selected entry a given virtual address tag field, corresponding real page number and key bits. to load,
Consists of. If this is a special segment as indicated by the special bit in the segment register, the write bit, TIDl and lock bit are also reloaded.

各コングルエンスフラスで最も長い間使用されなかった
TLBエントリを決定するのにハードウェアが使用され
る。仮想アドレスの下位ビットはコングルエンスフラス
を確定するので、あとは、どのTLBが選択きれたエン
トリを置換すべきであったのかを決定するだけでよい。
Hardware is used to determine the least recently used TLB entry in each confluence frame. Since the lower bits of the virtual address determine the congruence, all that remains is to determine which TLB should have replaced the selected entry.

そうして、どのTLBが、所与のコングルエンスフラス
において最も長い間参照されなかったエントリを有して
いたかという事に基づいて、2つのTLBのうちの一方
が選択される。
One of the two TLBs is then selected based on which TLB had the longest unreferenced entry in a given congruence flask.

所与のコングルエンスフラスに対して最も長い間使用さ
れなかったTLBエントリがひとたび決定されれば、選
択されたTLBエントリを再ロードすることができる。
Once the least recently used TLB entry for a given confluence frame is determined, the selected TLB entry can be reloaded.

アドレスタグフィールドおよびキーピットは、主記憶装
置に含まれるIPTエントリから再ロードされる。この
エントリのアドレスはIPT探索プロセスにおいて事前
に計算されている。探索プロセス中に計算されたIPT
インデックスは実ページ番号に等しいので、この値を用
いてTLBの実ページ番号フィールドを再ロードする。
Address tag fields and key pits are reloaded from IPT entries contained in main memory. The address of this entry has been pre-calculated in the IPT search process. IPT calculated during the search process
Since the index is equal to the real page number, this value is used to reload the TLB's real page number field.

セグメントレジスタ内の特殊ビットによって示されるよ
うに、これが特殊セグメントである場合は、TIDおよ
びロックビットも再ロードされる。TIDおよびロック
ビットは、選択されたIPTエントリの第3ワードをア
クセスすることによって再ロードされる。
If this is a special segment, as indicated by the special bit in the segment register, the TID and lock bits are also reloaded. The TID and lock bits are reloaded by accessing the third word of the selected IPT entry.

記憶装置アクセス制御 本アドレス変換機構は2つのアクセス制御機構を提供す
る。第1の機構は非特殊セグメント用で、実記憶の各ペ
ージに対する読取り/書込み保護を与える。第2の機構
は特殊セグメント専用で、持続データタイプを支援する
のに用いられる。これらのアクセス制御機構は変換きれ
たアクセスにだけ適用する。もしいずれかの機構によっ
て違反が検知きれれば、記憶装置アクセスは終了して、
後で説明するように例外が報告される。
Storage Access Control The present address translation mechanism provides two access control mechanisms. The first mechanism is for non-special segments and provides read/write protection for each page of real storage. The second mechanism is dedicated to special segments and is used to support persistent data types. These access control mechanisms apply only to converted accesses. If the violation is detected by either mechanism, the storage access is terminated and
Exceptions are reported as described below.

記憶装置保護処理 記憶装置保護処理は非特殊セグメントだけに適用する。Storage device protection processing Storage device protection processing applies only to non-special segments.

TLBによってひとたび仮想アドレスと実アドレスとの
対応がとられると、適正なアクセス権限を保証するため
、要求されたアクセスが検証きれる。この機能によって
各ページはアクセスなし、読取り専用、または読取り/
書込みとしてマークきれる。
Once a virtual address is associated with a real address by the TLB, the requested access can be verified to ensure proper access privileges. This feature allows each page to be marked as No Access, Read Only, or Read/
Can be marked as written.

アクセス制御は、選択きれたセグメントレジスタ内の1
ビツトの保護キー、TLBエントリ内の2ビツトキー、
およびアクセスがロードオペレーションであるのか記憶
オペレーションであるのか、ということに関係している
。アクセスは表3に示すようにして制御すれる。
Access control is for 1 in the selected segment register.
bit protection key, 2-bit key in TLB entry,
and whether the access is a load or store operation. Access is controlled as shown in Table 3.

TLB内のキー 00 1 0 1 セグメントレジスタ 内の保護キー 表3 保護キー処理 アクセス ロード 許可 禁止 許可 許可 許可 許可 許可 許可 記憶 許可 禁止 許可 禁止 許可 許可 禁止 禁止 もしアクセスが許可されなければ、変換は終了して保護
例外がCPUに報告される。
Key in TLB 00 1 0 1 Protection key in segment register Table 3 Protection key processing Access Load permission prohibition permission permission permission permission permission permission storage permission prohibition permission prohibition permission permission prohibition prohibition If access is not allowed, the conversion is terminated. A protection exception is reported to the CPU.

ロックビット処理 ロックビット処理は、選択されたセグメントレジスタ内
の特殊ビットによって示される特殊セグメントだけに適
用される。特殊セグメントは持続データを支援するのに
用いられる。ロックビット処理によって、オペレーティ
ングシステムは持続変数の変更を自動的に監視すること
、変更をジャーナルに記録すること、陰のページを生成
すること、および、データベースの一貫性確保のための
他の処理を実行すること、が可能である。ロックビット
は、また保護の単位を記憶装置保護機能によるページサ
イズ(2にバイトまたは4にバイト)から、128バイ
トまたは256バイトのラインまで、細かくする。2に
ページの場合は128バイトの保護単位が実現され、4
にページの場合は256バイトの保護単位が実現きれる
。2にページの場合は有効アドレスのビット[21:2
4]によって個々のラインのロックピットが選択され、
4にページの場合は有効アドレスのビット[20:23
]によって個々のラインのロックピットが選択される。
Lock Bit Processing Lock bit processing applies only to special segments indicated by special bits in the selected segment register. Special segments are used to support persistent data. Lockbit processing allows the operating system to automatically monitor changes to persistent variables, record changes in a journal, generate shadow pages, and perform other tasks to ensure database consistency. It is possible to execute. The lock bit also refines the unit of protection from the page size (2 bytes or 4 bytes) to 128 byte or 256 byte lines by storage device protection function. In the case of 2 pages, a protection unit of 128 bytes is realized, and 4
In the case of a page, a protection unit of 256 bytes can be realized. If the page is 2, bits [21:2 of the effective address]
4] selects the lock pit of each line,
If page 4, bits [20:23 of the effective address
] selects individual line lock pits.

アクセス制御は、選択されたTLBエントリ内の1ビツ
トの書込みキー、選択されたラインのロックビット値、
TrD比較、およびそのアクセスがロードオペレーショ
ンであるのか記憶オペレーションであるのか、というこ
とに関係している。
Access control consists of a 1-bit write key in the selected TLB entry, a lock bit value for the selected line,
It is concerned with TrD comparison and whether the access is a load or store operation.

アクセスは表4に示すようにして制御される。Access is controlled as shown in Table 4.

爾 目 鍔 旨 巽 七 円 出 シ 蜆 へ ロックビット違反の報告にはデータ記憶例外が使用され
る。この違反は必ずしもエラーを表わすものではなく、
単に、新たに変更きれたラインがオペレーティングシス
テムによって処理されるべきである、という事を表わす
ものでよい。
Data storage exceptions are used to report lock bit violations. This violation does not necessarily represent an error;
It may simply indicate that the newly modified line should be processed by the operating system.

参照および変更ビットは実記憶の各ページごとに備えら
れる。これらのビットは本アドレス変換機構の外部のア
レイの中にあって、記憶装置アクセスの度に要求に応じ
て更新される。参照ビットは、読取りまたは書込みのた
めに対応する実ページがアクセスされると、1にセット
される。変更ビットば、対応するペー ジが書き込まれ
ると、セットされる。
Reference and modification bits are provided for each page of real storage. These bits reside in an array external to the present address translation mechanism and are updated on demand for each storage access. A reference bit is set to 1 when the corresponding real page is accessed for reading or writing. A modified bit is set when the corresponding page is written.

関連するCPUからのI10読取り命令(10R)およ
びI10書込み命令(IOW)によって、参照および変
更ビットをアクセスすることができる。実記憶の各ペー
ジのための参照および変更ビットは、I10ベースアド
レスレジスタにX’1000”を加えたものによって指
定されるI10アドレスの所から始まる。所与のページ
のための参照および変更ビットのI10アドレスは次式
ニよって与えられる。
Reference and modification bits can be accessed by I10 read instructions (10R) and I10 write instructions (IOW) from the associated CPU. The reference and modification bits for each page of real storage begin at the I10 address specified by the I10 base address register plus X'1000''. The I10 address is given by the following equation (d).

I10アドレス=工10ベースアドレスレジスタによっ
て指定されたアドレ ス +X”  1001  ’ 十ページ番号 各I10アドレスは実記憶の1ページに対する参照ビッ
トおよび変更ビットを含む。参照ビットおよび変更ビッ
トの形式を第8図に示す。
I10 address = address specified by the base address register + show.

参照ビットおよび変更ビットへのアクセスによって転送
きれるデータ′は以下のように定義される。
Data' that can be transferred by accessing the reference bit and change bit is defined as follows.

ビットO:29 ゼロ。Bit O: 29 zero.

ビット30 参照ビット。対応する実ページが読 取りまたは書込みのためにアクセス されると、1にセットされる。bit 30 Reference bit. The corresponding real page is access to read or write It is set to 1 when

ビット31 変更ビット。対応する実ページが書 込みのためにアクセスされると、l にセットされる。bit 31 change bit. The corresponding real page is When accessed for logging, l is set to

参照ビットおよび変更ビットはハードウェアによって初
期設定されることはない。それらはシステムソフトウェ
アのIOW命令によって初期設定およびクリアが行われ
る。参照ビットおよび変更ビットは、それらをセットま
たはクリアするプログラムを実行することによってセッ
トすることができるので、参照ビットおよび変更ビット
をクリアまたはセットする書込みの後に読取りが続いて
も、必ずしも書き込まれたのと同じデータを読み取る必
要はない。
Reference bits and modified bits are not initialized by hardware. They are initialized and cleared by system software IOW instructions. Referenced and modified bits can be set by running a program that sets or clears them, so a read followed by a write that clears or sets the referenced and modified bits does not necessarily mean that it is written. There is no need to read the same data.

制御レジスタ 記憶装置の構成、ページテーブルアドレス、およびI1
0ベースアドレスを定めるために用いる制御レジスタが
幾つかある。これらのレジスタはCPUからのI10読
取り(IOR)命令およびI10書込み(IOW)命令
によって初期設定(ロード)される。それらの構成およ
び形式を第9図ないし第18図に示す。これらのレジス
タは監視プログラム状態になって初めてアクセス可能と
なる。
Control register storage configuration, page table addresses, and I1
There are several control registers used to define the 0-base address. These registers are initialized (loaded) by I10 read (IOR) and I10 write (IOW) instructions from the CPU. Their configuration and format are shown in FIGS. 9 to 18. These registers can only be accessed in supervisory program state.

I10ベースアドレスレジスタは、I10アドレスのど
の64にブロックが変換システムに割り当てられている
のかを指定する。I10ベースアドレスは、I10ベー
スアドレスレジスタに含まれる値に65536 (X’
 10000°)を乗じたものに等しい。I10ベース
アドレスレジスタの形式を第9図に示す。
The I10 base address register specifies which 64 of I10 addresses the block is assigned to the translation system. The I10 base address is 65536 (X'
10000°). The format of the I10 base address register is shown in FIG.

I10ベースアドレスレジスタは以下のように定義され
る。
The I10 base address register is defined as follows.

ビットO:23 予約されている。Bit O: 23 Reserved.

ビット24:31 110ベースアドレス。この8ピツ トの値は、I10アドレスのどの6 4にバイトのブロックが変換システ ムに割り当てられているかを定義す る。すなわち、これら8ビツトは変 換システムによって認識された■/ 0アドレスの最上位の8ビツトであ る。Bit 24:31 110 base address. This 8 pits The value of 4 blocks of bytes are converted by the system is assigned to the system. Ru. In other words, these 8 bits are changed. ■/ recognized by the conversion system The most significant 8 bits of the 0 address Ru.

”RAM指定レジしタ゛°は、RAMサイズと、RAM
開始アドレスと、リフレッシュレートと、パリティチエ
ツクまたはエラー訂正符号(FCC)が使用されている
か否かとを規定する。FCCおよびパリティチエツク手
法は本発明の一部を形成せず、またその内容も周知であ
るから、これ以上説明しない。RAM指定レジスタの形
式は第10図に示す。
”The RAM specification register indicates the RAM size and
It specifies the starting address, refresh rate, and whether parity checking or error correction codes (FCC) are used. FCC and parity checking techniques do not form part of the present invention and are well known and will not be further described. The format of the RAM designation register is shown in FIG.

RAM指定レジスタは以下のように定義される。The RAM specification register is defined as follows.

ビット0:10 予約されている。Bit 0:10 Reserved.

ビット10:18 リフレッシュレート。この9ビツトの 数量がリフレッシュサイクルレートを 決定する。リフレッシュサイクルレー トはビット[10:18]に含まれる 値にCPUクロックの周波数を乗じた ものに等しい。ゼロのリフレッシュレートット20 :
 27 RAM開始アドレス。この8ビツトフ イールドが変換および非変換アクセス のためのRAMの開始アドレスを規定 する。変換されたアクセスの場合は、 変換されたアドレスがRAM開始アド レスおよびRAMサイズで指定される 範囲内に入っていればRAMが選択さ れる。変換されないアクセスの場合は、RAMサイズと
共にRAM開始アドレ スを用いて、アドレスがこの記憶制御 装置のために指定されたアドレス範囲 内に入っているかどうか判定する。R AMの開始アドレスはRAMサイズの 2進倍数として定義され、表5に示す ビットとRAMサイズで指定される値 とを乗じることによって計算される。
Bits 10:18 Refresh rate. This 9-bit quantity determines the refresh cycle rate. The refresh cycle rate is equal to the value contained in bits [10:18] multiplied by the frequency of the CPU clock. Zero refresh rate 20:
27 RAM start address. This 8-bit field defines the starting address of RAM for translation and non-translation accesses. For translated accesses, RAM is selected if the translated address falls within the range specified by RAM start address and RAM size. For untranslated accesses, the RAM starting address is used along with the RAM size to determine whether the address falls within the address range specified for this storage controller. The RAM starting address is defined as a binary multiple of the RAM size and is calculated by multiplying the bits shown in Table 5 by the value specified by the RAM size.

トはリフレッシュを減勢する。リフレ ッシュレートの値は、所望のメモリリ フレッシュレートをCPUクロックの 周波数で除すことによって計算するこ とができる。例えば、2ミリ秒ごとに 128行のリフレッシュを要するダイ ナミックメモリを備えたシステムでは、行あたりのリフ
レッシュ間隔は128 72ミリ秒すなわち15.6マイクロ 秒である。CPUクロックが200ナ ノ秒の場合は、所望のリフレッシュレート値は15.6
マイクロ秒/200ナ ノ秒、スナワチ、78(X’04E’)である。これは
X ” 04E ’をリフレッシュレートにロードする
ことを要求 する。
de-energizes refresh. The refresh rate value can be calculated by dividing the desired memory refresh rate by the frequency of the CPU clock. For example, in a system with dynamic memory that requires 128 rows to be refreshed every 2 milliseconds, the refresh interval per row is 12872 milliseconds or 15.6 microseconds. If the CPU clock is 200 nanoseconds, the desired refresh rate value is 15.6
Microsecond/200 nanosecond, Sunawachi, 78 (X'04E'). This requires loading X"04E' into the refresh rate.

リフレッシュレートはFORシーケ ンスの一部としてX’01A”に初期 設定きれる。Refresh rate is FOR sequence initialized to X’01A” as part of the You can set it.

−二 杓 Jノ 区 例えば、256にの記憶装置サイズが指定されれば、6
4個の256にバイト境界の1つがビット[20: 2
5]によりRAM開始アドレスとして指定される。もし
ビット[20: 25]が011101ならば、RAM
開始アドレスハX ’ o。
- For example, if a storage device size of 256 is specified, 6
One of the four 256 byte boundaries is bit[20:2
5] as the RAM start address. If bits[20:25] are 011101, the RAM
Starting address x'o.

740000 ”である。1MバイトのRAMサイズが
指定されれば、16個の1Mバイト境界の1つがビット
[20: 23]によりRAM!始アドレアドレス指定
される。もしビット[20: 23]が1001ならば
、RAM開始アドレスはx’。
740000''. If a RAM size of 1 Mbyte is specified, then one of the 16 1 Mbyte boundaries is addressed by bits [20:23] of the RAM! start address. If bits [20:23] Then, the RAM start address is x'.

0900000’である。0900000'.

ビット28:31 RAMサイズ。この4ビツトフイール ドは本変換システムに接続されたRA Mのサイズを規定する。RAMサイズ は以下の表6に示すように64にバイ トから16Mバイトまでの間で選択で きる。Bit 28:31 RAM size. This 4-bit file The RA connected to this conversion system Define the size of M. RAM size is 64 bytes as shown in Table 6 below. You can choose between Wear.

ROS指定レジスタ ROS指定レジスタは、RO3開始アドレス、ROSサ
イズ、およびROSによってパリティが与えられている
かどうか、ということを規定する。
ROS Specification Register The ROS specification register defines the RO3 starting address, ROS size, and whether parity is provided by the ROS.

ROSは変換モードおよび非変換モードのいずれにおい
てもアクセス可能である。ROS指定レジスタの形式を
第11図に示す。
ROS is accessible in both translation and non-translation modes. The format of the ROS designation register is shown in FIG.

RO3指定レジスタは以下のように定義される。The RO3 designation register is defined as follows.

ビットO:19 予約されている。Bit O: 19 Reserved.

ビット20 : 27 ROS開始アドレス。この8ビツトフ イールドは、変換されたアクセス及び 変換されないアクセスの両方の場合に おけるROSの開始アドレスを規定す る。変換されたアクセスの場合は、変 換されたアドレスがRO5開始アドレ スおよびROSサイズで指定される範 囲内に入っていればROSが選択され る。変換きれないアクセスの場合は、 表 ビット28=31 RAMサイズ ooo。Bit 20: 27 ROS start address. This 8bitsoff The yield is based on the converted access and In both cases of untranslated access Specifies the starting address of ROS in Ru. For converted access, the The exchanged address is the RO5 start address. range specified by space and ROS size. If it is within the range, ROS is selected. Ru. In case of access that cannot be converted, table bit 28=31 RAM size ooooo.

RAMなし 001 ないし O111 64に 000 001 010 011 100 101 110 1111 128に 256に 12K M M M M 6M ROSサイズと共にRO3開始アドレ スを用いて、アドレスがこの記憶制御 装置の為に指定されたアドレス範囲内 に入っているかどうかを判定する。R OSの開始アドレスはROSサイズの 2進倍数として定義され、表7に示す ビットとROSサイズで指定きれる値 とを乗じる事によって計算される。No RAM 001 Not O111 at 64 000 001 010 011 100 101 110 1111 to 128 to 256 12K M M M M 6M RO3 start address along with ROS size address is used to control this storage. Within the address range specified for the device Determine whether it is included. R The start address of the OS is the ROS size. Defined as a binary multiple and shown in Table 7 Values that can be specified using bits and ROS size It is calculated by multiplying by

杓 杓 u!J! 例えば、64にのROSサイズが指定されれば、256
個の64にバイト境界の1つがビット[20: 27]
によりRO3開始アドレスとして指定される。もしビッ
ト[20: 27]が110010ならば、ROS開始
アドレスLtX’0OC80000°である。
Ladle ladle u! J! For example, if a ROS size of 64 is specified, then 256
One of the 64 byte boundaries is bit[20:27]
is specified as the RO3 start address. If bits [20:27] are 110010, the ROS start address LtX'0OC80000°.

ビット28:31 ROSサイズ。この4ビツトフイール ドは変換システムに接続きれたRO3 のサイズを規定する。ROSサイズは 以下の表8に示すように64にバイト から64Mバイトまでの間で選択でき る。RO3が使用されない場合は、ビ ット[28:31]はゼロにセットさ れる。Bit 28:31 ROS size. This 4-bit file RO3 is connected to the conversion system. Specify the size of The ROS size is 64 bytes as shown in Table 8 below You can select from up to 64MB. Ru. If RO3 is not used, Set [28:31] to zero. It will be done.

区 区 表 ビット28:31 ooo。Ward Ward table Bit 28:31 ooooo.

001 ないし 111 000 001 010 011 100 101 110 1111 ROSサイズ RO8なし 64に 128に 256に 12K M M M M 6M 変換制御レジスタ 変換Ig卿レジスタ(TCR)は、ハードウェアによる
TLBの再ロードが成功した時に割込みが発生されるか
どうか、参照および変更アレイにパリティが使用されて
いるかどうか、各ページのサイズ(2にバイトまたは4
にバイト)、および主記憶ページテーブル(HATとI
PTを組み合せたもの)の開始アドレス、を指定する。
001 to 111 000 001 010 011 100 101 110 1111 ROS Size RO8 None 64 to 128 to 256 to 12K M M M M M 6M Translation Control Register The Translation Ig Register (TCR) is set when the TLB is successfully reloaded by the hardware. whether interrupts are generated, whether parity is used for referenced and modified arrays, and the size of each page (2 bytes or 4 bytes).
bytes), and main memory page tables (HAT and I
(a combination of PTs).

変換制御レジスタの形式を第12図に示す。The format of the conversion control register is shown in FIG.

変換制御レジスタは以下のように定義きれる。The conversion control register can be defined as follows.

ビットO:20 予約きれている。Bit O: 20 It's fully booked.

ビット21 TLB再ロード成功時の割込み許可。Bit 21 Enable interrupt when TLB reload is successful.

このビットを用いてハードウェアによ るTLBの再ロードが成功したという ことが報告きれる。1にセットされて いれば、ハードウェアによるTLBの 再ロードが成功したことによって、例 外回答が生成きれSERのTLB再ロードピット (ビ
ット22)が1にセットされる。このビットがゼロにセ
ットさ れていれば、ハードウェアによるTL Bエントリの再ロードの成功は報告さ れない。ソフトウェアによるTLBの 性能評価にこの機能を用いることかで ざる。
This bit can be used to report that the TLB was successfully reloaded by the hardware. If set to 1, the TLB reload pit (bit 22) of the SER is set to 1 when an exception reply is generated due to successful reloading of the TLB by the hardware. If this bit is set to zero, successful reloading of TLB entries by hardware is not reported. This function can be used to evaluate TLB performance using software.

ビット22 参照および変更アレイのパリティ。こ のビットを用いて、外部の参照および 変更アレイにパリティが使用されるか どうかを示す。このビットが1にセッ トされれば、参照および変更アレイに パリティを使用する。もしこのビット がゼロにセットされれば、参照および 変更アレイにはパリティを使用しない。Bit 22 Parity for reference and change arrays. child external references and Is parity used for changing arrays? Indicate whether or not. This bit is set to 1. referenced and modified array. Use parity. If this bit is set to zero, the reference and Do not use parity for changing arrays.

ビット23 ページサイズ。2にバイトページには 値Oを用い、4にバイトページには値 1を用いる。Bit 23 Page size. 2 to the byte page Use the value O, and the value 4 for the byte page. 1 is used.

ビット24:31 HAT/IPTベースアドレス。この 8ビツトフイールドを用いて、主記憶 装置にあるHAT/I PTエントリの開始アドレスを
指定する。実記憶のサ イズおよびページサイズで決まる定数 を、このフィールドに含まれる値に乗 じることにより、HAT/IPTエン トリの開始アドレスが決定きれる。2 にバイトのページサイズの場合は、ビ ット[24:31]によってベースア ドレスが指定きれ、4にバイトのペー ジサイズの場合は、ビット[25:3 1]によってベースアドレスが指定さ れる。記憶装置サイズおよびページサ イズの各々に対する定数は表1に列受 されている。
Bits 24:31 HAT/IPT base address. This 8-bit field is used to specify the starting address of the HAT/IPT entry in main memory. By multiplying the value contained in this field by a constant determined by the real storage size and page size, the starting address of the HAT/IPT entry can be determined. If the page size is 2 bytes, the base address can be specified by bits [24:31], and if the page size is 4 bytes, the base address can be specified by bits [25:31]. Constants for each storage size and page size are listed in Table 1.

記憶装置例外レジスタ(S E R)は、記憶装置アク
セスで生じた変換プロセスにおけるエラーおよびシステ
ムエラーを報告するのに用いられる。
The storage exception register (SER) is used to report errors in the conversion process and system errors that occur in storage accesses.

変換システムによって検知される各々のエラー状態ごと
に別のビットが割り当てられる。エラーが複数生じた場
合は、適切なビットをセットすることによって各々のエ
ラーが報告きれる。前のエラーによってセットされたビ
ットは後続のエラーによってはリセットされない。
A separate bit is assigned for each error condition detected by the conversion system. If multiple errors occur, each error can be reported by setting the appropriate bit. Bits set by previous errors are not reset by subsequent errors.

SERはFORシーケンスによってゼロに初期設定され
る。ひとたび例外が報告されれば、例外が処理きれた後
でシステムソフトウェアがSERをクリアする。記憶装
置例外レジスタの形式は第13図に示す。
SER is initialized to zero by the FOR sequence. Once an exception is reported, system software clears the SER after the exception has been handled. The format of the storage exception register is shown in FIG.

記憶装置例外レジスダは以下のように定義される。The storage exception register is defined as follows.

ビットO:21 予約されている。Bit O: 21 Reserved.

ビット22 TLB再ロード成功。このビットは、 TLB再ロード成功による割込みが許 可されているときに再ロードが成功す ると、lにセットきれる。Bit 22 TLB reload successful. This bit is Interrupts due to TLB reload success are allowed. If the reload is successful when Then, it can be set to l.

ビット23 参照および変更アレイのパリティエ ラー。参照および変更アレイでパリテ ィエラーが検知された場合にこのビッ トは1にセットされる。Bit 23 Reference and Modify Array Parity Ra. Parity on reference and change arrays This bit is set when an error is detected. bit is set to 1.

ビット24 RO3書込み試行。ROSアドレス空 間に含まれるアドレスへの書込みが試 行された場合にこのビットは1にセッ トきれる。bit 24 Attempt to write to RO3. ROS address empty An attempt is made to write to an address included between This bit is set to 1 if I can finish it.

ビット25 IPT指定エラー。IPT探索連鎖で 無限ループが検知された場合にこのビ ットは1にセットきれる。無限ループ は例えば、システムソフトウェアのエ ラーのためにIPTポインタの値が誤 って指定され、その結果IPTポイン タが現IPT探索連鎖における前のエ ントリを指示したような場合に生じる。bit 25 IPT specification error. In IPT search chain This bit is displayed when an infinite loop is detected. The cut can be set to 1. infinite loop For example, the system software The value of the IPT pointer is incorrect due to an error. is specified, and as a result, the IPT point is the previous element in the current IPT search chain. This occurs when an entry is specified.

ビット26 外部装置例外。ROMP以外のR3C 上の装置によって例外が生じた場合に このビットは1にセットされる。bit 26 External device exception. R3C other than ROMP If the above device causes an exception This bit is set to 1.

ビット27 多重例外。記憶装置例外レジスタ内で 例外標識がクリアされる前に2以上の 例外(IPT指定エラー、ページ不 在、指定、保護、またはデータ)が発 生した場合にこのビットは1にセット きれる。bit 27 Multiple exceptions. in the storage exception register 2 or more before the exception indicator is cleared Exception (IPT specification error, page failure) location, designation, protection, or data) This bit is set to 1 if the I can do it.

このビットは、通常、システムソフ トウェアが例外を処理できなかったこ とを示す。しかしながら、多重ロード (LM)命令または多重記憶(STM)命令によって例
外が生じた場合でもこ のビットをセットできる。ということ はLM命令または37M命令は、例外 によってその命令が中止されるよりも 前に、七の命令によって指定きれる全 てのレジスタの記憶またはロードを試 行するからである。
This bit typically indicates that the system software was unable to handle the exception. However, this bit can also be set if an exception is caused by a load multiple (LM) or store multiple (STM) instruction. This is because the LM or 37M instruction attempts to store or load all registers that can be specified by the 7 instructions before the instruction is aborted by an exception.

ビット28 ページ不在。どのTLBエントリおよ び主記憶ページテーブルエントリも仮 想アドレスに対する変換を含んでいな いために変換が終了した場合に、この ビットは1にセットされる。bit 28 Page not available. Which TLB entry and and main memory page table entries are also temporarily does not include translations for virtual addresses. If the conversion is terminated due to The bit is set to 1.

ビット29 指定。同じ仮想アドレスに対して2つ のTLBエントリが見つかったという 理由で変換−が終了した場合に、このビットは1にセッ
トきれる。
Bit 29 specified. This bit can be set to 1 if the translation is completed because two TLB entries were found for the same virtual address.

ビット30 保護。非特殊セグメントのための記憶 装置保護処理で記憶装置アクセスが禁 止されていることがわかったために変 換が終了した場合に、このビットは1 にセットされる。bit 30 protection. Storage for non-special segments Storage device access is prohibited during device protection processing. I changed my mind because I found out that it was stopped. This bit is set to 1 when the conversion is completed. is set to

ビット31 データ。特殊セグメントのためのトラ ンザクションID/ロックビット処理 で、記憶装置アクセスが禁止されてい ることがわかったために変換が終了し た場合に、このビットは1にセットさ れる。bit 31 data. Tiger for special segment Transaction ID/lock bit processing , storage access is prohibited. The conversion ended because it was found that This bit is set to 1 if It will be done.

記憶装置例外アドレスレジスタ(SEAR)は、CPU
からのデータロードおよび記憶要求に対して、記憶装置
例外レジスタ(SER)により報告された例外を起こし
た有効記憶装置アドレスを含む。例外がROMP命令取
出しまたは外部装置によって生じた場合は、5EARは
ロードされない。
The storage exception address register (SEAR)
Contains the valid storage address that caused the exception reported by the storage exception register (SER) for data loads and store requests from . If the exception is caused by a ROMP instruction fetch or an external device, 5EAR is not loaded.

記憶装置例外アドレスレジスタの形式は第14図に示す
The format of the storage device exception address register is shown in FIG.

記憶装置例外アドレスレジスタは以下のように定義され
る。
The storage exception address register is defined as follows.

ビットO:31 記憶装置例外アドレス。SERによっ て報告された例外を生じた32ビツト の有効記憶装置アドレス。多重エラー の場合(SERのビット27が1にセ ットされる) 、5EARに含まれるアドレスは、最も
古い例外のアドレスで ある。
Bit O:31 Storage Exception Address. The 32-bit valid storage address that caused the exception reported by SER. In case of multiple errors (bit 27 of SER is set to 1), the address contained in 5EAR is the address of the oldest exception.

被変換実アドレスレジスタ(TRAR)は実アドレス計
算オペレーションによって決定された実記憶アドレスを
含む。実アドレス計算機能は、仮想アドレスが現時点で
実記憶に写像きれているかどうかを判定して仮想アドレ
スが写像されている場合には対応する実アドレスを決定
する。実アドレス計算機能は後で説明する。被変換実ア
ドレスレジスタの形式を第15図に示す。
The translated real address register (TRAR) contains the real storage address determined by the real address calculation operation. The real address calculation function determines whether the virtual address has been mapped to the real memory at the present time, and if the virtual address has been mapped, determines the corresponding real address. The real address calculation function will be explained later. The format of the real address register to be converted is shown in FIG.

実アドレス変換レジスタは以下のように定義される。The real address translation register is defined as follows.

ビットO 無効ビット。このビットは変換に失敗 した場合は1にセットきれ、変換に成 功した場合は0にセットきれる。Bit O Invalid bit. This bit failed to convert If so, it can be set to 1 and the conversion is successful. If successful, it can be set to 0.

ビット1ニア ゼロ。この7ビツトフイールドは常に ゼロである。bit 1 near zero. This 7-bit field is always It is zero.

ビット8:31 実記憶アドレス。この24ビツトフイールドは実記憶ア
ドレスを含む。この実 記憶アドレスは変換が成功した場合に 所与の仮想アドレスへ写像されたもの である。変換に失敗した場合はこのフ ィールドはゼロにセットされる。
Bits 8:31 Real memory address. This 24-bit field contains the real storage address. This real storage address is mapped to a given virtual address if the translation is successful. This field is set to zero if the conversion fails.

トランザクション識別レジスタ(TID)は現時点で特
殊セグメントの゛°所有者°°として定義きれているタ
スクの8ビツトの識別子を含む。選択されたセグメント
レジスタ内の特殊ビットによって成るセグメントが特殊
セグメントとして定義されると、6.2節に示すような
ロックビット処理を記憶装置アクセスに適用する。ロッ
クビット処理はTIDに含まれる値を用い、それとTL
B内のTIDエントリとを比較して、記憶装置アクセス
が許されるかどうかを判定する。トランザクション識別
レジスタの形式を第16rgJに示す。
The transaction identification register (TID) contains an 8-bit identifier of the task that is currently defined as the ``owner'' of the special segment. Once the segment defined by the special bit in the selected segment register is defined as a special segment, lock bit processing as described in Section 6.2 is applied to storage accesses. Lock bit processing uses the value contained in the TID and the TL
The TID entry in B is compared to determine whether storage access is allowed. The format of the transaction identification register is shown in 16th rgJ.

トランザクション識別レジスタは以下のように定義され
る。
The transaction identification register is defined as follows.

ビットO:23 予約されている。Bit O: 23 Reserved.

ビット24:31 トランザクション識別子。この8ビツ トの値は特殊セグメントの所有者を指 定する。Bit 24:31 Transaction identifier. This 8 bits value specifies the owner of the special segment. Set.

16個のセグメントレジスタは、セグメント識別子、特
殊ビット、およびキービットを含む。12ビツトのセグ
メント識別子は4096個の256Mバイト仮想記憶セ
グメントのうちの1つを指定する。特殊ビットは、それ
が特殊セグメントであってロックビット処理が適用され
るということを示す。キーピットは、所与のセグメント
内の記憶装置アクセスに関して現在実行中のタスクに関
連するアクセス権限のレベルを示す。各セグメントレジ
スタの形式を第17図に示す。
The 16 segment registers contain segment identifiers, special bits, and key bits. A 12-bit segment identifier specifies one of 4096 256 Mbyte virtual storage segments. The special bit indicates that it is a special segment and lock bit processing is applied. The keypit indicates the level of access authority associated with the currently executing task regarding storage access within a given segment. The format of each segment register is shown in FIG.

各セグメントレジスタの内容は以下のように定義される
The contents of each segment register are defined as follows.

ビット0:17 予約きれている。Bit 0:17 It's fully booked.

ビット18:29 セグメント識別子。この12ビツトの 値は、4096個の256Mバイト仮 想記憶セグメントのうちの1つを指定 する。Bit 18:29 Segment identifier. This 12 bit The value is 4096 256MB temporary Specify one of the memory segments do.

ビット30 特殊ビット。特殊セグメントの場合、 このビットは1にセットきれ、非特殊 セグメント′の場合、このビットはゼロにセットされる
Bit 30 Special bit. For special segments, this bit can be set to 1; for non-special segments, this bit is set to zero.

ビット31 キーピット。このビットは、所与のセ グメント内でのアクセスについて現在 実行中のタスクのアクセス権限のレベ ルを決定する。記憶装置アクセス制御 のためにこのビットを使用することは 6.2節に示す。bit 31 Keepit. This bit Regarding access within the Permission level for the task being executed Determine the Storage device access control Using this bit for It is shown in Section 6.2.

開示された実施例においては、2つのTLBの各々が1
6個のエントリを有する。これらのエントリは仮想アド
レスから実アドレスへの変換に必要な変換情報や制御情
報を提供する。さらに、各TLBエントリは記憶装置ア
クセス制御に使用される付加的な情報も含む。TLBの
内容はハードウェアによって主記憶ページテーブルから
自動的の更新きれるので、TLBエントリ書込みの後に
読取りが続く場合、必ずしも書き込まれたのと同じデー
タを読み取る必要はない。さらに、TLBエントリの変
更によって実アドレスと仮想アドレスとの対応がなくな
るであろうから、TLBエントリの変更は予測不能な結
果を引き起こす場合もある。TLBの内容のアクセスは
、診断の目的にだけ行われ、非変換モードにおいてのみ
なされるべきである。他の全ての変換アクセスを禁止し
て非変換モードでTLBエントリへ書き込むと、その後
に読取りが続き、書き込まれたのと同じデータを読み取
ることになるであろう。
In the disclosed embodiment, each of the two TLBs is one
It has 6 entries. These entries provide the translation and control information needed to translate virtual addresses to real addresses. Additionally, each TLB entry also contains additional information used for storage access control. Since the contents of the TLB can be automatically updated from the main memory page table by hardware, when a read follows a TLB entry write, it is not necessarily necessary to read the same data that was written. Furthermore, changing the TLB entry may cause unpredictable results, since changing the TLB entry will break the correspondence between real and virtual addresses. Accessing the contents of the TLB is for diagnostic purposes only and should only be done in non-translation mode. Writing to a TLB entry in non-translation mode, with all other translation accesses prohibited, will be followed by a read and will read the same data that was written.

各TLBエントリは、論理的には66ビット(予約ビッ
トを除く)の変数であって、25ビツトのアドレスタグ
、13ビツトの実ページ番号、有効ビット、2ビツトキ
ー、書込みビット、8ビツトのトランザクションID、
および16個のロックビットから成っている。各TLB
エントリは個々にアドレス指定できる3つのフィールド
に分けられる。TLBフィールドの各々の形式を以下に
説明する。
Each TLB entry is logically a 66-bit variable (excluding reserved bits) that includes a 25-bit address tag, a 13-bit real page number, a valid bit, a 2-bit key, a write bit, and an 8-bit transaction ID. ,
and 16 lock bits. Each TLB
Entries are divided into three individually addressable fields. The format of each TLB field is described below.

” T L Bアドレスタグ°゛フィールドは、2にペ
ージの場合、セグメント識別子11ページインデツクス
の上位25ビツトを含み、4にページの場合、その上位
24ビツトを含む。各TLBエントリのアドレスタグフ
ィールドの形式を第18.1図に示す。
” The TLB address tag field contains the upper 25 bits of the segment identifier 11 page index if page 2 is present, and the upper 24 bits of the segment identifier 11 page index if page 4 is the address tag field of each TLB entry. The format is shown in Figure 18.1.

各TLBアドレスタグフィールドの内容は以下のように
定義される。
The contents of each TLB address tag field are defined as follows.

ビットo:2 予約されている。Bit o: 2 Reserved.

ビット3:27 アドレスタグ。このフィールドは、2 にページの場合、セグメント識別子1 1仮想ページインデツクスの上位25 ビツトを含み、4にページの場合、そ の上位24ビツトを含む。4にページ の場合、アドレスタグはビット[3: 26]に含まれる。Bit 3:27 address tag. This field is 2 If the page is segment identifier 1 1Top 25 virtual page indexes If the page contains bits and there are 4 pages, then Contains the upper 24 bits of . page 4 , the address tag is bit [3: 26].

ビット28:31 予約されている。Bit 28:31 Reserved.

”’TLB実ページ番号、有効ビット(V)、およびキ
ービット(キー)”°フィールドは、TLBエントリの
アドレスタグフィールドに含まれる仮想アドレスに割り
当てられている実ページ番号を含む。このフィールドは
、さらに、所与のTLBエントリが有効情報を含むこと
を示す有効ビット、および所与のページに必要なアクセ
ス権限のためのキーピットを含む。各TLBエントリの
ためのこのフィールドの形式を第18.2図に示す。
The ``'TLB Real Page Number, Valid Bit (V), and Key Bit (Key)'' field contains the real page number assigned to the virtual address contained in the address tag field of the TLB entry. This field further includes a valid bit indicating that the given TLB entry contains valid information, and a keypit for the required access privileges for the given page. The format of this field for each TLB entry is shown in Figure 18.2.

実ページ番号、有効、およびキービットフィールドの内
容は以下のように定義きれる。
The contents of the real page number, valid, and key bit fields can be defined as follows.

ビットO:15 予約されている。Bit O: 15 Reserved.

ビット16:28 実ページ番号。この13ビツトフイー ルドは8192個の実ページのうちの 1つを指定する。8192個よりも少 ないページを使用する場合は、それら のページをアドレス指定するのに必要 な下位ビットだけが使用きれる。Bit 16:28 Actual page number. This 13 bit fee out of 8192 real pages. Specify one. Less than 8192 If you use pages that don't have them, Required to address the page in Only the lowest bits can be used.

ビット29 有効ビット。選択されたTLBエント リが有効情報を含む場合はこのビット は1である。TLBエントリが無効情 報を含む場合はこのビットは0である。bit 29 Valid bit. selected TLB entry This bit if the file contains valid information. is 1. TLB entry is invalid This bit is 0 if information is included.

ビット30:31 キーピット。この2ビツトフイールド は各ページに対するアクセス権限を定 義する。キーピットの使用に関しては 6.1節に示す。Bit 30:31 Keepit. This 2-bit field defines access privileges for each page. to justify Regarding the use of the key pit It is shown in Section 6.1.

” T L B書込みビット、トランザクションID。” TL B write bit, transaction ID.

およびロックピッド°フィールドは、当該TLBエント
リが特殊セグメントに対するものである場合に、書込み
ビット、トランザクションID、およびTLBエントリ
のアドレスタグフィールドに含まれている仮想アドレス
に割当てられたロックビットを含む。各TLBエントリ
のためのこのフィールドの形式を第18.3図に示す。
and the lockpid field contains the write bit, transaction ID, and lock bit assigned to the virtual address contained in the address tag field of the TLB entry if the TLB entry is for a special segment. The format of this field for each TLB entry is shown in Figure 18.3.

TLB書込みビット、トランザクションID。TLB write bit, transaction ID.

およびロックビットフィールドの各々の内容は以下のよ
うに定義される。
The contents of each of the and lock bit fields are defined as follows.

ビットo:6 予約きれている。Bit o: 6 It's fully booked.

ビット7 書込みビット。このビットは、特殊セ グメントの場合に各ページに関連する アクセス権限を定義する。ロックビッ ト処理におけるこのビットの使用につ いては6.2節に示す。bit 7 Write bit. This bit is set to related to each page in case of Define access privileges. rock bit The use of this bit in The details are shown in Section 6.2.

ビット8:14 トランザクション識別子。この8ビツ トフィールドは特殊セグメント内にあ る選択されたページを現に所有するタ スクを定義する。ロックビット処理に おけるこれらのビットの使用について は前に説明した。Bit 8:14 Transaction identifier. This 8 bits field is in a special segment. The tag that currently owns the selected page Define the screen. For lock bit processing About the use of these bits in was explained earlier.

ビット15:31 0ツクビツト。この16ビツトフイー ルドは、特殊セグメントの場合に2K または4にのページ内の各゛ライン゛ に対するアクセス権限を定義する。1 ラインは2にページの場合は128バ イト、4にページの場合は256バイ トである。ロックビット処理における これらのビットの使用については6゜ 2節で説明する。bit 15:31 0 tsukbitsuto. This 16 bit fee 2K for special segments. or each "line" in the page in 4. Define access privileges for 1 If the line is 2 and the page is 128 bars 256 bytes for 4 pages It is. in lock bit processing 6° for the use of these bits This will be explained in Section 2.

本変換機構は、頻繁に要求される変換機能をハードウェ
アで支援する。このハードウェアにより、TLBエント
リを選択的に無効化すること、および、IBMシステム
/370ファミリのコンピュータにおけるものと同様な
”°実アドレスロード“機能を遂行することができる。
The conversion mechanism provides hardware support for frequently requested conversion functions. This hardware allows selective invalidation of TLB entries and performs a "real address load" function similar to that in the IBM System/370 family of computers.

仮想−実アドレス写像を変更する場合は、システムソフ
トウェアによって、TLBの内容と主記憶装置にあるペ
ージテーブルの内容と、を同期化することが必要である
。TLBおよびページフレームテーブルのエントリを両
方とも除去(無効化)して、用済の写像情報が後続の変
換で使用されないようにしなければならない。
When changing the virtual-to-real address mapping, it is necessary for the system software to synchronize the contents of the TLB with the contents of the page table in main memory. Both TLB and page frame table entries must be removed (invalidated) to prevent obsolete mapping information from being used in subsequent transformations.

本システムは主記憶装置にあるページテーブルの内容と
TLBエントリとの同期化を支援する機能を3つ提供す
る。TLBの全内容、または選択されたTLBエントリ
のみを無効化するのにこれらの機能を使用することがで
きる。システムによって認識されるI10アドレスの6
4にバイトブロック内の特定I10アドレスへのI10
書込み命令(IOW)によって、これらの機能が呼び出
される。これらの機能の各々に対するアドレス割当ては
、必要に応じてシステムに与えられる。
This system provides three functions to support synchronization of the contents of page tables in main memory and TLB entries. These functions can be used to invalidate the entire contents of the TLB or only selected TLB entries. 6 of the I10 addresses recognized by the system
4 to a specific I10 address within the byte block
These functions are called by a write instruction (IOW). Address assignments for each of these functions are provided to the system as needed.

パ全TLB無効化°°機能によってTLBエントリが全
て無効化される。この機能は、後続の変換に備えて、主
記憶装置にあるページテーブルでTLBの内容を強制的
に更新する。
The entire TLB invalidation function invalidates all TLB entries. This function forces the contents of the TLB to be updated in the page table in main memory in preparation for subsequent conversions.

この機能に関連するアドレスへのI10書込みが、TL
Bエントリを全て無効化する。I10書込み命令で転送
されるデータは使用されない。
An I10 write to an address related to this function is
Invalidate all B entries. Data transferred with the I10 write command is not used.

°゛指定セグメント内のTLBエントリ無効無効化機能
によって、指定セグメント識別子を持ったTLBエント
リが全て無効化される。このセグメント識別子を用いる
後続の変換でTLBの内容が主記憶装置にあるページテ
ーブルから更新される。
° The TLB entry invalidation function in the specified segment invalidates all TLB entries having the specified segment identifier. Subsequent translations using this segment identifier update the contents of the TLB from the page table in main memory.

この機能に関連するアドレスへのI10書込みが、指定
セグメント識別子を持ったTLBエントリを無効化する
。I10書込み命令で転送されるデータのビット[0:
 3]がセグメント識別子を選択するのに用いられる。
An I10 write to the address associated with this function invalidates the TLB entry with the specified segment identifier. Bit [0: of data transferred by I10 write command]
3] is used to select the segment identifier.

このセグメント識別子を含むTLBエントリは全て無効
化される。無効化されたセグメント内の有効アドレスを
伴う後続の変換によって、TLBの内容は主記憶装置に
あるページテーブルから更新きれる。
All TLB entries containing this segment identifier are invalidated. Subsequent translations with valid addresses in the invalidated segment cause the contents of the TLB to be updated from the page table in main memory.

°°指定有効アドレスに対するTLBエントリの無効化
°°種機能よって、指定有効アドレスを備えたTLBエ
ントリが無効化される。
Invalidating a TLB Entry for a Specified Effective Address The seed function invalidates a TLB entry with a specified valid address.

指定有効アドレスを含むページ内の有効アドレスを伴う
後続の変換によって、TLBの内容は主記憶装置にある
ページテーブルから更新される。
Subsequent translations with effective addresses within the page containing the specified effective address update the contents of the TLB from the page table in main memory.

この機能に関連するアドレスへのI10!込みが、指定
有効アドレスを備えたTLBエントリを無効化する。I
10書込み命令で転送されるデータのビット[0:31
]が有効アドレスとして使用される。本アドレス変換機
構に含まれるセグメントレジスタの内容を用いて通常の
変換プロセスが適用される。
I10! to the address related to this feature! The entry invalidates the TLB entry with the specified valid address. I
10 Bits of data transferred by write command [0:31
] is used as a valid address. A normal translation process is applied using the contents of the segment registers included in the present address translation mechanism.

゛°実アドレス計算°′機能はシステムソフトウェアに
よって使用され、所与の仮想アドレスが現時点で実記憶
に写像されているかどうか、および、もし写像されてい
ればどの実アドレスがその仮想アドレスに割り当てられ
ているのかを決定する。
The ``Real Address Computation'' function is used by system software to determine whether a given virtual address is currently mapped to real memory and, if so, which real address is assigned to that virtual address. determine whether

仮想アドレスが写像されない場合に、それを使用すれば
ページ不在を生じる;この情報は、割込みを禁止した状
態で走行するシステムのルーチンには、重要である。I
10オペレーションのほとんどが実アドレスを使用して
遂行されるので、仮想アドレスから実アドレスへの変換
結果はシステムI10ルーチンによって要求される。
If a virtual address is not mapped, its use will result in a page fault; this information is important for system routines that run with interrupts disabled. I
Since most of the I10 operations are performed using real addresses, the results of the virtual to real address translation are required by the System I10 routines.

実アドレス計算機能は、これに関連するアドレスへのI
 10il込みによって呼び出される◇I10書込み命
令で転送されるデータのビット[O:31]が有効アド
レスとして使用される。この有効アドレスは、通常の変
換プロセスのために使用されるが、変換結果は、被変換
アドレスレジスタ(第15図)(TRAR)にロードさ
れ、記憶装置のアクセスには使用されない。TRARは
変換が成功したかどうかを示すビットを含み、変換に成
功していれば対応する実記憶アドレスも含む。
The real address calculation function calculates the I
Bit [O:31] of the data transferred by the ◇I10 write command called by the 10il write is used as the effective address. This effective address is used for the normal translation process, but the translation result is loaded into the translated address register (FIG. 15) (TRAR) and is not used for storage accesses. TRAR contains a bit indicating whether the translation was successful, and if the translation was successful, it also contains the corresponding real storage address.

通常の記憶装置保護処理およびロックビット処理は変換
成功により遂行される。実アドレス計算機能の結果はT
RARのI10読取りによって獲得きれる。
Normal storage protection processing and lock bit processing is accomplished upon successful conversion. The result of the real address calculation function is T
It can be obtained by reading I10 of RAR.

I10アドレスの64にバイトブロックが変換システム
に割り当てられている。64にバイトのブロックはI1
0ベースアドレスレジスタで指定されるI10アドレス
の所から始まる。I10ベースアドレスは、64に境界
上にあるように定義される。表9に列挙するI10アド
レスの割当ては指定された64にバイトブロック内の変
位である。
A byte block at I10 address 64 is assigned to the translation system. A block of 64 bytes is I1
It begins at the I10 address specified by the 0 base address register. The I10 base address is defined to be on the 64 boundary. The I10 address assignments listed in Table 9 are displacements within a specified 64 byte block.

絶対I10アドレスはI10ベースアドレスとこの変位
とを加えたものに等しい。
The absolute I10 address is equal to the I10 base address plus this displacement.

変位 ooo。displacement ooooo.

ないし 00F 010 011 012 013 014 015 016 表   9 割当て セグメントレジスタOないし15 I10ベースアドレスレジスタ 記憶装置例外レジスタ 記憶装置例外アドレスレジスタ 被変換実アドレスレジスタ トランザクションIDレジスタ トランザクション制御レジスタ RAM指定レジスタ 017 018 019 ないし 01F 020 ないし 02F RO3指定レジスタ RASモード診断レジスタ 予約 TLBOのエントリ0ないし15 のためのTLBOアドレスタグフ イールド 030 ないし 03F TLBOのエントリOないし15 のためのTLBIアドレスタグフ イールド 040 ないし 04F TLBOのエントリ0ないし15 のためのTLBO実ページ番号、 有効ビット、およびキービット 050 ないし 05F 060 ないし 06F 070 ないし 07F 080 081 TLBOのエントリOないし15 のためのTLBI実ページ番号、 有効ビット、およびキーピット TLBOのエントリ0ないし15 のためのTLBO書込みビット、 トランザクションID、およびロ ツクビット TLBOのエントリ0ないし15 のためのTLBI書込みビット、 トランザクションID、およびロ ツクビット 全TLB無効化 指定セグメント内のTLBエント リ無効化 0082 0083 084 ないし FFF  000 ないし FFF 000 ないし 指定有効アドレスに対するTLB エントリ無効化 実アドレスロード 予約 ベージOないし8191のための 参照および変更ビット FFFF    予約 むすび 発明の好ましい実施例に関する以上の説明から、両方の
TLBとページフレームテーブルとにロックビットを用
意しかつ通常のセグメント化方式を利用する本発明の意
図および範囲から逸脱することなく、システムのハード
ウェアおよびソフトウェアの形式および詳細において様
々な変更が容易にできることは当業者には明白であろう
。明らかに、こうした変更は、記憶装置サイズ、レジス
タのサイズおよび制御フィールドの定義、アドレスサイ
ズ、ページフレームテーブルのアクセス方法および構成
、ならびにハツシュアドレス方法における変更を含むが
、それらに限定されるものではない。
to 00F 010 011 012 013 014 015 016 Table 9 Allocation segment register O to 15 I10 Base address register Storage device exception register Storage device exception address register Translated real address register Transaction ID register Transaction control register RAM specification register 017 018 019 to 01F 020 -02F RO3 designation register RAS mode diagnostic register reserved TLBO address tag field for TLBO entries 0 - 15 030 - 03F TLBI address tag field for TLBO entries 0 - 15 040 - 04F for TLBO entries 0 - 15 TLBO real page number, valid bit, and key bits 050 to 05F 060 to 06F 070 to 07F 080 081 for TLBO entries O to 15 TLBI real page number, valid bit, and key bits for TLBO entries 0 to 15 TLBO write bits, transaction ID, and lock bits TLBI write bits, transaction ID, and lock bits for TLBO entries 0 to 15 Invalidate TLB entries in all TLB invalidation specification segments 0082 0083 084 or FFF 000 or FFF 000 or TLB Entries for Specified Effective Addresses Invalidate Real Address Reference and Change Bits for Load Reservation Pages O through 8191 FFFF Reservation Conclusion From the above description of the preferred embodiment of the invention, lock bits are provided in both the TLB and the page frame table. It will be apparent to those skilled in the art, however, that various changes may be readily made in the form and details of the system hardware and software without departing from the spirit and scope of the invention utilizing conventional segmentation schemes. Obviously, such changes include, but are not limited to, changes in storage sizes, register sizes and control field definitions, address sizes, page frame table access methods and organization, and hash addressing methods. do not have.

E1発明の詳細 な説明したように、本発明によれば、各セグメントレジ
スタに設けられた特殊ビットと変換索引緩衝機構及びペ
ージフレームテーブルに設けられた各ラインについての
ロックビットとの協働的作用によってよりきめ細かな記
憶保護が可能となる。これは、特に、システム内のジャ
ーナリング制御に有用である。
E1 DETAILED DESCRIPTION OF THE INVENTION In accordance with the present invention, the special bits provided in each segment register cooperate with lock bits provided for each line in the translation index buffer and page frame table. This allows for more fine-grained memory protection. This is particularly useful for journaling control within the system.

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

第1図は本発明のアドレス変換およびアクセス′M御シ
ステムの主要部の機能ブロック図である。 第2図は本アドレス変換機構において使用されるセグメ
ントレジスタの形式を表わす図である。 第3図は有効アドレスから仮想アドレスへの変換を示す
機能ブロック図とデータ流れ図の組合せである。 第4図は有効アドレスから実アドレスへのアドレス変換
機構の全体を示すブロック図とデータ流れ図との組合せ
である。 第5図は本発明のアドレス変換機構全体で使用される変
換索引緩衝機構の構成とその内容を示す図である。 第6図は組合されたハツシュアンカーテーブル/逆ペー
ジテーブルを概念的に示す図と、所与の仮想アドレスに
対してTLBエントリが見い出だされない場合のこうし
たテーブルの動作を示すデータ流れ図である。 第7図は記憶装置内に記憶された実際のハツシュアンカ
ーテーブル/逆ページテーブルの構成および内容を図式
的に示す図である。 第8図は各I10アドレスと共に利用される参照および
変更ビットの形式を示す。 第9図はI10ベースアドレスレジスタの構成を示す図
である。 第10図はRAM指定レジスタの形式を示す図である。 第11図はRO3指定レジスタの形式を示す図である。 第12図は変換制御レジスタの形式を示す図である。 第13図は記憶例外レジスタの形式を示す図である。 第14図は記憶例外アドレスレジスタの形式を示す図で
ある。 第15図は被変換実アドレスレジスタの形式を示す図で
ある。 第16図はトランザクション識別レジスタの形式を示す
図である。 第17図は16個のセグメントレジスタのうちの1つの
内容を示す図である。 第18.1図、第18.2図、および第18゜3図は変
換索引緩衝機構の各々において各ページ参照のために利
用される3つのフィールドの形式を図式的に示す。ここ
に開示する実施例においては2つの独立した変換索引緩
衝機構か存在すること、該緩衝機構の各々において一時
に記憶きれる実ページ参照が16個存在すること、に留
意されたい。
FIG. 1 is a functional block diagram of the main parts of the address translation and access control system of the present invention. FIG. 2 is a diagram showing the format of the segment register used in this address translation mechanism. FIG. 3 is a combination of a functional block diagram and a data flow diagram illustrating the conversion of effective addresses to virtual addresses. FIG. 4 is a combination of a block diagram and a data flow diagram showing the entire address translation mechanism from effective addresses to real addresses. FIG. 5 is a diagram showing the structure and contents of a translation index buffer mechanism used in the entire address translation mechanism of the present invention. FIG. 6 is a conceptual diagram of a combined hash anchor table/reverse page table and a data flow diagram illustrating the operation of such a table when no TLB entry is found for a given virtual address. be. FIG. 7 is a diagram schematically showing the structure and contents of an actual hash anchor table/reverse page table stored in the storage device. FIG. 8 shows the format of the reference and change bits used with each I10 address. FIG. 9 is a diagram showing the configuration 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 RO3 designation register. FIG. 12 is a diagram showing the format of the conversion control register. FIG. 13 is a diagram showing the format of the storage exception register. FIG. 14 is a diagram showing the format of the storage exception address register. FIG. 15 is a diagram showing the format of the real address register to be converted. FIG. 16 is a diagram showing the format of the transaction identification register. FIG. 17 is a diagram showing the contents of one of the 16 segment registers. Figures 18.1, 18.2 and 18.3 schematically illustrate the format of the three fields utilized for each page reference in each of the translation index buffers. Note that in the embodiment disclosed herein, there are two independent translation index buffers, each of which can store 16 real page references at a time.

Claims (1)

【特許請求の範囲】 中央処理装置によつて供給された仮想アドレスを変換索
引緩衝機構及びページフレームテーブルを用いて実アド
レスに変換するような階層記憶システムにおいて、 上記仮想アドレスのうちのセグメント識別フィールドよ
りもビット数の多いセグメント識別子及び該セグメント
識別子に関連する特殊ビットを記憶するセグメントレジ
スタを複数個設け、さらに上記変換索引緩衝機構及び上
記ページフレームテーブルの双方にページを構成する各
ラインについてロックビットを設け、上記中央処理装置
によつて供給された仮想アドレスのうちのセグメント識
別フィールドによつて上記複数個のセグメント・レジス
タをアクセスし、アドレス指定されたセグメントレジス
タに記憶されているセグメント識別子と上記仮想アドレ
スのページオフセットフィールド及びバイトオフセット
フィールドとを連結して上記仮想アドレスよりもビット
数の多い第2の仮想アドレスを生成し、該第2の仮想ア
ドレスを実アドレスに変換すると共に上記特殊ビットが
所定の値に設定されている場合には上記ロックビットに
応じてラインごとのロックを行うようにしたことを特徴
とするアドレス変換方法。
[Scope of Claim] In a hierarchical storage system in which a virtual address supplied by a central processing unit is translated into a real address using a translation lookaside buffer and a page frame table, a segment identification field of the virtual address; A plurality of segment registers are provided for storing a segment identifier having a larger number of bits than the segment identifier and special bits related to the segment identifier, and a lock bit is provided for each line constituting a page in both the conversion index buffer mechanism and the page frame table. accessing the plurality of segment registers by means of the segment identification field of the virtual address provided by the central processing unit, and accessing the segment identifier stored in the addressed segment register and the The page offset field and the byte offset field of the virtual address are concatenated to generate a second virtual address having more bits than the virtual address, and the second virtual address is converted to a real address, and the special bits are An address conversion method characterized in that, if the lock bit is set to a predetermined value, locking is performed for each line according to the lock bit.
JP2277954A 1990-10-18 1990-10-18 Address conversion method Expired - Lifetime JPH0679294B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2277954A JPH0679294B2 (en) 1990-10-18 1990-10-18 Address conversion method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2277954A JPH0679294B2 (en) 1990-10-18 1990-10-18 Address conversion method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP58500670A Division JPH0658646B2 (en) 1982-12-30 1982-12-30 Virtual memory address translation mechanism with controlled data persistence

Publications (2)

Publication Number Publication Date
JPH03265049A true JPH03265049A (en) 1991-11-26
JPH0679294B2 JPH0679294B2 (en) 1994-10-05

Family

ID=17590590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2277954A Expired - Lifetime JPH0679294B2 (en) 1990-10-18 1990-10-18 Address conversion method

Country Status (1)

Country Link
JP (1) JPH0679294B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5334429A (en) * 1976-09-10 1978-03-31 Toshiba Corp Memory control system
JPS54105930A (en) * 1978-02-07 1979-08-20 Nec Corp Main memory control unit
JPS56153576A (en) * 1980-04-02 1981-11-27 Control Data Corp Memory address unit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5334429A (en) * 1976-09-10 1978-03-31 Toshiba Corp Memory control system
JPS54105930A (en) * 1978-02-07 1979-08-20 Nec Corp Main memory control unit
JPS56153576A (en) * 1980-04-02 1981-11-27 Control Data Corp Memory address unit

Also Published As

Publication number Publication date
JPH0679294B2 (en) 1994-10-05

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
US6145064A (en) Method of efficiently updating hashed page tables
US5787494A (en) Software assisted hardware TLB miss handler
EP0650124B1 (en) Virtual memory computer system address translation mechanism that supports multiple page sizes
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5668968A (en) Two-level virtual/real set associative cache system and method with improved synonym detection
Houdek et al. IBM System/38 support for capability-based addressing
US7809921B2 (en) Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
KR100297454B1 (en) Computer
JP2618175B2 (en) History table of virtual address translation prediction for cache access
CA1228674A (en) Redundant page identification for a catalogued memory
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US5241638A (en) Dual cache memory
JPH11203199A (en) Cache memory
US7493464B2 (en) Sparse matrix
JPH04320553A (en) Address converting mechanism
JPH08212136A (en) Method and apparatus for efficient sharing of virtual memoryconversion processing
US5319761A (en) Directory look-aside table for a virtual storage system including means for minimizing synonym entries
JP3210637B2 (en) Method and system for accessing a cache memory in a data processing system
JPS623357A (en) Tlb control system
JPH03265049A (en) Address conversion method
CA1220286A (en) Virtual memory address translation mechanism with combined hash address table and inverted page table
JPH035851A (en) Buffer storage device