JPH0351933A - Memory addressing system - Google Patents

Memory addressing system

Info

Publication number
JPH0351933A
JPH0351933A JP1187166A JP18716689A JPH0351933A JP H0351933 A JPH0351933 A JP H0351933A JP 1187166 A JP1187166 A JP 1187166A JP 18716689 A JP18716689 A JP 18716689A JP H0351933 A JPH0351933 A JP H0351933A
Authority
JP
Japan
Prior art keywords
address
bits
entries
exclusive
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1187166A
Other languages
Japanese (ja)
Inventor
Shoichi Fukagawa
深川 正一
Michitaka Yamamoto
山本 通敬
Takahiro Onizuka
鬼塚 隆浩
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1187166A priority Critical patent/JPH0351933A/en
Priority to DE4019961A priority patent/DE4019961C2/en
Publication of JPH0351933A publication Critical patent/JPH0351933A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To attain the dynamic use of the given full address width and to effectively use all entries by securing an exclusive OR among the bits of all factors in the ascending order or in the reversed order. CONSTITUTION:In an addressing state of an address conversion index buffer mechanism TLB 1, the 8 bits (12th - 19th bits) of a virtual space identifier STO register 3 are inverted vertically by a bit train inverting circuit 41 of an address generating circuit 4. Then an exclusive OR circuit 42 secures an exclusive OR among 8 bits of a page index, i.e., the 12th - 19th bits of a logical address register 2. This result of the exclusive OR is used as the reference address of the TLB 1. As a result, the number of entries are dynamically assigned in response to the fluctuation of each factor to ensure the effective use of all entries.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置のメモリ・アドレッシング方式に
係り、特に多重仮想空間方式をとる情報処理装置におけ
るアドレス変換索引緩衝機構などに好適なメモリ・アド
レッシング方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a memory addressing system for information processing equipment, and in particular to a memory addressing system suitable for an address conversion index buffer mechanism in an information processing equipment that employs a multiple virtual space system. Concerning addressing schemes.

〔従来の技術〕[Conventional technology]

一般に仮想記憶方式の情報処理装置においては、アドレ
ス変換の高速化のため.過去に変換した仮想アドレスと
実アドレスの対応表を保持したアドレス変換索引緩衝機
構を持っているが、多重仮想仝間では、単一仮想仝間時
の論理アドレスの他に仮想空間識別子を考慮する必要が
ある.多重仮想仝間時の仮想仝間識別子を考慮しない場
合、アドレス索引緩衝機構のアドレスは論理アドレスに
より生成される.この場合、多重仮想空間を扱う時、論
理アドレスが競合するケースでエントリの上書きが行わ
れることになる.論理アドレスは低位アドレスから割り
付けられる傾向があり、各プログラム共この傾向をもつ
.すなわち、各プログラム共、アドレス変換索引緩衝機
構の低位側のアドレスにエントリを登録しようとするた
め、多重仮想空間時ではプログラムがタスクスイッチす
る度ごとにそれまでのタスクが使用していたエントリの
アドレスが競合し、新たなタスク用のエントリが再登録
されてしまう.この結果、以前のタスクが再びディスバ
ッチされた時には、以前登録した内容は他のタスクによ
り書き換えられており、再びアドレス変換をわざわざ行
い、アドレス変換索引緩衝機構に登録しなければならな
いので効率的でないという問題がある。
Generally, in information processing devices using virtual memory, this is used to speed up address translation. It has an address translation index buffer that holds a correspondence table between virtual addresses and real addresses that have been translated in the past, but when using multiple virtual spaces, virtual space identifiers are considered in addition to logical addresses when using a single virtual space. There is a need. When virtual space identifiers are not considered in the case of multiple virtual spaces, addresses in the address index buffer are generated using logical addresses. In this case, when dealing with multiple virtual spaces, entries will be overwritten in the case of logical address conflicts. Logical addresses tend to be allocated starting from the lowest address, and all programs have this tendency. In other words, since each program attempts to register an entry at a lower address in the address translation index buffer mechanism, in the case of multiple virtual spaces, each time a program switches tasks, the address of the entry used by the previous task is registered. conflicts, and an entry for a new task is re-registered. As a result, when the previous task is dispatched again, the previously registered contents have been rewritten by another task, and the address translation must be performed again and registered in the address translation index buffer mechanism, which is not efficient. There is a problem.

この場合のもう1つの問題は、多重に処理しようとする
複数のプログラムが全て比較的小さいプログラムで、ア
ドレス変換索引緩衝機構の低位アドレス側のエントリし
か必要としないケースで、高位アドレス側のエントリが
全く有効に利用されないということである。
Another problem in this case is that the multiple programs you are trying to process are all relatively small programs that only need entries on the low address side of the address translation index buffer, and the entries on the high address side are This means that it is not used effectively at all.

従来,この種のアドレス変換索引緩衝機構において,多
重仮想空間時の仮想仝間識別子と単一仮想空間時の論理
アドレスとの2個のアドレス要因の両方を考慮する場合
は、例えば特開昭56−19573号公報に記載のよう
に、どちらの空間モードであるかを示すフラグを用意し
、かつ、アドレス変換索引M!衝機構のアドレスを多重
仮想仝間時には仮想空間識別子用のフィールドと論理ア
ドレス用のフィールドとに分離して使うことにより対処
していた。
Conventionally, in this type of address translation index buffer mechanism, when considering two address factors, the virtual space identifier in multiple virtual spaces and the logical address in a single virtual space, for example, Japanese Patent Laid-Open No. 56 As described in Publication No. 19573, a flag indicating which spatial mode is used is prepared, and an address conversion index M! This has been dealt with by separating the address of the conflict mechanism into a field for a virtual space identifier and a field for a logical address when multiple virtual spaces are used.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

