JPH08320830A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH08320830A JPH08320830A JP7240871A JP24087195A JPH08320830A JP H08320830 A JPH08320830 A JP H08320830A JP 7240871 A JP7240871 A JP 7240871A JP 24087195 A JP24087195 A JP 24087195A JP H08320830 A JPH08320830 A JP H08320830A
- Authority
- JP
- Japan
- Prior art keywords
- address
- logical
- data processing
- processing device
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
となく複数のページサイズをサポートできるデータ処理
装置を提供する。 【構成】 仮想記憶をサポートするデータ処理装置は、
論理ページサイズがページ毎に設定可能とされ、且つ、
可変に設定可能にされる複数の論理ページサイズに対し
て共通利用されるTLBを有し、該TLBは、論理ペー
ジ番号と物理ページ番号との対を記憶するための記憶領
域を夫々供え、夫々インデックスアドレスが共通化され
た複数バンクを持つセットアソシアティブ方式のキャッ
シュメモリとされる。サポートする論理ページの最大サ
イズは最小サイズの2のべき乗数倍にされ、TLBのバ
ンク数がその2のべき乗数以上とされる。
Description
するデータ処理装置に関し、特に、アドレス変換機構と
して、セットアソシアティブ方式のキャッシュメモリを
利用したデータ処理装置に係り、更に述べるならば、そ
のアドレス変換手法の多様化を企図したものであり、例
えばマイクロコンピュータに適用して有効な技術に関す
る。
ーティングシステム(以下OSとも記す)がメモリ管理
を行う分野では、データ処理装置がアドレス変換機構を
サポートする必要がある。アドレス変換機構とは、仮想
記憶を実現するために、中央処理装置(CPU)により
形成された論理アドレスを物理アドレスに変換する機構
である。このアドレス変換機構を高速に実行するため
に、論理アドレスと物理アドレスとの変換対を保持する
アドレス変換バッファ(Translation lookaside buffe
r、以下単にTLBとも記す)を、中央処理装置とともに
データ処理装置に内蔵する技術が採用される。アドレス
変換バッファは、例えば、最近使用された論理アドレス
と物理アドレスとの変換対を保持する連想記憶構造のバ
ッファメモリとして構成される。連想記憶構造のバッフ
ァメモリとしては、各メモリセルに比較のための回路構
成を備えたCAM(Content Addressable Memory)から
成るフルアソシアティブメモリ、汎用のランダムアクセ
スメモリを利用して比較的高いヒット率を実現できるセ
ットアソシアティブ形式の連想メモリなどを利用するこ
とができる。尚、連想記憶形式のアドレス変換バッファ
について記載された文献の例としては昭和61年2月1
0日に株式会社培風館から発行された「超高速MOSデ
バイス」第287頁及び第288頁がある。
なアドレス変換バッファにつき、ユーザの要求仕様に応
えることができ、良好な使い勝手を実現するという点に
ついて検討したところ以下のような問題点を見出した。
換機構においては、論理アドレス空間を論理ページと呼
ばれる単位に分割して、そのページ単位に物理アドレス
へのアドレス変換を行う。一方、システムに、実際に実
装される実メモリ(物理メモリ)の全記憶容量が少ない
ような場合には、論理ページのサイズを比較的小さくし
て、各プロセスによるメモリの利用効率を向上させたい
という要求などがある。例えば、実行されるべきタスク
が、比較的小さなサイズのプログラムで構成される場
合、そのタスクに割り当てられる論理ページのサイズが
比較的大きいと、これに対応して、そのタスクを実行す
るための物理ページのサイズも比較的大きくなってしま
う。そのため、必要以上の記憶空間が、タスクに割り当
てられることになり、メモリの利用効率が低下する。特
に、実メモリの記憶容量が比較的小さい場合には、論理
ページのサイズを小さくして、実メモリの利用効率が低
下するのを防ぐことが望まれる。このような要求に、適
宜対応できるようにするには、論理ページのサイズを可
変にすることが望ましい。ところが、論理ページのサイ
ズを可変にすると、一定の論理空間において論理ページ
を規定するための情報のビット数が変化される。その結
果、アドレス変換バッファから情報を連想的に検索する
ための比較対象情報のビット数やビット位置が、論理ペ
ージサイズによって変化されなければならない。これに
対処するために、アドレス変換バッファにCAMから成
るフルアソシアティブ形式を採用することが考えられ
る。このようにすれば、各メモリセルが比較回路を備え
ていることから特別な考慮を要することなく、比較的簡
単に、論理ページの可変化を実現できる。しかしなが
ら、各メモリセルが比較回路を備えているためセットア
ソシアティブ形式のアドレス変換バッファに比べてチッ
プ専有面積と消費電力が共に倍増するという欠点が有
る。
ス変換バッファにおいては、複数セット存在するバンク
の数、即ちウェイ数を増やせば一つのインデックスアド
レスに対して保持できるエントリ数を増やして、ヒット
率を向上させることができる。例えば4ウェイ・セット
アソシアティブ形式の場合には、一つのインデックスア
ドレスに対して最大4個のエントリを保持できる。しか
しながら、複数のプロセスの夫々が論理空間の全域にわ
たるアドレス変換情報を有し、プロセス番号によって論
理アドレスを修飾或いは拡張する多重仮想記憶を行う場
合、比較的多くのプロセスが並列的に起動されると、夫
々のプロセスが同一論理ページを利用する頻度が多くな
る。各々のプロセスは、プロセス番号が互いに異なるた
め、一つのインデックスアドレスによって指示されると
ころの互いに異なるエントリに保持されることになる。
そのため、プロセスの数が、ウエイの数を越えると、セ
ットアソシアティブ形式であっても、ヒット率は相対的
に低下することになる。したがって、多重仮想記憶にお
いて多くのプロセスが並列的に起動される利用形態にお
いては、ヒット率の低下を抑えることができるように、
その利用形態に応じてインデックス方法を選択可能にす
ることの必要性が見出された。
ッファに格納されていない場合には、当該キャッシュミ
スに係る変換対(所望の変換対)が新たなエントリとし
てアドレス変換バッファに追加される。このとき、イン
デックスされたエントリにおける変換対の全てが有効な
変換対である場合には、変換対の置き換えが行われる。
この置き換えのアルゴリズム(リプレースメントアルゴ
リズム)には、ランダム、最初にロードされたものから
リプレースするFIFO、又は最後に参照されたものか
らリプレースするLRU(Least Recentry Used)など
がある。しかしながら、リプレースメントアルゴリズム
を固定化した場合には、データ処理の都合上、常に特定
の変換対をアドレス変換バッファにエントリとして格納
しておきたいという要求や、特定のアドレス変換対をリ
プレース対象にしたくないという要求には一切答えるこ
とができない。
憶の他に、複数のプロセスに論理アドレス空間の一部が
排他的に割り当てられる単一仮想記憶がある。使い勝手
を向上させるという点においては、これらの双方をサポ
ートできるようにすることが望ましい。
ることができて使い勝手の良好なアドレス変換機構を備
えたデータ処理装置を実現することにある。
りである。チップ専有面積と電力消費量を増大させるこ
となく複数のページサイズをサポートできるアドレス変
換機構を備えたデータ処理装置を提供すること。
れらからインデックス方法を選択できるアドレス変換機
構を備えたデータ処理装置を提供すること。
を持たせることができるアドレス変換機構を備えたデー
タ処理装置を提供すること。
ても自由度を持たせることができるアドレス変換機構を
備えたデータ処理装置を提供すること。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
憶をサポートするデータ処理装置は、論理アドレス空間
を論理ページと呼ばれる単位に分割して、そのページ単
位で、論理アドレスを物理アドレスへ変換(アドレス変
換)する。このデータ処理装置では、図1に例示される
ように、その論理ページのサイズが、ページ毎に可変と
される。それぞれサイズが可変な複数の論理ページに対
して、アドレス変換バッファのようなバッファメモリ1
は、共通に利用される。このバッファメモリ1として
は、論理ページ番号VPNとそれに対応する物理ページ
番号PPNとを含むところの対応情報を、記憶するため
の記憶領域を夫々供え、共通のインデックスアドレス2
によってアクセスされる複数バンク11〜14を持つセ
ットアソシアティブ方式のキャッシュメモリが使われ
る。
小サイズの2のべき乗数倍(2のN乗倍)にされ、セッ
トアソシアティブ方式のバッファメモリのバンクの数が
その2のべき乗数(2のN乗数)以上とされる。更に詳
しくは、図1に例示されるように、全体で4GB(ギガ
バイト)とされる論理アドレス空間(ビット0〜ビット
31の論理アドレスで指定される)において、論理ペー
ジのサイズは、4KB(キロバイト)と1KBの2種類
とされる。この場合、バッファメモリ1のバンクの数は
4個とされ、バッファメモリ1は4ウェイ・セットアソ
シアティブ形式のキャッシュメモリとして構成される。
論理ページサイズが4KBのとき、論理アドレスのオフ
セットは、論理アドレスのビット0〜ビット11とさ
れ、論理ページ番号vpnは、論理アドレスのビット1
2〜ビット31とされる。論理ページサイズが1KBの
とき、論理アドレスのオフセットは、論理アドレスのビ
ット0〜ビット9とされ、論理ページ番号vpnは、論
理アドレスのビット10〜ビット31とされる。尚、本
明細書において小文字で示されるvpn,ppn,as
idは、アクセスに利用される論理ページ番号、物理ペ
ージ番号、プロセス番号とされ、大文字で示されるバッ
ファメモリ(アドレス変換バッファ)のエントリもしく
はページテーブルエントリとしての論理ページ番号VP
N、物理ページ番号PPN、プロセス番号ASIDとは
区別される。
ファメモリ1に対するインデックスアドレスの指定方法
は、論理ページのサイズが4KBと1KBの双方におい
て共通化され、最大ページサイズの論理ページアドレス
における最下位から所定の複数ビットがインデックスア
ドレスとして与えられる。上記図1の例に従えば、全部
で32ビットの論理アドレスにおけるビット12〜ビッ
ト16の5ビットを用いてバッファメモリ1がインデッ
クスされる。インデックスアドレスは5ビットであるか
ら、1バンク当たり最大32個のエントリを保有でき
る。図1の例のように、4個のバンクを持つ場合には、
一つのインデックスアドレスにつき、最大4個のエント
リを保有できる。上記インデックスアドレスは、ページ
サイズが4KBの場合には、当該論理ページ番号vpn
の最下位から5ビット(ビット12〜16)とされるの
で、ページサイズ4KBのときは、任意の論理ページ番
号のエントリを、各バンクに最大32個(全体で128
エントリ)保有することができる。一方、ページサイズ
が1KBの場合には、当該論理ページ番号vpnの最下
位から2ビット(ビット10,11)がインデックスに
利用されないことになる。すなわち、論理ページサイズ
が1KBであって、一つのバンクに対するインデックス
だけを考えると、インデックスされたエントリは、イン
デックスに利用されない2ビット(ビット10,11)
によって更にその中から1個が選ばれるべき4個の論理
ページ番号の内の何れか一つとされる。したがって、バ
ンクの数が1個しか存在しない場合には、連続する4個
の論理ページの内の1個しかエントリとして保有するこ
とができない。この点においては、論理ページの最大サ
イズ(4KB)が、最小サイズ(1KB)の2の2乗倍
とされ、バンク数も2の2乗個(4個)設けることによ
り、バッファメモリ(アドレス変換バッファ)全体とし
ては4KBページサイズとほぼ同様に、任意の論理ペー
ジ番号のエントリを、全体で128個保有することがで
きる。但し、一つのバンクに保有できるエントリの論理
ページ番号は4KB毎という制約を受ける。この制限
は、アドレス変換バッファの保有するエントリの論理ペ
ージ番号が連続的であれば、ヒット(TLBヒット)率
には何等影響を与えない。分散的である場合にはある程
度ヒット率に影響を受ける。この場合でも、1KBの論
理ページを2KB毎にアドレスマッピングすればその影
響を小さくでき、4KB毎にアドレスマッピングすれば
全く影響を受けないようにすることができる。
バンク11〜14に設けられた比較手段15においてヒ
ット判定に反映されるべきアドレス比較のビット数は、
論理ページサイズに応じて変化されなければならない。
図1の例に従えば、論理ページサイズが1KBの場合に
は、論理ページサイズが4KBの場合に比べて、論理ア
ドレスのビット10及びビット11も比較対象としなけ
ればならない。バッファメモリ1は、そのような比較対
象のビット数を全てカバーできるように、論理ページ番
号と物理ページ番号との対応情報(変換対)を記憶する
領域のビット数が設定されている。バッファメモリ1に
おいては、各変換対にそれがサポートする論理ページサ
イズを示すフィールドが設けられており、そのフィール
ドの値(サイズビット)SZに応じてヒット判定のため
のアドレス比較のビット数が変化される。比較ビット数
が変化される対象は、論理アドレスの論理ページ番号
と、バッファメモリ内の変換対に含まれる論理ページ番
号の双方とされる。hit1〜hit4は各バンク11
〜14におけるヒット判定結果を通知するためのヒット
信号であり、それらに基づいてTLBヒット/ミスが判
定される。
仮想記憶をサポートするデータ処理装置は、論理ページ
番号と物理ページ番号との対応情報を記憶するための記
憶領域を夫々有し、夫々が共通のインデックスアドレス
によってアクセスされる複数バンクを持つセットアソシ
アティブ方式のキャッシュメモリによって構成されたバ
ッファメモリを供える。そして、そのバッファメモリに
対するインデックスアドレスの生成手法を可変とする手
段を有する。例えば、複数のプロセスが存在し、夫々の
プロセスが夫々のアドレス変換情報を有し、プロセス番
号によってそれぞれのプロセスが区別される多重仮想記
憶をサポートする場合、バッファメモリからエントリを
インデックスするためのアドレス指定方法として、図2
に例示されるように論理アドレスの一部(ビット12〜
16)のみをデコードする手法と、図3に示されるよう
にその論理アドレスの一部(ビット12〜16)を現在
のプロセス番号(asid)の一部によって修飾(XO
R=排他的論理和)した結果をデコードする手法とを、
レジスタMMUCR.IXの論理値にしたがって指示す
るようにできる。尚、図3,図2において、バッファメ
モリ1内の変換対に含まれる論理ページ番号VPNの情
報はインデックスに利用されるvpn(16−12)に
対応されるものが除かれて、VPN(31−17),V
PN(11−10)として図示されている。ここで、v
pn(16−12)の表記は論理アドレスのビット12
〜ビット16を含む論理ページ番号の情報であることを
意味する。VPN(31−17)の表記は論理アドレス
のビット17〜ビット31に対応されるバッファメモリ
のエントリとしての論理ページ番号の情報であることを
意味する。
ートするデータ処理装置は、図4に例示されるように、
論理ページ番号VPNと物理ページ番号PPNとの対応
情報を記憶するための記憶領域を夫々供え、夫々のイン
デックスアドレスが共通化された複数バンク11〜14
を持つ4ウェイ・セットアソシアティブ方式のキャッシ
ュメモリから成るバッファメモリ1を有し、キャッシュ
ミスなどの発生によって、これらの複数バンクの中から
記憶情報を置換すべき場合に、当該置換されるべきセッ
トは、中央処理装置によるソフトウェアの実行によって
任意に指定可能にされる。例えばMMUCR.RCは、
上記バンクを任意に指定するための2ビットの情報が設
定されるレジスタである。これに設定された値がデコー
ダ17によって解読されることにより4個のバンク11
〜14の中から一つを選ぶ信号(BSK1〜BSL4)
が形成される。これにより、4個のバンク11〜14の
内、上記選択信号によって指定された1個のバンクであ
って、インデックスアドレス2で指定された1つのエン
トリが置換対象とされる。このレジスタMMUCR内の
ビットMMUCR.RCに対する値の設定がハードウェ
ア手段によって行われるとき、当該ハードウェア手段に
よるバンクの指定は上記中央処理装置(CPU)による
ソフトウェアの実行によって任意に変更可能にされる。
るように、MMUCR.RCをランダムカウンタのよう
な計数手段として備え、その計数手段のビット数の2の
べき乗数が、上記バッファメモリ1のバンクの数(=
4)と一致される。上記ハードウェア手段に含まれる制
御回路CTRLは、バッファメモリ1に対する記憶情報
の置換が必要になった場合、上記計数手段を1インクリ
メントし、何れのバンクの、インデックスされた記憶領
域にも有効なデータが保持されている(インデックスさ
れた各バンクの各エントリが、有効を示す”1”のバリ
ッドビットVを有する)場合には、そのインクリメント
された結果を置換すべきバンク番号とする。これに対し
て、何れかのバンク内で、インデックスされた記憶領域
に、有効なデータが保持されていない(インデックスさ
れた何れかのエントリが、無効を示す”0”のバリッド
ビットVを有する)場合には、有効なデータを保持して
いないエントリを含むバンクの番号を計数手段にセット
し、且つセットされた番号のバンクを置換すべきバンク
とする。このような一定の規則に従って、置換すべきバ
ンクの指定が行われる。このとき、上記計数手段の各ビ
ットは、中央処理装置により実行されるソフトウェアに
よって、任意の値へ変更することが可能な対象とされて
いる。
ト》 仮想記憶をサポートするデータ処理装置は、論理
アドレス空間を論理ページと呼ばれる単位に分割して、
そのページ単位で、論理アドレスを物理アドレスへアド
レス変換を行うためのアドレス変換機構を備える。この
アドレス変換機構は、複数のプロセスの夫々が論理空間
の全域にわたるアドレス変換情報を有するとき、プロセ
ス番号(asid)によって論理アドレスを修飾或いは
拡張する多重仮想記憶と、複数のプロセスに論理アドレ
ス空間の一部が排他的に割り当てられ、夫々のプロセス
がそれに割り当てられた論理アドレス空間のアドレス変
換情報を有するとき、プロセス番号(asid)によっ
て論理アドレスを修飾或いは拡張しない単一仮想記憶と
を有し、該多重仮想記憶と該単一仮想記憶とを選択する
ことが可能にされている。したがって図5に例示される
ようにバッファメモリ内の各エントリには、論理ページ
番号VPNと物理ページ番号PPNの変換対に加え、プ
ロセス番号ASIDのフィールドが設けられている。こ
のフィールドの内容は、単一仮想記憶か多重仮想記憶か
で、その処理内容が相違されることになる。あるTLB
エントリに含まれるプロセス番号に対応される論理ペー
ジが、他のプロセスと共有不可能とされているとき、多
重仮想記憶においては、プロセス番号ASIDのフィー
ルドの内容はバッファメモリに対する検索のヒット/ミ
ス(TLBヒット/TLBミス)の判定に用いられる。
即ち、この場合には、バッファメモリに格納されている
エントリの論理ページ番号VPNの情報が、論理ページ
アドレスvpnの情報に一致すると共に、当該エントリ
のプロセス番号ASIDが現在のプロセスの番号asi
dに一致していなければTLBヒットとはされない。単
一仮想記憶においては、プロセス番号ASIDのフール
ドの内容はメモリ保護情報として使用される。即ち、こ
の場合には、プロセス番号の相違によってTLBミスが
発生したとき、ソフトウェアによってTLBミスの原因
がプロセス番号の相違によるものか、論理ページアドレ
スの相違によるものかが判別され、プロセス番号の相違
による場合には、プロテクションエラーとして処理され
る。上記単一仮想記憶か多重仮想記憶かは、図6に例示
されるレジスタMMUCRのビットMMUCR.SVの
値によって指示される。このビットMMUCR.SVの
値は、中央処理装置によって実行されるソフトウェアに
よって、任意に設定することができる。
タ処理装置は、システムに実装される実メモリの全記憶
容量が少ないような場合に、論理ページのサイズを比較
的小さくして、各プロセスによるメモリの利用効率を向
上させたいという要求にも容易に対応できる。このと
き、最大論理ページサイズを最小サイズの2のべき乗数
倍にし、セットアソシアティブ方式のバッファメモリの
バンクの数をその2のべき乗数以上にすることは、イン
デックスアドレスの指定手法を最大論理ページサイズの
ものに統一しても、選ばれる論理ページのサイズに拘わ
らず、原理的には、どの論理ページ番号のエントリにつ
いても、同じ数だけエントリをバッファメモリに保有す
ることが可能となる。論理ページのサイズを示すための
情報を用いてヒット判定に反映されるべきアドレス比較
のビット数を変化させることは、バッファメモリを連想
的に検索するための比較対象情報のビット数やビット位
置を論理ページのサイズによって変化させることを容易
に実現する。複数ページサイズをサポートするバッファ
メモリをセットアソシアティブ形式のキャッシュメモリ
で実現することは、これをCAMで構成する場合に比べ
てチップ専有面積と消費電力を共に半減させる。
段によれば、多重仮想記憶において多くのプロセスが並
列的に起動される利用形態においてヒット率の低下を抑
えることができるように、その利用形態に応じてインデ
ックス方法を選択可能にすることができる。論理アドレ
スの一部を当該論理アドレスを利用するプロセス番号
(asid)によって修飾し、これを以てバッファメモ
リをインデックスすることにより、多重仮想記憶におい
て多くのプロセスが並列的に起動される利用形態におい
てのヒット率の低下を抑えることが可能となる。
れば、バッファメモリの変換対を置き換えるためのリプ
レースメントアルゴリズムを固定化せず、置き換えるべ
きバンクをソフトウェアで任意に決定することが可能と
なる。これにより、データ処理の都合上、常に特定の変
換対をアドレス変換バッファにエントリとして格納して
おきたいという要求や、特定のアドレス変換対をリプレ
ース対象にしたくないという要求に容易に答えることが
できる。ソフトウェアによってリプレースの対象を指示
するレジスタを持つことは、ソフトウェアのアルゴリズ
ム次第で、ランダム、FIFO、又はLRUなどにした
がってリプレースを行う自由度も保証できる。
る手段によれば、アドレス変換機構の使い勝手を向上さ
せることができる。特に、ソフトウェアを介して、何れ
を使うかを選択することができるようにして、一層使い
勝手を向上させることができる。多重仮想記憶における
プロセス番号(ASID)を単一仮想記憶におけるメモ
リ保護情報として使用することにより、単一仮想記憶を
選択した場合におけるメモリ保護の完全化を容易に実現
することができる。
タ処理装置の一実施例であるマイクロコンピュータの要
部が示される。本実施例のマイクロコンピュータは、特
に制限されないが、公知の半導体集積回路製造技術によ
って単結晶シリコンのような1個の半導体基板に形成さ
れている。同図には、論理アドレスバスVABUS、物
理アドレスバスPABUS、データバスDBUS、中央
処理装置(CPU)3、キャッシュメモリ(CACH
E)4、バッファメモリとしてのアドレス変換バッファ
(TLB)1、及びTLBコントローラ(TLBC)5
が代表的な回路ブロックとして図示されている。CPU
3は図示しないプログラムメモリから命令をフェッチ
し、その命令記述に応じたデータ処理を行い、外部アク
セスを要する場合には論理アドレスバスVABUSに論
理アドレスを出力し、データバスDBUSを介してデー
タの入出力を行う。キャッシュメモリ4は、特に制限さ
れないが、4ウェイ・セットアソシアティブ形式とさ
れ、バンクに対するインデックスは論理アドレスバスV
ABUSから供給される論理アドレスの一部を用いて行
われ、エントリのタグ部には物理アドレスが保有され、
インデックスされたタグ部はその論理アドレスがアドレ
ス変換バッファ1で変換されて物理アドレスバスPAB
USに出力される物理アドレスと比較され、その比較結
果に応じてキャッシュミス/ヒットを判定する。
アドレス空間を論理ページと呼ばれる単位に分割し、そ
のページ単位で、論理アドレスを物理アドレスへアドレ
ス変換を行うための仮想記憶をサポートしている。上記
アドレス変換バッファ1は、論理ページ番号VPNとこ
れに対応した物理ページ番号PPNとに関する変換対な
どをTLBエントリとして格納し、TLBコントローラ
5は中央処理装置3が出力する論理アドレスをアドレス
変換バッファ1などを用いて物理アドレスに変換する。
上記アドレス変換バッファ1は、それぞれインデックス
アドレスが共通化された4個のバンクを持つ4ウェイ・
セットアソシアティブ方式のキャッシュメモリによって
構成される。図面が複雑になるのを避けるために、図7
には、代表的に1個のバンク11のみが図示されている
が、実際には図1のようにバンク11と同様の別のバン
ク12〜14が紙面の表裏方向に配置されている。上記
アドレス変換バッファ1、TLBコントローラ5、CP
U3、及びアドレス変換とメモリ保護のためのシステム
ソフトウェア若しくはオペレーティングシステムによっ
て、上記仮想記憶をサポートするアドレス変換機構が構
成される。
ピュータのアドレス空間について説明する。本実施例の
マイクロコンピュータは、4GBの論理アドレス空間を
サポートするために、中央処理装置3は、32ビットの
論理アドレスを形成する。その論理アドレスは後述のプ
ロセス番号(空間番号とも記す)asidによって拡張
可能にされている。図8の(A)及び(B)には、サポ
ートされている論理アドレス空間のアドレスマッピング
が示される。これらの図において”Mapped”と示される
領域は、アドレス変換バッファ(TLB)1を利用した
アドレス変換の対象とされる領域である。H'FFFF
FFFF(H'は16進数を意味する)〜H'80000
000の領域は、特権モードにおいてアクセス可能な領
域とされ、ユーザモードでのアクセスはアドレスエラー
とされる。P4領域はコントロールスペースであり、周
辺コントロールレジスタなどがマッピングされる。P
1,P2領域はそれに対応される物理アドレスが固定と
される領域であり、アドレス変換バッファ1を利用した
アドレス変換の対象とはされない。これらの領域P1,
P2の論理アドレスは、一定の定数が加算又は減算され
て、物理アドレスに変換される。したがって、特権モー
ドにおいて、当該領域P1,P2をアクセスするときは
TLBミスを初めとするアドレス変換に係る例外が生じ
ない。特にP2領域はキャッシュメモリCACHEによ
るキャッシュの対象とされず、P1領域はキャッシュの
対象とされている。
の様に、特権モードとユーザモードとを有し、特権モー
ドで動作しているのか、ユーザモードで動作しているの
かが、中央処理装置3に含まれるステータスレジスタS
RのモードビットMDの値によって示される。MD=0
は、ユーザモードで動作していることを表わし、MD=
1は、特権モードで動作していることを表わす。図8の
(A)及び(B)に示されているように、特権状態(特
権モードが設定されている状態)は、ユーザ状態(ユー
ザモードが設定されている状態)でのアクセスではアド
レスエラーとなるようなアドレス空間(P1からP4)
を、アクセスでき、ユーザ状態では実行不可能な特権命
令若しくはシステム制御命令を実行することができる、
などという点においてユーザ状態と相違される。
の論理アドレス空間の内、特に制限されないが、P0領
域とP3領域は、論理ページと呼ばれる単位で、複数に
分割され、分割されたページ単位で、論理アドレスは物
理アドレスへ変換される。本実施例のマイクロコンピュ
ータがサポートする論理ページのサイズは4KBと1K
Bの2種類とされている。これは、サポートされる論理
ページの最大サイズ(=4KB)が最小サイズ(=1K
B)の2のべき乗数倍にされ、アドレス変換バッファ1
のバンクの数(=4)がその2のべき乗数以上であると
いう関係を満足する。図5に示されるように、論理ペー
ジサイズが1KBの場合には、中央処理装置により形成
される論理アドレス(ビット0からビット31迄の32
ビットのアドレス)の内、ビット0〜ビット9までがオ
フセットとされ、ビット10〜ビット31までが論理ペ
ージ番号(論理ページアドレス)とされる。論理ページ
サイズが4KBの場合には、論理アドレスの内、ビット
0〜ビット11までがオフセットとされ、ビット12〜
ビット31までが論理ページ番号(論理ページアドレ
ス)とされる。アドレス変換バッファ1に対するインデ
ックスには、ページサイズが4KBであるか1KBであ
るかに拘わらず、4KBページサイズの論理ページアド
レスの下位5ビットのビット位置の情報、換言すれば、
32ビットの論理アドレスのビット12〜ビット16が
用いられる。論理アドレスを物理アドレスに変換する場
合、当該論理アドレスの論理ページ番号に対応するエン
トリから物理ページ番号を取得し、当該論理アドレスの
オフセット情報を物理ページ番号の下位側に付加して物
理アドレスが得られる。
換バッファ1内のエントリへ取り込まれる情報(ページ
テーブルエントリ)は、予め、ソフトウエアにより形成
され、図7には示されていない外部メモリ(例えば図2
2のメモリRAM)に記憶されている。すなわち、仮想
記憶のためのページテーブルエントリは、論理ページ番
号VPNと物理ページ番号PPNとの対応関係を示す変
換情報やアクセスの属性などについての記述を含み、外
部メモリに形成されるところのページテーブルに格納さ
れる。高速なアドレス変換ができるように、このページ
テーブルに格納されたエントリの一部が、上記TLB1
内のバンク11〜14に格納される。外部メモリにおけ
るページテーブルのアドレスは、後で図6を用いて説明
する変換テーブルレジスタ(TTB)53に、予めセッ
トされる。TLBミスなどが発生した際には、この変換
テーブルレジスタ53にセットされているベースアドレ
スと、ミスの際の論理ページ番号等を用いて、CPU3
が、上記ページテーブルをアクセスして、その時の論理
ページ番号に対応した物理ページ番号等を含むエントリ
を求めて、例えば、TLB1内のバンクへ求めたエント
リを書き込む。これにより、その時の論理アドレスに対
応した物理アドレスが形成される。
リは、図5にその詳細が示されるように、便宜上アドレ
ス部とデータ部に分けられている。アドレス部は、論理
ページ番号の情報VPN(31−17),VPN(11
−10)、エントリが有効であることを示すバッリドビ
ットV(1ビット)、空間番号ASID(8ビット)、
サイズビットSZ(1ビット)、及び共有ステータスS
H(1ビット)を有する。データ部は、記憶保護のため
のプロテクションPR(2ビット)、論理ページ番号に
対応される物理ページ番号PPN(22ビット)、ダー
ティビットD(1ビット)、及びキャッシャブルビット
C(1ビット)を保有する。アドレス部が保有する論理
ページ番号の情報は、32ビットの論理アドレスのビッ
トフォーマットにおいてインデックスに利用されるビッ
トを除いたビット10〜ビット11とビット17〜ビッ
ト31とされる。前者はVPN(11−10)と表記さ
れ、後者はVPN(31−17)と表記されている。共
有ステータスSHは複数プロセス間で当該ページが共有
されているか否かを示し、SH=0は非共有、SH=1
は共有を意味する。空間番号ASIDは特定のプロセス
に属するものとして論理ページを定義するために利用さ
れるものであり、プロセス番号とも称する。プロテクシ
ョンPRはページに対するアクセス権を定義するために
エンコードされたデータであり、その値の組み合わせに
より図9に示される態様でアクセス権が定義されてい
る。サイズビットSZは論理ページサイズを指定するビ
ットであり、論理値1は4KBページサイズを指定し、
論理値0は1KBページサイズを指定する。
を図20の(A)及び(B)に基づいて説明する。多重
仮想記憶とは、複数のプロセスの夫々が、論理空間の全
域にわたるアドレス変換情報を有するとき、プロセス番
号asidによって論理アドレスを修飾或いは拡張する
というものである。これに対して、単一仮想記憶とは、
複数のプロセスに論理アドレス空間の一部が排他的に割
り当てられる。言い替えるならば、単一仮想記憶とは、
夫々のプロセスがそれに割り当てられた論理アドレス空
間のアドレス変換情報を有するとき、プロセス番号as
idによって論理アドレスの修飾或いは拡張がされな
い。このように、単一仮想記憶においては、複数のプロ
セス間で、排他的に論理アドレス空間が割り当てられる
ため、図20の(B)に示されるように、プロセスに割
り当てられた論理アドレス空間毎にそれ固有のアドレス
変換情報が存在する。そのため、アドレス変換テーブル
は一つ存在するだけである。当該一つのアドレス変換テ
ーブルを用いれば、ある論理アドレスAはそれに対応さ
れる物理アドレスDに一義的に変換される。これに対し
て多重仮想記憶においては、複数のプロセス間で、論理
アドレス空間が相互に重複して割り当てられる。そのた
め、プロセス毎のアドレス変換情報は相互に別々のアド
レス変換テーブルに含まれなければならない。したがっ
て、ある論理アドレスAは相互に異なるアドレス変換テ
ーブルi,jを介することによって異なる物理アドレス
B,Cに変換されることになる。このとき変換に係る論
理アドレスAがどのプロセスに属するかは、プロセス番
号によって識別される。図20の(A)に従えば、多重
仮想記憶においてアドレス変換テーブルiはプロセス番
号iに対応され、アドレス変換テーブルjはプロセス番
号jに対応される。プロセス番号は、互いに同じ論理ア
ドレス空間を使う(アクセスする)ところの複数のプロ
セスにおける識別番号とみなすこともできる。
ついて、単一仮想記憶と多重仮想記憶との相違が示され
ている。この図面において、PRは、図9に示されてい
る保護情報である。
制御回路(CTRL)50、ページテーブルエントリ上
位(PTEH)レジスタ51、ページテーブルエントリ
下位(PTEL)レジスタ52、変換テーブルベース
(TTB)レジスタ53、TLB例外アドレス(TE
A)レジスタ54、及びコントロール(MMUCR)レ
ジスタ55を備える。後で、図22を用いて説明するよ
うに、これらのレジスタは、CPU3に結合されてお
り、少なくともTEAレジスタ54とMMUCRレジス
タ55はCPU3によって直接リード/ライト可能にさ
れる。その他のレジスタ51〜53もCPU3によって
直接アクセス可能にされている。
1,PTELレジスタ52はTLBミスなどにおいてT
LB1のエントリを更新又は追加するためのページテー
ブルエントリを保有できるフィールドが備えられてい
る。PTEHレジスタ51には、ソフトウエアの実行に
よって、中央処理装置3から、現在のプロセスの空間番
号asidがセットされる。また、PTEHレジスタ5
1は、TLBミスなどが発生した場合、CPU3が出力
しているTLBミスの論理ページアドレスvpnを保持
する機能も兼ね備えている。CPU3が出力する論理ア
ドレスのオフセットはCTRL50内部の図示しないラ
ッチ回路に保持される。TTBレジスタ53には、現在
のページテーブルのベースアドレスが保持されている。
TEAレジスタ54は、TLBに関する例外又はアドレ
スエラー例外が生じた場合、そのときの論理アドレスを
保持する。MMUCRレジスタ55は、アドレス変換を
有効にするか無効にするかを指示するビットAT(論理
値1=有効,論理値0=無効)、TLB1のフラッシン
グを指示するビットTF、2ビットのランダムカウンタ
フィールドRC、インデックスモードを指定するインデ
ックスモードビットIX、単一仮想記憶と多重仮想記憶
との何れを選択するかを指示するシングルバーチャルビ
ットSV(SV=1で単一仮想記憶を選択,SV=0で
多重仮想記憶を選択)を含む。上記インデックスモード
ビットIXが1の場合には、図3に示されるようにas
id(4−0)即ち現在の空間番号asidのビット0
〜ビット4と、中央処理装置3から出力されているとこ
ろの論理ページ番号vpnのビット12〜ビット16と
を利用したインデックス手法が選択される。これに対し
て、IXが0の場合には、図2に示されるように、中央
処理装置3から出力されているところの論理ページ番号
vpnのビット12〜ビット16を利用したインデック
ス手法が選択される。更に詳しく述べるならば、IX=
1の場合におけるインデックスアドレスは、図7に示さ
れるように、PTEHレジスタ51が保有する空間番号
asidのビット0〜ビット4と、CPU3から出力さ
れている論理ページ番号vpnのビット12〜ビット1
6すなわちvpn(16−12)とを入力する排他的論
理和ゲートXORによって形成される。図7のセレクタ
18は排他的論理和ゲートXORでハッシングされた出
力又はvpn(16−12)の何れかをインデックス用
アドレスとして選択する。その選択制御はインデックス
モードビットIXの値にしたがって決定され、CTRL
50から出力される選択信号550にて行われる。
理アドレスの論理ページ番号vpn(31−10)のう
ち、ビット12〜ビット16に相当されるvpn(16
−12)は、TLB内の4個のバンク11〜14に共通
なインデックスアドレス2の生成に利用される。上記の
ように、論理ページ番号は5ビットで表わされるため、
共通なインデックスアドレス2によって、夫々のバンク
における32個のエントリから、それぞれ一つづつが選
択されて、読出される。選択される夫々のエントリは、
情報として、VPN(31−17),VPN(11−1
0),ASID,SH,SZ,V,PPN(31−1
0),PR,C,Dを含む。選択され、読み出されたエ
ントリにおける情報の内、読出されたVPN(31−1
7)は、コンパレータ151によって、中央処理装置3
から出力されている論理アドレスのvpn(31−1
7)と比較され、VPN(11−10)は、コンパレー
タ152によって、中央処理装置3から出力されている
論理アドレスのvpn(11−10)と比較され、読出
されたASIDは、PTEHレジスタ51が保有する現
在の空間番号asidとコンパレータ153にて比較さ
れる。比較結果に対しては制御ロジック154が、共有
ステータスSH,サイズビットSZ、シングルバーチャ
ルビットSV,及びモードビットMDの値を考慮してバ
ンク11のミス/ヒットの判定を行う。hit1はバン
ク11におけるミス/ヒットの判定結果としてのヒット
信号である。上記コンパレータ151〜153及び制御
ロジック154は、各バンク11〜14に、それぞれ設
けられている。図7ではバンク12〜14に関しては夫
々のヒット信号hit2〜hit4が代表的に示されて
いる。本実施例に従えば各コンパレータ151〜153
の出力はハイレベルが一致レベルとされる。ヒット信号
hit1〜hit4もハイレベルがヒットレベルとされ
る。制御回路50はヒット信号hit1〜hit4の何
れかがヒットレベルにされることを以てTLBヒットと
判定する。図7の501はTLBヒット/ミスの判定結
果をCPU3に通知するTLBヒット信号である。TL
Bミスが発生したときには、アドレス変換バッファ1の
エントリを置換する処理が行われる。この置換処理にお
いて、置換されるべきエントリの内容は、PTEHレジ
スタ51,PTELレジスタ52に保持され、PTEH
レジスタ51,PTELレジスタ52からTLB1へ置
換されるべき情報が供給され、TLB1に格納される。
置換されるべきエントリを選択するためのインデックス
手法は、上述のリード時におけるインデックス手法と同
じであるが、どのバンク(セット)に当該エントリを格
納するかはMMCCRレジスタ55のRCの値(MMU
CR.RC)によって決定される。
構成の一例が示されている。1541は3入力アンドゲ
ート、1542は2入力オアゲート、1543は2入力
オアゲートである。オアゲート1542は、インデック
スされたTLBエントリ(インデックスアドレスによっ
て選択され、読み出されたエントリ)に含まれるVPN
(11−10)と論理アドレスに含まれるvpn(11
−10)との比較結果であるコンパレータ152の出力
と上記インデックスされたTLBエントリからのサイズ
ビットSZを入力する。サイズビットSZが1にされ、
4KBの論理ページサイズが指示されている場合には、
TLBミス/ヒット判定のためのアドレス比較におい
て、TLBエントリ内のVPN(11−10)とCPU
3からのvpn(11−10)との比較は行う必要がな
い。そのため、サイズビットSZ=1の状態では、アン
ドゲート1541の出力信号hit1には上記アドレス
ビット11,10の比較結果は反映されない。サイズビ
ットSZが0にされ、1KBの論理ページサイズが指示
された場合には、TLBミス/ヒット判定のために、ア
ドレスビット11,10の比較動作が必要とされ、その
比較結果が信号hit1に反映される。
されたTLBエントリに含まれるプロセス番号ASID
と現在のプロセス番号(PTEHレジスタ51から出力され
ているプロセス番号)asidとの比較結果であるコン
パレータ153の出力と、上記インデックスされたTL
Bエントリからの共有ビットSHとを入力する。この共
有ビットSHが、1にされている場合、”プロセス間で
の論理ページの共有”の状態が指示されていることにな
る。そのため、この状態ではTLBミス/ヒット判定の
ためのアドレス比較において、プロセス番号間の比較が
必要とされないから、共有ビットSH=1の状態では、
アンドゲート1541の出力信号hit1にはプロセス
番号間の比較結果は反映されない。上記インデックスに
おける共有ビットSHが0にされ、”プロセス間での論
理ページの非共有”の状態が指示されている場合には、
TLBミス/ヒット判定のためのアドレス比較におい
て、プロセス番号間の比較が必要とされるから、共有ビ
ットSH=0の状態では、アンドゲート1541の出力
信号hit1にはプロセス番号間の比較結果が反映され
る。
が保有する上記プロセス番号ASIDが、メモリ保護情
報(ドメイン番号)として利用される。単一仮想記憶で
も多重仮想記憶でも共有ビットSHによって共有又は非
共有が指示される。非共有が指示されているとき、多重
仮想記憶においては現在のプロセス番号asidとTL
Bエントリに含まれるプロセス番号ASIDとの不一致
はTLBミスとされる。これに対して、非共有が指示さ
れているとき、単一仮想記憶においては、プロセス番号
asid,ASID間の不一致は、TLBプロテクト違
反例外の検出に利用される。それを実現するために、制
御回路50は、アクセス権チェックのための一つの論理
として、図21に示されるアンドゲート502を有す
る。このアンドゲート502は、前記オアゲート154
3の反転出力、MMUCRレジスタからのシングルバー
チャルビットSV、及び中央処理装置3内のステータス
レジスタ内のモードビットMDの反転信号を受けて、T
LBプロテクト違反例外の検出信号503を形成する。
この検出信号503は、ハイレベルがTLBプロテクト
違反例外の検出レベルである。信号503によってTL
Bプロテクト違反例外が検出されるのは、プロセス番号
が不一致、且つ非共有の状態(オアゲート1543の出
力がローレベル)で、単一仮想記憶(SV=1)、ユー
ザモード(MD=0)の条件が満足されたときである。
即ち、単一仮想記憶において、プロセス番号が不一致、
且つ非共有の場合には、実質的にTLBミスになるが、
この状態をメモリ保護のためのTLBプロテクト違反例
外とする。モードビットMD=1によって指示される特
権状態では、別のプロセスに割り当てられている論理ペ
ージもアクセスできるようにすることが望ましいため、
MD=1の特権状態においてはTLBプロテクト違反例
外を検出しないようにしている。
換動作の制御を示すメインフローチャートである。この
制御は、アドレス変換バッファ1のインデックス処理L
1、アドレス比較とVビットのチェック処理L2、アク
セス権のチェック処理L3、物理アドレスの生成処理L
4に大別される。これらの処理はCPU3及びコントロ
ーラ5によって制御される。
理L1において、それに利用される論理アドレスは論理
ページのサイズに拘わらずvpn(16−12)とされ
る。このインデックス処理において、利用される論理ア
ドレスを、排他的論理和ゲートXORを用いて、空間番
号asidの一部asid(4−0)でハッシングした
ものをインデックス用アドレスとして使用するか否か
が、MMUCRレジスタ55のIXの値(MMUCR.
IX)によって決定される。図11に示されるように、
MMUCR.IXが1の場合には、上記利用される論理
アドレスがasid(4−0)にてハッシングされ、イ
ンデックス用アドレスとされる。これに対して、MMU
CR.IXが、0の場合にはvpn(16−12)がそ
のままインデックス用アドレスとされる。前者のインデ
ックス手法は図3に示され、後者のインデックス手法は
図2に示される。TLB1がインデックスされると、夫
々のバンク11〜14において32個のエントリから一
つが選択されて読出される。選択される夫々のエントリ
は、情報として、VPN(31−12),VPN(11
−10),ASID,SH,SZ,V,PPN(31−
10),PR,C,Dを含む。
2において実行されるアドレス比較の手順の一例が、図
12に示されている。ここに示されている手順は、図2
1に示されている制御ロジック154の論理に基づいて
いるが、空間番号ASIDの比較に関してはTLBプロ
テクト違反例外の検出についても考慮して示されてい
る。ヒット信号hit1〜hit4に反映されるべきア
ドレス比較の対象をどのようにするかは、次のようにし
て決められる。まず、SHが1か否によって、アドレス
比較の対象として、空間番号を考慮するか否かが大別さ
れ、SZが0か否かによって、アドレス比較の対象とし
て、VPN(11−10)を考慮するか否かが決定され
る。特に、単一仮想記憶(SV=1)においては、空間
番号ASIDのフィールド内データをメモリ保護情報と
して用いるが、前述のように特権モードにおいては別の
プロセスに割り当てられた論理ページも現在のプロセス
からアクセスすることができるようにするため、言い換
えるならば、TLBプロテクト違反例外を検出しないよ
うにするために、単一仮想記憶であって、且つ特権モー
ド(SV=1且つMD=1)のときには比較対象から空
間番号ASIDのフィールドを除外するようにしてい
る。
Bエントリがリードされ、そのリードされたTLBエン
トリ内の共有ステータスSHに基づいて、アドレス比較
の際に空間番号ASIDを考慮するか否かが判定され
る。SH=1(共有)の場合、空間番号ASIDはアド
レス比較の対象として考慮されず、SH=0(非共有)
の場合、空間番号ASIDはアドレス比較の対象として
考慮される。また、MMUCRレジスタ55のSVの値
(MMUCR.SV)が1にされ、単一仮想記憶が設定
されている場合であって、ステータスレジスタSRのモ
ードビットSR.MDが1になっている場合(中央処理
装置が、特権モードで動作している場合)には、空間番
号ASIDはTLBプロテクト違反例外の検出には考慮
されない。特権モードの性質上、別のプロセスに割り当
てられている論理ページを、現在のプロセスからアクセ
スできるようにするためである。
サイズビットSZの値に従って、1KBまたは4KBの
サイズが論理ページのサイズとして選択される。論理ペ
ージのサイズが1KBの場合には、各バンクでインデッ
クスされたそれぞれのTLBエントリ内の情報VPN
(31−17)及びVPN(11−10)が、論理アド
レスの対応ビットvpn(31−17),vpn(11
−10)との比較対象とされる。論理ページサイズが4
KBの場合には、各バンクでインデックスされたそれぞ
れのTLBエントリ内の情報VPNの内、VPN(11
−10)と、これに対応する論理アドレスのvpn(1
1−10)とは比較判定の対象から除外される。
−17,11−10),vpn(31−17,11−1
0),ASID,asid)が定められ、比較が行われ
る。この比較の結果として、何れかのバンクにおいて一
致すると、その一致したバンクからヒット信号が出力さ
れる。各バンクのヒットは、ヒット信号hit1〜hi
t4として出力され、TLBヒットとされる。これに対
して、いずれのバンクからもヒット信号が出力されない
場合、すなわち不一致の場合には、TLBミス例外が検
出されることになる。その結果は、信号501にてCP
U3にも通知され、CPU3によって、後で述べるTL
Bミス例外の処理が行われる。
トリに対しては、そのエントリ内のVビットについての
チェックも行われる。すなわち、インデックスによっ
て、リードされたエントリ内のVビットに対してチエッ
クが行われる。TLBヒットの場合に、ヒットに係るエ
ントリ内のVビットが0(無効)のときは、TLBイン
バリッド例外が検出され、これがCPU3に通知され
る。この例外処理の内容は後述する。TLBミスの場合
におけるVビットの判定結果はTLBミスに係る後述の
エントリリプレースにて利用される。
は、インデックスによりリードされたTLBエントリ内
の情報PRの内容と、MMUCRレジスタ内のビットM
MUCR.SVの内容とに従ってアクセス権がチェック
される。例えば図13に示されるように、先ず、MMU
CRレジスタ内のビットMMUCR.SVが、1(単一
仮想記憶)か、0(多重仮想記憶)かの判定が行われ
る。多重仮想記憶の場合(SV=0)には、図9に示し
たPRの内容にしたがって、TLBエントリ内の情報で
表されるアドレス空間のプロテクションが行われる。単
一仮想記憶で、かつ特権モードにされている場合、すな
わちMMUCR.SV=1(単一仮想記憶)で、ステー
タスレジスタ内のビットSR.MD=1(特権モード)
の場合には、TLBエントリ内の情報で表されるアドレ
ス空間を、無条件にアクセスすることができる。これに
対して、単一仮想記憶であっても、ユーザモードの場合
(SR.MD=0:ユーザモード)には、アクセス権の
チエックに際して、空間番号ASIDと共有ステータス
SHが考慮される。すなわち、アクセス時のPTEHレ
ジスタ51の空間番号asidとTLB1からリードさ
れた空間番号ASIDとが一致する場合又はSH=1
(共有)の場合には、上記PRにしたがって、TLBエ
ントリ内の情報で表されるアドレス空間のプロテクショ
ンが行われる。これに対して、プロセス番号が不一致
で、且つ非共有の場合にはTLBプロテクト違反例外が
検出される。当該例外の内容については後述する。更に
アクセス権のチェック処理L3においては、アクセスが
リードのためのものかライトのためのものかのアクセス
タイプ判定と、TLB1からリードしたエントリのDビ
ットの判定が行われる。アクセスが、初めてのライト
(例えば、電源投入やリセットの後の初めてのライトア
クセス)の場合には、TLBイニシャルページライト例
外が検出される。即ち、TLBイニシャルページライト
例外は、論理アドレスとインデックスされたTLBエン
トリとの比較結果がTLBヒットであって、TLBエン
トリ内のダーティビットDが0とされ、そのときのアク
セスがライトアクセスである条件によって検出される。
このTLBイニシャルページライト例外処理の内容につ
いては後述する。
インデックスされたTLBエントリのサイズビットSZ
にしたがって、図14のように物理アドレスが生成され
る。物理アドレスpaを形成するために使われる論理ア
ドレスvaのオフセットva(9−0)は、図に示され
ていないが、制御回路(CTRL)50内のラッチ回路
に保持されている。SZ=0(論理ページサイズが1K
B)のときは、CPU3から出力されている論理アドレ
スvaのオフセットva(9−0)が物理アドレスpa
のオフセットpa(9−0)とされる。すなわち、ヒッ
トしたTLBエントリのデータ部に含まれる物理ページ
番号PPNの全ビットPPN(31−10)が物理ペー
ジアドレスpa(31−10)とされ、これにオフセッ
トとしてアドレス(9ー0)が下位側に付加されて、物
理アドレスpaが生成される。SZ=1(論理ページサ
イズが4KB)のときは、CPU3から出力されている
論理アドレスvaのオフセットva(11−0)が物理
アドレスpaのオフセットpa(11−0)とされる。
ヒットしたTLBエントリ内のデータ部に含まれる物理
ページ番号PPNの内、下位2ビットが無視されたPP
N(31−12)が物理ページアドレスpa(31−1
2)とされ、オフセットとしてのアドレス(11ー0)
が下位側に付加されて、物理アドレスpaが生成され
る。
ェック処理L2において検出されたTLBミス例外にお
けるリプレース対象バンクのハードウェア指定手法が示
されている。この制御は制御回路50がその論理構成に
従って一義的に行うものであり、MMUCRレジスタの
ビットMMUCR.RCをランダムカウンタのような計
数手段として利用する。ここで、MMUCR.RCのビ
ット数の2のべき乗数が、上記TLB1のバンクの数
(=4)に一致される。制御回路50は、上記ヒット信
号hit1〜hit4のいずれもがヒット状態を示さな
いことに応答して、TLBミスによるTLB1に対する
エントリの置換が必要と判断する。このように判断する
と、制御回路50は、MMUCR.RCを1インクリメ
ント(+1)し、インデックスされた4個のエントリの
中に、無効なエントリが有るか否かを調べる。これは、
インデックスされた4個のエントリのそれぞれにおける
Vビットを調べることによって達成される。Vビットを
調べた結果として、無効なエントリがない(インデック
スされた各バンクのエントリは、全て有効なデータ”V
=1”を保持している)場合には、そのインクリメント
された結果を置換すべきバンク番号とし、MMUCR.
RCに対してはノー・オペレーションとする。無効なエ
ントリが存在する(各バンクでインデックスされた何れ
かのエントリが、V=0を示し、有効なデータを保持し
ていない)場合には、無効なエントリを有するバンクの
バンク番号をMMUCR.RCにセットし、且つセット
された番号のバンクを置換すべきバンクとする。また、
上記MMUCR.RCの各ビットは、CPU3によるソ
フトウェアの実行によって、任意にその値を変更するこ
とが可能である。そのため、上述の様にして、このレジ
スタに設定されたバンク番号を、更に、ソフトウエアに
よって変更することもできる。そのため、任意のバンク
をリプレースの対象にすることができる。
るために、TLBエントリを更新するためのTLBミス
ハンドラによる処理手順が示されている。TLB1のエ
ントリの更新にはロードTLBインストラクションが利
用される。このロードTLBインストラクション(LD
TLBとも表す)が、CPU3によって実行されること
により、次の処理が行われる。すなわち、PTEH,P
TELの各レジスタ51,52の値を、TLB1のエン
トリへ書き込む処理が行われる。この場合、書き込み対
象のエントリは、特に制限されないが、MMUCR.R
Cにセットされているバンク番号により指示されるバン
ク内のエントリであって、PTEHレジスタ51内に保
持されている論理アドレス(ビット12ービット16)
をインデックスアドレスとして指示されるエントリであ
る。上記TLBミス例外が検出されると、CPU3から
出力されているところの、その時の論理アドレスの一部
(ビット10からビット31)は、上記PTEHレジス
タ51に保持される。これにより、TLBミス例外が発
生した時のインデックスアドレスと同じ値のインデック
スアドレスによって、リプレースの際のエントリが指示
される。但し、リプレースに使われるバンクは、MMU
CR.RCにセットされているバンク番号によって決定
されることになる。
に示されている様な外部メモリRAMに、予め、ページ
テーブルが、ユーザによって形成される。このページテ
ーブルには、特に制限されないが、複数の論理アドレス
に各々対応した複数の変換情報(ページテーブルエント
リ)が、所定の規則にしたがって、格納される。このペ
ージテーブルのアドレス、例えば、その開始アドレス
は、ベースアドレスとして、レジスタTTB53に、予
め格納される。このページテーブルは、特に制限されな
いが、開始アドレスとしての上記ベースアドレスと論理
アドレスとに基づいて、当該論理アドレスに対応したペ
ージテーブルエントリ(対応する物理ページ番号pp
n、バリッドビットv、プロテクションビットpr、サ
イズビットsz、キャッシャブルビットc、ダーテイビ
ットd、ステータスshを含む)を検索することができ
るような規則で、複数の論理アドレスに各々対応した複
数のページテーブルエントリが、配置されている。
て、記述される。TLBミス例外が検出されると、CP
U3によって、このTLBミスハンドラが起動される。
これにより、PTEHレジスタ51にはTLBミス発生
時の論理アドレスの情報vpn(10ー31)が格納さ
れる。この時に、PTEHレジスタ51には、TLBミ
ス発生時の空間番号asidも格納されるようにしても
良い。また、CPU3は、レジスタTTB53に格納さ
れているベースアドレスと、TLBミス発生時の論理ア
ドレスとを用いて、外部メモリ上の上記ベーステーブル
を検索する。この検索によって、TLBミス発生時の論
理アドレスに対応するページテーブルエントリが、発見
されると、この発見されたページテーブルエントリの内
容は、PTELレジスタ52にロードされる。次いで、
ロードTLBインストラクションが発行されてPTE
H,PTELの各レジスタ51,52の値によってTL
B1のエントリが更新される。従って、PTEHレジス
タ51に保持されているところの、TLBミス発生時の
論理アドレスの情報vpn,asidは、TLBエント
リの一部VPN,ASIDとして採用されることにな
る。また、この時、リプレースされるエントリは、上記
したように、、MMUCR.RCにセットされているバ
ンク番号によって指示されているバンク内のエントリで
あって、TLBミス発生時のインデックスアドレスと同
じインデックスアドレスによって指示されるエントリで
ある。
ットにおけるページフォルトの場合に発生する。この例
外に対しては、例えば、先ず、外部メモリ上のページテ
ーブルエントリを回復し、そのページテーブルエントリ
内のVビットを論理値1にする。この後、当該ページテ
ーブルエントリを外部メモリからPTELレジスタ52
にロードし、上述のロードTLBインストラクションを
発行して、PTEH,PTELの各レジスタ51,52
の値によってTLB1の該当エントリを更新する。
ついては、それが検出されると、外部メモリ上の対応す
るページテーブルエントリのDビットを論理値1にし、
当該ページテーブルエントリを外部メモリからPTEL
レジスタ52にロードした後、上述のロードTLBイン
ストラクションを発行してPTEH,PTELの各レジ
スタ51,52の値によってTLB1の該当エントリを
更新する。尚、例外要因とされた論理アドレスの情報v
pn,asidはPTEHレジスタ51に保持されてい
る。D=1にされるべき状況は、メインメモリ上の物理
ページ領域に最初に書込みが行われるときに発生され
る。仮想記憶において、ページ入れ換えの際に補助記憶
装置とメインメモリ(例えば図22の外部メモリ)相互
間でのデータの整合を図るため、メインメモリの入れ換
え対象ページの内容を補助記憶装置にコピーバックする
か否かの判定が必要とされる。ダーティービットDは、
この判定のために、利用される。
ると、例外要因とされる論理アドレスの論理ページ番号
vpnがPTEHレジスタ51に、そしてその論理アド
レスがTEAレジスタ54に書き込まれた後に、そのプ
ロテクト違反を解決するためのハンドラが起動される。
タとして使う場合、上記のTLBミス例外の対策の際に
は、新たなバンクへエントリを登録することができるよ
うにするために、上記のようにインクリメントすること
が望ましい。これに対して、上記TLBインバリッド例
外、上記TLBイニシャルページライト例外及び上記T
LBプロテクト違反例外の対策においては、MMUC
R.RCをインクリメントしないことが望ましい。これ
らの対策においては、Dビット、或いはVビットの変更
だけが必要な場合があり、新たなバンクに登録せずに、
元のバンクに登録するようにしたほうが、TLBを有効
に使えるためである。勿論、本発明は、このようにする
ことに制限されるものではない。
タのビットMMUCR.SVを0にセットして、多重仮
想記憶を指示した場合におけるTLB1に関する例外検
出フローの全体が示されている。図17に従えば、論理
アドレスのvpnや現在の空間番号asidに従って所
定の手法でTLB1のインデックスが行われる(S
1)。これによってインデックスされたエントリがSH
=0(非共有)を含む場合、ASIDまたはVPNが不
一致であれば(S3)、TLBミス例外(EX1)が検
出される。インデックスされたエントリがSH=1(共
有)を含む場合には、ASIDは比較されずVPNが不
一致であれば(S4)、TLBミス例外(EX1)が検
出される。TLBヒットの場合(S3,S4のYES)
には、V=1か否かが判定される(S5)。V=0(イ
ンバリッド)であれば、TLBインバリッド例外(EX
2)が検出される。V=1(バリッド)の場合には、図
18に示されるように、ステータスレジスタのビットS
R.MDからユーザモード(User)か特権モード(Priv
ileged)かが判定される(S6)。CPU3がユーザモ
ードで動作しており、このモードで動作しているCPU
3によるアクセスによってリードされたところのエント
リが、特権モードでのアクセスを許容すること(ユーザ
モードでのアクセスの禁止)を示す情報PRを有してい
る場合(PR=00又は01)、TLBプロテクト違反
例外(EX3)が検出される。また、ユーザモードでの
アクセスにより、リードされたエントリ内の情報PR
が、10であると判定された場合、このアクセスが、リ
ードのアクセスタイプかライトのアクセスタイプかが更
に判定される。図9に示されているように、情報PR
が、10の場合、ユーザアクセスは、リードのアクセス
タイプのみが許容される。そのため、上記アクセスが、
ライトのアクセスタイプで有る場合には、アクセスタイ
プが相違される(S7のwrite)ため、TLBプロ
テクト違反例外(EX3)が検出される。
00又は10が判定された場合、リード/ライトのアク
セスタイプがPRの内容に対して反している(S8のw
rite)と、TLBプロテクト違反例外(EX4)が
検出される。すなわち、CPU3が、ユーザモードで動作
しているか、特権モードで動作しているかにより、PR
により許容されるアクセス権は、異なるが、何れの場合
であっても、PRにより許容される以外のアクセスタイ
プでアクセスをした場合には、TLBプロテクト違反例
外(EX3,4)が検出される。アクセスタイプが、P
Rによって許容されたライト(S9,S10のwrit
e)である場合、エントリ内の情報Dが、0(未書込み
のページ)ならば、TLBイニシャルライト例外(EX
5)が検出される。また、エントリ内の情報Dが、1の
場合、エントリ内の情報Cが、1ならば、キャッシュメ
モリ4がアクセスされ、C=0ならばメインメモリ(例
えば、図22の外部メモリRAM,ROM)がアクセス
されることになる。アクセスタイプが、PRによって許
容されたリード(S7〜S10のread)である場合
には、C=1ならばキャッシュメモリ4がアクセスさ
れ、C=0のときはメインメモリがアクセスされること
になる。
央処理装置CPUとの接続関係が主に示されている。上記
各レジスタには、それぞれ固有のアドレスが割り当てら
れている。中央処理装置CPU3により形成された論理
アドレスは、内部論理アドレスバスVABUSを介し
て、制御回路(TLBC)50内の選択回路に供給され
る。この選択回路は、上記論理アドレスをデコードし、
論理アドレスが、レジスタに割り当てられた固有のアド
レスであった場合、レジスタを選択するための選択信号
を形成する。例えば、論理アドレスが、PTELレジス
タ52に割り当てられたアドレスであった場合、選択回
路は、選択信号C4を形成して、該レジスタを選択す
る。同様にして、他のレジスタ(PTEH,MMUC
R,TEA,TTB)の選択も行われる。言い替えるな
らば、これらのレジスタは、アドレスマップされてい
る。選択されたレジスタに対する、中央処理装置からの
リード/ライトは、図示されていない内部制御バスを介
して、中央処理装置から各レジスタへ供給されるリード
/ライト制御信号によって、指示される。勿論、この図
面に示されているように、各レジスタと中央処理装置C
PU3とは、内部データバスDBUSを介して互いに接
続されている。各レジスタは、図7に示した制御回路5
0及びTLB1とも接続されているが、図面が複雑にな
るのを避けるため、図22には示されていない。中央処
理装置は、ソフトウエアを実行することにより、レジス
タにデータを書き込むことができる。すなわち、ソフト
ウエアの実行により、中央処理装置は、レジスタに割り
当てられた論理アドレスをバスVABUSへ出力し、デ
ータをバスDBUSへ出力し、リード/ライト制御信号
でライトを指示することにより、レジスタへデータを書
き込むことができる。同様に、ソウトウエアの実行によ
って、中央処理装置3は、レジスタからデータを読み出
すことも可能である。このようにソウフトウエアの実行
により、PTEHレジスタ51に対しては、論理空間番
号、TLBミスの際の論理アドレスを書き込むことが可
能であり、PTELレジスタ52に対しては、リプレー
スの際のテーブルエントリを書き込むことが可能であ
り、TTBレジスタ53に対しては、ベースアドレス
を、TEAレジスタ54に対しては、プロテクト違反例
外の際に論理アドレスを書き込むことが可能である。ま
た、MMUCRレジスタ55に対しては、図6に示され
ている種々の制御データを書き込むことが可能であり、
特定のビットをカウンタの様に使うこともできる。
回路(CTRL)50、TLB1にも接続されている。
制御回路(CTRL)50には、上記したように論理ア
ドレスのオフセットを保持するためのラッチ回路が設け
られており、内部論理アドレスバスVABUSからの論
理アドレスのオフセットが保持される。また、この内部
論理アドレスバスVABUSを介して、CPU3から論
理アドレスが、TLB1に供給され、インデックスアド
レス、検索用のアドレスとして使われる。勿論、制御回
路(CTRL)50に設けられる上記ラッチ回路は、オ
フセットアドレスだけでなく、論理アドレスの全てを保
持する様にしても良い。
と上記TLB1との接続だけが、明示的に示されてい
る。TLB1のミス/ヒットの判定のための空間番号
は、このレジスタにセットされ、このレジスタから上記
TLB1へ供給される。また、TLB1のミス例外につ
いての対策においても、このレジスタから、上記したよ
うに論理アドレス等が上記TLB1へ供給される。
レスバスPABUSは、このデータ処理装置に設けられ
た外部端子TD及びTAを介して、外部データバスDB
US及び外部アドレスバスABUSに接続される。これ
らの外部バスには、例えば、同図に示されている様に、
外部メモリRAM,ROMが接続される。特に制限され
ないが、外部メモリRAMは、揮発性メモリであり、上
記したような種々のテーブル等が形成される。また、外
部メモリROMは、不揮発性のメモリであり、種々のプ
ログラム(例えば、上記したハンドラ等のソフトウエ
ア)を格納している。
ピュータにおける仮想記憶の作用効果をその特徴点毎に
説明する。
び図6に示されるように、ページテーブルエントリ及び
TLBエントリは、上記サイズビットSZを有し、論理
ページのサイズが、ページ毎に設定可能とされる。4ウ
ェイ・セットアソシアティブ形式のアドレス変換バッフ
ァ1は、そのサイズが可変に設定可能にされる複数の論
理ページに対して共通利用される。本実施例では、マイ
クロコンピュータがサポートする論理ページサイズは1
KBと4KBの2種類とされる。そしてTLB1に対す
るインデックス用アドレスの指定方法は、4KBと1K
Bの双方において共通化されおり、本実施例において
は、図2及び図3に示されるように中央処理装置3で形
成される全部で32ビットの論理アドレスの内、ビット
12〜ビット16即ちvpn(16−12)がTLB1
のインデックスに利用される。インデックスアドレスは
5ビットであるから1バンク(ウエイ)当たり最大32
個のエントリを保有できる。TLB1は4個のバンク1
1〜14を持つから、一つのインデックスアドレスにつ
き、最大4個のエントリを保有できる。上記インデック
スアドレスは、ページサイズが4KBの場合には当該論
理ページ番号vpnの最下位から5ビットvpn(16
−12)とされるので、ページサイズ4KBのときは、
任意の論理ページ番号のエントリを各バンクに最大32
エントリ(全体で128エントリ)保有することができ
る。一方、ページサイズが1KBの場合、当該論理ペー
ジ番号vpnの最下位から2ビットvpn(11−1
0)はインデックスに利用されない。このため、論理ペ
ージサイズが1KBで、バンクの数が一つの場合におけ
るインデックスを考えると、インデックスされたエント
リは、5ビットのインデックスアドレスによって選ばれ
た4個の論理ページ番号(それぞれが1KBのページサ
イズを持つ)の内のいずれかを指す。インデックスに利
用されない2ビット(ビット10,11)は、この選ば
れた4個の論理ページ番号の内の何れか一つを指すため
に使われるものである。したがって、バンクの数が1個
しか存在しない場合には、連続する4個の論理ページに
対して、1個しかエントリが割り当てられない。本実施
例においては、論理ページの最大サイズが最小サイズに
対して2のN乗倍とされ、バンクの数も2のN乗個設け
られている。すなわち、論理ページサイズの最小サイズ
は1KBとされ、最大サイズは、その2の2乗倍である
4KBとされ、バンク数は2の2乗個である数(4個)
設けられている。このようにすることにより、4KBペ
ージサイズの場合とほぼ同様に、アドレス変換バッファ
1には、全体としては1KBページサイズの、任意論理
ページ番号のエントリを、128個保有することができ
る。但し、一つのバンクに保有できるエントリの論理ペ
ージ番号は4KB毎という制約を受ける。この制限は、
アドレス変換バッファ1の保有するエントリの論理ペー
ジ番号が連続的であれば、TLB1のヒット率には何等
影響を与えない。分散的である場合にはある程度ヒット
率に影響を受ける。この場合でも、1KBの論理ページ
を2KB毎にアドレスマッピングすればその影響を小さ
くでき、4KB毎にアドレスマッピングすれば全く影響
を受けないようにすることができる。例えば、1KBペ
ージサイズの変換情報をアドレス変換バッファ1へ設定
する(書き込む)際、4個のバンク11,12,13,
14のそれぞれから、5ビットのインデックスアドレス
によって指示される4個のエントリに、2ビットvpn
(11−10)が”00”のときの変換情報、2ビット
vpn(11−10)が”01”のときの変換情報、2
ビットvpn(11−10)が”10”のときの変換情
報、2ビットvpn(11−10)が”11”のときの
変換情報を、各々設定する。このようにすれば、ヒット
率の低下を防ぐことが可能となる。
数は、図12に基づいて説明したように論理ページサイ
ズに応じて変化されなければならない。論理ページサイ
ズが1KBの場合には、4KBの場合に比べてvpn
(11−10)をVPN(11−10)と比較しなけれ
ばならない。TLB1はそのような比較対象のビット数
を全てカバーできるようにVPN(31−17)とVP
N(11−10)の記憶領域を備え、且つ、物理ページ
番号PPNに対しても22ビットの記憶領域を備えてい
る。TLB1は、各エントリのデータ部にそれがサポー
トする論理ページサイズを示すサイズビットSZを有し
ており、その値に応じてヒット判定のためのアドレス比
較のビット数が変化される。図12で説明したように、
サイズビットSZ=1(論理ページサイズ=4KB)の
場合には、VPN(31−17)が論理アドレスの対応
ビットとの比較対象とされ、サイズビットSZ=0(論
理ページサイズ=1KB)の場合には、VPN(31−
17)とVPN(11−10)とが論理アドレスの対応
ビットとの比較対象とされる。
ポートするマクロコンピュータは、システムに実装され
る実メモリの全記憶容量が少ないような場合に、論理ペ
ージのサイズを比較的小さくして各プロセスによるメモ
リ利用効率を向上させたいという要求にも容易に対応で
きる。このとき、最大論理ページサイズが最小サイズの
2のべき乗数倍にされ、そのセットアソシアティブ方式
のTLB1のバンクの数をその2のべき乗数以上にする
ことにより、インデックスアドレスの指定手法を最大論
理ページサイズのものに統一化しても、選ばれている論
理ページサイズが最大であっても最小であっても、原理
的にはどの論理ページ番号のエントリについてもアドレ
ス変換バッファ1に保有可能にすることができる。論理
ページ番号に対応させて、論理ページのサイズを示すた
めの情報を設け、このサイズを用いてヒット判定のため
のアドレス比較のビット数を変化させることにより、ア
ドレス変換バッファ1を連想的に検索するための比較対
象情報のビット数やビット位置を、論理ページのサイズ
によって変化させることを容易に実現できる。複数ペー
ジサイズをサポートするアドレス変換バッファ1をセッ
トアソシアティブ形式のキャッシュメモリで実現するこ
とは、これをCAMで構成する場合に比べてチップ専有
面積と消費電力を共に半減させることができる。
複数のプロセスが存在し、夫々のプロセスが夫々のアド
レス変換情報を有し、プロセス番号asidによって、
それぞれのプロセスが区別されるところの多重仮想記憶
をサポートする場合、TLB1のインデックスアドレス
を指定する手法として、図2に示されるように論理アド
レスの一部(インデックスアドレス)のみをデコードす
る手法と、図3に示されるように排他的論理和ゲートX
ORによってその論理アドレスの一部(インデックスア
ドレス)を現在のプロセス番号asidの一部によって
修飾した結果をデコードする手法とを、レジスタMMU
CRのビットMMUCR.IXの論理値にしたがって指
示することができる。これによれば、多重仮想記憶にお
いて多くのプロセスが並列的に起動される利用形態にお
いてヒット率の低下を抑えることができるように、その
利用形態に応じてインデックス方法を選択可能にするこ
とができる。また、論理アドレスの一部を当該論理アド
レスを利用するプロセスの番号asidによって修飾
し、これを以てバッファメモリをインデックスすること
により、多重仮想記憶において多くのプロセスが並列的
に起動される利用形態においてヒット率の低下を抑える
ことができる。
B1は、夫々のインデックスアドレスが共通化された複
数バンク11〜14を持つ4ウェイ・セットアソシアテ
ィブ方式のキャッシュメモリとして構成されている。キ
ャッシュミスなどにおいて、その複数バンク(ウエイ)
の中から記憶情報を置換すべき場合に、当該置換される
べきバンクは、中央処理装置3によるソフトウェアの実
行によって任意に指定可能にされる。図6に示されるレ
ジスタMMUCRの内、ビットMMUCR.RCは、上
記バンクを任意に指定するための2ビットの情報が設定
される領域である。これに設定された値が、図4のデコ
ーダ17によって解読されることにより、4個のバンク
11〜14の中から一つを選ぶ信号(BSL1〜BSL
4)が形成される。これにより、インデックスアドレス
2で指定された4個のバンク11〜14内のエントリの
内の一つが、上記選択信号(BSL1〜BSL4)によ
って選択され、置換対象とされる。ビットMMUCR.
RCはランダムカウンタのような計数手段として使うこ
ともできる。MMUCR.RCのビット数の2のべき乗
数は上記バッファメモリ1のバンクの数(=4)に一致
される。制御回路(CTRL)50は、図15に基づい
て説明したように、TLB1に対する記憶情報の置換が
必要になった(TLBミス)場合、そのMMUCR.R
Cを1インクリメントし、何れのバンクもインデックス
された記憶領域に有効なデータを保持している(インデ
ックスされた各エントリ内の変換情報Vが1を保有す
る)と、そのインクリメントされた結果を置換すべきバ
ンク番号とし、インデックスされた記憶領域に有効なデ
ータを保持していない(インデックスされた何れかのエ
ントリはV=0を保有する)バンクがある場合には、そ
のバンク番号をMMUCR.RCにセットし且つセット
された番号のバンクを置換すべきバンクとする、という
一定の規則に従って置換すべきバンクを指定する。この
とき、MMUCR.RCの各ビットは中央処理装置3に
よるソフトウェアの実行によって任意に値が変更可能な
対象とされる。すなわち、MMUCR.RCはTLBミ
スの発生によって+1される動作に限定されない。特定
の値を除外するようにMMUCR.RCを更新してもよ
い。さらに、CPU3が実行するソフトウェアのアルゴ
リズム次第で、種々の置換が可能である。例えば、ラン
ダム、最初にロードされたものからリプレースするFI
FO、又は最後に参照されたものからリプレースするL
RU(Least Recentry Used)などのリプレースを、M
MUCR.RCの更新方法を変えることに容易に実現で
きる。そのため、リプレースの自由度も保証できる。
るためのリプレースメントアルゴリズムを固定化せず、
置き換えるべきバンクをソフトウェアで任意に決定可能
にすることにより、データ処理の都合上、常に特定の変
換対をアドレス変換バッファ1にエントリとして格納し
ておきたいという要求や、特定のエントリをリプレース
対象にしたくないという要求に容易に答えることができ
るようになる。
ト》 本実施例のマイクロコンピュータにおいては、実
行されるべき複数のプロセスの夫々が論理空間の全域に
わたるアドレス変換情報を有する場合、プロセス番号a
sidによって、その論理アドレスを修飾或いは拡張す
る多重仮想記憶を、また、実行されるべき複数のプロセ
スに論理アドレス空間の一部が排他的に割り当てられ、
夫々のプロセスがそれに割り当てられた論理アドレス空
間のアドレス変換情報を有する場合、プロセス番号as
idによって論理アドレスを修飾或いは拡張しない単一
仮想記憶を、選択することが可能とされる。そのような
仮想記憶についての制御は、図6に例示されるMMUC
R.SVの値によって指示される。MMUCR.SVの
値は中央処理装置3がソフトウェアを実行することによ
って任意に設定される。単一仮想記憶と多重仮想記憶と
の概念的な相違は図20で説明した通りであり、その他
の代表的な相違点については図19に例示されている。
図5に示されるようにTLB1は論理ページ番号VPN
と物理ページPPN番号と共にプロセス番号ASIDの
フィールドを有する。このフィールドの値は、単一仮想
記憶か多重仮想記憶かでその処理内容が相違されること
になる。あるTLBエントリに含まれるプロセス番号に
対応される論理ページが、他のプロセスと共有不可能で
あると設定されているとき、多重仮想記憶においては、
そのプロセス番号ASIDは図17で説明したようにT
LB1のTLBヒット/ミスの判定に用いられる。した
がって、TLB1に格納されているエントリの論理ペー
ジ番号VPNが論理ページアドレスvpnに一致すると
共に当該エントリのプロセス番号ASIDが現在のプロ
セスの番号asidに一致していなければTLBヒット
とはされない。単一仮想記憶においては、プロセス番号
ASIDはメモリ保護情報(ドメイン番号)として使用
される。ユーザモードにおいて、非共有ページに対す
る、他プロセスによる当該ページへのアクセスは、TL
Bプロテクト違反例外としてソフトウェアにより処理さ
れる。
設定することにより単一仮想記憶と多重仮想記憶の双方
を選択的にサポート可能にすることにより、アドレス変
換機構の使い勝手を向上させることができる。多重仮想
記憶におけるプロセス番号ASIDを単一仮想記憶にお
けるメモリ保護情報として使用することにより、その場
合におけるメモリ保護の完全化を容易に実現することが
できる。
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
イ数、即ちバンクの数を5以上例えば8にすることも可
能である。例えばページサイズを1KBと8KBにする
場合にはLTBのウェイ数(バンク数)は8以上とすれ
ばよい。また、ページサイズを4KBと16KBにする
場合にはLTBのウェイ数(バンク数)は4以上であれ
ばよい。それらによっても上記実施例と同様の効果を得
ることができる。要はサポートするページの最大サイズ
が最小サイズの2のべき乗数倍にされ、そのセットアソ
シアティブ方式のバッファメモリのセットの数がその2
のべき乗数以上であればよい。マイクロコンピュータが
サポートするアドレス空間のサイズは4GBに限定され
ず、それに応じて論理アドレスのビット数も制限されな
い。サポートするページサイズも適宜のサイズに、且つ
サポートする種類の数も適宜変更可能である。また、T
LBエントリとして保有する論理ページ番号VPNは上
記実施例のようにインデックスに利用される対応ビット
を除いたものとする構成に限定されず、論理ページ番号
の全ビットをTLBエントリとして保有することもでき
る。
なされた発明をその背景となった利用分野であるマイク
ロコンピュータに利用した場合について説明したが、本
発明はそれに限定されず、例えばMMU(メモリマネー
ジメントユニット)用のコントローラチップなどにも広
く適用することができる。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
増大させることなく、複数のページサイズをサポートで
きるデータ処理装置を実現することができる。インデッ
クス方法を選択できるアドレス変換機構を実現すること
ができる。アドレス変換対のリプレース対象に自由度を
持たせることができる。また、サポートできる仮想記憶
形式についても自由度を持たせることができる。これら
により、ユーザの要求仕様に応えることができて使い勝
手の良好なアドレス変換機構を備えたデータ処理装置を
実現することができる。
における複数ページサイズをサポートする構成の説明図
である。
TLBをインデックスする手法の説明図である。
部を用いてTLBをインデックスする手法の説明図であ
る。
トウェアで任意に決定可能とする構成の説明図である。
サポートするためのTLBエントリのフォーマットの一
例を説明するための説明図である。
ための説明図である。
の要部を示す全体ブロック図である。
るアドレスマップの一例を(A)及び(B)にて示す説
明図である。
Rによって規定されるアクセス権の説明図である。
ある。
フローチャートである。
れたタグとのアドレス比較の制御フローチャートであ
る。
に利用する制御を含んだプロテクション制御の部分的な
フローチャートである。
を示すフローチャートである。
定するための制御フローチャートである。
されるところの TLBエントリを更新するためのTL
Bミスハンドラによる処理の一例を示すフローチャート
である。
出処理の前半を示すフローチャートである。
出処理の後半を示すフローチャートである。
違を示す説明図である。
(A)及び(B)にて示す説明図である。
すべきアドレス比較結果を制御する制御ロジックの一例
を示す論理回路図である。
ある。
Claims (26)
- 【請求項1】 論理アドレス空間を、複数の論理ページ
に分割し、ページ単位に論理アドレスを物理アドレスへ
変換する仮想記憶機能をサポートするデータ処理装置で
あって 論理ページのサイズがページ毎に設定可能とされ、且
つ、サイズが設定可能にされる複数の論理ページに対し
て共通に利用されるバッファメモリを有し、上記バッフ
ァメモリは、論理ページ番号と物理ページ番号との対応
情報を記憶するための記憶領域を夫々有し、共通のイン
デックスアドレスによってアクセスされる複数バンクを
有するものであることを特徴とするデータ処理装置 - 【請求項2】 上記設定可能にされる論理ページの最大
サイズは、最小サイズの2のべき乗数倍にされ、上記バ
ッファメモリのバンクの数は上記2のべき乗数以上にさ
れて成るものであることを特徴とする請求項1記載のデ
ータ処理装置。 - 【請求項3】 上記バッファメモリは、論理ページのサ
イズに拘わらずに、設定可能な複数のページのサイズの
うち最大サイズの論理ページアドレスにおける下位側複
数ビットがインデックスアドレスとされるものであるこ
とを特徴とする請求項2記載のデータ処理装置。 - 【請求項4】 上記バッファメモリは、論理ページ番号
に対応する論理ページのサイズを示すための記憶領域を
備え、そのサイズに応じてヒット判定に反映されるべき
アドレス比較のビット数を変化させる制御回路を備えて
成るものであることを特徴とする請求項3記載のデータ
処理装置。 - 【請求項5】 前記論理ページ番号と物理ページ番号と
の対応情報を記憶する記憶領域は、最大論理ページサイ
ズにおける論理ページ番号と最小論理ページサイズにお
ける論理ページ番号との差ビットを保有する領域を有
し、前記制御回路は論理ページのサイズ情報に応じて前
記差ビットに対するアドレス比較をヒット判定に反映さ
せるか否かを制御するものであることを特徴路する請求
項4記載のデータ処理装置。 - 【請求項6】 仮想記憶をサポートするデータ処理装置
であって、 論理ページ番号と物理ページ番号との対応情報を記憶す
るための記憶領域を夫々有し、共通のインデックスアド
レスによって、アクセスされる複数バンクを持つセット
アソシアティブ方式のキャッシュメモリによって構成さ
れたバッファメモリと、 上記バッファメモリに対するインデックスアドレスの生
成手法を可変とする手段と、を備えて成るものであるこ
とを特徴とするデータ処理装置。 - 【請求項7】 上記可変とする手段は、論理アドレスの
一部を当該論理アドレスを利用するプロセスの番号の情
報によって修飾する手段と、この手段によって得られた
結果又は当該論理アドレスの一部のみの何れをインデッ
クス用アドレスに採用するかを指示する手段と、を備え
て成るものであることを特徴とする請求項6記載のデー
タ処理装置。 - 【請求項8】 仮想記憶をサポートするデータ処理装置
であって、 論理ページ番号と物理ページ番号との対応情報を記憶す
るための記憶領域を夫々有し、共通のインデックスアド
レスによって、アクセスされる複数バンクを持つセット
アソシアティブ方式のキャッシュメモリによって構成さ
れたバッファメモリと、 上記バッファメモリの複数バンクの中から記憶情報を置
換すべきバンクをソフトウェアの実行によって任意に指
定することが可能にする中央処理装置と、を備えて成る
ものであることを特徴とするデータ処理装置。 - 【請求項9】 記憶情報を置換すべきバンクを任意に指
定するための情報が上記中央処理装置によるソフトウェ
アの実行によって設定されるレジスタを更に備えて成る
ものであることを特徴とする請求項8記載のデータ処理
装置。 - 【請求項10】 仮想記憶をサポートするデータ処理装
置は、 論理ページ番号と物理ページ番号との対応情報を記憶す
るための記憶領域を夫々有し、共通のインデックスアド
レスによって、アクセスされる複数バンクを持つセット
アソシアティブ方式のキャッシュメモリによって構成さ
れたバッファメモリと、 上記複数バンクの中から記憶情報を置換すべきバンクの
指定を、一定の規則に従って行うハードウェア手段と、 当該ハードウェア手段によるバンクの指定をソフトウェ
アの実行によって任意に変更することが可能な中央処理
装置と、を備えて成るものであることを特徴とするデー
タ処理装置。 - 【請求項11】 上記ハードウェア手段は、計数手段を
有し、その計数手段のビット数の2のべき乗数が上記バ
ッファメモリのバンクの数に一致され、 上記置換すべきバンクを指定する一定の規則は、バッフ
ァメモリに対する記憶情報の置換が必要になった場合
に、その計数手段を1インクリメントし、何れのバンク
もインデックスされた記憶領域に有効なデータを保持し
ている場合にはそのインクリメントされた結果を置換す
べきバンク番号とし、何れかのバンクがインデックスさ
れた記憶領域に有効なデータを保持していない場合に
は、そのバンクの番号を計数手段にセットし、セットさ
れた番号のバンクを置換すべきバンクとするものであ
り、 上記ソフトウェアの実行によって任意に値が変更される
対象は、上記計数手段の各ビットとされるものであるこ
とを特徴とする請求項10記載のデータ処理装置。 - 【請求項12】 仮想記憶をサポートするデータ処理装
置であって、論理アドレス空間を論理ページに分割し
て、論理ページ単位で、論理アドレスを物理アドレスへ
変換するアドレス変換機構を備えたデータ処理装置であ
って、 実行されるべき複数のプロセスの夫々が、論理空間の全
域にわたる各々のアドレス変換情報を有するとき、プロ
セス番号によって論理アドレスを修飾或いは拡張する多
重仮想記憶と、実行されるべき複数のプロセスに論理ア
ドレス空間の一部が排他的に割り当てられ、夫々のプロ
セスがそれに割り当てられた論理アドレス空間のアドレ
ス変換情報を有するとき、プロセス番号によって論理ア
ドレスを修飾或いは拡張しない単一仮想記憶とを有し、
上記多重仮想記憶と上記単一仮想記憶とを選択するため
の選択回路を有して成るものであることを特徴とするデ
ータ処理装置。を含む。 - 【請求項13】 上記多重仮想記憶におけるプロセス番
号は、単一仮想記憶におけるメモリ保護情報として使用
されるものであることを特徴とする請求項12記載のデ
ータ処理装置。 - 【請求項14】 多重仮想記憶と単一仮想記憶との何れ
を選択するかの情報を保持するレジスタを更に含み、 上記レジスタの情報は、中央処理装置がソフトウェアを
実行することによって任意に設定されるものであること
を特徴とする請求項13記載のデータ処理装置。 - 【請求項15】 中央処理装置の論理アドレス空間を論
理ページ単位に分割して、ページ単位で、論理アドレス
を物理アドレスへ変換する、仮想記憶をサポートするデ
ータ処理装置であって、 上記中央処理装置の動作モードとして特権モード又はユ
ーザモードを指示するモードビットと、 複数のプロセスの夫々が論理空間の全域にわたる各々の
アドレス変換情報を有するときにはプロセス番号によっ
て論理アドレスを修飾或いは拡張する多重仮想記憶を、
また、複数のプロセスに論理アドレス空間の一部が排他
的に割り当てられ夫々のプロセスがそれに割り当てられ
た論理アドレス空間のアドレス変換情報を有するときに
はプロセス番号によって論理アドレスを修飾或いは拡張
しない単一仮想記憶を指示する制御ビットと、 プロセス番号、該プロセス番号に対応される論理ページ
番号と物理ページ番号との対応情報、及び該プロセス番
号に対応される論理ページ番号が他のプロセスと共有可
能である否かを示す共有ビットを記憶するための記憶領
域を夫々有し、共通のインデックスアドレスによって、
アクセスされる複数バンクを持つセットアソシアティブ
方式のキャッシュメモリによって構成されたアドレス変
換バッファと、 前記共有ビットが非共有を指示するときは、プロセス番
号を考慮してアドレス変換バッファにおけるヒット判定
を行い、前記制御ビットで指示される単一仮想記憶にお
いて中央処理装置がユーザモードとされ且つ共有ビット
が非共有を指示しているときは、プロセス番号をメモリ
保護情報として考慮する、前記アドレス変換バッファの
制御回路と、を有するものであることを特徴とするデー
タ処理装置。 - 【請求項16】 論理アドレス空間を、複数の論理ペー
ジ単位に分割して、ページ単位で、論理アドレスを物理
アドレスへ変換する仮想記憶機能をサポートするデータ
処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
ドレスとを有するところの論理アドレスを形成する処理
装置、及び上記処理装置によって形成された上記論理ア
ドレスを物理アドレスへ変換するアドレス変換バッファ
を含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページのサイズを
表すサイズ情報と、その論理ページ番号に対応した物理
ページ番号とを含む複数のエントリを、各々、含む複数
のバンク、 上記インデックスアドレスを受け、上記複数のバンクの
各々から、上記インデックスアドレスによって指示され
たエントリを選択する選択回路、及び選択されたエント
リからの論理ページ番号と上記比較アドレスとを比較す
る回路であって、比較すべき論理ページ番号のビット数
が、選択されたエントリ内のサイズ情報によって決定さ
れる比較回路、を含み、エントリ内の物理ページ番号と
上記オフセットアドレスとから、上記物理アドレスを形
成するものであることを特徴とするデータ処理装置。 - 【請求項17】 上記処理装置、及び上記アドレス変換
バッファは、1つの半導体チップに形成されて成るもの
であることを特徴とする請求項16記載のデータ処理装
置。 - 【請求項18】 上記サイズ情報によって表される論理
ページの複数のサイズの内、第1のサイズは、上記サイ
ズ情報によって表される論理ページの第2のサイズに対
して、2のN乗倍であり、上記バンクの数は、上記2の
N乗個以上であることを特徴とする請求項17記載のデ
ータ処理装置。 - 【請求項19】 上記処理装置によって、その内容を設
定することが可能な第1制御ビットを更に有し、 上記データ処理装置は、更に、上記論理アドレスに含ま
れる論理ページ番号によって指定される領域を使用する
プロセスを特定するためのプロセス番号を出力するレジ
スタを有し、 上記選択回路は、上記第1制御ビットが第1の状態へ設
定されているとき、上記インデックスアドレスを上記プ
ロセス番号の一部で修飾し、修飾されたインデックスア
ドレスを用いてエントリを選択し、上記第1制御ビット
が第2の状態へ設定されているとき、上記インデックス
アドレスを用いてエントリを選択するものであることを
特徴とする請求項17記載のデータ処置装置。 - 【請求項20】 上記選択回路は、上記インデックスア
ドレスと上記プロセス番号の一部とを受ける排他的論理
回路と、上記第1制御ビットの内容に従って、上記排他
的論理回路の出力又は上記インデックスアドレスをデコ
ードするデコーダとを有して成るものであることを特徴
とする請求項19記載のデータ処理装置。 - 【請求項21】 上記エントリは、上記プロセス番号と
比較されるべきプロセス番号を、更に有するものである
ことを特徴とする請求項19記載のデータ処理装置。 - 【請求項22】 上記処理装置によって、その内容が設
定可能な第2制御ビットを更に有し、 上記インデックスアドレスによって選択されたところの
各々のエントリに、上記論理アドレスに対応する有効な
論理アドレスが保持されていないとき、上記第2制御ビ
ットによって、上記複数のバンクの内のバンクを指定す
る選択回路を含み、 上記選択回路によって指定されたバンクにおいて、上記
インデックスアドレスによって指定されるエントリに、
上記論理アドレスに対応する物理アドレスを書き込み、
アドレス変換バッファのリプレースを行うものであるこ
とを特徴とする請求項17記載のデータ処理装置。 - 【請求項23】 上記データ処理装置は、更に、上記論
理アドレスに含まれる論理ページ番号によって指定され
る領域を使用するプロセスを特定するためのプロセス番
号を保持することが可能なレジスタを有し、 上記エントリは、更に、それに含まれる論理ページ番号
によって指定される領域を使用するプロセスを特定する
ためのプロセス番号を保持することが可能なフィールド
と、上記領域が複数のプロセス間で共用されるか否かを
示す共用情報とを有し、 上記比較回路における比較に、上記レジスタの内容と上
記フィールドの内容との比較を取り込むか否かが、上記
共用情報によって決定されるものであることを特徴とす
る請求項17記載のデータ処理装置。 - 【請求項24】 論理アドレス空間を、複数の論理ペー
ジ単位に分割して、ページ単位で、論理アドレスを物理
アドレスへ変換する仮想記憶機能をサポートするデータ
処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
ドレスとを有するところの論理アドレスを形成する処理
装置、 プロセスを特定するためのプロセス番号を出力する回
路、 上記処理装置によって、その内容が設定され、設定され
た内容に従ってインデックスを特定するための情報を出
力する回路、及び上記処理装置によって形成された上記
論理アドレスを物理アドレスへ変換するアドレス変換バ
ッファを含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページ番号に対応
した物理ページ番号とを含む複数のエントリを、各々、
含む複数のバンク、 上記インデックスアドレス、上記プロセス番号、及び上
記インデックス特定情報を受け、上記インデックス特定
情報の内容に従って、上記インデックスアドレス、又は
上記インデックスアドレスを上記プロセス番号の一部で
修飾することにより得られたインデックスアドレスによ
って、上記複数のバンクの各々から、エントリを選択す
る選択回路、及び選択されたエントリからの論理ページ
番号と上記比較アドレスとを比較する比較回路、を含
み、エントリ内の物理ページ番号と上記オフセットアド
レスとから、上記物理アドレスを形成するものであるこ
とを特徴とするデータ処理装置。 - 【請求項25】 論理アドレス空間を、複数の論理ペー
ジ単位に分割して、ページ単位で、論理アドレスを物理
アドレスへ変換する仮想記憶機能をサポートするデータ
処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
ドレスとを有するところの論理アドレスを形成する処理
装置、 上記処理装置によって、その内容が設定されるバンク指
示回路、及び上記処理装置によって形成された上記論理
アドレスを物理アドレスへ変換するアドレス変換バッフ
ァを含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページ番号に対応
した物理ページ番号とを含む複数のエントリを、各々、
含む複数のバンク、 上記インデックスアドレスを受け、上記複数のバンクの
各々から、上記インデックスアドレスによって指示され
たエントリを選択する選択回路、 選択されたエントリからの論理ページ番号と上記比較ア
ドレスとを比較する比較回路、及び上記比較回路によっ
て、選択されたエントリに、上記論理アドレスに対応す
る有効な論理アドレスが保持されていないことが判明し
たとき、上記バンク指示回路により指示されているバン
クを、エントリのリプレースのために指示する選択回路
を含み、エントリ内の物理ページ番号と上記オフセット
アドレスとから、上記物理アドレスを形成するものであ
ることを特徴とするデータ処理装置。 - 【請求項26】 論理アドレス空間を、複数の論理ペー
ジ単位に分割して、ページ単位で、論理アドレスを物理
アドレスへ変換する仮想記憶機能をサポートするデータ
処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
ドレスとを有するところの論理アドレスを形成する処理
装置、 プロセスを特定するためのプロセス番号が設定可能なレ
ジスタ、及び上記処理装置によって形成された上記論理
アドレスを物理アドレスへ変換するアドレス変換バッフ
ァを含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページ番号に対応
した物理ページ番号と、上記論理ページ番号によって指
定される領域を使用するプロセスを特定するためのプロ
セス番号を保持することが可能なフィールドと、上記領
域が複数のプロセス間で共用されるか否かを示す共用情
報とを含む複数のエントリを、各々、含む複数のバン
ク、 上記インデックスアドレスを受け、上記複数のバンクの
各々から、インデックスアドレスによって指示されたエ
ントリを選択する選択回路、及び選択されたエントリか
らの論理ページ番号と上記比較アドレスとを比較する回
路であって、上記レジスタの内容と上記フィールドの内
容との比較も行うか否かが、上記共用情報によって決定
される比較回路、を含み、エントリ内の物理ページ番号
と上記オフセットアドレスとから、上記物理アドレスを
形成するものであることを特徴とするデータ処理装置。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24087195A JP3740195B2 (ja) | 1994-09-09 | 1995-08-25 | データ処理装置 |
DE69520718T DE69520718T2 (de) | 1994-09-09 | 1995-09-01 | Datenprozessor mit Adressübersetzungsmechanismus |
EP95113771A EP0701211B1 (en) | 1994-09-09 | 1995-09-01 | Data processor with address translation mechanism |
EP99120560A EP0977123A3 (en) | 1994-09-09 | 1995-09-01 | Data processor with address translation mechanism |
KR1019950029114A KR100368196B1 (ko) | 1994-09-09 | 1995-09-06 | 데이타처리장치 |
US08/524,561 US5796978A (en) | 1994-09-09 | 1995-09-07 | Data processor having an address translation buffer operable with variable page sizes |
US08/657,231 US5907867A (en) | 1994-09-09 | 1996-06-03 | Translation lookaside buffer supporting multiple page sizes |
US09/007,249 US6047354A (en) | 1994-09-09 | 1998-01-14 | Data processor for implementing virtual pages using a cache and register |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6-241993 | 1994-09-09 | ||
JP24199394 | 1994-09-09 | ||
JP7-86068 | 1995-03-17 | ||
JP8606895 | 1995-03-17 | ||
JP24087195A JP3740195B2 (ja) | 1994-09-09 | 1995-08-25 | データ処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005000091A Division JP2005108262A (ja) | 1994-09-09 | 2005-01-04 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08320830A true JPH08320830A (ja) | 1996-12-03 |
JP3740195B2 JP3740195B2 (ja) | 2006-02-01 |
Family
ID=27305071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24087195A Expired - Fee Related JP3740195B2 (ja) | 1994-09-09 | 1995-08-25 | データ処理装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US5796978A (ja) |
EP (2) | EP0701211B1 (ja) |
JP (1) | JP3740195B2 (ja) |
KR (1) | KR100368196B1 (ja) |
DE (1) | DE69520718T2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3457644B2 (ja) * | 1997-11-06 | 2003-10-20 | 株式会社日立製作所 | データ処理装置およびデータ処理システム |
JP2006040140A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | 情報処理装置及びマルチヒット制御方法 |
JP2008508598A (ja) * | 2004-07-30 | 2008-03-21 | インテル コーポレイション | アーキテクチャイベントの間のプロセッサリソースの保持 |
JP2010233160A (ja) * | 2009-03-30 | 2010-10-14 | Metawater Co Ltd | データ記録装置 |
JP2012212440A (ja) * | 2005-10-20 | 2012-11-01 | Qualcomm Inc | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ |
JP2016522503A (ja) * | 2013-05-29 | 2016-07-28 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 物理アドレスを判定するための方法及び装置 |
JP2016532965A (ja) * | 2013-08-20 | 2016-10-20 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ハードウェア管理による圧縮キャッシュ |
Families Citing this family (114)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918251A (en) * | 1996-12-23 | 1999-06-29 | Intel Corporation | Method and apparatus for preloading different default address translation attributes |
US5950228A (en) * | 1997-02-03 | 1999-09-07 | Digital Equipment Corporation | Variable-grained memory sharing for clusters of symmetric multi-processors using private and shared state tables |
KR100263672B1 (ko) * | 1997-05-08 | 2000-09-01 | 김영환 | 가변적인 페이지 크기를 지원하는 어드레스 변환장치 |
JPH10333971A (ja) * | 1997-05-28 | 1998-12-18 | Sony Corp | データ演算装置 |
DE19735948C1 (de) * | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
EP0926600B1 (en) * | 1997-12-24 | 2003-06-11 | Texas Instruments Inc. | Computer system with processor and memory hierarchy and its operating method |
US6289431B1 (en) * | 1998-01-26 | 2001-09-11 | Intel Corporation | Method and apparatus for accessing more than 4 Gigabytes of physical memory with 4-byte table entries |
US6266754B1 (en) * | 1998-05-29 | 2001-07-24 | Texas Instruments Incorporated | Secure computing device including operating system stored in non-relocatable page of memory |
US6657959B1 (en) | 1998-06-27 | 2003-12-02 | Intel Corporation | Systems and methods for implementing ABR with guaranteed MCR |
US6603768B1 (en) | 1998-06-27 | 2003-08-05 | Intel Corporation | Multi-protocol conversion assistance method and system for a network accelerator |
US6728249B2 (en) | 1998-06-27 | 2004-04-27 | Intel Corporation | System and method for performing cut-through forwarding in an ATM network supporting LAN emulation |
US6604136B1 (en) | 1998-06-27 | 2003-08-05 | Intel Corporation | Application programming interfaces and methods enabling a host to interface with a network processor |
US6724767B1 (en) | 1998-06-27 | 2004-04-20 | Intel Corporation | Two-dimensional queuing/de-queuing methods and systems for implementing the same |
US6311212B1 (en) * | 1998-06-27 | 2001-10-30 | Intel Corporation | Systems and methods for on-chip storage of virtual connection descriptors |
US6735773B1 (en) | 1998-06-27 | 2004-05-11 | Intel Corporation | Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs |
US6226731B1 (en) * | 1998-09-08 | 2001-05-01 | International Business Machines Corporation | Method and system for accessing a cache memory within a data-processing system utilizing a pre-calculated comparison array |
DE19842849C2 (de) * | 1998-09-18 | 2001-02-01 | Siemens Ag | Verfahren und Anordnung zum Übertragen von digitalen Daten |
US6910109B2 (en) * | 1998-09-30 | 2005-06-21 | Intel Corporation | Tracking memory page state |
US6460174B1 (en) | 1999-10-01 | 2002-10-01 | Stmicroelectronics, Ltd. | Methods and models for use in designing an integrated circuit |
US6598177B1 (en) | 1999-10-01 | 2003-07-22 | Stmicroelectronics Ltd. | Monitoring error conditions in an integrated circuit |
US6615370B1 (en) | 1999-10-01 | 2003-09-02 | Hitachi, Ltd. | Circuit for storing trace information |
US6530047B1 (en) | 1999-10-01 | 2003-03-04 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6826191B1 (en) | 1999-10-01 | 2004-11-30 | Stmicroelectronics Ltd. | Packets containing transaction attributes |
US6449712B1 (en) | 1999-10-01 | 2002-09-10 | Hitachi, Ltd. | Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions |
JP2001142692A (ja) * | 1999-10-01 | 2001-05-25 | Hitachi Ltd | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 |
US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US7793261B1 (en) | 1999-10-01 | 2010-09-07 | Stmicroelectronics Limited | Interface for transferring debug information |
US6633971B2 (en) | 1999-10-01 | 2003-10-14 | Hitachi, Ltd. | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline |
US6349371B1 (en) | 1999-10-01 | 2002-02-19 | Stmicroelectronics Ltd. | Circuit for storing information |
US6732307B1 (en) | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
US7000078B1 (en) * | 1999-10-01 | 2006-02-14 | Stmicroelectronics Ltd. | System and method for maintaining cache coherency in a shared memory system |
US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
US6665816B1 (en) | 1999-10-01 | 2003-12-16 | Stmicroelectronics Limited | Data shift register |
US6591369B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics, Ltd. | System and method for communicating with an integrated circuit |
US6574651B1 (en) | 1999-10-01 | 2003-06-03 | Hitachi, Ltd. | Method and apparatus for arithmetic operation on vectored data |
US6598128B1 (en) | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6463553B1 (en) | 1999-10-01 | 2002-10-08 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
US6701405B1 (en) | 1999-10-01 | 2004-03-02 | Hitachi, Ltd. | DMA handshake protocol |
US6601189B1 (en) | 1999-10-01 | 2003-07-29 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6629115B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method and apparatus for manipulating vectored data |
US6457118B1 (en) | 1999-10-01 | 2002-09-24 | Hitachi Ltd | Method and system for selecting and using source operands in computer system instructions |
US6684348B1 (en) | 1999-10-01 | 2004-01-27 | Hitachi, Ltd. | Circuit for processing trace information |
US6820195B1 (en) | 1999-10-01 | 2004-11-16 | Hitachi, Ltd. | Aligning load/store data with big/little endian determined rotation distance control |
US6502210B1 (en) | 1999-10-01 | 2002-12-31 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
US6557119B1 (en) | 1999-10-01 | 2003-04-29 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
US7260745B1 (en) | 1999-10-01 | 2007-08-21 | Stmicroelectronics Ltd. | Detection of information on an interconnect |
US6542983B1 (en) | 1999-10-01 | 2003-04-01 | Hitachi, Ltd. | Microcomputer/floating point processor interface and method |
US6487683B1 (en) | 1999-10-01 | 2002-11-26 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
US7266728B1 (en) | 1999-10-01 | 2007-09-04 | Stmicroelectronics Ltd. | Circuit for monitoring information on an interconnect |
US6351803B2 (en) | 1999-10-01 | 2002-02-26 | Hitachi Ltd. | Mechanism for power efficient processing in a pipeline processor |
US6298394B1 (en) | 1999-10-01 | 2001-10-02 | Stmicroelectronics, Ltd. | System and method for capturing information on an interconnect in an integrated circuit |
US6590907B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics Ltd. | Integrated circuit with additional ports |
US6408381B1 (en) | 1999-10-01 | 2002-06-18 | Hitachi, Ltd. | Mechanism for fast access to control space in a pipeline processor |
US6693914B1 (en) | 1999-10-01 | 2004-02-17 | Stmicroelectronics, Inc. | Arbitration mechanism for packet transmission |
US6928073B2 (en) * | 1999-10-01 | 2005-08-09 | Stmicroelectronics Ltd. | Integrated circuit implementing packet transmission |
US6496905B1 (en) | 1999-10-01 | 2002-12-17 | Hitachi, Ltd. | Write buffer with burst capability |
US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6859891B2 (en) | 1999-10-01 | 2005-02-22 | Stmicroelectronics Limited | Apparatus and method for shadowing processor information |
US6567932B2 (en) | 1999-10-01 | 2003-05-20 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6412047B2 (en) | 1999-10-01 | 2002-06-25 | Stmicroelectronics, Inc. | Coherency protocol |
US6779145B1 (en) | 1999-10-01 | 2004-08-17 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6434665B1 (en) | 1999-10-01 | 2002-08-13 | Stmicroelectronics, Inc. | Cache memory store buffer |
US7072817B1 (en) | 1999-10-01 | 2006-07-04 | Stmicroelectronics Ltd. | Method of designing an initiator in an integrated circuit |
US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6546480B1 (en) | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
US6970992B2 (en) * | 1999-10-04 | 2005-11-29 | Intel Corporation | Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto |
US6519684B1 (en) * | 1999-11-23 | 2003-02-11 | Motorola, Inc. | Low overhead method for selecting and updating an entry in a cache memory |
US6625714B1 (en) * | 1999-12-17 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Parallel distributed function translation lookaside buffer |
US7140022B2 (en) * | 2000-06-02 | 2006-11-21 | Honeywell International Inc. | Method and apparatus for slack stealing with dynamic threads |
EP1182571B1 (en) * | 2000-08-21 | 2011-01-26 | Texas Instruments Incorporated | TLB operations based on shared bit |
US6549987B1 (en) * | 2000-11-16 | 2003-04-15 | Intel Corporation | Cache structure for storing variable length data |
DE10105284A1 (de) * | 2001-02-06 | 2002-08-29 | Infineon Technologies Ag | Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten |
US6549997B2 (en) * | 2001-03-16 | 2003-04-15 | Fujitsu Limited | Dynamic variable page size translation of addresses |
US7424576B2 (en) * | 2001-05-02 | 2008-09-09 | Intel Corporation | Parallel cachelets |
US6728859B1 (en) | 2001-07-13 | 2004-04-27 | Mips Technologies, Inc. | Programmable page table access |
US6523104B2 (en) * | 2001-07-13 | 2003-02-18 | Mips Technologies, Inc. | Mechanism for programmable modification of memory mapping granularity |
US6854039B1 (en) * | 2001-12-05 | 2005-02-08 | Advanced Micro Devices, Inc. | Memory management system and method providing increased memory access security |
KR100450675B1 (ko) * | 2002-03-19 | 2004-10-01 | 삼성전자주식회사 | 성능향상 및 전력소모를 감소시킬 수 있는 tlb |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
JP4186509B2 (ja) * | 2002-05-10 | 2008-11-26 | 株式会社日立製作所 | ディスクシステムとそのキャッシュ制御方法 |
US7178139B2 (en) * | 2002-08-27 | 2007-02-13 | Delphi Technologies, Inc. | Executable file system for an embedded computer |
US7103748B2 (en) * | 2002-12-12 | 2006-09-05 | International Business Machines Corporation | Memory management for real-time applications |
US7412569B2 (en) * | 2003-04-10 | 2008-08-12 | Intel Corporation | System and method to track changes in memory |
US7089397B1 (en) | 2003-07-03 | 2006-08-08 | Transmeta Corporation | Method and system for caching attribute data for matching attributes with physical addresses |
US7100018B2 (en) * | 2003-07-31 | 2006-08-29 | Silicon Graphics, Inc. | System and method for encoding page size information |
US7069390B2 (en) * | 2003-09-04 | 2006-06-27 | International Business Machines Corporation | Implementation of a pseudo-LRU algorithm in a partitioned cache |
US7114035B2 (en) * | 2003-09-04 | 2006-09-26 | International Business Machines Corporation | Software-controlled cache set management with software-generated class identifiers |
US7120748B2 (en) * | 2003-09-04 | 2006-10-10 | International Business Machines Corporation | Software-controlled cache set management |
US7055004B2 (en) * | 2003-09-04 | 2006-05-30 | International Business Machines Corporation | Pseudo-LRU for a locking cache |
US7076632B2 (en) * | 2003-10-16 | 2006-07-11 | International Business Machines Corporation | Fast paging of a large memory block |
US7296139B1 (en) | 2004-01-30 | 2007-11-13 | Nvidia Corporation | In-memory table structure for virtual address translation system with translation units of variable range size |
US7278008B1 (en) | 2004-01-30 | 2007-10-02 | Nvidia Corporation | Virtual address translation system with caching of variable-range translation clusters |
US7334108B1 (en) | 2004-01-30 | 2008-02-19 | Nvidia Corporation | Multi-client virtual address translation system with translation units of variable-range size |
US7082075B2 (en) * | 2004-03-18 | 2006-07-25 | Micron Technology, Inc. | Memory device and method having banks of different sizes |
US7426625B2 (en) | 2004-03-31 | 2008-09-16 | International Business Machines Corporation | Data processing system and computer program product for support of system memory addresses with holes |
US20050273575A1 (en) * | 2004-06-02 | 2005-12-08 | Mukherjee Shubhendu S | Mechanism to invalidate data translation buffer entries a multiprocessor system |
US7266670B2 (en) * | 2004-06-04 | 2007-09-04 | Faraday Technology Corp. | Method of determining whether a virtual address corresponds to a physical address in a translation lookaside buffer |
WO2006123351A1 (en) * | 2005-04-11 | 2006-11-23 | Hewlett-Packard Development Company L.P. | Tlb page fault handler and dump manager |
US7590819B2 (en) * | 2005-05-09 | 2009-09-15 | Lsi Logic Corporation | Compact memory management unit |
US20080028181A1 (en) * | 2006-07-31 | 2008-01-31 | Nvidia Corporation | Dedicated mechanism for page mapping in a gpu |
US8464000B2 (en) | 2008-02-29 | 2013-06-11 | Qualcomm Incorporated | Systems and methods for cache line replacements |
JP5337247B2 (ja) | 2009-08-07 | 2013-11-06 | パナソニック株式会社 | 半導体記憶装置 |
CN114528023A (zh) * | 2015-04-24 | 2022-05-24 | 优创半导体科技有限公司 | 具有寄存器直接分支并使用指令预加载结构的计算机处理器 |
US10222984B1 (en) * | 2015-12-31 | 2019-03-05 | EMC IP Holding Company LLC | Managing multi-granularity flash translation layers in solid state drives |
US10198203B2 (en) * | 2016-11-15 | 2019-02-05 | Samsung Electronics Co., Ltd. | Method of operating memory device using pseudo-random functions, memory device using the same and memory system including the device |
US10649678B2 (en) | 2017-01-13 | 2020-05-12 | Arm Limited | Partitioning of memory system resources or performance monitoring |
US10719451B2 (en) * | 2017-01-13 | 2020-07-21 | Optimum Semiconductor Technologies Inc. | Variable translation-lookaside buffer (TLB) indexing |
US20180203807A1 (en) * | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
US10664306B2 (en) | 2017-01-13 | 2020-05-26 | Arm Limited | Memory partitioning |
US10664400B2 (en) | 2017-07-11 | 2020-05-26 | Arm Limited | Address translation cache partitioning |
US10769076B2 (en) | 2018-11-21 | 2020-09-08 | Nvidia Corporation | Distributed address translation in a multi-node interconnect fabric |
US11256625B2 (en) | 2019-09-10 | 2022-02-22 | Arm Limited | Partition identifiers for page table walk memory transactions |
US11226902B2 (en) * | 2019-09-30 | 2022-01-18 | International Business Machines Corporation | Translation load instruction with access protection |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61269753A (ja) * | 1985-05-24 | 1986-11-29 | Hitachi Ltd | アドレス変換装置 |
JPS63177239A (ja) * | 1987-01-19 | 1988-07-21 | Hitachi Ltd | 仮想計算機システム |
JPS63223849A (ja) * | 1987-03-12 | 1988-09-19 | Fujitsu Ltd | 多重仮想空間方式 |
JPS63231550A (ja) * | 1987-03-19 | 1988-09-27 | Hitachi Ltd | 多重仮想空間制御方式 |
JPS6410359A (en) * | 1987-07-03 | 1989-01-13 | Hitachi Ltd | Address conversion system for virtual computer system |
JPH04160448A (ja) * | 1990-10-23 | 1992-06-03 | Fujitsu Ltd | アドレス変換方式 |
JPH0581132A (ja) * | 1991-09-19 | 1993-04-02 | Nec Ibaraki Ltd | アドレス変換バツフアのアクセス回路 |
JPH05314003A (ja) * | 1992-05-14 | 1993-11-26 | Mitsubishi Electric Corp | キャッシュメモリ装置 |
JPH0695969A (ja) * | 1990-06-29 | 1994-04-08 | Digital Equip Corp <Dec> | 高性能プロセッサの変換バッファのためのグラニュラリティヒ ント |
JPH06202954A (ja) * | 1992-12-28 | 1994-07-22 | Fujitsu Ltd | タグ比較回路及びこれを用いたトランスレーション・ルック・アサイド・バッファ |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4084230A (en) * | 1976-11-29 | 1978-04-11 | International Business Machines Corporation | Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control |
DE2939411C2 (de) * | 1979-09-28 | 1982-09-02 | Siemens AG, 1000 Berlin und 8000 München | Datenverarbeitungsanlage mit virtueller Speicheradressierung |
US4525778A (en) * | 1982-05-25 | 1985-06-25 | Massachusetts Computer Corporation | Computer memory control |
US5123101A (en) * | 1986-11-12 | 1992-06-16 | Xerox Corporation | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss |
US5230045A (en) * | 1986-11-12 | 1993-07-20 | Xerox Corporation | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus |
US5133058A (en) * | 1989-09-18 | 1992-07-21 | Sun Microsystems, Inc. | Page-tagging translation look-aside buffer for a computer memory system |
US5222222A (en) * | 1990-12-18 | 1993-06-22 | Sun Microsystems, Inc. | Apparatus and method for a space saving translation lookaside buffer for content addressable memory |
US5263140A (en) * | 1991-01-23 | 1993-11-16 | Silicon Graphics, Inc. | Variable page size per entry translation look-aside buffer |
EP0508577A1 (en) * | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Address translation mechanism |
US5319760A (en) * | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5473348A (en) * | 1992-06-09 | 1995-12-05 | Kabushiki Kaisha Toshiba | Apparatus and method of controlling paging unit of coprocessor built in display control system |
US5465337A (en) * | 1992-08-13 | 1995-11-07 | Sun Microsystems, Inc. | Method and apparatus for a memory management unit supporting multiple page sizes |
US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
-
1995
- 1995-08-25 JP JP24087195A patent/JP3740195B2/ja not_active Expired - Fee Related
- 1995-09-01 DE DE69520718T patent/DE69520718T2/de not_active Expired - Lifetime
- 1995-09-01 EP EP95113771A patent/EP0701211B1/en not_active Expired - Lifetime
- 1995-09-01 EP EP99120560A patent/EP0977123A3/en not_active Withdrawn
- 1995-09-06 KR KR1019950029114A patent/KR100368196B1/ko not_active IP Right Cessation
- 1995-09-07 US US08/524,561 patent/US5796978A/en not_active Expired - Lifetime
-
1998
- 1998-01-14 US US09/007,249 patent/US6047354A/en not_active Expired - Lifetime
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61269753A (ja) * | 1985-05-24 | 1986-11-29 | Hitachi Ltd | アドレス変換装置 |
JPS63177239A (ja) * | 1987-01-19 | 1988-07-21 | Hitachi Ltd | 仮想計算機システム |
JPS63223849A (ja) * | 1987-03-12 | 1988-09-19 | Fujitsu Ltd | 多重仮想空間方式 |
JPS63231550A (ja) * | 1987-03-19 | 1988-09-27 | Hitachi Ltd | 多重仮想空間制御方式 |
JPS6410359A (en) * | 1987-07-03 | 1989-01-13 | Hitachi Ltd | Address conversion system for virtual computer system |
JPH0695969A (ja) * | 1990-06-29 | 1994-04-08 | Digital Equip Corp <Dec> | 高性能プロセッサの変換バッファのためのグラニュラリティヒ ント |
JPH04160448A (ja) * | 1990-10-23 | 1992-06-03 | Fujitsu Ltd | アドレス変換方式 |
JPH0581132A (ja) * | 1991-09-19 | 1993-04-02 | Nec Ibaraki Ltd | アドレス変換バツフアのアクセス回路 |
JPH05314003A (ja) * | 1992-05-14 | 1993-11-26 | Mitsubishi Electric Corp | キャッシュメモリ装置 |
JPH06202954A (ja) * | 1992-12-28 | 1994-07-22 | Fujitsu Ltd | タグ比較回路及びこれを用いたトランスレーション・ルック・アサイド・バッファ |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3457644B2 (ja) * | 1997-11-06 | 2003-10-20 | 株式会社日立製作所 | データ処理装置およびデータ処理システム |
JP2006040140A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | 情報処理装置及びマルチヒット制御方法 |
US9507730B2 (en) | 2004-07-30 | 2016-11-29 | Intel Corporation | Maintaining processor resources during architectural events |
US9164901B2 (en) | 2004-07-30 | 2015-10-20 | Intel Corporation | Maintaining processor resources during architectural events |
JP2011181094A (ja) * | 2004-07-30 | 2011-09-15 | Intel Corp | アーキテクチャイベントの間のプロセッサリソースの保持 |
US10740249B2 (en) | 2004-07-30 | 2020-08-11 | Intel Corporation | Maintaining processor resources during architectural events |
US8543793B2 (en) | 2004-07-30 | 2013-09-24 | Intel Corporation | Maintaining processor resources during architectural events |
US8788790B2 (en) | 2004-07-30 | 2014-07-22 | Intel Corporation | Maintaining processor resources during architectural events |
US8806172B2 (en) | 2004-07-30 | 2014-08-12 | Intel Corporation | Maintaining processor resources during architectural evens |
US9086958B2 (en) | 2004-07-30 | 2015-07-21 | Intel Corporation | Maintaining processor resources during architectural events |
US9152561B2 (en) | 2004-07-30 | 2015-10-06 | Intel Corporation | Maintaining processor resources during architectural events |
US10303620B2 (en) | 2004-07-30 | 2019-05-28 | Intel Corporation | Maintaining processor resources during architectural events |
US9164918B2 (en) | 2004-07-30 | 2015-10-20 | Intel Corporation | Maintaining processor resources during architectural events |
JP2019050027A (ja) * | 2004-07-30 | 2019-03-28 | インテル コーポレイション | プロセッサ |
US9996475B2 (en) | 2004-07-30 | 2018-06-12 | Intel Corporation | Maintaining processor resources during architectural events |
JP2008508598A (ja) * | 2004-07-30 | 2008-03-21 | インテル コーポレイション | アーキテクチャイベントの間のプロセッサリソースの保持 |
JP2012212440A (ja) * | 2005-10-20 | 2012-11-01 | Qualcomm Inc | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ |
JP2010233160A (ja) * | 2009-03-30 | 2010-10-14 | Metawater Co Ltd | データ記録装置 |
JP2016522503A (ja) * | 2013-05-29 | 2016-07-28 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 物理アドレスを判定するための方法及び装置 |
JP2016532965A (ja) * | 2013-08-20 | 2016-10-20 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ハードウェア管理による圧縮キャッシュ |
Also Published As
Publication number | Publication date |
---|---|
EP0701211A2 (en) | 1996-03-13 |
KR100368196B1 (ko) | 2003-04-10 |
EP0977123A2 (en) | 2000-02-02 |
JP3740195B2 (ja) | 2006-02-01 |
EP0977123A3 (en) | 2004-11-24 |
KR960011742A (ko) | 1996-04-20 |
DE69520718D1 (de) | 2001-05-23 |
EP0701211B1 (en) | 2001-04-18 |
EP0701211A3 (en) | 1997-10-15 |
US6047354A (en) | 2000-04-04 |
US5796978A (en) | 1998-08-18 |
DE69520718T2 (de) | 2001-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3740195B2 (ja) | データ処理装置 | |
JP3713312B2 (ja) | データ処理装置 | |
US6532528B1 (en) | Data processor and data processor system having multiple modes of address indexing and operation | |
US5526504A (en) | Variable page size translation lookaside buffer | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
US5930833A (en) | Logical cache memory storing logical and physical address information for resolving synonym problems | |
US6430670B1 (en) | Apparatus and method for a virtual hashed page table | |
US6189074B1 (en) | Mechanism for storing system level attributes in a translation lookaside buffer | |
JPH10177520A (ja) | データプロセッサ及びデータ処理システム | |
US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
JP2009512944A (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
JPH04320553A (ja) | アドレス変換機構 | |
JPH07191903A (ja) | データ処理システムおよび動作方法 | |
US6553477B1 (en) | Microprocessor and address translation method for microprocessor | |
US5132927A (en) | System for cache space allocation using selective addressing | |
JP3454854B2 (ja) | メモリ管理装置及び方法 | |
JP2930071B2 (ja) | 情報処理装置およびプロセッサ | |
JP2007280421A (ja) | データ処理装置 | |
JPH05216766A (ja) | データ・キャッシュとセグメント記述子の間のキャッシュの可干渉性を維持する方法およびコンピュータのメモリ装置 | |
JP2005108262A (ja) | データ処理装置 | |
CN115794681A (zh) | 适用于risc-v的多级可扩展tlb结构 | |
JPH06124237A (ja) | アドレス変換バッファ装置 | |
JP2000267932A (ja) | タグアドレス比較装置 | |
KR0184475B1 (ko) | 캐쉬메모리 액세스회로 | |
JPH1027134A (ja) | アドレス変換装置およびこれを用いたプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041109 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050831 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20051004 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051025 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051107 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081111 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091111 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101111 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111111 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111111 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111111 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121111 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131111 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |