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
Application number
JP7240871A
Other languages
English (en)
Other versions
JP3740195B2 (ja
Inventor
Shinichi Yoshioka
真一 吉岡
Ikuya Kawasaki
郁也 川崎
Saneaki Tamaki
実明 玉城
Susumu Narita
進 成田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27305071&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH08320830(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP24087195A priority Critical patent/JP3740195B2/ja
Priority to DE69520718T priority patent/DE69520718T2/de
Priority to EP95113771A priority patent/EP0701211B1/en
Priority to EP99120560A priority patent/EP0977123A3/en
Priority to KR1019950029114A priority patent/KR100368196B1/ko
Priority to US08/524,561 priority patent/US5796978A/en
Priority to US08/657,231 priority patent/US5907867A/en
Publication of JPH08320830A publication Critical patent/JPH08320830A/ja
Priority to US09/007,249 priority patent/US6047354A/en
Publication of JP3740195B2 publication Critical patent/JP3740195B2/ja
Application granted granted Critical
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

(57)【要約】 【目的】 チップ専有面積と電力消費量を増大させるこ
となく複数のページサイズをサポートできるデータ処理
装置を提供する。 【構成】 仮想記憶をサポートするデータ処理装置は、
論理ページサイズがページ毎に設定可能とされ、且つ、
可変に設定可能にされる複数の論理ページサイズに対し
て共通利用されるTLBを有し、該TLBは、論理ペー
ジ番号と物理ページ番号との対を記憶するための記憶領
域を夫々供え、夫々インデックスアドレスが共通化され
た複数バンクを持つセットアソシアティブ方式のキャッ
シュメモリとされる。サポートする論理ページの最大サ
イズは最小サイズの2のべき乗数倍にされ、TLBのバ
ンク数がその2のべき乗数以上とされる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、アドレス変換機構を有
するデータ処理装置に関し、特に、アドレス変換機構と
して、セットアソシアティブ方式のキャッシュメモリを
利用したデータ処理装置に係り、更に述べるならば、そ
のアドレス変換手法の多様化を企図したものであり、例
えばマイクロコンピュータに適用して有効な技術に関す
る。
【0002】
【従来の技術】ユーザが実メモリを意識せずに、オペレ
ーティングシステム(以下OSとも記す)がメモリ管理
を行う分野では、データ処理装置がアドレス変換機構を
サポートする必要がある。アドレス変換機構とは、仮想
記憶を実現するために、中央処理装置(CPU)により
形成された論理アドレスを物理アドレスに変換する機構
である。このアドレス変換機構を高速に実行するため
に、論理アドレスと物理アドレスとの変換対を保持する
アドレス変換バッファ(Translation lookaside buffe
r、以下単にTLBとも記す)を、中央処理装置とともに
データ処理装置に内蔵する技術が採用される。アドレス
変換バッファは、例えば、最近使用された論理アドレス
と物理アドレスとの変換対を保持する連想記憶構造のバ
ッファメモリとして構成される。連想記憶構造のバッフ
ァメモリとしては、各メモリセルに比較のための回路構
成を備えたCAM(Content Addressable Memory)から
成るフルアソシアティブメモリ、汎用のランダムアクセ
スメモリを利用して比較的高いヒット率を実現できるセ
ットアソシアティブ形式の連想メモリなどを利用するこ
とができる。尚、連想記憶形式のアドレス変換バッファ
について記載された文献の例としては昭和61年2月1
0日に株式会社培風館から発行された「超高速MOSデ
バイス」第287頁及び第288頁がある。
【0003】
【発明が解決しようとする課題】本発明者は、このよう
なアドレス変換バッファにつき、ユーザの要求仕様に応
えることができ、良好な使い勝手を実現するという点に
ついて検討したところ以下のような問題点を見出した。
【0004】(1)仮想記憶をサポートするアドレス変
換機構においては、論理アドレス空間を論理ページと呼
ばれる単位に分割して、そのページ単位に物理アドレス
へのアドレス変換を行う。一方、システムに、実際に実
装される実メモリ(物理メモリ)の全記憶容量が少ない
ような場合には、論理ページのサイズを比較的小さくし
て、各プロセスによるメモリの利用効率を向上させたい
という要求などがある。例えば、実行されるべきタスク
が、比較的小さなサイズのプログラムで構成される場
合、そのタスクに割り当てられる論理ページのサイズが
比較的大きいと、これに対応して、そのタスクを実行す
るための物理ページのサイズも比較的大きくなってしま
う。そのため、必要以上の記憶空間が、タスクに割り当
てられることになり、メモリの利用効率が低下する。特
に、実メモリの記憶容量が比較的小さい場合には、論理
ページのサイズを小さくして、実メモリの利用効率が低
下するのを防ぐことが望まれる。このような要求に、適
宜対応できるようにするには、論理ページのサイズを可
変にすることが望ましい。ところが、論理ページのサイ
ズを可変にすると、一定の論理空間において論理ページ
を規定するための情報のビット数が変化される。その結
果、アドレス変換バッファから情報を連想的に検索する
ための比較対象情報のビット数やビット位置が、論理ペ
ージサイズによって変化されなければならない。これに
対処するために、アドレス変換バッファにCAMから成
るフルアソシアティブ形式を採用することが考えられ
る。このようにすれば、各メモリセルが比較回路を備え
ていることから特別な考慮を要することなく、比較的簡
単に、論理ページの可変化を実現できる。しかしなが
ら、各メモリセルが比較回路を備えているためセットア
ソシアティブ形式のアドレス変換バッファに比べてチッ
プ専有面積と消費電力が共に倍増するという欠点が有
る。
【0005】(2)セットアソシアティブ形式のアドレ
ス変換バッファにおいては、複数セット存在するバンク
の数、即ちウェイ数を増やせば一つのインデックスアド
レスに対して保持できるエントリ数を増やして、ヒット
率を向上させることができる。例えば4ウェイ・セット
アソシアティブ形式の場合には、一つのインデックスア
ドレスに対して最大4個のエントリを保持できる。しか
しながら、複数のプロセスの夫々が論理空間の全域にわ
たるアドレス変換情報を有し、プロセス番号によって論
理アドレスを修飾或いは拡張する多重仮想記憶を行う場
合、比較的多くのプロセスが並列的に起動されると、夫
々のプロセスが同一論理ページを利用する頻度が多くな
る。各々のプロセスは、プロセス番号が互いに異なるた
め、一つのインデックスアドレスによって指示されると
ころの互いに異なるエントリに保持されることになる。
そのため、プロセスの数が、ウエイの数を越えると、セ
ットアソシアティブ形式であっても、ヒット率は相対的
に低下することになる。したがって、多重仮想記憶にお
いて多くのプロセスが並列的に起動される利用形態にお
いては、ヒット率の低下を抑えることができるように、
その利用形態に応じてインデックス方法を選択可能にす
ることの必要性が見出された。
【0006】(3)目的とする変換対がアドレス変換バ
ッファに格納されていない場合には、当該キャッシュミ
スに係る変換対(所望の変換対)が新たなエントリとし
てアドレス変換バッファに追加される。このとき、イン
デックスされたエントリにおける変換対の全てが有効な
変換対である場合には、変換対の置き換えが行われる。
この置き換えのアルゴリズム(リプレースメントアルゴ
リズム)には、ランダム、最初にロードされたものから
リプレースするFIFO、又は最後に参照されたものか
らリプレースするLRU(Least Recentry Used)など
がある。しかしながら、リプレースメントアルゴリズム
を固定化した場合には、データ処理の都合上、常に特定
の変換対をアドレス変換バッファにエントリとして格納
しておきたいという要求や、特定のアドレス変換対をリ
プレース対象にしたくないという要求には一切答えるこ
とができない。
【0007】(4)仮想記憶の形式には上記多重仮想記
憶の他に、複数のプロセスに論理アドレス空間の一部が
排他的に割り当てられる単一仮想記憶がある。使い勝手
を向上させるという点においては、これらの双方をサポ
ートできるようにすることが望ましい。
【0008】本発明の目的は、ユーザの要求仕様に応え
ることができて使い勝手の良好なアドレス変換機構を備
えたデータ処理装置を実現することにある。
【0009】本発明の目的を、更に詳述すれば、次の通
りである。チップ専有面積と電力消費量を増大させるこ
となく複数のページサイズをサポートできるアドレス変
換機構を備えたデータ処理装置を提供すること。
【0010】複数のインデックス方法をサポートし、そ
れらからインデックス方法を選択できるアドレス変換機
構を備えたデータ処理装置を提供すること。
【0011】アドレス変換対のリプレース対象に自由度
を持たせることができるアドレス変換機構を備えたデー
タ処理装置を提供すること。
【0012】また、サポートできる仮想記憶形式につい
ても自由度を持たせることができるアドレス変換機構を
備えたデータ処理装置を提供すること。
【0013】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0014】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0015】《複数ページサイズをサポート》 仮想記
憶をサポートするデータ処理装置は、論理アドレス空間
を論理ページと呼ばれる単位に分割して、そのページ単
位で、論理アドレスを物理アドレスへ変換(アドレス変
換)する。このデータ処理装置では、図1に例示される
ように、その論理ページのサイズが、ページ毎に可変と
される。それぞれサイズが可変な複数の論理ページに対
して、アドレス変換バッファのようなバッファメモリ1
は、共通に利用される。このバッファメモリ1として
は、論理ページ番号VPNとそれに対応する物理ページ
番号PPNとを含むところの対応情報を、記憶するため
の記憶領域を夫々供え、共通のインデックスアドレス2
によってアクセスされる複数バンク11〜14を持つセ
ットアソシアティブ方式のキャッシュメモリが使われ
る。
【0016】サポートする論理ページの最大サイズは最
小サイズの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とは
区別される。
【0017】上記アドレス変換バッファにおいて、バッ
ファメモリ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毎にアドレスマッピングすれば
全く影響を受けないようにすることができる。
【0018】TLBヒット/ミスを判定するために、各
バンク11〜14に設けられた比較手段15においてヒ
ット判定に反映されるべきアドレス比較のビット数は、
論理ページサイズに応じて変化されなければならない。
図1の例に従えば、論理ページサイズが1KBの場合に
は、論理ページサイズが4KBの場合に比べて、論理ア
ドレスのビット10及びビット11も比較対象としなけ
ればならない。バッファメモリ1は、そのような比較対
象のビット数を全てカバーできるように、論理ページ番
号と物理ページ番号との対応情報(変換対)を記憶する
領域のビット数が設定されている。バッファメモリ1に
おいては、各変換対にそれがサポートする論理ページサ
イズを示すフィールドが設けられており、そのフィール
ドの値(サイズビット)SZに応じてヒット判定のため
のアドレス比較のビット数が変化される。比較ビット数
が変化される対象は、論理アドレスの論理ページ番号
と、バッファメモリ内の変換対に含まれる論理ページ番
号の双方とされる。hit1〜hit4は各バンク11
〜14におけるヒット判定結果を通知するためのヒット
信号であり、それらに基づいてTLBヒット/ミスが判
定される。
【0019】《複数のインデックス方法をサポート》
仮想記憶をサポートするデータ処理装置は、論理ページ
番号と物理ページ番号との対応情報を記憶するための記
憶領域を夫々有し、夫々が共通のインデックスアドレス
によってアクセスされる複数バンクを持つセットアソシ
アティブ方式のキャッシュメモリによって構成されたバ
ッファメモリを供える。そして、そのバッファメモリに
対するインデックスアドレスの生成手法を可変とする手
段を有する。例えば、複数のプロセスが存在し、夫々の
プロセスが夫々のアドレス変換情報を有し、プロセス番
号によってそれぞれのプロセスが区別される多重仮想記
憶をサポートする場合、バッファメモリからエントリを
インデックスするためのアドレス指定方法として、図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に対応されるバッファメモリ
のエントリとしての論理ページ番号の情報であることを
意味する。
【0020】《リプレースの自由度》 仮想記憶をサポ
ートするデータ処理装置は、図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)による
ソフトウェアの実行によって任意に変更可能にされる。
【0021】上記ハードウェア手段は、図4に例示され
るように、MMUCR.RCをランダムカウンタのよう
な計数手段として備え、その計数手段のビット数の2の
べき乗数が、上記バッファメモリ1のバンクの数(=
4)と一致される。上記ハードウェア手段に含まれる制
御回路CTRLは、バッファメモリ1に対する記憶情報
の置換が必要になった場合、上記計数手段を1インクリ
メントし、何れのバンクの、インデックスされた記憶領
域にも有効なデータが保持されている(インデックスさ
れた各バンクの各エントリが、有効を示す”1”のバリ
ッドビットVを有する)場合には、そのインクリメント
された結果を置換すべきバンク番号とする。これに対し
て、何れかのバンク内で、インデックスされた記憶領域
に、有効なデータが保持されていない(インデックスさ
れた何れかのエントリが、無効を示す”0”のバリッド
ビットVを有する)場合には、有効なデータを保持して
いないエントリを含むバンクの番号を計数手段にセット
し、且つセットされた番号のバンクを置換すべきバンク
とする。このような一定の規則に従って、置換すべきバ
ンクの指定が行われる。このとき、上記計数手段の各ビ
ットは、中央処理装置により実行されるソフトウェアに
よって、任意の値へ変更することが可能な対象とされて
いる。
【0022】《単一仮想記憶と多重仮想記憶のサポー
ト》 仮想記憶をサポートするデータ処理装置は、論理
アドレス空間を論理ページと呼ばれる単位に分割して、
そのページ単位で、論理アドレスを物理アドレスへアド
レス変換を行うためのアドレス変換機構を備える。この
アドレス変換機構は、複数のプロセスの夫々が論理空間
の全域にわたるアドレス変換情報を有するとき、プロセ
ス番号(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の
値は、中央処理装置によって実行されるソフトウェアに
よって、任意に設定することができる。
【0023】
【作用】複数ページサイズを選択的にサポートするデー
タ処理装置は、システムに実装される実メモリの全記憶
容量が少ないような場合に、論理ページのサイズを比較
的小さくして、各プロセスによるメモリの利用効率を向
上させたいという要求にも容易に対応できる。このと
き、最大論理ページサイズを最小サイズの2のべき乗数
倍にし、セットアソシアティブ方式のバッファメモリの
バンクの数をその2のべき乗数以上にすることは、イン
デックスアドレスの指定手法を最大論理ページサイズの
ものに統一しても、選ばれる論理ページのサイズに拘わ
らず、原理的には、どの論理ページ番号のエントリにつ
いても、同じ数だけエントリをバッファメモリに保有す
ることが可能となる。論理ページのサイズを示すための
情報を用いてヒット判定に反映されるべきアドレス比較
のビット数を変化させることは、バッファメモリを連想
的に検索するための比較対象情報のビット数やビット位
置を論理ページのサイズによって変化させることを容易
に実現する。複数ページサイズをサポートするバッファ
メモリをセットアソシアティブ形式のキャッシュメモリ
で実現することは、これをCAMで構成する場合に比べ
てチップ専有面積と消費電力を共に半減させる。
【0024】複数のインデックス方法をサポートする手
段によれば、多重仮想記憶において多くのプロセスが並
列的に起動される利用形態においてヒット率の低下を抑
えることができるように、その利用形態に応じてインデ
ックス方法を選択可能にすることができる。論理アドレ
スの一部を当該論理アドレスを利用するプロセス番号
(asid)によって修飾し、これを以てバッファメモ
リをインデックスすることにより、多重仮想記憶におい
て多くのプロセスが並列的に起動される利用形態におい
てのヒット率の低下を抑えることが可能となる。
【0025】リプレースの自由度を向上させる手段によ
れば、バッファメモリの変換対を置き換えるためのリプ
レースメントアルゴリズムを固定化せず、置き換えるべ
きバンクをソフトウェアで任意に決定することが可能と
なる。これにより、データ処理の都合上、常に特定の変
換対をアドレス変換バッファにエントリとして格納して
おきたいという要求や、特定のアドレス変換対をリプレ
ース対象にしたくないという要求に容易に答えることが
できる。ソフトウェアによってリプレースの対象を指示
するレジスタを持つことは、ソフトウェアのアルゴリズ
ム次第で、ランダム、FIFO、又はLRUなどにした
がってリプレースを行う自由度も保証できる。
【0026】単一仮想記憶と多重仮想記憶をサポートす
る手段によれば、アドレス変換機構の使い勝手を向上さ
せることができる。特に、ソフトウェアを介して、何れ
を使うかを選択することができるようにして、一層使い
勝手を向上させることができる。多重仮想記憶における
プロセス番号(ASID)を単一仮想記憶におけるメモ
リ保護情報として使用することにより、単一仮想記憶を
選択した場合におけるメモリ保護の完全化を容易に実現
することができる。
【0027】
【実施例】
《マイクロコンピュータ》 図7には本発明に係るデー
タ処理装置の一実施例であるマイクロコンピュータの要
部が示される。本実施例のマイクロコンピュータは、特
に制限されないが、公知の半導体集積回路製造技術によ
って単結晶シリコンのような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に出力される物理アドレスと比較され、その比較結
果に応じてキャッシュミス/ヒットを判定する。
【0028】本実施例のマイクロコンピュータは、論理
アドレス空間を論理ページと呼ばれる単位に分割し、そ
のページ単位で、論理アドレスを物理アドレスへアドレ
ス変換を行うための仮想記憶をサポートしている。上記
アドレス変換バッファ1は、論理ページ番号VPNとこ
れに対応した物理ページ番号PPNとに関する変換対な
どをTLBエントリとして格納し、TLBコントローラ
5は中央処理装置3が出力する論理アドレスをアドレス
変換バッファ1などを用いて物理アドレスに変換する。
上記アドレス変換バッファ1は、それぞれインデックス
アドレスが共通化された4個のバンクを持つ4ウェイ・
セットアソシアティブ方式のキャッシュメモリによって
構成される。図面が複雑になるのを避けるために、図7
には、代表的に1個のバンク11のみが図示されている
が、実際には図1のようにバンク11と同様の別のバン
ク12〜14が紙面の表裏方向に配置されている。上記
アドレス変換バッファ1、TLBコントローラ5、CP
U3、及びアドレス変換とメモリ保護のためのシステム
ソフトウェア若しくはオペレーティングシステムによっ
て、上記仮想記憶をサポートするアドレス変換機構が構
成される。
【0029】ここで、予じめ、本実施例のマイクロコン
ピュータのアドレス空間について説明する。本実施例の
マイクロコンピュータは、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領域はキャッシュの
対象とされている。
【0030】本実施例のマイクロコンピュータは、上述
の様に、特権モードとユーザモードとを有し、特権モー
ドで動作しているのか、ユーザモードで動作しているの
かが、中央処理装置3に含まれるステータスレジスタS
RのモードビットMDの値によって示される。MD=0
は、ユーザモードで動作していることを表わし、MD=
1は、特権モードで動作していることを表わす。図8の
(A)及び(B)に示されているように、特権状態(特
権モードが設定されている状態)は、ユーザ状態(ユー
ザモードが設定されている状態)でのアクセスではアド
レスエラーとなるようなアドレス空間(P1からP4)
を、アクセスでき、ユーザ状態では実行不可能な特権命
令若しくはシステム制御命令を実行することができる、
などという点においてユーザ状態と相違される。
【0031】図8の(A)及び(B)に示される4GB
の論理アドレス空間の内、特に制限されないが、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が
用いられる。論理アドレスを物理アドレスに変換する場
合、当該論理アドレスの論理ページ番号に対応するエン
トリから物理ページ番号を取得し、当該論理アドレスの
オフセット情報を物理ページ番号の下位側に付加して物
理アドレスが得られる。
【0032】TLBミスなどが発生した際、アドレス変
換バッファ1内のエントリへ取り込まれる情報(ページ
テーブルエントリ)は、予め、ソフトウエアにより形成
され、図7には示されていない外部メモリ(例えば図2
2のメモリRAM)に記憶されている。すなわち、仮想
記憶のためのページテーブルエントリは、論理ページ番
号VPNと物理ページ番号PPNとの対応関係を示す変
換情報やアクセスの属性などについての記述を含み、外
部メモリに形成されるところのページテーブルに格納さ
れる。高速なアドレス変換ができるように、このページ
テーブルに格納されたエントリの一部が、上記TLB1
内のバンク11〜14に格納される。外部メモリにおけ
るページテーブルのアドレスは、後で図6を用いて説明
する変換テーブルレジスタ(TTB)53に、予めセッ
トされる。TLBミスなどが発生した際には、この変換
テーブルレジスタ53にセットされているベースアドレ
スと、ミスの際の論理ページ番号等を用いて、CPU3
が、上記ページテーブルをアクセスして、その時の論理
ページ番号に対応した物理ページ番号等を含むエントリ
を求めて、例えば、TLB1内のバンクへ求めたエント
リを書き込む。これにより、その時の論理アドレスに対
応した物理アドレスが形成される。
【0033】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ページサイズを指定する。
【0034】ここで単一仮想記憶と多重仮想記憶の概念
を図20の(A)及び(B)に基づいて説明する。多重
仮想記憶とは、複数のプロセスの夫々が、論理空間の全
域にわたるアドレス変換情報を有するとき、プロセス番
号asidによって論理アドレスを修飾或いは拡張する
というものである。これに対して、単一仮想記憶とは、
複数のプロセスに論理アドレス空間の一部が排他的に割
り当てられる。言い替えるならば、単一仮想記憶とは、
夫々のプロセスがそれに割り当てられた論理アドレス空
間のアドレス変換情報を有するとき、プロセス番号as
idによって論理アドレスの修飾或いは拡張がされな
い。このように、単一仮想記憶においては、複数のプロ
セス間で、排他的に論理アドレス空間が割り当てられる
ため、図20の(B)に示されるように、プロセスに割
り当てられた論理アドレス空間毎にそれ固有のアドレス
変換情報が存在する。そのため、アドレス変換テーブル
は一つ存在するだけである。当該一つのアドレス変換テ
ーブルを用いれば、ある論理アドレスAはそれに対応さ
れる物理アドレスDに一義的に変換される。これに対し
て多重仮想記憶においては、複数のプロセス間で、論理
アドレス空間が相互に重複して割り当てられる。そのた
め、プロセス毎のアドレス変換情報は相互に別々のアド
レス変換テーブルに含まれなければならない。したがっ
て、ある論理アドレスAは相互に異なるアドレス変換テ
ーブルi,jを介することによって異なる物理アドレス
B,Cに変換されることになる。このとき変換に係る論
理アドレスAがどのプロセスに属するかは、プロセス番
号によって識別される。図20の(A)に従えば、多重
仮想記憶においてアドレス変換テーブルiはプロセス番
号iに対応され、アドレス変換テーブルjはプロセス番
号jに対応される。プロセス番号は、互いに同じ論理ア
ドレス空間を使う(アクセスする)ところの複数のプロ
セスにおける識別番号とみなすこともできる。
【0035】図19には、論理空間、変換情報、保護に
ついて、単一仮想記憶と多重仮想記憶との相違が示され
ている。この図面において、PRは、図9に示されてい
る保護情報である。
【0036】図7において上記TLBコントローラ5は
制御回路(CTRL)50、ページテーブルエントリ上
位(PTEH)レジスタ51、ページテーブルエントリ
下位(PTEL)レジスタ52、変換テーブルベース
(TTB)レジスタ53、TLB例外アドレス(TE
A)レジスタ54、及びコントロール(MMUCR)レ
ジスタ55を備える。後で、図22を用いて説明するよ
うに、これらのレジスタは、CPU3に結合されてお
り、少なくともTEAレジスタ54とMMUCRレジス
タ55はCPU3によって直接リード/ライト可能にさ
れる。その他のレジスタ51〜53もCPU3によって
直接アクセス可能にされている。
【0037】図6に示されるようにPTEHレジスタ5
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にて行われる。
【0038】図7において、CPU3から出力される論
理アドレスの論理ページ番号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)によって決定される。
【0039】図21には前記制御ロジック154の論理
構成の一例が示されている。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に反映される。
【0040】前記オアゲート1543は、インデックス
されたTLBエントリに含まれるプロセス番号ASID
と現在のプロセス番号(PTEHレジスタ51から出力され
ているプロセス番号)asidとの比較結果であるコン
パレータ153の出力と、上記インデックスされたTL
Bエントリからの共有ビットSHとを入力する。この共
有ビットSHが、1にされている場合、”プロセス間で
の論理ページの共有”の状態が指示されていることにな
る。そのため、この状態ではTLBミス/ヒット判定の
ためのアドレス比較において、プロセス番号間の比較が
必要とされないから、共有ビットSH=1の状態では、
アンドゲート1541の出力信号hit1にはプロセス
番号間の比較結果は反映されない。上記インデックスに
おける共有ビットSHが0にされ、”プロセス間での論
理ページの非共有”の状態が指示されている場合には、
TLBミス/ヒット判定のためのアドレス比較におい
て、プロセス番号間の比較が必要とされるから、共有ビ
ットSH=0の状態では、アンドゲート1541の出力
信号hit1にはプロセス番号間の比較結果が反映され
る。
【0041】単一仮想記憶においては、TLBエントリ
が保有する上記プロセス番号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プロテクト違反例
外を検出しないようにしている。
【0042】図10は、制御回路50によるアドレス変
換動作の制御を示すメインフローチャートである。この
制御は、アドレス変換バッファ1のインデックス処理L
1、アドレス比較とVビットのチェック処理L2、アク
セス権のチェック処理L3、物理アドレスの生成処理L
4に大別される。これらの処理はCPU3及びコントロ
ーラ5によって制御される。
【0043】アドレス変換バッファ1のインデックス処
理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を含む。
【0044】アドレス比較とVビットのチェック処理L
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のフィールドを除外するようにしてい
る。
【0045】インデックスによって、TLB1からTL
Bエントリがリードされ、そのリードされたTLBエン
トリ内の共有ステータスSHに基づいて、アドレス比較
の際に空間番号ASIDを考慮するか否かが判定され
る。SH=1(共有)の場合、空間番号ASIDはアド
レス比較の対象として考慮されず、SH=0(非共有)
の場合、空間番号ASIDはアドレス比較の対象として
考慮される。また、MMUCRレジスタ55のSVの値
(MMUCR.SV)が1にされ、単一仮想記憶が設定
されている場合であって、ステータスレジスタSRのモ
ードビットSR.MDが1になっている場合(中央処理
装置が、特権モードで動作している場合)には、空間番
号ASIDはTLBプロテクト違反例外の検出には考慮
されない。特権モードの性質上、別のプロセスに割り当
てられている論理ページを、現在のプロセスからアクセ
スできるようにするためである。
【0046】本実施例においては、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)とは比較判定の対象から除外される。
【0047】上述の様にして、比較対象(VPN(31
−17,11−10),vpn(31−17,11−1
0),ASID,asid)が定められ、比較が行われ
る。この比較の結果として、何れかのバンクにおいて一
致すると、その一致したバンクからヒット信号が出力さ
れる。各バンクのヒットは、ヒット信号hit1〜hi
t4として出力され、TLBヒットとされる。これに対
して、いずれのバンクからもヒット信号が出力されない
場合、すなわち不一致の場合には、TLBミス例外が検
出されることになる。その結果は、信号501にてCP
U3にも通知され、CPU3によって、後で述べるTL
Bミス例外の処理が行われる。
【0048】また、インデックスされた各バンクのエン
トリに対しては、そのエントリ内のVビットについての
チェックも行われる。すなわち、インデックスによっ
て、リードされたエントリ内のVビットに対してチエッ
クが行われる。TLBヒットの場合に、ヒットに係るエ
ントリ内のVビットが0(無効)のときは、TLBイン
バリッド例外が検出され、これがCPU3に通知され
る。この例外処理の内容は後述する。TLBミスの場合
におけるVビットの判定結果はTLBミスに係る後述の
エントリリプレースにて利用される。
【0049】アクセス権のチェック処理L3において
は、インデックスによりリードされた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イニシャルページライト例外処理の内容につ
いては後述する。
【0050】物理アドレスの生成処理L4においては、
インデックスされた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が生成され
る。
【0051】図15には、アドレス比較とVビットのチ
ェック処理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によるソ
フトウェアの実行によって、任意にその値を変更するこ
とが可能である。そのため、上述の様にして、このレジ
スタに設定されたバンク番号を、更に、ソフトウエアに
よって変更することもできる。そのため、任意のバンク
をリプレースの対象にすることができる。
【0052】図16には、上記TLBミス例外に対処す
るために、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にセットされているバンク番号によって決定
されることになる。
【0053】TLBミス例外に対処するために、図22
に示されている様な外部メモリRAMに、予め、ページ
テーブルが、ユーザによって形成される。このページテ
ーブルには、特に制限されないが、複数の論理アドレス
に各々対応した複数の変換情報(ページテーブルエント
リ)が、所定の規則にしたがって、格納される。このペ
ージテーブルのアドレス、例えば、その開始アドレス
は、ベースアドレスとして、レジスタTTB53に、予
め格納される。このページテーブルは、特に制限されな
いが、開始アドレスとしての上記ベースアドレスと論理
アドレスとに基づいて、当該論理アドレスに対応したペ
ージテーブルエントリ(対応する物理ページ番号pp
n、バリッドビットv、プロテクションビットpr、サ
イズビットsz、キャッシャブルビットc、ダーテイビ
ットd、ステータスshを含む)を検索することができ
るような規則で、複数の論理アドレスに各々対応した複
数のページテーブルエントリが、配置されている。
【0054】上記TLBミスハンドラは、ユーザによっ
て、記述される。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ミス発生時のインデックスアドレスと同
じインデックスアドレスによって指示されるエントリで
ある。
【0055】上記TLBインバリッド例外は、TLBヒ
ットにおけるページフォルトの場合に発生する。この例
外に対しては、例えば、先ず、外部メモリ上のページテ
ーブルエントリを回復し、そのページテーブルエントリ
内のVビットを論理値1にする。この後、当該ページテ
ーブルエントリを外部メモリからPTELレジスタ52
にロードし、上述のロードTLBインストラクションを
発行して、PTEH,PTELの各レジスタ51,52
の値によってTLB1の該当エントリを更新する。
【0056】上記TLBイニシャルページライト例外に
ついては、それが検出されると、外部メモリ上の対応す
るページテーブルエントリのDビットを論理値1にし、
当該ページテーブルエントリを外部メモリからPTEL
レジスタ52にロードした後、上述のロードTLBイン
ストラクションを発行してPTEH,PTELの各レジ
スタ51,52の値によってTLB1の該当エントリを
更新する。尚、例外要因とされた論理アドレスの情報v
pn,asidはPTEHレジスタ51に保持されてい
る。D=1にされるべき状況は、メインメモリ上の物理
ページ領域に最初に書込みが行われるときに発生され
る。仮想記憶において、ページ入れ換えの際に補助記憶
装置とメインメモリ(例えば図22の外部メモリ)相互
間でのデータの整合を図るため、メインメモリの入れ換
え対象ページの内容を補助記憶装置にコピーバックする
か否かの判定が必要とされる。ダーティービットDは、
この判定のために、利用される。
【0057】上記TLBプロテクト違反例外が検出され
ると、例外要因とされる論理アドレスの論理ページ番号
vpnがPTEHレジスタ51に、そしてその論理アド
レスがTEAレジスタ54に書き込まれた後に、そのプ
ロテクト違反を解決するためのハンドラが起動される。
【0058】上記のように、MMUCR.RCをカウン
タとして使う場合、上記のTLBミス例外の対策の際に
は、新たなバンクへエントリを登録することができるよ
うにするために、上記のようにインクリメントすること
が望ましい。これに対して、上記TLBインバリッド例
外、上記TLBイニシャルページライト例外及び上記T
LBプロテクト違反例外の対策においては、MMUC
R.RCをインクリメントしないことが望ましい。これ
らの対策においては、Dビット、或いはVビットの変更
だけが必要な場合があり、新たなバンクに登録せずに、
元のバンクに登録するようにしたほうが、TLBを有効
に使えるためである。勿論、本発明は、このようにする
ことに制限されるものではない。
【0059】図17及び図18には、MMUCRレジス
タのビット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)が検出される。
【0060】特権モードでのアクセスにおいてもPR=
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のときはメインメモリがアクセスされること
になる。
【0061】図22には、図7に示した各レジスタと中
央処理装置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に示され
ている種々の制御データを書き込むことが可能であり、
特定のビットをカウンタの様に使うこともできる。
【0062】内部論理アドレスバスVABUSは、制御
回路(CTRL)50、TLB1にも接続されている。
制御回路(CTRL)50には、上記したように論理ア
ドレスのオフセットを保持するためのラッチ回路が設け
られており、内部論理アドレスバスVABUSからの論
理アドレスのオフセットが保持される。また、この内部
論理アドレスバスVABUSを介して、CPU3から論
理アドレスが、TLB1に供給され、インデックスアド
レス、検索用のアドレスとして使われる。勿論、制御回
路(CTRL)50に設けられる上記ラッチ回路は、オ
フセットアドレスだけでなく、論理アドレスの全てを保
持する様にしても良い。
【0063】この図面には、上記PTEHレジスタ51
と上記TLB1との接続だけが、明示的に示されてい
る。TLB1のミス/ヒットの判定のための空間番号
は、このレジスタにセットされ、このレジスタから上記
TLB1へ供給される。また、TLB1のミス例外につ
いての対策においても、このレジスタから、上記したよ
うに論理アドレス等が上記TLB1へ供給される。
【0064】内部データバスDBUS及び内部物理アド
レスバスPABUSは、このデータ処理装置に設けられ
た外部端子TD及びTAを介して、外部データバスDB
US及び外部アドレスバスABUSに接続される。これ
らの外部バスには、例えば、同図に示されている様に、
外部メモリRAM,ROMが接続される。特に制限され
ないが、外部メモリRAMは、揮発性メモリであり、上
記したような種々のテーブル等が形成される。また、外
部メモリROMは、不揮発性のメモリであり、種々のプ
ログラム(例えば、上記したハンドラ等のソフトウエ
ア)を格納している。
【0065】以下においては、本実施例のマイクロコン
ピュータにおける仮想記憶の作用効果をその特徴点毎に
説明する。
【0066】《複数ページサイズのサポート》 図5及
び図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”のときの
変換情報を、各々設定する。このようにすれば、ヒット
率の低下を防ぐことが可能となる。
【0067】ヒット判定のためのアドレス比較のビット
数は、図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)とが論理アドレスの対応
ビットとの比較対象とされる。
【0068】このように複数ページサイズを選択的にサ
ポートするマクロコンピュータは、システムに実装され
る実メモリの全記憶容量が少ないような場合に、論理ペ
ージのサイズを比較的小さくして各プロセスによるメモ
リ利用効率を向上させたいという要求にも容易に対応で
きる。このとき、最大論理ページサイズが最小サイズの
2のべき乗数倍にされ、そのセットアソシアティブ方式
のTLB1のバンクの数をその2のべき乗数以上にする
ことにより、インデックスアドレスの指定手法を最大論
理ページサイズのものに統一化しても、選ばれている論
理ページサイズが最大であっても最小であっても、原理
的にはどの論理ページ番号のエントリについてもアドレ
ス変換バッファ1に保有可能にすることができる。論理
ページ番号に対応させて、論理ページのサイズを示すた
めの情報を設け、このサイズを用いてヒット判定のため
のアドレス比較のビット数を変化させることにより、ア
ドレス変換バッファ1を連想的に検索するための比較対
象情報のビット数やビット位置を、論理ページのサイズ
によって変化させることを容易に実現できる。複数ペー
ジサイズをサポートするアドレス変換バッファ1をセッ
トアソシアティブ形式のキャッシュメモリで実現するこ
とは、これをCAMで構成する場合に比べてチップ専有
面積と消費電力を共に半減させることができる。
【0069】《複数のインデックス方法をサポート》
複数のプロセスが存在し、夫々のプロセスが夫々のアド
レス変換情報を有し、プロセス番号asidによって、
それぞれのプロセスが区別されるところの多重仮想記憶
をサポートする場合、TLB1のインデックスアドレス
を指定する手法として、図2に示されるように論理アド
レスの一部(インデックスアドレス)のみをデコードす
る手法と、図3に示されるように排他的論理和ゲートX
ORによってその論理アドレスの一部(インデックスア
ドレス)を現在のプロセス番号asidの一部によって
修飾した結果をデコードする手法とを、レジスタMMU
CRのビットMMUCR.IXの論理値にしたがって指
示することができる。これによれば、多重仮想記憶にお
いて多くのプロセスが並列的に起動される利用形態にお
いてヒット率の低下を抑えることができるように、その
利用形態に応じてインデックス方法を選択可能にするこ
とができる。また、論理アドレスの一部を当該論理アド
レスを利用するプロセスの番号asidによって修飾
し、これを以てバッファメモリをインデックスすること
により、多重仮想記憶において多くのプロセスが並列的
に起動される利用形態においてヒット率の低下を抑える
ことができる。
【0070】《リプレースの自由度》 上述の如くTL
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の更新方法を変えることに容易に実現で
きる。そのため、リプレースの自由度も保証できる。
【0071】このようにTLB1のエントリを置き換え
るためのリプレースメントアルゴリズムを固定化せず、
置き換えるべきバンクをソフトウェアで任意に決定可能
にすることにより、データ処理の都合上、常に特定の変
換対をアドレス変換バッファ1にエントリとして格納し
ておきたいという要求や、特定のエントリをリプレース
対象にしたくないという要求に容易に答えることができ
るようになる。
【0072】《単一仮想記憶と多重仮想記憶のサポー
ト》 本実施例のマイクロコンピュータにおいては、実
行されるべき複数のプロセスの夫々が論理空間の全域に
わたるアドレス変換情報を有する場合、プロセス番号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プロテクト違反例外としてソフトウェアにより処理さ
れる。
【0073】MMUCR.SVの値をCPU3を介して
設定することにより単一仮想記憶と多重仮想記憶の双方
を選択的にサポート可能にすることにより、アドレス変
換機構の使い勝手を向上させることができる。多重仮想
記憶におけるプロセス番号ASIDを単一仮想記憶にお
けるメモリ保護情報として使用することにより、その場
合におけるメモリ保護の完全化を容易に実現することが
できる。
【0074】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0075】例えば、上記実施例においてTLBのウェ
イ数、即ちバンクの数を5以上例えば8にすることも可
能である。例えばページサイズを1KBと8KBにする
場合にはLTBのウェイ数(バンク数)は8以上とすれ
ばよい。また、ページサイズを4KBと16KBにする
場合にはLTBのウェイ数(バンク数)は4以上であれ
ばよい。それらによっても上記実施例と同様の効果を得
ることができる。要はサポートするページの最大サイズ
が最小サイズの2のべき乗数倍にされ、そのセットアソ
シアティブ方式のバッファメモリのセットの数がその2
のべき乗数以上であればよい。マイクロコンピュータが
サポートするアドレス空間のサイズは4GBに限定され
ず、それに応じて論理アドレスのビット数も制限されな
い。サポートするページサイズも適宜のサイズに、且つ
サポートする種類の数も適宜変更可能である。また、T
LBエントリとして保有する論理ページ番号VPNは上
記実施例のようにインデックスに利用される対応ビット
を除いたものとする構成に限定されず、論理ページ番号
の全ビットをTLBエントリとして保有することもでき
る。
【0076】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるマイク
ロコンピュータに利用した場合について説明したが、本
発明はそれに限定されず、例えばMMU(メモリマネー
ジメントユニット)用のコントローラチップなどにも広
く適用することができる。
【0077】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0078】すなわち、チップ専有面積と電力消費量を
増大させることなく、複数のページサイズをサポートで
きるデータ処理装置を実現することができる。インデッ
クス方法を選択できるアドレス変換機構を実現すること
ができる。アドレス変換対のリプレース対象に自由度を
持たせることができる。また、サポートできる仮想記憶
形式についても自由度を持たせることができる。これら
により、ユーザの要求仕様に応えることができて使い勝
手の良好なアドレス変換機構を備えたデータ処理装置を
実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るマイクロコンピュータ
における複数ページサイズをサポートする構成の説明図
である。
【図2】論理ページアドレスの一部をそのまま利用して
TLBをインデックスする手法の説明図である。
【図3】論理ページアドレスの一部とプロセス番号の一
部を用いてTLBをインデックスする手法の説明図であ
る。
【図4】TLBエントリのリプレース対象バンクをソフ
トウェアで任意に決定可能とする構成の説明図である。
【図5】ページサイズの異なる論理アドレスとそれらを
サポートするためのTLBエントリのフォーマットの一
例を説明するための説明図である。
【図6】TLBのための各種レジスタの一例を説明する
ための説明図である。
【図7】本発明の一実施例に係るマイクロコンピュータ
の要部を示す全体ブロック図である。
【図8】本実施例のマイクロコンピュータがサポートす
るアドレスマップの一例を(A)及び(B)にて示す説
明図である。
【図9】記憶保護に利用されるプロテクションビットP
Rによって規定されるアクセス権の説明図である。
【図10】アドレス変換の制御メインフローチャートで
ある。
【図11】TLBのインデックス手法選択のための制御
フローチャートである。
【図12】論理アドレスとそれによってインデックスさ
れたタグとのアドレス比較の制御フローチャートであ
る。
【図13】単一仮想記憶においてASIDをメモリ保護
に利用する制御を含んだプロテクション制御の部分的な
フローチャートである。
【図14】ページサイズに従った物理アドレス生成手順
を示すフローチャートである。
【図15】リプレース対象バンクをハードウェア的に指
定するための制御フローチャートである。
【図16】TLBミスにより生じる例外によって、起動
されるところの TLBエントリを更新するためのTL
Bミスハンドラによる処理の一例を示すフローチャート
である。
【図17】単一仮想記憶におけるTLBに関する例外検
出処理の前半を示すフローチャートである。
【図18】単一仮想記憶におけるTLBに関する例外検
出処理の後半を示すフローチャートである。
【図19】単一仮想記憶と多重仮想記憶との全体的な相
違を示す説明図である。
【図20】単一仮想記憶と多重仮想記憶との概念を
(A)及び(B)にて示す説明図である。
【図21】TLBの各バンクにおけるヒット信号に反映
すべきアドレス比較結果を制御する制御ロジックの一例
を示す論理回路図である。
【図22】図7の一部を更に詳細に示したブロック図で
ある。
【符号の説明】
1 アドレス変換バッファ(バッファメモリ) VPN 論理ページ番号 PPN 物理ページ番号 ASID,asid 空間番号(プロセス番号) vpn 論理ページアドレス(論理ページ番号) ppn 物理ページアドレス(物理ページ番号) PR プロテクションキー 11〜14 バンク 15 比較手段 151〜153 コンパレータ 154 制御ロジック 2 インデックス用アドレス XOR 排他的論理和ゲート 3 中央処理装置 4 キャッシュメモリ 5 TLBコントローラ 50 制御回路 51 PTEHレジスタ 52 PTELレジスタ 53 TTBレジスタ 54 TEAレジスタ 55 MMUCRレジスタ SV シングルバーチャルビット SZ サイズビット IX インデックスモードビット RC ランダムカウンタ MD モードビット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 成田 進 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所半導体事業部内

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 論理アドレス空間を、複数の論理ページ
    に分割し、ページ単位に論理アドレスを物理アドレスへ
    変換する仮想記憶機能をサポートするデータ処理装置で
    あって 論理ページのサイズがページ毎に設定可能とされ、且
    つ、サイズが設定可能にされる複数の論理ページに対し
    て共通に利用されるバッファメモリを有し、上記バッフ
    ァメモリは、論理ページ番号と物理ページ番号との対応
    情報を記憶するための記憶領域を夫々有し、共通のイン
    デックスアドレスによってアクセスされる複数バンクを
    有するものであることを特徴とするデータ処理装置
  2. 【請求項2】 上記設定可能にされる論理ページの最大
    サイズは、最小サイズの2のべき乗数倍にされ、上記バ
    ッファメモリのバンクの数は上記2のべき乗数以上にさ
    れて成るものであることを特徴とする請求項1記載のデ
    ータ処理装置。
  3. 【請求項3】 上記バッファメモリは、論理ページのサ
    イズに拘わらずに、設定可能な複数のページのサイズの
    うち最大サイズの論理ページアドレスにおける下位側複
    数ビットがインデックスアドレスとされるものであるこ
    とを特徴とする請求項2記載のデータ処理装置。
  4. 【請求項4】 上記バッファメモリは、論理ページ番号
    に対応する論理ページのサイズを示すための記憶領域を
    備え、そのサイズに応じてヒット判定に反映されるべき
    アドレス比較のビット数を変化させる制御回路を備えて
    成るものであることを特徴とする請求項3記載のデータ
    処理装置。
  5. 【請求項5】 前記論理ページ番号と物理ページ番号と
    の対応情報を記憶する記憶領域は、最大論理ページサイ
    ズにおける論理ページ番号と最小論理ページサイズにお
    ける論理ページ番号との差ビットを保有する領域を有
    し、前記制御回路は論理ページのサイズ情報に応じて前
    記差ビットに対するアドレス比較をヒット判定に反映さ
    せるか否かを制御するものであることを特徴路する請求
    項4記載のデータ処理装置。
  6. 【請求項6】 仮想記憶をサポートするデータ処理装置
    であって、 論理ページ番号と物理ページ番号との対応情報を記憶す
    るための記憶領域を夫々有し、共通のインデックスアド
    レスによって、アクセスされる複数バンクを持つセット
    アソシアティブ方式のキャッシュメモリによって構成さ
    れたバッファメモリと、 上記バッファメモリに対するインデックスアドレスの生
    成手法を可変とする手段と、を備えて成るものであるこ
    とを特徴とするデータ処理装置。
  7. 【請求項7】 上記可変とする手段は、論理アドレスの
    一部を当該論理アドレスを利用するプロセスの番号の情
    報によって修飾する手段と、この手段によって得られた
    結果又は当該論理アドレスの一部のみの何れをインデッ
    クス用アドレスに採用するかを指示する手段と、を備え
    て成るものであることを特徴とする請求項6記載のデー
    タ処理装置。
  8. 【請求項8】 仮想記憶をサポートするデータ処理装置
    であって、 論理ページ番号と物理ページ番号との対応情報を記憶す
    るための記憶領域を夫々有し、共通のインデックスアド
    レスによって、アクセスされる複数バンクを持つセット
    アソシアティブ方式のキャッシュメモリによって構成さ
    れたバッファメモリと、 上記バッファメモリの複数バンクの中から記憶情報を置
    換すべきバンクをソフトウェアの実行によって任意に指
    定することが可能にする中央処理装置と、を備えて成る
    ものであることを特徴とするデータ処理装置。
  9. 【請求項9】 記憶情報を置換すべきバンクを任意に指
    定するための情報が上記中央処理装置によるソフトウェ
    アの実行によって設定されるレジスタを更に備えて成る
    ものであることを特徴とする請求項8記載のデータ処理
    装置。
  10. 【請求項10】 仮想記憶をサポートするデータ処理装
    置は、 論理ページ番号と物理ページ番号との対応情報を記憶す
    るための記憶領域を夫々有し、共通のインデックスアド
    レスによって、アクセスされる複数バンクを持つセット
    アソシアティブ方式のキャッシュメモリによって構成さ
    れたバッファメモリと、 上記複数バンクの中から記憶情報を置換すべきバンクの
    指定を、一定の規則に従って行うハードウェア手段と、 当該ハードウェア手段によるバンクの指定をソフトウェ
    アの実行によって任意に変更することが可能な中央処理
    装置と、を備えて成るものであることを特徴とするデー
    タ処理装置。
  11. 【請求項11】 上記ハードウェア手段は、計数手段を
    有し、その計数手段のビット数の2のべき乗数が上記バ
    ッファメモリのバンクの数に一致され、 上記置換すべきバンクを指定する一定の規則は、バッフ
    ァメモリに対する記憶情報の置換が必要になった場合
    に、その計数手段を1インクリメントし、何れのバンク
    もインデックスされた記憶領域に有効なデータを保持し
    ている場合にはそのインクリメントされた結果を置換す
    べきバンク番号とし、何れかのバンクがインデックスさ
    れた記憶領域に有効なデータを保持していない場合に
    は、そのバンクの番号を計数手段にセットし、セットさ
    れた番号のバンクを置換すべきバンクとするものであ
    り、 上記ソフトウェアの実行によって任意に値が変更される
    対象は、上記計数手段の各ビットとされるものであるこ
    とを特徴とする請求項10記載のデータ処理装置。
  12. 【請求項12】 仮想記憶をサポートするデータ処理装
    置であって、論理アドレス空間を論理ページに分割し
    て、論理ページ単位で、論理アドレスを物理アドレスへ
    変換するアドレス変換機構を備えたデータ処理装置であ
    って、 実行されるべき複数のプロセスの夫々が、論理空間の全
    域にわたる各々のアドレス変換情報を有するとき、プロ
    セス番号によって論理アドレスを修飾或いは拡張する多
    重仮想記憶と、実行されるべき複数のプロセスに論理ア
    ドレス空間の一部が排他的に割り当てられ、夫々のプロ
    セスがそれに割り当てられた論理アドレス空間のアドレ
    ス変換情報を有するとき、プロセス番号によって論理ア
    ドレスを修飾或いは拡張しない単一仮想記憶とを有し、
    上記多重仮想記憶と上記単一仮想記憶とを選択するため
    の選択回路を有して成るものであることを特徴とするデ
    ータ処理装置。を含む。
  13. 【請求項13】 上記多重仮想記憶におけるプロセス番
    号は、単一仮想記憶におけるメモリ保護情報として使用
    されるものであることを特徴とする請求項12記載のデ
    ータ処理装置。
  14. 【請求項14】 多重仮想記憶と単一仮想記憶との何れ
    を選択するかの情報を保持するレジスタを更に含み、 上記レジスタの情報は、中央処理装置がソフトウェアを
    実行することによって任意に設定されるものであること
    を特徴とする請求項13記載のデータ処理装置。
  15. 【請求項15】 中央処理装置の論理アドレス空間を論
    理ページ単位に分割して、ページ単位で、論理アドレス
    を物理アドレスへ変換する、仮想記憶をサポートするデ
    ータ処理装置であって、 上記中央処理装置の動作モードとして特権モード又はユ
    ーザモードを指示するモードビットと、 複数のプロセスの夫々が論理空間の全域にわたる各々の
    アドレス変換情報を有するときにはプロセス番号によっ
    て論理アドレスを修飾或いは拡張する多重仮想記憶を、
    また、複数のプロセスに論理アドレス空間の一部が排他
    的に割り当てられ夫々のプロセスがそれに割り当てられ
    た論理アドレス空間のアドレス変換情報を有するときに
    はプロセス番号によって論理アドレスを修飾或いは拡張
    しない単一仮想記憶を指示する制御ビットと、 プロセス番号、該プロセス番号に対応される論理ページ
    番号と物理ページ番号との対応情報、及び該プロセス番
    号に対応される論理ページ番号が他のプロセスと共有可
    能である否かを示す共有ビットを記憶するための記憶領
    域を夫々有し、共通のインデックスアドレスによって、
    アクセスされる複数バンクを持つセットアソシアティブ
    方式のキャッシュメモリによって構成されたアドレス変
    換バッファと、 前記共有ビットが非共有を指示するときは、プロセス番
    号を考慮してアドレス変換バッファにおけるヒット判定
    を行い、前記制御ビットで指示される単一仮想記憶にお
    いて中央処理装置がユーザモードとされ且つ共有ビット
    が非共有を指示しているときは、プロセス番号をメモリ
    保護情報として考慮する、前記アドレス変換バッファの
    制御回路と、を有するものであることを特徴とするデー
    タ処理装置。
  16. 【請求項16】 論理アドレス空間を、複数の論理ペー
    ジ単位に分割して、ページ単位で、論理アドレスを物理
    アドレスへ変換する仮想記憶機能をサポートするデータ
    処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
    ドレスとを有するところの論理アドレスを形成する処理
    装置、及び上記処理装置によって形成された上記論理ア
    ドレスを物理アドレスへ変換するアドレス変換バッファ
    を含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページのサイズを
    表すサイズ情報と、その論理ページ番号に対応した物理
    ページ番号とを含む複数のエントリを、各々、含む複数
    のバンク、 上記インデックスアドレスを受け、上記複数のバンクの
    各々から、上記インデックスアドレスによって指示され
    たエントリを選択する選択回路、及び選択されたエント
    リからの論理ページ番号と上記比較アドレスとを比較す
    る回路であって、比較すべき論理ページ番号のビット数
    が、選択されたエントリ内のサイズ情報によって決定さ
    れる比較回路、を含み、エントリ内の物理ページ番号と
    上記オフセットアドレスとから、上記物理アドレスを形
    成するものであることを特徴とするデータ処理装置。
  17. 【請求項17】 上記処理装置、及び上記アドレス変換
    バッファは、1つの半導体チップに形成されて成るもの
    であることを特徴とする請求項16記載のデータ処理装
    置。
  18. 【請求項18】 上記サイズ情報によって表される論理
    ページの複数のサイズの内、第1のサイズは、上記サイ
    ズ情報によって表される論理ページの第2のサイズに対
    して、2のN乗倍であり、上記バンクの数は、上記2の
    N乗個以上であることを特徴とする請求項17記載のデ
    ータ処理装置。
  19. 【請求項19】 上記処理装置によって、その内容を設
    定することが可能な第1制御ビットを更に有し、 上記データ処理装置は、更に、上記論理アドレスに含ま
    れる論理ページ番号によって指定される領域を使用する
    プロセスを特定するためのプロセス番号を出力するレジ
    スタを有し、 上記選択回路は、上記第1制御ビットが第1の状態へ設
    定されているとき、上記インデックスアドレスを上記プ
    ロセス番号の一部で修飾し、修飾されたインデックスア
    ドレスを用いてエントリを選択し、上記第1制御ビット
    が第2の状態へ設定されているとき、上記インデックス
    アドレスを用いてエントリを選択するものであることを
    特徴とする請求項17記載のデータ処置装置。
  20. 【請求項20】 上記選択回路は、上記インデックスア
    ドレスと上記プロセス番号の一部とを受ける排他的論理
    回路と、上記第1制御ビットの内容に従って、上記排他
    的論理回路の出力又は上記インデックスアドレスをデコ
    ードするデコーダとを有して成るものであることを特徴
    とする請求項19記載のデータ処理装置。
  21. 【請求項21】 上記エントリは、上記プロセス番号と
    比較されるべきプロセス番号を、更に有するものである
    ことを特徴とする請求項19記載のデータ処理装置。
  22. 【請求項22】 上記処理装置によって、その内容が設
    定可能な第2制御ビットを更に有し、 上記インデックスアドレスによって選択されたところの
    各々のエントリに、上記論理アドレスに対応する有効な
    論理アドレスが保持されていないとき、上記第2制御ビ
    ットによって、上記複数のバンクの内のバンクを指定す
    る選択回路を含み、 上記選択回路によって指定されたバンクにおいて、上記
    インデックスアドレスによって指定されるエントリに、
    上記論理アドレスに対応する物理アドレスを書き込み、
    アドレス変換バッファのリプレースを行うものであるこ
    とを特徴とする請求項17記載のデータ処理装置。
  23. 【請求項23】 上記データ処理装置は、更に、上記論
    理アドレスに含まれる論理ページ番号によって指定され
    る領域を使用するプロセスを特定するためのプロセス番
    号を保持することが可能なレジスタを有し、 上記エントリは、更に、それに含まれる論理ページ番号
    によって指定される領域を使用するプロセスを特定する
    ためのプロセス番号を保持することが可能なフィールド
    と、上記領域が複数のプロセス間で共用されるか否かを
    示す共用情報とを有し、 上記比較回路における比較に、上記レジスタの内容と上
    記フィールドの内容との比較を取り込むか否かが、上記
    共用情報によって決定されるものであることを特徴とす
    る請求項17記載のデータ処理装置。
  24. 【請求項24】 論理アドレス空間を、複数の論理ペー
    ジ単位に分割して、ページ単位で、論理アドレスを物理
    アドレスへ変換する仮想記憶機能をサポートするデータ
    処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
    ドレスとを有するところの論理アドレスを形成する処理
    装置、 プロセスを特定するためのプロセス番号を出力する回
    路、 上記処理装置によって、その内容が設定され、設定され
    た内容に従ってインデックスを特定するための情報を出
    力する回路、及び上記処理装置によって形成された上記
    論理アドレスを物理アドレスへ変換するアドレス変換バ
    ッファを含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページ番号に対応
    した物理ページ番号とを含む複数のエントリを、各々、
    含む複数のバンク、 上記インデックスアドレス、上記プロセス番号、及び上
    記インデックス特定情報を受け、上記インデックス特定
    情報の内容に従って、上記インデックスアドレス、又は
    上記インデックスアドレスを上記プロセス番号の一部で
    修飾することにより得られたインデックスアドレスによ
    って、上記複数のバンクの各々から、エントリを選択す
    る選択回路、及び選択されたエントリからの論理ページ
    番号と上記比較アドレスとを比較する比較回路、を含
    み、エントリ内の物理ページ番号と上記オフセットアド
    レスとから、上記物理アドレスを形成するものであるこ
    とを特徴とするデータ処理装置。
  25. 【請求項25】 論理アドレス空間を、複数の論理ペー
    ジ単位に分割して、ページ単位で、論理アドレスを物理
    アドレスへ変換する仮想記憶機能をサポートするデータ
    処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
    ドレスとを有するところの論理アドレスを形成する処理
    装置、 上記処理装置によって、その内容が設定されるバンク指
    示回路、及び上記処理装置によって形成された上記論理
    アドレスを物理アドレスへ変換するアドレス変換バッフ
    ァを含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページ番号に対応
    した物理ページ番号とを含む複数のエントリを、各々、
    含む複数のバンク、 上記インデックスアドレスを受け、上記複数のバンクの
    各々から、上記インデックスアドレスによって指示され
    たエントリを選択する選択回路、 選択されたエントリからの論理ページ番号と上記比較ア
    ドレスとを比較する比較回路、及び上記比較回路によっ
    て、選択されたエントリに、上記論理アドレスに対応す
    る有効な論理アドレスが保持されていないことが判明し
    たとき、上記バンク指示回路により指示されているバン
    クを、エントリのリプレースのために指示する選択回路
    を含み、エントリ内の物理ページ番号と上記オフセット
    アドレスとから、上記物理アドレスを形成するものであ
    ることを特徴とするデータ処理装置。
  26. 【請求項26】 論理アドレス空間を、複数の論理ペー
    ジ単位に分割して、ページ単位で、論理アドレスを物理
    アドレスへ変換する仮想記憶機能をサポートするデータ
    処理装置であって、 インデックスアドレス、比較アドレス及びオフセットア
    ドレスとを有するところの論理アドレスを形成する処理
    装置、 プロセスを特定するためのプロセス番号が設定可能なレ
    ジスタ、及び上記処理装置によって形成された上記論理
    アドレスを物理アドレスへ変換するアドレス変換バッフ
    ァを含み、 上記アドレス変換バッファは、 各々が、論理ページ番号と、その論理ページ番号に対応
    した物理ページ番号と、上記論理ページ番号によって指
    定される領域を使用するプロセスを特定するためのプロ
    セス番号を保持することが可能なフィールドと、上記領
    域が複数のプロセス間で共用されるか否かを示す共用情
    報とを含む複数のエントリを、各々、含む複数のバン
    ク、 上記インデックスアドレスを受け、上記複数のバンクの
    各々から、インデックスアドレスによって指示されたエ
    ントリを選択する選択回路、及び選択されたエントリか
    らの論理ページ番号と上記比較アドレスとを比較する回
    路であって、上記レジスタの内容と上記フィールドの内
    容との比較も行うか否かが、上記共用情報によって決定
    される比較回路、を含み、エントリ内の物理ページ番号
    と上記オフセットアドレスとから、上記物理アドレスを
    形成するものであることを特徴とするデータ処理装置。
JP24087195A 1994-09-09 1995-08-25 データ処理装置 Expired - Fee Related JP3740195B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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