上記従来技術の第1の問題点は、多重仮想仝間時にはア
ドレス変換索引緩衝機構のエントリ全てを静的に割りつ
け、各仮想空間用のエントリ数を常に固定化してしまっ
ているため、エントリを多く使う仮想空間とエントリを
ほとんど使わない仮想空間との間でエントリを柔軟に使
いあうことができないということである。すなわち、多
くのエントリを必要とする仮想空間用の範囲ではエント
リを何回も書き換え、エントリをほとんど使わない仮想
空間用の範囲では未使用のエントリが存在してしまう.
第2の問題点は、単一仮想仝間時と多想空間時とでフラ
グをたてて,アドレス生成方法を選択していることであ
る. 上記従来技術と同様の問題は、アクセスレジスタ変換索
引緩衝機構のアドレッシングにおいても存在する.この
場合は第2制御レジスタ中のDispatchable
 Unit C:ontrol Table Orig
in(以下DUCTOと略す)または第5制御レジスタ
中のP rimary A S N S econd 
T able E ntryO rigin (以下P
ASTEOと略す)が第1の変化要因であり、Acea
ss List Entry Token(以下ALE
Tと略す)中のA ceess L ist E nt
ryNumber(以下ALENと略す)が第2の変化
要因となる.すなわち、1つのプログラムでは多くの′
!I!間を使わないが同時に多くプログラムを扱う場合
は,第1の変化要因であるDUCTOまたはPASTE
Oが主に変化し、これをアクセスレジスタ変換索引緩衝
機構のアドレスに反映させればエントリを効率良く使用
することができる.一方、少数のプログラムしか扱わな
いが、各プログラムが多くの空間を使用する場合には第
2の変化要因であるALENが主に変化し,これをアク
セスレジスタ変換索引緩衝機構のアドレスに反映させれ
ばエントリを効率良く使用することができる。
The first problem with the above conventional technology is that when multiple virtual spaces are used, all entries in the address translation index buffer mechanism are statically allocated and the number of entries for each virtual space is always fixed. This means that entries cannot be used flexibly between a virtual space that uses many entries and a virtual space that uses few entries. In other words, in a virtual space range that requires many entries, entries are rewritten many times, and in a virtual space range that uses few entries, there are unused entries.
The second problem is that the address generation method is selected by setting a flag for single virtual space time and multi-virtual space time. The same problem as in the prior art described above also exists in the addressing of the access register conversion index buffer mechanism. In this case, Dispatchable in the second control register
Unit C: control Table Orig
in (hereinafter abbreviated as DUCTO) or Primary ASN S econd in the fifth control register
Table EntryOrigin (hereinafter P
ASTEO) is the first change factor, and Acea
ss List Entry Token (hereinafter referred to as ALE
A ceess List Ent in (abbreviated as T)
ryNumber (hereinafter abbreviated as ALEN) is the second change factor. In other words, in one program, many ′
! I! If you want to handle many programs at the same time without using too much time, use the first change factor, DUCTO or PASTE.
O mainly changes, and if this is reflected in the address of the access register conversion index buffer mechanism, entries can be used efficiently. On the other hand, if only a small number of programs are handled, but each program uses a large amount of space, the second change factor, ALEN, will mainly change, and this will be reflected in the address of the access register conversion index buffer mechanism. This allows entries to be used efficiently.

このアクセスレジスタ変換索引緩衝機構のアドレッシン
グ方式として,上記2つの変化要因を考慮するために、
各変化要因用のエントリ数を固定的に割りつけると,ア
ドレス変換索引緩衝機構での問題がそのまま存在するこ
ととなる。
In order to consider the above two change factors as the addressing method of this access register conversion index buffer mechanism,
If the number of entries for each change factor is fixedly allocated, problems with the address translation index buffer mechanism will still exist.

本発明の目的は、アドレス変換索引緩衝機構やアクセス
レジスタ変換索引緩衝機構などにおいて、各要因の変動
に対応してエントリ数を動的に割りつけて全てのエント
リを有効に使うことを可能にし,かつ、いずれの変化要
因が支配的かを示すフラグを必要としないメモリ・アド
レッシング方式を提供することにある。
An object of the present invention is to dynamically allocate the number of entries in response to fluctuations in various factors in an address translation index buffer mechanism, an access register translation index buffer mechanism, etc., thereby making it possible to use all entries effectively. Another object of the present invention is to provide a memory addressing method that does not require a flag indicating which change factor is dominant.

〔課題を解決するための手段〕[Means to solve the problem]

上記目的を達或するために、本発明は、2個以上の変化
要因をアドレスとしてアドレス変換索引緩衝機構やアク
セス変換機構などのメモリをアドレッシングする際、ア
ドレス決定に支配的となる変化要因同志の一部または全
部をビットの昇順そのまま、または、逆転させて排他的
論理和をとり、該排他的論理和結果をアドレスとしてメ
モリの全アドレス幅を対象にアドレッシングするように
したことである。
In order to achieve the above-mentioned object, the present invention provides a method for addressing a memory such as an address translation index buffer mechanism or an access translation mechanism using two or more variation factors as an address, when the variation factors that are dominant in address determination are The exclusive OR is performed on some or all of the bits in the ascending order of the bits, or in reverse order, and the entire address width of the memory is addressed using the exclusive OR result as an address.

また、全体としてはl個のアドレス要因の場合も、該要
因を複数の部分的フィールドに分割し個々の部分的フィ
ールドを新たな1個のアドレス要因とみなした結果生じ
た新たな複数のアドレス要因について、アドレス決定に
支配的となる要因同志の一部または全部をビットの昇順
そのまま,または逆転させて排他的論理和をとり,該排
他的論理和結果をアドレスとしてメモリをアドレッシン
グする。
Also, even in the case of l address factors as a whole, new multiple address factors are generated as a result of dividing the factor into multiple partial fields and considering each partial field as a new single address factor. , some or all of the factors that are dominant in determining the address are subjected to an exclusive OR with the ascending order of the bits unchanged or reversed, and the memory is addressed using the exclusive OR result as an address.

〔作 用〕[For production]

いま、Aという第1の変化要因(例えば論理アドレス)
と,Bという第2の変化要因(例えば仮想仝間識別子〉
があるとする。そして、例えば256エントリ用のアド
レスを生或する場合において、Aという変化要因はA(
01)からA(19)をアドレスとして考慮すべきもの
、Bという変化要因はB(01)からB(19)までの
ビットがあるが、B(12)からB(19)をアドレス
として考慮すべきものと仮定する。
Now, the first change factor called A (for example, logical address)
and a second change factor B (e.g. virtual space identifier)
Suppose there is. For example, when generating addresses for 256 entries, the change factor A is A(
01) to A(19) should be considered as an address, and the change factor B has bits from B(01) to B(19), but B(12) to B(19) should be considered as an address. Assume that

一例として、上記のB(12)からB (19)を逆転
して,即ち、B(12)を最下位ビットに、B(19)
を最上位ビットにして、A(12)からA(19)まで
とをビットごとに排他的論理和をとり,256エントリ
のアドレスとする。その結果、変化要因Aが支配的に変
動し、変化要因Bがほとんど変動しない場合は、生成さ
れたアドレスの下位ビットが変化要因Aにより切り換わ
っていく。これにより,使用できるアドレス幅全てを有
効に利用することができる。一方、変化要因Aはほとん
ど変化しないが,変化要因Bが支配的に変動する場合は
、生成されたアドレスの上位ビットが変化要因Bにより
切り換わっていく。この場合も使用できるアドレス幅全
てを有効に利用することができる. 〔実施例〕 以下、本発明の一実施例について図面により詳細に説明
する. 第1図は本発明の第1の実施例のブロック図で、本発明
をアドレス変換索引緩衝機構のアドレッシングに適用し
た場合を示したものである。第1図において、1はアド
レス変換索引緩衝機構(以下、TLBと称す)であり、
ここでは256エントリ構成をとるとしている,TLB
Iの各エントリは有効ビットV,論理アドレスの一部し
、仮想空間識別子STO、実アドレスの一部R、および
パリティPよりなる.2はメモリ要求の論理アドレスL
Aを格納する論理アドレスレジスタ,3は現在実行中の
仮想空間識別子ST○を格納する仮想空間識別子レジス
タ(以下、STOレジスタと称す)である。4は本発明
によるアドレス生戒回路であり、ビット列反転回路41
と排他的論理和回路42よりなる.5と6は比較回路,
7と8はアンド回路である. 第1図の動作は以下の通りである。論理アドレスレジス
タ2にある論理アドレスLAのうち、第01ビットから
第11ビットまではセグメント・インデクス、第12ビ
ットから第19ビットまではページ・インデクス、第2
0ビットから第31ビットまではバイト・インデクスで
ある。ここで、1つの仮想空間の中では論理アドレスL
Aはだいたい下位の方から(アドレスOから)使われ、
多重仮想仝間を扱う時はST○も下位から(ST○=0
から)使用されるとする.対象とするTLB1は256
エントリなので、8ビットアドレスでアドレッシングさ
れる。よって動的アドレス変換で使用されるビットのう
ち、最も変化するビットをTLBIのアドレス生或に使
うということで、論理アドレスLAはページ・インデク
スの下位か68ビット(第12ビットから第19ビット
)、STOも下位から8ビット(第↓2ビットから第l
9ビット)を使用するとする。
As an example, by reversing the above B(12) to B(19), i.e., B(12) to the least significant bit, B(19)
is set as the most significant bit, and exclusive OR is performed for each bit of A(12) to A(19) to obtain the address of 256 entries. As a result, if the change factor A changes dominantly and the change factor B hardly changes, the lower bits of the generated address are switched by the change factor A. This allows the entire available address width to be used effectively. On the other hand, if change factor A hardly changes but change factor B changes dominantly, the upper bits of the generated address are switched by change factor B. In this case as well, all available address widths can be used effectively. [Example] Hereinafter, an example of the present invention will be explained in detail with reference to the drawings. FIG. 1 is a block diagram of a first embodiment of the present invention, showing the case where the present invention is applied to addressing of an address translation index buffer mechanism. In FIG. 1, 1 is an address translation lookaside buffer (hereinafter referred to as TLB);
Here, the TLB is assumed to have a 256-entry configuration.
Each entry in I consists of a valid bit V, a part of a logical address, a virtual space identifier STO, a part R of a real address, and a parity P. 2 is the logical address L of the memory request
A logical address register 3 stores A, and a virtual space identifier register (hereinafter referred to as STO register) stores a virtual space identifier ST○ currently being executed. 4 is an address control circuit according to the present invention, and a bit string inversion circuit 41
and an exclusive OR circuit 42. 5 and 6 are comparison circuits,
7 and 8 are AND circuits. The operation of FIG. 1 is as follows. Of the logical address LA in the logical address register 2, the 01st bit to the 11th bit is the segment index, the 12th bit to the 19th bit is the page index, and the 2nd bit is the segment index.
The 0th bit to the 31st bit is a byte index. Here, within one virtual space, the logical address L
A is generally used from the lowest level (from address O),
When dealing with multiple virtual spaces, ST○ is also set from the lower level (ST○=0
) is used. Target TLB1 is 256
Since it is an entry, it is addressed using an 8-bit address. Therefore, among the bits used in dynamic address translation, the bits that change the most are used for TLBI address generation, and the logical address LA is the lower 68 bits (12th to 19th bits) of the page index. , STO is also the lower 8 bits (↓2nd bit to lth bit)
9 bits).

TLBIのアドレッシングの際、ST○レジスタ3の第
12ビットから第19ビットの8ビットを、アドレス生
戒回路4のビット列反転回路41で上下反転する.すな
わち、最下位ビットである第19ビットを最上位ビット
に、最上位ビットである第12ビットを最下位ビットに
置き換える.その他のビットも同様に置き換える.この
処理を行った後、排他的論理和回路42でもって、論理
アドレスレジスタ2の第12ビットないし第工9ビット
であるページ・インデクスの8ビットと排他的論理和を
とる。この排他的論理和結果をTLB1の参照アドレス
とする。TLB1をアドレッシングして得られたエント
リのうち、Lフィールドは比較回路5で論理アドレスレ
ジスタ2の第01ビットないし第19ビットと比較され
、STOフィールドは比較回路6でSTOレジスタ3の
全ビットと比較される,そして,アンド回路7で前記2
つの比較結果と有効ビット■の論理積がとられる。その
結果、有効ビットVが1で、かつ、前記2つの一致比較
が両方共或立した時、アンド回路8が開き.TLB1の
実アドレスの一部Rが読み出される。また、前記2つの
一致比較がいずれか一方でも不成立の場合は、TLBL
の該当エントリのLフィールド、STOフィールドに、
論理アドレスレジスタ2の第01ビットないし第19ビ
ット.STOレジスタ3の全ビットが新しく登録される
During TLBI addressing, the 8 bits from the 12th bit to the 19th bit of the ST○ register 3 are vertically inverted by the bit string inverting circuit 41 of the address control circuit 4. That is, the least significant bit, the 19th bit, is replaced with the most significant bit, and the most significant bit, the 12th bit, is replaced with the least significant bit. Replace the other bits in the same way. After performing this processing, an exclusive OR circuit 42 performs an exclusive OR with the 8 bits of the page index, which are the 12th bit to the 9th bit of the logical address register 2. This exclusive OR result is used as the reference address of TLB1. Among the entries obtained by addressing TLB1, the L field is compared with bits 01 to 19 of logical address register 2 in comparison circuit 5, and the STO field is compared with all bits of STO register 3 in comparison circuit 6. Then, the AND circuit 7 performs the above 2
The two comparison results are ANDed with the valid bit ■. As a result, when the valid bit V is 1 and the two match comparisons are both established, the AND circuit 8 is opened. Part R of the real address of TLB1 is read. In addition, if either of the two matching comparisons is not satisfied, TLBL
In the L field and STO field of the corresponding entry,
Bits 01 to 19 of logical address register 2. All bits of STO register 3 are newly registered.

まず最初のケースとして、1つの長大プログラムを考え
る。この場合は論理アドレスLAと仮想空間識別子ST
Oとの排他的論理和をとると、ST○は常に変化せずに
いるので、LAの変化が結果として現われる。すなわち
、TLBIのアドレッシングはLAにより決まり、論理
アドレスレジスタ2の第12ビットないし第19ビット
の変化分を全てTLB 1のアドレスとして使用できる
ため、TLB 1の256個のエントリ全てを、この場
合のST○で示される1つの仮想空間の任意論理アドレ
スで指示し、使用していることになる。
First, consider a long program. In this case, the logical address LA and virtual space identifier ST
When performing an exclusive OR with O, since ST○ always remains unchanged, a change in LA appears as a result. In other words, TLBI addressing is determined by LA, and all changes in the 12th to 19th bits of logical address register 2 can be used as TLB 1 addresses, so all 256 entries of TLB 1 can be used as ST in this case. This means that it is specified and used by an arbitrary logical address in one virtual space indicated by a circle.

次に、第2のケースとして、8個の比較的小さいプログ
ラムを考える.この場合,8個の仮想空間を識別するた
めに、STOレジスタ3の仮想空間識別子STOの下位
3ビットが変化することになる。アドレス生戒回路4に
おいて、ST○レジスタ3の第12ビットないし第19
ビットの下位8ビットのビット列が反転されるので、論
理アドレスレジスタ2の論理アドレスLAと排他的論理
和をとった結果、ST○が変化することによって変化す
るTLB 1のアドレスは上3ビットのみである.よっ
て、TLBIの256エントリをアドレッシングするた
めのアドレス8ビットのうち、下位5ビットはまる実る
LAの変化用に使用することができる.そのため、各プ
ログラムがTLB1の32エントリで十分ならば、LA
とSTOとが排他的論理和をとる際に変化するビットが
オーバラツプしないため,8仮想空間で各空間用に32
エントリまで、TLBIを有効に使用することができる
. 第3のケースとして、第2のケースにおける8個、のプ
ログラムのうちlつは長大なプログラムで,TLBIの
312エントリでは足りない場合を考える.この長大な
プログラムの論理アドレスがページインデクスの下位か
ら5ビットの32ページで間に合わず,下位から6ビッ
ト目以上になると、ST○との排他的論理和結果は、上
位3ビットのみ変化するSTO下位ビットとオーバラツ
プすることとなる.したがって、例えば、ページインデ
クスの下位から6ビット目までだけ使用し、64ページ
で足りる場合は他の7本のプログラムで使用しているT
LBエントリのうち1つのプログラムで使用していたエ
ントリを書き換えることになる。しかし、この場合でも
他の6本のプログラムのTLBエントリは書き換えられ
ず残ったままとなり有効に利用可能である。また,本発
明によるアドレス生戊回路4を使用しない場合はもとも
と全プログラムのTLBエントリが論理アドレスだけか
らアドレッシングされ、タスクが切り換わるごとにエン
トリが書き換えられる可能性があったので、他の6本の
プログラム用のTLBエントリが残っていることはシス
テムの性能向上に寄与していると言える。さらに前記長
大プログラムが下位から6ビット目までのアドレッシン
グで64ページでは不充分で7ビット目までの128ペ
ージ必要が必要な場合も、他の7本のプログラムのうち
3つのプログラムで使用していたTLBエントリを書き
換えてしまうが,他の4本のプログラム用のTLBエン
トリは有効である。
Next, consider eight relatively small programs as the second case. In this case, in order to identify the eight virtual spaces, the lower three bits of the virtual space identifier STO in the STO register 3 are changed. In the address control circuit 4, the 12th to 19th bits of the ST○ register 3
Since the bit string of the lower 8 bits is inverted, as a result of exclusive ORing with the logical address LA of logical address register 2, the address of TLB 1 that changes when ST○ changes is only the upper 3 bits. be. Therefore, of the 8 bits of the address for addressing the 256 entries of the TLBI, the lower 5 bits can be used for changing the actual LA. Therefore, if 32 entries in TLB1 are sufficient for each program, LA
Since the bits that change when taking the exclusive OR of and STO do not overlap, 32
TLBI can be used effectively up to entry. As a third case, consider a case where one of the eight programs in the second case is a long program, and 312 entries in the TLBI are insufficient. If the logical address of this long program is not enough for the 32 pages of 5 bits from the lower page index and reaches the 6th bit or more from the lower page index, the exclusive OR result with ST○ will be the lower STO where only the upper 3 bits change. This will cause overlap with the bit. Therefore, for example, if you use only the 6th bit from the bottom of the page index and 64 pages are sufficient, you can use the T used by the other 7 programs.
The entry used by one of the LB entries will be rewritten. However, even in this case, the TLB entries of the other six programs remain without being rewritten and can be used effectively. In addition, if the address generation circuit 4 according to the present invention is not used, the TLB entries of all programs are originally addressed only from logical addresses, and there is a possibility that the entries are rewritten each time the task is switched. It can be said that the fact that the TLB entries for the programs remain contributes to improving the performance of the system. Furthermore, in the long program, when 64 pages were insufficient for addressing the 6th bit from the bottom and 128 pages were required, including the 7th bit, this was used in 3 of the other 7 programs. Although the TLB entry is rewritten, the TLB entries for the other four programs remain valid.

第2図は本発明の第2の実施例のブロック図で,本発明
をアクセスレジスタ変換索引緩衝機構のアドレッシング
に適用した場合を示したものである。
FIG. 2 is a block diagram of a second embodiment of the present invention, showing the case where the present invention is applied to addressing of an access register conversion index buffer mechanism.

第2図において,4〜8の機能は第1図と同様である。In FIG. 2, the functions 4 to 8 are the same as in FIG.

9はアクセスレジスタ変換索引緩衝機構(以下、LAB
と称す)であり、第l図のTLB1と同様に256エン
トリ構成をとるとしている。
9 is an access register conversion index buffer mechanism (hereinafter referred to as LAB).
), and has a 256-entry configuration similar to TLB1 in FIG.

