Nothing Special   »   [go: up one dir, main page]

JPH0679294B2 - Address conversion method - Google Patents

Address conversion method

Info

Publication number
JPH0679294B2
JPH0679294B2 JP2277954A JP27795490A JPH0679294B2 JP H0679294 B2 JPH0679294 B2 JP H0679294B2 JP 2277954 A JP2277954 A JP 2277954A JP 27795490 A JP27795490 A JP 27795490A JP H0679294 B2 JPH0679294 B2 JP H0679294B2
Authority
JP
Japan
Prior art keywords
address
bit
page
storage
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2277954A
Other languages
Japanese (ja)
Other versions
JPH03265049A (en
Inventor
チヤング・アルバート
コーク、ジヨン
マージン、マーク・エフ
ラデイン、ジヨージ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
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)

Description

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

B.従来の技術及びその課題 最新のコンピユータシステムにおいては、プログラムは
実行に際して、システム内のどこかすなわち、キヤツシ
ユ/主記憶装置/直接アクセス記憶装置(DASD)の記憶
階層のあるレベルあるいは分散システムネツトワークの
別のノードに存在するデータまたはコードのアクセスを
頻繁に試みる。最も基本的なシステムにとつて、このア
クセスを行うためにはプログラムが何を理解しなければ
ならないかを、考えてみよう。
B. Conventional technology and its problems In the latest computer systems, a program is executed at some level in the system, that is, at a certain level in the cache / main memory / direct access memory (DASD) or a distributed system network. Frequently attempt to access data or code that resides on another node in the. For the most basic system, consider what a program needs to understand to make this access.

− データ(またはコード)はどこに所在するか。その
場合によつて、一般に、アクセスのためにどんな種類の
アドレスを用いるべきかが決まる。(例えば、24ビツト
の主記憶アドレス、デイスクトラツク上のセクタアドレ
ス、またはネツトワークのノードアドレス)。また、そ
のアクセスを遂行するためにどんな種類の命令を用いる
べきかも場所によって決まる(例えば、主記憶アクセス
の場合はロード/記憶/分岐、デイスクアクセスの場合
はチヤネル指令ワード、ネツトワークアクセスの場合は
通信プロトコル)。
-Where is the data (or code) located? The case generally determines what kind of address should be used for access. (For example, a 24-bit main storage address, a disk sector address, or a network node address). It also depends on the location what kind of instruction should be used to accomplish the access (eg load / store / branch for main memory access, channel command word for disk access, network instruction word for network access). Communication protocol).

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

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

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

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

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

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

最近のシステムは、程度の差はあれ、こうした問題に取
り組んできた。例えば、 − 再配置アーキテクチヤによつて、一般に、私用の回
復不能な一時的データおよびプログラムを、16ビツトな
いし32ビツトのアドレスサイズ(通常、計算上の一時的
な要求にとつては適切)で統一的にアドレス指定するこ
とができる。再配置アーキテクチヤが適切な“索引”ハ
ードウエアを用いて実施される場合、そうしたアクセス
のほとんどがキヤツシユまたは主記憶装置の速度で行わ
れる。この索引ハードウエアが役に立たない場合(これ
は100回試行して1回起こるよりも少ない頻度である)
にのみ、システムは再配置テーブル構造をアクセスす
る。再配置テーブルが役に立たない場合(すなわちデー
タが主記憶装置にない場合)にのみ、システムに“ペー
ジ不在”のオーバーヘツドが生じる。従つて、真に必要
な場合だけオーバーヘツドが解決される。これは、良好
なアーキテクチヤおよびその実施の目的である。
Recent systems have addressed these issues to varying degrees. For example: -By means of the relocation architecture, private non-recoverable temporary data and programs are generally provided with 16- or 32-bit address sizes (usually adequate for computational temporary needs). Can be uniformly addressed. If the relocation architecture is implemented using suitable "index" hardware, then most such accesses will be at the cache or main memory speed. If this indexing hardware is useless (less than 100 trials and 1 occurrence)
Only the system accesses the relocation table structure. Only if the relocation table is useless (i.e., the data is not in main storage) does the system experience a "page fault" overhead. Therefore, the overhead is resolved only when it is really needed. This is the purpose of good architecture and its practice.

− プログラム実行の範囲を超えてデータを維持する場
合は、最新のシステムでは、ロード/記憶/分岐命令の
代わりに、ソフトウエアで実現される“アクセス方式”
への明示要求によつてアクセスを行うことを要求され
る。こうしたアクセス方式は、一般に、“レコード”お
よび“フアイル”と呼ばれる定義された一定の基礎群に
構成されるデータを支援する。アクセスするための“命
令”は、一般に、“読取り/書込み”または“ゲツト/
プツト”と呼ばれる。
-When maintaining data beyond the scope of program execution, modern systems use an "access method" implemented by software instead of load / store / branch instructions.
Access is requested by an explicit request for. Such access methods generally support data organized into a defined set of foundations called "records" and "files.""Instructions" for accessing are generally "read / write" or "get / write".
It is called "Putto".

データは共有されないか、または、回復不能である。そ
れは、実際に主記憶装置(或るバツフア領域)に記憶さ
れているかも知れない。しかしアクセスの度に、プログ
ラムはこのような明示的な“読取り/書込み”呼出しを
行わねばならない。こうして、アクセス方式が適切に定
義されれば、それによつて、基本的システムにおけるよ
りも複雑でなくかつ一般的に適用できるプログラムが生
成される。しかしながらこうしたアクセスの性能は、一
律に、ロード/記憶よりも劣つたものとなり、アクセス
されるデータを適切な基礎群タイプに構成する必要が生
じる。
Data is not shared or is unrecoverable. It may actually be stored in main memory (a certain buffer area). However, on every access, the program must make such an explicit "read / write" call. Thus, if the access scheme is well defined, it produces a program that is less complex and generally applicable than in the underlying system. However, the performance of such access is uniformly inferior to load / store, requiring the data to be accessed to be organized into the appropriate foundation type.

− データが共有されるか、または、回復可能な場合
は、最新のシステムでは、ソフトウエアで実現される
“データベースサブシステム”への明示要求を必要とす
る。こうしたアクセスは、一般的に、アクセス方式の場
合のアクセスに比べて極めて遅い。この原因は、ロツク
およびジヤーナル管理の機能を付加しているということ
だけでなく、サブシステムが支援する基礎群の種類(例
えば関係、階層)がそれ自体さらに複雑であるというこ
とにもある。
-Modern systems require explicit requests to software-implemented "database subsystems" where data is shared or recoverable. Such access is generally much slower than access with the access method. This is not only due to the addition of lock and journal management functions, but also because the types of foundation groups (eg relationships, hierarchies) supported by subsystems are themselves more complex.

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

“チエツクポインテイング“と呼ばれる手段を用いて一
時的なデータの回復を支援するシステムもある。この場
合、プログラムが回復可能なアプリケーションを書こう
とすれば、3つの異なつた手段を取り扱わねばならな
い。3つの手段とは、計算データのためのチエツクポイ
ンテイング、フアイルのための明示バツクアツプ、およ
びデータベースのための“確約”命令である。
Some systems support the temporary recovery of data using a means called "checkpointing". In this case, if the program wants to write a recoverable application, it has to deal with three different means. The three means are checkpointing for computational data, explicit backups for files, and "commitment" instructions for databases.

− IBMシステム/38は、少なくとも、全てのデータにと
つて統一的なアドレス指定構造を提供するという点に関
して言えば、大多数のシステムよりも進んでいる。しか
しながら、すべてのアドレスは極めて長く、多くのアク
セスは極めて遅く、アーキクチヤを実施するために多大
な記憶領域およびハードウエアを必要とする、という犠
牲のもとにこれが提供されているのであり、また、共有
または回復のための統一的な手法を提供するものではな
い。
The IBM System / 38 is ahead of the vast majority of systems, at least in terms of providing a uniform addressing structure for all data. However, this is provided at the cost of all addresses being very long, many accesses being very slow, and requiring a lot of storage and hardware to perform the archiving, and It does not provide a uniform method for sharing or recovery.

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

主記憶装置内でのセグメントおよびページの位置が可変
のため、仮想アドレスから真の、すなわち実アドレスへ
の変換が必要である。この変換には、通常、主記憶装置
内にあつてページフレームテーブルと呼ばれる一組のア
ドレス変換テーブルを用いる。大きな仮想システムにお
いては、非常に多くのアドレス変換テーブルが使用され
ている。これは様々な方法によつて構成できる。そうし
たあらゆる構成において必須の特徴は、特定の仮想アド
レスが前記テーブルにおいて該仮想アドレスに対する実
アドレス(もしあれば)を含む記憶位置へ論理的に写像
されなければならないということである。
Due to the variable position of segments and pages within main memory, translation from virtual addresses to true or real addresses is required. For this conversion, a set of address conversion tables called a page frame table is usually used in the main storage device. A large number of address translation tables are used in large virtual systems. This can be configured in various ways. An essential feature of any such configuration 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つの特定のフレームすな
わちセグメントに関係する。そうして次に、下位ビツト
を用いて特定の仮想アドレスがその中に含まれるかどう
か、およびもし含まれていれば、どの実アドレスがそれ
に関連しているかを検査する。仮想フレームアドレスに
よつて指定される各々のページテーブルは、1つのフレ
ームに含まれる全てのページの実記憶位置を含んでい
る。従つて、1つの特定のフレームが例えば16ページに
分けられるとすれば、フレームの各々に対して16個のペ
ージテーブルが存在し、更にページテーブルの特定の組
を指定するエントリを持つた1つのフレームテーブルが
別にある。以上の説明は一般化されており、ページテー
ブルとCPUの生成した仮想アドレスを出発点とするペー
ジテーブルアドレス指定手段とを利用してアドレス変換
を組織化する多くの異なつた方法があることを理解され
たい。後の発明の良好な形態の説明において、基本的に
上述のような機能的構成を有するハツシユアドレステー
ブル(HAT)および逆ページテーブル(IPT)を詳述す
る。
Functionally, the operation of such an address translation table is as follows: the upper bit of a particular virtual address is used to access a particular section of the translation table. The upper bits used relate to one particular frame or segment. The lower bits are then used to check whether the particular virtual address is contained therein and, if so, which real address is associated with it. Each page table specified by the virtual frame address includes the actual storage locations of all the pages included in one frame. Therefore, if one particular frame is divided into, for example, 16 pages, there are 16 page tables for each frame, and there is only one entry that specifies a particular set of page tables. There is another frame table. It should be understood that the above description is generalized and that there are many different ways of organizing address translation using page tables and page table addressing means starting from virtual addresses generated by the CPU. I want to be done. In the following description of the preferred embodiment of the invention, a hash address table (HAT) and a reverse page table (IPT) basically having the functional configurations as described above will be described in detail.

実際にアドレス変換を行う場合は、システム構成全体の
細部およびページテーブルの使用には関係なく、ページ
・フレームテーブルへの適切な入口点が作成され、与え
られた仮想アドレスを引き数として用いてページテーブ
ルがアクセスされる。そうして、通常は、複数回の記憶
アクセスを経て、ページテーブルの所望のエントリが見
い出される。通常、その時点において、全てのシステム
プロトコルに従つていたかどうかが検査され、もしそう
ならば、要求されたページの実アドレスがページテーブ
ルからアクセスされる。仮想アドレスのバイト部分すな
わち“バイトオフセツト”は、本来、相対アドレスであ
り、実ページおよび仮定ページにおいて同じである。従
つて、仮想アドレスの所望の実ページアドレス部分が、
一旦、変換されれば、バイトオフセツト部分は実ページ
アドレス場所と連結されて主記憶装置の実バイトアドレ
スを与える。
When doing the actual address translation, regardless of the details of the overall system configuration and the use of the page table, an appropriate entry point to the page frame table is created and the page is given using the given virtual address as an argument. The table is accessed. Then, typically through multiple storage accesses, the desired entry in the page table is found. Normally, it is checked at that point if all system protocols were followed, and if so, the real address of the requested page is accessed from the page table. The byte portion of the virtual address, or "byte offset," is essentially a relative address and is the same on the real and hypothetical pages. Therefore, the desired real page address part of the virtual address is
Once translated, the byte offset portion is concatenated with the real page address location to provide the real byte address of main memory.

