JP2005108262A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2005108262A
JP2005108262A JP2005000091A JP2005000091A JP2005108262A JP 2005108262 A JP2005108262 A JP 2005108262A JP 2005000091 A JP2005000091 A JP 2005000091A JP 2005000091 A JP2005000091 A JP 2005000091A JP 2005108262 A JP2005108262 A JP 2005108262A
Authority
JP
Japan
Prior art keywords
address
logical
virtual
processing unit
central processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005000091A
Other languages
English (en)
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005000091A priority Critical patent/JP2005108262A/ja
Publication of JP2005108262A publication Critical patent/JP2005108262A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract


【課題】 アドレス変換機構におけるアドレス変換対のリプレース対象に自由度を持たせる。
【解決手段】 仮想記憶をサポートするデータ処理装置は、論理ページ番号(VPN)と物理ページ番号(PPN)との対応情報を記憶するための記憶領域を夫々供え、夫々のインデックスアドレスが共通化された複数バンク(11〜14)を持つ4ウェイ・セットアソシアティブ方式のキャッシュメモリから成るバッファメモリ(1)を有し、キャッシュミスなどの発生によって、これらの複数バンクの中から記憶情報を置換すべき場合に、当該置換されるべきセットは、中央処理装置によるソフトウェアの実行によって任意に指定可能にされる。例えば、上記バンクを任意に指定するための2ビットの情報がレジスタ(MMUCR.RC)に設定される。これに設定された値が解読されることにより4個のバンクの中から一つを選ぶ信号(BSK1〜BSL4)が形成される。
【選択図】 図4

Description

