JP2000267932A - タグアドレス比較装置 - Google Patents
タグアドレス比較装置Info
- 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
- comparison
- 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
(57)【要約】
【課題】 タグアドレス比較装置において、一部のタグ
アドレスの入力更新を行わないことによってタグメモリ
比較時およびタグアドレス記憶領域の読み書きに要する
消費電力を削減する。 【解決手段】 複数の部分より構成されるタグアドレス
の入力タイミングを部分的に規定するタグアドレス入力
制御手段のタグ比較イネーブルビットに基づき、入力さ
れるタグアドレスと前記エントリ中のタグアドレスと比
較し、エントリ検索手段12、105により、入力され
るタグアドレスに対し、このタグアドレスと一致するタ
グアドレスを含み、前記有効ビットがアクティブな場合
にエントリを検索するよう構成される。
アドレスの入力更新を行わないことによってタグメモリ
比較時およびタグアドレス記憶領域の読み書きに要する
消費電力を削減する。 【解決手段】 複数の部分より構成されるタグアドレス
の入力タイミングを部分的に規定するタグアドレス入力
制御手段のタグ比較イネーブルビットに基づき、入力さ
れるタグアドレスと前記エントリ中のタグアドレスと比
較し、エントリ検索手段12、105により、入力され
るタグアドレスに対し、このタグアドレスと一致するタ
グアドレスを含み、前記有効ビットがアクティブな場合
にエントリを検索するよう構成される。
Description
【0001】
【発明の属する技術分野】本発明は、メインメモリ内の
命令やデータの一時的格納装置であるキャッシュ装置に
関する。特に、タグ比較イネーブルビットに応じて中央
処理装置より入力されるタグアドレスの入力タイミング
を部分的に制御されたタグアドレスとキャッシュエント
リに設定されたタグアドレスを比較する、タグアドレス
比較装置に関する。
命令やデータの一時的格納装置であるキャッシュ装置に
関する。特に、タグ比較イネーブルビットに応じて中央
処理装置より入力されるタグアドレスの入力タイミング
を部分的に制御されたタグアドレスとキャッシュエント
リに設定されたタグアドレスを比較する、タグアドレス
比較装置に関する。
【0002】
【従来の技術】最近は、メモリアクセスのボトルネック
を解消するために、キャッシュメモリをチップ上に搭載
するマイクロプロセッサが主流になってきている。特
に、コンピュータのメインメモリ容量の限界に対処して
プログラミング上の負荷を軽減する技術として仮想記憶
方式が広く採用されている。仮想記憶はオペレーティン
グシステム等によりメインメモリとハードディスク等の
補助メモリにおいてメモリ容量を補充するように制御し
て容量の大きな仮想メモリを形成することで、大容量の
メインメモリを論理上実現するものである。また、仮想
記憶を採用するとプログラムの稼動時点に必要なデータ
だけをメインメモリにおくことができるので、複数のプ
ログラム間でメモリを効率よく共有することも可能とな
る。仮想記憶では、仮想メモリ中のアドレスを示す仮想
アドレスを、実際のメインメモリ中のアドレスを示す物
理アドレスに変換するアドレス変換が必要になる。一般
に仮想アドレスは仮想ページ番号とページ内オフセット
に分割され、物理アドレスも物理ページ番号とページ内
オフセットに分割される。そして、アドレス変換におい
ては、仮想ページ番号と物理ページ番号を対応付けて記
憶するページテーブルを設けておき、このページテーブ
ルを参照し要求された仮想アドレスから物理ページ番号
を抽出することで物理アドレスへと変換する。なお仮想
アドレスと物理アドレスのページ内オフセットは同じで
あるので、物理ページ番号へ所定のページ内オフセット
を連結することで物理アドレスが生成される。ところ
で、このページテーブルは非常に大きいのでメインメモ
リに格納する必要がある。したがって、中央処理装置か
らメインメモリへのアクセス要求がある度に、ページテ
ーブルへのアクセスと実際のデータへのアクセスとの2
回のアクセスをメインメモリに行うことになり処理時間
の遅延を生じる。このような処理時間の遅延を改善する
ために、近年、ページテーブルの他に、さらにアドレス
変換バッファ(以下「TLB」という。)を設けること
が行われる。TLBはページテーブルのうち、使用頻度
が高い仮想ページ番号と物理ページ番号との対応を記憶
したアドレス変換専用のキャッシュメモリである。TL
Bが設けられている場合、中央処理装置から、メインメ
モリへのアクセスがあるとまずTLBが最初に検索さ
れ、入力された仮想アドレスのページ番号がTLBのエ
ントリにある場合は、この仮想アドレスに対応する物理
アドレスに高速に変換することができる。ここで求める
仮想アドレスがない場合に、メインメモリ等にあるペー
ジテーブルが検索される。TLBの記憶内容を適切に定
め、TLBのヒット率を高めることでメインメモリへの
アクセスの効率化を図ることができる。しかし、このT
LBもプロセッサの性能が向上するとともに、メモリア
クセスのボトルネックを解消するために、エントリ数を
32から64エントリもつものが主流になってきてい
る。TLBは一般的にフルアソシアティブの連想メモリ
が用いられるため、チップの面積占有率も年々増えつづ
け、チップの消費電力においてはオンチップキャッシュ
全体で消費される電力がチップの消費電力の約30%を
占める等により、チップサイズの小型化および低消費電
力化の必要性が生じている。たとえば(文献:日立SH
マイコン仕様書から)、日立のSHシリーズでは、キャ
ッシュメモリの構成として、セット・アソシアティブ方
式を採用しており、消費電力を削減する方法として、低
消費電力モードに設定されると、動作させるキャッシュ
のウェイ数を減らし、ダイレクト・マップ方式と同様の
動作をするようになる。このような低消費電力モードで
は、キャッシュの容量が減り、連想度も下がるため、ミ
ス率は増加し、性能は低下するが、消費電力は削減する
ことができる。
を解消するために、キャッシュメモリをチップ上に搭載
するマイクロプロセッサが主流になってきている。特
に、コンピュータのメインメモリ容量の限界に対処して
プログラミング上の負荷を軽減する技術として仮想記憶
方式が広く採用されている。仮想記憶はオペレーティン
グシステム等によりメインメモリとハードディスク等の
補助メモリにおいてメモリ容量を補充するように制御し
て容量の大きな仮想メモリを形成することで、大容量の
メインメモリを論理上実現するものである。また、仮想
記憶を採用するとプログラムの稼動時点に必要なデータ
だけをメインメモリにおくことができるので、複数のプ
ログラム間でメモリを効率よく共有することも可能とな
る。仮想記憶では、仮想メモリ中のアドレスを示す仮想
アドレスを、実際のメインメモリ中のアドレスを示す物
理アドレスに変換するアドレス変換が必要になる。一般
に仮想アドレスは仮想ページ番号とページ内オフセット
に分割され、物理アドレスも物理ページ番号とページ内
オフセットに分割される。そして、アドレス変換におい
ては、仮想ページ番号と物理ページ番号を対応付けて記
憶するページテーブルを設けておき、このページテーブ
ルを参照し要求された仮想アドレスから物理ページ番号
を抽出することで物理アドレスへと変換する。なお仮想
アドレスと物理アドレスのページ内オフセットは同じで
あるので、物理ページ番号へ所定のページ内オフセット
を連結することで物理アドレスが生成される。ところ
で、このページテーブルは非常に大きいのでメインメモ
リに格納する必要がある。したがって、中央処理装置か
らメインメモリへのアクセス要求がある度に、ページテ
ーブルへのアクセスと実際のデータへのアクセスとの2
回のアクセスをメインメモリに行うことになり処理時間
の遅延を生じる。このような処理時間の遅延を改善する
ために、近年、ページテーブルの他に、さらにアドレス
変換バッファ(以下「TLB」という。)を設けること
が行われる。TLBはページテーブルのうち、使用頻度
が高い仮想ページ番号と物理ページ番号との対応を記憶
したアドレス変換専用のキャッシュメモリである。TL
Bが設けられている場合、中央処理装置から、メインメ
モリへのアクセスがあるとまずTLBが最初に検索さ
れ、入力された仮想アドレスのページ番号がTLBのエ
ントリにある場合は、この仮想アドレスに対応する物理
アドレスに高速に変換することができる。ここで求める
仮想アドレスがない場合に、メインメモリ等にあるペー
ジテーブルが検索される。TLBの記憶内容を適切に定
め、TLBのヒット率を高めることでメインメモリへの
アクセスの効率化を図ることができる。しかし、このT
LBもプロセッサの性能が向上するとともに、メモリア
クセスのボトルネックを解消するために、エントリ数を
32から64エントリもつものが主流になってきてい
る。TLBは一般的にフルアソシアティブの連想メモリ
が用いられるため、チップの面積占有率も年々増えつづ
け、チップの消費電力においてはオンチップキャッシュ
全体で消費される電力がチップの消費電力の約30%を
占める等により、チップサイズの小型化および低消費電
力化の必要性が生じている。たとえば(文献:日立SH
マイコン仕様書から)、日立のSHシリーズでは、キャ
ッシュメモリの構成として、セット・アソシアティブ方
式を採用しており、消費電力を削減する方法として、低
消費電力モードに設定されると、動作させるキャッシュ
のウェイ数を減らし、ダイレクト・マップ方式と同様の
動作をするようになる。このような低消費電力モードで
は、キャッシュの容量が減り、連想度も下がるため、ミ
ス率は増加し、性能は低下するが、消費電力は削減する
ことができる。
【0003】
【発明が解決しようとする課題】しかしながら、上記低
消費電力モードのように、消費電力を下げるために動作
するキャッシュの容量を削減する方法では、キャッシュ
ミス率が上昇するので、外部メモリへのアクセスが増加
し、さらに性能低下による実行時間の増加によって、結
果的に消費電力量が増加する可能性がある。アドレス変
換バッファについても同様のことが言える。消費電力を
下げるために動作するアドレス変換バッファのエントリ
数を削減すると、アドレス変換バッファのミス率が上昇
するため、メインメモリへのアクセスが増加し、さらに
性能低下による実行時間の増加によって結果的に消費電
力量が増加する可能性がある。本発明の目的は、アドレ
ス変換バッファを含むキャッシュにおいて、キャッシュ
エントリをそのまま使用し、キャッシュのミス率を下げ
ることなく、タグアドレス比較の際に、入力されるタグ
アドレスを部分的に変化させず、またタグアドレス比較
器の稼動範囲を削減することにより、一般に使われてい
るキャッシュと比べて入力されるタグアドレスの読み書
き、および比較動作に必要な消費電力を削減するタグア
ドレス比較装置を提供することである。
消費電力モードのように、消費電力を下げるために動作
するキャッシュの容量を削減する方法では、キャッシュ
ミス率が上昇するので、外部メモリへのアクセスが増加
し、さらに性能低下による実行時間の増加によって、結
果的に消費電力量が増加する可能性がある。アドレス変
換バッファについても同様のことが言える。消費電力を
下げるために動作するアドレス変換バッファのエントリ
数を削減すると、アドレス変換バッファのミス率が上昇
するため、メインメモリへのアクセスが増加し、さらに
性能低下による実行時間の増加によって結果的に消費電
力量が増加する可能性がある。本発明の目的は、アドレ
ス変換バッファを含むキャッシュにおいて、キャッシュ
エントリをそのまま使用し、キャッシュのミス率を下げ
ることなく、タグアドレス比較の際に、入力されるタグ
アドレスを部分的に変化させず、またタグアドレス比較
器の稼動範囲を削減することにより、一般に使われてい
るキャッシュと比べて入力されるタグアドレスの読み書
き、および比較動作に必要な消費電力を削減するタグア
ドレス比較装置を提供することである。
【0004】
【課題を解決するための手段】上記課題を解決するため
に請求項1に記載のタグアドレス比較装置では、タグア
ドレスごとにデータを対応付けて記録した複数のエント
リを記憶するエントリ記憶手段と、前記第1タグアドレ
スに対して、中央処理装置より入力されるタグアドレス
を記憶するタグアドレス記憶手段と、前記タグアドレス
記憶手段において、中央処理装置からのタグアドレス入
力タイミングを部分的に制御するタグアドレス入力制御
手段と、前記第2タグアドレスと前記エントリ記憶手段
により記憶された前記第1タグアドレスとを比較するタ
グアドレス比較手段によって、タグアドレス比較器無稼
動領域の生成と、部分的に常に一定の値を保持している
第2タグアドレス記憶領域の一部分に対して、信号の変
化を最小限に押さえることによって、消費電力が最小に
なるような構造を持ち、常にヒット信号を出すように構
成され、前記中央処理装置より入力されるタグアドレス
に対し、このタグアドレスと一致するエントリを前記エ
ントリ記憶手段より検索するエントリ検索手段とを有し
ている。請求項2に記載のタグアドレス比較装置では、
前記タグアドレス入力制御手段を前記タグアドレス記憶
領域に設け、前記タグアドレス入力制御手段が複数ビッ
トより構成されるタグ比較イネーブルビットを用いてい
る。請求項3に記載のタグアドレス比較装置では、請求
項1又は2に記載のタグアドレス比較装置に加えて、プ
ログラムにより比較の必要がないと設定されたタグアド
レスの比較器無稼動領域に対して、プログラムが正しく
“0”の値を使用しているかを判断するタグ期待値判定
手段を有している。また、請求項4に記載のタグアドレ
ス比較装置では、請求項2に記載のタグ比較イネーブル
ビットにより、比較器無稼動領域と設定された第2タグ
アドレスに対して対応する第1タグアドレスのエントリ
のみを物理的に実装する。請求項5に記載のタグアドレ
ス比較装置では、請求項3に記載のタグアドレス比較装
置において、タグ期待値判定手段により比較器無稼動領
域と設定された第2タグアドレスに対して対応する第1
タグアドレスのエントリのみを物理的に実装する。
に請求項1に記載のタグアドレス比較装置では、タグア
ドレスごとにデータを対応付けて記録した複数のエント
リを記憶するエントリ記憶手段と、前記第1タグアドレ
スに対して、中央処理装置より入力されるタグアドレス
を記憶するタグアドレス記憶手段と、前記タグアドレス
記憶手段において、中央処理装置からのタグアドレス入
力タイミングを部分的に制御するタグアドレス入力制御
手段と、前記第2タグアドレスと前記エントリ記憶手段
により記憶された前記第1タグアドレスとを比較するタ
グアドレス比較手段によって、タグアドレス比較器無稼
動領域の生成と、部分的に常に一定の値を保持している
第2タグアドレス記憶領域の一部分に対して、信号の変
化を最小限に押さえることによって、消費電力が最小に
なるような構造を持ち、常にヒット信号を出すように構
成され、前記中央処理装置より入力されるタグアドレス
に対し、このタグアドレスと一致するエントリを前記エ
ントリ記憶手段より検索するエントリ検索手段とを有し
ている。請求項2に記載のタグアドレス比較装置では、
前記タグアドレス入力制御手段を前記タグアドレス記憶
領域に設け、前記タグアドレス入力制御手段が複数ビッ
トより構成されるタグ比較イネーブルビットを用いてい
る。請求項3に記載のタグアドレス比較装置では、請求
項1又は2に記載のタグアドレス比較装置に加えて、プ
ログラムにより比較の必要がないと設定されたタグアド
レスの比較器無稼動領域に対して、プログラムが正しく
“0”の値を使用しているかを判断するタグ期待値判定
手段を有している。また、請求項4に記載のタグアドレ
ス比較装置では、請求項2に記載のタグ比較イネーブル
ビットにより、比較器無稼動領域と設定された第2タグ
アドレスに対して対応する第1タグアドレスのエントリ
のみを物理的に実装する。請求項5に記載のタグアドレ
ス比較装置では、請求項3に記載のタグアドレス比較装
置において、タグ期待値判定手段により比較器無稼動領
域と設定された第2タグアドレスに対して対応する第1
タグアドレスのエントリのみを物理的に実装する。
【0005】
【発明の実施の形態】以下に本発明の実施形態について
図面を参照しながら説明する。
図面を参照しながら説明する。
【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により構成される。
較装置を含む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により構成される。
【0007】ここでは、タグ比較イネーブルビットTE
は4ビットの情報を用い、中央処理装置より入力される
仮想アドレスのページ番号に対して一対の記憶領域のみ
をもつ。
は4ビットの情報を用い、中央処理装置より入力される
仮想アドレスのページ番号に対して一対の記憶領域のみ
をもつ。
【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へ送られる。
情報を用い特定のプロセスを表す。グローバルビットは
前記プロセス識別子の比較および無比較を規定する比較
情報となる。有効ビット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へ送られる。
【0009】図2に仮想ページ番号比較器12の構成を
表すブロック図を示す。仮想ページ番号比較器は、中央
処理装置より入力される仮想ページ番号Xと、各エント
リの仮想ページ番号101に対して各ビット毎に各比較
器に入力され、各タグ比較器の出力を入力とするAND
ゲート123より構成される。
表すブロック図を示す。仮想ページ番号比較器は、中央
処理装置より入力される仮想ページ番号Xと、各エント
リの仮想ページ番号101に対して各ビット毎に各比較
器に入力され、各タグ比較器の出力を入力とするAND
ゲート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のどちらかが遮断状
態となり、わずかなリーク電流が流れるのみで、全体的
にみるとほとんど電流が流れないためである。
ステムで使われている、仮想ページ番号記憶領域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のどちらかが遮断状
態となり、わずかなリーク電流が流れるのみで、全体的
にみるとほとんど電流が流れないためである。
【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*?*****
*(?はアドレス変換の際に比較されないビット領域、
*は任意の値を示す)のアドレス空間を作成することが
できる。
モリマッピングの設定例について説明する。今、図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*?*****
*(?はアドレス変換の際に比較されないビット領域、
*は任意の値を示す)のアドレス空間を作成することが
できる。
【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に対してタグ比
較器の信号を変化させることなく、タグ比較に必要な消
費電力が削減でき、メインメモリではこのビットに関す
る情報を持たなくてよいためにページテーブルを管理す
るメモリ容量を削減することができる。
ットの値で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に対してタグ比
較器の信号を変化させることなく、タグ比較に必要な消
費電力が削減でき、メインメモリではこのビットに関す
る情報を持たなくてよいためにページテーブルを管理す
るメモリ容量を削減することができる。
【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を出し、オペレーティン
グシステムにアクセス例外があったことを知らせること
ができる。こうすることにより、仮想記憶本来の性能を
失うことなく、上記で説明されるアドレス変換装置の消
費電力を削減することができる。
プログラムを図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を出し、オペレーティン
グシステムにアクセス例外があったことを知らせること
ができる。こうすることにより、仮想記憶本来の性能を
失うことなく、上記で説明されるアドレス変換装置の消
費電力を削減することができる。
【0014】また、タグ期待値判定手段を含むタグアド
レス比較装置を図10に示す。さらに最終的には、図1
1のように図8に示したアドレス変換バッファに対して
目的に応じて、メモリマッピングを行い、それに応じて
ハードウェアを量産する場合においては、タグ比較を行
わないのではなく、タグ比較を行うもののみ物理的に実
装することができる。同様に、図12のように図10に
示したアドレス変換バッファに対して目的に応じて、メ
モリマッピングを行い、それに応じてハードウェアを量
産する場合においては、タグ比較を行わないのではな
く、タグ比較を行うもののみ物理的に実装することがで
きる。こうすれば、不必要なタグメモリが削減できるた
めに、削除されたタグメモリに必要な全消費電力の削減
と、さらには、面積の削減が実現できチップサイズの小
型化が行える。
レス比較装置を図10に示す。さらに最終的には、図1
1のように図8に示したアドレス変換バッファに対して
目的に応じて、メモリマッピングを行い、それに応じて
ハードウェアを量産する場合においては、タグ比較を行
わないのではなく、タグ比較を行うもののみ物理的に実
装することができる。同様に、図12のように図10に
示したアドレス変換バッファに対して目的に応じて、メ
モリマッピングを行い、それに応じてハードウェアを量
産する場合においては、タグ比較を行わないのではな
く、タグ比較を行うもののみ物理的に実装することがで
きる。こうすれば、不必要なタグメモリが削減できるた
めに、削除されたタグメモリに必要な全消費電力の削減
と、さらには、面積の削減が実現できチップサイズの小
型化が行える。
【0015】なお、本発明の実施の形態に関しては、ア
ドレス変換装置を用いたが、キャッシュによる、タグア
ドレス比較装置に対しても実施することができる。ま
た、タグ比較イネーブルビットのビット数を4ビット、
タグアドレス入力制御手段を持ったタグアドレス記憶手
段を8ビット分用いたが、この数に関しては、この限り
ではない。
ドレス変換装置を用いたが、キャッシュによる、タグア
ドレス比較装置に対しても実施することができる。ま
た、タグ比較イネーブルビットのビット数を4ビット、
タグアドレス入力制御手段を持ったタグアドレス記憶手
段を8ビット分用いたが、この数に関しては、この限り
ではない。
【0016】
【発明の効果】以上の説明により、本発明は次のような
効果を奏する。
効果を奏する。
【0017】まず、請求項1に記載のタグアドレス比較
装置は、タグ比較イネーブルビットの設定により入力さ
れる仮想ページ番号のラッチタイミングを制御し、タグ
比較イネーブルビットにより比較器無稼動領域に設定さ
れた領域に対する仮想ページ番号の読み書きおよび、比
較器は入力される信号に変化を与えない状態にすること
により、消費電力を押さえることができる。特に、比較
器無稼動領域に対するタグアドレス記憶手段に関して
は、従来の装置では、同じ信号を入力する際も、入力タ
イミングを制御する信号がクロックと同期して入力され
るために、信号の変化により、電力が消費されたが、本
発明により使用されたタグアドレス記憶手段に関して
は、タグ比較イネーブルビットによって、ディセーブル
されている記憶装置に関しては、入力制御タイミングが
固定されているので、上記のような電力消費が起こらな
い。さらに、タグアドレス比較動作に関しても、正常動
作されている限りは、常に同じ“0”の信号を比較して
おり、信号の変化がないため、電力消費が削減できる。
装置は、タグ比較イネーブルビットの設定により入力さ
れる仮想ページ番号のラッチタイミングを制御し、タグ
比較イネーブルビットにより比較器無稼動領域に設定さ
れた領域に対する仮想ページ番号の読み書きおよび、比
較器は入力される信号に変化を与えない状態にすること
により、消費電力を押さえることができる。特に、比較
器無稼動領域に対するタグアドレス記憶手段に関して
は、従来の装置では、同じ信号を入力する際も、入力タ
イミングを制御する信号がクロックと同期して入力され
るために、信号の変化により、電力が消費されたが、本
発明により使用されたタグアドレス記憶手段に関して
は、タグ比較イネーブルビットによって、ディセーブル
されている記憶装置に関しては、入力制御タイミングが
固定されているので、上記のような電力消費が起こらな
い。さらに、タグアドレス比較動作に関しても、正常動
作されている限りは、常に同じ“0”の信号を比較して
おり、信号の変化がないため、電力消費が削減できる。
【0018】また、請求項3に記載のアドレス変換装置
により、上記消費電力を削減することができる上に、プ
ログラムのバグ等により仮想ページ番号の無比較領域に
おいてプログラムが想定している値以外の値を使用して
不正アクセスがあった場合においても、比較器を用いず
にアクセス例外を検出でき仮想記憶装置本来のメモリ保
護の機能を発揮できる。
により、上記消費電力を削減することができる上に、プ
ログラムのバグ等により仮想ページ番号の無比較領域に
おいてプログラムが想定している値以外の値を使用して
不正アクセスがあった場合においても、比較器を用いず
にアクセス例外を検出でき仮想記憶装置本来のメモリ保
護の機能を発揮できる。
【0019】また、請求項2に記載のアドレス変換装置
では、タグ比較イネーブルビットを仮想ページ番号記憶
領域に入力しているため、この信号を入力後は、タグ比
較イネーブルビットがノンアクティブに設定されている
仮想ページ番号記憶領域に関しては、ほとんど電力は消
費されることがない。
では、タグ比較イネーブルビットを仮想ページ番号記憶
領域に入力しているため、この信号を入力後は、タグ比
較イネーブルビットがノンアクティブに設定されている
仮想ページ番号記憶領域に関しては、ほとんど電力は消
費されることがない。
【0020】請求項4又は請求項5に記載のアドレス変
換装置では、アドレス変換用のタグメモリを必要な領域
だけ実装すればよいので、チップの消費電力を削減でき
ることはもとより、チップ面積を削減することもでき、
コストパフォーマンスの向上につながる。
換装置では、アドレス変換用のタグメモリを必要な領域
だけ実装すればよいので、チップの消費電力を削減でき
ることはもとより、チップ面積を削減することもでき、
コストパフォーマンスの向上につながる。
【図1】実施の形態に係るタグアドレス比較装置の構成
を示すブロック
を示すブロック
【図2】一般的なタグアドレス比較器の構成を示すブロ
ック図
ック図
【図3】一般的なタグアドレス記憶手段の構成を示すブ
ロック図
ロック図
【図4】タグ比較イネーブルビットを用いたタグアドレ
ス記憶手段の構成を示すブロック図
ス記憶手段の構成を示すブロック図
【図5】単一仮想アドレス空間と多重仮想アドレス空間
のイメージ図
のイメージ図
【図6】仮想アドレス空間のアドレス変換を行う一例を
模式的に示す図
模式的に示す図
【図7】ミラー空間を使用した仮想アドレス空間の割り
当ての一例を模式的に示す図
当ての一例を模式的に示す図
【図8】図1に示すタグアドレス比較部のブロック図
【図9】図1に示すタグアドレス記憶手段にタグ期待値
判定手段を挿入したブロック図
判定手段を挿入したブロック図
【図10】図8に示すタグアドレス比較部にタグ期待値
判定手段を挿入したブロック図
判定手段を挿入したブロック図
【図11】図8に示すタグアドレス比較部に対して無比
較領域となっていないタグメモリ部のみを実装する構成
を示すブロック図
較領域となっていないタグメモリ部のみを実装する構成
を示すブロック図
【図12】図10に示すタグアドレス比較部に対して無
比較領域となっていないタグメモリ部のみを実装する構
成を示すブロック図
比較領域となっていないタグメモリ部のみを実装する構
成を示すブロック図
1 TLB 2 制御レジスタ 3 中央処理装置 10 タグ部 11 タグアドレス入力部 12 タグアドレス比較器 13 プロセス識別子比較器 14 データ部 101 仮想ページ番号記憶領域 102 プロセス識別子記憶領域 103 グローバルビット記憶領域 111 タグ比較イネーブルビット記憶領域 141 物理ページ番号記憶領域 906 タグ期待値判定手段
Claims (5)
- 【請求項1】 タグアドレスごとにデータを対応付けて
記録した複数のエントリを記憶するエントリ記憶手段
と、 前記第1タグアドレスに対して、中央処理装置から入力
される第2タグアドレスを記憶するタグアドレス記憶手
段と、 前記タグアドレス記憶手段において、中央処理装置から
のタグアドレス入力タイミングを部分的に制御するタグ
アドレス入力制御手段と、 前記第2タグアドレスと、前記エントリ記憶手段に記憶
された前記第1タグアドレスとを比較するタグアドレス
比較手段と、 前記タグアドレス比較手段の比較結果が一致するエント
リを前記エントリ記憶手段により検索するエントリ検索
手段とを有するタグアドレス比較装置。 - 【請求項2】 前記タグアドレス入力制御手段が、前記
第2タグアドレス記憶領域に設けられ、前記タグアドレ
ス入力制御手段が複数ビットにより構成されるタグ比較
イネーブルビットである請求項1記載のタグアドレス比
較装置。 - 【請求項3】 前記タグ比較イネーブルビットに基づき
入力更新を行わない第2タグアドレスの領域において、
プログラムが正しく“0”の値を使用しているかを判断
するタグ期待値判定手段を有する請求項1または、請求
項2に記載のタグアドレス比較装置。 - 【請求項4】 請求項1又は請求項2に記載のタグアド
レス比較装置におい、て、前記タグ比較イネーブルビッ
トに基づき、複数のエントリにおいて比較の必要がある
と判断される第1タグアドレス記憶手段のみを実装する
タグアドレス比較装置。 - 【請求項5】 請求項3に記載の前記タグ期待値判定手
段を有するタグアドレス比較装置において、前記タグ期
待値判定手段により、複数のエントリにおいて比較の必
要があると判断される第1タグアドレス記憶手段のみを
実装する請求項1または請求項2に記載のタグアドレス
比較装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11071471A JP2000267932A (ja) | 1999-03-17 | 1999-03-17 | タグアドレス比較装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11071471A JP2000267932A (ja) | 1999-03-17 | 1999-03-17 | タグアドレス比較装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000267932A true JP2000267932A (ja) | 2000-09-29 |
Family
ID=13461571
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11071471A Pending JP2000267932A (ja) | 1999-03-17 | 1999-03-17 | タグアドレス比較装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000267932A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004164395A (ja) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | アドレス変換装置 |
| US7487367B2 (en) | 2002-11-18 | 2009-02-03 | Arm Limited | Apparatus and method for managing access to a memory |
| JP2012119006A (ja) * | 2005-03-03 | 2012-06-21 | Qualcomm Inc | 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置 |
-
1999
- 1999-03-17 JP JP11071471A patent/JP2000267932A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004164395A (ja) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | アドレス変換装置 |
| US7487367B2 (en) | 2002-11-18 | 2009-02-03 | Arm Limited | Apparatus and method for managing access to a memory |
| JP2012119006A (ja) * | 2005-03-03 | 2012-06-21 | Qualcomm Inc | 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3740195B2 (ja) | データ処理装置 | |
| JP3713312B2 (ja) | データ処理装置 | |
| US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
| US5689679A (en) | Memory system and method for selective multi-level caching using a cache level code | |
| US6532528B1 (en) | Data processor and data processor system having multiple modes of address indexing and operation | |
| JP3666689B2 (ja) | 仮想アドレス変換方法 | |
| US20070239960A1 (en) | Data processor and IP module for data processor | |
| JP4065660B2 (ja) | 機能が並列に分散された変換索引バッファ | |
| JPH08101797A (ja) | 変換索引バッファ | |
| JPH04320553A (ja) | アドレス変換機構 | |
| US20060271760A1 (en) | Translation look-aside buffer | |
| JPH11161547A (ja) | データ処理装置用記憶装置、および記憶場所にアクセスする方法 | |
| US10031854B2 (en) | Memory system | |
| JP3045952B2 (ja) | フルアソシアティブ・アドレス変換器 | |
| JP2930071B2 (ja) | 情報処理装置およびプロセッサ | |
| KR910001314B1 (ko) | 데이타 처리 시스템에서의 가상 메모리 사용방법 | |
| US20050055528A1 (en) | Data processing system having a physically addressed cache of disk memory | |
| KR19990037572A (ko) | 뱅크 어드레스 값을 공급하는 다중 소스를 구비하는 프로세서구조 설계 및 그 설계방법 | |
| US20040117591A1 (en) | Data processing system having no system memory | |
| JPH0831060B2 (ja) | コンピュータ・システム | |
| US20040117590A1 (en) | Aliasing support for a data processing system having no system memory | |
| JP2846697B2 (ja) | キャッシュメモリ制御装置 | |
| US6862675B1 (en) | Microprocessor and device including memory units with different physical addresses | |
| JP2007280421A (ja) | データ処理装置 | |
| JPH0362243A (ja) | 情報処理システムにおいてメモリアクセスを速くする装置 |