現行の仮想記憶システムにおいてよく知られているとお
り、記憶装置をアクセスするたびにいちいち仮想アドレ
スの変換をしなくてもよいように、最近使用された仮想
アドレスから実アドレスへの変換が、本発明においても
使用する登録索引テーブル(DLAT)または変換索引緩衝
機構(TLB)と呼ばれる一組の高速アクセス可能なテー
ブルあるいは高速記憶装置に記憶される。こうしたテー
ブルあるいは緩衝機構は、通常、高速アクセス可能な特
別の記憶装置であり、これは前述のページフレームテー
ブルよりもさらに高速にアクセスできる。これによつ
て、頻繁に使用される仮想アドレスをこのテーブルに記
憶しそれを高速にアクセスすれば、コンピユータの実行
時間を大幅に節約できる。TLBアドレス変換システムの
効率のよさは、所定のプログラム実行においてある仮想
ページがアクセスされた場合それに続いて同じページが
何度もアクセスされるという事実に基づいている。前述
のように、続いて起こるアクセスがページ内の異なつた
ラインおよびバイトに対して行われる場合でさえも、仮
想ページアドレスから実ページアドレスへの変換は、ど
のラインまたはどのバイトがアドレス指定されるかに関
係なく、そのページに関する限り同じである。
As is well known in the current virtual memory system, recently used virtual address to real address conversion is performed so that it is not necessary to convert the virtual address each time the storage device is accessed. Stored in a set of high-speed accessible tables or high-speed storage devices called a registration index table (DLAT) or a translation index buffer (TLB) which is also used in. Such tables or buffers are usually special storage devices that can be accessed at high speed, which can be accessed even faster than the page frame table described above. Thus, by storing frequently used virtual addresses in this table and accessing them at high speed, the execution time of the computer can be saved significantly. 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 previously, the translation of a virtual page address to a real page address addresses which line or byte, even if the subsequent accesses are to different lines and bytes within the page. Regardless of the page, it's the same as far as the page goes.

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

こうした従来の再配置システムの有する別の問題は、ジ
ヤーナリング問題の処理である。すなわち、現プログラ
ムが実行中でデータを使用している間、外部記憶装置内
にデータの複製を保持しておくことである。従つて、ハ
ードウエアまたはソフトウエアに何らかの障害が発生し
ても、もとのデータの有効な複製は依然として使用可能
である。このような機能は、従来、時間を浪費する複雑
なハードウエアおよびソフトウエアによつて実現されて
おり、要求されるジヤーナリング機能のために再び記憶
装置の性能低下という犠牲を強いることになる。
Another problem with such conventional repositioning systems is the handling of the journaling problem. That is, a copy of the data is held in the external storage device while the current program is executing and using the data. Therefore, in the event of any hardware or software failure, a valid copy of the original data is still available. Such a function has heretofore been realized by time-consuming complicated hardware and software, and again, the required journaling function comes at the expense of a reduction in the performance of the storage device.

前述のようにコンピユータ技術においては、長年にわた
つて仮想記憶システムが普及してきた。何らかの再配置
すなわちアドレス変換手段によつて仮想アドレスを実ア
ドレスに変換しなければならないということもまたよく
知られている。こうしたアドレス変換手段においては、
仮想アドレスから実アドレスへの可変換性が保証されて
いなければならない。この主題に関する特許および論文
を全て挙げることはできないが、以下に挙げる従来技術
はアドレス変換機構の代表的な例であつて、かつ本発明
に最も係りの深い従来技術を示すものである。
As described above, in computer technology, virtual memory systems have become popular over the 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,
Translatability from virtual address to 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 the address translation mechanism, and shows the prior art most closely related to the present invention.

Berglund 他による米国特許第3828327号は、アドレスに
上位ビツトを付加することによつて記憶装置を拡張する
ための従来の記憶制御手法を示している。この上位ビツ
トはプログラムによつて明示されるアドレスの一部では
ないが、割込みモード、I/Oモード等の別のシステムモ
ードによつて制御される。この特許は記憶装置拡張シス
テムに関するものであるが、この記憶装置拡張システム
には同時にアドレス変換ハードウエアが提供されてい
る。Bourke 他による米国特許第4042911号もまたは主記
憶装置拡張の為のシステムが示され、アドレス変換手段
を明らかに含んでいる。しかしながらこれら2つの米国
特許は、TLB及びページフレームテーブルの両方に特別
のロツクビツトを用意するという事だけでなく、仮想ア
ドレス拡張の概念をも開示していない。
U.S. Pat. No. 3,828,327 to Berglund et al. Shows a conventional storage control technique for expanding storage by adding higher bits to addresses. This upper bit is not part of the address specified by the program, but is controlled by another system mode such as interrupt mode, I / O mode. This patent relates to a storage expansion system, which is also provided with address translation hardware. U.S. Pat. No. 4,042,911 to Bourke et al. Or a system for main memory expansion is also shown, which explicitly includes address translation means. However, these two U.S. patents do not disclose the concept of virtual address extension, as well as providing special lock bits for both the TLB and page frame tables.

論文、George Radin,“The 801 Minicomputer",ACM
SIGPLAN NOTICES,第17巻、第4号、1982年4月号、3
9ないし47ページ、には非常に高速の記憶サブシステム
に大きく依存する動作特性を持つた実験的なコンピユー
タに関する一般的な記載が示されている。本発明の再配
置機構はこのようなコンピユータに時に適しているであ
ろう。
Paper, George Radin, “The 801 Minicomputer”, ACM
SIGPLAN NOTICES, Volume 17, Issue 4, April 1982, 3
Pages 9-47 provide a general description of experimental computers with operating characteristics that are highly dependent on very fast storage subsystems. The repositioning mechanism of the present invention may at times be suitable for such computers.

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

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

Birney 他による米国特許第4037215号に示されているシ
ステムは、特定の実記憶ブロツクを指定するために一連
のセグメンテーシヨンレジスタを利用するという点にお
いて、前記米国特許第4050094号に極めて類似してい
る。この特許は、さらに特別のセグメンテーシヨンレジ
スタに組み込まれる“読取り専用”有効ビツトの使用に
関した記載もある。こうしたビツトは、本発明の再配置
機構のハードウエアに設けられる特殊目的のロツクビツ
トとは全く異なるものである。
The system shown in U.S. Pat.No. 4,037,215 to Birney et al. Is very similar to U.S. Pat. No. 4050094 in that it utilizes a series of segmentation registers to specify a particular real storage block. There is. This patent also describes the use of "read-only" valid bits incorporated into a special segmentation register. 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号には、ジヤーナリン
グおよびコピーバツクを容易に行うための特別の制御手
段を備えた階層記憶システムが示されている。この特許
には、複数の複式記憶装置もまた示されている。これに
よつて、現行データを一方の記憶装置に保持して、後続
のジヤーナリングオペレーシヨンおよびコピーバツクオ
ペーレーシヨンを容易に行うために、変更を他方の記憶
装置に通知する。この特許のハードウエアおよび制御手
段は本発明のロツクビツトシステムとは全く異なるもの
である。
U.S. Pat. No. 4,077,059 to Gordi et al. Shows a hierarchical storage system with special control means for facilitating journaling and copyback. Multiple dual storage devices are also shown in this patent. This keeps the current data in one storage device and posts the changes to the other storage device to facilitate subsequent journaling and copyback operations. The hardware and control means of this patent are quite different from the lockbit system of the present invention.

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

Hoffman 他による米国特許第4218743号は、1BMシステム
/38の再配置アーキテクチヤに関して以下に列挙する多
数の特許の例である。この特許は仮想記憶コンピユータ
システムにおいてI/Oが処理するアドレス指定を簡単に
する方法を示唆している。仮想記憶システムの課題に係
る他の特許は第4170039号、第4251860号、第4277862
号、および第4215402号である。
U.S. Pat. No. 4,218,743 to Hoffman et al. Is a 1BM system.
Examples of a number of patents listed below with respect to the / 38 rearrangement architecture. This patent suggests a method for simplifying the addressing handled by I / O in a virtual memory computer system. Other patents related to the problem of virtual memory system are No. 4170039, No. 4251860, No. 4278762
And No. 4215402.

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

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

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

C.課題を解決するための手段 本発明の手法に従つて、アドレス変換および全体的な記
憶制御機能に対してハードウエアおよびソフトウエアを
十分に利用した仮想記憶サブシステムが提供される。シ
ステム内の全てのデータおよびプログラムは、それらが
どこに所在するのが、それらが一時間なものであるの
か、カタログされているのが、共有されているのかまた
は私用のものなのが、回復可能なのかまたは回復不能な
のか、ということに関係なく、、統一的にアドレス指定
される。このことは、例えば、キヤツシユ内に存在する
私用の回復不能な計算データがキヤツシユの速度で回復
できることを意味する。一方さらに、データがたとえ共
有されいても、キーを保持する所定のプログラムによる
アクセクもまたキヤツシユの速度で行われる。
C. Means for Solving the Problems In accordance with the techniques of the present invention, a virtual memory subsystem is provided that fully utilizes hardware and software for address translation and overall memory control functions. All data and programs in the system are recoverable, where they are, whether they are one hour, cataloged, shared or private Addressed uniformly regardless of whether it is unrecoverable or unrecoverable. This means that, for example, private unrecoverable computational data present in the cache can be recovered at the speed of the cache. On the other hand, even if the data is shared, access by a given program holding the key is also done at cache speed.

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

本構成の別の固有の特徴は、変換索引緩衝機構だけでな
くさらにページフレームテーブル内にも、ロツキング、
ジヤーナリングおよび許可を検査するための特殊ロツク
ビツトを設けることである。
Another unique feature of this configuration is that it has locking not only in the translation index buffer, but also in the page frame table.
It is to provide a special lockbit for checking journaling and permits.

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

本発明の主な目的は非常に広大の仮想アドレス空間を有
する仮想記憶サブシステムを提供することである。
The main object of the present invention is to provide a virtual storage subsystem having 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 device" in all storage operations.

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

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

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

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

D.実施例 本発明の目的はここで開示される記憶制御装置によつて
一般的に達成される。この記憶制御装置は、前に一般的
な形で述べたアドレス変換アーキテクチヤを実施するホ
ストCPU記憶チヤネルと接続する。アドレス変換アーキ
テクチヤは後でさらに詳しく説明する。変換機構は、16
メガバイトまでの容量を有する記憶装置とのインターフ
エースに要する論理を含む。記憶装置はインタリーブし
てもしなくてもよいし、スタテイツク型でもダイナミツ
ク型でも構わない。変換機構は機能的に3つのセクシヨ
ンに分けられる(第1図参照)。CPU記憶チヤネルイン
ターフエース(CSC)10の論理は共通フロントエンド(C
FE)のセクシヨン12を有する。セクシヨン12は記憶チヤ
ネルからアドレス変換論理14および記憶制御論理16へ適
切なプロトコルを提供する。記憶チヤネルとの通信は全
てこの論理によつて取り扱われる。アドレス変換論理
は、記憶チヤネルより受け取つた仮想アドレスを、記憶
装置のアクセスに用いられる実アドレスに、変換する。
この論理は16個のコングルエンスクラスを備えた2ウエ
イのセツトアソシアテイブとして構成された変換索引緩
衝機構(TLB)を含む。必要な場合に主記憶装置にある
ページテーブルから自動的にTLBエントリを再ロードす
る論理が設けられる。記憶制御論理16はアドレス変換論
理14から記憶装置へのインターフエースを提供する。こ
の論理はダイナミツクメモリリフレツシユ制御もまた備
えている。
D. Embodiments The objects of the present 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 described in more detail later. The conversion mechanism is 16
Contains the logic required to interface with storage devices having capacities up to megabytes. The storage device may or may not be interleaved, and may be a static type or a dynamic type. The conversion mechanism is functionally divided into three sections (see Figure 1). CPU memory channel interface (CSC) 10 logic is common front end (C
It has a section 12 of FE). Section 12 provides the appropriate protocol from the storage channel to address translation logic 14 and storage control logic 16. All communication with the memory channel is handled by this logic. The address translation logic translates the virtual address received from the storage channel into a real address used to access the storage device.
This logic includes a translation lookaside buffer (TLB) configured as a two-way set associative with 16 congruence classes. Logic is provided to automatically reload TLB entries from the page table in main memory when needed. Storage control logic 16 provides the interface from address translation logic 14 to the storage device. This logic also provides dynamic memory refresh control.