ALB9の各エントリは有効ビット■、ALFTフィー
ルド、ALDSOフィールド、STOフィールド、およ
びパリティPよりなる.10はALETレジスタ、王1
は第2制御レジスタ(CR2)中のDUCT○、12は
第5制御レジスタ(CR5)中のPASTE0.13は
ALDSOレジスタである。
Each entry in ALB9 consists of a valid bit ■, an ALFT field, an ALDSO field, an STO field, and a parity P. 10 is ALET register, king 1
12 is DUCT○ in the second control register (CR2), and PASTE0.13 is the ALDSO register in the fifth control register (CR5).

ペースレジスタとして選択された汎用レジスタ番号と同
一の番号であるアクセスレジスタのALETレジスタ1
0中にALETが格納されている。
ALET register 1 of the access register, which is the same number as the general-purpose register number selected as the pace register
ALET is stored in 0.

このALETにおいて、PはP rivataビットで
、該ビットがOの時にDUCTOIIを、該ビットが1
の時にPASTE○工2を選択する。ALET中のAL
ENは仝間管理テーブル内でのエントリ番号である.こ
の空間管理テーブルのエントリ中にSTOアクセスのた
めのアドレスが格納されている.アクセスレジスタ変換
モード時、このALETを使用してアクセスレジスタ変
換が行われ、仮想空間識別子STOが求められる.AL
B9は一度上記のような変換した結果を格納しておくも
のである。DUCTOl上はタスクごとに与えられる空
間管理テーブルの先頭へのアクセス手段、PASTEO
I2はプログラムごとに与えられる空間管理テーブルの
先頭へのアクセス手段をそれぞれ格納している。
In this ALET, P is a Privata bit, and when this bit is O, DUCTOII is set to
Select PASTE ○ work 2 at the time of . AL during ALET
EN is the entry number in the space management table. The address for STO access is stored in the entry of this space management table. In the access register conversion mode, access register conversion is performed using this ALET, and the virtual space identifier STO is obtained. AL
B9 stores the result of the above conversion. On DUCTOl, PASTEO is a means of accessing the top of the space management table given to each task.
I2 stores means for accessing the top of the space management table given to each program.

