JP2000267932A - Tag address comparing device - Google Patents
Tag address comparing deviceInfo
- Publication number
- JP2000267932A JP2000267932A JP11071471A JP7147199A JP2000267932A JP 2000267932 A JP2000267932 A JP 2000267932A JP 11071471 A JP11071471 A JP 11071471A JP 7147199 A JP7147199 A JP 7147199A JP 2000267932 A JP2000267932 A JP 2000267932A
- Authority
- JP
- Japan
- Prior art keywords
- tag
- address
- tag address
- page number
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、メインメモリ内の
命令やデータの一時的格納装置であるキャッシュ装置に
関する。特に、タグ比較イネーブルビットに応じて中央
処理装置より入力されるタグアドレスの入力タイミング
を部分的に制御されたタグアドレスとキャッシュエント
リに設定されたタグアドレスを比較する、タグアドレス
比較装置に関する。[0001] 1. Field of the Invention [0002] The present invention relates to a cache device which is a temporary storage device for instructions and data in a main memory. In particular, the present invention relates to a tag address comparison device that compares a tag address whose input timing of a tag address input from a central processing unit is partially controlled according to a tag comparison enable bit with a tag address set in a cache entry.
【0002】[0002]
【従来の技術】最近は、メモリアクセスのボトルネック
を解消するために、キャッシュメモリをチップ上に搭載
するマイクロプロセッサが主流になってきている。特
に、コンピュータのメインメモリ容量の限界に対処して
プログラミング上の負荷を軽減する技術として仮想記憶
方式が広く採用されている。仮想記憶はオペレーティン
グシステム等によりメインメモリとハードディスク等の
補助メモリにおいてメモリ容量を補充するように制御し
て容量の大きな仮想メモリを形成することで、大容量の
メインメモリを論理上実現するものである。また、仮想
記憶を採用するとプログラムの稼動時点に必要なデータ
だけをメインメモリにおくことができるので、複数のプ
ログラム間でメモリを効率よく共有することも可能とな
る。仮想記憶では、仮想メモリ中のアドレスを示す仮想
アドレスを、実際のメインメモリ中のアドレスを示す物
理アドレスに変換するアドレス変換が必要になる。一般
に仮想アドレスは仮想ページ番号とページ内オフセット
に分割され、物理アドレスも物理ページ番号とページ内
オフセットに分割される。そして、アドレス変換におい
ては、仮想ページ番号と物理ページ番号を対応付けて記
憶するページテーブルを設けておき、このページテーブ
ルを参照し要求された仮想アドレスから物理ページ番号
を抽出することで物理アドレスへと変換する。なお仮想
アドレスと物理アドレスのページ内オフセットは同じで
あるので、物理ページ番号へ所定のページ内オフセット
を連結することで物理アドレスが生成される。ところ
で、このページテーブルは非常に大きいのでメインメモ
リに格納する必要がある。したがって、中央処理装置か
らメインメモリへのアクセス要求がある度に、ページテ
ーブルへのアクセスと実際のデータへのアクセスとの2
回のアクセスをメインメモリに行うことになり処理時間
の遅延を生じる。このような処理時間の遅延を改善する
ために、近年、ページテーブルの他に、さらにアドレス
変換バッファ(以下「TLB」という。)を設けること
が行われる。TLBはページテーブルのうち、使用頻度
が高い仮想ページ番号と物理ページ番号との対応を記憶
したアドレス変換専用のキャッシュメモリである。TL
Bが設けられている場合、中央処理装置から、メインメ
モリへのアクセスがあるとまずTLBが最初に検索さ
れ、入力された仮想アドレスのページ番号がTLBのエ
ントリにある場合は、この仮想アドレスに対応する物理
アドレスに高速に変換することができる。ここで求める
仮想アドレスがない場合に、メインメモリ等にあるペー
ジテーブルが検索される。TLBの記憶内容を適切に定
め、TLBのヒット率を高めることでメインメモリへの
アクセスの効率化を図ることができる。しかし、このT
LBもプロセッサの性能が向上するとともに、メモリア
クセスのボトルネックを解消するために、エントリ数を
32から64エントリもつものが主流になってきてい
る。TLBは一般的にフルアソシアティブの連想メモリ
が用いられるため、チップの面積占有率も年々増えつづ
け、チップの消費電力においてはオンチップキャッシュ
全体で消費される電力がチップの消費電力の約30%を
占める等により、チップサイズの小型化および低消費電
力化の必要性が生じている。たとえば(文献:日立SH
マイコン仕様書から)、日立のSHシリーズでは、キャ
ッシュメモリの構成として、セット・アソシアティブ方
式を採用しており、消費電力を削減する方法として、低
消費電力モードに設定されると、動作させるキャッシュ
のウェイ数を減らし、ダイレクト・マップ方式と同様の
動作をするようになる。このような低消費電力モードで
は、キャッシュの容量が減り、連想度も下がるため、ミ
ス率は増加し、性能は低下するが、消費電力は削減する
ことができる。2. Description of the Related Art Recently, microprocessors having a cache memory mounted on a chip have become mainstream in order to eliminate a bottleneck in memory access. In particular, the virtual memory system is widely adopted as a technique for reducing the programming load by coping with the limit of the main memory capacity of a computer. The virtual memory logically realizes a large-capacity main memory by forming a large-capacity virtual memory by controlling an operating system or the like to supplement a memory capacity in a main memory and an auxiliary memory such as a hard disk. . In addition, when virtual storage is employed, only data necessary at the time of operation of the program can be stored in the main memory, so that the memory can be efficiently shared between a plurality of programs. In virtual storage, address conversion is required to convert a virtual address indicating an address in the virtual memory into a physical address indicating an actual address in the main memory. Generally, a virtual address is divided into a virtual page number and an intra-page offset, and a physical address is also divided into a physical page number and an intra-page offset. In the address conversion, a page table for storing a virtual page number and a physical page number in association with each other is provided, and the physical page number is extracted from the requested virtual address with reference to the page table to obtain the physical address. And convert. Since the virtual address and the physical address have the same intra-page offset, a physical address is generated by concatenating a predetermined intra-page offset to the physical page number. By the way, this page table is very large and needs to be stored in the main memory. Therefore, every time there is a request for access to the main memory from the central processing unit, there are two accesses, one for accessing the page table and the other for accessing actual data.
Access to the main memory is performed twice, resulting in a delay in processing time. In order to improve such a processing time delay, in recent years, an address translation buffer (hereinafter, referred to as “TLB”) has been provided in addition to the page table. The TLB is a cache memory dedicated to address conversion that stores a correspondence between a frequently used virtual page number and a physical page number in a page table. TL
In the case where B is provided, when the central processing unit accesses the main memory, the TLB is searched first. If the page number of the input virtual address is in the entry of the TLB, the TLB is searched. It can be converted to the corresponding physical address at high speed. If there is no virtual address to be found here, the page table in the main memory or the like is searched. The efficiency of access to the main memory can be improved by appropriately determining the storage content of the TLB and increasing the hit rate of the TLB. However, this T
In order to improve the performance of the processor and to eliminate the bottleneck of the memory access, the LBs having the number of entries of 32 to 64 are becoming mainstream. Since TLB generally uses a fully associative associative memory, the area occupancy of the chip is increasing year by year, and the power consumed by the entire on-chip cache is about 30% of the power consumed by the chip. Due to the occupation, the necessity of reducing the chip size and reducing power consumption has arisen. For example, (Reference: Hitachi SH
From the microcomputer specifications), Hitachi's SH series employs a set associative method as a configuration of cache memory. As a method of reducing power consumption, when set to a low power consumption mode, The number of ways is reduced, and the same operation as in the direct map method is performed. In such a low power consumption mode, the cache capacity decreases and the degree of association decreases, so that the miss rate increases and the performance decreases, but the power consumption can be reduced.
【0003】[0003]
【発明が解決しようとする課題】しかしながら、上記低
消費電力モードのように、消費電力を下げるために動作
するキャッシュの容量を削減する方法では、キャッシュ
ミス率が上昇するので、外部メモリへのアクセスが増加
し、さらに性能低下による実行時間の増加によって、結
果的に消費電力量が増加する可能性がある。アドレス変
換バッファについても同様のことが言える。消費電力を
下げるために動作するアドレス変換バッファのエントリ
数を削減すると、アドレス変換バッファのミス率が上昇
するため、メインメモリへのアクセスが増加し、さらに
性能低下による実行時間の増加によって結果的に消費電
力量が増加する可能性がある。本発明の目的は、アドレ
ス変換バッファを含むキャッシュにおいて、キャッシュ
エントリをそのまま使用し、キャッシュのミス率を下げ
ることなく、タグアドレス比較の際に、入力されるタグ
アドレスを部分的に変化させず、またタグアドレス比較
器の稼動範囲を削減することにより、一般に使われてい
るキャッシュと比べて入力されるタグアドレスの読み書
き、および比較動作に必要な消費電力を削減するタグア
ドレス比較装置を提供することである。However, in the method of reducing the capacity of the cache operating to reduce the power consumption as in the above-described low power consumption mode, the cache miss rate increases, so that the access to the external memory is not performed. Power consumption may increase as a result of the increase in execution time due to performance degradation. The same can be said for the address translation buffer. When the number of entries in the address translation buffer that operates to reduce power consumption is reduced, the miss rate of the address translation buffer increases, so that access to the main memory increases. The power consumption may increase. An object of the present invention is to use a cache entry as it is in a cache including an address translation buffer, without lowering the cache miss rate, and at the time of tag address comparison, without partially changing an input tag address, Further, it is an object of the present invention to provide a tag address comparing device that reduces the operating range of the tag address comparator, thereby reducing the power consumption required for reading and writing the input tag address and comparing operation compared with a commonly used cache. It is.
【0004】[0004]
【課題を解決するための手段】上記課題を解決するため
に請求項1に記載のタグアドレス比較装置では、タグア
ドレスごとにデータを対応付けて記録した複数のエント
リを記憶するエントリ記憶手段と、前記第1タグアドレ
スに対して、中央処理装置より入力されるタグアドレス
を記憶するタグアドレス記憶手段と、前記タグアドレス
記憶手段において、中央処理装置からのタグアドレス入
力タイミングを部分的に制御するタグアドレス入力制御
手段と、前記第2タグアドレスと前記エントリ記憶手段
により記憶された前記第1タグアドレスとを比較するタ
グアドレス比較手段によって、タグアドレス比較器無稼
動領域の生成と、部分的に常に一定の値を保持している
第2タグアドレス記憶領域の一部分に対して、信号の変
化を最小限に押さえることによって、消費電力が最小に
なるような構造を持ち、常にヒット信号を出すように構
成され、前記中央処理装置より入力されるタグアドレス
に対し、このタグアドレスと一致するエントリを前記エ
ントリ記憶手段より検索するエントリ検索手段とを有し
ている。請求項2に記載のタグアドレス比較装置では、
前記タグアドレス入力制御手段を前記タグアドレス記憶
領域に設け、前記タグアドレス入力制御手段が複数ビッ
トより構成されるタグ比較イネーブルビットを用いてい
る。請求項3に記載のタグアドレス比較装置では、請求
項1又は2に記載のタグアドレス比較装置に加えて、プ
ログラムにより比較の必要がないと設定されたタグアド
レスの比較器無稼動領域に対して、プログラムが正しく
“0”の値を使用しているかを判断するタグ期待値判定
手段を有している。また、請求項4に記載のタグアドレ
ス比較装置では、請求項2に記載のタグ比較イネーブル
ビットにより、比較器無稼動領域と設定された第2タグ
アドレスに対して対応する第1タグアドレスのエントリ
のみを物理的に実装する。請求項5に記載のタグアドレ
ス比較装置では、請求項3に記載のタグアドレス比較装
置において、タグ期待値判定手段により比較器無稼動領
域と設定された第2タグアドレスに対して対応する第1
タグアドレスのエントリのみを物理的に実装する。According to a first aspect of the present invention, there is provided a tag address comparing apparatus for storing a plurality of entries in which data is recorded in association with each tag address. A tag address storage unit for storing a tag address input from a central processing unit with respect to the first tag address; and a tag for partially controlling a tag address input timing from the central processing unit in the tag address storage unit. An address input control unit and a tag address comparison unit that compares the second tag address with the first tag address stored by the entry storage unit generate a tag address comparator non-operating area, and always partially Minimize signal changes to a part of the second tag address storage area that holds a constant value Thus, a structure is such that power consumption is minimized, a hit signal is always output, and for a tag address input from the central processing unit, an entry that matches this tag address is stored in the entry storage. And an entry search means for searching by means. In the tag address comparison device according to claim 2,
The tag address input control means is provided in the tag address storage area, and the tag address input control means uses a tag comparison enable bit composed of a plurality of bits. In the tag address comparing device according to the third aspect, in addition to the tag address comparing device according to the first or second aspect, the tag address comparing device of the tag address set to be unnecessary to be compared by the program can be used. And a tag expected value determining means for determining whether the program correctly uses the value of "0". In the tag address comparison device according to the fourth aspect, the entry of the first tag address corresponding to the second tag address set as the comparator non-operation area by the tag comparison enable bit according to the second aspect Only physically implement. In the tag address comparing device according to a fifth aspect, in the tag address comparing device according to the third aspect, the first tag address corresponding to the second tag address set as the comparator non-operation area by the tag expected value determining means.
Physically implement only the tag address entry.
【0005】[0005]
【発明の実施の形態】以下に本発明の実施形態について
図面を参照しながら説明する。Embodiments of the present invention will be described below with reference to the drawings.
【0006】図1に本実施の形態に係るタグアドレス比
較装置を含むTLB1の構成を表すブロック図を示す。
TLB1は中央処理装置3を形成するパーケージ内に設
けられ、中央処理装置3と高速でアクセスできるメモリ
素子により構成されており、オペレーティングソフトウ
ェアおよび制御回路により制御される。また、TLB1
は現在実行中のプロセスのプロセス識別子PIDcを記
憶する制御レジスタ2と接続されている。制御レジスタ
2は中央処理装置3が実行プロセスを切り替える毎に書
きかえられる。これらの装置は一般的なコンピュータシ
ステムに組み込まれる。TLB1は、仮想ページ番号と
物理ページ番号とを対応付けて記憶している複数のエン
トリe1、e2、e3、・・・e32を記憶している。
各エントリ記憶部は仮想ページ番号等を記憶したタグ部
10と、これに対応する物理ページ番号等を記憶するデ
ータ部14に分けられる。また、全エントリ記憶部のデ
ータ部14はTLB1のデータアレイ部1bにまとめら
れている。タグ部10は仮想ページ番号記憶領域10
1、プロセス識別子記憶領域102、グローバルビット
記憶領域103、有効ビット記憶領域104により構成
され、それぞれの記憶領域に仮想ページ番号VPN、プ
ロセス識別子PID、グローバルビットG、有効ビット
Vが記憶される。またタグ部10に記憶されている各仮
想ページ番号に対して比較対象となる仮想アドレス入力
部11は、中央処理装置3より入力される仮想ページ番
号Xとオフセットからなる仮想アドレスを記憶する仮想
アドレス記憶領域112と入力する中央処理装置から出
力される仮想ページ番号を前記仮想ページ番号記憶領域
Xに入力するかどうかを規定するタグ比較イネーブルビ
ットTEを記憶するタグ比較イネーブルビット記憶領域
111により構成される。FIG. 1 is a block diagram showing a configuration of a TLB 1 including a tag address comparing device according to the present embodiment.
The TLB 1 is provided in a package forming the central processing unit 3 and includes a memory element that can be accessed at high speed with the central processing unit 3 and is controlled by operating software and a control circuit. Also, TLB1
Is connected to the control register 2 for storing the process identifier PIDc of the currently executing process. The control register 2 is rewritten each time the central processing unit 3 switches the execution process. These devices are incorporated in a general computer system. The TLB 1 stores a plurality of entries e1, e2, e3,... E32 which store a virtual page number and a physical page number in association with each other.
Each entry storage unit is divided into a tag unit 10 storing a virtual page number and the like and a data unit 14 storing a corresponding physical page number and the like. Further, the data section 14 of all entry storage sections is arranged in the data array section 1b of the TLB1. The tag section 10 is a virtual page number storage area 10
1, a process identifier storage area 102, a global bit storage area 103, and a valid bit storage area 104, and a virtual page number VPN, a process identifier PID, a global bit G, and a valid bit V are stored in the respective storage areas. A virtual address input unit 11 to be compared with each virtual page number stored in the tag unit 10 stores a virtual address consisting of a virtual page number X input from the central processing unit 3 and an offset. A tag comparison enable bit storage area 111 for storing a tag comparison enable bit TE for specifying whether or not the virtual page number output from the central processing unit, which is input to the storage area 112, is input to the virtual page number storage area X. You.
【0007】ここでは、タグ比較イネーブルビットTE
は4ビットの情報を用い、中央処理装置より入力される
仮想アドレスのページ番号に対して一対の記憶領域のみ
をもつ。Here, the tag comparison enable bit TE
Uses 4-bit information and has only a pair of storage areas for the page number of the virtual address input from the central processing unit.
【0008】また、プロセス識別子として複数ビットの
情報を用い特定のプロセスを表す。グローバルビットは
前記プロセス識別子の比較および無比較を規定する比較
情報となる。有効ビットVは、プログラムで中央処理装
置3がリセットされたときに、エントリ中の物理ページ
番号と仮想ページ番号が対応しなくなるような場合等を
考慮して設けられるものであり、有効ビットVがアクテ
ィブであれば現在のエントリ中の物理ページ番号が仮想
ページ番号に正しく対応していることを示し、インアク
ティブの場合は両者が適切な対応をしていないことを示
す。タグ比較イネーブルビット111は、中央処理装置
3から要求される仮想アドレスXの一部を構成する仮想
ページ番号記憶領域Xの入力タイミングを制御する入力
制御情報となる。また、タグ比較イネーブルビット11
1に応じて中央処理装置3より入力された仮想ページ番
号vpnと仮想ページ番号VPNとを比較する仮想ペー
ジ番号比較手段としての仮想ページ番号比較器12と、
前記制御レジスタ2から送られる現在進行中のプロセス
のプロセス識別子PIDcとプロセス識別子記憶領域1
02に記憶されているプロセス識別子PIDとをグロー
バルビットGの値に応じて比較するプロセス比較手段と
してのプロセス識別子比較器13が設けられている。そ
してこの仮想ページ番号比較器12の出力値とプロセス
識別子比較器13の出力値および有効ビット記憶領域1
04に記憶された有効ビットVの値はANDゲート10
5により論理積がとられる。第1比較器12および第2
比較器13の比較結果が一致しさらに有効ビットがアク
ティブの場合、つまり適正な仮想ページ番号が存在する
場合のみこのANDゲート105から信号値“1”が出
力される。また、この仮想ページ番号比較器12および
ANDゲート105によりエントリ検索手段が構成され
る。ANDゲート105の出力値はデータ部14に送ら
れるとともにORゲート15に送られ、このORゲート
15ですべてのANDゲート105の出力値に対する論
理和がとられる。このORゲート15の出力信号値
“1”はヒット信号として、出力信号値“0”はミス信
号として中央処理装置3へ出力される。データ部14は
物理ページ番号記憶領域141、ページ属性記憶領域1
42により構成され、それぞれの記憶領域に物理ページ
番号PPNおよびページ保護ビットPR、ダーティービ
ットD、ページ有効ビットPV等のページ属性情報を記
憶している。データ部14では、ANDゲート105か
ら出力値“1”が送られてきた場合は、物理ページ番号
記憶領域141に記憶されている物理ページ番号PPN
を出力する。出力された物理ページ番号PPNは、ペー
ジ内オフセットに連結されて物理アドレスYとして中央
処理装置3へ送られる。A specific process is represented by using a plurality of bits of information as a process identifier. The global bits serve as comparison information that defines the comparison and no comparison of the process identifier. The valid bit V is provided in consideration of a case where the physical page number and the virtual page number in the entry do not correspond to each other when the central processing unit 3 is reset by a program. If it is active, it indicates that the physical page number in the current entry correctly corresponds to the virtual page number, and if it is inactive, it indicates that they do not correspond appropriately. The tag comparison enable bit 111 serves as input control information for controlling the input timing of the virtual page number storage area X constituting a part of the virtual address X requested by the central processing unit 3. Also, the tag comparison enable bit 11
A virtual page number comparator 12 as a virtual page number comparing means for comparing the virtual page number vpn inputted from the central processing unit 3 with the virtual page number VPN in response to 1.
The process identifier PIDc of the process currently in progress sent from the control register 2 and the process identifier storage area 1
There is provided a process identifier comparator 13 as a process comparison means for comparing the process identifier PID stored in H.02 with the value of the global bit G. The output value of the virtual page number comparator 12, the output value of the process identifier comparator 13, and the effective bit storage area 1
04 is stored in the AND gate 10
5 is ANDed. The first comparator 12 and the second comparator
The signal value "1" is output from the AND gate 105 only when the comparison result of the comparator 13 matches and the valid bit is active, that is, only when an appropriate virtual page number exists. The virtual page number comparator 12 and the AND gate 105 constitute an entry search unit. The output value of the AND gate 105 is sent to the data section 14 and also to the OR gate 15, where the OR gate 15 performs a logical OR operation on the output values of all the AND gates 105. The output signal value “1” of the OR gate 15 is output as a hit signal, and the output signal value “0” is output to the central processing unit 3 as a miss signal. The data section 14 has a physical page number storage area 141, a page attribute storage area 1
The storage area stores page attribute information such as a physical page number PPN, a page protection bit PR, a dirty bit D, and a page valid bit PV. In the data section 14, when the output value “1” is sent from the AND gate 105, the physical page number PPN stored in the physical page number storage area 141
Is output. The output physical page number PPN is linked to the in-page offset and sent to the central processing unit 3 as the physical address Y.
【0009】図2に仮想ページ番号比較器12の構成を
表すブロック図を示す。仮想ページ番号比較器は、中央
処理装置より入力される仮想ページ番号Xと、各エント
リの仮想ページ番号101に対して各ビット毎に各比較
器に入力され、各タグ比較器の出力を入力とするAND
ゲート123より構成される。FIG. 2 is a block diagram showing the configuration of the virtual page number comparator 12. The virtual page number comparator is input to each comparator for each bit with respect to the virtual page number X input from the central processing unit and the virtual page number 101 of each entry, and outputs the output of each tag comparator as an input. AND
It is composed of a gate 123.
【0010】さらに、図3には一般的なコンピュータシ
ステムで使われている、仮想ページ番号記憶領域Xの構
成を表すブロック図を示す。中央処理装置3から入力さ
れる仮想ページ番号Xをクロック301とラッチイネー
ブル信号302の信号の論理積を出力とする信号303
によって入力タイミングを制御され、仮想ページ番号記
憶領域Xに記憶される。しかし、本発明においては、一
般的なコンピュータシステムに利用される図3の仮想ペ
ージ番号記憶領域Xとは異なり、タグ比較イネーブルビ
ットに応じた入力制御を行う図1に構成された仮想アド
レス入力部11を構成する。図4にタグ比較イネーブル
ビットを用いた仮想ページ番号記憶装置の構成を表すブ
ロック図を示す。中央処理装置3より入力される仮想ペ
ージ番号20ビットに対して、上位2ビットと、下位1
0ビットの仮想ページ番号X1およびX6に関しては、
図3に示した一般的な仮想ページ番号記憶領域の同じ構
成をとっている。しかし、上位3ビットと上位4ビット
の仮想ページ番号X2に関しては、クロック401、ラ
ッチイネーブル402の論理積403aの出力とタグ比
較イネーブルビットTE1をANDゲート403bに入
力し、ANDゲート403bの出力を仮想ページ番号記
憶領域X2のデータ取り込み制御信号とする。同様に、
仮想ページ番号記憶領域X3、X4、X5に対しても4
03c、403d、403eのANDゲートの出力制御
信号によりデータを取り込む。この構成により、タグ比
較イネーブルビットTEがノンアクティブの場合は、A
NDゲートの出力が常に“0”となるために、中央処理
装置からの仮想ページ番号が入力されず仮想ページ番号
記憶領域のデータが変化しない。つまり、図3の構成の
場合では、中央処理装置から同じ信号を入力している時
でも、入力制御信号がクロックと同期して変動するため
に電力が消費されることになるが、図4の構成において
は、タグ比較イネーブルビットが“1”の時だけ通常動
作のように仮想ページ番号を取り込み、タグ比較イネー
ブルビットが“0”のときは常に一定値となり入力制御
信号の切り替わりが起こらないために電力がほとんど消
費されないことを意味する。この消費電力が小さいの
は、静止時にはPMOS、NMOSのどちらかが遮断状
態となり、わずかなリーク電流が流れるのみで、全体的
にみるとほとんど電流が流れないためである。FIG. 3 is a block diagram showing a configuration of a virtual page number storage area X used in a general computer system. A signal 303 in which the virtual page number X input from the central processing unit 3 is output as the logical product of the clock 301 and the latch enable signal 302
The input timing is controlled by the CPU and stored in the virtual page number storage area X. However, in the present invention, unlike the virtual page number storage area X in FIG. 3 used in a general computer system, the virtual address input unit configured in FIG. 1 for performing input control according to the tag comparison enable bit 11 is constituted. FIG. 4 is a block diagram showing a configuration of a virtual page number storage device using a tag comparison enable bit. For the 20-bit virtual page number input from the central processing unit 3, the upper 2 bits and the lower 1
For 0-bit virtual page numbers X1 and X6,
It has the same configuration as the general virtual page number storage area shown in FIG. However, regarding the virtual page number X2 of the upper 3 bits and the upper 4 bits, the output of the logical product 403a of the clock 401 and the latch enable 402 and the tag comparison enable bit TE1 are input to the AND gate 403b, and the output of the AND gate 403b is virtual. It is a data fetch control signal for the page number storage area X2. Similarly,
4 for the virtual page number storage areas X3, X4, X5
Data is taken in by the output control signals of the AND gates 03c, 403d and 403e. With this configuration, when the tag comparison enable bit TE is inactive, A
Since the output of the ND gate is always "0", the virtual page number from the central processing unit is not input, and the data in the virtual page number storage area does not change. That is, in the configuration of FIG. 3, even when the same signal is input from the central processing unit, power is consumed because the input control signal fluctuates in synchronization with the clock. In the configuration, the virtual page number is fetched as in the normal operation only when the tag comparison enable bit is "1", and when the tag comparison enable bit is "0", the value is always a constant value and the input control signal does not switch. Means that little power is consumed. The reason why the power consumption is small is that either the PMOS or the NMOS is shut off at the time of rest and only a small leak current flows, and almost no current flows as a whole.
【0011】つぎに、本発明を実現するために必要なメ
モリマッピングの設定例について説明する。今、図5に
示すようにあるプロセスのメモリ領域の割り当てを考え
てみる。ここでは、32ビットの仮想アドレスを用いて
説明を行っているので、仮想メモリ空間は4GBのメモ
リ空間が存在することになる。また、これまで説明して
きたアドレス変換装置ではアドレス変換を行う時に、仮
想ページ番号を比較すると同時に、プロセス識別子の比
較も行っている。つまり、このことは、現在走行中のプ
ロセスと同じプロセスに関してのみアドレス変換を行う
ことを意味する。また、各プロセス間でメモリ領域を共
有できるプロセスが他にもある場合は、グローバルビッ
トをアクティブな状態に設定しておくことによって、ア
ドレス変換の際に仮想ページ番号の比較で一致すれば、
プロセス識別子の比較を行わずにアドレス変換を行うこ
とができる。このように、プロセス識別子に応じて、仮
想メモリ空間から、物理メモリ空間にメモリ空間をマッ
ピングするということは、図5(a)に示すような単一
仮想アドレス空間ではなく、図5(b)に示すような各
プロセス毎に4GBのメモリ空間をもつ多重仮想アドレ
ス空間を採用していることを意味している。つまり、単
一仮想メモリ空間の場合は、図5(a)のように各プロ
セスのメモリマッピングは各ハッシュに示したように割
り当てられるが、異なるプロセスに対して同じメモリ領
域を共有したくないがメモリ領域を共有しなければいけ
ないことが生じるが、図5(b)のように多重仮想アド
レス空間ではプロセス毎に仮想メモリ空間を持つことが
できるために、各プロセス間のメモリマッピングを考慮
しなくてもよい。よって4GBもの膨大なメモリ空間を
さらにプロセス間で独立に扱うことができるため論理上
メモリ空間の拡大が大幅に実現できていることがわか
る。しかし、実際作成されるプログラムではメモリ容量
が大きく必要な場合でも数MB程度のものがほとんどで
あり、各プログラムを作成するに当って、4GBもの連
続するメモリ空間が必ずしも必要になるわけではない。
本発明では、この多重仮想アドレス空間を有効に活用す
ることによりアドレス変換装置を使用する。たとえば、
図5にあるように4GBあるメモリ空間を一様に利用し
ないでミラー空間を作成しておくことを考える。ミラー
アドレス空間について図6を用いて説明する。たとえ
ば、8ビットの仮想アドレス空間を考える。8ビットの
アドレス空間ということは、256Bのメモリ空間であ
る。いま仮に8ビットのアドレスに関して図6(b)の
ようにページサイズを16B(4ビット)としてページ
テーブルを作成し、アドレス変換することを考える。こ
こでは、256B仮想メモリ空間から32B物理メモリ
空間にアドレス変換を行う例を示している。0x80の
アドレス(8ビット幅)を0x10(5ビット幅)にマ
ッピングし、0x10(8ビット幅)のアドレスは0x
00(5ビット幅)にマッピングされるようなページテ
ーブルを作成しておく。ここでは、0xc0のアドレス
に関しては、特にマッピングを行わないとする。しか
し、もし、このアドレス変換において仮想ページ番号の
3ビット目を考慮しないでアドレス変換を実施した場合
は、0x80(ページ番号1000)も0xc0(ペー
ジ番号1100)も同じ仮想ページ番号(1?00)に
よるアクセスが来たと考えて0x10にマッピングされ
ることになる(?はアドレス変換の際に比較対象とされ
ない)。この考えに基づいてメモリマップを作成する
と、図6(c)のような構成になる。このように、ある
ビットを考慮しないでアドレス変換を行うということ
は、メモリ空間において、同じ物理空間にマッピングさ
れる仮想メモリ空間を作成することになる。つまり、0
x80 -0x8fのアドレス空間と0xc0 -0xcf
のアドレス空間が同じアドレス空間を表していると考え
ればよい。同様に他のアドレスに対しても、図6(c)
のように同じハッシュ領域に関して、同じ物理空間にマ
ッピング(ミラー)されることになる。この考え方を有
効利用して、32ビットのアドレスに関して同じように
適用したものを図7に作成する。ここでは、上位5ビッ
ト目から上位8ビット目に区別をつけなかった場合を考
える。こうすることによって、実際0x*?*****
*(?はアドレス変換の際に比較されないビット領域、
*は任意の値を示す)のアドレス空間を作成することが
できる。Next, a description will be given of a setting example of memory mapping necessary for realizing the present invention. Now, consider the allocation of the memory area of a certain process as shown in FIG. Here, since the description is made using a 32-bit virtual address, the virtual memory space has a 4 GB memory space. Further, in the address translation apparatus described so far, when performing the address translation, the virtual page numbers are compared and the process identifiers are compared at the same time. That is, this means that address conversion is performed only for the same process as the currently running process. Also, if there is another process that can share the memory area between the processes, by setting the global bit to the active state, if the virtual page numbers match during address translation,
Address conversion can be performed without comparing process identifiers. In this way, mapping the memory space from the virtual memory space to the physical memory space according to the process identifier is not a single virtual address space as shown in FIG. Means that a multiple virtual address space having a 4 GB memory space is used for each process as shown in FIG. In other words, in the case of a single virtual memory space, as shown in FIG. 5A, the memory mapping of each process is assigned as shown in each hash, but it is not desired that different processes share the same memory area. Although a memory area must be shared, a multiple virtual address space can have a virtual memory space for each process as shown in FIG. 5 (b). You may. Therefore, it can be seen that a huge memory space as large as 4 GB can be further handled independently between processes, so that the logical memory space can be greatly expanded logically. However, most programs actually created have a memory capacity of about several MB even when a large memory capacity is required, and a memory space of as much as 4 GB is not necessarily required to create each program.
In the present invention, an address translation device is used by effectively utilizing this multiple virtual address space. For example,
Assume that a mirror space is created without uniformly using a memory space of 4 GB as shown in FIG. The mirror address space will be described with reference to FIG. For example, consider an 8-bit virtual address space. The 8-bit address space is a 256B memory space. Suppose now that a page table is created for an 8-bit address with a page size of 16B (4 bits) as shown in FIG. 6B and the address is converted. Here, an example is shown in which address conversion is performed from a 256B virtual memory space to a 32B physical memory space. The 0x80 address (8 bits wide) is mapped to 0x10 (5 bits wide), and the 0x10 (8 bits wide) address is 0x10
A page table that is mapped to 00 (5 bit width) is created in advance. Here, it is assumed that no particular mapping is performed for the address of 0xc0. However, if the address conversion is performed without considering the third bit of the virtual page number in this address conversion, 0x80 (page number 1000) and 0xc0 (page number 1100) have the same virtual page number (1? 00). Is assumed to have been accessed, and is mapped to 0x10 (? Is not considered as a comparison target during address translation). When a memory map is created based on this idea, a configuration as shown in FIG. 6C is obtained. As described above, performing the address translation without considering a certain bit creates a virtual memory space mapped to the same physical space in the memory space. That is, 0
x80-0x8f address space and 0xc0-0xcf
Address space represents the same address space. Similarly, for other addresses, FIG.
Is mapped (mirror) to the same physical space with respect to the same hash area. By making effective use of this concept, FIG. 7 shows an example in which the same applies to a 32-bit address. Here, a case is considered where no distinction is made between the upper 5 bits and the upper 8 bits. By doing this, actually 0x *? ****
* (? Is a bit area that is not compared during address translation,
* Indicates an arbitrary value).
【0012】32ビットのアドレス空間では、上位4ビ
ットの値で0x00000000 -0x0ffffff
fを一つの領域と考えた場合、上位4ビットにより4G
Bのメモリ空間を16個の領域に分類することができ
る。さらに、上位5ビットから上位8ビットの4ビット
ではこれらの各領域をさらに16個に分割することにな
る。ここで、この第2の上位4ビットを0に固定して使
用することにする。つまり、4GBのメモリ空間の各1
6個に分割された領域について、その分割された16個
の領域のうち、最初の一つの領域のみ使用することを考
える。こうすることにより、0x80000000 -0
x80ffffffの領域だけを使用して、後の0x8
1000000 -0x81ffffff以降の15個の
領域に関しては、0x80000000 -0x80ff
ffffのミラーとして存在させておく。実際のプログ
ラムでは、上位数ビットによるアドレス空間の決定と、
下位数ビットによる詳細なアドレス領域の指定に使わ
れ、中位の数ビットはプログラム上ではアドレス領域の
指定には使われていないことが比較的多いことを利用す
れば、上記メモリマッピングによりTLB等でタグ比較
を行う際は、必ず、上位5ビットから上位8ビットの4
ビットに関しては常に0を持つことになる。また、実際
アドレス変換を実行する場合は、中央処理装置から入力
される仮想ページ番号vpnと各エントリに設定された
仮想ページ番号VPNは常に固定値0が比較されること
になり、そのビットに関するTLBのタグ比較をしなく
てもよいことになる。本実施の形態では、タグ比較イネ
ーブルビットTEは4ビット用いられており、その各ビ
ットが中央処理装置から入力される仮想ページ番号の上
位3、4ビット目、上位5、6ビット目、上位7、8ビ
ット目、および上位9、10ビット目に対応している。
さらに上記メモリマッピングを行っているとき、タグイ
ネーブルビットTEを1001と設定すれば、仮想ペー
ジ番号vpnの上位5から8ビットまでの入力が行われ
ない。また、TLB1の仮想ページ番号比較器12のう
ち、上位5ビット目から上位8ビットまでの4ビットが
常にヒットする状態に固定される。すなわち、上記4ビ
ットに関しては常にアクティブになるように信号が設定
される。これにより、入力される仮想ページ番号vpn
中の上位5から8ビット目においては、刻々と変化する
中央処理装置からのタグアドレス入力に対しても第2タ
グアドレス記憶領域の上記部分は動作せず記憶領域の信
号値が変化することがない。さらに第1比較器の4ビッ
ト分に相当する全エントリに対する比較器に関しても信
号値が変わることがないため、消費される電力は大幅に
削減できる。このメモリ空間の有効利用とハードウェア
にタグ比較イネーブルビットおよび、低消費電力化のた
めに信号の変化を押さえた仮想ページ番号記憶領域vp
nを使うことにより。実質、あるビットのみタグ比較を
必要とするTLBを作成することができる。これによ
り、タグ比較とタグ記憶領域への読み書きに必要な消費
電力を削減することができる。同様に、ページテーブル
にどのように影響を及ぼすかを考えると、TLBに登録
されているエントリにおいて、常に仮想ページテーブル
の上位5ビット目から8ビット目までが常に0であるこ
とが言える。このことがわかっているために、TLBに
おいてタグ比較動作を行う際も、メインメモリでページ
テーブルを検索するためにテーブルウォークを行う際も
この4ビットに関しての情報を持つ必要がなくなるた
め、比較しなくてもヒット信号を出すことができること
になる。この場合に、図4で述べた回路を使用すること
により、また全体像としては図8で示したように、タグ
比較イネーブルビット801の値に応じて、仮想ページ
番号記憶領域804と仮想ページ番号比較器802の信
号を固定することによって、仮想ページ番号の常に一定
値が設定されているであろう領域804に対してタグ比
較器の信号を変化させることなく、タグ比較に必要な消
費電力が削減でき、メインメモリではこのビットに関す
る情報を持たなくてよいためにページテーブルを管理す
るメモリ容量を削減することができる。In the 32-bit address space, the value of the upper 4 bits is 0x00000000-0x0ffffff.
If f is considered as one area, 4G
The memory space of B can be classified into 16 areas. In addition, each of these areas is further divided into 16 bits with 4 bits from the upper 5 bits to the upper 8 bits. Here, the second upper 4 bits are fixed to 0 and used. That is, each one of the 4 GB memory space
It is assumed that only the first one of the sixteen divided areas is used among the sixteen divided areas. By doing this, 0x80000000-0
Using only the x80ffffff area, the subsequent 0x8
For the 15 areas after 1,000,000-0x81ffffff, 0x80000000-0x80ff
It exists as a mirror of ffff. In an actual program, the address space is determined by the upper few bits,
Taking advantage of the fact that the lower few bits are used to specify a detailed address area and the middle few bits are relatively unused in specifying an address area in a program, TLB and the like can be obtained by the above memory mapping. When comparing tags, always use the upper 5 bits to the upper 8 bits
Bits always have 0s. When the actual address conversion is performed, the virtual page number vpn input from the central processing unit and the virtual page number VPN set in each entry are always compared with a fixed value 0, and the TLB relating to the bit is compared. Tag comparison need not be performed. In the present embodiment, four bits are used as the tag comparison enable bit TE, and each bit is the upper third, fourth, upper fifth, sixth, and upper seven bits of the virtual page number input from the central processing unit. , 8th bit and upper 9th and 10th bits.
Furthermore, if the tag enable bit TE is set to 1001 during the above memory mapping, the upper 5 to 8 bits of the virtual page number vpn are not input. In the virtual page number comparator 12 of the TLB 1, four bits from the upper 5th bit to the upper 8 bits are fixed to always hit. That is, the signal is set so that the four bits are always active. Thereby, the input virtual page number vpn
In the upper 5th to 8th bits in the middle, the above-described portion of the second tag address storage area does not operate even when the tag address is input from the central processing unit that changes every moment, and the signal value of the storage area may change. Absent. Further, since the signal values of the comparators for all entries corresponding to the four bits of the first comparator do not change, power consumption can be significantly reduced. A tag comparison enable bit for the effective use of the memory space and the hardware, and a virtual page number storage area vp for suppressing a signal change to reduce power consumption
by using n. In effect, a TLB that requires a tag comparison for only certain bits can be created. As a result, it is possible to reduce the power consumption required for tag comparison and reading / writing from / to the tag storage area. Similarly, considering how this affects the page table, it can be said that, in the entries registered in the TLB, the upper 5th to 8th bits of the virtual page table are always 0. Since this is known, it is not necessary to have information on these 4 bits when performing the tag comparison operation in the TLB and when performing a table walk to search the page table in the main memory. A hit signal can be issued without this. In this case, the virtual page number storage area 804 and the virtual page number 804 are used in accordance with the value of the tag comparison enable bit 801 by using the circuit described in FIG. By fixing the signal of the comparator 802, the power consumption required for tag comparison can be reduced without changing the signal of the tag comparator for the area 804 in which the constant value of the virtual page number will always be set. Since the main memory does not need to have information on these bits, the memory capacity for managing the page table can be reduced.
【0013】本例では、図7のメモリマッピングされた
プログラムを図4の仮想ページ番号記憶手段を含む図1
のタグアドレス比較装置を用いることにより、中央処理
装置から送られる仮想ページ番号に対する物理アドレス
に変換する際にも、ミラー空間により比較の必要のない
ビットに関しては、アドレス変換バッファの連想メモリ
を動作させることなく従来どおりアドレス変換を実現す
ることができた。しかし、仮想記憶の大きな利点は2つ
ある。まず、上記説明にあるように、物理メモリ空間に
制限されずに論理上さらに大きなメモリ空間があると考
えてプログラムを作成することができること。もうひと
つは、メモリ空間を複数のプログラム間で効率よく共有
することである。もちろん、プログラムのコンパイル時
には、どのプログラムとどのプログラムが物理メモリを
共有することになるかは分からない。実際、物理メモリ
を共有するプログラムは、プログラムの実行中に動的に
変わることもある。よって、個々のプログラムは独自の
アドレス空間内にコンパイルしたい。ここで、独自のア
ドレス空間とは、プログラム毎に別々にメモリ空間が割
り当てられ、該当プログラムしかその空間にアクセスす
ることができないということである。ところが、単一の
物理メモリを複数のユーザ・プログラムで共有する。さ
らには、オペレーティングシステムも物理メモリを共有
する。したがって、あるプログラムが他のプログラムを
壊すことがないように保護することができなければいけ
ない。このように、仮想記憶には、各プログラム独自の
アドレス空間を実アドレス空間に変換する機能と、他の
プログラムのアドレス空間を保護する機能が両方とも備
わっている。しかし、本発明では、仮想ページ番号比較
器を改良して図4のようにし、仮想アドレスのミラーを
作成したことによって、そのミラー領域に対する不正ア
クセスがプログラムのバグ等により起こる可能性が考え
られる。つまり、この方法ではメモリ保護の機能を十分
満足できない。なぜなら、TLBのタグ比較で上位5ビ
ットから上位8ビットを0であることを前提にTLBを
動作させているために、もし、プログラムのバグ等によ
り、不正にアドレスを比較していない領域において、想
定していない値をもつアドレスでアクセスした場合もア
ドレス変換が実行され、誤ったアドレス生成により不正
にメモリをアクセスされることになる。つまり、図6の
例のように、0x80の仮想アドレスには0x10にア
ドレス変換を行うようにページテーブルを設定している
が、0xc0に関しては設定されていない。しかし、図
4の回路を使用した場合は、マッピングされるべきでな
い0xc0の仮想アドレスに対しても0x10の物理ア
ドレスにマッピングされることになる。つまり、不本意
なアクセスにより、メモリ領域を侵害されることにな
る。このことは、仮想記憶のもう一つの目的である記憶
領域の保護に関して機能を損なうことになる。この問題
を解決するために本発明ではさらに、図9のような機能
を付加する。図9はTLBの各エントリには上位5ビッ
トから上位8ビットが0であることを前提にタグイネー
ブルビット901が設定されている。しかしこのよう
に、タグ比較を行わないビットに関しては、オペレーテ
ィングシステムとして正しく“0”の値が使われている
か判断するために、比較器を使う必要はなく、“0”で
あることを前提に使っているために、タグ比較イネーブ
ルビット901の反転信号と、中央処理装置から出力さ
れている信号の論理積を取った信号905の出力により
判定することができる。この出力が“1”になるときが
アクセス例外を意味する。すなわち、タグ比較イネーブ
ルビット901がアクティブになっているTE1に関し
てみると、TE1が“1”であるため、インバータ90
4aを通って“0”にかわり、これがANDゲート90
5a、905bに入力されると出力は必ず“0”にな
る。つまり、ここでは、常に信号が入力されているため
に上記の不正アクセスが起こらない。また、TEbに関
しては、インバータ904bを通って“1”にかわり、
これがANDゲート905c、905dに入力される。
このときのANDゲートの出力はもう一方の信号X3に
よって決まるため、プログラムが想定していなうアドレ
スの“1”を使っている場合は、ANDゲート905
c、905dの出力が“1”となる。つまり、アクセス
例外を検出できる。よって、これらの出力905a、9
05b、905c、905d、905e、905f、9
05g、905hの論理和をとることにより、アクセス
例外がないかどうかを判定できる。タグ期待値判定手段
906は、TLBの各エントリに対して必要なわけでは
ない、これにより、数ビット分のANDゲートは増える
ことになるが、全エントリの比較器の動作制限は、依然
として実現できていることに注意したい。また、基本的
にこの信号は常に0がセットされており、タグ期待値比
較器705の内容は正常なアクセスが行われる限り変化
することがないため、ほとんど、電力を消費することは
ない。もし、不正アクセスがあったならば、上記タグ期
待値比較結果がミス信号706を出し、オペレーティン
グシステムにアクセス例外があったことを知らせること
ができる。こうすることにより、仮想記憶本来の性能を
失うことなく、上記で説明されるアドレス変換装置の消
費電力を削減することができる。In this embodiment, the memory-mapped program shown in FIG. 7 is stored in the memory shown in FIG.
By using the tag address comparison device, the associative memory of the address conversion buffer is operated for bits that do not need to be compared due to the mirror space when the physical address is converted to the virtual page number sent from the central processing unit. Address conversion can be realized as before without any problem. However, virtual storage has two major advantages. First, as described above, a program can be created on the assumption that there is a logically larger memory space without being limited to the physical memory space. Another is to efficiently share the memory space among multiple programs. Of course, at the time of compiling the program, it is not known which program and which program will share the physical memory. In fact, programs that share physical memory may change dynamically during execution of the program. Therefore, we want to compile each program into its own address space. Here, the unique address space means that a memory space is separately allocated to each program, and only that program can access the space. However, a single physical memory is shared by a plurality of user programs. Further, the operating system also shares physical memory. Therefore, it must be possible to protect one program from breaking another program. As described above, the virtual memory has both a function of converting an address space unique to each program into a real address space and a function of protecting the address space of another program. However, in the present invention, since the virtual page number comparator is improved as shown in FIG. 4 and a mirror of the virtual address is created, there is a possibility that unauthorized access to the mirror area may occur due to a bug in a program or the like. That is, this method cannot sufficiently satisfy the function of memory protection. Because the TLB is operated on the assumption that the upper 5 bits to the upper 8 bits are 0 in the TLB tag comparison, if the address is not illegally compared due to a program bug or the like, Even when an access is made with an address having an unexpected value, the address conversion is executed, and the memory is illegally accessed due to incorrect address generation. That is, as in the example of FIG. 6, the page table is set so that the address conversion is performed to 0x10 for the virtual address of 0x80, but 0xc0 is not set. However, when the circuit of FIG. 4 is used, a virtual address of 0xc0 which should not be mapped is also mapped to a physical address of 0x10. That is, a memory area is infringed by unintended access. This impairs the function of another area of virtual storage, that is, protection of a storage area. In order to solve this problem, the present invention further adds a function as shown in FIG. In FIG. 9, the tag enable bit 901 is set in each entry of the TLB on the assumption that the upper 5 bits to the upper 8 bits are 0. However, as described above, it is not necessary to use a comparator to determine whether a value of “0” is correctly used as an operating system for a bit for which tag comparison is not performed. Since it is used, the determination can be made based on the output of the signal 905 obtained by calculating the logical product of the inverted signal of the tag comparison enable bit 901 and the signal output from the central processing unit. When this output becomes "1", it means an access exception. That is, regarding TE1 in which the tag comparison enable bit 901 is active, since TE1 is "1", the inverter 90
4a, it changes to “0”, and this is the AND gate 90
The output is always "0" when it is input to 5a and 905b. That is, here, since the signal is always input, the above illegal access does not occur. In addition, TEb is changed to “1” through the inverter 904b,
This is input to AND gates 905c and 905d.
Since the output of the AND gate at this time is determined by the other signal X3, if the address "1" assumed by the program is used, the AND gate 905 is used.
The outputs of c and 905d become "1". That is, an access exception can be detected. Therefore, these outputs 905a, 905a
05b, 905c, 905d, 905e, 905f, 9
By taking the logical sum of 05g and 905h, it can be determined whether or not there is an access exception. The tag expected value determination means 906 is not necessary for each entry of the TLB. This increases the number of AND gates for several bits, but the operation limitation of the comparator for all entries can still be realized. Please note that. Basically, this signal is always set to 0, and the contents of the tag expected value comparator 705 do not change as long as normal access is performed, so that almost no power is consumed. If there has been an unauthorized access, the tag expected value comparison result issues a miss signal 706 to inform the operating system that an access exception has occurred. By doing so, it is possible to reduce the power consumption of the address translation device described above without losing the original performance of the virtual storage.
【0014】また、タグ期待値判定手段を含むタグアド
レス比較装置を図10に示す。さらに最終的には、図1
1のように図8に示したアドレス変換バッファに対して
目的に応じて、メモリマッピングを行い、それに応じて
ハードウェアを量産する場合においては、タグ比較を行
わないのではなく、タグ比較を行うもののみ物理的に実
装することができる。同様に、図12のように図10に
示したアドレス変換バッファに対して目的に応じて、メ
モリマッピングを行い、それに応じてハードウェアを量
産する場合においては、タグ比較を行わないのではな
く、タグ比較を行うもののみ物理的に実装することがで
きる。こうすれば、不必要なタグメモリが削減できるた
めに、削除されたタグメモリに必要な全消費電力の削減
と、さらには、面積の削減が実現できチップサイズの小
型化が行える。FIG. 10 shows a tag address comparing device including a tag expected value determining means. More ultimately, FIG.
In the case where memory mapping is performed on the address conversion buffer shown in FIG. 8 according to the purpose as in 1 and hardware is mass-produced accordingly, tag comparison is performed instead of not performing tag comparison. Only things can be physically implemented. Similarly, in the case where memory mapping is performed for the address translation buffer shown in FIG. 10 as shown in FIG. 12 according to the purpose and hardware is mass-produced accordingly, tag comparison is not performed. Only those that perform tag comparison can be physically implemented. In this way, unnecessary tag memories can be reduced, so that the total power consumption required for the deleted tag memories can be reduced, and further, the area can be reduced and the chip size can be reduced.
【0015】なお、本発明の実施の形態に関しては、ア
ドレス変換装置を用いたが、キャッシュによる、タグア
ドレス比較装置に対しても実施することができる。ま
た、タグ比較イネーブルビットのビット数を4ビット、
タグアドレス入力制御手段を持ったタグアドレス記憶手
段を8ビット分用いたが、この数に関しては、この限り
ではない。Although the embodiment of the present invention uses an address translator, the present invention can also be applied to a tag address comparing device using a cache. Also, the number of tag comparison enable bits is 4 bits,
Although the tag address storage means having the tag address input control means is used for 8 bits, the number is not limited to this.
【0016】[0016]
【発明の効果】以上の説明により、本発明は次のような
効果を奏する。According to the above description, the present invention has the following effects.
【0017】まず、請求項1に記載のタグアドレス比較
装置は、タグ比較イネーブルビットの設定により入力さ
れる仮想ページ番号のラッチタイミングを制御し、タグ
比較イネーブルビットにより比較器無稼動領域に設定さ
れた領域に対する仮想ページ番号の読み書きおよび、比
較器は入力される信号に変化を与えない状態にすること
により、消費電力を押さえることができる。特に、比較
器無稼動領域に対するタグアドレス記憶手段に関して
は、従来の装置では、同じ信号を入力する際も、入力タ
イミングを制御する信号がクロックと同期して入力され
るために、信号の変化により、電力が消費されたが、本
発明により使用されたタグアドレス記憶手段に関して
は、タグ比較イネーブルビットによって、ディセーブル
されている記憶装置に関しては、入力制御タイミングが
固定されているので、上記のような電力消費が起こらな
い。さらに、タグアドレス比較動作に関しても、正常動
作されている限りは、常に同じ“0”の信号を比較して
おり、信号の変化がないため、電力消費が削減できる。First, the tag address comparison device according to the first aspect controls the latch timing of the virtual page number input by setting the tag comparison enable bit, and sets the comparator non-operable area by the tag comparison enable bit. The power consumption can be suppressed by reading and writing the virtual page number to and from the input area and making the comparator not change the input signal. In particular, with respect to the tag address storage means for the comparator non-operating area, in the conventional device, even when the same signal is input, the signal for controlling the input timing is input in synchronization with the clock, so that the change in the signal causes However, as for the tag address storage means used according to the present invention, the input control timing is fixed for the storage device disabled by the tag comparison enable bit. Power consumption does not occur. Further, as for the tag address comparison operation, the same "0" signal is always compared as long as the operation is normal, and there is no change in the signal, so that power consumption can be reduced.
【0018】また、請求項3に記載のアドレス変換装置
により、上記消費電力を削減することができる上に、プ
ログラムのバグ等により仮想ページ番号の無比較領域に
おいてプログラムが想定している値以外の値を使用して
不正アクセスがあった場合においても、比較器を用いず
にアクセス例外を検出でき仮想記憶装置本来のメモリ保
護の機能を発揮できる。According to the address translation device of the third aspect, the power consumption can be reduced, and a value other than the value assumed by the program in the non-comparison area of the virtual page number due to a bug in the program or the like. Even when an illegal access is made using the value, an access exception can be detected without using a comparator, and the function of memory protection inherent in the virtual storage device can be exhibited.
【0019】また、請求項2に記載のアドレス変換装置
では、タグ比較イネーブルビットを仮想ページ番号記憶
領域に入力しているため、この信号を入力後は、タグ比
較イネーブルビットがノンアクティブに設定されている
仮想ページ番号記憶領域に関しては、ほとんど電力は消
費されることがない。In the address translation device according to the present invention, since the tag comparison enable bit is input to the virtual page number storage area, the tag comparison enable bit is set to non-active after inputting this signal. Power is hardly consumed for the virtual page number storage area.
【0020】請求項4又は請求項5に記載のアドレス変
換装置では、アドレス変換用のタグメモリを必要な領域
だけ実装すればよいので、チップの消費電力を削減でき
ることはもとより、チップ面積を削減することもでき、
コストパフォーマンスの向上につながる。In the address translation device according to the fourth or fifth aspect, the tag memory for address translation only needs to be mounted in a necessary area, so that not only the power consumption of the chip can be reduced, but also the chip area can be reduced. You can also
This leads to improved cost performance.
【図1】実施の形態に係るタグアドレス比較装置の構成
を示すブロックFIG. 1 is a block diagram showing a configuration of a tag address comparison device according to an embodiment.
【図2】一般的なタグアドレス比較器の構成を示すブロ
ック図FIG. 2 is a block diagram showing a configuration of a general tag address comparator.
【図3】一般的なタグアドレス記憶手段の構成を示すブ
ロック図FIG. 3 is a block diagram showing a configuration of a general tag address storage unit;
【図4】タグ比較イネーブルビットを用いたタグアドレ
ス記憶手段の構成を示すブロック図FIG. 4 is a block diagram showing a configuration of a tag address storage unit using a tag comparison enable bit;
【図5】単一仮想アドレス空間と多重仮想アドレス空間
のイメージ図FIG. 5 is a conceptual diagram of a single virtual address space and a multiple virtual address space.
【図6】仮想アドレス空間のアドレス変換を行う一例を
模式的に示す図FIG. 6 is a diagram schematically illustrating an example of performing address conversion in a virtual address space.
【図7】ミラー空間を使用した仮想アドレス空間の割り
当ての一例を模式的に示す図FIG. 7 is a diagram schematically illustrating an example of allocation of a virtual address space using a mirror space;
【図8】図1に示すタグアドレス比較部のブロック図FIG. 8 is a block diagram of a tag address comparing unit shown in FIG. 1;
【図9】図1に示すタグアドレス記憶手段にタグ期待値
判定手段を挿入したブロック図FIG. 9 is a block diagram in which tag expected value determination means is inserted into the tag address storage means shown in FIG. 1;
【図10】図8に示すタグアドレス比較部にタグ期待値
判定手段を挿入したブロック図FIG. 10 is a block diagram in which tag expected value determination means is inserted in the tag address comparison unit shown in FIG. 8;
【図11】図8に示すタグアドレス比較部に対して無比
較領域となっていないタグメモリ部のみを実装する構成
を示すブロック図11 is a block diagram showing a configuration in which only a tag memory unit that is not a non-comparison area is mounted on the tag address comparison unit shown in FIG. 8;
【図12】図10に示すタグアドレス比較部に対して無
比較領域となっていないタグメモリ部のみを実装する構
成を示すブロック図12 is a block diagram showing a configuration in which only a tag memory unit that is not a non-comparison area is mounted on the tag address comparison unit shown in FIG.
1 TLB 2 制御レジスタ 3 中央処理装置 10 タグ部 11 タグアドレス入力部 12 タグアドレス比較器 13 プロセス識別子比較器 14 データ部 101 仮想ページ番号記憶領域 102 プロセス識別子記憶領域 103 グローバルビット記憶領域 111 タグ比較イネーブルビット記憶領域 141 物理ページ番号記憶領域 906 タグ期待値判定手段 DESCRIPTION OF SYMBOLS 1 TLB 2 Control register 3 Central processing unit 10 Tag part 11 Tag address input part 12 Tag address comparator 13 Process identifier comparator 14 Data part 101 Virtual page number storage area 102 Process identifier storage area 103 Global bit storage area 111 Tag comparison enable Bit storage area 141 Physical page number storage area 906 Tag expected value determination means
Claims (5)
記録した複数のエントリを記憶するエントリ記憶手段
と、 前記第1タグアドレスに対して、中央処理装置から入力
される第2タグアドレスを記憶するタグアドレス記憶手
段と、 前記タグアドレス記憶手段において、中央処理装置から
のタグアドレス入力タイミングを部分的に制御するタグ
アドレス入力制御手段と、 前記第2タグアドレスと、前記エントリ記憶手段に記憶
された前記第1タグアドレスとを比較するタグアドレス
比較手段と、 前記タグアドレス比較手段の比較結果が一致するエント
リを前記エントリ記憶手段により検索するエントリ検索
手段とを有するタグアドレス比較装置。1. An entry storage means for storing a plurality of entries in which data is recorded in association with each tag address, and a second tag address input from a central processing unit for the first tag address. A tag address storage means, a tag address input control means for partially controlling a tag address input timing from a central processing unit in the tag address storage means, the second tag address, and a tag address stored in the entry storage means. A tag address comparing device, comprising: a tag address comparing unit that compares the first tag address with the first tag address;
第2タグアドレス記憶領域に設けられ、前記タグアドレ
ス入力制御手段が複数ビットにより構成されるタグ比較
イネーブルビットである請求項1記載のタグアドレス比
較装置。2. The tag address according to claim 1, wherein said tag address input control means is provided in said second tag address storage area, and said tag address input control means is a tag comparison enable bit composed of a plurality of bits. Comparison device.
入力更新を行わない第2タグアドレスの領域において、
プログラムが正しく“0”の値を使用しているかを判断
するタグ期待値判定手段を有する請求項1または、請求
項2に記載のタグアドレス比較装置。3. In an area of a second tag address where input update is not performed based on the tag comparison enable bit,
3. The tag address comparison device according to claim 1, further comprising tag expected value determination means for determining whether the program uses a value of "0" correctly.
レス比較装置におい、て、前記タグ比較イネーブルビッ
トに基づき、複数のエントリにおいて比較の必要がある
と判断される第1タグアドレス記憶手段のみを実装する
タグアドレス比較装置。4. The tag address comparing device according to claim 1, wherein the first tag address storing means determines that it is necessary to compare a plurality of entries based on the tag comparison enable bit. Tag address comparison device that only implements.
段を有するタグアドレス比較装置において、前記タグ期
待値判定手段により、複数のエントリにおいて比較の必
要があると判断される第1タグアドレス記憶手段のみを
実装する請求項1または請求項2に記載のタグアドレス
比較装置。5. The tag address comparing device having the tag expected value determining means according to claim 3, wherein the tag expected value determining means determines that a plurality of entries need to be compared. 3. The tag address comparison device according to claim 1, wherein only the storage unit is implemented.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11071471A JP2000267932A (en) | 1999-03-17 | 1999-03-17 | Tag address comparing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11071471A JP2000267932A (en) | 1999-03-17 | 1999-03-17 | Tag address comparing device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000267932A true JP2000267932A (en) | 2000-09-29 |
Family
ID=13461571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11071471A Pending JP2000267932A (en) | 1999-03-17 | 1999-03-17 | Tag address comparing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000267932A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164395A (en) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | Address converter |
US7487367B2 (en) | 2002-11-18 | 2009-02-03 | Arm Limited | Apparatus and method for managing access to a memory |
JP2012119006A (en) * | 2005-03-03 | 2012-06-21 | Qualcomm Inc | Electric power saving method and device for selectively enabling comparator for a cam renaming register file based upon a known processor state |
-
1999
- 1999-03-17 JP JP11071471A patent/JP2000267932A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164395A (en) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | Address converter |
US7487367B2 (en) | 2002-11-18 | 2009-02-03 | Arm Limited | Apparatus and method for managing access to a memory |
JP2012119006A (en) * | 2005-03-03 | 2012-06-21 | Qualcomm Inc | Electric power saving method and device for selectively enabling comparator for a cam renaming register file based upon a known processor state |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3713312B2 (en) | Data processing device | |
JP3740195B2 (en) | Data processing device | |
US5689679A (en) | Memory system and method for selective multi-level caching using a cache level code | |
US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
US5412787A (en) | Two-level TLB having the second level TLB implemented in cache tag RAMs | |
US7461232B2 (en) | Translation look-aside buffer supporting mutually untrusted operating systems | |
US8966219B2 (en) | Address translation through an intermediate address space | |
JP3666689B2 (en) | Virtual address translation method | |
JP4065660B2 (en) | Translation index buffer with distributed functions in parallel | |
JPH08101797A (en) | Translation lookaside buffer | |
US20070239960A1 (en) | Data processor and IP module for data processor | |
JPH11161547A (en) | Storage device for data processor and method for accessing storage place | |
US10031854B2 (en) | Memory system | |
JPH04320553A (en) | Address converting mechanism | |
JP3045952B2 (en) | Full associative address translator | |
US7017024B2 (en) | Data processing system having no system memory | |
JPH0831060B2 (en) | Computer system | |
JP2930071B2 (en) | Information processing device and processor | |
KR19990037572A (en) | Design of Processor Architecture with Multiple Sources Supplying Bank Address Values and Its Design Method | |
JP2007280421A (en) | Data processor | |
JP2846697B2 (en) | Cache memory controller | |
JP2000267932A (en) | Tag address comparing device | |
JP2000276405A (en) | Address conversion device and computer system having this device | |
JP3447588B2 (en) | Memory management device, method, and storage medium storing program | |
JPH03211643A (en) | Translation lookaside buffer parallel exception inspection and update buffer |