本発明は、主として、よく知られたコンピユータ回路、
装置、および機能ユニツトの新規な組合せと機能動作と
に関するものであつて、それらの特定の詳細な構造に係
るものではない。従つてこうしたよく知られた回路、装
置、およびブロツクの構造、制御および、配置は本発明
に関係する部分だけを詳細に示した容易に理解できるブ
ロツク表現および機能図の形で図面に例図されている。
これは、構造的な詳細によつて本発明が不明瞭になつて
しまうことのないようにするためである。この構造的な
詳細はその機能的な記述だけで当業者には容易に明らか
なものである。本発明に係るそうした特徴を強調するた
めに、さらに、これらのシステムの様々な部分は適切に
整理され機能的に記述されている。以下の記述により、
当業者は開示された記憶サブシステムの実施可能性を理
解でき、さらに、様々なコンピユータアーキテクチヤの
任意の1つにそれを組み込むことができるであろう。
The present invention is mainly based on the well-known computer circuit,
It relates to new combinations of devices and functional units and functional operations, not to their specific detailed structure. The structure, control and arrangement of these well known circuits, devices and blocks are therefore illustrated in the drawings in the form of easily understandable block representations and functional diagrams showing in detail only the parts relevant to the invention. ing.
This is to avoid obscuring the invention due to structural details. The structural details will be readily apparent to one of ordinary skill in the art based only on their functional description. Furthermore, in order to emphasize such features of the present invention, various parts of these systems are properly organized and functionally described. With the following description,
One of ordinary skill in the art will understand the feasibility of the disclosed storage subsystem and will further be able to incorporate it into any one of a variety of computer architectures.

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

本システムでアドレスが変換されるか(仮想アドレスと
して取扱われるか)実アドレスとして取扱われるかは、
CPU記憶チヤネル(CSC)上の変換モードビツト(Tビツ
ト)の値によつて制御される。CSCに要求を出す各装置
は要求の度に変換モードビツトの値を制御する。Tビツ
トはCPUが供給する記憶装置アクセス命令の適切なフイ
ールドから取り出される。I/O装置による記憶装置アク
セスの場合は、Tビツトの値はアダプタ接続機能によつ
て生成される。Tビツトが1の場合は、記憶装置アドレ
ス(命令取出し、データロード、データ記憶)は変換さ
れる。Tビツトが0の場合は、記憶装置アドレスは実ア
ドレスとして取扱われる。
Whether the address is translated (virtual address) or real address in this system
It is controlled by the value of the conversion mode bit (T bit) on the CPU memory channel (CSC). Each device issuing a request to the CSC controls the value of the conversion mode bit on each request. The T bit is fetched from the appropriate field of the storage access instruction supplied by the CPU. For storage access by I / O devices, the T bit value is generated by the adapter connection function. If T bit is 1, the storage device address (instruction fetch, data load, data storage) is converted. If T bit is 0, the storage device address is treated as a real address.

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

参照および変更の記録は、変換が行われるかどうかには
関係なく全ての記憶装置にとつて有効である。
The record of references and changes is valid for all storage devices, whether or not conversion is done.

アドレス変換が行われる場合は、変換オペレーシヨンは
以下に示すように論理的に進められる。
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 the strict logical sequence shown below.

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

1.複数の独立した仮想アドレス空間 2.4ギガバイトのアドレス空間 3.要求時ページング 4.2048バイトまたは4096バイトのページ 5.記憶装置保護 6.命令およびデータのための共有セグメント 7.128バイトのラインのジヤーナリングおよびロツキン
グ 8.16メガバイトまでアドレス指定可能な実記憶 9.実ページごとの参照ビツトおよび変更ビツト 10.実アドレスロード、TLBエントリ無効化、および記憶
装置例外アドレスのためのハードウエア支援 記憶装置は、各々256メガバイトの容量を有する4096個
のセグメントから成る、単一の40ビツト仮想アドレス空
間に写像されているかのごとく取り扱われる。CSCより
受け取つた32ビツトのアドレスのうち上位4ビツトを用
いて16個のセグメントレジスタのうちの1つを選択し、
選択されたセグメントレジスタの内容12ビツトと、有効
アドレスの残りの28ビツトとを連結することによつて、
32ビツトのアドレスを40ビツトの(長形式仮想)アドレ
スに変換する。そうして変換機構が記憶装置アクセスの
ために40ビツトの仮想アドレスを実アドレスに変換す
る。容易にわかるように、ハードウエアをわずかに変更
するだけで仮想アドレスの大きさを変更することも可能
である。
1. Multiple independent virtual address spaces 2.4 gigabytes of address space 3. On demand paging 4. 2048 or 4096 bytes pages 5. Storage protection 6. Shared segment for instructions and data 7. 128-byte line journaling and locking 8.16 Real storage addressable up to megabytes 9. Browse and modify bits per real page 10. Hardware support for real address loads, TLB entry invalidation, and storage exception addresses Storage devices each have a capacity of 256 megabytes Is treated as if it were mapped to a single 40-bit virtual address space consisting of 4096 segments. Select one of the 16 segment registers using the upper 4 bits of the 32 bit address received from CSC,
By concatenating the 12-bit contents of the selected segment register with the remaining 28-bits of the effective address,
Converts a 32-bit address to a 40-bit (long form virtual) address. The translator then translates the 40-bit virtual address to a real address for storage access. As can be easily seen, it is possible to change the size of the virtual address with a slight change in the hardware.

アドレス指定可能な記憶装置の容量は、常に、4ギガバ
イトのみである。言い換えれば、16個のセグメントレジ
スタによつて各々256メガバイトの容量を有する16個の
セグメントが指定可能である。従つてオペレーテイング
システムは適切な値をセグメントレジスタにロードする
ことによつて複数の独立した仮想アドレス空間を生成す
ることができる。限られた場合には、このようにして、
256個の全く独立した4ギガバイトアドレス空間を生成
できるかも知れないが、(中核コードのような)幾つか
のセグメントが複数のアドレス空間で共有される可能性
の方が高い。
The addressable storage capacity is always only 4 gigabytes. In other words, 16 segment registers can specify 16 segments each having a capacity of 256 megabytes. Accordingly, the operating system can create multiple independent virtual address spaces by loading the segment registers with the appropriate values. In limited cases, like this,
While it may be possible to generate 256 totally independent 4 gigabyte address spaces, it is more likely that some segments (such as core code) will be shared by multiple address spaces.

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

持続記憶クラスに対するサポートは、各仮想ページに関
連する一組のロツクビツトによつて与えられる。このロ
ツクビツトは記憶装置保護の細分性を記憶装置の“ライ
ン”にまで効果的に拡張し(2Kページの場合は128バイ
ト、4Kページの場合は256バイト)、こうしてオペレー
テイングシステムは持続変数の変更を検知しそれを自動
的にジヤーナリングすることができる。ここで云う持続
記憶クラスは、その内容が例えばデイスクフアイル記憶
装置に永続的に記憶されているものを意味する。
Support for persistent storage classes is provided by a set of lockbits associated with each virtual page. This lockbit effectively extends the granularity of storage protection to a “line” of storage (128 bytes for 2K pages, 256 bytes for 4K pages), thus allowing the operating system to modify persistent variables. Can be detected and automatically journaled. Persistent storage class, as used herein, means that its contents are permanently stored in, for example, a disk file storage device.

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

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

変更ビツト 各ページフレームに関連するビツト。Change Bit The bit associated with each page frame.

そのフレームに対して記憶装置参照(書込みのみ)が成
功した場合は常に“1"にセツトされる。
Whenever a memory reference (write only) is successful for that frame, it is set to "1".

有効アドレス 記憶チヤネル上の装置によつて生成される32ビツトの記
憶チヤツネルアドレス。このアドレスは、命令取出し、
データロード、またはデータ記憶の際にホストCPUによ
つて生成できる。また、DMAアドレスのように、記憶チ
ヤネル上のI/O装置によつて生成することもできる。
Effective Address A 32-bit stored channel address generated by the device on the stored channel. This address is the instruction fetch,
It can be generated by the host CPU when loading or storing data. It can also be generated by an I / O device on the storage channel, like a DMA address.

ライン 128バイトごとの境界を有する1ページの128バイト部
分、これは1つのロツクビツトによつて制御される記憶
容量である。
A 128-byte portion of a page with boundaries on each 128-byte line, which is the storage capacity controlled by one lockbit.

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

ページ 2048バイト[または4096バイト]の境界で区切られた20
48バイト[または4096バイト]の記憶単位。“ページ”
は正しくは仮想記憶に関し、一方、“ページフレーム”
は実記憶に関するものであるが、歴史的に“ページ”は
仮想記憶および実記憶のいずれにも使用されている。
20 pages separated by 2048-byte [or 4096-byte] boundaries
A storage unit of 48 bytes [or 4096 bytes]. "page"
Is really about virtual memory, while "page frames"
Is about real memory, but historically "pages" have been used for both virtual and real memory.

ページフレーム 2048バイト[または4096バイト]の境界で区切られた20
48バイト〔または4096バイト]の記憶単位。ページはペ
ージフレーム内または外部記憶装置(すなわちデイス
ク)上に存在する。
Page frames 20 separated by 2048-byte [or 4096-byte] boundaries
A storage unit of 48 bytes [or 4096 bytes]. Pages reside in page frames or on external storage (ie, disks).

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

保護キー 各セグメントレジスタにある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 protect key is functionally similar to the IBM System / 370 PSW key, but applies individually to each segment rather than globally to all addressable storage. To be done.

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

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

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

セグメントID 256Mバイトの仮想記憶セグメントを識別するための0な
いし4095(12ビツト)の範囲の数値。セグメントIDと仮
想ページインデツクスとを連結して、40ビツト仮想アド
レス空間の1ページを指定する。
Segment ID A numeric value in the range of 0 to 4095 (12 bits) for identifying a virtual memory segment of 256 MB. The segment ID and virtual page index are concatenated to specify one page in the 40-bit virtual address space.

記憶装置キー 特定の1ページに関連した保護レベルを識別するため
の、各TLBエントリ内の2ビツトの値。このキーは、機
能的にはシステム/370の各ページに関連した記憶装置キ
ーに似ている。
Storage Key A two-bit value in each TLB entry that identifies the protection level associated with a particular page. This key is functionally similar to the storage key associated with each System / 370 page.

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

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

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

仮想ページインデツクス 2Kバイトページの場合、仮想記憶セグメント内の1ペー
ジを識別するための0ないし131072(17ビツト)の範囲
の数値[4Kバイトページの場合は0ないし65536(16ビ
ツト)]。仮想ページインデツクスは有効アドレスのビ
ツト4〜20[4〜19]から取り出される。
Virtual page index A number in the range of 0 to 131072 (17 bits) [0 to 65536 (16 bits) for a 4 Kbyte page] for identifying one page in the virtual storage segment for a 2 Kbyte page. The virtual page index is fetched from the valid address bits 4 to 20 [4 to 19].

記号||は連結を表わす。The symbol || represents a concatenation.

本アドレス変換機構を支援するのに要するハードウエア
を以下に説明する。実施態様によつてはフイールド幅を
変更することもできることに留意されたい。
The hardware required to support this address translation mechanism is described below. It should be noted that the field width may be changed depending on the embodiment.

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