本発明は、アドレス変換機構を有するデータ処理装置に関し、特に、アドレス変換機構として、セットアソシアティブ方式のキャッシュメモリを利用したデータ処理装置に係り、更に述べるならば、そのアドレス変換手法の多様化を企図したものであり、例えばマイクロコンピュータに適用して有効な技術に関する。
ユーザが実メモリを意識せずに、オペレーティングシステム(以下OSとも記す)がメモリ管理を行う分野では、データ処理装置がアドレス変換機構をサポートする必要がある。アドレス変換機構とは、仮想記憶を実現するために、中央処理装置(CPU)により形成された論理アドレスを物理アドレスに変換する機構である。このアドレス変換機構を高速に実行するために、論理アドレスと物理アドレスとの変換対を保持するアドレス変換バッファ(Translation lookaside buffer、以下単にTLBとも記す)を、中央処理装置とともにデータ処理装置に内蔵する技術が採用される。アドレス変換バッファは、例えば、最近使用された論理アドレスと物理アドレスとの変換対を保持する連想記憶構造のバッファメモリとして構成される。連想記憶構造のバッファメモリとしては、各メモリセルに比較のための回路構成を備えたCAM(Content Addressable Memory)から成るフルアソシアティブメモリ、汎用のランダムアクセスメモリを利用して比較的高いヒット率を実現できるセットアソシアティブ形式の連想メモリなどを利用することができる。尚、連想記憶形式のアドレス変換バッファについて記載された文献の例としてはにから発行された第287頁及び第288頁がある。
「超高速MOSデバイス」,日本,株式会社培風館,昭和61年2月10日,p.287−288
本発明者は、このようなアドレス変換バッファにつき、ユーザの要求仕様に応えることができ、良好な使い勝手を実現するという点について検討したところ以下のような問題点を見出した。
(1)仮想記憶をサポートするアドレス変換機構においては、論理アドレス空間を論理ページと呼ばれる単位に分割して、そのページ単位に物理アドレスへのアドレス変換を行う。一方、システムに、実際に実装される実メモリ(物理メモリ)の全記憶容量が少ないような場合には、論理ページのサイズを比較的小さくして、各プロセスによるメモリの利用効率を向上させたいという要求などがある。例えば、実行されるべきタスクが、比較的小さなサイズのプログラムで構成される場合、そのタスクに割り当てられる論理ページのサイズが比較的大きいと、これに対応して、そのタスクを実行するための物理ページのサイズも比較的大きくなってしまう。そのため、必要以上の記憶空間が、タスクに割り当てられることになり、メモリの利用効率が低下する。特に、実メモリの記憶容量が比較的小さい場合には、論理ページのサイズを小さくして、実メモリの利用効率が低下するのを防ぐことが望まれる。このような要求に、適宜対応できるようにするには、論理ページのサイズを可変にすることが望ましい。ところが、論理ページのサイズを可変にすると、一定の論理空間において論理ページを規定するための情報のビット数が変化される。その結果、アドレス変換バッファから情報を連想的に検索するための比較対象情報のビット数やビット位置が、論理ページサイズによって変化されなければならない。これに対処するために、アドレス変換バッファにCAMから成るフルアソシアティブ形式を採用することが考えられる。このようにすれば、各メモリセルが比較回路を備えていることから特別な考慮を要することなく、比較的簡単に、論理ページの可変化を実現できる。しかしながら、各メモリセルが比較回路を備えているためセットアソシアティブ形式のアドレス変換バッファに比べてチップ専有面積と消費電力が共に倍増するという欠点が有る。
(2)セットアソシアティブ形式のアドレス変換バッファにおいては、複数セット存在するバンクの数、即ちウェイ数を増やせば一つのインデックスアドレスに対して保持できるエントリ数を増やして、ヒット率を向上させることができる。例えば4ウェイ・セットアソシアティブ形式の場合には、一つのインデックスアドレスに対して最大4個のエントリを保持できる。しかしながら、複数のプロセスの夫々が論理空間の全域にわたるアドレス変換情報を有し、プロセス番号によって論理アドレスを修飾或いは拡張する多重仮想記憶を行う場合、比較的多くのプロセスが並列的に起動されると、夫々のプロセスが同一論理ページを利用する頻度が多くなる。各々のプロセスは、プロセス番号が互いに異なるため、一つのインデックスアドレスによって指示されるところの互いに異なるエントリに保持されることになる。そのため、プロセスの数が、ウエイの数を越えると、セットアソシアティブ形式であっても、ヒット率は相対的に低下することになる。したがって、多重仮想記憶において多くのプロセスが並列的に起動される利用形態においては、ヒット率の低下を抑えることができるように、その利用形態に応じてインデックス方法を選択可能にすることの必要性が見出された。
(3)目的とする変換対がアドレス変換バッファに格納されていない場合には、当該キャッシュミスに係る変換対(所望の変換対)が新たなエントリとしてアドレス変換バッファに追加される。このとき、インデックスされたエントリにおける変換対の全てが有効な変換対である場合には、変換対の置き換えが行われる。この置き換えのアルゴリズム(リプレースメントアルゴリズム)には、ランダム、最初にロードされたものからリプレースするFIFO、又は最後に参照されたものからリプレースするLRU(Least Recentry Used)などがある。しかしながら、リプレースメントアルゴリズムを固定化した場合には、データ処理の都合上、常に特定の変換対をアドレス変換バッファにエントリとして格納しておきたいという要求や、特定のアドレス変換対をリプレース対象にしたくないという要求には一切答えることができない。
(4)仮想記憶の形式には上記多重仮想記憶の他に、複数のプロセスに論理アドレス空間の一部が排他的に割り当てられる単一仮想記憶がある。使い勝手を向上させるという点においては、これらの双方をサポートできるようにすることが望ましい。
本発明の目的は、ユーザの要求仕様に応えることができて使い勝手の良好なアドレス変換機構を備えたデータ処理装置を実現することにある。
本発明の目的を、更に詳述すれば、次の通りである。チップ専有面積と電力消費量を増大させることなく複数のページサイズをサポートできるアドレス変換機構を備えたデータ処理装置を提供すること。
複数のインデックス方法をサポートし、それらからインデックス方法を選択できるアドレス変換機構を備えたデータ処理装置を提供すること。
アドレス変換対のリプレース対象に自由度を持たせることができるアドレス変換機構を備えたデータ処理装置を提供すること。
また、サポートできる仮想記憶形式についても自由度を持たせることができるアドレス変換機構を備えたデータ処理装置を提供すること。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
《複数ページサイズをサポート》 仮想記憶をサポートするデータ処理装置は、論理アドレス空間を論理ページと呼ばれる単位に分割して、そのページ単位で、論理アドレスを物理アドレスへ変換(アドレス変換)する。このデータ処理装置では、図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は、論理アドレスのビット12〜ビット31とされる。論理ページサイズが1KBのとき、論理アドレスのオフセットは、論理アドレスのビット0〜ビット9とされ、論理ページ番号vpnは、論理アドレスのビット10〜ビット31とされる。尚、本明細書において小文字で示されるvpn,ppn,asidは、アクセスに利用される論理ページ番号、物理ページ番号、プロセス番号とされ、大文字で示されるバッファメモリ(アドレス変換バッファ)のエントリもしくはページテーブルエントリとしての論理ページ番号VPN、物理ページ番号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毎にアドレスマッピングすれば全く影響を受けないようにすることができる。
TLBヒット/ミスを判定するために、各バンク11〜14に設けられた比較手段15においてヒット判定に反映されるべきアドレス比較のビット数は、論理ページサイズに応じて変化されなければならない。図1の例に従えば、論理ページサイズが1KBの場合には、論理ページサイズが4KBの場合に比べて、論理アドレスのビット10及びビット11も比較対象としなければならない。バッファメモリ1は、そのような比較対象のビット数を全てカバーできるように、論理ページ番号と物理ページ番号との対応情報(変換対)を記憶する領域のビット数が設定されている。バッファメモリ1においては、各変換対にそれがサポートする論理ページサイズを示すフィールドが設けられており、そのフィールドの値(サイズビット)SZに応じてヒット判定のためのアドレス比較のビット数が変化される。比較ビット数が変化される対象は、論理アドレスの論理ページ番号と、バッファメモリ内の変換対に含まれる論理ページ番号の双方とされる。hit1〜hit4は各バンク11〜14におけるヒット判定結果を通知するためのヒット信号であり、それらに基づいてTLBヒット/ミスが判定される。
複数ページサイズを選択的にサポートするデータ処理装置は、システムに実装される実メモリの全記憶容量が少ないような場合に、論理ページのサイズを比較的小さくして、各プロセスによるメモリの利用効率を向上させたいという要求にも容易に対応できる。このとき、最大論理ページサイズを最小サイズの2のべき乗数倍にし、セットアソシアティブ方式のバッファメモリのバンクの数をその2のべき乗数以上にすることは、インデックスアドレスの指定手法を最大論理ページサイズのものに統一しても、選ばれる論理ページのサイズに拘わらず、原理的には、どの論理ページ番号のエントリについても、同じ数だけエントリをバッファメモリに保有することが可能となる。論理ページのサイズを示すための情報を用いてヒット判定に反映されるべきアドレス比較のビット数を変化させることは、バッファメモリを連想的に検索するための比較対象情報のビット数やビット位置を論理ページのサイズによって変化させることを容易に実現する。複数ページサイズをサポートするバッファメモリをセットアソシアティブ形式のキャッシュメモリで実現することは、これをCAMで構成する場合に比べてチップ専有面積と消費電力を共に半減させる。
《複数のインデックス方法をサポート》 仮想記憶をサポートするデータ処理装置は、論理ページ番号と物理ページ番号との対応情報を記憶するための記憶領域を夫々有し、夫々が共通のインデックスアドレスによってアクセスされる複数バンクを持つセットアソシアティブ方式のキャッシュメモリによって構成されたバッファメモリを供える。そして、そのバッファメモリに対するインデックスアドレスの生成手法を可変とする手段を有する。例えば、複数のプロセスが存在し、夫々のプロセスが夫々のアドレス変換情報を有し、プロセス番号によってそれぞれのプロセスが区別される多重仮想記憶をサポートする場合、バッファメモリからエントリをインデックスするためのアドレス指定方法として、図2に例示されるように論理アドレスの一部(ビット12〜16)のみをデコードする手法と、図3に示されるようにその論理アドレスの一部(ビット12〜16)を現在のプロセス番号(asid)の一部によって修飾(XOR=排他的論理和)した結果をデコードする手法とを、レジスタMMUCR.IXの論理値にしたがって指示するようにできる。尚、図3,図2において、バッファメモリ1内の変換対に含まれる論理ページ番号VPNの情報はインデックスに利用されるvpn(16−12)に対応されるものが除かれて、VPN(31−17),VPN(11−10)として図示されている。ここで、vpn(16−12)の表記は論理アドレスのビット12〜ビット16を含む論理ページ番号の情報であることを意味する。VPN(31−17)の表記は論理アドレスのビット17〜ビット31に対応されるバッファメモリのエントリとしての論理ページ番号の情報であることを意味する。
複数のインデックス方法をサポートする手段によれば、多重仮想記憶において多くのプロセスが並列的に起動される利用形態においてヒット率の低下を抑えることができるように、その利用形態に応じてインデックス方法を選択可能にすることができる。論理アドレスの一部を当該論理アドレスを利用するプロセス番号(asid)によって修飾し、これを以てバッファメモリをインデックスすることにより、多重仮想記憶において多くのプロセスが並列的に起動される利用形態においてのヒット率の低下を抑えることが可能となる。
《リプレースの自由度》 仮想記憶をサポートするデータ処理装置は、図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)によるソフトウェアの実行によって任意に変更可能にされる。
上記ハードウェア手段は、図4に例示されるように、MMUCR.RCをランダムカウンタのような計数手段として備え、その計数手段のビット数の2のべき乗数が、上記バッファメモリ1のバンクの数(=4)と一致される。上記ハードウェア手段に含まれる制御回路CTRLは、バッファメモリ1に対する記憶情報の置換が必要になった場合、上記計数手段を1インクリメントし、何れのバンクの、インデックスされた記憶領域にも有効なデータが保持されている(インデックスされた各バンクの各エントリが、有効を示す”1”のバリッドビットVを有する)場合には、そのインクリメントされた結果を置換すべきバンク番号とする。これに対して、何れかのバンク内で、インデックスされた記憶領域に、有効なデータが保持されていない(インデックスされた何れかのエントリが、無効を示す”0”のバリッドビットVを有する)場合には、有効なデータを保持していないエントリを含むバンクの番号を計数手段にセットし、且つセットされた番号のバンクを置換すべきバンクとする。このような一定の規則に従って、置換すべきバンクの指定が行われる。このとき、上記計数手段の各ビットは、中央処理装置により実行されるソフトウェアによって、任意の値へ変更することが可能な対象とされている。
リプレースの自由度を向上させる手段によれば、バッファメモリの変換対を置き換えるためのリプレースメントアルゴリズムを固定化せず、置き換えるべきバンクをソフトウェアで任意に決定することが可能となる。これにより、データ処理の都合上、常に特定の変換対をアドレス変換バッファにエントリとして格納しておきたいという要求や、特定のアドレス変換対をリプレース対象にしたくないという要求に容易に答えることができる。ソフトウェアによってリプレースの対象を指示するレジスタを持つことは、ソフトウェアのアルゴリズム次第で、ランダム、FIFO、又はLRUなどにしたがってリプレースを行う自由度も保証できる。
《単一仮想記憶と多重仮想記憶のサポート》 仮想記憶をサポートするデータ処理装置は、論理アドレス空間を論理ページと呼ばれる単位に分割して、そのページ単位で、論理アドレスを物理アドレスへアドレス変換を行うためのアドレス変換機構を備える。このアドレス変換機構は、複数のプロセスの夫々が論理空間の全域にわたるアドレス変換情報を有するとき、プロセス番号(asid)によって論理アドレスを修飾或いは拡張する多重仮想記憶と、複数のプロセスに論理アドレス空間の一部が排他的に割り当てられ、夫々のプロセスがそれに割り当てられた論理アドレス空間のアドレス変換情報を有するとき、プロセス番号(asid)によって論理アドレスを修飾或いは拡張しない単一仮想記憶とを有し、該多重仮想記憶と該単一仮想記憶とを選択することが可能にされている。したがって図5に例示されるようにバッファメモリ内の各エントリには、論理ページ番号VPNと物理ページ番号PPNの変換対に加え、プロセス番号ASIDのフィールドが設けられている。このフィールドの内容は、単一仮想記憶か多重仮想記憶かで、その処理内容が相違されることになる。あるTLBエントリに含まれるプロセス番号に対応される論理ページが、他のプロセスと共有不可能とされているとき、多重仮想記憶においては、プロセス番号ASIDのフィールドの内容はバッファメモリに対する検索のヒット/ミス(TLBヒット/TLBミス)の判定に用いられる。即ち、この場合には、バッファメモリに格納されているエントリの論理ページ番号VPNの情報が、論理ページアドレスvpnの情報に一致すると共に、当該エントリのプロセス番号ASIDが現在のプロセスの番号asidに一致していなければTLBヒットとはされない。単一仮想記憶においては、プロセス番号ASIDのフールドの内容はメモリ保護情報として使用される。即ち、この場合には、プロセス番号の相違によってTLBミスが発生したとき、ソフトウェアによってTLBミスの原因がプロセス番号の相違によるものか、論理ページアドレスの相違によるものかが判別され、プロセス番号の相違による場合には、プロテクションエラーとして処理される。上記単一仮想記憶か多重仮想記憶かは、図6に例示されるレジスタMMUCRのビットMMUCR.SVの値によって指示される。このビットMMUCR.SVの値は、中央処理装置によって実行されるソフトウェアによって、任意に設定することができる。
単一仮想記憶と多重仮想記憶をサポートする手段によれば、アドレス変換機構の使い勝手を向上させることができる。特に、ソフトウェアを介して、何れを使うかを選択することができるようにして、一層使い勝手を向上させることができる。多重仮想記憶におけるプロセス番号(ASID)を単一仮想記憶におけるメモリ保護情報として使用することにより、単一仮想記憶を選択した場合におけるメモリ保護の完全化を容易に実現することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、代表的な一つの発明によればチップ専有面積と電力消費量を増大させることなく、複数のページサイズをサポートできるデータ処理装置を実現することができる。
代表的な別の一つの発明によれば、インデックス方法を選択できるアドレス変換機構を実現することができる。
代表的な更に別の一つの発明によれば、アドレス変換対のリプレース対象に自由度を持たせることができる。
代表的な更に別の一つの発明によれば、サポートできる仮想記憶形式についても自由度を持たせることができる。
それらにより、ユーザの要求仕様に応えることができて使い勝手の良好なアドレス変換機構を備えたデータ処理装置を実現することができる。
《マイクロコンピュータ》 図7には本発明に係るデータ処理装置の一実施例であるマイクロコンピュータの要部が示される。本実施例のマイクロコンピュータは、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板に形成されている。同図には、論理アドレスバスVABUS、物理アドレスバスPABUS、データバスDBUS、中央処理装置(CPU)3、キャッシュメモリ(CACHE)4、バッファメモリとしてのアドレス変換バッファ(TLB)1、及びTLBコントローラ(TLBC)5が代表的な回路ブロックとして図示されている。CPU3は図示しないプログラムメモリから命令をフェッチし、その命令記述に応じたデータ処理を行い、外部アクセスを要する場合には論理アドレスバスVABUSに論理アドレスを出力し、データバスDBUSを介してデータの入出力を行う。キャッシュメモリ4は、特に制限されないが、4ウェイ・セットアソシアティブ形式とされ、バンクに対するインデックスは論理アドレスバスVABUSから供給される論理アドレスの一部を用いて行われ、エントリのタグ部には物理アドレスが保有され、インデックスされたタグ部はその論理アドレスがアドレス変換バッファ1で変換されて物理アドレスバスPABUSに出力される物理アドレスと比較され、その比較結果に応じてキャッシュミス/ヒットを判定する。
本実施例のマイクロコンピュータは、論理アドレス空間を論理ページと呼ばれる単位に分割し、そのページ単位で、論理アドレスを物理アドレスへアドレス変換を行うための仮想記憶をサポートしている。上記アドレス変換バッファ1は、論理ページ番号VPNとこれに対応した物理ページ番号PPNとに関する変換対などをTLBエントリとして格納し、TLBコントローラ5は中央処理装置3が出力する論理アドレスをアドレス変換バッファ1などを用いて物理アドレスに変換する。上記アドレス変換バッファ1は、それぞれインデックスアドレスが共通化された4個のバンクを持つ4ウェイ・セットアソシアティブ方式のキャッシュメモリによって構成される。図面が複雑になるのを避けるために、図7には、代表的に1個のバンク11のみが図示されているが、実際には図1のようにバンク11と同様の別のバンク12〜14が紙面の表裏方向に配置されている。上記アドレス変換バッファ1、TLBコントローラ5、CPU3、及びアドレス変換とメモリ保護のためのシステムソフトウェア若しくはオペレーティングシステムによって、上記仮想記憶をサポートするアドレス変換機構が構成される。
ここで、予じめ、本実施例のマイクロコンピュータのアドレス空間について説明する。本実施例のマイクロコンピュータは、4GBの論理アドレス空間をサポートするために、中央処理装置3は、32ビットの論理アドレスを形成する。その論理アドレスは後述のプロセス番号(空間番号とも記す)asidによって拡張可能にされている。図8の(A)及び(B)には、サポートされている論理アドレス空間のアドレスマッピングが示される。これらの図において”Mapped”と示される領域は、アドレス変換バッファ(TLB)1を利用したアドレス変換の対象とされる領域である。H'FFFFFFFF(H'は16進数を意味する)〜H'80000000の領域は、特権モードにおいてアクセス可能な領域とされ、ユーザモードでのアクセスはアドレスエラーとされる。P4領域はコントロールスペースであり、周辺コントロールレジスタなどがマッピングされる。P1,P2領域はそれに対応される物理アドレスが固定とされる領域であり、アドレス変換バッファ1を利用したアドレス変換の対象とはされない。これらの領域P1,P2の論理アドレスは、一定の定数が加算又は減算されて、物理アドレスに変換される。したがって、特権モードにおいて、当該領域P1,P2をアクセスするときはTLBミスを初めとするアドレス変換に係る例外が生じない。特にP2領域はキャッシュメモリCACHEによるキャッシュの対象とされず、P1領域はキャッシュの対象とされている。
本実施例のマイクロコンピュータは、上述の様に、特権モードとユーザモードとを有し、特権モードで動作しているのか、ユーザモードで動作しているのかが、中央処理装置3に含まれるステータスレジスタSRのモードビットMDの値によって示される。MD=0は、ユーザモードで動作していることを表わし、MD=1は、特権モードで動作していることを表わす。図8の(A)及び(B)に示されているように、特権状態(特権モードが設定されている状態)は、ユーザ状態(ユーザモードが設定されている状態)でのアクセスではアドレスエラーとなるようなアドレス空間(P1からP4)を、アクセスでき、ユーザ状態では実行不可能な特権命令若しくはシステム制御命令を実行することができる、などという点においてユーザ状態と相違される。
図8の(A)及び(B)に示される4GBの論理アドレス空間の内、特に制限されないが、P0領域とP3領域は、論理ページと呼ばれる単位で、複数に分割され、分割されたページ単位で、論理アドレスは物理アドレスへ変換される。本実施例のマイクロコンピュータがサポートする論理ページのサイズは4KBと1KBの2種類とされている。これは、サポートされる論理ページの最大サイズ(=4KB)が最小サイズ(=1KB)の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が用いられる。論理アドレスを物理アドレスに変換する場合、当該論理アドレスの論理ページ番号に対応するエントリから物理ページ番号を取得し、当該論理アドレスのオフセット情報を物理ページ番号の下位側に付加して物理アドレスが得られる。
TLBミスなどが発生した際、アドレス変換バッファ1内のエントリへ取り込まれる情報(ページテーブルエントリ)は、予め、ソフトウエアにより形成され、図7には示されていない外部メモリ(例えば図22のメモリRAM)に記憶されている。すなわち、仮想記憶のためのページテーブルエントリは、論理ページ番号VPNと物理ページ番号PPNとの対応関係を示す変換情報やアクセスの属性などについての記述を含み、外部メモリに形成されるところのページテーブルに格納される。高速なアドレス変換ができるように、このページテーブルに格納されたエントリの一部が、上記TLB1内のバンク11〜14に格納される。外部メモリにおけるページテーブルのアドレスは、後で図6を用いて説明する変換テーブルレジスタ(TTB)53に、予めセットされる。TLBミスなどが発生した際には、この変換テーブルレジスタ53にセットされているベースアドレスと、ミスの際の論理ページ番号等を用いて、CPU3が、上記ページテーブルをアクセスして、その時の論理ページ番号に対応した物理ページ番号等を含むエントリを求めて、例えば、TLB1内のバンクへ求めたエントリを書き込む。これにより、その時の論理アドレスに対応した物理アドレスが形成される。
TLB1内の各バンクに格納されるエントリは、図5にその詳細が示されるように、便宜上アドレス部とデータ部に分けられている。アドレス部は、論理ページ番号の情報VPN(31−17),VPN(11−10)、エントリが有効であることを示すバッリドビットV(1ビット)、空間番号ASID(8ビット)、サイズビットSZ(1ビット)、及び共有ステータスSH(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によって論理アドレスを修飾或いは拡張するというものである。これに対して、単一仮想記憶とは、複数のプロセスに論理アドレス空間の一部が排他的に割り当てられる。言い替えるならば、単一仮想記憶とは、夫々のプロセスがそれに割り当てられた論理アドレス空間のアドレス変換情報を有するとき、プロセス番号asidによって論理アドレスの修飾或いは拡張がされない。このように、単一仮想記憶においては、複数のプロセス間で、排他的に論理アドレス空間が割り当てられるため、図20の(B)に示されるように、プロセスに割り当てられた論理アドレス空間毎にそれ固有のアドレス変換情報が存在する。そのため、アドレス変換テーブルは一つ存在するだけである。当該一つのアドレス変換テーブルを用いれば、ある論理アドレスAはそれに対応される物理アドレスDに一義的に変換される。これに対して多重仮想記憶においては、複数のプロセス間で、論理アドレス空間が相互に重複して割り当てられる。そのため、プロセス毎のアドレス変換情報は相互に別々のアドレス変換テーブルに含まれなければならない。したがって、ある論理アドレスAは相互に異なるアドレス変換テーブルi,jを介することによって異なる物理アドレスB,Cに変換されることになる。このとき変換に係る論理アドレスAがどのプロセスに属するかは、プロセス番号によって識別される。図20の(A)に従えば、多重仮想記憶においてアドレス変換テーブルiはプロセス番号iに対応され、アドレス変換テーブルjはプロセス番号jに対応される。プロセス番号は、互いに同じ論理アドレス空間を使う(アクセスする)ところの複数のプロセスにおける識別番号とみなすこともできる。
図19には、論理空間、変換情報、保護について、単一仮想記憶と多重仮想記憶との相違が示されている。この図面において、PRは、図9に示されている保護情報である。
図7において上記TLBコントローラ5は制御回路(CTRL)50、ページテーブルエントリ上位(PTEH)レジスタ51、ページテーブルエントリ下位(PTEL)レジスタ52、変換テーブルベース(TTB)レジスタ53、TLB例外アドレス(TEA)レジスタ54、及びコントロール(MMUCR)レジスタ55を備える。後で、図22を用いて説明するように、これらのレジスタは、CPU3に結合されており、少なくともTEAレジスタ54とMMUCRレジスタ55はCPU3によって直接リード/ライト可能にされる。その他のレジスタ51〜53もCPU3によって直接アクセス可能にされている。
図6に示されるようにPTEHレジスタ51,PTELレジスタ52はTLBミスなどにおいてTLB1のエントリを更新又は追加するためのページテーブルエントリを保有できるフィールドが備えられている。PTEHレジスタ51には、ソフトウエアの実行によって、中央処理装置3から、現在のプロセスの空間番号asidがセットされる。また、PTEHレジスタ51は、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に示されるようにasid(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〜ビット16すなわちvpn(16−12)とを入力する排他的論理和ゲートXORによって形成される。図7のセレクタ18は排他的論理和ゲートXORでハッシングされた出力又はvpn(16−12)の何れかをインデックス用アドレスとして選択する。その選択制御はインデックスモードビットIXの値にしたがって決定され、CTRL50から出力される選択信号550にて行われる。
図7において、CPU3から出力される論理アドレスの論理ページ番号vpn(31−10)のうち、ビット12〜ビット16に相当されるvpn(16−12)は、TLB内の4個のバンク11〜14に共通なインデックスアドレス2の生成に利用される。上記のように、論理ページ番号は5ビットで表わされるため、共通なインデックスアドレス2によって、夫々のバンクにおける32個のエントリから、それぞれ一つづつが選択されて、読出される。選択される夫々のエントリは、情報として、VPN(31−17),VPN(11−10),ASID,SH,SZ,V,PPN(31−10),PR,C,Dを含む。選択され、読み出されたエントリにおける情報の内、読出されたVPN(31−17)は、コンパレータ151によって、中央処理装置3から出力されている論理アドレスのvpn(31−17)と比較され、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ヒット信号である。TLBミスが発生したときには、アドレス変換バッファ1のエントリを置換する処理が行われる。この置換処理において、置換されるべきエントリの内容は、PTEHレジスタ51,PTELレジスタ52に保持され、PTEHレジスタ51,PTELレジスタ52からTLB1へ置換されるべき情報が供給され、TLB1に格納される。置換されるべきエントリを選択するためのインデックス手法は、上述のリード時におけるインデックス手法と同じであるが、どのバンク(セット)に当該エントリを格納するかはMMCCRレジスタ55のRCの値(MMUCR.RC)によって決定される。
図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)とCPU3からのvpn(11−10)との比較は行う必要がない。そのため、サイズビットSZ=1の状態では、アンドゲート1541の出力信号hit1には上記アドレスビット11,10の比較結果は反映されない。サイズビットSZが0にされ、1KBの論理ページサイズが指示された場合には、TLBミス/ヒット判定のために、アドレスビット11,10の比較動作が必要とされ、その比較結果が信号hit1に反映される。
前記オアゲート1543は、インデックスされたTLBエントリに含まれるプロセス番号ASIDと現在のプロセス番号(PTEHレジスタ51から出力されているプロセス番号)asidとの比較結果であるコンパレータ153の出力と、上記インデックスされたTLBエントリからの共有ビットSHとを入力する。この共有ビットSHが、1にされている場合、”プロセス間での論理ページの共有”の状態が指示されていることになる。そのため、この状態ではTLBミス/ヒット判定のためのアドレス比較において、プロセス番号間の比較が必要とされないから、共有ビットSH=1の状態では、アンドゲート1541の出力信号hit1にはプロセス番号間の比較結果は反映されない。上記インデックスにおける共有ビットSHが0にされ、”プロセス間での論理ページの非共有”の状態が指示されている場合には、TLBミス/ヒット判定のためのアドレス比較において、プロセス番号間の比較が必要とされるから、共有ビットSH=0の状態では、アンドゲート1541の出力信号hit1にはプロセス番号間の比較結果が反映される。
単一仮想記憶においては、TLBエントリが保有する上記プロセス番号ASIDが、メモリ保護情報(ドメイン番号)として利用される。単一仮想記憶でも多重仮想記憶でも共有ビットSHによって共有又は非共有が指示される。非共有が指示されているとき、多重仮想記憶においては現在のプロセス番号asidとTLBエントリに含まれるプロセス番号ASIDとの不一致はTLBミスとされる。これに対して、非共有が指示されているとき、単一仮想記憶においては、プロセス番号asid,ASID間の不一致は、TLBプロテクト違反例外の検出に利用される。それを実現するために、制御回路50は、アクセス権チェックのための一つの論理として、図21に示されるアンドゲート502を有する。このアンドゲート502は、前記オアゲート1543の反転出力、MMUCRレジスタからのシングルバーチャルビットSV、及び中央処理装置3内のステータスレジスタ内のモードビットMDの反転信号を受けて、TLBプロテクト違反例外の検出信号503を形成する。この検出信号503は、ハイレベルがTLBプロテクト違反例外の検出レベルである。信号503によってTLBプロテクト違反例外が検出されるのは、プロセス番号が不一致、且つ非共有の状態(オアゲート1543の出力がローレベル)で、単一仮想記憶(SV=1)、ユーザモード(MD=0)の条件が満足されたときである。即ち、単一仮想記憶において、プロセス番号が不一致、且つ非共有の場合には、実質的にTLBミスになるが、この状態をメモリ保護のためのTLBプロテクト違反例外とする。モードビットMD=1によって指示される特権状態では、別のプロセスに割り当てられている論理ページもアクセスできるようにすることが望ましいため、MD=1の特権状態においてはTLBプロテクト違反例外を検出しないようにしている。
図10は、制御回路50によるアドレス変換動作の制御を示すメインフローチャートである。この制御は、アドレス変換バッファ1のインデックス処理L1、アドレス比較とVビットのチェック処理L2、アクセス権のチェック処理L3、物理アドレスの生成処理L4に大別される。これらの処理はCPU3及びコントローラ5によって制御される。
アドレス変換バッファ1のインデックス処理L1において、それに利用される論理アドレスは論理ページのサイズに拘わらずvpn(16−12)とされる。このインデックス処理において、利用される論理アドレスを、排他的論理和ゲートXORを用いて、空間番号asidの一部asid(4−0)でハッシングしたものをインデックス用アドレスとして使用するか否かが、MMUCRレジスタ55のIXの値(MMUCR.IX)によって決定される。図11に示されるように、MMUCR.IXが1の場合には、上記利用される論理アドレスがasid(4−0)にてハッシングされ、インデックス用アドレスとされる。これに対して、MMUCR.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を含む。
アドレス比較とVビットのチェック処理L2において実行されるアドレス比較の手順の一例が、図12に示されている。ここに示されている手順は、図21に示されている制御ロジック154の論理に基づいているが、空間番号ASIDの比較に関してはTLBプロテクト違反例外の検出についても考慮して示されている。ヒット信号hit1〜hit4に反映されるべきアドレス比較の対象をどのようにするかは、次のようにして決められる。まず、SHが1か否によって、アドレス比較の対象として、空間番号を考慮するか否かが大別され、SZが0か否かによって、アドレス比較の対象として、VPN(11−10)を考慮するか否かが決定される。特に、単一仮想記憶(SV=1)においては、空間番号ASIDのフィールド内データをメモリ保護情報として用いるが、前述のように特権モードにおいては別のプロセスに割り当てられた論理ページも現在のプロセスからアクセスすることができるようにするため、言い換えるならば、TLBプロテクト違反例外を検出しないようにするために、単一仮想記憶であって、且つ特権モード(SV=1且つMD=1)のときには比較対象から空間番号ASIDのフィールドを除外するようにしている。
インデックスによって、TLB1からTLBエントリがリードされ、そのリードされたTLBエントリ内の共有ステータスSHに基づいて、アドレス比較の際に空間番号ASIDを考慮するか否かが判定される。SH=1(共有)の場合、空間番号ASIDはアドレス比較の対象として考慮されず、SH=0(非共有)の場合、空間番号ASIDはアドレス比較の対象として考慮される。また、MMUCRレジスタ55のSVの値(MMUCR.SV)が1にされ、単一仮想記憶が設定されている場合であって、ステータスレジスタSRのモードビットSR.MDが1になっている場合(中央処理装置が、特権モードで動作している場合)には、空間番号ASIDはTLBプロテクト違反例外の検出には考慮されない。特権モードの性質上、別のプロセスに割り当てられている論理ページを、現在のプロセスからアクセスできるようにするためである。
本実施例においては、TLBエントリ内のサイズビットSZの値に従って、1KBまたは4KBのサイズが論理ページのサイズとして選択される。論理ページのサイズが1KBの場合には、各バンクでインデックスされたそれぞれのTLBエントリ内の情報VPN(31−17)及びVPN(11−10)が、論理アドレスの対応ビットvpn(31−17),vpn(11−10)との比較対象とされる。論理ページサイズが4KBの場合には、各バンクでインデックスされたそれぞれのTLBエントリ内の情報VPNの内、VPN(11−10)と、これに対応する論理アドレスのvpn(11−10)とは比較判定の対象から除外される。
上述の様にして、比較対象(VPN(31−17,11−10),vpn(31−17,11−10),ASID,asid)が定められ、比較が行われる。この比較の結果として、何れかのバンクにおいて一致すると、その一致したバンクからヒット信号が出力される。各バンクのヒットは、ヒット信号hit1〜hit4として出力され、TLBヒットとされる。これに対して、いずれのバンクからもヒット信号が出力されない場合、すなわち不一致の場合には、TLBミス例外が検出されることになる。その結果は、信号501にてCPU3にも通知され、CPU3によって、後で述べるTLBミス例外の処理が行われる。
また、インデックスされた各バンクのエントリに対しては、そのエントリ内のVビットについてのチェックも行われる。すなわち、インデックスによって、リードされたエントリ内のVビットに対してチエックが行われる。TLBヒットの場合に、ヒットに係るエントリ内のVビットが0(無効)のときは、TLBインバリッド例外が検出され、これがCPU3に通知される。この例外処理の内容は後述する。TLBミスの場合におけるVビットの判定結果はTLBミスに係る後述のエントリリプレースにて利用される。
アクセス権のチェック処理L3においては、インデックスによりリードされたTLBエントリ内の情報PRの内容と、MMUCRレジスタ内のビットMMUCR.SVの内容とに従ってアクセス権がチェックされる。例えば図13に示されるように、先ず、MMUCRレジスタ内のビット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イニシャルページライト例外処理の内容については後述する。
物理アドレスの生成処理L4においては、インデックスされたTLBエントリのサイズビットSZにしたがって、図14のように物理アドレスが生成される。物理アドレスpaを形成するために使われる論理アドレスvaのオフセットva(9−0)は、図に示されていないが、制御回路(CTRL)50内のラッチ回路に保持されている。SZ=0(論理ページサイズが1KB)のときは、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ビットが無視されたPPN(31−12)が物理ページアドレスpa(31−12)とされ、オフセットとしてのアドレス(11ー0)が下位側に付加されて、物理アドレスpaが生成される。
図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によるソフトウェアの実行によって、任意にその値を変更することが可能である。そのため、上述の様にして、このレジスタに設定されたバンク番号を、更に、ソフトウエアによって変更することもできる。そのため、任意のバンクをリプレースの対象にすることができる。
図16には、上記TLBミス例外に対処するために、TLBエントリを更新するためのTLBミスハンドラによる処理手順が示されている。TLB1のエントリの更新にはロードTLBインストラクションが利用される。このロードTLBインストラクション(LDTLBとも表す)が、CPU3によって実行されることにより、次の処理が行われる。すなわち、PTEH,PTELの各レジスタ51,52の値を、TLB1のエントリへ書き込む処理が行われる。この場合、書き込み対象のエントリは、特に制限されないが、MMUCR.RCにセットされているバンク番号により指示されるバンク内のエントリであって、PTEHレジスタ51内に保持されている論理アドレス(ビット12ービット16)をインデックスアドレスとして指示されるエントリである。上記TLBミス例外が検出されると、CPU3から出力されているところの、その時の論理アドレスの一部(ビット10からビット31)は、上記PTEHレジスタ51に保持される。これにより、TLBミス例外が発生した時のインデックスアドレスと同じ値のインデックスアドレスによって、リプレースの際のエントリが指示される。但し、リプレースに使われるバンクは、MMUCR.RCにセットされているバンク番号によって決定されることになる。
TLBミス例外に対処するために、図22に示されている様な外部メモリRAMに、予め、ページテーブルが、ユーザによって形成される。このページテーブルには、特に制限されないが、複数の論理アドレスに各々対応した複数の変換情報(ページテーブルエントリ)が、所定の規則にしたがって、格納される。このページテーブルのアドレス、例えば、その開始アドレスは、ベースアドレスとして、レジスタTTB53に、予め格納される。このページテーブルは、特に制限されないが、開始アドレスとしての上記ベースアドレスと論理アドレスとに基づいて、当該論理アドレスに対応したページテーブルエントリ(対応する物理ページ番号ppn、バリッドビットv、プロテクションビットpr、サイズビットsz、キャッシャブルビットc、ダーテイビットd、ステータスshを含む)を検索することができるような規則で、複数の論理アドレスに各々対応した複数のページテーブルエントリが、配置されている。
上記TLBミスハンドラは、ユーザによって、記述される。TLBミス例外が検出されると、CPU3によって、このTLBミスハンドラが起動される。これにより、PTEHレジスタ51にはTLBミス発生時の論理アドレスの情報vpn(10ー31)が格納される。この時に、PTEHレジスタ51には、TLBミス発生時の空間番号asidも格納されるようにしても良い。また、CPU3は、レジスタTTB53に格納されているベースアドレスと、TLBミス発生時の論理アドレスとを用いて、外部メモリ上の上記ベーステーブルを検索する。この検索によって、TLBミス発生時の論理アドレスに対応するページテーブルエントリが、発見されると、この発見されたページテーブルエントリの内容は、PTELレジスタ52にロードされる。次いで、ロードTLBインストラクションが発行されてPTEH,PTELの各レジスタ51,52の値によってTLB1のエントリが更新される。従って、PTEHレジスタ51に保持されているところの、TLBミス発生時の論理アドレスの情報vpn,asidは、TLBエントリの一部VPN,ASIDとして採用されることになる。また、この時、リプレースされるエントリは、上記したように、、MMUCR.RCにセットされているバンク番号によって指示されているバンク内のエントリであって、TLBミス発生時のインデックスアドレスと同じインデックスアドレスによって指示されるエントリである。
上記TLBインバリッド例外は、TLBヒットにおけるページフォルトの場合に発生する。この例外に対しては、例えば、先ず、外部メモリ上のページテーブルエントリを回復し、そのページテーブルエントリ内のVビットを論理値1にする。この後、当該ページテーブルエントリを外部メモリからPTELレジスタ52にロードし、上述のロードTLBインストラクションを発行して、PTEH,PTELの各レジスタ51,52の値によってTLB1の該当エントリを更新する。
上記TLBイニシャルページライト例外については、それが検出されると、外部メモリ上の対応するページテーブルエントリのDビットを論理値1にし、当該ページテーブルエントリを外部メモリからPTELレジスタ52にロードした後、上述のロードTLBインストラクションを発行してPTEH,PTELの各レジスタ51,52の値によってTLB1の該当エントリを更新する。尚、例外要因とされた論理アドレスの情報vpn,asidはPTEHレジスタ51に保持されている。D=1にされるべき状況は、メインメモリ上の物理ページ領域に最初に書込みが行われるときに発生される。仮想記憶において、ページ入れ換えの際に補助記憶装置とメインメモリ(例えば図22の外部メモリ)相互間でのデータの整合を図るため、メインメモリの入れ換え対象ページの内容を補助記憶装置にコピーバックするか否かの判定が必要とされる。ダーティービットDは、この判定のために、利用される。
上記TLBプロテクト違反例外が検出されると、例外要因とされる論理アドレスの論理ページ番号vpnがPTEHレジスタ51に、そしてその論理アドレスがTEAレジスタ54に書き込まれた後に、そのプロテクト違反を解決するためのハンドラが起動される。
上記のように、MMUCR.RCをカウンタとして使う場合、上記のTLBミス例外の対策の際には、新たなバンクへエントリを登録することができるようにするために、上記のようにインクリメントすることが望ましい。これに対して、上記TLBインバリッド例外、上記TLBイニシャルページライト例外及び上記TLBプロテクト違反例外の対策においては、MMUCR.RCをインクリメントしないことが望ましい。これらの対策においては、Dビット、或いはVビットの変更だけが必要な場合があり、新たなバンクに登録せずに、元のバンクに登録するようにしたほうが、TLBを有効に使えるためである。勿論、本発明は、このようにすることに制限されるものではない。
図17及び図18には、MMUCRレジスタのビットMMUCR.SVを0にセットして、多重仮想記憶を指示した場合におけるTLB1に関する例外検出フローの全体が示されている。図17に従えば、論理アドレスのvpnや現在の空間番号asidに従って所定の手法でTLB1のインデックスが行われる(S1)。これによってインデックスされたエントリがSH=0(非共有)を含む場合、ASIDまたはVPNが不一致であれば(S3)、TLBミス例外(EX1)が検出される。インデックスされたエントリがSH=1(共有)を含む場合には、ASIDは比較されずVPNが不一致であれば(S4)、TLBミス例外(EX1)が検出される。TLBヒットの場合(S3,S4のYES)には、V=1か否かが判定される(S5)。V=0(インバリッド)であれば、TLBインバリッド例外(EX2)が検出される。V=1(バリッド)の場合には、図18に示されるように、ステータスレジスタのビットSR.MDからユーザモード(User)か特権モード(Privileged)かが判定される(S6)。CPU3がユーザモードで動作しており、このモードで動作しているCPU3によるアクセスによってリードされたところのエントリが、特権モードでのアクセスを許容すること(ユーザモードでのアクセスの禁止)を示す情報PRを有している場合(PR=00又は01)、TLBプロテクト違反例外(EX3)が検出される。また、ユーザモードでのアクセスにより、リードされたエントリ内の情報PRが、10であると判定された場合、このアクセスが、リードのアクセスタイプかライトのアクセスタイプかが更に判定される。図9に示されているように、情報PRが、10の場合、ユーザアクセスは、リードのアクセスタイプのみが許容される。そのため、上記アクセスが、ライトのアクセスタイプで有る場合には、アクセスタイプが相違される(S7のwrite)ため、TLBプロテクト違反例外(EX3)が検出される。
特権モードでのアクセスにおいてもPR=00又は10が判定された場合、リード/ライトのアクセスタイプがPRの内容に対して反している(S8のwrite)と、TLBプロテクト違反例外(EX4)が検出される。すなわち、CPU3が、ユーザモードで動作しているか、特権モードで動作しているかにより、PRにより許容されるアクセス権は、異なるが、何れの場合であっても、PRにより許容される以外のアクセスタイプでアクセスをした場合には、TLBプロテクト違反例外(EX3,4)が検出される。アクセスタイプが、PRによって許容されたライト(S9,S10のwrite)である場合、エントリ内の情報Dが、0(未書込みのページ)ならば、TLBイニシャルライト例外(EX5)が検出される。また、エントリ内の情報Dが、1の場合、エントリ内の情報Cが、1ならば、キャッシュメモリ4がアクセスされ、C=0ならばメインメモリ(例えば、図22の外部メモリRAM,ROM)がアクセスされることになる。アクセスタイプが、PRによって許容されたリード(S7〜S10のread)である場合には、C=1ならばキャッシュメモリ4がアクセスされ、C=0のときはメインメモリがアクセスされることになる。
図22には、図7に示した各レジスタと中央処理装置CPUとの接続関係が主に示されている。上記各レジスタには、それぞれ固有のアドレスが割り当てられている。中央処理装置CPU3により形成された論理アドレスは、内部論理アドレスバスVABUSを介して、制御回路(TLBC)50内の選択回路に供給される。この選択回路は、上記論理アドレスをデコードし、論理アドレスが、レジスタに割り当てられた固有のアドレスであった場合、レジスタを選択するための選択信号を形成する。例えば、論理アドレスが、PTELレジスタ52に割り当てられたアドレスであった場合、選択回路は、選択信号C4を形成して、該レジスタを選択する。同様にして、他のレジスタ(PTEH,MMUCR,TEA,TTB)の選択も行われる。言い替えるならば、これらのレジスタは、アドレスマップされている。選択されたレジスタに対する、中央処理装置からのリード/ライトは、図示されていない内部制御バスを介して、中央処理装置から各レジスタへ供給されるリード/ライト制御信号によって、指示される。勿論、この図面に示されているように、各レジスタと中央処理装置CPU3とは、内部データバスDBUSを介して互いに接続されている。各レジスタは、図7に示した制御回路50及びTLB1とも接続されているが、図面が複雑になるのを避けるため、図22には示されていない。中央処理装置は、ソフトウエアを実行することにより、レジスタにデータを書き込むことができる。すなわち、ソフトウエアの実行により、中央処理装置は、レジスタに割り当てられた論理アドレスをバスVABUSへ出力し、データをバスDBUSへ出力し、リード/ライト制御信号でライトを指示することにより、レジスタへデータを書き込むことができる。同様に、ソウトウエアの実行によって、中央処理装置3は、レジスタからデータを読み出すことも可能である。このようにソウフトウエアの実行により、PTEHレジスタ51に対しては、論理空間番号、TLBミスの際の論理アドレスを書き込むことが可能であり、PTELレジスタ52に対しては、リプレースの際のテーブルエントリを書き込むことが可能であり、TTBレジスタ53に対しては、ベースアドレスを、TEAレジスタ54に対しては、プロテクト違反例外の際に論理アドレスを書き込むことが可能である。また、MMUCRレジスタ55に対しては、図6に示されている種々の制御データを書き込むことが可能であり、特定のビットをカウンタの様に使うこともできる。
内部論理アドレスバスVABUSは、制御回路(CTRL)50、TLB1にも接続されている。制御回路(CTRL)50には、上記したように論理アドレスのオフセットを保持するためのラッチ回路が設けられており、内部論理アドレスバスVABUSからの論理アドレスのオフセットが保持される。また、この内部論理アドレスバスVABUSを介して、CPU3から論理アドレスが、TLB1に供給され、インデックスアドレス、検索用のアドレスとして使われる。勿論、制御回路(CTRL)50に設けられる上記ラッチ回路は、オフセットアドレスだけでなく、論理アドレスの全てを保持する様にしても良い。
この図面には、上記PTEHレジスタ51と上記TLB1との接続だけが、明示的に示されている。TLB1のミス/ヒットの判定のための空間番号は、このレジスタにセットされ、このレジスタから上記TLB1へ供給される。また、TLB1のミス例外についての対策においても、このレジスタから、上記したように論理アドレス等が上記TLB1へ供給される。
内部データバスDBUS及び内部物理アドレスバスPABUSは、このデータ処理装置に設けられた外部端子TD及びTAを介して、外部データバスDBUS及び外部アドレスバスABUSに接続される。これらの外部バスには、例えば、同図に示されている様に、外部メモリRAM,ROMが接続される。特に制限されないが、外部メモリRAMは、揮発性メモリであり、上記したような種々のテーブル等が形成される。また、外部メモリROMは、不揮発性のメモリであり、種々のプログラム(例えば、上記したハンドラ等のソフトウエア)を格納している。
以下においては、本実施例のマイクロコンピュータにおける仮想記憶の作用効果をその特徴点毎に説明する。
《複数ページサイズのサポート》 図5及び図6に示されるように、ページテーブルエントリ及びTLBエントリは、上記サイズビットSZを有し、論理ページのサイズが、ページ毎に設定可能とされる。4ウェイ・セットアソシアティブ形式のアドレス変換バッファ1は、そのサイズが可変に設定可能にされる複数の論理ページに対して共通利用される。本実施例では、マイクロコンピュータがサポートする論理ページサイズは1KBと4KBの2種類とされる。そしてTLB1に対するインデックス用アドレスの指定方法は、4KBと1KBの双方において共通化されおり、本実施例においては、図2及び図3に示されるように中央処理装置3で形成される全部で32ビットの論理アドレスの内、ビット12〜ビット16即ちvpn(16−12)がTLB1のインデックスに利用される。インデックスアドレスは5ビットであるから1バンク(ウエイ)当たり最大32個のエントリを保有できる。TLB1は4個のバンク11〜14を持つから、一つのインデックスアドレスにつき、最大4個のエントリを保有できる。上記インデックスアドレスは、ページサイズが4KBの場合には当該論理ページ番号vpnの最下位から5ビットvpn(16−12)とされるので、ページサイズ4KBのときは、任意の論理ページ番号のエントリを各バンクに最大32エントリ(全体で128エントリ)保有することができる。一方、ページサイズが1KBの場合、当該論理ページ番号vpnの最下位から2ビットvpn(11−10)はインデックスに利用されない。このため、論理ページサイズが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)とVPN(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に示されるように排他的論理和ゲートXORによってその論理アドレスの一部(インデックスアドレス)を現在のプロセス番号asidの一部によって修飾した結果をデコードする手法とを、レジスタMMUCRのビットMMUCR.IXの論理値にしたがって指示することができる。これによれば、多重仮想記憶において多くのプロセスが並列的に起動される利用形態においてヒット率の低下を抑えることができるように、その利用形態に応じてインデックス方法を選択可能にすることができる。また、論理アドレスの一部を当該論理アドレスを利用するプロセスの番号asidによって修飾し、これを以てバッファメモリをインデックスすることにより、多重仮想記憶において多くのプロセスが並列的に起動される利用形態においてヒット率の低下を抑えることができる。
《リプレースの自由度》 上述の如くTLB1は、夫々のインデックスアドレスが共通化された複数バンク11〜14を持つ4ウェイ・セットアソシアティブ方式のキャッシュメモリとして構成されている。キャッシュミスなどにおいて、その複数バンク(ウエイ)の中から記憶情報を置換すべき場合に、当該置換されるべきバンクは、中央処理装置3によるソフトウェアの実行によって任意に指定可能にされる。図6に示されるレジスタMMUCRの内、ビットMMUCR.RCは、上記バンクを任意に指定するための2ビットの情報が設定される領域である。これに設定された値が、図4のデコーダ17によって解読されることにより、4個のバンク11〜14の中から一つを選ぶ信号(BSL1〜BSL4)が形成される。これにより、インデックスアドレス2で指定された4個のバンク11〜14内のエントリの内の一つが、上記選択信号(BSL1〜BSL4)によって選択され、置換対象とされる。ビットMMUCR.RCはランダムカウンタのような計数手段として使うこともできる。MMUCR.RCのビット数の2のべき乗数は上記バッファメモリ1のバンクの数(=4)に一致される。制御回路(CTRL)50は、図15に基づいて説明したように、TLB1に対する記憶情報の置換が必要になった(TLBミス)場合、そのMMUCR.RCを1インクリメントし、何れのバンクもインデックスされた記憶領域に有効なデータを保持している(インデックスされた各エントリ内の変換情報Vが1を保有する)と、そのインクリメントされた結果を置換すべきバンク番号とし、インデックスされた記憶領域に有効なデータを保持していない(インデックスされた何れかのエントリはV=0を保有する)バンクがある場合には、そのバンク番号をMMUCR.RCにセットし且つセットされた番号のバンクを置換すべきバンクとする、という一定の規則に従って置換すべきバンクを指定する。このとき、MMUCR.RCの各ビットは中央処理装置3によるソフトウェアの実行によって任意に値が変更可能な対象とされる。すなわち、MMUCR.RCはTLBミスの発生によって+1される動作に限定されない。特定の値を除外するようにMMUCR.RCを更新してもよい。さらに、CPU3が実行するソフトウェアのアルゴリズム次第で、種々の置換が可能である。例えば、ランダム、最初にロードされたものからリプレースするFIFO、又は最後に参照されたものからリプレースするLRU(Least Recentry Used)などのリプレースを、MMUCR.RCの更新方法を変えることに容易に実現できる。そのため、リプレースの自由度も保証できる。
このようにTLB1のエントリを置き換えるためのリプレースメントアルゴリズムを固定化せず、置き換えるべきバンクをソフトウェアで任意に決定可能にすることにより、データ処理の都合上、常に特定の変換対をアドレス変換バッファ1にエントリとして格納しておきたいという要求や、特定のエントリをリプレース対象にしたくないという要求に容易に答えることができるようになる。
《単一仮想記憶と多重仮想記憶のサポート》 本実施例のマイクロコンピュータにおいては、実行されるべき複数のプロセスの夫々が論理空間の全域にわたるアドレス変換情報を有する場合、プロセス番号asidによって、その論理アドレスを修飾或いは拡張する多重仮想記憶を、また、実行されるべき複数のプロセスに論理アドレス空間の一部が排他的に割り当てられ、夫々のプロセスがそれに割り当てられた論理アドレス空間のアドレス変換情報を有する場合、プロセス番号asidによって論理アドレスを修飾或いは拡張しない単一仮想記憶を、選択することが可能とされる。そのような仮想記憶についての制御は、図6に例示されるMMUCR.SVの値によって指示される。MMUCR.SVの値は中央処理装置3がソフトウェアを実行することによって任意に設定される。単一仮想記憶と多重仮想記憶との概念的な相違は図20で説明した通りであり、その他の代表的な相違点については図19に例示されている。図5に示されるようにTLB1は論理ページ番号VPNと物理ページPPN番号と共にプロセス番号ASIDのフィールドを有する。このフィールドの値は、単一仮想記憶か多重仮想記憶かでその処理内容が相違されることになる。あるTLBエントリに含まれるプロセス番号に対応される論理ページが、他のプロセスと共有不可能であると設定されているとき、多重仮想記憶においては、そのプロセス番号ASIDは図17で説明したようにTLB1のTLBヒット/ミスの判定に用いられる。したがって、TLB1に格納されているエントリの論理ページ番号VPNが論理ページアドレスvpnに一致すると共に当該エントリのプロセス番号ASIDが現在のプロセスの番号asidに一致していなければTLBヒットとはされない。単一仮想記憶においては、プロセス番号ASIDはメモリ保護情報(ドメイン番号)として使用される。ユーザモードにおいて、非共有ページに対する、他プロセスによる当該ページへのアクセスは、TLBプロテクト違反例外としてソフトウェアにより処理される。
MMUCR.SVの値をCPU3を介して設定することにより単一仮想記憶と多重仮想記憶の双方を選択的にサポート可能にすることにより、アドレス変換機構の使い勝手を向上させることができる。多重仮想記憶におけるプロセス番号ASIDを単一仮想記憶におけるメモリ保護情報として使用することにより、その場合におけるメモリ保護の完全化を容易に実現することができる。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記実施例においてTLBのウェイ数、即ちバンクの数を5以上例えば8にすることも可能である。例えばページサイズを1KBと8KBにする場合にはLTBのウェイ数(バンク数)は8以上とすればよい。また、ページサイズを4KBと16KBにする場合にはLTBのウェイ数(バンク数)は4以上であればよい。それらによっても上記実施例と同様の効果を得ることができる。要はサポートするページの最大サイズが最小サイズの2のべき乗数倍にされ、そのセットアソシアティブ方式のバッファメモリのセットの数がその2のべき乗数以上であればよい。マイクロコンピュータがサポートするアドレス空間のサイズは4GBに限定されず、それに応じて論理アドレスのビット数も制限されない。サポートするページサイズも適宜のサイズに、且つサポートする種類の数も適宜変更可能である。また、TLBエントリとして保有する論理ページ番号VPNは上記実施例のようにインデックスに利用される対応ビットを除いたものとする構成に限定されず、論理ページ番号の全ビットをTLBエントリとして保有することもできる。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに利用した場合について説明したが、本発明はそれに限定されず、例えばMMU(メモリマネージメントユニット)用のコントローラチップなどにも広く適用することができる。
本発明の一実施例に係るマイクロコンピュータにおける複数ページサイズをサポートする構成の説明図である。 論理ページアドレスの一部をそのまま利用してTLBをインデックスする手法の説明図である。 論理ページアドレスの一部とプロセス番号の一部を用いてTLBをインデックスする手法の説明図である。 TLBエントリのリプレース対象バンクをソフトウェアで任意に決定可能とする構成の説明図である。 ページサイズの異なる論理アドレスとそれらをサポートするためのTLBエントリのフォーマットの一例を説明するための説明図である。 TLBのための各種レジスタの一例を説明するための説明図である。 本発明の一実施例に係るマイクロコンピュータの要部を示す全体ブロック図である。 本実施例のマイクロコンピュータがサポートするアドレスマップの一例を(A)及び(B)にて示す説明図である。 記憶保護に利用されるプロテクションビットPRによって規定されるアクセス権の説明図である。 アドレス変換の制御メインフローチャートである。 TLBのインデックス手法選択のための制御フローチャートである。 論理アドレスとそれによってインデックスされたタグとのアドレス比較の制御フローチャートである。 単一仮想記憶においてASIDをメモリ保護に利用する制御を含んだプロテクション制御の部分的なフローチャートである。 ページサイズに従った物理アドレス生成手順を示すフローチャートである。 リプレース対象バンクをハードウェア的に指定するための制御フローチャートである。 TLBミスにより生じる例外によって、起動されるところの TLBエントリを更新するためのTLBミスハンドラによる処理の一例を示すフローチャートである。 単一仮想記憶におけるTLBに関する例外検出処理の前半を示すフローチャートである。 単一仮想記憶におけるTLBに関する例外検出処理の後半を示すフローチャートである。 単一仮想記憶と多重仮想記憶との全体的な相違を示す説明図である。 単一仮想記憶と多重仮想記憶との概念を(A)及び(B)にて示す説明図である。 TLBの各バンクにおけるヒット信号に反映すべきアドレス比較結果を制御する制御ロジックの一例を示す論理回路図である。 図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 モードビット

Claims (14)

  1. 中央処理装置を含み、論理アドレス空間を複数の論理ページに分割し、中央処理装置から論理アドレスを受付け、上記論理ページ上に割当てられる論理アドレスが物理ページ上の物理アドレスに変換される仮想記憶機能を有し、キャッシュメモリと、レジスタを有し、
    上記キャッシュメモリは、複数のエントリを有し、上記複数のエントリは、論理ページを特定する論理ページ番号と、論理ページ番号に対応し物理ページを特定する物理ページ番号とをそれぞれのエントリに有し、
    上記レジスタは、上記中央処理装置とキャッシュメモリに接続され、上記中央処理装置により上記複数のエントリのうちの一つを、リプレース対象として特定するためのデータが設定される事を特徴とするデータ処理装置。
  2. 中央処理装置と主記憶装置とキャッシュメモリと制御レジスタを有し、
    上記主記憶装置は、上記中央処理装置と接続され、データの格納のために用いられ、
    上記キャッシュメモリは、上記中央処理装置と主記憶装置に接続され、複数のエントリを有し、それぞれのエントリは上記主記憶装置に格納されているデータを選択的に格納し、
    上記制御レジスタは、上記中央処理装置とキャッシュメモリに接続され、上記中央処理装置が供給する値を格納し、上記格納される値は、次に上記主記憶装置からのデータで置き換えが行われるべきキャッシュメモリのエントリを特定するために用いられる事を特徴とするデータ処理装置。
  3. 中央処理装置と主記憶装置とキャッシュメモリと制御レジスタを有し、
    上記主記憶装置は、上記中央処理装置に接続され、データの格納のために用いられ、
    上記キャッシュメモリは、上記中央処理装置と主記憶装置に接続され、複数のエントリを有し、それぞれのエントリは主記憶装置に格納されているデータを選択的に格納し、
    上記制御レジスタは、上記中央処理装置とキャッシュメモリに接続され、中央処理装置により設定される値を格納し、上記格納される値は、次に上記主記憶装置からのデータで置き換えられるべきキャッシュメモリのエントリを置き換え制御するために用いられる事を特徴とするデータ処理装置。
  4. 中央処理装置とキャッシュメモリと制御レジスタを有し、
    上記キャッシュメモリは、上記中央処理装置に接続され、複数のエントリを有し、それぞれのエントリは中央処理装置から供給されるデータを選択的に格納し、
    上記制御レジスタは、上記中央処理装置とキャッシュメモリに接続され、中央処理装置から供給される値を格納し、上記格納される値は、次に中央処理装置から供給されるデータで置き換えられるべきキャッシュメモリのエントリを特定するために用いられる事を特徴とするデータ処理装置。
  5. 中央処理装置とキャッシュメモリと制御レジスタを有し、
    上記キャッシュメモリは、上記中央処理装置に接続され、複数のエントリを有し、それぞれのエントリは上記中央処理装置から供給されるデータを選択的に格納し、
    上記制御レジスタは、上記中央処理装置とキャッシュメモリに接続され、上記中央処理装置から供給される値を格納し、上記格納した値は、次に中央処理装置から供給されるデータで置き換えられるべきキャッシュメモリのエントリを置き換え制御するために用いられる事を特徴とするデータ処理装置。
  6. バッファメモリとレジスタと中央処理装置を有し、
    上記バッファメモリは複数のエントリを有し、それぞれのエントリは論理アドレスタグと物理アドレス情報を含むアドレス情報を有し、
    上記レジスタは上記複数のエントリのうちの1つを特定するためのデータを格納し、
    上記中央処理装置は論理アドレスを出力し、
    上記論理アドレスにより選択された上記エントリに格納された論理アドレスタグが、中央処理装置が出力する論理アドレスに含まれるアドレスデータと一致する場合、上記中央処理装置は当該エントリに格納された物理アドレス情報を使用し、
    上記選択されたエントリに含まれる論理アドレスタグが、上記論理アドレスに含まれるアドレスデータと一致しない場合、上記レジスタに格納されたデータにより特定されるエントリのアドレス情報を新しいアドレス情報で置き換える事を特徴とするデータ処理装置。
  7. 論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、処理装置とバンク指定回路とアドレス変換バッファを有し、
    上記処理装置は、インデックスアドレスと比較アドレスとオフセットアドレスを有する論理アドレスを生成し、
    上記バンク指定回路は上記処理装置により設定可能であり、
    上記アドレス変換バッファは、上記処理装置の生成した論理アドレスを物理アドレスに変換するために用いられ、複数のバンクと選択回路と比較回路とバンクセレクタを有し、
    上記複数のバンクはそれぞれ、仮想ページ番号と物理ページ番号をそれぞれに有する複数のエントリを有し、
    上記選択回路は、上記複数のバンクのそれぞれから、上記インデックスアドレスにより指定されるエントリを選択し、
    上記比較器は、上記選択されたエントリの仮想ページ番号と比較アドレスを比較し、
    上記バンクセレクタは、上記比較器によって選択されたエントリに上記比較アドレスに対応する仮想ページ番号が格納されていない事が示されている場合、バンク指定回路により指定されたバンクをエントリのリプレースを行うために指定し、
    上記物理アドレスは当該エントリに格納された物理ページ番号とオフセットアドレスから生成される事を特徴とするデータ処理装置。
  8. 論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、セットアソシアティブ構成のキャッシュメモリと制御信号出力部とインデックスアドレス生成回路を有し
    上記セットアソシアティブ構成のキャッシュメモリは、複数のメモリバンクを有し、複数のメモリバンクのそれぞれは複数のメモリフィールドを有し、それぞれのメモリフィールドは仮想ページを指定するための仮想ページ番号と、仮想ページ番号に対応する物理ページ番号を格納可能であり、
    上記インデックスアドレス生成回路は、少なくとも論理アドレスの一部と制御信号を入力され、それぞれ複数のバンクのそれぞれからメモリフィールドを選択するためのインデックスアドレスを生成し、その場合、制御信号に応じて異なるインデックスアドレスを生成する事を特徴とするデータ処理装置。
  9. 論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、中央処理装置とセットアソシアティブ構成のキャッシュメモリと指定回路を有し、
    上記セットアソシアティブ構成のキャッシュメモリは、複数のバンクに分割され、それぞれのバンクは、仮想ページを指定するための仮想ページ番号と仮想ページ番号に対応した物理ページ番号を格納可能な複数のメモリフィールドを有し、
    上記指定回路は、上記中央処理装置によりアクセスされ、情報が置き換えられるべきメモリフィールドを含むバンクを指定し、
    上記置き換えられるべき情報を含むバンクの指定は、上記中央処理装置で実行されるソフトウェアにより決定される事を特徴とするデータ処理装置。
  10. 論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、セットアソシアティブ構成のキャッシュメモリと指定回路と中央処理装置を有し、
    上記セットアソシアティブ構成のキャッシュメモリは、複数のバンクに分割され、それぞれのバンクは仮想ページを指示する仮想ページ番号と仮想ページ番号に対応した物理ページ番号を格納可能な複数のメモリフィールドを有し、
    上記指定回路は、所定のルールに従って、記憶情報を置換すべきメモリフィールドを含むバンクを、複数のバンクの中から指定し、
    上記中央処理装置は、上記指定回路に接続され、中央処理装置で実行中のソフトウェアに応じて指定されるバンクが変更される事を特徴とするデータ処理装置。
  11. 論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、複数のプロセスが仮想記憶機能を利用して実行され、単一仮想記憶モードと多重仮想記憶モードを有し、
    上記多重仮想記憶モードは、論理アドレスが実行されているプロセスに応じて変更され、上記複数のプロセスのそれぞれは論理アドレス空間の全域にわたるアドレスを利用可能であり、
    上記単一仮想記憶モードは、論理アドレスは実行されているプロセスに応じて変更される事はなく、複数のプロセスのそれぞれは論理アドレス空間中に割当てられたアドレス空間の論理アドレスを利用可能であり、アドレス空間の一部分は、実行される複数のプロセス間で、排他的に割当てられ、
    上記多重記憶モードと単一記憶モードを選択するためのセレクタを有するデータ処理装置。
  12. 中央処理装置の論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、複数のプロセスが仮想記憶機能を利用して実行され、中央処理装置の動作モードを指定するモード情報と、仮想記憶モードを指定する制御情報と、アドレス変換バッファと、制御回路を有し、
    上記モード情報は、中央処理装置が特権モード又はユーザモードのいずれのモードで動作しているかを指定し、
    上記制御情報は、多重仮想記憶モード又は単一仮想記憶モードのいずれかを指定し、上記多重仮想記憶モードではプロセスのそれぞれが論理アドレス空間全体のアドレスを使用可能であり、上記単一仮想記憶モードでは論理アドレスを使用しているプロセスに応じて論理アドレスを変更し、プロセスのそれぞれが論理アドレス空間の一部を排他的に割当てられ、そしてプロセスのそれぞれがプロセス後とにアドレスを変更されることなく割当てられた一部のアドレス空間の論理アドレスを利用可能とされ、
    上記アドレス変換バッファは、少なくとも論理アドレスの一部をインデックスアドレスとして利用する事でアクセスされ、複数のフィールドを有し、それぞれのフィールドはプロセス毎のプロセス情報と、プロセス毎の仮想ページに割当てられた仮想ページ情報と、仮想ページ情報に対応した物理ページ情報と、あるプロセスが使用している仮想ページを他のプロセスと共有しているかどうかを示す共有情報を含み、
    上記制御回路は、アドレス変換のために用いられ、上記共有情報が非共有である事を示している場合、プロセス情報をアドレス変換バッファでのヒット判定に利用し、上記モード情報は中央処理装置がユーザモードにある事を示し、上記制御情報が単一仮想記憶モードにある事を示し、上記共有情報が非共有である事を示している場合、上記プロセス情報を記憶保護情報として用いることを特徴とするデータ処理装置。
  13. 論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、仮想記憶機能により複数のプロセスを実行可能とされ、処理装置と出力装置と設定装置とアドレス変換バッファを有し、
    上記処理装置は、インデックスアドレスと比較アドレスとオフセットアドレスを含む論理アドレスを生成し、
    上記出力装置は、上記複数のプロセスのうちの1のプロセスを指定するためのプロセス番号を出力し、
    上記設定回路は、上記処理装置により設定され、インデックスを指定するための情報を出力し、
    上記アドレス変換バッファは、上記処理装置により生成された論理アドレスを物理アドレスに変換するために用いられ、複数のバンクと選択回路と比較器を有し、
    上記複数のバンクはそれぞれ、仮想ページ番号と物理ページ番号をそれぞれに含む複数のエントリを有し、
    上記選択回路は、上記インデックス情報により、上記論理アドレスのインデックスアドレス又はプロセス番号により修飾されたインデックスアドレスの何れかを選択し、上記複数のバンクのそれぞれから選択されたインデックスアドレスにより決定されるエントリを選択し、
    上記比較器は、選択されたエントリの仮想ページ番号と比較アドレスを比較し、
    当該エントリの上記物理ページ番号とオフセットアドレスから上記物理アドレスは生成される事を特徴とするデータ処理装置。
  14. 論理アドレス空間が複数の仮想ページに分割され、仮想ページ単位に論理アドレスが物理アドレスにアドレス変換される仮想記憶機能を有し、複数のプロセスが実行され、処理装置とレジスタとアドレス変換バッファを有し、
    上記処理装置は、インデックスアドレスと比較アドレスとオフセットアドレスからなる論理アドレスを生成し、
    上記レジスタは上記処理装置により複数のプロセスから1のプロセスを特定するためのプロセス番号を設定可能とされ、
    上記アドレス変換バッファは、上記処理装置により生成された論理アドレスを物理アドレスに変換するために用いられ、複数のエントリと選択回路と比較器を有し、
    上記複数のエントリは、それぞれに仮想ページ番号と、仮想ページ番号に対応した物理ページ番号と、プロセスを特定するためのプロセス番号と、当該仮想ページが複数のプロセスで共有されているかどうかを示す共通情報を有し、
    上記選択回路は上記インデックスアドレスにより指定されるエントリを選択し、
    上記比較器は、選択されたエントリの仮想ページ番号と比較アドレスを比較し、上記レジスタに格納されたプロセス番号と選択されたエントリに格納されたプロセス番号の比較を行うかどうかを上記共通情報により決定され、
    上記物理アドレスは、当該エントリの物理ページ番号とオフセットアドレスにより生成される事を特徴とするデータ処理装置。
JP2005000091A 1994-09-09 2005-01-04 データ処理装置 Pending JP2005108262A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005000091A JP2005108262A (ja) 1994-09-09 2005-01-04 データ処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24199394 1994-09-09
JP8606895 1995-03-17
JP2005000091A JP2005108262A (ja) 1994-09-09 2005-01-04 データ処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP24087195A Division JP3740195B2 (ja) 1994-09-09 1995-08-25 データ処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007168670A Division JP2007280421A (ja) 1994-09-09 2007-06-27 データ処理装置

Publications (1)

Publication Number Publication Date
JP2005108262A true JP2005108262A (ja) 2005-04-21

Family

ID=34556838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005000091A Pending JP2005108262A (ja) 1994-09-09 2005-01-04 データ処理装置

Country Status (1)

Country Link
JP (1) JP2005108262A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010097558A (ja) * 2008-10-20 2010-04-30 Toshiba Corp 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JP2012533135A (ja) * 2009-07-13 2012-12-20 アップル インコーポレイテッド Tlbプリフェッチング
JP2013232210A (ja) * 2008-02-29 2013-11-14 Qualcomm Inc キャッシュライン置換のためのシステムおよび方法
CN114218153A (zh) * 2021-12-06 2022-03-22 海飞科(南京)信息技术有限公司 用于存储管理的方法、介质、程序产品、***和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232210A (ja) * 2008-02-29 2013-11-14 Qualcomm Inc キャッシュライン置換のためのシステムおよび方法
US8812789B2 (en) 2008-02-29 2014-08-19 Qualcomm Incorporated Systems and methods for cache line replacement
JP2010097558A (ja) * 2008-10-20 2010-04-30 Toshiba Corp 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JP2012533135A (ja) * 2009-07-13 2012-12-20 アップル インコーポレイテッド Tlbプリフェッチング
CN114218153A (zh) * 2021-12-06 2022-03-22 海飞科(南京)信息技术有限公司 用于存储管理的方法、介质、程序产品、***和装置
CN114218153B (zh) * 2021-12-06 2023-11-14 海飞科(南京)信息技术有限公司 用于存储管理的方法、介质、程序产品、***和装置

Similar Documents

Publication Publication Date Title
JP3740195B2 (ja) データ処理装置
JP3713312B2 (ja) データ処理装置
US5526504A (en) Variable page size translation lookaside buffer
US6532528B1 (en) Data processor and data processor system having multiple modes of address indexing and operation
US6324634B1 (en) Methods for operating logical cache memory storing logical and physical address information
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
JP5628404B2 (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
CN110998549B (zh) 地址转换缓存
US6189074B1 (en) Mechanism for storing system level attributes in a translation lookaside buffer
US6901501B2 (en) Data processor
US20050027961A1 (en) System and method for resolving virtual addresses using a page size tag
JPH10177520A (ja) データプロセッサ及びデータ処理システム
JPH04320553A (ja) アドレス変換機構
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
JP2007280421A (ja) データ処理装置
JP2930071B2 (ja) 情報処理装置およびプロセッサ
JP2005108262A (ja) データ処理装置
US7076635B1 (en) Method and apparatus for reducing instruction TLB accesses
CN115794681A (zh) 适用于risc-v的多级可扩展tlb结构
JP2000267932A (ja) タグアドレス比較装置
JP2003337790A (ja) バス制御回路およびプロセッサ
JPH024016B2 (ja)
JP2011180969A (ja) データプロセッサ
JPH1027134A (ja) アドレス変換装置およびこれを用いたプロセッサ
JPH024017B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070627