第2図の動作以下の通りである。アクセスレジスタ中の
ALETがALETレジスタ10に格納され、このAL
ETの第7ビットであるP rivataビットにより
、DUCT○11かPASTEOR12を選択する。こ
の選択の結果がALDSOレジスタ13に格納される。
The operation shown in FIG. 2 is as follows. ALET in the access register is stored in ALET register 10, and this ALET
DUCT○11 or PASTEOR12 is selected by the Privata bit, which is the seventh bit of ET. The result of this selection is stored in the ALDSO register 13.

ALENもALDSOも低位ビット側から内容が変化す
る。よって256エントリのALB9を使用する場合、
それぞれ最下位ビットから8ビットをALB9のアドレ
ッシングに使用する.ALDS○の第18ビットないし
第25ビットは、アドレス生成回路4中のビット列反転
回路41でビット列の反転が行われ、例えば最上位ビッ
トである第18ビットは最下位ビットに,最下位ビット
である第25ビットは最上位ビットになる。このALD
SOのビット列を反転したデータとALENのデータを
排他的論理和回路42で各ビットの排他的論理和をとり
、ALB9の参照アドレスとする。これ以降の比較、A
ND処理は第工の実施例と基本的に同様である。
The contents of both ALEN and ALDSO change starting from the lower bit side. Therefore, when using ALB9 with 256 entries,
The 8 bits from the least significant bit are used for addressing ALB9. The 18th to 25th bits of ALDS○ undergo bit string inversion in the bit string inversion circuit 41 in the address generation circuit 4. For example, the 18th bit, which is the most significant bit, becomes the least significant bit, and the least significant bit becomes the least significant bit. The 25th bit becomes the most significant bit. This ALD
The data obtained by inverting the bit string of SO and the data of ALEN are subjected to an exclusive OR of each bit in an exclusive OR circuit 42, and the result is used as a reference address for ALB9. Further comparisons, A
The ND processing is basically the same as in the first embodiment.