TLBの詳細な構成は実施態様に依存する。2つの実施態
様が可能である。セグメントID||仮想ページインデツク
スによつてアドレス指定され、かつ、実記憶フレームに
あたり1つのエントリを含む内容アドレス記憶装置(CA
M)。CAMエントリのインデツクス(序数)は実ページイ
ンデツクスに等しい。仮装ページインデツクスの下位ビ
ツトの或る数値によつてアドレス指定されるセツトアソ
シアテイブTLB。実ページインデツクスはTLBエントリの
1つのフイールドに含まれる。
The detailed structure of the TLB depends on the embodiment. Two embodiments are possible. Segment ID || Content address storage (CA) that is addressed by the virtual page index and contains one entry per real storage frame.
M). The CAM entry index (ordinal number) is equal to the real page index. A set-associative TLB addressed by some value in the lower bits of the fake page index. The real page index is contained in one field of the TLB entry.

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

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

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

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

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

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

選択されたTLBエントリ内の実ページ番号フイールド(R
PN)は主記憶装置にある実ページの番号を含む。実ペー
ジ番号の所与の仮想アドレスに写像される。これが特殊
セグメントでない場合は、アクセスが許可される前に、
TLBエントリからのキービツトとセグメントレジスタか
らのキービツトとを用いて、記憶装置保護違反の有無を
検査する。セグメントレジスタの特殊ビツトで示される
ようにこれが特殊セグメントである場合は、アクセスが
許可される前に、ロツクビツト処理が実行される。記憶
装置機構は、特殊セグメント処理と同様、後で説明す
る。アクセスが許可されれば、主記憶装置がアクセスさ
れて、そのページに関連する参照および変更ビツトが更
新される。参照および変更ビツトのセツトも後で説明す
る。
Real page number field (R in the selected TLB entry
PN) contains the number of the real page in main memory. It maps to a given virtual address of the real page number. If this is not a special segment, before access is granted,
The key bit from the TLB entry and the key bit from the segment register are used to check for a memory device protection violation. If this is a special segment, as indicated by the special bit in the segment register, lock bit processing is performed before access is granted. The storage mechanism, as well as the special segment processing, will be described later. If access is granted, main memory is accessed to update the reference and change bits associated with the page. The set of reference and change bits are also described 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 absent TLB entry from the page table entry in main memory. The main memory page table resides in real memory and is logically composed of two parts: the hash anchor table (HAT) and the reverse page table (IPT). The HAT can map any virtual address to any real page by hatsing.

逆ページテーブル(IPT)は各々の実ページフレームに
関連する仮想アドレス(もしあれば)を指定する。IPT
は実ページ番号によつて指標されるエントリのアレイと
して構成され、各エントリはそれに関連するセグメント
IDおよび仮想ページ番号を含む。
The inverse page table (IPT) specifies the virtual address (if any) associated with each real page frame. IPT
Is organized as an array of entries indexed by real page number, where each entry is a segment associated with it
Includes ID and virtual page number.

IPTは実ページ番号によつて指標されるので、所与の実
アドレスに対する仮想アドレスを決定するのは極めて容
易である。所与の仮想アドレスに対する実アドレスを効
率よく決定するためには、ハツシングによつて仮想アド
レスをアンカー点に写像すること、およびエントリを連
鎖してハツシユ衝突を解決すること、が必要である。こ
れは当業者には容易に理解されるであろう。
Since the IPT is indexed by real page number, it is very easy to determine the virtual address for a given real address. In order to efficiently determine the real address for a given virtual address, it is necessary to map the virtual address to an anchor point by hashing and chain the entries to resolve the hash collision. This will be easily understood by those skilled in the art.

ハツシユアンカーテーブル(HAT)は論理的にはIPTから
分離されている(ハードウエアの効率化という理由から
物理的にはIPTに組み込まれているが)。第6図に示す
ように、ハツシユ関数は仮想アドレスをHAT内の1つの
エントリのインデツクスに変換し、そのエントリが同じ
HATインデツクスを持つたIPTエントリ(実ページ)の連
鎖における最初のエントリを指定する。仮想アドレスを
一致を求めてIPTエントリの連鎖を探索した場合、所望
の仮想アドレスに対するIPTインデツクス(従つて実ア
ドレス)が得られるか、又は、一致が見出されることな
く(ページが写像されていない)探索が終了する。本実
施例では実記憶の各ページに対して1つのHATおよびIPT
エントリが存在する。
The hash anchor table (HAT) is logically separated from the IPT (although it is physically built into the IPT for reasons of hardware efficiency). As shown in Figure 6, the hash function translates a virtual address into the index of one entry in the HAT, and that entry is the same.
Specifies the first entry in the chain of IPT entries (real pages) that have a HAT index. When searching a chain of IPT entries for a virtual address match, the IPT index (hence the real address) for the desired virtual address is obtained, or no match is found (the page is not mapped). The search ends. In this embodiment, one HAT and IPT for each page of real memory
The entry exists.

仮想アドレスから実アドレスへの変換は、初めに、有効
アドレスの選択された下位ビツトとセグメント識別子か
らのビツトとを排他的にオアすることによつて、達成さ
れる。この“ハツシユされた”アドレスはHATへの指標
付けに用いられる。選択されたHATエントリは所与の仮
想アドレスのための、探索されるべきIPTエントリのリ
ストの開始点へのポインタである。探索されるべきIPT
エトリのリスト内のエントリは、次の探索すべきIPTエ
ントリを指定する各エントリ内のポインタによつてリン
クされている。IPTエントリ中のフラグビツトを用いて
探索連鎖の終了点が示される。ハツシングは、一般に幾
つかの異なつた有効アドレスに対して同じHATアドレス
を生成するので、探索されるべきIPT連鎖には仮想アド
レスエントリが幾つか含まれていることに留意された
い。
The translation of a virtual address to a real address is accomplished by first exclusively ORing the selected lower bits of the effective address and the bits from the segment identifier. This "hashed" address is used to index the HAT. The selected HAT entry is a pointer to the start of the list of IPT entries to be searched for a given virtual address. IPT to be searched
The entries in the list of etries are linked by a pointer in each entry that specifies the next IPT entry to search. The flag bit in the IPT entry is used to indicate the end of the search chain. Note that hashing generally produces the same HAT address for several different effective addresses, so the IPT chain to be searched contains some virtual address entries.

ハードウエアの効率化という理由から、HATおよびIPT
は、1つのインデクシング構造でアドレス指定できる1
つの構造に組み合わされる。組み合わされたHATおよびI
PTには、実記憶の各ページに対して1つのエントリが存
在する。例えば、2Kバイトのページで構成された1Mバイ
トの実記憶は512のエントリを要し、4Kバイトのページ
で構成された512Kバイトの実記憶は128のエントリを要
する。組み合わされたHATおよびIPTのエントリの形式
は、第7図に示す。HAT/IPTは各エントリに対して16バ
イトを有し、テーブルサイズの倍数のアドレス場所から
始まる。
HAT and IPT for hardware efficiency reasons
Can be addressed by one indexing structure 1
Combined in one structure. Combined HAT and I
There is one entry in the PT for each page of real storage. For example, 1 Mbytes of real storage made up of 2 Kbytes pages requires 512 entries, and 512 Kbytes of real storage made up of 4 Kbytes pages requires 128 entries. The format of the combined HAT and IPT entries is shown in FIG. The HAT / IPT has 16 bytes for each entry, starting at an address location that is a multiple of the table size.

各エントリの第1ワードはアドレスタグを含む。アドレ
スタグはセグメント識別子と仮想ページイデツクスとを
連結して作られる。2Kページの場合は、アドレスタグは
29ビツト、4Kページの場合は28ビツトであることに留意
されたい。4Kページサイズが使用されたとすれば、28ビ
ツトのアドレスタグがビツト3ないしビツト30に記憶さ
れる。ビツト2は予約されている。第1ワードは、さら
に、2ビツトキーを含む。2ビツトキーは後に説明する
記憶装置保護のために使用される。
The first word of each entry contains the address tag. The address tag is created by connecting the segment identifier and the virtual page index. For 2K pages, the address tag is
Note that it is 29 bits, 28 bits for a 4K page. If a 4K page size was used, a 28-bit address tag would be stored in bits 3-30. Bit 2 is reserved. The first word further includes a 2-bit key. The 2-bit key is used for storage device protection, which will be described 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 described later.

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

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

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

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

選択されたHATインデツクスがアクセスされて、IPT探索
連鎖が空いているかどうかを判定するために空きビツト
が検査される。もし空きビツトが1ならば、所与の仮想
アドレスへ写像されるページは存在せず、後で説明する
ように“ページ不在”が報告される。もし、空きビツト
が0ならば、IPT探索連鎖にエントリが存在してIPT内の
エントリが探索される。そのとき、選択されたHATエン
トリのHATポインタフイールドが、IPT探索連鎖の開始点
へのポインタとして使用される。
The selected HAT index is accessed and the free bits are checked to determine if the IPT search chain is free. If the free bit is 1, then there is no page mapped to the given virtual address and a "page fault" is reported, as will be explained later. If the free bit is 0, there is an entry in the IPT search chain and the entry in the IPT is searched. The HAT pointer field of the selected HAT entry is then used as a pointer to the starting point of the IPT search chain.

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

IPT内の最初のエントリに対してアドレスが行われ、そ
のアドレスタグと所与の仮想アドレスとの比較が行われ
る。両者が一致すれば、仮想アドレスに割り当てられた
実ページが見つかつたことになり、不在TLBエントリを
再ロードすることができる。TLBエントリの再ロードは
後で説明する。両者が一致しなければ、IPTポインタを
アクセスしてIPT探索を続行する。IPTポインタは、 HAT/IPTベースアドレス+HATポインタ||0100 として計算される。次にIPTポインタがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビツトが検査される。最終ビツ
トが0ならば、付加的なエントリが存在し探索処理を続
行する。最終ビツトが1ならば、探索されるべき付加的
なIPTエントリは存在せず、“ページ不在”が報告され
る。
An address is made to the first entry in the IPT and its address tag is compared to a given virtual address. If they match, 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 they do not match, the IPT pointer is accessed to continue the IPT search. The IPT pointer is calculated as HAT / IPT base address + HAT pointer || 0100. The IPT pointer is then accessed and the final bit is examined to determine if there are additional entries in the IPT search chain. If the final bit is 0, there are additional entries and the search process continues. If the final bit is 1, then there are no additional IPT entries to be searched and "page fault" is reported.

探索されるべき付加的なIPTエントリが存在すれば、探
索のための次のIPTエントリのアドレスは、 HAT/IPTベースアドレス+HATポインタ||0000 として計算される。このアドレスを用いてIPTの次のエ
ントリをアクセスし、選択されたエントリに含まれるア
ドレスタグと所与の仮想アドレスとの比較を行う。両者
が一致すれば、仮想アドレスに割り当てられた実ページ
が見つかり、不在TLBエントリを再ロードすることがで
きる。両者が一致しなければ、探索されるべき次のエン
トリへのポインタをアクセスして探索処理を続行する。
次のエントリへのポインタのアドレスは、 HAT/IPTベースアドレス+IPTポインタ||0100 として計算される。次に、このワードがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビツトが検査される。最終ビツ
トが1ならば、探索されるべき付加的なIPTエントリは
存在せず、“ページ不在”が報告される。最終ビツトが
0ならば、付加的なエントリが存在し探索処理を続行す
る。IPTエントリのアドレスタグが所与の仮想アドレス
と一致するか、または、一致が見出されずかつ最終ビツ
トが探索連鎖内でそれ以上のエントリの存在はないとい
うことを示すまでは、現IPTポインタを用いて前述の処
理によつて後続のエントリアクセスが行われる。
If there are additional IPT entries to be searched, the address of the next IPT entry to search is calculated as HAT / IPT base address + HAT pointer || 0000. This address is used to access the next entry in the IPT and compare the address tag contained in the selected entry with 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 to continue the search process.
The address of the pointer to the next entry is calculated as HAT / IPT base address + IPT pointer || 0100. This word is then accessed and the final bit is examined to determine if there are additional entries in the IPT search chain. If the final bit is 1, then there are no additional IPT entries to be searched and "page fault" is reported. If the final bit is 0, there are additional entries and the search process continues. 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. The subsequent entry access is performed by the above-described processing.

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

(1)仮想ページ番号の下位13ビツトを選択する。これ
は、4Kバイトのページが使用されていれば有効アドレス
のビツト7ないし19であり、2Kバイトのページが使用さ
れていればビツト8ないし20である。
(1) Select the lower 13 bits of the virtual page number. This is bits 7 to 19 of the effective address if a 4 Kbyte page is used and 8 to 20 if a 2 Kbyte page is used.

(2)有効アドレスのビツト0ないし3で指定されるセ
グメントレジスタの12ビツトの内容を選択する。左端に
“0"ビツトを連結して13ビツトのフイールドを形成す
る。
(2) Select the contents of 12 bits of the segment register specified by the valid address bits 0 to 3. A "0" bit is connected to the left end to form a 13-bit field.

(3)ステツプ(1)および(2)からの2つの13ビツ
トフイールドを排他的オアして13ビツトのハツシユアン
カーテーブルエントリ番号を形成する。
(3) Exclusively 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エントリを含むIPTエン
トリの開始点のバイトオフセツトを形成する。
(4) Shift the value of step (3) to the left by 4 bits. This physically forms the byte offset of the starting point of the IPT entry containing the desired HAT entry.

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

(6)空きIPT連鎖を検査する。HAT/IPTエントリの“E"
(“空き”)ビツトを検査する。
(6) Check the free IPT chain. HAT / IPT entry “E”
Inspect the (“empty”) bit.

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

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

(8)IPTインデツクスの値を左方に4ビツトだけシフ
トする。これは、仮想アドレスの一致を検査すべきIPT
エントリの開始点をバイトオフセツトを形成する。
(8) Shift the IPT index value to the left by 4 bits. This is the IPT that should be checked for a virtual address match
The starting point of the entry forms a byte offset.

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

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

(11)一致すれば、探索は成功裏に終る。このエントリ
は所望の仮想アトドレスに対応するものである。そのイ
ンデツクス番号は要求された実ページ番号に等しい。
(11) If they 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)一致しなければ、連鎖の終りを検査する。IPTエ
ントリの“L"(“最終”)ビツトを検査する。L=1な
らば、そこがこの連鎖における最終のIPTエントリであ
る。探索は不成功に終り、仮想ページは写像されていな
い。
(12) If they do not match, check the end of the chain. Check the "L"("last") bit of the IPT entry. If L = 1, then it is the last IPT entry in this chain. The search was unsuccessful and the virtual page is unmapped.

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

(14)ステツプ(8)へ進む。(14) Go to step (8).

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

各コングルエンスクラスで最も長い間使用されなかつた
TLBエントリを決定するのにハードウエアが使用され
る。仮想アドレスの下位ビツトはコングルエンスクラス
を確定するので、あとは、どのTLBが選択されたエント
リを置換すべきであつたのかを決定するだけでよい。そ
うして、どのTLBが、所与のコングルエンスクラスにお
いて最も長い間参照されなかつたエントリを有していた
かという事に基づいて、2つのTLBのうちの一方が選択
される。
Not used for the longest time in each congruence class
Hardware is used to determine the TLB entry. Since the lower bits of the virtual address determine the congruence class, all that remains is to determine which TLB should have replaced the selected entry. One of the two TLBs is then selected based on which TLB had the longest unreferenced entry in the given congruence class.

所与のコングルエンクラスに対して最も長い間使用され
なかつたTLBエントリがひとたび決定されれば、選択さ
れたTLBエントリを再ロードすることができる。アドレ
スタグフイールドおよびキービツトは、主記憶装置に含
まれるIPTエントリから再ロードされる。このエントリ
のアドレスはIPT探索プロセスにおいて事前に計算され
ている。探索プロセス中に計算されたIPTインデツクス
は実ページ番号に等しいので、この値を用いてTLBの実
ページ番号フイールドを再ロードする。セグメントレジ
スタ内の特殊ビツトによつて示されるように、これが特
殊セグメントである場合は、TIDおよびロツクビツトも
再ロードされる。TIDおよびロツクビツトは、選択され
たIPTエントリの第3ワードをアクセスすることによつ
て再ロードされる。
Once the longest unused TLB entry for a given congluen class has been determined, the selected TLB entry can be reloaded. Address tag fields and keybits are reloaded from the IPT entries contained in main memory. The address of this entry was precomputed during the IPT discovery process. Since the IPT index calculated during the search process is equal to the real page number, this value is used to reload the TLB real page number field. If this is a special segment, the TID and lock bit are also reloaded, as indicated by the special bit in the segment register. The TID and lock bit are reloaded by accessing the third word of the selected IPT entry.

記憶装置アクセス制御 本アドレス変換機構は2つのアクセス制御機構を提供す
る。第1の機構は非特殊セグメント用で、実記憶の各ペ
ージに対する読取り/書込み保護を与える。第2の機構
は特殊セグメント専用で、持続データタイプを支援する
のに用いられる。これらのアクセス制御機構は変換され
たアクセスにだけ適用する。もしいずれかの機構によつ
て違反が検知されれば、記憶装置アクセスは終了して、
後で説明するように例外が報告される。
Storage Access Control This 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 translated access. If a violation is detected by either mechanism, storage access is terminated,
Exceptions are reported as explained later.

記憶装置保護処理 記憶装置保護処理は非特殊セグメントにだけ適用する。
TLBによつてひとたび仮想アドレスと実アドレスとの対
応がとられると、適正なアクセス権限を保証するため、
要求されたアクセスが検証される。この機能によつて各
ページはアクセスなし、読取り専用、または読取り/書
込みとしてマークされる。
Storage protection processing Storage protection processing applies only to non-special segments.
Once the correspondence between the virtual address and the real address is taken by TLB, in order to guarantee proper access authority,
The requested access is verified. This feature marks each page as no access, read only, or read / write.

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

もしアクセスが許可されなければ、変換は終了して保護
例外がCPUに報告される。
If access is not granted, the conversion ends and a protection exception is reported to the CPU.

ロツクビツト処理 ロツクビツト処理は、選択されたセグメントレジスタ内
の特殊ビツトによつて示される特殊セグメントだけに適
用される。特殊セグメントは持続データを支援するのに
用いられる。ロツクビツト処理によつて、オペレーテイ
ングシステムは持続変数の変更を自動的に監視するこ
と、変更をジヤーナルに記録すること、陰のページを生
成すること、および、データベースの一貫性確保のため
の他の処理を実行すること、が可能である。ロツクビツ
トは、また保護の単位を記憶装置保護機能によるページ
サイズ(2Kバイトまたは4Kバイト)から、128バイトま
たは256バイトのラインまで、細かくする。2Kページの
場合は128バイトの保護単位が実現され、4Kページの場
合は256バイトの保護単位が実現される。2Kページの場
合は有効アドレスのビツト[21:24]によつて個々のラ
インのロツクビツトが選択され、4Kページの場合は有効
アドレスのビツト[20:23]によつて個々のラインのロ
ツクビツトが選択される。
Lock Bit Handling Lock bit handling applies only to the special segment indicated by the special bit in the selected segment register. Special segments are used to support persistent data. Through lock-bit processing, the operating system automatically monitors changes to persistent variables, journals changes, generates shadow pages, and other methods for ensuring database consistency. It is possible to perform processing. Lockbit also subdivides the unit of protection from page size (2K bytes or 4K bytes) by storage protection functions to lines of 128 bytes or 256 bytes. A 128-byte protection unit is realized for a 2K page, and a 256-byte protection unit is realized for a 4K page. For 2K pages, the lock bit of each line is selected by valid address bits [21:24], and for 4K page, the lock bit of individual lines is selected by valid address bits [20:23]. To be done.

アクセス制御は、選択されたTLBエントリ内の1ビツト
の書込みキー、選択されたラインのロツクビツト値、TI
D比較、およびそのアクセスがロードオペレーシヨンで
あるのか記憶オペレーシヨンであるのか、ということに
関係している。アクセスは表4に示すようにして制御さ
れる。
The access control is a one-bit write key in the selected TLB entry, the lock bit value of the selected line, TI
It is related to the D comparison and whether the access is a load operation or a memory operation. Access is controlled as shown in Table 4.

ロツクビツト違反の報告にはデータ記憶例外が使用され
る。この違反は必ずしもエラーを表わすものではなく、
単に、新たに変更されたラインがオペレーテイングシス
テムによつて処理されるべきである、という事を表わす
ものでよい。
A data storage exception is used to report a lock bit violation. 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 change bits are provided for each page of real memory. These bits are located in an array external to the address translation mechanism and are updated on demand for each memory access. The reference bit is set to 1 when the corresponding real page is accessed for reading or writing. The modification bit is set when the corresponding page is written.

関連するCPUからのI/O読取り命令(IOR)およびI/O書込
み命令(IOW)によつて、参照および変更ビツトをアク
セスすることができる。実記録の各ページのための参照
および変更ビツトは、I/OベースアドレスレジスタにX
‘1000'を加えたものによつて指定されるI/Oアドレスの
所から始まる。所与のページのための参照および変更ビ
ツトのI/Oアドレスは次式によつて与えられる。
Reference and modify bits can be accessed by I / O read instructions (IOR) and I / O write instructions (IOW) from the associated CPU. The reference and modification bits for each page of the real record are stored in the I / O base address register as X
Starts at the I / O address specified by adding '1000'. The reference and modify bit I / O address for a given page is given by:

I/Oアドレス=I/Oベースアドレスレジスタによつて指定
されたアドレス +X‘1001' +ページ番号 各I/Oアドレスは実記憶の1ページに対する参照ビツト
および変更ビツトを含む。参照ビツトおよび変更ビツト
の形式を第8図に示す。
I / O address = address specified by I / O base address register + X'1001 '+ page number Each I / O address includes a reference bit and a modification bit for one page of real memory. The format of the reference and modified bits is shown in FIG.

参照ビツトおよび変更ビツトへのアクセスによつて転送
されるデータは以下のように定義される。
The data transferred by access to the reference and change bits is defined as follows.

ビツト0:29 ゼロ。Bit 0:29 Zero.

ビツト30 参照ビツト。対応する実ページが読取りまたは書込みの
ためにアクセスされると、1にセツトされる。
Bit 30 See Bit. It is set to 1 when the corresponding real page is accessed for reading or writing.

ビツト31 変更ビツト。対応する実ページが書込みのためにアクセ
スされると、1にセツトされる。
Bit 31 Change bit. Set to 1 when the corresponding real page is accessed for writing.

参照ビツトおよび変更ビツトはハードウエアによつて初
期設定されることはない。それらはシステムソフトウエ
アのIOW命令によつて初期設定およびクリアが行われ
る。参照ビツトおよび変更ビツトは、それらをセツトま
たはクリアするプログラムを実行することによつてセツ
トすることができるので、参照ビツトおよび変更ビツト
をクリアまたはセツトする書込みの後に読取りが続いて
も、必ずしも書き込まれたのと同じデータを読み取る必
要はない。
The reference and modify bits are not initialized by the hardware. They are initialized and cleared by the IOW instruction of system software. The reference and modify bits can be set by running a program that sets or clears them, so a write that clears or sets the reference and modify bits will not necessarily be written. You don't have to read the same data as you did.

制御レジスタ 記憶装置の構成、ページテーブルアドレス、およびI/O
ベースアドレスを定めるために用いる制御レジスタが幾
つかある。これらのレジスタはCPUからのI/O読取り(IO
R)命令およびI/O書込み(IOW)命令によつて初期制定
(ロード)される。それらの構成および形式を第9図な
いし第18図に示す。これらのレジスタは監視プオグラム
状態になつて初めてアクセス可能となる。
Control Register Storage Configuration, Page Table Address, and I / O
There are several control registers used to determine the base address. These registers are I / O read (IO
R) instruction and I / O write (IOW) instruction. Their construction and format are shown in FIGS. 9 to 18. These registers are only accessible after entering the watch program state.