1つのプログラムまたはタスクが多くの仮想仝間を使用
する場合は、ALENの内容すなわちビットが変化する
。例えば256′!I!間を使用するプログラムまたは
タスクの場合は、ALENの下位8ビットを使用し、A
LB9の256エントリ全てをアドレッシングする。ま
た,工つの仝間しか使用しないプログラムまたはタスク
が多くある場合は、ALDSOの内容すなわちビットが
変化する。例えば256個のプログラムまたはタスクが
処理される時は、ALDSOの下位8ビットを使用し、
ALB9の256エントリ全てをアドレッシングする。
If a program or task uses many virtual machines, the contents or bits of ALEN change. For example, 256′! I! For programs or tasks that use
Address all 256 entries of LB9. Furthermore, if there are many programs or tasks that only use time, the contents of ALDSO, that is, the bits, change. For example, when 256 programs or tasks are processed, the lower 8 bits of ALDSO are used,
Address all 256 entries of ALB9.

アドレス生戊回路4内でALDSOの下位8ビットを反
転し、ALENの8ビットと全ビット幅にわたり排他的
論理和をとっているので,上記2ケース共、有効にAL
B9の256エントリを利用できる。さらに複数のプロ
グラムまたはタスクが処理され,各々が使用する仝間数
が多い場合,少い場合の混合ケースもALBエントリが
右効に利用されるよう考慮されている。すなわち、処理
されるプログラムまたはタスクが増えることによるエン
トリアドレスは上位ビットから変化し始める(プログラ
ムまたはタスクが増えていくとALDSOの下位ビット
からカウント・アップされていくが、ALDS○の情報
はアドレス生戊回路4内でビット列反転がなされている
).また、各プログラムまたはタスクが使用する仮想仝
間の数が増えることによるエントリアドレスは下位ビッ
トから変化し始める。よって、ある程度小規模でALE
Nで示されるエントリ数(!間数)が少なくてよいタス
クまたはプログラムが複数あっても他のタスクまたはプ
ログラム用のエントリを書き換えることはない。また、
複数のタスクまたはプログラムのうちいくつかが多くの
空間を使う場合でも、同時に処理される他のタスクまた
はプログラムの全てのエントリを書き換えてしまうわけ
ではなく、一部のいくつかのタスクまたはプログラム用
のエントリを書き換えるにとどまる.よって書き換えら
れずに残ったエントリは他のタスクまたはプログラムに
より有効に利用することができる.第3図は本発明の第
3の実施例のブロック図で、本発明を主記憶の一部デー
タを格納するバツファ記憶のアドレッシングに適用した
場合を示したものである。
In the address generation circuit 4, the lower 8 bits of ALDSO are inverted and exclusive ORed with the 8 bits of ALEN over the entire bit width, so in the above two cases, the AL
256 entries of B9 are available. Furthermore, a mixed case where a plurality of programs or tasks are processed and each uses a large number of spaces or a small number of spaces is also considered so that ALB entries can be used effectively. In other words, as the number of programs or tasks to be processed increases, the entry address starts to change from the upper bits (as the number of programs or tasks increases, the count is increased from the lower bits of ALDSO, but the information in ALDS○ changes from the address generation (The bit string is inverted in circuit 4). Furthermore, as the number of virtual machines used by each program or task increases, the entry address begins to change starting from the lower bits. Therefore, ALE on a somewhat small scale
Even if there are multiple tasks or programs that require a small number of entries (!number of entries) indicated by N, entries for other tasks or programs will not be rewritten. Also,
Even if some of the tasks or programs use a lot of space, it does not overwrite all the entries for other tasks or programs that are being processed at the same time; All you have to do is rewrite the entry. Therefore, the remaining entries that have not been rewritten can be effectively used by other tasks or programs. FIG. 3 is a block diagram of a third embodiment of the present invention, showing a case where the present invention is applied to addressing of a buffer memory that stores part of data in the main memory.

第3図において,2はアドレスレジスタ、14はバッフ
ァ記憶である.バツファ記憶14は32バイトをlブロ
ックとして管理するとする。すなわち、アドレスレジス
タ2のビット24ないし28はブロック内アドレスで、
32バイトのうち{イバイト目かを示す。また,ビット
01ないし23はブロックアドレスで、アドレスレジス
タ2に格納されたアドレスは,ブロック単位にみた時、
偵ブロック目にあたるかを示す。パツファ記憶14の大
きさには制限があり、アドレスレジスタ2のビット01
−23で示される223エントリ全てを格納することが
できない.第3図では、バツファ記憶14は256ブロ
ックすなわち256エントリ×32バイト=8192バ
イトを格納するとしたものである。このバツファ記憶1
4のブロックをアドレッシングする時に,アドレスレジ
スタ2のビット16ないし23により行うと、第1ブロ
ックから第256ブロックを該バッファ記憶工4に格納
することができる。しかし、アドレスレジスタ2のビッ
トl6ないし23によってみアドレッシングすると、第
lブロックから第64ブロックと第257ブロックから
第320ブロックとを同時にバッファ記憶14に格納す
ることはできない。該ケースは、第4図で示されるよう
なアドレス空間を使用する場合に相当する。
In FIG. 3, 2 is an address register and 14 is a buffer memory. It is assumed that the buffer memory 14 manages 32 bytes as 1 block. That is, bits 24 to 28 of address register 2 are intra-block addresses,
Indicates whether it is the {th byte out of 32 bytes. Also, bits 01 to 23 are block addresses, and the address stored in address register 2 is, when viewed in block units,
Indicates whether it corresponds to the detective block. There is a limit to the size of the buffer memory 14, and bit 01 of address register 2
It is not possible to store all 223 entries indicated by -23. In FIG. 3, the buffer memory 14 stores 256 blocks, that is, 256 entries×32 bytes=8192 bytes. This battle memory 1
By using bits 16 to 23 of the address register 2 when addressing the 4th block, the 1st to 256th blocks can be stored in the buffer memory 4. However, by addressing only by bits 16 to 23 of address register 2, it is not possible to store blocks 1 to 64 and blocks 257 to 320 at the same time in buffer memory 14. This case corresponds to the case where an address space as shown in FIG. 4 is used.

このような場合、第3図に示すように、アドレスレジス
タ2のビット14ないし15とビットl6ないし17と
をそれぞれ排他的論理和回路42で排他的論理和をとり
、その結果をバツブア記憶14をアドレッシングする際
のアドレスの上位2ビットに使用する.これにより、第
1ブロックから第64ブロックはバッファ記憶14のア
ドレス“oooooooo”から、第257ブロックか
ら第320ブロックはアドレス“0 1 0 0 0 
0 0 ”から格納することができる。しかも、第1ブ
ロックから第256ブロックを同時にバツファ記憶l4
に格納する従来の格納方式も可能である。該ケースにお
いては、アドレスレジスタのビットエ4ないし15の部
分とビット16ないし17の部分とが複数要因の各要因
と定義される。
In such a case, as shown in FIG. Used for the upper two bits of the address during addressing. As a result, the 1st to 64th blocks start from the address "oooooooo" in the buffer memory 14, and the 257th to 320th blocks start from the address "0 1 0 0 0".
0 0''. Moreover, the 1st block to the 256th block can be stored in the buffer memory l4 at the same time.
A conventional storage method is also possible. In this case, bits 4 to 15 and bits 16 to 17 of the address register are defined as each factor of the plurality of factors.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、本発明によれば、アドレスやアク
セスレジスタ変換索引緩衝機構あるいはバッファ記憶な
どをアドレッシングする際、その要因が複数ある場合、
要因別のアドレスビットを静的に分離して使用するので
はなく,考慮したい全ての要因のビットの昇順そのまま
、または逆転させて排他的論理和をとることにより、与
えられたアドレス幅全てを動的に使用することができ、
全てのエントリを右効に使う二とが可能になる。
As explained above, according to the present invention, when addressing an address or access register conversion index buffer mechanism or buffer storage, etc., when there are multiple factors,
Rather than statically separating and using the address bits for each factor, the entire given address width can be operated by taking exclusive OR of the bits of all the factors to be considered, either in ascending order or in reverse order. can be used for,
It becomes possible to use all entries to the right.

また,アドレスを決定する複数の要因のただ1つだけし
か影響しない時でも、有効にアドレスを使用、生戊する
ことができる。
Furthermore, even when only one of the multiple factors that determine an address is affected, addresses can be used and created effectively.

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

第1図は本発明をアドレス変換索引緩衝機構のアドレッ
シングに適用した第1の実施例のプロック図、第2図は
本発明をアクセスレジスタ変換索引緩衝機構のアドレッ
シングに適用した第2の実施例のブロック図、第3図は
本発明をバッファ記憶のアドレッシングに適用した第3
の実施例のブロック図である。 l・・・TLBメモリ、  2・・・アドレスレジスタ
、3・・・仮想仝間識別子レジスタ、 4・・・アドレス生戊回路、 5,6・・・比較回路、
7,8・・・アンド回路、  9・・・ALBメモリ、
10・・・ALETレジスタ、  11・・・DUCT
Oレジスタ、  12・・・PASTEOレジスタ、1
3・・・ALDSOレジスタ、  14・・・バッファ
記憶, 41・・・ビット列反転回路,42・・・排他
的論理和回路。 第 3図 第4図
FIG. 1 is a block diagram of a first embodiment in which the present invention is applied to addressing of an address translation index buffer mechanism, and FIG. 2 is a block diagram of a second embodiment in which the present invention is applied to addressing of an access register translation index buffer mechanism. The block diagram, FIG.
FIG. 2 is a block diagram of an embodiment of the invention. l...TLB memory, 2...address register, 3...virtual space identifier register, 4...address generation circuit, 5, 6...comparison circuit,
7, 8...AND circuit, 9...ALB memory,
10...ALET register, 11...DUCT
O register, 12...PASTEO register, 1
3...ALDSO register, 14...Buffer storage, 41...Bit string inversion circuit, 42...Exclusive OR circuit. Figure 3 Figure 4

Claims (3)

【特許請求の範囲】[Claims] (1)2個以上の変化要因をアドレスとしてメモリをア
ドレッシングする方式において、前記2個以上の変化要
因の一部または全部の部分の相互の排他的論理和を求め
、該排他的論理和結果をアドレスとして前記メモリの全
アドレス幅を対象にアドレッシングすることを特徴とす
るメモリ・アドレッシング方式。
(1) In a method of addressing memory using two or more change factors as addresses, find the mutual exclusive OR of some or all of the two or more change factors, and calculate the exclusive OR result. A memory addressing method characterized by addressing the entire address width of the memory as an address.
(2)全体としては1個のアドレス要因であるが、該要
因を複数の部分的フィールドに分割し、個々の部分的フ
ィールドを新たな1個のアドレス要因としてメモリをア
ドレッシングする方式において、前記分割された2個以
上の部分的フィールドの一部または全部の部分の相互の
排他的論理和を求め、該排他的論理和結果をアドレスと
して、前記メモリの全アドレス幅を対象にアドレッシン
グすることを特徴とするメモリ・アドレッシング方式。
(2) In a method in which the factor is one address factor as a whole, but the factor is divided into a plurality of partial fields, and each partial field is used as a new single address factor to address the memory, the divided A mutual exclusive OR of some or all of the two or more partial fields obtained is calculated, and the exclusive OR result is used as an address to address the entire address width of the memory. A memory addressing method that uses
(3)少なくとも1つのアドレス要因あるいはその部分
的フィールドの一部または全部の部分は上位下位を反転
して、他のアドレス要因あるいはその部分的フィールド
の一部または全部の部分と排他的論理和をとることを特
徴とする請求項(1)もしくは(2)記載のメモリ・ア
ドレッシング方式。
(3) At least one address factor or part or all of its partial field is exclusive ORed with another address factor or part or all of its partial field by inverting its upper and lower parts. The memory addressing method according to claim 1 or 2, characterized in that:
JP1187166A 1989-06-23 1989-07-19 Memory addressing system Pending JPH0351933A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1187166A JPH0351933A (en) 1989-07-19 1989-07-19 Memory addressing system
DE4019961A DE4019961C2 (en) 1989-06-23 1990-06-22 Controller for accessing an address translation memory in a processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1187166A JPH0351933A (en) 1989-07-19 1989-07-19 Memory addressing system

Publications (1)

Publication Number Publication Date
JPH0351933A true JPH0351933A (en) 1991-03-06

Family

ID=16201276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1187166A Pending JPH0351933A (en) 1989-06-23 1989-07-19 Memory addressing system

Country Status (1)

Country Link
JP (1) JPH0351933A (en)

Similar Documents

Publication Publication Date Title
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
EP0208428B1 (en) Direct input/output in a virtual memory system
US5295251A (en) Method of accessing multiple virtual address spaces and computer system
JPH0552540B2 (en)
EP0149389A2 (en) Address translation control system
JPS63231550A (en) Multiple virtual space control system
US3778776A (en) Electronic computer comprising a plurality of general purpose registers and having a dynamic relocation capability
US3771142A (en) Digital data storage system
US5924127A (en) Address translation buffer system and method for invalidating address translation buffer, the address translation buffer partitioned into zones according to a computer attribute
US5923864A (en) Virtual storage address space access control system including auxiliary translation lookaside buffer
US6477634B1 (en) Physical pages de-allocation method for virtual addressing machine
JPH07248967A (en) Memory control system
US4984150A (en) Virtual memory control management system
US6272613B1 (en) Method and system for accessing storage area of a digital data processing machine in both the physical and virtual addressing modes
JPH0351933A (en) Memory addressing system
CA1284390C (en) Apparatus and method for a page frame replacement in a data processing system having virtual memory addressing
JPS63254544A (en) Control system for address conversion
KR910007641B1 (en) Cache memory apparatus
EP0108647A2 (en) Data processing apparatus
EP0533190A2 (en) Data processing system with address translation function for different page sizes
JP3456727B2 (en) Data processing device
US7181587B1 (en) Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment
JPS6042972B2 (en) Information processing device with address conversion function
JPH04349548A (en) Address converting system
JPH0325644A (en) Multiple virtual address space controller