I/Oベースアドレスレジスタは、I/Oアドレスのどの64K
ブロツクが変換システムに割り当てられているのかを指
定する。I/Oベースアドレスは、I/Oベースアドレスレジ
スタに含まれる値に65536(X‘10000')を乗じたもの
に等しい。I/Oベースアドレスレジスタの形式を第9図
に示す。
The I / O base address register is the 64K of the I / O address.
Specifies whether the block is assigned to the conversion system. The I / O base address is equal to the value contained in the I / O base address register multiplied by 65536 (X'10000 '). The format of the I / O base address register is shown in FIG.

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

ビツト0:23 予約されている。Bit 0:23 Reserved.

ビツト24:31 I/Oベースアドレス。この8ビツトの値は、I/Oアドレス
のどの64Kバイトのブロツクが変換システムに割り当て
られているかを定義する。すなわち、これら8ビツトは
変換システムによつて認識されたI/Oアドレスの最上位
の8ビツトである。“RAM指定レジスタ”は、RAMサイズ
と、RAM開始アドレスと、リフレツシユシートと、パリ
テイチエツクまたはエラー訂正符号(ECC)が使用され
ているか否かとを規定する。ECCおよびパリテイチエツ
ク手法は本発明の一部を形成せず、またその内容も周知
であるから、これ以上説明しない。RAM指定レジスタの
形式は第10図に示す。
Bit 24:31 I / O base address. This 8-bit value defines which 64-Kbyte block of the I / O address is assigned to the translation system. That is, these 8 bits are the highest 8 bits of the I / O address recognized by the conversion system. The "RAM specification register" defines the RAM size, RAM start address, refresh sheet, and whether parity check or error correction code (ECC) is used. The ECC and parity check techniques do not form part of the present invention and their content is well known and will not be described further. The format of the RAM specification register is shown in Fig. 10.

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

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

ビツト10:18 リフレツシユレート。この9ビツトの数量がリフレツシ
ユサイクルレートを決定する。リフレツシユサイクルレ
ートはビツト[10:18]に含まれる値にCPUクロツクの周
波数を乗じたものに等しい。ゼロのリフレツシユレート
はリフレツシユを威勢する。リフレツシユレートの値
は、所望のメモリリフレツシユレートをCPUクロツクの
周波数で除すことによつて計算することができる。例え
ば、2ミリ秒ごとに128行のリフレツシユを要するダイ
ナミツクメモリを備えたシステムでは、行あたりのリフ
レツシユ間隔は128/2ミリ秒すなわち15.6マイクロ秒で
ある。CPUクロツクが200ナノ秒の場合は、所望のリフレ
ツシユレート値は15.6マイクロ秒/200ナノ秒、すなわ
ち、78(X‘04E')である。これはX‘04E'をリフレツ
シユレートにロードすることを要求する。
Bit 10:18 Refresh refresh. The quantity of 9 bits 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. A refresh rate of zero intensifies the refresh rate. The value of the refresh rate 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 of refresh every 2 milliseconds, the refresh interval per row is 128/2 milliseconds or 15.6 microseconds. If the CPU clock is 200 nanoseconds, the desired refresh rate value is 15.6 microseconds / 200 nanoseconds, or 78 (X'04E '). This requires loading X'04E 'into the refresh rate.

リフレツシユレートはPORシーケンスの一部としてX‘0
1A'に初期設定される。
The refresh rate is X'0 as part of the POR sequence.
Initially set to 1A '.

ビツト20:27 RAM開始アドレス。この8ビツトフイールドが変換およ
び非変換アクセスのためのRAMの開始アドレスを規定す
る。変換されたアクセスの場合は、変換されたアドレス
がRAM開始アドレスおよびRAMサイズで指定される範囲内
に入っていればRAMが選択される。変換されないアクセ
スの場合は、RAMサイズと共にRAM開始アドレスを用い
て、アドレスがこの記憶制御装置のために指定されたア
ドレス範囲内に入っているかどうか判定する。RAMの開
始アドレスはRAMサイズの2進倍数として定義され、表
5に示すビツトとRAMサイズで指定される値とを乗じる
ことによつて計算される。
Bit 20:27 RAM start address. The 8 bit field defines the starting address of the RAM for translated and untranslated accesses. In the case of translated access, RAM is selected if the translated address is within the range specified by the RAM start address and RAM size. For untranslated accesses, the RAM start address along with the RAM size is used to determine if the address is within the address range specified for this storage controller. The start address of the RAM is defined as a binary multiple of the RAM size, and is calculated by multiplying the bit shown in Table 5 by the value specified by the RAM size.

例えば、256Kの記憶装置サイズが指定されれば、64個の
256Kバイト境界の1つがビツト[20:25]によりRAM開始
アドレスとして指定される。もしビツト[20:25]が011
101ならば、RAM開始アドレスはX‘00740000'である。1
MバイトのRAMサイズが指定されれば、16個の1Mバイト境
界の1つがビツト[20:23]によりRAM開始アドレスとし
て指定される。もしビツト[20:23]が1001ならば、RAM
開始アドレスはX‘00900000'である。
For example, if a storage size of 256K is specified, 64
One of the 256 Kbyte boundaries is specified as a RAM start address by bit [20:25]. If Bit [20:25] is 011
If it is 101, the RAM start address is X'00740000 '. 1
If the Mbyte RAM size is designated, one of 16 1Mbyte boundaries is designated as a RAM start address by bit [20:23]. If Bit [20:23] is 1001, RAM
The start address is X'00900000 '.

ビツト28:31 RAMサイズ。この4ビツトフイールドは本変換システム
に接続されたRAMのサイズを規定する。RAMサイズは以下
の表6に示すように64Kバイトから16Mバイトまでの間で
選択できる。
Bit 28:31 RAM size. This 4 bit field defines the size of the RAM connected to the conversion system. The RAM size can be selected from 64 Kbytes to 16 Mbytes as shown in Table 6 below.

表 6 ビツト28:31 RAMサイズ 0000 RAMなし 0001 ないし 0111 64K 1000 128K 1001 256K 1010 512K 1011 1M 1100 2M 1101 4M 1110 8M 1111 16M ROS指定レジスタ ROS指定レジスタは、ROS開始アドレス、ROSサイズ、お
よびROSによつてパリテイが与えられているかどうか、
ということを規定する。ROSは変換モードおよび非変換
モードのいずれにおいてもアクセス可能である。ROS指
定レジスタの形式を第11図に示す。
Table 6 Bits 28:31 RAM size 0000 No RAM 0001 to 0111 64K 1000 128K 1001 256K 1010 512K 1011 1M 1100 2M 1101 4M 1110 8M 1111 16M ROS designation register The ROS designation register is based on the ROS start address, ROS size, and ROS. Whether or not the parity is given,
Stipulate that. ROS is accessible in both translated and untranslated modes. Figure 11 shows the format of the ROS specification register.

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

ビツト0:19 予約されている。Bit 0:19 Reserved.

ビツト20:27 ROS開始アドレス。この8ビツトフイールドは、変換さ
れたアクセス及び変換されないアクセスの両方の場合に
おけるROSの開始アドレスを規定する。変換されたアク
セスの場合は、変換されたアドレスがROS開始アドレス
およびROSサイズで指定される範囲内に入つていればROS
が選択される。変換されないアクセスの場合は、ROSサ
イズと共にROS開始アドレスを用いて、アドレスがこの
記憶制御装置の為に指定されたアドレス範囲内に入つて
いるかどうかを判定する。ROSの開始アドレスはROSサイ
ズの2進倍数として定義され、表7に示すビツトとROS
サイズで指定される値とを乗じる事によつて計算され
る。
Bit 20:27 ROS start address. This 8-bit field defines the starting address of the ROS for both translated and untranslated accesses. For translated access, ROS if the translated address is within the range specified by the ROS start address and ROS size.
Is selected. For untranslated accesses, the ROS start address along with the ROS size is used to determine if the address falls within the address range specified for this storage controller. The start address of ROS is defined as a binary multiple of the ROS size.
It is calculated by multiplying by the value specified by the size.

例えば、64KのROSサイズが指定されれば、256個の64Kバ
イト境界の1つがビツト[20:27]によりROS開始アドレ
スとして指定される。もしビツト[20:27]が110010な
らば、ROS開始アドレスはX‘00C80000'である。
For example, if a ROS size of 64K is specified, one of 256 64K byte boundaries is specified as a ROS start address by bit [20:27]. If bits [20:27] are 110010, the ROS start address is X'00C80000 '.

ビツト28:31 ROSサイズ。この4ビツトフイールドは変換システムに
接続されたROSのサイズを規定する。ROSサイズは以下の
表8に示すように64Kバイトから64Mバイトまでの間で選
択できる。ROSが使用されない場合は、ビツト[28:31]
はゼロにセツトされる。
Bit 28:31 ROS size. This 4 bit field defines the size of the ROS connected to the conversion system. The ROS size can be selected from 64 Kbytes to 64 Mbytes as shown in Table 8 below. Bits [28:31] if ROS is not used
Is set to zero.

表 8 ビツト28:31 ROSサイズ 0000 ROSなし 0001 ないし 0111 64K 1000 128K 1001 256K 1010 512K 1011 1M 1100 2M 1101 4M 1110 8M 1111 16M 変換制御レジスタ 変換制御レジスタ(TCR)は、ハードウエアによるTLBの
再ロードが成功した時に割込みが発生されるかどうか、
参照および変更アレイにパリテイが使用されているかど
うか、各ページのサイズ(2Kバイトまたは4Kバイト)、
および主記憶ページテーブル(HATとIPTを組み合せたも
の)の開始アドレス、を指定する。変換制御レジスタの
形式を第12図に示す。
Table 8 Bits 28:31 ROS Size 0000 ROS None 0001 to 0111 64K 1000 128K 1001 256K 1010 512K 1011 1M 1100 2M 1101 4M 1110 8M 1111 16M Conversion Control Register The Conversion Control Register (TCR) is a TLB reload by hardware. Whether an interrupt is generated on success,
Whether parity is used for the reference and change arrays, the size of each page (2 Kbytes or 4 Kbytes),
And the starting address of the main memory page table (a combination of HAT and IPT). The format of the conversion control register is shown in FIG.

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

ビツト0:20 予約されている。Bit 0:20 Reserved.

ビツト21 TLB再ロード成功時の割込み許可。このビツトを用いて
ハードウエアによるTLBの再ロードが成功したというこ
とが報告される。1にセツトされていれば、ハードウエ
アによるTLBの再ロードが成功したことによつて、例外
回答が生成されSERのTLB再ロードビツト(ビツト22)が
1にセツトされる。このビツトがゼロにセツトされてい
れば、ハードウエアによるTLBエントリの再ロードの成
功は報告されない。ソフトウエアによるTLBの性能評価
にこの機能を用いることができる。
Bit 21 TLB Interrupt enable when reload is successful. This bit is used to report successful TLB reload by hardware. If it is set to 1, the TLB reload bit (bit 22) of the SER is set to 1 due to the successful reloading of the TLB by the hardware. If this bit is set to zero, no successful hardware reload of the TLB entry is reported. This function can be used for software TLB performance evaluation.

ビツト22 参照および変更アレイのパリテイ。このビツトを用い
て、外部の参照および変更アレイにパリテイが使用され
るかどうかを示す。このビツトが1にセツトされれば、
参照および変更アレイにパリテイを使用する。もしこの
ビツトがゼロにセツトされれば、参照および変更アレイ
にはパリテイを使用しない。
Bit 22 Reference and Change Array Parity. This bit is used to indicate whether parity is used for external reference and modification arrays. If this bit is set to 1,
Use parity for reference and change arrays. If this bit is set to zero, no parity is used for the reference and change arrays.

ビツト23 ページサイズ。2Kバイトページには値0を用い、4Kバイ
トページには値1を用いる。
Bit 23 page size. The value 0 is used for 2 Kbyte pages and the value 1 is used for 4 Kbyte pages.

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

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

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

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

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

ビツト0:21 予約されている。Bit 0:21 Reserved.

ビツト22 TLB再ロード成功。このビツトは、TLB再ロード成功によ
る割込みが許可されているときに再ロードが成功する
と、1にセツトされる。
Bit 22 TLB reload successful. This bit is set to 1 if the reload was successful while interrupts due to TLB reload success were enabled.

ビツト23 参照および変更アレイのパリテイエラー。参照および変
更アレイでパリテイエラーが検知された場合にこのビツ
トは1にセツトされる。
Bit 23 Reference and change array parity error. This bit is set to 1 if a parity error is detected in the reference and change array.

ビツト24 ROS書込み試行。ROSアドレス空間に含まれるアドレスへ
の書込みが試行された場合にこのビツトは1にセツトさ
れる。
Bit 24 ROS writing trial. This bit is set to 1 when an attempt is made to write to an address contained in the ROS address space.

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

ビツト26 外部装置例外。ROMP以外のRSC上の装置によつて例外が
生じた場合にこのビツトは1にセツトされる。
Bit 26 External device exception. This bit is set to 1 if an exception was caused by a device on the RSC other than ROMP.

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

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

ビツト28 ページ不在。どのTLBエントリおよび主記憶ページテー
ブルエントリも仮想アドレスに対する変換を含んでいな
いために変換が終了した場合に、このビツトは1にセツ
トされる。
Bit 28 pages absent. This bit is set to 1 when the translation is complete because none of the TLB entries and main memory page table entries contain translations for the virtual address.

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

ビツト30 保護。非特殊セグメントのための記憶装置保護処理で記
憶装置アクセスが禁止されていることがわかつたために
変換が終了した場合に、このビツトは1にセツトされ
る。
Bit 30 protection. This bit is set to 1 when the conversion is complete because the storage protection process for the non-special segment knows that storage access is prohibited.

ビツト31 データ。特殊セグメントのためのトランザクシヨンID/
ロツクビツト処理で、記憶装置アクセスが禁止されてい
ることがわかつたために変換が終了した場合に、このビ
ツトは1にセツトされる。
Bit 31 data. Transaction ID / for special segment
This bit is set to 1 when the conversion is completed because the lock bit process knows that the storage device access is prohibited.

記憶装置例外アドレスレジスタ(SEAR)は、CPUからの
データロードおよび記憶要求に対して、記憶装置例外レ
ジスタ(SER)により報告された例外を起こした有機記
憶装置アドレスを含む。例外がROMP命令取出しまたは外
部装置によつて生じた場合は、SEARはロードされない。
記憶装置例外アドレスレジスタの形式は第14図に示す。
The memory exception address register (SEAR) contains the organic memory address that caused the exception reported by the memory exception register (SER) in response to a data load and memory request from the CPU. SEAR is not loaded if the exception was caused by a ROMP instruction fetch or an external device.
The format of the memory exception address register is shown in FIG.

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

ビツト0:31 記憶装置例外アドレス。SERによつて報告された例外を
生じた32ビツトの有効記憶装置アドレス。多重エラーの
場合(SERのビツト27が1にセツトされる)、SEARに含
まれるアドレスは、最も古い例外のアドレスである。
Bit 0:31 Storage exception address. The 32-bit effective storage address that caused the exception reported by the SER. In case of multiple errors (SER bit 27 is set to 1), the address contained in SEAR 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 or not the virtual address is currently mapped in the real memory, and when the virtual address is mapped, determines the corresponding real address. The real address calculation function will be described later. The format of the converted real address register is shown in FIG.

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

ビツト0 無効ビツト。このビツトは変換に失敗した場合は1にセ
ツトされ、変換に成功した場合には0にセツトされる。
Bit 0 Invalid bit. This bit is set to 1 if the conversion was unsuccessful, and to 0 if the conversion was successful.

ビツト1:7 ゼロ。この7ビツトフイールドは常にゼロである。Bit 1: 7 Zero. This 7-bit field is always zero.

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

トランザクシヨン識別レジスタ(TID)は現時点で特殊
セグメントの“所有者”として定義されているタスクの
8ビツトの識別子を含む。選択されたセグメントレジス
タ内の特殊ビツトによつて或るセグメントが特殊セグメ
ントとして定義されると、6.2節に示すようなロツクビ
ツト処理を記憶装置アクセスに適用する。ロツクビツト
処理はTIDに含まれる値を用い、それとTLB内のTIDエン
トリとを比較して、記憶装置アクセスが許されるかどう
かを判定する。トランザクシヨン識別レジスタの形式を
第16図に示す。
The transaction identification register (TID) contains the 8-bit identifier of the task currently defined as the "owner" of the special segment. When a segment is defined as a special segment by the special bit in the selected segment register, the lock bit processing as shown in Section 6.2 is applied to the storage device access. The lock bit process uses the value contained in the TID and compares it with the TID entry in the TLB to determine if storage access is allowed. The format of the transaction identification register is shown in FIG.

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

ビツト0:23 予約されている。Bit 0:23 Reserved.

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

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

ビツト18:29 セグメント識別子。この12ビツトの値は、4096個の256M
バイト仮想記憶セグメントのうちの1つを指定する。
Bit 18:29 The segment identifier. This 12-bit value is 4096 256M
Specifies one of the byte virtual storage segments.

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

ビツト31 キービツト。このビツトは、所与のセグメント内でのア
クセスについて現在実行中のタスクのアクセス権限のレ
ベルを決定する。記憶装置アクセス制御のためにこのビ
ツトを使用することは6.2節に示す。
Bit 31 Key bit. This bit determines the level of access authority of the currently executing task for access within a given segment. The use of this bit for storage access control is shown in Section 6.2.

開示された実施例においては、2つのTLBの各々が16個
のエントリを有する。これらのエントリは仮想アドレス
から実アドレスへの変換に必要な変換情報や制御情報を
提供する。さらに、各TLBエントリは記憶装置アクセス
制御に使用される付加的な情報も含む。TLBの内容はハ
ードウエアによつて主記憶ページテーブルから自動的の
更新されるので、TLBエントリ書込みの後に読取りが続
く場合、必ずしも書き込まれたのと同じデータを読み取
る必要はない。さらに、TLBエントリの変更によつて実
アドレスと仮想アドレスとの対応がなくなるであろうか
ら、TLBエントリの変更は予測不能な結果を引き起こす
場合もある。TLBの内容のアクセスは、診断の目的にだ
け行われ、非変換モードにおいてのみなされるべきであ
る。他の全ての変換アクセスを禁止して非変換モードで
TLBエントリへ書き込むと、その後に読取りが続き、書
き込まれたのと同じデータを読み取ることになるであろ
う。
In the disclosed embodiment, each of the two TLBs has 16 entries. These entries provide the translation and control information needed to translate a virtual address to a real address. In addition, each TLB entry also contains additional information used for storage access control. Since the TLB contents are automatically updated by the hardware from the main memory page table, if a TLB entry write is followed by a read, it is not necessary to read the same data that was written. In addition, changes in TLB entries may cause unpredictable results, since changes in TLB entries will result in a lack of correspondence between real and virtual addresses. Accessing the contents of the TLB should only be done for diagnostic purposes and should be considered in non-translation mode. In non-conversion mode, prohibiting all other conversion access
Writing to a TLB entry would be followed by a read, reading 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 (excluding reserved bit) variable, including 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. It consists of an ID and 16 lock bits. Each TLB entry is divided into three individually addressable fields.
Each type of TLB field is described below.

“TLBアドレスタグ”フイールドは、2Kページの場合、
セグメント識別子||ページインデツクスの上位25ビツト
を含み、4Kページの場合、その上位24ビツトを含む。各
TLBエントリのアドレスタグフイールドの形式を第18.1
図に示す。
The "TLB address tag" field is for 2K pages,
Segment identifier || Includes the top 25 bits of the page index, and in the case of 4K pages, includes the top 24 bits. each
TLB entry address tag field format 18.1
Shown in the figure.

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

ビツト0:2 予約されている。Bit 0: 2 Reserved.

ビツト3:27 アドレスタグ。このフイールドは、2Kページの場合、セ
グメント識別子||仮想ページインデツクスの上位25ビツ
トを含み、4Kページの場合、その上位24ビツトを含む。
4Kページの場合、アドレスタグはビツト[3:26]に含ま
れる。
Bit 3:27 Address tag. This field contains the top 25 bits of the segment identifier || virtual page index for 2K pages and its top 24 bits for 4K pages.
For 4K pages, the address tag is included in bits [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 also contains a valid bit indicating that the given TLB entry contains valid information, and a key bit for the access rights required for the given page. The format of this field for each TLB entry is shown in Figure 18.2.

実ページ番号、有効、およびキービツトフイールドの内
容は以下のように定義される。
The real page number, valid, and key field contents are defined as follows.

ビツト0:15 予約されている。Bit 0:15 Reserved.

ビツト16:28 実ページ番号。この13ビツトフイールドは8192個の実ペ
ージのうちの1つを指定する。8192個よりも少ないペー
ジを使用する場合は、それらのページをアドレス指定す
るのに必要な下位ビツトだけが使用される。
Bit 16:28 The real page number. This 13-bit field specifies one of 8192 real pages. If you use less than 8192 pages, only the low-order bits needed to address those pages are used.

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

ビツト30:31 キービツト。この2ビツトフイールドは各ページに対す
るアクセス権限を定義する。キービツトの使用に関して
は6.1節に示す。
Bit 30:31 Key bit. These two bit fields define the access rights for each page. The use of key bits is shown in Section 6.1.

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

TLB書込みビツト、トランザクシヨンID、およびロツク
ビツトフイールドの各々の内容は以下のように定義され
る。
The contents of the TLB write bit, transaction ID, and lock bit field are defined as follows.

ビツト0:6 予約されている。Bit 0: 6 Reserved.

ビツト7 書込みビツト。このビツトは、特殊セグメントの場合に
各ページに関連するアクセス権限を定義する。ロツクビ
ツト処理におけるこのビツトの使用については6.2節に
示す。
Bit 7 Write bit. This bit defines the access rights associated with each page in the case of special segments. The use of this bit in lock bit processing is described in Section 6.2.

ビツト8:14 トランザクシヨン識別子。この8ビツトフイールドは特
殊セグメント内にある選択されたページを現に所有する
タスクを定義する。ロツクビツト処理におけるこれらの
ビツトの使用については前に説明した。
Bit 8:14 Transaction identifier. This 8-bit field defines the task that currently owns the selected page in the special segment. The use of these bits in the lock bit process has been described previously.

ビツト15:31 ロツクビツト。この16ビツトフイールドは、特殊セグメ
ントの場合に2Kまたは4Kのページ内の各“ライン”に対
するアクセス権限を定義する。1ラインは2Kページの場
合は128バイト、4Kページの場合は256バイトである。ロ
ツクビツト処理におけるこれらのビツトの使用について
は6.2節で説明する。
Bit 15:31 Rock bit. This 16-bit field defines the access rights for each "line" in a 2K or 4K page in the case of a special segment. One line is 128 bytes for 2K pages and 256 bytes for 4K pages. The use of these bits in lock bit processing is described in Section 6.2.

本変換機構は、頻繁に要求される変換機能をハードウエ
アで支援する。このハードウエアにより、TLBエントリ
を選択的に無効化すること、および、IBMシステム/370
フアミリのコンピユータにおけるものと同様な“実アド
レスロード”機能を遂行することができる。
This conversion mechanism supports frequently required conversion functions by hardware. This hardware selectively disables TLB entries and allows IBM System / 370
A "real address load" function similar to that in a family computer can be performed.

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

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

“全TLB無効化”機能によつてTLBエントリが全て無効化
される。この機能は、後続の変換に備えて、主記憶装置
にあるページテーブルでTLBの内容を強制的に更新す
る。
All TLB entries are invalidated by the "Invalidate all TLB" function. This function forces the page table in main memory to update the contents of the TLB in preparation for subsequent conversions.

この機能に関連するアドレスへのI/O書込みが、TLBエン
トリを全て無効化する。I/O書込み命令で転送されるデ
ータは使用されない。
An I / O write to the address associated with this function invalidates all TLB entries. The data transferred by the I / O write command is not used.

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

この機能に関連するアドレスへのI/O書込みが、指定セ
グメント識別子を持つたTLBエントリを無効化する。I/O
書込み命令で転送されるデータのビツト[0:3]がセグ
メント識別子を選択するのに用いられる。このセグメン
ト識別子を含むTLBエントリは全て無効化される。無効
化されたセグメント内の有効アドレスを伴う後続の変換
によつて、TLBの内容は主記憶装置にあるページテーブ
ルから更新される。
An I / O write to the address associated with this function invalidates the TLB entry with the specified segment identifier. I / O
The bits [0: 3] of the data transferred by the write command are used to select the segment identifier. All TLB entries containing this segment identifier are invalidated. The contents of the TLB are updated from the page table in main memory by a subsequent translation with the effective address in the invalidated segment.

“指定有効アドレスに対するTLBエントリの無効化”機
能によつて、指定有効アドレスを備えたTLBエントリが
無効化される。
The "Invalidate TLB entry for specified effective address" function invalidates the TLB entry having the specified effective address.

指定有効アドレスを含むページ内の有効アドレスを伴う
後続の変換によつて、TLBの内容は種記憶装置にあるペ
ージテーブルから更新される。
The contents of the TLB are updated from the page table in seed storage by subsequent translation with the effective address within the page containing the specified effective address.

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

“実アドレス計算”機能はシステムソフトウエアによつ
て使用され、所与の仮想アドレスが現時点で実記憶に写
像されているかどうか、および、もし写像されていれば
どの実アドレスがその仮想アドレスに割り当てられてい
るのかを決定する。
The "real address calculation" function is used by system software to determine if a given virtual address is currently mapped into real memory and, if so, which real address is assigned to that virtual address. Determine what is being done.

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

実アドレス計算機能は、これに関連するアドレスへのI/
O所込みによつて呼び出される。I/O所込みの命令で転送
されるデータのビツト[0:31]が有効アドレスとして使
用される。この有効アドレスは、通常の交換プロセスの
ために使用されるが、変換結果は、被変換アドレスレジ
スタ(第15図)(TRAR)にロードされ、記憶装置のアク
セスには使用されない。TRARは変換が成功したがどうか
を示すビツトを含み、変換に成功していれば対応する実
記憶アドレスも含む。通常の記憶装置保護処理およびロ
ツクビツト処理は変換成功により遂行される。実アドレ
ス計算機能の結果はTRARのI/O読取りによつて獲得され
る。
The real address calculation function uses the I /
It is called by O inclusion. Bits [0:31] of the data transferred by the instruction including I / O are used as the effective address. This effective address is used for the normal exchange process, but the translation result is loaded into the translated address register (FIG. 15) (TRAR) and not used for storage access. TRAR contains a bit indicating whether the conversion was successful and, if successful, the corresponding real memory address. Normal storage protection and lockbit processing is performed upon successful conversion. The result of the real address calculator is obtained by the TRAR I / O read.

I/Oアドレスの64Kバイトブロツクが変換システムに割り
当てられている。64KバイトのブロツクはI/Oベースアド
レスレジスタで指定されるI/Oアドレスの所から始ま
る。I/Oベースアドレスは、64K境界上にあるように定義
される。表9に列挙するI/Oアドレスの割当ては指定さ
れた64Kバイトブロツク内の変位である。絶対I/Oアドレ
スはI/Oベースアドレスとこの変位とを加えたものに等
しい。
A 64-Kbyte block of I / O addresses is assigned to the translation system. The 64-Kbyte block starts at the I / O address specified by the I / O base address register. The I / O base address is defined to be on a 64K boundary. The I / O address assignments listed in Table 9 are the displacements within the specified 64K byte block. The absolute I / O address is equal to the I / O base address plus this displacement.

むすび 発明の好ましい実施例に関する以上の説明から、両方の
TLBとページフレームテーブルとにロツクビツトを用意
しかつ通常のセグメント化方式を利用する本発明の意図
および範囲から逸脱することなく、システムのハードウ
エアおよびソフトウエアの形式およひ詳細において様々
な変更が容易できることは当王社には明白であろう。明
らかに、こうした変更は、記憶装置サイズ、レジスタの
サイズおよび制御フイールドの定義、アドレスサイズ、
ページフレームテーブルのアクセス方法および構成、な
らびにハツシユアドレス方法における変更を含むが、そ
れらに限定されるものではない。
Conclusion From the above description of the preferred embodiment of the invention, both
Various changes in system hardware and software format and details may be made without departing from the spirit and scope of the invention to provide lock bits for the TLB and page frame table and utilize conventional segmentation schemes. It will be obvious to the king that it can be done easily. Obviously, these changes include storage size, register size and control field definitions, address size,
It includes, but is not limited to, changes in page frame table access methods and configurations, and hash address methods.

E.発明の効果 以上説明したように、本発明によれば、各セグメントレ
ジスタに設けられた特殊ビツトと変換索引緩衝機構及び
ページフレームテーブルに設けられた各ラインについて
のロツクビツトとの協働的作用によつてよりきめ細かな
記憶保護が可能となる。これは、特に、システム内のジ
ヤーナリング制御に有用である。
E. Effect of the Invention As described above, according to the present invention, the cooperative operation of the special bit provided in each segment register and the lock bit for each line provided in the conversion index buffer mechanism and the page frame table is performed. This enables more detailed memory protection. This is especially useful for controlling journaling within the system.

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

第1図は本発明のアドレス変換およびアクセス制御シス
テムの主要部の機能ブロツク図である。 第2図は本アドレス変換機構において使用されるセグメ
ントレジスタの形式を表わす図である。 第3図は有効アドレスから仮想アドレスへの変換を示す
機能ブロツク図とデータ流れ図の組合せである。 第4図は有効アドレスから実アドレスへのアドレス変換
機構の全体を示すブロツク図とデータ流れ図との組合せ
である。 第5図は本発明のアドレス変換機構全体で使用される変
換索引緩衝機構の構成とその内容を示す図である。 第6図は組合されたハツシユアンカーテーブル/逆ペー
ジテーブルを概念的に示す図と、所与の仮想アドレスに
対してTLBエントリが見い出だされない場合のこうした
テーブルの動作を示すデータ流れ図である。 第7図は記憶装置内に記憶された実際のハツシユアンカ
ーテーブル/逆ページテーブルの構成および内容を図式
的に示す図である。 第8図は各I/Oアドレスと共に利用される参照および変
更ビツトの形式を示す。 第9図はI/Oベースアドレスレジスタの構成を示す図で
ある。 第10図はRAM指定レジスタの形式を示す図である。 第11図はROS指定レジスタの形式を示す図である。 第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 part 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 showing effective address to virtual address translation. FIG. 4 is a combination of a block diagram and a data flow diagram showing the whole address translation mechanism from an effective address to a real address. 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. Figure 6 is a conceptual diagram of a combined hash anchor table / reverse page table and a data flow diagram showing the operation of such tables when no TLB entry is found for a given virtual address. is there. FIG. 7 is a diagram schematically showing the structure and contents of the 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 I / O address. FIG. 9 is a diagram showing the configuration of the I / O 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 ROS 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 converted real address register. FIG. 16 is a diagram showing the format of the transaction identification register. FIG. 17 is a diagram showing the contents of one of 16 segment registers. FIGS. 18.1, 18.2, and 18.3 diagrammatically show the three field types utilized for each page reference in each of the translation lookaside buffers. Note that in the disclosed embodiment, there are two independent translation index buffers, and there are 16 real page references stored in each of the buffers at one time.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 マージン、マーク・エフ アメリカ合衆国ニユーヨーク州10549、マ ウント・キスコ、クリフサイド・レーン・ アール・アール4番地 (72)発明者 ラデイン、ジヨージ アメリカ合衆国ニユーヨーク州10968、ピ アモント、フランクリン26番地 (56)参考文献 特開 昭53−34429(JP,A) 特開 昭56−153576(JP,A) 特開 昭54−105930(JP,A) ─────────────────────────────────────────────────── ─── Continuation of front page (72) Inventor Margin, Mark F, New York, USA 10549, Mount Kisco, Cliffside Lane Earl Arr. 4 (72) Inventor Radein, George, New York 10968, USA Pearmont, Franklin No. 26 (56) Reference JP-A-53-34429 (JP, A) JP-A-56-153576 (JP, A) JP-A-54-105930 (JP, A)

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】中央処理装置によって供給された仮想アド
レスの変換索引緩衝機構およびページフレームテーブル
を用いて実アドレスに変換するような階層記憶システム
において、 上記仮想アドレスのうちのセグメント識別フィールドよ
りもビット数の多いセグメント識別子および該セグメン
ト識別子に関連する特殊ビットを記憶するセグメントレ
ジスタを複数個設け、さらに上記変換索引鑑賞機構およ
び上記ページフレームテーブルの双方にページを構成す
る各ラインについてロックビットを設け、上記中央処理
装置によって供給された仮想アドレスのうちのセグメン
ト識別フィールドによって上記複数個のセグメントレジ
スタをアクセスし、アドレス指定されたセグメントレジ
スタに記憶されているセグメント識別子と上記仮想アド
レスのページオフセットフィールドおよびバイトオフセ
ットフィールドとを連結して上記仮想アドレスよりもビ
ット数の多い第二の仮想アドレスを生成し、該第二の仮
想アドレスを実アドレスに変換するとともに、上記特殊
ビットが所定の値に設定されている場合には上記ロック
ビットに応じて実ページのラインごとにロッキングやジ
ャーナリングを行うようにしたことを特徴とするアドレ
ス変換方法。
1. A hierarchical storage system for converting a virtual address supplied by a central processing unit into a real address using a conversion index buffer and a page frame table, wherein bits of the virtual address are larger than a segment identification field. A plurality of segment registers for storing a large number of segment identifiers and special bits associated with the segment identifiers are provided, and a lock bit is provided for each line forming a page in both the conversion index viewing mechanism and the page frame table, The segment identification field of the virtual address supplied by the central processing unit is used to access the plurality of segment registers, and the segment identifier and the virtual address stored in the addressed segment register are stored. A page offset field and a byte offset field are concatenated to generate a second virtual address having a larger number of bits than the virtual address, the second virtual address is converted to a real address, and the special bit has a predetermined value. When set to a value, the address translation method is characterized in that locking or journaling is performed for each line of the real page 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 JPH03265049A (en) 1991-11-26
JPH0679294B2 true 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)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5844263B2 (en) * 1976-09-10 1983-10-01 株式会社東芝 memory control circuit
JPS54105930A (en) * 1978-02-07 1979-08-20 Nec Corp Main memory control unit
US4356549A (en) * 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus

Also Published As

Publication number Publication date
JPH03265049A (en) 1991-11-26

Similar Documents

Publication Publication Date Title
US4680700A (en) Virtual memory address translation mechanism with combined hash address table and inverted page table
US4638426A (en) Virtual memory address translation mechanism with controlled data persistence
US6145064A (en) Method of efficiently updating hashed page tables
US5493660A (en) Software assisted hardware TLB miss handler
JP4268332B2 (en) Method and apparatus for calculating page table index from virtual address
JP3278748B2 (en) Method and apparatus for saving memory space
US4985829A (en) Cache hierarchy design for use in a memory management unit
Houdek et al. IBM System/38 support for capability-based addressing
US5526504A (en) Variable page size translation lookaside buffer
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
EP1934753B1 (en) Tlb lock indicator
JP5373173B2 (en) Address translation method and apparatus
US6304944B1 (en) Mechanism for storing system level attributes in a translation lookaside buffer
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US20010020264A1 (en) Speculative address translation for processor using segmentation and optional paging
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US5060137A (en) Explicit instructions for control of translation lookaside buffers
US6073226A (en) System and method for minimizing page tables in virtual memory systems
JPH0628262A (en) Look-aside buffer and method for high-speed translation of virtual address for physical address
EP0212129B1 (en) Method of updating information in a translation lookaside buffer
EP0173909B1 (en) Look-aside buffer least recently used marker controller
EP0170525B1 (en) Cache hierarchy design for use in a memory management unit
JPH0679294B2 (en) Address conversion method
CA1220286A (en) Virtual memory address translation mechanism with combined hash address table and inverted page table