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

データ処理装置

Info

Publication number
JPH08320829A
JPH08320829A JP7240873A JP24087395A JPH08320829A JP H08320829 A JPH08320829 A JP H08320829A JP 7240873 A JP7240873 A JP 7240873A JP 24087395 A JP24087395 A JP 24087395A JP H08320829 A JPH08320829 A JP H08320829A
Authority
JP
Japan
Prior art keywords
address
entry
cache
tlb
logical
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
JP7240873A
Other languages
English (en)
Other versions
JP3713312B2 (ja
Inventor
Shinichi Yoshioka
真一 吉岡
Susumu Narita
進 成田
Saneaki Tamaki
実明 玉城
Ikuya Kawasaki
郁也 川崎
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
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP24087395A priority Critical patent/JP3713312B2/ja
Priority to KR1019950029113A priority patent/KR100369923B1/ko
Priority to US08/524,791 priority patent/US5835963A/en
Priority to EP95114249A priority patent/EP0701212B1/en
Priority to DE69529374T priority patent/DE69529374T2/de
Publication of JPH08320829A publication Critical patent/JPH08320829A/ja
Application granted granted Critical
Publication of JP3713312B2 publication Critical patent/JP3713312B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 【目的】 キャッシュメモリ(CACHE−M)やアド
レス変換バッファ(TLB)などの連想メモリをMOV
命令などのデータ転送命令にてアクセスしてエントリの
無効化などの操作を行うことができるようにする。 【構成】 上記連想メモリは、中央処理装置が管理する
アドレス空間に配置されそのアドレスが指定することに
よってエントリのアクセスが可能にされる。アドレス指
定による書込みに際して、そのアドレスで指定された領
域のエントリが保有する被検索アドレス情報と書込みデ
ータが保有する情報とを比較した結果が一致である場合
に書込み可能とされ、不一致の場合には書込み抑止され
る連想書込みがサポートされる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュメモリやア
ドレス変換バッファを内蔵するデータ処理装置、特にキ
ャッシュメモリやアドレス変換バッファを一般的なデー
タ転送命令でアクセスする技術、そして仮想記憶におけ
る最小ページサイズを越えてキャッシュメモリのデータ
記憶容量を増大させるための技術に関し、例えばマイク
ロコンピュータに適用して有効な技術に関する。
【0002】
【従来の技術】ユーザが実メモリを意識せずに、オペレ
ーティングシステム(以下OSとも記す)がメモリ管理
を行う分野では、データ処理装置はアドレス変換機構を
サポートする必要がある。アドレス変換機構とは仮想記
憶を実現するために中央処理装置により形成された論理
アドレスを物理アドレスに変換する機構である。このア
ドレス変換機構を高速に実行するために、論理アドレス
と物理アドレスの変換対を保持するアドレス変換バッフ
ァ(Translation lookaside buffer、以下単にTLBと
も記す)を、中央処理装置と共にデータ処理装置に内蔵
する技術が採用されている。アドレス変換バッファは例
えば、最近使用された論理アドレスと物理アドレスとの
変換対を保持する連想記憶構造のバッファメモリとして
構成される。ヒット率を向上させるには複数セットのバ
ンクを持つセットアソシアティブ形式の連想メモリを採
用することができる。このようなアドレス変換バッファ
においてTLBミスを生ずるとミスに係る新たなエント
リが追加されることになる。このときインデックスされ
た各バンクのエントリが有効であるか否かをバリッドビ
ットを参照して判定し、無効なエントリが存在する場合
にはそれがリプレース対象とされる。一方、バリッドビ
ットを参照した結果、全てのエントリが有効である場合
にはLRU(Least Recentry Used)などの論理にした
がってエントリの入れ替えが行われる。このようにアド
レス変換バッファは、連想メモリ動作による通常のアド
レス変換動作の他に、エントリ入れ替えのためのライト
アクセス、バリッドビット判定のためのリードアクセス
などが必要とされ、それらのアクセスは個々のバンクに
おいてエントリを指定して行われなければならない。
【0003】また、DRAMで構成されるような大容量
低速メモリへのアクセス頻度を減らしてデータアクセス
の高速化を図るため、そのようなメモリにおいて頻繁に
利用されると予想されるデータをSRAMのような小容
量高速メモリにて構成されるキャッシュメモリに格納す
る技術が広く採用されている。このようなキャッシュメ
モリも最近使用されたデータとその所在を示すためのア
ドレス情報とのペアを保持した連想記憶構造のバッファ
メモリとして構成することができる。ヒット率を向上さ
せるには同じく複数セットのバンクを持つセットアソシ
アティブ形式の連想メモリを採用することができる。斯
るキャッシメモリにおいてキャッシュミスを生ずると、
ミスに係る新たなエントリが追加されることになる。こ
のときインデックスされた各バンクのエントリが有効で
あるか否かをバリッドビットを参照して判定し、無効な
エントリが存在する場合にはそれがリプレース対象とさ
れ、全てのエントリが有効である場合にはLRUなどの
論理にしたがってエントリの入れ替えが行われる。この
ように連想記憶構造のキャッシュメモリにおいても、通
常の連想動作の他に、エントリ入れ替えのためのライト
アクセス、バリッドビット判定のためのリードアクセス
などが必要とされ、それらのアクセスは個々のバンクに
おいてエントリを指定して行われなければならない。
【0004】また、キャッシュメモリを1次記憶とする
と、2次記憶のメインメモリとの間で相互に共有される
データは整合されなければならない。このとき、ライト
アクセスにてキャッシュヒットを生じてキャッシュメモ
リのエントリが書き換えられた場合、その内容を2次記
憶に書き戻す制御手法にはライトスルー方式とライトバ
ック方式がある。ライトスルー方式はキャッシュメモリ
の書き換えと同時に2次記憶にもデータのライトを行
う。ライトバック方式は、ライトアクセスにおいてキャ
ッシュメモリが書き換えられたとき当該書き換えられた
内容を、その後キャッシュミスが生じてそのエントリが
新たなエントリにリプレースされるときに外部メモリに
書き戻すという手法である。このライトバック方式にお
いて書き戻し先の書込みアドレスは、当該書き戻される
べきキャッシュラインのアドレスタグに含まれる物理ペ
ージアドレス情報と、そのときのキャッシュミスに係る
論理アドレス情報を用いて生成しなければならない。
【0005】尚、連想記憶形式のバッファメモリについ
て記載された文献の例としては昭和61年2月10日に
株式会社培風館から発行された「超高速MOSデバイ
ス」第287頁及び第288頁がある。
【0006】
【発明が解決しようとする課題】しかしながら、アドレ
ス変換バッファやキャッシュメモリなどの連想メモリの
エントリを入れ替え若しくは無効化するための操作は連
想動作とは異なる操作のため、その操作を実現するため
に専用命令を用いると、その分だけ命令コードの種類が
増える。命令コードの種類が多くなるということは、命
令コードのビット数が多くなるということであり、中央
処理装置内部で命令をデコードするための命令デコーダ
の論理規模も大きくしなければならない。
【0007】そこで本発明者は、命令語長を短くしなけ
ればならないようなマイクロコンピュータのアークテク
チャ上の要請などに対処するため、アドレス変換バッフ
ァやキャッシュメモリをMOV命令のような一般的なデ
ータ転送命令でリード/ライトアクセス可能にする必要
性を見出した。
【0008】また、本発明者は仮想記憶におけるページ
サイズとキャッシュメモリの1個のバンク(1個のウェ
イ若しくはセット)当たりのデータ記憶容量との関係を
検討した。これによれば連想動作において、キャッシュ
メモリにおけるキャッシュラインを選択し、選択された
キャッシュラインのエントリからアクセス単位のデータ
を選択するために必要なアドレスビット数は、1個のバ
ンクのデータ記憶容量によって決定される。したがって
アクセスアドレス信号からそのようなビット数の対応ビ
ットを除いた残りのビットがエントリのアドレスタグと
の比較対象にされなければならない。このとき1個のバ
ンクのデータ記憶容量がページサイズ以下であればアド
レスタグには必ず物理ページアドレスが含まれることに
なる。しかしながら、逆(1個のバンクのデータ記憶容
量>ページサイズ)の場合にはキャッシュメモリの連想
動作という観点ではアドレスタグに物理ページアドレス
の全部を含める必要はない。この場合に上記ライトバッ
ク方式では、新たなエントリによって置き換えられるべ
きエントリの書込み先アドレスは当該エントリのアドレ
スタグの情報を利用しなければならない。したがって、
サポートされる最小ページサイズに比べて1個のバンク
のデータ記憶容量が大きくされるキャッシュメモリにお
いてライトバックを保証できるようにするには、キャッ
シュエントリのアドレスタグには当該最小ページサイズ
の場合における物理ページアドレスを含めるように考慮
する必要のあることが本発明者によって見出された。
【0009】本発明の目的は、キャッシュユニットやア
ドレス変換ユニットに含まれる連想メモリ(キャッシュ
メモリ、アドレス変換バッファ)をMOV命令のような
一般的なデータ転送命令にてアクセスしてエントリの無
効化などの操作を行うことができるデータ処理装置を提
供することにある。
【0010】本発明の別の目的は、セットアソシアティ
ブ形式のキャッシュメモリにおける1個のバンクのデー
タ記憶容量が論理ページサイズ以上である場合にもライ
トバックを保証できるようにするデータ処理装置を提供
することにある。
【0011】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0012】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0013】すなわち、データ処理装置に含まれるセッ
トアソシアティブ形式のアドレス変換ユニットは、アド
レス変換用のエントリを格納すると共に、中央処理装置
が管理するアドレス空間に配置されそれが配置されてい
るアドレス空間のアドレスを指定することによってエン
トリがアクセス可能にされたアドレス変換バッファとし
ての連想メモリ部を備える。更に、上記アドレス指定に
よる書込みに際して、そのアドレスで指定された領域へ
の書込みを、当該指定された領域のエントリが保有する
被検索アドレス情報と書込みデータが保有する情報とを
比較した結果が一致である場合に可能とし、不一致の場
合には書込みを抑止する、連想書込みを行う制御部を有
する。
【0014】データ処理装置に含まれるセットアソシア
ティブ形式のキャッシュユニットは、アドレスタグとそ
れに対応する情報をエントリとしてを格納すると共に、
中央処理装置が管理するアドレス空間に配置されそれが
配置されているアドレス空間のアドレスを指定すること
によってエントリがアクセス可能にされたキャッシュメ
モリとしての連想メモリ部を備える。更に上記アドレス
指定による書込みに際して、そのアドレスで指定された
領域への書込みを、当該指定された領域のエントリが保
有する被検索アドレス情報と書込みデータが保有する情
報とを比較した結果が一致である場合に可能とし、不一
致の場合には書込みを抑止する、連想書込みを行う制御
部を有する。
【0015】アドレス変換ユニットやキャッシュユニッ
トの連想メモリ部に対するデバイステスト時のテストパ
ターンデータ書込みなどを考慮した場合、アドレス変換
ユニットやキャッシュユニットは上記連想書込みを行う
か否かを選択可能にする。連想書込みが非選択とされた
ときは上記アドレス指定による書込みに際して、そのア
ドレスで指定された領域への書込みを、当該指定された
領域のエントリが保有する被検索アドレス情報と書込み
データが保有する情報との一致不一致とは無関係に行う
ものとされる。上記連想書込みを選択するか否かを決定
するための制御ビットを連想メモリ部のアクセスアドレ
スの所定のフィールドに配置するアドレスフォーマット
を採用できる。
【0016】論理アドレスの一部でインデックスされ、
被検索アドレス情報として物理アドレスをアドレスタグ
に有し、複数のバンクを備えたセットアソシアティブ形
式のキャッシュメモリを内蔵し、仮想記憶をサポートす
るデータ処理装置において、上記キャッシュメモリが、
書き換えられたエントリの2次記憶へのデータ書き戻し
がライトバック方式で制御されるものであるとき、複数
存在するバンクの内の一つのバンクのデータ記憶容量が
アドレス変換のページサイズ以上とされる場合にもライ
トバックを保証できるように、上記アドレスタグはエン
トリに対応する物理ページアドレスを全ビット有し、連
想動作のための検索時にはアドレスタグの一部が被検索
アドレス情報とされ、ライトバック動作時にはアドレス
タグの全ビットで書き戻し先の物理ページアドレスが特
定される。例えば、図11に示されるように、キャッシ
ュメモリの1個のバンクにおけるデータ記憶容量が2K
バイト(4バイト×4×128)のとき、アクセス単位
のデータ指定には32ビットの論理アドレスのうち下位
側の11ビット(ビット10〜ビット0)が必要とさ
れ、連想比較のためのアドレスはビット31〜ビット1
1とされる。このとき、ページサイズが4Kバイトのと
きはページアドレスはビット31〜ビット12とされ
る。ページサイズが1Kバイトの場合、ページアドレス
はビット31〜ビット10にて指定されることになる。
このような場合を想定してアドレスタグ(TAG)には
1Kバイトのページサイズにおける物理ページアドレス
PPN(31−10)を保有し、ライトバックに際して
当該PPN(31−10)を書き戻し先の物理ページ番
号としてそのまま利用できるようにしてある。
【0017】
【作用】上記した手段によれば、例えば図1に示される
ようにキャッシュユニットに含まれる連想メモリ部であ
るキャッシュメモリ(CACHE−M)のアドレスアレ
イ部をH'F0******(*は任意)に、データア
レイ部をH'F1******に、アドレス変換ユニッ
トに含まれる連想メモリ部であるアドレス変換バッファ
(TLB)のアドレスアレイ部をH'F2******
に、データアレイ部をH'F3******にマッピン
グし(H'は16進数を意味する)、*部分においてラ
インの指定及びバンクの指定などができるようにアドレ
スフォーマットが決定される。キャッシュメモリ(CA
CHE−M)やアドレス変換バッファ(TLB)のコン
トローラ(制御部)はそのようなフォーマットのアドレ
スを受けることにより、それに従ったバンク及びライン
を選択するための論理を備える。これにより、キャッシ
ュメモリ(CACHE−M)及びアドレス変換バッファ
(TLB)に対してアドレスアレイ部及びデータアレイ
部の何れに対しても任意のバンクの任意のラインをアド
レス指定可能にされる。このことが、殆どの命令セット
に必ず含まれるMOV命令のような一般的なデータ転送
命令を以てキャッシュメモリ(CACHE−M)及びア
ドレス変換バッファ(TLB)をアクセス可能にする。
例えば図1において、キャッシュメモリ(CACHE−
M)又はアドレス変換バッファ(TLB)をリードアク
セスするときはリードすべき対象を指定するためのアド
レス情報を所定のアドレスフォーマットに従ってレジス
タR1に格納し、データ転送命令MOV @R1,R0
を実行することによりレジスタR1に格納されたアドレ
スを転送元アドレスとしてキャッシュメモリ(CACH
E−M)又はアドレス変換バッファ(TLB)からレジ
スタR0にデータが転送される。キャッシュメモリ(C
ACHE−M)又はアドレス変換バッファ(TLB)を
ライトアクセスするときはライトすべき対象を指定する
ためのアドレス情報を所定のアドレスフォーマットに従
ってレジスタR1に格納し、データ転送命令MOV R
0,@R1を実行することによりレジスタR0のデータ
を転送元としレジスタR1で指定されるキャッシュメモ
リ(CACHE−M)又はアドレス変換バッファ(TL
B)のアドレス位置にデータが書き込まれる。
【0018】書込みに際して連想書込みをサポートする
ことは、アドレス指定だけでは考慮されないところの被
検索アドレス情報を書込み可否の条件とするから、誤り
なくエントリを無効化する操作を保証する。
【0019】連想書込みを非選択可能にすることは、所
定論理値のデータを書き込んだ後それと同じ論理値のデ
ータが読み出せるか否かを検証するような連想メモリ部
のデバイステストへの対応も可能にする。例えば図1に
おいてアドレスに含まれる連想ビットA=1のときは連
想書込みが選択され、A=0の時は連想書込みが非選択
とされる。
【0020】キャッシュメモリの1個のバンクにおける
データ記憶容量がページサイズよりも大きな場合に、そ
のページサイズに対応した物理ページアドレスを全ビッ
ト保有できるサイズのアドレスタグのフィールドを採用
し、アドレス比較に必要なビット数を超えてそこに物理
アドレス情報を保有させることは、キャッシュメモリの
連想動作という観点ではアドレスタグに物理ページアド
レスの全部を含める必要はないものの、ライトバック方
式では新たなエントリによって置き換えられるべきエン
トリの書込み先アドレスを当該エントリのアドレスタグ
の情報を利用して生成しなければならないという要求を
満足させる。このことが、キャッシュメモリのデータ記
憶容量の増大や論理ページサイズの可変化に際して、イ
ンデックスされたキャッシュエントリに対するアドレス
比較とライトバックの双方を達成可能にする。
【0021】
【実施例】
《マイクロコンピュータの構成モジュール》 図2には
本発明の一実施例に係るマイクロコンピュータのブロッ
ク図が示される。同図に示されるマイクロコンピュータ
MPUは、例えば公知の半導体集積回路製造技術によっ
て単結晶シリコンのような1個の半導体基板に形成され
る。このマイクロコンピュータMPUは、特に制限され
ないが、システムバスS−bus、キャッシュバスC−
bus、及びペリフェラルバスP−busから成るスリ
ーバス構成を有する。夫々のバスS−bus,C−bu
s,P−busはデータ、アドレス、制御信号の各信号
線群を備えている。システムバスS−busには中央処
理装置CPU、乗算器MLT、キャッシュユニットCA
CHE、アドレス変換ユニット(メモリマネージメント
ユニットとも記す)MMUが結合される。キャッシュユ
ニットCACHEは他方においてキャッシュバスC−b
usに結合され、当該キャッシュバスC−busにはラ
イトバックバッファWBBUF及びバスステートコント
ローラBSCが接続される。バスステートコントローラ
BSCは入出力回路EXIFを介して外部バスEX−b
usに結合され、当該外部バスEX−busに結合され
た外部メモリMMRYなどとキャッシュバスC−bus
とのインタフェース制御を行う。上記ライトバックバッ
ファWBBUFはキャッシュユニットCACHEのキャ
ッシュミス時にキャッシュエントリをリプレースすると
き外部メモリに書き戻すべきデータを一時的に蓄えて当
該キャッシュミスに係るデータのキャッシュメモリへの
書込みを優先させるためのものであり、その出力はキャ
ッシュバスC−busに接続される。バスコントローラ
BSCはペリフェラルバスP−busに接続された周辺
モジュールPMDULに対するバスアクセス制御を行
う。尚、CMDULはマイクロコンピュータMPUの動
作基準クロック信号を発生するクロックモジュールであ
る。
【0022】図13は図2のマイクロコンピュータMP
Uを更に詳細に示したブロック図である。図13におい
てクロックモジュールCMDULは図示を省略し、前記
ライトバックバッファWBBUFは図13のキャッシュ
ユニットCACHEに含まれ、また、ペリフェラルアダ
プタPADPは図13のバスコントローラBSCに含ま
れる。図2の周辺モジュールPMDULは図13におい
てタイマTMU、リアルタイムクロックRTC、シリア
ルコミュニケーションインタフェースSCI、及びリフ
レッシュコントローラREFCとして具体化されてい
る。また、図13においては図2では図示を省略した割
り込みコントローラINTC及びユーザブレークコント
ローラUBCが示されている。
【0023】図13においてシステムバスS−busに
は、中央処理装置CPU、乗算器MLT、キャッシュユ
ニットCACHE、メモリマネージメントユニットMM
U、及びユーザブレークコントローラUBCが結合され
る。キャッシュバスC−busには上記キャッシュメモ
リCACHE、メモリマネージメントユニットMMU、
命令ブレークコントローラUBC、及びバスステートコ
ントローラBSCが結合される。バスステートコントロ
ーラBSCに接続されるペリフェラルバスP−busに
はタイマTMU、中央処理装置CPUへのクロック供給
が停止されても計時動作が可能にされるリアルタイムク
ロックRTC、リフレッシュコントローラREFC、及
びシリアルコミュニケーションインタフェースSCIな
どの内蔵周辺モジュールが接続される。また、バスステ
ートコントローラBSCは入出力回路EXIFを介して
外部バスEX−busに接続可能にされる。上記外部バ
スEX−busには外部メモリMMRYや補助記憶装置
DISKなどが接続されることになる。上記バスステー
トコントローラBSCは、内蔵周辺モジュール及び外部
に対するバスサイクルの起動とそれに伴う各種バス制御
を行う。
【0024】割り込みコントローラINTCは上記内蔵
周辺モジュールから、及び複数ビットの外部割り込み端
子IRL0〜IRL3から割り込み要求を受け、割込み
優先レベルに従って要求の調停などを行って、中央処理
装置CPUに割り込み信号SIG1を供給する。それと
共に割り込みコントローラINTCは、受け付けた割り
込み要求の要因を信号SIG2にてメモリマネージメン
トユニットMMUに通知する。割り込み信号SIG1を
受けた中央処理装置CPUは割り込み受け付けの通知信
号SIG3をメモリマネージメントユニットMMUに与
える。これによってマモリマネージメントユニットMM
Uはその割り込み要因を要因レジスタINTEVTにセ
ットする。中央処理装置CPUは要因レジスタINTE
VTにセットされた割り込み要因を用いて所定の割り込
み処理に分岐される。
【0025】本実施例のマイクロコンピュータMMUは
論理アドレス空間を論理ページと呼ばれる単位に分割
し、そのページ単位に物理アドレスへのアドレス変換を
行うための仮想記憶をサポートする。上記メモリマネー
ジメントユニットMMUはアドレス変換バッファTLB
とその制御部TLB−Cとを備える。このメモリマネー
ジメントユニットMMUのアドレス変換バッファTLB
は論理ページ番号と物理ページ番号とに関する変換対な
どをTLBエントリとして格納し、その制御部TLB−
Cは中央処理装置CPUが出力する論理アドレスをアド
レス変換バッファTLBなどを用いて物理アドレスに変
換する。TLBミスの場合にはその論理アドレスに対応
されるTLBエントリは制御部TLB−Cを介して外部
メモリMMRY上のアドレス変換テーブル(ページテー
ブル)から読み込まれる。そのアドレス変換バッファT
LBは例えば4ウェイ・セットアソシアティブ方式のキ
ャッシュメモリによって構成される。TLBミスなどの
アドレス変換に係る各種例外が発生すると、制御部TL
B−Cはその例外要因を要因レジスタEXPEVTにセ
ットし、且つ、TLBミスなどのアドレス変換に係る例
外発生の通知信号SIG4を中央処理装置CPUに送
る。中央処理装置CPUは、要因レジスタEXPEVT
にセットされた要因を用いて、或いはそれを用いずにハ
ードウェアで直接、所定の例外処理に分岐される。
【0026】中央処理装置CPUは例えば4ギガバイト
の論理アドレス空間をサポートするために32ビットの
アドレスを利用する。図13において中央処理装置CP
Uの回路ブロック内には汎用レジスタR0〜R15や算
術論理演算器ALUで代表される演算部と、後述するプ
ログラムカウンタPCなどの制御用レジスタ群、そして
命令のフェッチや解読並びに命令実行手順を制御したり
演算制御を行う制御部CTRLが代表的に示されてい
る。IDは中央処理装置CPUがフェッチした命令を解
読して各種制御信号を発生する命令デコーダである。こ
の中央処理装置CPUは外部メモリMMRYから命令を
フェッチし、その命令を命令デコーダIDにて解読する
ことにより、当該命令記述に応じたデータ処理を行う。
図13においてSIG5は中央処理装置CPUからメモ
リマネージメントユニットMMUへの各種制御信号及び
中央処理装置CPUの内部状態を通知するための信号を
総称するものである。
【0027】キャッシュユニットCACHEは、特に制
限されないが、4ウェイ・セットアソシアティブ形式の
連想メモリ部としてのキャッシュメモリCACHE−M
とその制御部CACHE−Cを備える。キャッシュメモ
リCACHE−Mに対するインデックスは論理アドレス
の一部を用いて行われ、エントリのタグ部には物理アド
レスが保有され、インデックスされたタグ部はその論理
アドレスがアドレス変換バッファTLBで変換された物
理アドレスと比較され、その比較結果に応じてキャッシ
ュミス/ヒットを判定する。キャッシュミスの場合に当
該キャッシュミスに係るデータ又は命令は外部メモリM
MRYから読み込まれ、読み込まれたデータ又は命令は
新たなキャッシュエントリとしてキャッシュメモリCA
CHE−Mに格納される。
【0028】上記ユーザブレークコントローラUBCは
デバッグ機能を強化するために設けられており、システ
ムバスS−busの状態がブレーク条件に一致するかを
監視し、一致する場合には中央処理装置CPU10にブ
レーク割込みを発生させる。ユーザブレークコントロー
ラUBCに含まれるIBRはブレーク条件として命令ア
ドレスなどが設定される命令ブレークアドレスレジスタ
である。中央処理装置CPUはデバッグ若しくはエミュ
レーション開始前にそのためのサービスルーチンを実行
して命令ブレークアドレスレジスタIBRにブレークす
べき命令の先頭アドレスやオペランドアドレスなどの所
望の命令ブレーク条件をあらかじめ設定する。マイクロ
コンピュータMPUの内部状態が前記命令ブレーク条件
に一致すると、後述の命令ブレーク例外が発生し、これ
によって中央処理装置CPUはデバッグのための命令ブ
レークハンドラが実行可能にされる。したがって、マイ
クロコンピュータMPUの内部でブレークポイント制御
を行うことができる。
【0029】中央処理装置CPUは夫々32ビットの上
記汎用レジスタR0〜R15の他に、プログラムカウン
タPC、ステータスレジスタSR、ベクタベースレジス
タVBR、セーブプログラムカウンタSPC、及びセー
ブステータスレジスタSSRなどのシステムレジスタや
コントロールレジスタを有する。プログラムカウンタP
Cは現在の命令のスタート番地を指す。セーブステータ
スレジスタSSRは例外発生時などにおいて現在のステ
ータスレジスタSRの値を退避するレジスタである。セ
ーブプログラムカウンタSPCは例外が発生したときに
例外から復帰した後に中央処理装置CPUが実行すべき
命令のアドレスを保持するためのレジスタであり、例外
が発生したときに所定のタイミングを以てプログラムカ
ウンタPCの値が退避されるレジスタである。ベクタベ
ースレジスタVBRは例外処理のためのベクタ領域のベ
ースアドレス(ベクタテーブルベースアドレス)を保有
する。
【0030】ステータスレジスタSRは、図14に示さ
れるように演算においてキャリー、ボロー、オーバーフ
ローを示すために利用されるTビット、メモリアクセス
制御に利用されるSビット、割り込み要求に対するマス
クレベルを4ビットで示す割り込みマスクビットIMA
SK、除算に利用されるM及びQビット、汎用レジスタ
R0〜R15のバンク指定を行うためのレジスタバンク
ビットRB、ブロックビットBL、プロセッサオペレー
ションモードビットMD、及びゼロビットを含む。ブロ
ックビットBLは特権モードにおける例外をマスクする
ために利用され、BL=1は例外をマスクすることを指
示し、BL=0は例外を許容することを指示する。モー
ドビットMDはMD=1にて特権モードを、MD=0に
てユーザモードを示す。モードビットMDの”0”ある
いは”1”は命令を実行することによって設定される。
上記M,Q,S,Tの各ビットはユーザモードにおいて
も専用命令によってセットまたはクリア可能であるが、
その他全てのビットは特権モードにおいてだけリード・
ライト可能にされる。ステータスレジスタSRなどのコ
ントロールレジスタに対する書き込みは制御ロード命令
(LDC)、読み出しは制御ストア命令(STC)にて
可能にされる。両方の命令は、システム制御命令若しく
は特権命令の一つとされる。
【0031】《マイクロコンピュータのアドレス空間》
本実施例のマイクロコンピュータMPUは、4GB
(ギガバイト)の論理アドレス空間をサポートするため
に、中央処理装置CPUは、32ビットのアドレスを利
用する。該論理アドレスは後述の空間番号(プロセス番
号)asidによって拡張可能にされる。図3(A)及
び図3(B)にはその論理アドレス空間のアドレスマッ
ピングが示される。同図において”Mapped”と示される
領域はアドレス変換バッファTLBを利用したアドレス
変換の対象とされる。H'FFFFFFFF〜H'800
00000の領域は特権モードにおいてアクセス可能な
領域とされ、ユーザモードでのアクセスはアドレスエラ
ーとされる。P4領域はコントロールスペースであり、
周辺コントロールレジスタ、そして上記アドレス変換バ
ッファTLBやキャッシュメモリCACHE−Mがマッ
ピングされる制御空間とされる。P1,P2領域はそれ
に対応される物理アドレスが固定とされる領域であり、
アドレス変換バッファTLBを利用したアドレス変換の
対象とはされない。これらの領域P1,P2の論理アド
レスは、一定の定数が加算または減算されて、物理アド
レスに変換される。したがって、特権モードにおいて、
当該領域P1,P2をアクセスするときはTLBミスを
初めとするアドレス変換に係る例外が生じない。特にP
2領域はキャッシュメモリCACHE−Mによるキャッ
シュの対象とされず、P1領域はキャッシュの対象とさ
れている。
【0032】論理アドレス空間は論理ページと呼ばれる
単位に分割され、そのページ単位に物理アドレスへの変
換が行われる。本実施例のマイクロコンピュータMPU
がサポートする論理ページサイズは4KB(キロバイ
ト)と1KBの双方とされる。これは、サポートされる
論理ページの最大サイズ(=4KB)が最小サイズ(=
1KB)の2のべき乗数倍にされ、アドレス変換バッフ
ァTLBのバンクの数(=4)が上記2のべき乗数以上
であるという関係を満足する。図4に示されるように、
論理ページサイズが1KBの場合に論理アドレスは、中
央処理装置CPUにより形成される論理アドレス(ビッ
ト0からビット31までの32ビットのアドレス)の
内、ビット0〜ビット9までがオフセットとされ、ビッ
ト10〜ビット31までが論理ページ番号(論理ページ
アドレス)vpnとされる。論理ページサイズが4KB
の場合に論理アドレスは、ビット0〜ビット11までが
オフセットとされ、ビット12〜ビット31までが論理
ページ番号vpn(論理ページアドレス)とされる。
【0033】《TLBエントリ》 仮想記憶のためのペ
ージテーブルエントリは論理ページ番号VPNと物理ペ
ージ番号PPNとの対応やアクセスの属性などについて
の記述が含まれ、それはソフトウェアによって形成され
て図2及び図13に示される外部メモリMMRY上のア
ドレス変換テーブルに格納され、且つ、その一部が上記
アドレス変換ユニットMMUのアドレス変換バッファT
LBに格納される。アドレス変換バッファTLBに格納
されるエントリ(TLBエントリ)のフォーマットは、
図4にその詳細が示されるように、便宜上アドレスアレ
イ部TA−aryに格納されるアドレス部とデータアレ
イ部TD−aryに格納されるデータ部に分けられてい
る。アドレス部は、論理ページ番号の情報VPN(31
−17),VPN(11−10)、及び空間番号ASI
D(8ビット)とされる。データ部は、共有ステータス
SH(1ビット)、サイズビットSZ(1ビット)、エ
ントリが有効であることを示すバッリドビットV(1ビ
ット)、論理ページ番号に対応される物理ページ番号P
PN(22ビット)、記憶保護のためのプロテクション
PR(2ビット)、キャッシャブルビットC(1ビッ
ト)、及びダーティビットD(1ビット)を保有する。
アドレス部が保有する論理ページ番号の情報は32ビッ
トの論理アドレスのビットフォーマットにおいてインデ
ックスに利用されるビットを除いたビット10〜ビット
11とビット17〜ビット31とされる。前者はVPN
(11−10)と表記され、後者はVPN(31−1
7)と表記される。共有ステータスSHは複数プロセス
間で当該ページが共有されているか否かを示し、SH=
0は非共有、SH=1は共有を意味する。空間番号AS
IDは特定のプロセスに属するものとして論理ページを
定義したりするために利用されるものであり、プロセス
番号とも称する。プロテクションPRはページに対する
アクセス権を定義するためにエンコードされたデータで
あり、その値の組み合わせによってアクセス権が定義さ
れる。サイズビットSZは論理ページサイズを指定する
ビットであり、SZ=1は4KBページサイズを指定
し、SZ=0は1KBページサイズを指定する。
【0034】尚、本明細書において小文字で示されるv
pn,ppn,asidは、アクセスに利用される論理
ページ番号、物理ページ番号、プロセス番号とされ、ア
ドレス変換バッファTLBやキャッシュメモリCACH
E−Mのエントリ若しくはページテーブルエントリとし
ての大文字で示される論理ページ番号VPN、物理ペー
ジ番号PPN、プロセス番号ASIDとは区別されてい
る。
【0035】《複数ページサイズのサポート》 図4及
び図19に示されるように、アドレス変換テーブルエン
トリ(ページテーブルエントリ)及びTLBエントリは
上記サイズビットSZを有し、論理ページサイズがペー
ジ毎に可変に設定可能とされる。4ウェイ・セットアソ
シアティブ形式のアドレス変換バッファTLBは、その
サイズが可変に設定可能にされる複数の論理ページサイ
ズに対して共通利用される。本実施例ではマイクロコン
ピュータMPUがサポートする論理ページサイズは1K
Bと4KBの2種類とされる。そしてアドレス変換バッ
ファTLBに対するインデックスアドレスIDXの指定
方法は4KBと1KBの双方において共通化され、図6
に示されるように中央処理装置CPUで形成される全部
で32ビットの論理アドレスの内、ビット12〜ビット
16即ちvpn(16−12)がアドレス変換バッファ
TLBのインデックスに利用される。インデックスアド
レスは5ビットであるから1バンク(ウエイ)当たり最
大32個のエントリを保有できる。アドレス変換バッフ
ァTLBは4個のバンクBNK0〜BNK3を持つか
ら、一つのインデックスアドレスにつき、最大4個のエ
ントリを保有できる。上記インデックスアドレスは、ペ
ージサイズが4KBの場合には当該論理ページ番号vp
nの最下位から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ページサイズの場合とほぼ同
様に、アドレス変換バッファTLBには、全体としては
1KBページサイズの、任意論理ページ番号のエントリ
を、128個保有可能にされる。但し、一つのバンクに
保有できるエントリの論理ページ番号は4KB毎という
制約を受ける。この制限は、アドレス変換バッファTL
Bの保有するエントリの論理ページ番号が連続的であれ
ば、アドレス変換バッファTLBのヒット率には何等影
響を与えない。分散的である場合にはある程度ヒット率
に影響を受ける。この場合でも、1KBの論理ページを
2KB毎にアドレスマッピングすればその影響を小さく
でき、4KB毎にアドレスマッピングすれば全く影響を
受けないようにすることができる。例えば、1KBペー
ジサイズの変換情報をアドレス変換バッファTLBへ設
定する(書き込む)際、4個のバンク(BNK0)、
(BNK1)、(BNK2)、(BNK3)のそれぞれ
から、5ビットのインデックスアドレスによって指示さ
れる4個のエントリに、2ビットvpn(11−10)
が"00"のときの変換情報、2ビットvpn(11−1
0)が"01"のときの変換情報、2ビットvpn(11
−10)が"10"のときの変換情報、2ビットvpn
(11−10)が"11"のときの変換情報を、各々設定
する。このようにすれば、ヒット率の低下を防ぐことが
可能となる。
【0036】ヒット判定のためのアドレス比較のビット
数は、図24に基づいて後述するように論理ページサイ
ズに応じて変化されなければならない。論理ページサイ
ズが1KBの場合には4KBの場合に比べてvpn(1
1−10)をVPN(11−10)と比較しなければな
らない。アドレス変換バッファTLBはそのような比較
対象のビット数を全てカバーできるようにVPN(31
−17)とVPN(11−10)の記憶領域を備え、且
つ、物理ページ番号PPNに対しても22ビットの記憶
領域を備えている。アドレス変換バッファTLBは各エ
ントリのデータ部にそれがサポートする論理ページサイ
ズを示すサイズビットSZを有し、その値に応じてヒッ
ト判定のためのアドレス比較のビット数を変化させる。
図24に示されるように、サイズビットSZ=1(論理
ページサイズ=4KB)の場合にはVPN(31−1
7)が論理アドレスの対応ビットとの比較対象とされ、
サイズビットSZ=0(論理ページサイズ=1KB)の
場合にはVPN(31−17),VPN(11−10)
が論理アドレスの対応ビットとの比較対象とされる。図
20等に示されるhit1〜hit4は各バンクBNK
0〜BNK3におけるヒット判定を通知するためのヒッ
ト信号であり、それらに基づいてTLBヒット/ミスが
判定される。
【0037】このように複数ページサイズを選択的にサ
ポートするマイクロコンピュータMPUは、システムに
実装される実メモリの全記憶容量が少ないような場合に
論理ページのサイズを比較的小さくして各プロセスによ
るメモリ利用効率を向上させたいという要求にも容易に
対応できる。このとき、最大論理ページサイズが最小サ
イズの2のべき乗数倍にされ、そのセットアソシアティ
ブ方式のアドレス変換バッファTLBのバンクの数をそ
の2のべき乗数以上にすることにより、インデックスア
ドレスの指定手法を最大論理ページサイズのものに統一
化しても、選ばれている論理ページサイズが最大であっ
ても最小であっても、原理的にはどの論理ページ番号の
エントリについてもアドレス変換バッファTLBに保有
可能にすることができる。論理ページ番号に対応する論
理ページのサイズを示すための情報を設け、このサイズ
を用いてヒット判定のためのアドレス比較のビット数を
変化させることにより、アドレス変換バッファTLBを
連想的に検索するための比較対象情報のビット数やビッ
ト位置を論理ページのサイズによって変化させることを
容易に実現できる。複数ページサイズをサポートするア
ドレス変換バッファTLBをセットアソシアティブ形式
のキャッシュメモリで実現することは、これをCAM
(Content Addressable Memory)で構成する場合に比べ
てチップ専有面積と消費電力を共に半減させることがで
きる。
【0038】《アドレス変換ユニットの構成モジュー
ル》 図5にはアドレス変換ユニットMMUのブロック
図が示される。アドレス変換バッファTLBは例えばS
RAM(スタティックランダムアクセスメモリ)から構
成され、4ウェイセットアソシアティブ形式を実現する
ために4個のバンク(ウェイとも記す)BNK0〜BN
K3を供え、各バンクBNK0〜BNK3はTLBエン
トリのアドレス部(論理ページアドレスと比較されるべ
きアドレスタグとしての論理ページ番号に関する情報な
どを含む)を格納するためのアドレスアレイ部TA−a
ryと、TLBエントリのデータ部(アドレスタグに対
応する物理ページ情報などを含む)を格納するためのデ
ータアレイ部TD−aryとに分けられている。一つの
TLBエントリはアドレスアレイ部TA−aryとデー
タアレイ部TD−aryにまたがって格納される。夫々
のバンクBNK0〜BNK3は32個のTLBエントリ
を格納する。従って各バンクから一つのエントリを選択
するためには5ビットのインデックスアドレスIDXが
必要とされる。インデックスアドレスIDXはアドレス
アレイ部TA−ary及びデータアレイ部TD−ary
の各バンクBNK0〜BNK3に共通に供給される。イ
ンデックスアドレスIDXにて各バンクBNK0〜BN
K3で選択された夫々のTLBエントリは読み出し経路
R1−passを介して制御部TLB−Cに供給され
る。インデックスされたTLBエントリのうちTLBミ
ス/ヒットを判定するためのアドレスタグなどはバンク
毎にコンパレータCMP0〜CMP3に供給される。コ
ンパレータCMP0〜CMP3はバンク毎にアドレスタ
グと論理ページアドレスとを比較してその判定結果をヒ
ット信号hit1〜hit4にて制御部TLB−C(T
LBコントローラTLB−Cとも記す)に通知する。
【0039】TLBコントローラTLB−Cは上記読出
されたTLBエントリの情報とヒット信号hit1〜h
it4などを受け、それらに従ってTLBミス/ヒット
などに関する処理を行う。TLBヒットの場合にはヒッ
トに係るTLBエントリに含まれる物理ページ番号にそ
のときの論理アドレスのオフセットを下位側に付加して
物理アドレスを生成する。TLBミスの場合には、TL
Bミス例外が発生され、ミスに係る新たなTLBエント
リが外部メモリMMRYからロードされてアドレス変換
が再実行される。そのときエントリのリプレースを要す
るときはランダム或いはLRU(Least Recentry Use
d)などの論理に従ってリプレース対象バンクが決定さ
れる。
【0040】上述の新たなTLBエントリのロードやT
LBエントリの無効化などにおいてはバンクを指定して
メモリ部TLB−Mをアクセスすることを要する。それ
に対処するためにアドレス変換バッファTLBは以下に
説明するところのアドレス指定アクセスが可能にされ
る。
【0041】アドレス変換バッファTLBのアドレス指
定アクセスのためのハードウェア構成として図5の制御
回路TLB−Cには、書き込み選択回路WS1、書き込
み制御ゲートGT1、読み出し選択回路RS1、アドレ
スデコーダDEC1、オアゲートOR1が示される。書
き込み経路W1−passは書き込み選択回路WS1か
らアドレスアレイ部TA−ary及びデータアレイ部T
D−aryの各バンクBNK0〜BNK3に結合され
る。書き込み選択回路WS1はアドレスデコーダDEC
1から出力されるデコード信号としてのアレイ部選択信
号S1−aryとバンク選択信号S1−bnkにてアド
レスアレイ部TA−ary又はデータアレイ部TD−a
ryの一つのバンクを選択して書き込みデータを供給す
る。制御ゲートGT1は書き込み選択回路WS1に、外
部から与えられた書き込みデータを供給する。制御ゲー
トGT1はオアゲートOR1の出力がハイレベルにされ
ることを条件に書き込みデータを書き込み選択回路WS
1に与える。したがって、後述の連想ビットAがハイベ
ルのときは、ヒット信号hit1〜hit4の何れかが
ハイレベルにされることを条件に書き込み制御ゲートG
T1が開かれ、連想ビットAがローレベルのときは、ヒ
ット信号hit1〜hit4のレベルとは無関係に書き
込み制御ゲートGT1が開かれる。読み出し選択回路R
S1は、アドレスアレイ部TA−ary及びデータアレ
イ部TD−aryでインデックスされて読み出し経路R
1−passに読出されてくるデータを受け、アドレス
デコーダDEC1から出力されるアレイ部選択信号S1
−aryとバンク選択信号S1−bnkにてアドレスア
レイ部TA−ary又はデータアレイ部TD−aryの
一つのバンクからの読み出しデータを外部に出力可能に
する。書き込み選択回路WS1は書き込み動作が指示さ
れることによって動作可能にされ、読み出し選択回路R
S1は読み出し動作が指示されることによって動作可能
にされる。書き込み又は読み出しの指示は中央処理装置
CPUが論理アドレスと共に出力する。尚、論理アドレ
スを物理アドレスに変換するためのアドレス変換動作に
おいて、各バンクBNK0〜BNK3でインデックスさ
れた情報は、読み出し選択回路RS1を通らず、図示し
ない制御回路TLB−C内部の制御論理にて物理アドレ
スへの変換制御に利用される。
【0042】《TLBのアドレス指定アクセス》 アド
レス変換バッファTLBは論理空間の上記P4領域にマ
ッピングされ、MOV命令のような一般的なデータ転送
命令にてアドレスを指定してリード・ライト可能にされ
ている(Memory Mapped TLB)。アドレスアレイ部TA
−aryはH'F2000000〜H'F2FFFFFF
にマッピングされ、データアレイ部TD−aryはH'
F3000000〜H'F3FFFFFFにマッピング
される。P4領域(H'E0000000〜H'FFFF
FFFF)は図3からも明らかなようにオペレーティン
グシステムやシステムプログラムが走行する特権状態
(特権モード)によってアクセス可能な空間とされる。
【0043】アドレス変換バッファTLBに対するアク
セスアドレスを指定するためのアドレスフォーマットは
図7に示される。アドレスアレイ部TA−aryに対す
るリード/ライトのアドレスのビット31〜ビット24
はH'F2(11110010)とされる。データアレ
イ部TD−aryに対するリード/ライトのアドレスの
ビット31〜ビット24はH'F3(1111001
1)とされる。これによってアドレス変換ユニットMM
Uの制御部TLB−Cはデータアレイ部TD−aryや
アドレスアレイ部TA−aryに対するアドレス指定ア
クセスを認識する。このとき、アクセス対象バンク(ウ
ェイ)の指定はビット9〜ビット8の2ビット(W)で
指定され、1個のバンク当たりのエントリの指定はビッ
ト16〜ビット12の5ビット(ENTRY)で指定さ
れる。制御部TLB−Cはそれらの情報に従い、アクセ
ス論理アドレスのビット31〜ビット24のH'F2又
はH'F3に応じ上記信号S1−aryにてアドレスア
レイ部TA−ary又はデータアレイ部TD−aryを
指定し、バンク指定ビットWに応ずる信号S1−bnk
にて1個のバンクを指定し、エントリ指定ビットENT
RYに応じインデックスアドレスIDXにてバンク内の
一つのTLBエントリを指定する。これにより、データ
アレイ部TD−ary又はアドレスアレイ部TA−ar
yにおける所定バンクの所定エントリをアドレスにて指
定可能になる。
【0044】図5を参照して更に詳述する。システムバ
スS−bus上の論理アドレスは図5のアドレスデコー
ダDEC1にも供給される。アドレスデコーダDEC1
は図7のアドレスフォーマットに示されるように、論理
アドレスのビット31〜ビット24のH'F2又はH'F
3を検出することによって、アドレス変換バッファTL
Bに対するアドレス指定アクセスを認識する。中央処理
装置CPUが出力するシステムバスコマンド(Sバスコ
マンド)をコマンドデコーダDCRがデコードすること
によってリード/ライト信号R/Wが形成される。した
がって、アクセスがリード動作かライト動作かはコマン
ドデコーダDCRから出力されるリード/ライト信号R
/Wによって決まる。図7のアドレス及びデータフォー
マットに示されるように、アドレスアレイ部に対するリ
ード動作の指示によって読出されるデータはアドレスタ
グとしての論理ページ番号情報VPN(31−17),
VPN(11−10)及び空間番号ASIDとされる。
アドレスアレイ部に対するライト動作の指示によって書
き込まれるデータはアドレスタグとしての論理ページ番
号情報VPN(31−17),VPN(11−10)及
び空間番号ASIDの他にバリッドビットVが含まれ
る。図4の説明ではVビットはデータアレイ部TD−a
ryに配置されているが、アドレスアレイ部TA−ar
yに対するライト動作では当該Vビットについても併せ
てデータアレイ部TD−aryに書込みを行うようにす
る制御信号が前記制御信号S1−bnkに含まれてい
る。アドレスアレイ部に対する書き込みだけで当該エン
トリを無効化できるようにするためである。データアレ
イ部に対するリード動作の指示によって読出されるデー
タとライト動作によって書き込まれるデータは共に、P
PN,V,PR,SZ,C,D,SHとされる。
【0045】特にアドレスアレイ部TA−aryに対す
るライトアクセスの場合には図7に示されるようにビッ
ト7に連想ビットAが割り当てられる。連想ビットAは
連想して(論理ページ番号とアドレスタグとのアドレス
比較などを行って)書込みを行うか否かを指示するビッ
トとされ、A=1の場合にはアドレス比較の結果がヒッ
トの場合にのみ該当エントリへの書込みを許容し(ミス
の場合には書込みを行わない)、A=0の場合にはアド
レス比較を行わずアドレスで選択されたエントリへの書
込みを許容することを意味する。連想ビットA=1で指
示されるアドレスアレイ部TA−aryへの連想書込み
における比較対象アドレスは、書込みデータに含まれる
論理ページ番号VPNの情報と、インデックスされたエ
ントリの保有する論理ページ番号VPNの情報とであ
る。このような連想書込みは特定のTLBエントリを無
効化するためにVビットを論理値0に書き換えるような
場合に利用される。例えば図8に示されるようなエント
リの無効化に利用される。図5に示されるようにA=1
の場合には、オアゲートOR1の出力はヒット信号hi
t1〜hit4の何れかがヒットレベル(ハイレベル)
にされない限りローレベルを維持するから、アドレス比
較結果がヒットになって初めて書き込みデータが書き込
み選択回路WS1に供給される。A=0で指示される非
連想書込みでは、アドレス比較結果とは無関係に書き込
み制御ゲートGT1が開かれるので、デバイステストに
おいてアドレスアレイ部TA−aryを単に書き換える
場合などに利用される。
【0046】上述のアドレスマッピングされたアドレス
変換バッファTLBに対するアドレス指定リードアクセ
スは、MOV命令のようなデータ転送命令を利用して実
行できる。その命令記述は例えば、MOV @R1,R
0とされる。@R1は転送元アドレスであり、適当なレ
ジスタR1に図7で説明したフォーマットの所望のアド
レスが設定される。R0は転送先レジスタである。この
命令を実行することにより、アドレス変換バッファTL
BはMOV命令でアクセス可能なメモリと同様にリード
アクセスされ、そのリードデータはレジスタR0に転送
される。アドレス変換バッファTLBに対するライトア
クセスも同様であり、その命令記述は例えば、MOV
R0,@R1とされる。@R1は転送先アドレスであ
り、適当なレジスタR1に図7で説明したフォーマット
の所望のアドレスが設定される。R0は転送元レジスタ
であり、書込みデータが保持される。この命令を実行す
ることにより、アドレス変換バッファTLBはその他の
メモリ同様にMOV命令でライトアクセスされる。この
場合、Aビット=1をアドレス情報に含め、無効化した
いエントリの論理ページ番号VPNとV=0を書込みデ
ータに含めて上記命令を実行したとき、アドレス比較が
一致(TLBヒット)の場合だけ書込み動作が行われ
(当該エントリの無効化が行われ)、不一致の場合には
書込み動作は行われない(当該エントリは無効化されな
い)。
【0047】このようにアドレス変換バッファTLBを
アドレス空間にマッピングしアドレスを指定してアクセ
ス可能にすると、そのアクセスは、殆どの命令セットに
必ず含まれるMOV命令のような一般的なデータ転送命
令を以て実現できる。したがって、アドレス変換バッフ
ァTLBをアクセスするための専用命令を要さず、命令
コードの種類を少なくでき、命令語長の短縮に寄与でき
る。換言すれば、アドレス変換バッファTLBをアクセ
スするための専用命令を採用する必要がないから、中央
処理装置CPUの内部で命令をデコードするための命令
デコーダIDの論理規模の増大を抑えることができる。
更に、命令語長を短くしなければならないようなマイク
ロコンピュータのアークテクチャ上の要請にも容易に対
処できる。例えば本実施例のマイクロコンピュータMP
Uが16ビット固定長命令を採用するならば、比較的短
い命令コード故に当該命令コードは貴重なリソースとし
て位置付けられる。このため、アドレス変換バッファT
LBをアドレス空間にマッピングしアドレスを指定して
アクセス可能にするということは、命令デコーダIDの
ハードウェア変更量を少なくでき、命令コードの新規追
加を不要にできる。また、アドレスアレイ部TA−ar
yに対するライトアクセスのためのアドレスフォーマッ
トには連想ビットAが含まれ、これによって連想書込み
の有無を任意に指定できるようにしたので、本来アドレ
ス比較を要するTLBエントリの無効化の処理とデバイ
ステスト時のような本来アドレス比較を要しないような
書き換えとの双方の要求に容易に対処することができ
る。
【0048】《キャッシュエントリ》 図9にはキャッ
シュメモリCACHE−Mのエントリ構成が示される。
アドレス部は22ビットのアドレスタグ(エントリの物
理アドレスのビット31〜ビット10)TAG、バリッ
ドビットV(V=1は当該エントリの有効、V=0は当
該エントリの無効を意味する)、アップデートビットU
(U=1は当該キャッシュエントリが書き換えられたこ
と、U=0は当該エントリが書き換えられていないこと
を意味する)、及び6ビットのLRUフィールドL(キ
ャッシュエントリのリプレースメントのためのLRUア
ルゴリズムにしたがってエンコードされたデータ)を有
し、データ部は夫々32ビットのロングワードデータの
領域を4個(16バイト)有する。
【0049】《キャッシュユニットの構成モジュール》
図10にはキャッシュユニットCACHEのブロック
図が示される。キャッシュメモリCACHE−Mは例え
ばSRAMから構成され、4ウェイセットアソシアティ
ブ形式を実現するために4個のバンク(ウェイとも記
す)BNK0〜BNK3を供え、各バンクBNK0〜B
NK3はキャッシュエントリのアドレス部を格納するた
めのアドレスアレイ部CA−aryと、キャッシュエン
トリのデータ部を格納するためのデータアレイ部CD−
aryとに分けられている。一つのキャッシュエントリ
はアドレスアレイ部CA−aryとデータアレイ部CD
−aryにまたがって格納される。夫々のバンクBNK
0〜BNK3は128個のキャッシュエントリを格納す
る。したがって各バンクから一つのエントリを選択する
ためには7ビットのインデックスアドレスIDXが必要
とされる。一つのキャッシュエントリは16バイトのデ
ータを保有できるので、インデックスアドレスは論理ア
ドレスのビット10〜ビット4とされる。インデックス
アドレスIDXはアドレスアレイ部CA−ary及びデ
ータアレイ部CD−aryの各バンクBNK0〜BNK
3に共通に供給される。論理アドレスのビット3〜ビッ
ト0は16バイトのデータをバイト単位で指定する情報
とみなすことができる。
【0050】キャッシュメモリCACHE−Mのデータ
記憶容量は、1個のバンク当たり約2KB(16B×1
28)であり全体で8KB(2KB×4)とされる。ペ
ージサイズが4KBのときキャッシュエントリのアドレ
スタグTAGは、論理アドレスページ番号vpn(ビッ
ト31〜ビット12)をアドレス変換ユニットMMUに
て変換した物理ページ番号ppnと論理アドレスのビッ
ト11(論理アドレスのオフセットの最上位ビット)を
合わせた物理アドレスのビット31〜ビット11すなわ
ちppn(31−11)と比較される。ページサイズが
1KBのときキャッシュエントリのアドレスタグTAG
は、論理アドレスページ番号vpn(ビット31〜ビッ
ト10)をアドレス変換ユニットMMUにて変換した物
理ページ番号ppnのうちビット31〜ビット11すな
わちppn(31−11)と比較される。アドレスタグ
TAGを構成する物理アドレスのビット10は上記アド
レス比較には利用されない。これは後述するように専ら
ライトバックにおける書き戻しアドレスの生成に利用さ
れる。上記アドレス比較はバンク毎にコンパレータCM
P0〜CMP3にて行われ、その比較結果はヒット信号
hit11〜hit14にて制御部CACHE−Cに与
えられる。図11にはページサイズ4KBの場合におけ
るキャッシュエントリ選択手法が模式的に示されてい
る。
【0051】図10において制御部CACHE−C(キ
ャッシュコントローラCACHE−Cとも記す)は上記
読出されたキャッシュエントリの情報とヒット信号hi
t11〜hit14などを受け、それらに従ってキャッ
シュミス/ヒットなどに関する処理を行う。例えばリー
ドアクセスにおいてアドレスタグTAGの比較動作が一
致の場合にはバリッドビットVが調べられ、V=1なら
ばキャッシュヒットとされ、論理アドレスのビット2及
び3にて当該エントリの16バイトのデータから対応す
る4バイトのデータをキャッシュバスC−busに出力
する。リードアクセスに際してアドレスタグTAGの比
較動作が不一致又は選択されたエントリのバリッドビッ
トV=0ならばキャッシュミスとされ、外部バスサイク
ルが起動されて外部メモリMMRYから目的とするデー
タが読み込まれ、それが新たなキャッシュエントリとし
てロードされる。新たなエントリによって置き換えられ
るべきキャッシュラインは例えばハードウェアによりL
RUアルゴリズムにて選択される。置き換えられるべき
キャッシュラインのエントリのアップデートビットU=
1ならば、そのエントリは置き換えの前にライトバック
バッファWBBUFにストアされ、エントリの置き換え
後に外部メモリMMRYの対応アドレスに書き戻され
る。キャッシュメモリCACHE−Mと外部メモリMM
RYとのデータの整合を保つためである。リプレースさ
れた新たなキャッシュエントリは、それがライトミスに
起因するものであるときにはライトの後にU=1とさ
れ、リードミスに起因するものであるときにはU=0の
ままとされる。
【0052】ライトアクセスにおいてもキャッシュメモ
リCACHE−Mに対するインデックスはリードアクセ
スと同様に行われる。キャッシュヒットの場合には、書
込みデータが当該キャッシュヒットに係るキャッシュエ
ントリに書き込まれると共に当該キャッシュエントリの
アップデートビットUを論理値1にセットするための書
込みが行われる。書込みアクセスにおいてキャッシュミ
スを生じた場合には、新たなキャッシュラインに書き込
まれることになる。このとき置き換えられるべきキャッ
シュラインのエントリが保有するアップデートビットU
=1ならば、そのエントリは置き換えの前にライトバッ
クバッファWBBUFにストアされ、エントリの置き換
え後に外部メモリMMRYの対応アドレスに書き戻され
る。リプレースされた新たなキャッシュエントリにおけ
るアップデートビットUは論理値1にされる。
【0053】上述の新たなキャッシュエントリのロー
ド、キャッシュエントリの無効化、アップデートビット
Uのリード/ライトなどにおいてはバンクを指定してキ
ャッシュメモリCACHE−Mをアクセスすることを要
する。それに対処するためにキャッシュメモリCACH
E−Mは以下に説明するところのアドレス指定アクセス
が可能にされる。
【0054】キャッシュメモリCACHE−Mのアドレ
ス指定アクセスのためのハードウェア構成として図10
の制御回路CACHE−Cには、書き込み選択回路WS
2、書き込み制御ゲートGT2、読み出し選択回路RS
2、アドレスデコーダDEC2、オアゲートOR2が示
される。書き込み経路W2−passは書き込み選択回
路WS2からアドレスアレイ部CA−ary及びデータ
アレイ部CD−aryの各バンクBNK0〜BNK3に
結合される。書き込み選択回路WS2はアドレスデコー
ダDEC2から出力されるデコード信号としてのアレイ
部選択信号S2−aryとバンク選択信号S2−bnk
にてアドレスアレイ部CA−ary又はデータアレイ部
CD−aryの一つのバンクを選択して書き込みデータ
を供給する。制御ゲートGT2は書き込み選択回路WS
2に、外部から与えられた書き込みデータを供給する。
制御ゲートGT2はオアゲートOR2の出力がハイレベ
ルにされることを条件に書き込みデータを書き込み選択
回路WS2に与える。したがって、後述の連想ビットA
がハイベルのときは、ヒット信号hit11〜hit1
4の何れかがハイレベルにされることを条件に書き込み
制御ゲートGT2が開かれ、連想ビットAがローレベル
のときは、ヒット信号hit11〜hit14のレベル
とは無関係に書き込み制御ゲートGT2が開かれる。読
み出し選択回路RS2は、アドレスアレイ部CA−ar
y及びデータアレイ部CD−aryでインデックスされ
て読み出し経路R2−passに読出されてくるデータ
を受け、アドレスデコーダDEC2から出力されるアレ
イ部選択信号S2−aryとバンク選択信号S2−bn
kにてアドレスアレイ部CA−ary又はデータアレイ
部CD−aryの一つのバンクからの読み出しデータを
外部に出力可能にする。書き込み選択回路WS2は書き
込み動作が指示されることによって動作可能にされ、読
み出し選択回路RS2は読み出し動作が指示されること
によって動作可能にされる。書き込み又は読み出しの指
示は中央処理装置CPUが論理アドレスと共に出力す
る。尚、キャッシュ動作において、各バンクBNK0〜
BNK3でインデックスされた情報は、読み出し選択回
路RS2を通らず、図示しない制御回路CACHE−C
内部の制御論理にてキャッシュミス/ヒットの制御に利
用される。
【0055】《アドレスタグのライトバックへの考慮》
本実施例のマイクロコンピュータMPUにおいて上記
キャッシュユニットCACHEにはライトバック(コピ
ーバックとも称される)方式が採用される。即ち、ライ
トアクセスにおいてキャッシュメモリCACHE−Mが
書き換えられたとき当該書き換えられた内容を、キャッ
シュミスが生じてそのエントリが新たなエントリにリプ
レースされるときに外部メモリMMRYに書き戻すとい
う手法である。上述のようにエントリをリプレースする
ときに新たなエントリによって置き換えられるべきエン
トリのアップデートビットU=1ならば、当該エントリ
は外部メモリMMRYに書き戻される。このようにして
書き戻すときの書込みアドレスは、当該書き戻されるべ
きキャッシュラインのアドレスタグTAGの情報と、そ
のときのキャッシュミスに係る論理アドレス情報(特に
論理アドレスにおけるオフセット部分)を用いて生成し
なければならない。
【0056】本実施例のキャッシュメモリCACHE−
Mの1個のバンクにおけるデータ記憶容量は上述のよう
に2KBである。本実施例においてアドレスはバイトア
ドレスである。キャッシュメモリCACHE−Mをイン
デックスしてバンクから一つのロングワードデータ(4
バイト)を指定するには論理アドレスのビット10まで
を必要とする。論理アドレスのビット11〜ビット31
まではアドレスタグTAGとのアドレス比較に利用され
る。即ちアドレス比較という点に関してアドレスタグT
AGには物理アドレスのビット31〜ビット11が保持
されていることが必要とされる。このとき本実施例のマ
イクロコンピュータMPUはページサイズを1KBと4
KBに可変に設定できるようになっている。ページサイ
ズが1KB(1個のバンクにおけるデータ記憶容量より
も小さな記憶容量とされる)のときページ番号はアドレ
スのビット31〜ビット10によって特定される。した
がってページサイズが1KBのときにライトバックを行
うには、少なくとも物理アドレスのビット31〜ビット
10で規定される物理ページアドレスが必要であり、こ
の情報がアドレスタグTAGになければライトバックの
ための書き戻しアドレスを特定することは困難になる。
そこで、キャッシュエントリはマイクロコンピュータM
PUがサポートする最小ページサイズに対応した物理ペ
ージ番号の全ビット(物理アドレスのビット31〜ビッ
ト10)をアドレスタグTAGとして保有するためのフ
ィールドを有し、インデックスされたエントリのアドレ
ス比較に際してはアドレスタグTAGにおける物理アド
レスのビット31〜ビット11を利用し(1KB/4K
Bページサイズの何れにおいてもビット10は不使
用)、ライトバックの際の書き戻しアドレスの生成には
アドレスタグTAGのフィールドに含まれる物理アドレ
スのビット31〜ビット10が利用される。ページサイ
ズが1KBのときは当該アドレスタグに含まれる物理ア
ドレスのビット31〜10を全部使用し、ページサイズ
が4KBのときは物理アドレスのビット31〜12を利
用する。
【0057】このようにページサイズがキャッシュメモ
リCACHE−Mの1個のバンクにおけるデータ記憶容
量よりも小さな容量とされる場合に、そのページサイズ
に対応した物理ページ番号を全ビット保有できるサイズ
のアドレスタグTAGのフィールドを採用し、アドレス
比較に必要なビット数を超えてそこに物理アドレス情報
を保有させることにより、インデックスされたキャッシ
ュエントリに対するアドレス比較とライトバックの双方
の要求を満足するに必要且つ充分なキャッシュメモリと
することができる。
【0058】《キャッシュメモリのアドレス指定アクセ
ス》 キャッシュメモリCACHE−Mもアドレス変換
バッファTLBと同様に論理空間の上記P4領域にマッ
ピングされ、MOV命令のような一般的なデータ転送命
令にてアドレスを指定してリード・ライト可能にされて
いる(Memory Mapped CACHE)。アドレスアレイ部CA
−aryはH'F0000000〜H'F0FFFFFF
にマッピングされ、データアレイ部CD−aryはH'
F1000000〜H'F1FFFFFFにマッピング
される。P4領域(H'E0000000〜H'FFFF
FFFF)は図3(A)からも明らかなようにオペレー
ティングシステムやシステムプログラムが走行する特権
状態(特権モード)によってアクセス可能な空間とされ
る。
【0059】キャッシュメモリCACHE−Mに対する
アクセスアドレスを指定するためのアドレスフォーマッ
トは図12に示される。アドレスアレイ部CA−ary
に対するリード/ライトのアドレスのビット31〜ビッ
ト24はH'F0(11110000)とされる。デー
タアレイ部CD−aryに対するリード/ライトのアド
レスのビット31〜ビット24はH'F1(11110
001)とされる。これによってキャッシュユニットC
ACHEの制御部CACHE−Cはデータアレイ部CD
−aryやアドレスアレイ部CA−aryに対するアド
レス指定アクセスを認識する。このとき、アクセス対象
バンク(ウェイ)の指定はビット12〜ビット11の2
ビット(W)で指定され、エントリの指定(キャッシュ
ラインの指定)はビット10〜ビット4の7ビット(E
NTRY)で指定される。制御部CACHE−Cはそれ
らの情報にしたがい、アクセス論理アドレスのビット3
1〜ビット24のH'F0又はH'F1に応じ信号S2−
aryにてアドレスアレイ部CA−ary又はデータア
レイ部CD−aryを指定し、バンク指定ビットWに応
じ信号S2−bnkにて1個のバンクを指定し、エント
リ指定ビットENTRYに応ずるインデックスアドレス
IDXにてバンク内に一つのキャッシュエントリ(キャ
ッシュライン)を指定する。これにより、データアレイ
部CD−ary又はアドレスアレイ部CA−aryにお
ける所定バンクの所定エントリをアドレスにて指定可能
にされる。
【0060】図10を参照して更に詳述する。システム
バスS−bus上の論理アドレスは図10のアドレスデ
コーダDEC2にも供給される。アドレスデコーダDE
C2は図12のアドレスフォーマットに示されるよう
に、論理アドレスのビット31〜ビット24のH'F0
又はH'F1を検出することによって、キャッシュメモ
リCACHE−Mに対するアドレス指定アクセスを認識
する。中央処理装置CPUが出力するSバスコマンドを
コマンドデコーダDCRがデコードすることによってリ
ード/ライト信号R/Wが形成される。したがって、ア
クセスがリード動作かライト動作かはコマンドデコーダ
DCRから出力されるリード/ライト信号R/Wによっ
て決まる。図12のアドレス及びデータフォーマットに
示されるように、アドレスアレイ部に対するリードデー
タ及びライトデータはアドレスタグTAG(31−1
0)、LRU、Uビット、及びVビットとされる。アド
レスアレイ部に対する書き込みだけで当該エントリを無
効化できるようにVビットが含まれている。データアレ
イ部に対するリードライトデータは16バイトのデータ
とされる。
【0061】アドレスアレイ部CA−aryに対するラ
イトアクセスの場合には図12に示されるように、アド
レスのビット3に連想ビットAが割り当てられる。連想
ビットAは連想して(前記アドレス比較を行って)書込
みを行うか否かを指示するビットとされ、A=1の場合
にはアドレス比較の結果がヒットの場合にのみ該当エン
トリへの書込みを許容し(ミスの場合には書込みを行わ
ない)、A=0の場合にはアドレス比較を行わずアドレ
スで選択されたエントリへの書込みを許容することを意
味する。連想ビットAで指示されるアドレスアレイへの
連想書込みにおける比較対象アドレスは書込みデータに
含まれるアドレスタグTAGである。このような連想書
込みは特定のキャッシュエントリを無効化するためにV
ビットを論理値0に書き換えるような場合に利用され
る。エントリの無効化の処理例は図8に示される。デー
タアレイ部CD−aryに対するアクセスの場合にはそ
のアドレスのビット3〜ビット2にはロングワードセレ
クトビットLSが割り当てられている。ロングワードセ
レクトビットLSはアクセス対象とするロングワードデ
ータを2ビットで指定する。図10に示されるようにA
=1の場合には、オアゲートOR2の出力はヒット信号
hit11〜hit14の何れかがヒットレベル(ハイ
レベル)にされない限りローレベルを維持するから、ア
ドレス比較結果がヒットになって初めて書き込みデータ
が書き込み選択回路WS2に供給される。A=0で指示
される非連想書込みでは、アドレス比較結果とは無関係
に書き込み制御ゲートGT2が開かれるので、デバイス
テストにおいてアドレスアレイ部CA−aryを単に書
き換える場合などに利用される。
【0062】上述のアドレスマッピングされたキャッシ
ュメモリCACHE−Mに対するリードアクセスは、M
OV命令のようなデータ転送命令を利用して実行でき
る。その命令記述は例えば、MOV @R1,R0とさ
れる。@R1は転送元アドレスであり、適当なレジスタ
R1に図12で説明したフォーマットのアドレスが設定
される。R0は転送先レジスタである。この命令を実行
することにより、キャッシュメモリCACHE−MはM
OV命令でアクセス可能なメモリと同様にリードアクセ
スされ、そのリードデータはレジスタR0に転送され
る。キャッシュメモリCACHE−Mに対するライトア
クセスも同様であり、その命令記述は例えば、MOV
R0,@R1とされる。@R1は転送先アドレスであ
り、適当なレジスタR1に図12で説明したフォーマッ
トのアドレスが設定される。R0は転送元レジスタであ
り、書込みデータが保持される。この命令を実行するこ
とにより、キャッシュメモリCACHE−Mはその他の
メモリ同様にMOV命令でライトアクセスされる。この
場合、A=1をアドレス情報に含め、無効化したいエン
トリのアドレスタグTAGとV=0を書込みデータに含
めて上記命令を実行したとき、アドレス比較が一致(キ
ャッシュヒット)の場合だけ書込み動作が行われ(当該
キャッシュエントリが無効化され)、不一致の場合には
書込み動作は行われない(当該キャッシュエントリは無
効化されない)。
【0063】このようにキャッシュメモリCACHE−
Mをアドレス空間にマッピングし、アドレスを指定して
アクセス可能にすると、そのアクセスは、ほとんどの命
令セットに含まれるMOV命令のような一般的なデータ
転送命令を以て実現できる。したがって、キャッシュメ
モリCACHE−Mをアクセスするための専用命令を要
さず、命令コードの種類を少なくでき、命令語長の短縮
に寄与できる。換言すれば、キャッシュメモリCACH
E−Mをアクセスするための専用命令を採用する必要が
ないから、中央処理装置CPUの内部で命令をデコード
するための命令デコーダIDの論理規模の増大を抑える
ことができる。更に、命令語長を短くしなければならな
いようなマイクロコンピュータのアークテクチャ上の要
請にも容易に対処できる。例えば本実施例のマクロコン
ピュータMPUが16ビット固定長命令を採用するなら
ば、比較的短い命令コード故に当該命令コードは貴重な
リソースとして位置付けられる。このため、キャッシュ
メモリCACHE−Mをアドレス空間にマッピングしア
ドレスを指定してアクセス可能にするということは、命
令デコーダIDのハードウェア変更量を少なくでき、命
令コードの新規追加を不要にできる。また、アドレスフ
ォーマットにはAビットを含めて連想書込みの有無を任
意に指定できるようにしたので、本来アドレス比較を要
するキャッシュエントリの無効化の処理とデバイステス
ト時のような本来アドレス比較を要しないような書き換
えとの双方の要求に容易に対処することができる。
【0064】図15には前記キャッシュメモリCACH
E−M及びアドレス変換バッファTLBに対するアドレ
ス指定アクセスが中央処理装置CPUの特権モードにお
いてのみ可能にされることを示すブロック図である。同
図においてキャッシュメモリCACHE−M及びアドレ
ス変換バッファTLBに対するアクセス制御はそれに対
するインデックスを主体に図示されている。アドレス変
換バッファTLBには論理アドレスのビット16〜12
がインデックスアドレスとして供給される。アドレス指
定アクセスにおいてそれらのビットは図7のアドレス指
定アクセスにおけるアドレスフォーマットのバンク指定
ビットENTRYに相当される。キャッシュメモリCA
CHE−Mには論理アドレスのビット10〜4がインデ
ックスアドレスとして供給される。アドレス指定アクセ
スにおいてそれらのビットは図12のアドレス指定アク
セスにおけるアドレスフォーマットのバンク指定ビット
ENTRYに相当される。アクセス権チェック回路60
は、図3のメモリマップから明らかなように、その論理
アドレスが特権モードにおいてのみアクセスが許容され
る領域P1〜P4のアドレスか否かを論理アドレスの最
上位側の4ビットにて判定する。アクセス権チェック回
路60はモードビットMDを入力し、それによって論理
アドレスに特権違反(ユーザモードにおける領域P1〜
P4のアクセス)がないかを判定し、特権違反に対して
はアドレスエラーを中央処理装置CPUに通知する。中
央処理装置CPUはそれによって現在の命令実行を中断
して例外処理に分岐される。図7及び図12に示される
ようにキャッシュメモリCACHE−M及びアドレス変
換バッファTLBはP4領域にマッピングされるので、
それらに対する前記アドレス指定アクセスは特権モード
においてのみ可能にされる。尚、レジスタPTEH及び
MMUCRはキャッシュコントローラCACHE−Cに
含まれる一部のコントロールレジスタ、XORは排他的
論理和回路、18は選択回路であり、それらについては
次の実施例説明で明らかにする。
【0065】以上の実施例説明ではマイクロコンピュー
タMPUは複数ページサイズをサポートするものとし
た。本発明が適用されるマイクロコンピュータはその他
に、複数のインデックス方法をサポートし、TLBエン
トリなどに対するリプレースの自由度を向上させ、単一
仮想記憶と多重仮想記憶の双方をサポートする機能が付
加されていてもよい。以下、図16から図33を参照し
ながらマイクロコンピュータMPUにおける前記複数の
インデックス方法のサポートなどについて説明する。
【0066】図20にはメモリマネージメントユニット
MMUを主体として、マイクロコンピュータのブロック
図が示される。同図に示されるマイクロコンピュータ
は、特に制限されないが、公知の半導体集積回路製造技
術によって単結晶シリコンのような1個の半導体基板に
形成されている。同図には論理アドレスバスVABU
S、物理アドレスバスPABUS、データバスDBU
S、中央処理装置CPU、キャッシュユニットCACH
E、バッファメモリとしてのアドレス変換バッファTL
B、及びTLBコントローラTLB−Cが代表的な回路
ブロックとして図示されている。中央処理装置CPUは
図示しないプログラムメモリから命令をフェッチし、そ
の命令記述に応じたデータ処理を行い、外部アクセスを
要する場合には論理アドレスバスVABUSに論理アド
レスを出力し、データバスDBUSにデータを入出力を
行う。キャッシュユニットCACHEは、特に制限され
ないが、4ウェイ・セットアソシアティブ形式とされ、
バンクに対するインデックスは論理アドレスバスVAB
USから供給される論理アドレスの一部を用いて行わ
れ、エントリのタグ部には物理アドレスが保有され、イ
ンデックスされたタグ部はその論理アドレスがアドレス
変換バッファTLBで変換されて物理アドレスバスPA
BUSに出力される物理アドレスと比較され、その比較
結果に応じてキャッシュミス/ヒットを判定する。
【0067】本実施例のマイクロコンピュータは、論理
アドレス空間を論理ページと呼ばれる単位に分割し、そ
のページ単位で論理アドレスを物理アドレスへアドレス
変換を行うための仮想記憶をサポートする。上記アドレ
ス変換バッファTLBは論理ページ番号VPNとこれに
対応した物理ページ番号PPNとに関する変換対などを
TLBエントリとして格納し、TLBコントローラTL
B−Cは中央処理装置CPUが出力する論理アドレスを
アドレス変換バッファTLBなどを用いて物理アドレス
に変換する。そのアドレス変換バッファTLBは夫々イ
ンデックスアドレスが共通化された4個のバンクを持つ
4ウェイ・セットアソシアティブ方式のキャッシュメモ
リによって構成される。図面が複雑になるのを避けるた
めに、図20には代表的に1個のバンクBNK0のみが
図示されているが、実際には図6のようにバンクBNK
0と同様の別のバンクBNK1〜BNK3が紙面の表裏
方向に配置されている。上記アドレス変換バッファTL
B、TLBコントローラTLB−C、中央処理装置CP
U、及びアドレス変換とメモリ保護のためのシステムソ
フトウェア若しくはオペレーティングシステムによっ
て、上記仮想記憶をサポートするアドレス変換機構が構
成される。
【0068】本実施例マイクロコンピュータのアドレス
空間については図3(A)及び図3(B)に基づいて既
に説明した通りである。また、本実施例のマイクロコン
ピュータを特権モードに設定する仕方として、1)例外
や割り込みの発生、2)特権状態セット命令(TRAP
A)の実行の2通りがある。図5や図10において説明
したアドレス変換バッファTLB及びキャッシュメモリ
CACHEをアクセスする際、マイクロコンピュータを
特権モードにする仕方としては、特に制限されないが前
記2)方法とする。もちろん、前記1)の仕方でマイク
ロコンピュータを特権モードに設定し、アドレス変換バ
ッファTLB及びキャッシュメモリCACHEをアクセ
スしてもかまわない。特権状態(特権モードが設定され
ている状態であり、中央処理装置CPUはすべての命令
を実行することが可能となり、かつすべてのレジスタを
アクセスすることができる)は、ユーザ状態(ユーザモ
ードが設定されている状態であり、中央処理装置CPU
はシステムに重大な影響を与える命令の実行やシステム
が管理するレジスタ及びメモリ領域のアクセスはでき
ず、特定命令実行、特定レジスタ及び特定メモリ領域の
アクセスのみ可能)ではアドレスエラーとされるアドレ
ス空間をアクセスでき、ユーザ状態では実行不可能な特
権命令若しくはシステム制御命令を実行することができ
る、などという点においてユーザ状態と相違される。特
に制限されないが、モードビットMDが"1"のとき中央
処理装置CPUは特権モードとされ、モードビットMD
が"0"のとき中央処理装置CPUはユーザモードとされ
る。
【0069】また上記実施例同様に、本実施例のマイク
ロコンピュータがサポートする論理ページのサイズは4
KBと1KBの双方とされ、サポートされる論理ページ
の最大サイズ(=4KB)が最小サイズ(=1KB)の
2のべき乗数倍にされ、アドレス変換バッファTLBの
バンクの数(=4)がその2のべき乗数以上であるとい
う関係を満足している。このときの論理ページサイズと
オフセット及び論理ページ番号(論理ページアドレス)
との関係は図4に基づいて既に説明した通りであり、ア
ドレス変換バッファTLBに対するインデックスには、
ページサイズが4KBであるか1KBであるかに拘わら
ず、4KBページサイズの論理ページアドレスの下位5
ビットのビット位置の情報、換言すれば、32ビットの
論理アドレスのビット12〜ビット16が用いられる。
アドレス変換バッファTLBに格納されるエントリにつ
いても図4に基づいて既に説明した内容と同じである。
【0070】ここで単一仮想記憶と多重仮想記憶の概念
を図32(A)及び図32(B)に基づいて説明する。
多重仮想記憶とは、複数のプロセスの夫々が論理空間の
全域にわたる各々のアドレス変換情報を有するときには
プロセス番号asidによって論理アドレスを修飾或い
は拡張するというものである。単一仮想記憶とは、複数
のプロセスに論理アドレス空間の一部が排他的に割り当
てられ夫々のプロセスがそれに割り当てられた論理アド
レス空間のアドレス変換情報を有するときにはプロセス
番号asidによって論理アドレスを修飾或いは拡張し
ないというものである。このように、単一仮想記憶にお
いては、複数のプロセス間で排他的に論理アドレス空間
が割り当てられるため図32(B)で示されるようにプ
ロセスに割り当てられた論理アドレス空間毎にそれ固有
のアドレス変換情報が存在する。そのため、アドレス変
換テーブルは一つ存在するだけである。当該一つのアド
レス変換テーブルを用いれば、ある論理アドレスAはそ
れに対応される物理アドレスDに一義的に変換される。
これに対して多重仮想記憶においては複数のプロセス間
で論理アドレス空間が相互に重複して割り当てられる。
そのため、プロセス毎のアドレス変換情報は相互に別々
のアドレス変換テーブルに含まれなければならない。し
たがって、ある論理アドレスAは相互に異なるアドレス
変換テーブルi,jを介することによって異なる物理ア
ドレスB,Cに変換されることになる。このとき変換に
係る論理アドレスAがどのプロセスに属するかは、プロ
セス番号によって識別される。図32(A)に従えば、
多重仮想記憶においてアドレス変換テーブルiはプロセ
ス番号iに対応され、アドレス変換テーブルjはプロセ
ス番号jに対応される。プロセス番号は、互いに同じ論
理アドレス空間を使う(アクセスする)ところの複数の
プロセスにおける識別番号とみなすこともできる。
【0071】図20において上記TLBコントローラT
LB−Cは制御回路(CTRL)50、ページテーブル
エントリ上位(PTEH)レジスタ51、ページテーブ
ルエントリ下位(PTEL)レジスタ52、変換テーブ
ルベース(TTB)レジスタ53、TLB例外アドレス
(TEA)レジスタ54、及びコントロール(MMUC
R)レジスタ55を備える。後で図34を用いて説明す
るように、これらのレジスタは中央処理装置CPUによ
って直接リード/ライト可能にされる。その他のレジス
タ51〜53も中央処理装置CPUによって直接アクセ
ス可能とされる。
【0072】図19に示されるようにPTEHレジスタ
51,PTELレジスタ52は、TLBミスなどにおい
てアドレス変換バッファTLBのエントリを更新又は追
加するためのページテーブルエントリを保有できるフィ
ールドが備えられている。また、PTEHレジスタ51
には、ソフトウエアの実行によって、中央処理装置CP
Uから、現在のプロセスの空間番号asidがセットさ
れる。また、PTEHレジスタ51は、TLBミスなど
が発生した場合、中央処理装置CPUが出力しているT
LBミスの論理ページアドレスvpnを保持する機能も
兼ね備えている。中央処理装置CPUが出力する論理ア
ドレスのオフセットは制御回路(CTRL)50内部の
図示しないラッチ回路に保持される。TTBレジスタ5
3は現在のページテーブルのベースアドレスを指してい
る。TEAレジスタ54はTLBに関する例外又はアド
レスエラー例外を生じた論理アドレスを保持する。MM
UCRレジスタ55は、アドレス変換を有効にするか無
効にするかを指示するビットAT(論理値1=有効,論
理値0=無効)、アドレス変換バッファTLBのフラッ
シングを指示するビットTF、2ビットのランダムカウ
ンタフィールドRC、インデックスモードを指定するイ
ンデックスモードビットIX、単一仮想記憶と多重仮想
記憶との何れを選択するかを指示するシングルバーチャ
ルビットSV(SV=1で単一仮想記憶を選択,SV=
0で多重仮想記憶を選択)を含む。上記インデックスモ
ードビットIX=1の場合には、図17に示されるよう
に、asid(4−0)即ち現在の空間番号asidの
ビット0〜ビット4と、論理ページ番号vpnのビット
12〜ビット16と、を利用したインデックス手法が選
択され、IX=0の場合には図16に示されるように、
中央処理装置CPUから出力されているところの論理ペ
ージ番号vpnのビット12〜ビット16を利用したイ
ンデックス手法が選択される。さらに詳しく述べるなら
ば、IX=1の場合におけるインデックスアドレスは、
図20に示されるようにPTEHレジスタ51が保有す
る空間番号asidのビット0〜ビット4と中央処理装
置CPUから出力されている論理ページ番号vpnのビ
ット12〜ビット16すなわちvpn(16−12)を
入力する排他的論理和ゲートXORの出力とされる。図
20のセレクタ18は排他的論理和ゲートXORでハッ
シングされた出力又はvpn(16−12)の何れかを
インデックス用アドレスとして選択する。その選択制御
はインデックスモードビットIXの値にしたがって決定
され、制御回路50から出力される選択信号550にて
行われる。
【0073】図20において、中央処理装置CPUから
出力される論理アドレスの論理ページ番号vpn(31
−10)の内、ビット12〜ビット16に相当されるv
pn(16−12)はTLBの4個のバンクBNK0〜
BNK3に共通なインデックスアドレス2の生成に利用
される。上記のように、論理ページ番号は5ビットで表
されるため、共通なインデックスアドレス2によって夫
々のバンクにおいて32個のエントリから一つが選択さ
れて読出される。選択される夫々のエントリは、VPN
(31−17),VPN(11−10),ASID,S
H,SZ,V,PPN(31−10),PR,C,Dを
含む。読出されたVPN(31−17)はコンパレータ
151によって、中央処理装置CPUから出力されてい
る論理アドレスのvpn(31−17)と比較される。
VPN(11−10)は、コンパレータ152によっ
て、中央処理装置CPUから出力されている論理アドレ
スのvpn(11−10)と比較される。読み出された
プロセス番号ASIDは、PTEHレジスタ51が保有
する現在のプロセス番号asidとコンパレータ153
にて比較される。比較結果に対しては制御ロジック15
4が、共有ステータスSH,サイズビットSZ、シング
ルバーチャルビットSV,及びモードビットMDの値を
考慮してバンクBNK0のミス/ヒットの判定を行う。
hit1はバンクBNK0におけるミス/ヒットの判定
結果としてのヒット信号である。上記コンパレータ15
1〜153及び制御ロジック154は各バンクBNK0
〜BNK3に設けられている。図20ではバンクBNK
1〜BNK3に関しては夫々のヒット信号hit2〜h
it4が代表的に示されている。本実施例に従えば各コ
ンパレータ151〜153の出力はハイレベルが一致レ
ベルとされる。ヒット信号hit1〜hit4はハイレ
ベルがヒットレベルとされる。制御回路50はヒット信
号hit1〜hit4の何れかがヒットレベルにされる
ことを以てTLBヒットと判定する。図20の501は
TLBヒット/ミスの判定結果を中央処理装置CPUに
通知するTLBヒット信号である。TLBミスが発生し
たときには、アドレス変換バッファTLBのエントリを
置換する処理が行われる。この変換処理において、置換
されるべきエントリの内容はPTEHレジスタ51,P
TELレジスタ52に保持され、PTEHレジスタ5
1,PTELレジスタ52からアドレス変換バッファT
LBに変換されるべき情報が供給され、アドレス変換バ
ッファTLBに格納される。変換されるべきエントリを
選択するためのインデックス手法はリード時におけると
インデックス手法と同じであるが、どのバンク(セッ
ト)に当該エントリを格納するかはMMCCRレジスタ
55のRCの値(MMUCR.RC)によって決定され
る。
【0074】図33には前記制御ロジック154の一例
論理構成が示される。1541は3入力アンドゲート、
1542は2入力オアゲート、1543は2入力オアゲ
ートである。オアゲート1542は、インデックスされ
たTLBエントリ(インデックスアドレスによって選択
され、読み出されたエントリ)に含まれるVPN(11
−10)と論理アドレスに含まれるvpn(11−1
0)との比較結果であるコンパレータ152の出力と、
上記インデックスされたTLBエントリからのサイズビ
ットSZとを入力する。サイズビットSZ=1によって
指示される4KBの論理ページサイズにおいてはTLB
ミス/ヒット判定のためのアドレス比較においてTLB
エントリ内のVPN(11−10)と中央処理装置CP
Uからのvpn(11−10)との比較は行う必要がな
い。そのため、サイズビットSZ=1の状態では、アン
ドゲート1541の出力信号hit1には上記アドレス
ビット11,10の比較結果は反映されない。サイズビ
ットSZ=0によって指示される1KBの論理ページサ
イズではTLBミス/ヒット判定のためにアドレスビッ
ト11,10の比較動作が必要とされ、その結果が信号
hit1に反映される。
【0075】前記オアゲート1543は、インデックス
されたTLBエントリに含まれるプロセス番号ASID
と現在のプロセス番号(PTEHレジスタ51から出力
されているプロセス番号)asidとの比較結果である
コンパレータ153の出力と、上記インデックスされた
TLBエントリからの共有ビットSHとを入力する。共
有ビットSH=1(プロセス間での論理ページの共有)
の状態ではTLBミス/ヒット判定のためのアドレス比
較においてプロセス番号間の比較を要しないから、共有
ビットSH=1の状態では、アンドゲート1541の出
力信号hit1にはプロセス番号の比較結果は反映され
ない。共有ビットSH=0(プロセス間での論理ページ
の非共有)の状態ではTLBミス/ヒット判定のための
アドレス比較においてプロセス番号間の比較を要するか
ら、共有ビットSH=0の状態では、アンドゲート15
41の出力信号hit1にはプロセス番号の比較結果が
反映される。
【0076】ここで、TLBエントリが保有するプロセ
ス番号ASIDは、単一仮想記憶においてメモリ保護情
報(ドメイン番号)として利用される。すなわち、単一
仮想記憶でも多重仮想記憶でも共有ビットSHによって
共有又は非共有が指示される。非共有が指示されている
とき、多重仮想記憶においては現在のプロセス番号as
idとTLBエントリに含まれるプロセス番号ASID
の不一致はTLBミスとされる。これに対して、非共有
が示されているとき、単一仮想記憶においてプロセス番
号asid,ASID間の不一致はTLBプロテクト違
反例外の検出に利用される。それを実現するために、制
御回路50にはアクセス権チェックのための一つの論理
として図33に示されるアンドゲート502を有する。
このアンドゲート502は、前記オアゲート1543の
反転出力、MMUCRレジスタからのシングルバーチャ
ルビットSV、及び中央処理装置CPU内のステータス
レジスタ内のモードビットMDの反転信号を受けて、T
LBプロテクト違反例外の検出信号503を形成する。
この検出信号503は、ハイレベルがTLBプロテクト
違反例外の検出レベルである。信号503によってTL
Bプロテクト違反例外が検出されるのは、プロセス番号
が不一致且つ非共有(オアゲート1543の出力がロー
レベル)、単一仮想記憶(SV=1)、ユーザモード
(MD=0)の条件が満足されたときである。即ち、単
一仮想記憶においてプロセス番号が不一致且つ非共有の
場合には実質的にTLBミスになるがこの状態をメモリ
保護のためのTLBプロテクト違反例外とする。モード
ビットMD=1によって指示される特権状態では別のプ
ロセスに割り当てられている論理ページもアクセスでき
るようにすることが望ましいため、MD=1の特権状態
においてはTLBプロテクト違反例外を検出しないよう
にしている。
【0077】図22には制御回路50によるアドレス変
換の制御メインフローが示される。その制御はアドレス
変換バッファTLBのインデックス処理L1、アドレス
比較とVビットのチェック処理L2、アクセス権のチェ
ック処理L3、物理アドレスの生成処理L4に大別され
る。これらの処理は中央処理装置CPU及びコントロー
ラ5によって制御される。
【0078】アドレス変換バッファTLBのインデック
ス処理L1において、それに利用される論理アドレスは
論理ページサイズに拘わらずvpn(16−12)とさ
れる。このインデックス処理において利用される論理ア
ドレスを、排他的論理和ゲートXORを用いて空間番号
asidの一部asid(4−0)でハッシングしたも
のをインデックス用アドレスとするか否かがMMUCR
レジスタ55のIXの値(MMUCR.IX)によって
決定される。図23に示されるように、MMUCR.I
X=1の場合には、上記利用される論理アドレスがas
id(4−0)にてハッシングされ、インデックス用ア
ドレスとされる。MMUCR.IX=0の場合にはvp
n(16−12)がそのままインデックス用アドレスと
される。前者のインデックス手法は図17に示され、後
者のインデックス手法は図16に示される。アドレス変
換バッファTLBがインデックスされると、夫々のバン
クBNK0〜BNK3において32個のエントリから一
つが選択されて読出される。選択される夫々のエントリ
は、VPN(31−12),VPN(11−10),A
SID,SH,SZ,V,PPN(31−10),P
R,C,Dを含む。
【0079】アドレス比較とVビットのチェック処理L
2において、アドレス比較の手順は図24のようにされ
る。この手順は図33の制御ロジック154の論理に基
づくが、空間番号ASIDの比較に関してはTLBプロ
テクト違反例外の検出も考慮されている。ヒット信号h
it1〜hit4に反映されるべきアドレス比較の対象
をどのようにするかは、次のように決められる。SH=
1か否かによってアドレス比較の対象として、空間番号
を考慮するかが大別され、SZ=0か否かによってアド
レス比較の対象として、VPN(11−10)考慮する
か否かが決定される。特に、単一仮想記憶(SV=1)
においては、空間番号ASIDのフィールド内データを
メモリ保護情報として用いるが、前述のように特権モー
ドにおいては別のプロセスに割り当てられた論理ページ
も現在のプロセスからアクセスすることができるように
するため、言い換えるならば、TLBプロテクト違反例
外を検出しないようにするために、単一仮想記憶であっ
て、且つ特権モード(SV=1且つMD=1)のときに
は比較対象から空間番号ASIDのフィールドを除外す
るようにしている。
【0080】インデックスによって、アドレス変換バッ
ファTLBからTLBエントリがリードされ、そのリー
ドされたTLBエントリ内の共有ステータスSHに基づ
いて、アドレス比較の際に空間番号ASIDを考慮する
か否かが判定される。SH=1(共有)の場合、空間番
号ASIDはアドレス比較の対象として考慮されず、S
H=0(非共有)の場合、空間番号ASIDはアドレス
比較の対象として考慮される。MMUCRレジスタ55
のSVの値(MMUCR.SV)=1にて単一仮想記憶
が設定されている場合に、ステータスレジスタSRのモ
ードビットSR.MD=1にて特権モードが指定されて
いるときは空間番号ASIDはTLBプロテクト違反例
外の検出には考慮されない。特権モードの性質上別のプ
ロセスに割り当てられている論理ページをアクセスでき
るようにするためである。
【0081】本実施例においては、TLBエントリ内の
サイズビットSZの値に従って、1KBまたは4KBの
論理ページサイズのサイズとして選択される。論理ペー
ジのサイズが1KBの場合には、各バンクでインデック
スされたそれぞれのTLBエントリ内の情報VPN(3
1−17)及びVPN(11−10)が論理アドレスの
対応ビットvpn(31−17),vpn(11−1
0)との比較対象とされる。論理ページサイズが4KB
の場合には、各バンクでインデックスされたそれぞれの
TLBエントリ内の情報VPNの内、VPN(11−1
0)とこれに対応する論理アドレスの対応ビットvpn
(11−10)とは比較判定対象から除外される。
【0082】上述のようにして、比較対象(VPN(3
1−17,11−10),vpn(31−17,11−1
0),ASID,asid)が定められ、比較が行われ
る。この比較結果として、何れかのバンクにおいて一致
すると、その一致したバンクからヒット信号が出力され
る。各バンクのヒット信号hit1〜hit4として出
力され、TLBヒットとされる。これに対して、いずれ
のバンクからもヒット信号が出力されない場合、すなわ
ち不一致の場合にはTLBミス例外が検出されることに
なる。その結果は信号501にて中央処理装置CPUに
も通知され、中央処理装置CPUによって、後で述べる
TLBミス例外の処理が行われる。
【0083】また、インデックスされた各バンクのエン
トリに対しては、そのエントリ内のVビットについての
チェックも行われる。すなわち、インデックスによっ
て、リードされたエントリ内のVビットに対してチェッ
クが行われる。TLBヒットの場合に、ヒットに係るエ
ントリがV=0(無効)のときは、TLBインバリッド
例外が検出され、これが中央処理装置CPUに通知され
る。この例外処理の内容は後述する。TLBミスの場合
におけるVビットの判定結果はTLBミスに係る後述の
エントリリプレースにて利用される。
【0084】アクセス権のチェック処理L3において
は、インデックスによりリードされたTLBエントリ内
の情報PRの内容と、MMUCRレジスタ内のビットM
MUCR.SVの内容とに従ってアクセス権がチェック
される。例えば図25に示されるように、先ずMMUC
Rレジスタ内のビットMMUCR.SVが1(単一仮想
記憶)か0(多重仮想記憶)かの判定が行われる。多重
仮想記憶(SV=0)の場合には図21のPRの内容に
したがってTLBエントリ内の情報で表されるアドレス
空間のプロテクションが行われる。単一仮想記憶で、か
つ特権モードにされている場合、すなわちMMUCR.
SV=1(単一仮想記憶)で、ステータスレジスタ内の
ビットSR.MD=1(特権モード)場合には、TLB
エントリ内の情報で表されるアドレス空間を、無条件に
アクセスすることができる。これに対して、単一仮想記
憶であっても、ユーザモードの場合(SR.MD=0:
ユーザモード)には、アクセス権のチェックに際して空
間番号ASIDと共有ステータスSHが考慮される。す
なわち、アクセス時のPTEHレジスタ51の空間番号
asidとアドレス変換バッファTLBからリードされ
た空間番号ASIDとが一致する場合又はSH=1(共
有)の場合には上記PRにしたがってTLBエントリ内
の情報で表されるアドレス空間のプロテクションが行わ
れる。これに対して、プロセス番号不一致で、且つ非共
有の場合にはTLBプロテクト違反例外が検出される。
当該例外の内容については後述する。更にアクセス権の
チェック処理L3においてはアクセスがリードのたのも
のかライトのためのものかのアクセスタイプ判定とアド
レス変換バッファTLBからリードしたエントリのDビ
ットが判定が行われる。アクセスが初めてのライト(例
えば、電源投入やリセットの後の初めてのライトアクセ
ス)の場合にはTLBイニシャルページライト例外が検
出される。即ち、TLBイニシャルページライト例外
は、論理アドレスとインデックスされたTLBエントリ
との比較結果がTLBヒットであってTLBエントリ内
のダーティビットD=0とされ、そのときのアクセスが
ライトアクセスである条件によって検出される。このT
LBイニシャルページライト例外処理の内容については
後述する。
【0085】物理アドレスの生成処理L4においては、
インデックスされたTLBエントリのサイズビットSZ
にしたがって図26のように物理アドレスが生成され
る。物理アドレスpaを形成するために使われる論理ア
ドレスvaのオフセットva(9−0)は、図示されて
いないが、制御回路50内のラッチ回路に保持されてい
る。SZ=0(論理ページサイズが1KB)のときは、
中央処理装置CPUから出力されている論理アドレスv
aのオフセットva(9−0)が物理アドレスpaのオ
フセットpa(9−0)とされる。ヒットしたTLBエ
ントリのデータ部に含まれる物理ページ番号PPNの全
ビットPPN(31−10)が物理ページアドレスpa
(31−10)とされ、これにオフセットとしてアドレ
ス(9−0)が下位側に付加されて、物理アドレスpa
が生成される。SZ=1(論理ページサイズが4KB)
のときは、中央処理装置CPUから出力されている論理
アドレスvaのオフセットva(11−0)が物理アド
レスpaのオフセットpa(11−0)とされる。ヒッ
トしたTLBエントリ内のデータ部に含まれる物理ペー
ジ番号PPNの内、下位2ビットが無視されたPPN
(31−12)が物理ページアドレスpa(31−1
2)とされ、オフセットとしてのアドレス(11−0)
が下位側に付加されて、物理アドレスpaが生成され
る。
【0086】図27にはアドレス比較とVビットのチェ
ック処理L2において検出されたTLBミス例外におけ
るリプレース対象バンクのハードウェア指定手法が示さ
れる。この制御は制御回路50がその論理構成に従って
一義的に行うものであり、MMUCR.RCをランダム
カウンタのような計数手段として利用する。MMUC
R.RCのビット数の2のべき乗数は上記アドレス変換
バッファTLBのバンクの数(=4)に一致される。制
御回路50は、上記ヒット信号hit1〜hit4の何
れもがヒット状態を示さないことに応答して、TLBミ
スによるアドレス変換バッファTLBに対するエントリ
の置換が必要と判断する。このように判断すると、制御
回路50はMMUCR.RCを1インクリメント(+
1)し、インデックスされた4個のエントリに無効なエ
ントリが有るか否かをそのVビットに基づいて判定す
る。Vビットは無効なエントリがない(インデックスさ
れた各バンクのエントリはV=1にて有効なデータを保
持している)ことを示している場合にはそのインクリメ
ントされた結果を置換すべきバンク番号とし、MMUC
R.RCに対してはノー・オペレーションとする。無効
なエントリが存在する(各バンクでインデックスされた
何れかのエントリがV=0にて有効なデータを保持して
いない)場合には、無効なエントリを有するバンクのバ
ンク番号をMMUCR.RCにセットし且つセットされ
た番号のバンクを置換すべきバンクとする。また、上記
MMUCR.RCの各ビットは中央処理装置CPUによ
るソフトウェアの実行によって任意にその値を変更する
ことが可能である。そのため、上述のようにして、この
レジスタに設定されたバンク番号を、さらに、ソフトウ
エアによって変更することもできる。そのため、任意の
バンクをリプレースの対象にすることができる。
【0087】図28には上記TLBミス例外に対処する
ために、TLBエントリを更新するためのTLBミスハ
ンドラによる処理手順が示される。アドレス変換バッフ
ァTLBのエントリ更新にはロードTLBインストラク
ションが利用される。このロードTLBインストラクシ
ョン(LDTLBとも表す)が、中央処理装置CPUに
よって実行されることにより、次の処理が行われる。す
なわち、PTEH,PTELの各レジスタ51,52の値
を、アドレス変換バッファTLBのエントリへ書き込む
処理が行われる。この場合、書き込み対象のエントリ
は、特に制限されないが、MMUCR.RCにセットさ
れているバンク番号により指示されるバンク内のエント
リであって、PTEHレジスタ51内に保持されている
論理アドレス(ビット12−ビット16)をインデック
スアドレスとして指示されるエントリである。上記TL
Bミス例外が検出されると、中央処理装置CPUから出
力されているところの、そのときの論理アドレスの一部
(ビット10からビット31)は、上記PTEHレジス
タ51に保持される。これにより、TLBミス例外が発
生したときのインデックスアドレスと同じ値のインデッ
クスアドレスによって、リプレースの際のエントリが指
示される。ただし、リプレースに使われるバンクは、M
MUCR.RCにセットされているバンク番号によって
決定されることになる。
【0088】TLBミス例外に対処するために、図34
に示されている様な外部メモリRAMに、予め、ページ
テーブルが、ユーザによって形成される。このページテ
ーブルには、特に制限されないが、複数の論理アドレス
に各々対応した複数の変換情報(ページテーブルエント
リ)が、所定の規則に従って、格納される。このページ
テーブルのアドレス、例えば、その開始アドレスは、ベ
ースアドレスとして、レジスタTTB53に、予め格納
される。このページテーブルは、特に制限されないが、
開始アドレスとしての上記ベースアドレスと論理アドレ
スとにもとづいて、当該論理アドレスに対応したページ
テーブルエントリ(対応する物理ページ番号ppn,バ
リッドビットv,プロテクションビットpr,サイズビッ
トsz,キャッシャブルビットc,ダーティビットd,ス
テータスshを含む)を検索することができるような規
則で、複数の論理アドレスに各々対応した複数のページ
テーブルエントリが、配置されている。
【0089】上記TLBミスハンドラは、ユーザによっ
て記述される。TLBミス例外が検出されると、中央処
理装置CPUによって、このTLBミスハンドラが起動
される。これにより、PTEHレジスタ51にはTLB
ミス発生時の論理アドレスの情報vpn(10−31)
が格納される。このときに、PTEHレジスタ51に
は、TLBミス発生時の空間番号asidも格納される
ようにしても良い。また、中央処理装置CPUは、レジ
スタTTB53に格納されているベースアドレスと、T
LBミス発生時の論理アドレスとを用いて、外部メモリ
上の上記ベーステーブルを検索する。この検索によっ
て、TLBミス発生時の論理アドレスに対応するページ
テーブルエントリが発見されると、この発見されたペー
ジテーブルエントリの内容は、PTELレジスタ52に
ロードされる。次いでロードTLBインストラクション
が発行されてPTEH,PTELの各レジスタ51,5
2の値によってアドレス変換バッファTLBの該当エン
トリが更新される。尚、PTEHレジスタ51に保持さ
れているところの、TLBミス発生時の論理アドレスの
情報vpn,asidはTLBエントリの一部VPN,
ASIDとして採用されることになる。また、このと
き、リプレースされるエントリは、上記したように、M
MUCR.RCにセットされているバンク番号によって
指示されているバンク内のエントリであって、TLBミ
ス発生時のインデックスアドレスと同じインデックスア
ドレスによって指示されるエントリである。
【0090】上記TLBインバリッド例外は、TLBヒ
ットにおけるページフォルトの場合に発生する。この例
外に対しては、例えば、まず、外部メモリ上に必要なペ
ージテーブルエントリを回復して、そのページテーブル
エントリ内のVビットを論理値1にする。その後、当該
ページテーブルエントリを外部メモリからPTELレジ
スタ52にロードし、上述のロードTLBインストラク
ションを発行してPTEH,PTELの各レジスタ5
1,52の値によってアドレス変換バッファTLBの該
当エントリを更新する。
【0091】上記TLBイニシャルページライト例外に
ついては、それが検出されると、外部メモリ上の対応す
るページテーブルエントリのDビットを論理値1にし、
当該ページテーブルエントリを外部メモリからPTEL
レジスタ52にロードした後、上述のロードTLBイン
ストラクションを発行してPTEH,PTELの各レジ
スタ51,52の値によってアドレス変換バッファTL
Bの該当エントリを更新する。尚、例外要因とされた論
理アドレスの情報vpn,asidはPTEHレジスタ
51に保持されている。D=1にされるべき状況は、メ
インメモリ上の物理ページ領域に最初に書込みが行われ
るときに発生される。仮想記憶においてページ入れ換え
の際に補助記憶装置とメインメモリ(例えば図34の外
部メモリ)相互間でのデータの整合を図るためメインメ
モリの入れ換え対象ページの内容を補助記憶装置にコピ
ーバックするか否かの判定が必要とされる。ダーティー
ビットDは、この判定のために利用される。
【0092】上記TLBプロテクト違反例外が検出され
ると、例外要因とされる論理アドレスの論理ページ番号
vpnがPTEHレジスタ51に、そしてその論理アド
レスがTEAレジスタ54に書き込まれた後に、そのプ
ロテクト違反を解決するためのハンドラが起動される。
【0093】上記のように、MMUCR.RCをカウン
タとして使う場合、上記のTLBミス例外の対策の際に
は、新たなバンクへエントリを登録することができるよ
うにするために、上記のようにインクリメントすること
が望ましい。これに対して、上記TLBインバリッド例
外、上記TLBイニシャルページライト例外及び上記T
LBプロテクト違反例外の対策においては、MMUC
R.RCをインクリメントしないことが望ましい。これ
らの対策においては、Dビット、あるいはVビットの変
更だけが必要な場合があり、新たなバンクに登録せず
に、元のバンクに登録するようにした方がTLBを有効
に使えるためである。もちろん、本発明は、このように
することに制限されるものではない。
【0094】図29及び図30にはMMUCRレジスタ
のMMUCR.SV=0(多重仮想記憶)におけるアド
レス変換バッファTLBに関する例外検出フローの全体
が示される。図29に従えば、論理アドレスのvpnや
現在の空間番号asidに従って所定の手法でアドレス
変換バッファTLBのインデックスが行われる(S
1)。これによってインデックスされたエントリがSH
=0(非共有)を含むときにはASIDまたはVPNが
不一致であれば(S2,S3)、TLBミス例外(EX
1)が検出される。インデックスされたエントリがSH
=1(共有)を含むときにはASIDは比較されずVP
Nが不一致であれば(S4)TLBミス例外(EX1)
が検出される。TLBヒットの場合(S3,S4のYE
S)にはV=1かが判定される(S5)。V=0(イン
バリッド)であればTLBインバリッド例外(EX2)
が検出される。V=1(バリッド)の場合には図30に
示されるように、ステータスレジスタSR.MDからユ
ーザモード(User)か特権モード(Privileged)かが判
定される(S6)。中央処理装置CPUがユーザモード
で動作しており、このモードで動作している中央処理装
置CPUによるアクセスによってリードされたところの
エントリが、特権モードでのアクセスを許容すること
(ユーザモードでのアクセス禁止)を示す情報PRを有
している場合(PR=00又は01)、TLBプロテク
ト違反例外(EX3)が検出される。また、ユーザモー
ドでのアクセスにより、リードされたエントリ内の情報
PRが10と判定されたとき、このアクセスがリードの
アクセスタイプかライトのアクセスタイプかがさらに判
定される。図21に示されているように、情報PRが、
10の場合、ユーザアクセスは、リードのアクセスタイ
プのみが許容される。そのため、上記アクセスが、ライ
トのアクセスタイプである場合には、アクセスタイプが
相違される(S7のwrite)ため、TLBプロテク
ト違反例外(EX3)が検出される。
【0095】特権モードでのアクセスにおいてもPR=
00又は10が判定されたときのリード/ライトのアク
セスタイプがPRの内容に対して反している(S8のw
rite)とTLBプロテクト違反例外(EX4)が検
出される。すなわち、中央処理装置CPUが、ユーザモ
ードで動作しているか特権モードで動作しているかによ
りPRにより許容されるアクセス権は異なるが、何れの
場合も、PRにより許容される以外のアクセスタイプで
アクセスをした場合には、TLBプロテクト違反例外
(EX3,4)が検出される。アクセスタイプがPRに
よって許容されたライト(S9,S10のwrite)
である場合、エントリ内の情報Dが0(未書込みのペー
ジ)ならば、TLBイニシャルライト例外(EX5)が
検出される。また、エントリ内の情報Dが1の場合、エ
ントリ内の情報Cが1ならば、キャッシュユニットCA
CHEがアクセスされることになる。C=0ならばメイ
ンメモリ(例えば、図34の外部メモリRAM,RO
M)がアクセスされることになる。アクセスタイプが、
PRによって許容されたリード(S7〜S10のrea
d)である場合に、C=1ならばキャッシュユニットC
ACHEがアクセスされ、C=0のときはメインメモリ
がアクセスされることになる。
【0096】図34には、図20に示した各レジスタと
中央処理装置CPUとの接続関係が主に示されている。
上記各レジスタには、それぞれ固有のアドレスが割り当
てられている。中央処理装置CPUにより形成された論
理アドレスは、内部論理アドレスバスVABUSを介し
て、TLB制御回路TLB−C内の選択回路に供給され
る。この選択回路は、上記論理アドレスをデコードし、
論理アドレスが、レジスタに割り当てられた固有のアド
レスであった場合、レジスタを選択するための選択信号
を形成する。例えば、論理アドレスが、PTELレジス
タ52に割り当てられたアドレスであった場合、選択回
路は、選択信号C4を形成して、該レジスタを選択す
る。同様にして、他のレジスタ(PTEH,MMUC
R,TEA,TTB)の選択も行われる。言い替えるな
らば、これらのレジスタは、アドレスマップされてい
る。選択されたレジスタに対する、中央処理装置CPU
からのリード/ライトは、図示されていない内部制御バ
スを介して、中央処理装置CPUから各レジスタへ供給
されるリード/ライト制御信号によって、指示される。
勿論、この図面に示されているように、各レジスタと中
央処理装置CPUとは、内部データバスDBUSを介し
て互いに接続されている。各レジスタは、図20に示し
た制御回路50及びTLBとも接続されているが、図面
が複雑になるのを避けるため、図34には示されていな
い。中央処理装置CPUは、ソフトウエアを実行するこ
とにより、レジスタにデータを書き込むことができる。
すなわち、ソフトウエアの実行により、中央処理装置
は、レジスタに割り当てられた論理アドレスをバスVA
BUSへ出力し、データをバスDBUSへ出力し、リー
ド/ライト制御信号でライトを指示することにより、レ
ジスタへデータを書き込むことができる。同様に、ソウ
トウエアの実行によって、中央処理装置CPUは、レジ
スタからデータを読み出すことも可能である。このよう
にソウフトウエアの実行により、PTEHレジスタ51
に対しては、論理空間番号、TLBミスの際の論理アド
レスを書き込むことが可能であり、PTELレジスタ5
2に対しては、リプレースの際のテーブルエントリを書
き込むことが可能であり、TTBレジスタ53に対して
は、ベースアドレスを、TEAレジスタ54に対して
は、プロテクト違反例外の際に論理アドレスを書き込む
ことが可能である。また、MMUCRレジスタ55に対
しては、図19に示されている種々の制御データを書き
込むことが可能であり、特定のビットをカウンタの様に
使うこともできる。
【0097】図34において、内部論理アドレスバスV
ABUSは、制御回路50、TLBにも接続されてい
る。制御回路50には、上記したように論理アドレスの
オフセットを保持するためのラッチ回路が設けられてお
り、内部論理アドレスバスVABUSからの論理アドレ
スのオフセットが保持される。また、この内部論理アド
レスバスVABUSを介して、中央処理装置CPUから
論理アドレスが、TLBに供給され、インデックスアド
レス、検索用のアドレスとして使われる。勿論、制御回
路50に設けられる上記ラッチ回路は、オフセットアド
レスだけでなく、論理アドレスの全てを保持する様にし
ても良い。
【0098】この図面には、上記PTEHレジスタ51
と上記TLBとの接続だけが、明示的に示されている。
TLBのミス/ヒットの判定のための空間番号は、この
レジスタにセットされ、このレジスタから上記TLBへ
供給される。また、TLBのミス例外についての対策に
おいても、このレジスタから、上記したように論理アド
レス等が上記TLBへ供給される。
【0099】内部データバスDBUS及び内部物理アド
レスバスPABUSは、このデータ処理装置に設けられ
た外部端子TD及びTAを介して、外部データバスDB
US及び外部アドレスバスABUSに接続される。これ
らの外部バスには、例えば、同図に示されている様に、
外部メモリRAM,ROMが接続される。特に制限され
ないが、外部メモリRAMは、揮発性メモリであり、上
記したような種々のテーブル等が形成される。また、外
部メモリROMは、不揮発性のメモリであり、種々のプ
ログラム(例えば、上記したハンドラ等のソフトウエ
ア)を格納している。
【0100】以上説明した実施例の作用効果を以下その
項目別に列挙する。
【0101】《メモリマップドTLB及びキャッシュメ
モリ》 キャッシュメモリCACHE−Mのアドレスア
レイ部CA−aryをH'F0******(*は任
意)に、データアレイ部CD−aryをH'F1***
***に、アドレス変換バッファTLBのアドレスアレ
イ部TA−aryをH'F2******に、データア
レイ部TD−aryをH'F3******にマッピン
グし、*部分においてラインの指定及びバンクの指定な
どができるようにアドレスフォーマットが決定されるこ
とにより、キャッシュメモリCACHE−M及びアドレ
ス変換バッファTLBに対してアドレスアレイ部及びデ
ータアレイ部の何れに対しても任意のバンクの任意ライ
ンをアドレス指定可能にされる。これにより、殆どの命
令セットに必ず含まれるMOV命令のような一般的なデ
ータ転送命令を以てキャッシュメモリCACHE−M及
びアドレス変換バッファTLBに対してアクセスするこ
とができる。したがって、エントリの無効化やUビット
のリード/ライトなどのためにアドレス変換バッファT
LBやキャッシュメモリCACHE−Mをアクセスする
ための専用命令を要さず、命令コードの種類を少なくで
き、命令語長の短縮に寄与できる。換言すれば、アドレ
ス変換バッファTLBをアクセスするための専用命令を
採用する必要がないから、中央処理装置CPUの内部で
命令をデコードするための命令デコーダIDの論理規模
の増大を抑えることができる。更に、命令語長を短くし
なければならないようなマイクロコンピュータのアーク
テクチャ上の要請にも容易に対処できる。例えば本実施
例のマクロコンピュータMPUが16ビット固定長命令
を採用するならば、比較的短い命令コード故に当該命令
コードは貴重なリソースとして位置付けられる。このた
め、アドレス変換バッファTLBをアドレス空間にマッ
ピングしアドレスを指定してアクセス可能にするという
ことは、命令デコーダIDのハードウェア変更量を少な
くでき、命令コードの新規追加を不要にできる。
【0102】更に、そのようなアドレスフォーマットは
連想書込みの有無を任意に指定できる連想ビットAを含
み、アドレスで選択されたラインのアドレスタグTAG
や論理ページ番号のような被検索アドレス情報と書込み
データ中の検索アドレス情報とのアドレス比較が一致の
場合にのみ書込みを実行するかを選択できるので、本来
アドレス比較を要するエントリの無効化の処理とデバイ
ステスト時のような本来アドレス比較を要しないような
書き換えとの双方の要求に容易に対処することができ
る。
【0103】《アドレスタグのライトバックへの考慮》
ページサイズがキャッシュメモリの1個のバンクにお
けるデータ記憶容量よりも小さな容量とされる場合に、
そのページサイズに対応した物理ページ番号を全ビット
保有できるサイズのアドレスタグTAGのフィールドを
採用し、アドレス比較に必要なビット数を超えてそこに
物理アドレス情報を保有させることにより、インデック
スされたキャッシュエントリに対するアドレス比較とラ
イトバックの双方の要求を満足することができる。これ
はページサイズを可変に設定できるマイクロコンピュー
タの場合だけでなく、データ記憶容量の大きなキャッシ
ュメモリを内蔵しなければならない場合にも同様に機能
する。
【0104】《複数ページサイズのサポート》 図4及
び図19に示されるようにページテーブルエントリ及び
TLBエントリは上記サイズビットSZを有し、論理ペ
ージサイズがページ毎に可変に設定可能とされ、4ウェ
イ・セットアソシアティブ形式のアドレス変換バッファ
TLBは可変に設定可能にされる複数の論理ページサイ
ズに対して共通利用される。本実施例ではマイクロコン
ピュータがサポートする論理ページサイズは1KBと4
KBの2種類とされる。そしてアドレス変換バッファT
LBに対するインデックス用アドレスの指定方法は4K
Bと1KBの双方において共通化され、図16及び図1
7に示されるように全部で32ビットの論理アドレスに
おけるビット12〜ビット16即ちvpn(16−1
2)がアドレス変換バッファTLBのインデックスに利
用される。論理ページの最大サイズ4KBは最小サイズ
1KBの2の2乗倍とされ、このときにバンク数は2の
2乗個(4個)存在されるから、アドレス変換バッファ
TLB全体としては4KBページサイズとほぼ同様に、
どの論理ページ番号のエントリについても全体で128
個保有可能にされる。
【0105】ヒット判定のためのアドレス比較のビット
数は図24に基づいて説明したように論理ページサイズ
に応じて変化されなければならない。論理ページサイズ
が1KBの場合には4KBの場合に比べてvpn(11
−10)をVPN(11−10)と比較しなければなら
ない。アドレス変換バッファTLBはそのような比較対
象のビット数を全てカバーできるようにVPN(31−
17)とVPN(11−10)の記憶領域を備え、且
つ、物理ページ番号PPNに対しても22ビットの記憶
領域を備えている。アドレス変換バッファTLBは各エ
ントリのデータ部にそれがサポートする論理ページサイ
ズを示すサイズビットSZを有し、その値に応じてヒッ
ト判定のためのアドレス比較のビット数を変化させる。
図24で説明したように、サイズビットSZ=1(論理
ページサイズ=4KB)の場合にはVPN(31−1
7)が論理アドレスの対応ビットとの比較対象とされ、
サイズビットSZ=0(論理ページサイズ=1KB)の
場合にはVPN(31−17),VPN(11−10)
が論理アドレスの対応ビットとの比較対象とされる。
【0106】このように複数ページサイズを選択的にサ
ポートするマイクロコンピュータは、システムに実装さ
れる実メモリの全記憶容量が少ない場合に論理ページの
サイズを比較的小さくして各プロセスによるメモリ利用
効率を向上させたいという要求にも容易に対応できる。
このとき、最大論理ページサイズが最小サイズの2のべ
き乗数倍にされ、そのセットアソシアティブ方式のアド
レス変換バッファTLBのバンクの数をその2のべき乗
数以上にすることにより、インデックスアドレスの指定
手法を最大論理ページサイズのものに統一化しても、選
ばれている論理ページサイズが最大であっても最小であ
っても、原理的にはどの論理ページ番号のエントリにつ
いてもアドレス変換バッファTLBに保有可能にするこ
とができる。複数ページサイズをサポートするアドレス
変換バッファTLBをセットアソシアティブ形式のキャ
ッシュメモリで実現することは、これをCAMで構成す
る場合に比べてチップ専有面積と消費電力を共に半減さ
せることができる。
【0107】《複数のインデックス方法をサポート》
複数のプロセスが存在し、夫々のプロセスが夫々のアド
レス変換情報を有し、プロセス番号asidによって区
別される多重仮想記憶をサポートする場合に、アドレス
変換バッファTLBのインデックスアドレスを指定する
手法として、図16に示されるように論理アドレスの一
部のみをデコードする手法と、図17に示されるように
排他的論理和ゲートXORによってその論理アドレスの
一部を現在のプロセス番号asidの一部によって修飾
した結果をデコードする手法とを、レジスタMMUC
R.IXの論理値にしたがって指示することができる。
これによれば、多重仮想記憶において多くのプロセスが
並列的に起動される利用形態においてヒット率の低下を
抑えることができるように、その利用形態に応じてイン
デックス方法を選択可能にすることができる。また、論
理アドレスの一部を当該論理アドレスを利用するプロセ
スの番号asidによって修飾し、これを以てバッファ
メモリをインデックスすることにより、多重仮想記憶に
おいて多くのプロセスが並列的に起動される利用形態に
おいてヒット率の低下を抑えることができる。
【0108】《リプレースの自由度》 上述の如くアド
レス変換バッファTLBは、夫々のインデックスアドレ
スが共通化された複数バンクBNK0〜BNK3を持つ
4ウェイ・セットアソシアティブ方式のキャッシュメモ
リとして構成され、キャッシュミスなどにおいてその複
数バンクの中から記憶情報を置換すべき場合に当該置換
されるべきセットは、中央処理装置3によるソフトウェ
アの実行によって任意に指定可能にされる。図19に示
されるMMUCR.RCは、上記バンクを任意に指定す
るための2ビットの情報が設定されるレジスタである。
これに設定された値が図18のデコーダ17によって解
読されることにより4個のバンクBNK0〜BNK3の
中から一つを選ぶ信号(BSL1〜BSL4)が形成さ
れ、これにより、インデックスアドレス2で指定された
4個のバンクBNK0〜BNK3の内の一つが置換対象
とされる。MMUCR.RCはランダムカウンタのよう
な計数手段とされる。MMUCR.RCのビット数の2
のべき乗数は上記バッファメモリ1のバンクの数(=
4)に一致される。制御回路(CTRL)50は、図2
7に基づいて説明したようにアドレス変換バッファTL
Bに対する記憶情報の置換が必要になった(TLBミ
ス)場合にそのMMUCR.RCを1インクリメント
し、何れのバンクもインデックスされた記憶領域に有効
なデータを保持している(インデックスされた各エント
リはV=1を保有する)場合にはそのインクリメントさ
れた結果を置換すべきバンク番号とし、何れかのバンク
がインデックスされた記憶領域に有効なデータを保持し
ていない(インデックスされた何れかのエントリはV=
0を保有する)場合にはそのバンク番号をMMUCR.
RCにセットし且つセットされた番号のバンクを置換す
べきバンクとする、という一定の規則に従って置換すべ
きバンクを指定する。このとき、MMUCR.RCの各
ビットは中央処理装置3によるソフトウェアの実行によ
って任意に値が変更可能な対象とされる。すなわち、M
MUCR.RCはTLBミスの発生によって+1される
動作に限定されない。特定の値を除外するようにMMU
CR.RCを更新してもよい。さらに、中央処理装置C
PUが実行するソフトウェアのアルゴリズム次第で、
(a)ランダム、(b)最初にロードされたものからリ
プレースするFIFO、(c)最後に参照されたものか
らリプレースするLRU(Least Recentry Used)、な
どに従い、MMUCR.RCを更新してリプレースを行
う自由度も保証できる。
【0109】このようにアドレス変換バッファTLBの
エントリを置き換えるためのリプレースメントアルゴリ
ズムを固定化せず、置き換えるべきバンクをソフトウェ
アで任意に決定可能にすることにより、データ処理の都
合上、常に特定の変換対をアドレス変換バッファTLB
にエントリとして格納しておきたいという要求や、特定
のエントリをリプレース対象にしたくないという要求に
容易に答えることができるようになる。
【0110】《単一仮想記憶と多重仮想記憶のサポー
ト》 本実施例のマイクロコンピュータは、複数のプロ
セスの夫々が論理空間の全域にわたる各々のアドレス変
換情報を有するときにはプロセス番号asidによって
論理アドレスを修飾或いは拡張する多重仮想記憶を、ま
た、複数のプロセスに論理アドレス空間の一部が排他的
に割り当てられ夫々のプロセスがそれに割り当てられた
論理アドレス空間のアドレス変換情報を有するときには
プロセス番号asidによって論理アドレスを修飾或い
は拡張しない単一仮想記憶を選択可能とされる。そのよ
うな仮想記憶についての制御は、図19に例示されるM
MUCR.SVの値によって指示される。MMUCR.
SVの値は中央処理装置3がソフトウェアを実行するこ
とによって任意に設定される。単一仮想記憶と多重仮想
記憶との概念的な相違は図32で説明した通りであり、
その他の代表的な相違点については図31に例示されて
いる。図4に示されるようにアドレス変換バッファTL
Bは論理ページ番号VPNと物理ページPPN番号と共
にプロセス番号ASIDのフィールドを有する。このフ
ィールドの値は、単一仮想記憶か多重仮想記憶かでその
処理内容が相違されることになる。あるTLBエントリ
に含まれるプロセス番号に対応される論理ページが他の
プロセスと共有不可能とされるとき、多重仮想記憶にお
いてそのプロセス番号ASIDは図29で説明したよう
にアドレス変換バッファTLBのTLBヒット/ミスの
判定に用いられる。したがって、アドレス変換バッファ
TLBに格納されているエントリの論理ページ番号VP
Nが論理ページアドレスvpnに一致すると共に当該エ
ントリのプロセス番号ASIDが現在のプロセスの番号
asidに一致していなければTLBヒットとはされな
い。単一仮想記憶においてはそのプロセス番号ASID
はメモリ保護情報(ドメイン番号)として使用される。
ユーザモードにおいて非共有ページについての他プロセ
スによる当該ページアクセスはTLBプロテクト違反例
外としてソフトウェアにより処理される。
【0111】MMUCR.SVの値を中央処理装置CP
Uを介して設定することにより単一仮想記憶と多重仮想
記憶の双方を選択的にサポート可能にすることにより、
アドレス変換機構の使い勝手を向上させることができ
る。多重仮想記憶におけるプロセス番号ASIDを単一
仮想記憶におけるメモリ保護情報として使用することに
より、その場合におけるメモリ保護の完全化を容易に実
現することができる。
【0112】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えば、
アドレス変換バッファやキャッシュメモリのウェイ数即
ちバンクの数は5以上例えば8にすることも可能であ
る。マイクロコンピュータがサポートするアドレス空間
のサイズは4GBに限定されず、それに応じて論理アド
レスのビット数も制限されない。サポートするページサ
イズも適宜のサイズに、且つサポートする種類の数も適
宜変更可能である。また、TLBエントリとして保有す
る論理ページ番号VPNは上記実施例のようにインデッ
クスに利用される対応ビットを除いたものとする構成に
限定されず、論理ページ番号の全ビットをTLBエント
リとして保有することもできる。
【0113】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるアドレ
ス変換バッファとキャッシュメモリの双方を内蔵した1
チップ型のマイクロコンピュータに利用した場合につい
て説明したが本発明はそれに限定されず少なくとも中央
処理装置と共に何れか一方を内蔵するデータ処理装置に
広く適用することができる。
【0114】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0115】すなわち、殆どの命令セットに含まれるM
OV命令のような一般的なデータ転送命令を以てキャッ
シュメモリやアドレス変換バッファに対してアクセスす
ることができる。したがって、エントリの無効化などの
ためにアドレス変換バッファやキャッシュメモリをアク
セスするための専用命令を要さず、命令コードの種類を
少なくでき、命令語長の短縮に寄与できる。したがっ
て、アドレス変換バッファやキャッシュメモリをアクセ
スするための専用命令を採用する必要がないから、中央
処理装置の命令デコーダの論理規模の増大を抑えること
ができる。
【0116】更に、命令語長を短くしなければならない
ようなマイクロコンピュータのアークテクチャ上の要請
にも容易に対処できる。マイクロコンピュータが比較的
数句内ビット数の固定長命令を採用するならば、比較的
短い命令コード故に当該命令コードは貴重なリソースと
して位置付けられる。このため、アドレス変換バッファ
やキャッシュメモリをアドレス空間にマッピングしアド
レスを指定してアクセス可能にするということは、命令
デコーダのハードウェア変更量を少なくでき、命令コー
ドの新規追加を不要にできる。
【0117】書込みに際して連想書込みをサポートする
ことにより、アドレス指定だけでは考慮されない被検索
アドレス情報を書込み可否の条件とするから、誤りなく
エントリを無効化する操作を保証できる。
【0118】連想書込みを非選択可能にすることによ
り、所定論理値のデータを書き込んだ後それと同じ論理
値のデータが読み出せるか否かを検証するような連想メ
モリ部のデバイステストへの対応も可能になる。
【0119】キャッシュメモリの1個のバンクにおける
データ記憶容量がページサイズよりも大きな場合に、そ
のページサイズに対応した物理ページアドレスを全ビッ
ト保有できるサイズのアドレスタグのフィールドを採用
し、アドレス比較に必要なビット数を超えてそこに物理
アドレス情報を保有させることにより、キャッシュメモ
リの連想動作という観点ではアドレスタグに物理ページ
アドレスの全部を含める必要はないものの、ライトバッ
ク方式では新たなエントリによって置き換えられるべき
エントリの書込み先アドレスを当該エントリのアドレス
タグの情報を利用して生成しなければならないという要
求を満足させることができる。これにより、キャッシュ
メモリのデータ記憶容量の増大や論理ページサイズの可
変化に際して、インデックスされたキャッシュエントリ
に対するアドレス比較とライトバックの双方を達成でき
る。
【図面の簡単な説明】
【図1】キャッシュメモリ及びアドレス変換バッファの
メモリマッピングについての一実施例説明図である。
【図2】本発明の一実施例に係るマイクロコンピュータ
のブロック図である。
【図3】本実施例のマイクロコンピュータにおけるアド
レス空間の一例マッピング図である。
【図4】ページサイズ可変の論理アドレスのフォーマッ
ト及びTLBエントリの説明図である。
【図5】アドレス変換ユニットの一例ブロック図であ
る。
【図6】複数ページサイズをサポートするアドレス変換
バッファの説明図である。
【図7】メモリマッピングされたアドレス変換バッファ
のためのアドレス及びデータの一例フォーマット図であ
る。
【図8】エントリ無効化処理の一例フローチャートであ
る。
【図9】キャッシュエントリの一例説明図である。
【図10】キャッシュユニットの一例ブロック図であ
る。
【図11】キャッシュメモリにおけるキャッシュライン
選択の一例説明図である。
【図12】メモリマッピングされたキャッシュメモリの
ためのアドレス及びデータの一例フォーマット図であ
る。
【図13】本実施例のマイクロコンピュータの更に詳細
なブロック図である。
【図14】ステータスレジスタの説明図である。
【図15】アドレス変換バッファ及びキャッシュメモリ
に対するアドレス指定アクセスに際してのアクセス権チ
ェックの説明図である。
【図16】論理ページアドレスの一部をそのまま利用し
てアドレス変換バッファをインデックスする手法の説明
図である。
【図17】論理ページアドレスの一部とプロセス番号の
一部を用いてアドレス変換バッファをインデックスする
手法の説明図である。
【図18】TLBエントリのリプレース対象バンクをソ
フトウェアで任意に決定可能とする構成の説明図であ
る。
【図19】アドレス変換バッファの各種コントロールレ
ジスタの一例説明図である。
【図20】メモリマネージメントユニットを特に詳細に
示したマイクロコンピュータの実施例ブロック図であ
る。
【図21】記憶保護に利用されるプロテクションビット
PRによって規定されるアクセス権の説明図である。
【図22】アドレス変換の制御メインフローチャートで
ある。
【図23】アドレス変換バッファのインデックス手法選
択のための制御フローチャートである。
【図24】論理アドレスとそれによってインデックスさ
れたタグとのアドレス比較の制御フローチャートであ
る。
【図25】単一仮想記憶においてプロセス番号をメモリ
保護に利用する制御を含んだプロテクション制御の部分
的なフローチャートである。
【図26】ページサイズに従った物理アドレス生成手順
を示すフローチャートである。
【図27】TLBリプレース対象バンクをハードウェア
的に指定するための制御フローチャートである。
【図28】TLBミス例外においてTLBエントリを更
新するためのTLBミスハンドラによる処理の一例フロ
ーチャートである。
【図29】単一仮想記憶におけるアドレス変換バッファ
に関する例外検出処理の前半を示すフローチャートであ
る。
【図30】単一仮想記憶におけるアドレス変換バッファ
に関する例外検出処理の後半を示すフローチャートであ
る。
【図31】単一仮想記憶と多重仮想記憶との全体的な相
違を示す説明図である。
【図32】単一仮想記憶と多重仮想記憶との概念を示す
説明図である。
【図33】アドレス変換バッファの各バンクにおけるヒ
ット信号に反映すべきアドレス比較結果を制御する制御
ロジックの一例論理回路図である。
【図34】図20の一部をさらに詳細に示したブロック
図である。
【符号の説明】
MPU マイクロコンピュータ CPU 中央処理装置 MMU メモリマネージメントユニット TLB アドレス変換バッファ(連想メモリ部) TA−ary アドレスアレイ部 TD−ary データアレイ部 TLB−C 制御部 CACHE キャッシュユニット CACHE−M キャッシュメモリ(連想メモリ部) CA−ary アドレスアレイ部 CD−ary データアレイ部 CACHE−C 制御部 P4 制御空間 V バリッドビット U アップデートビット TAG アドレスタグ A 連想ビット VPN 論理ページ番号 PPN 物理ページ番号 ASID,asid 空間番号(プロセス番号) vpn 論理ページアドレス(論理ページ番号) ppn 物理ページアドレス(物理ページ番号) BNK0〜BNK3 バンク 51 PTEHレジスタ 52 PTELレジスタ 53 TTBレジスタ 54 TEAレジスタ 55 MMUCRレジスタ SV シングルバーチャルビット SZ サイズビット IX インデックスモードビット MD モードビット
フロントページの続き (72)発明者 川崎 郁也 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所半導体事業部内

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置と、セットアソシアティブ
    形式のアドレス変換ユニットとを供え、 上記アドレス変換ユニットは、アドレス変換用のエント
    リを格納すると共に、中央処理装置が管理するアドレス
    空間に配置されそれが配置されているアドレス空間のア
    ドレスを指定することによってエントリがアクセス可能
    にされるアドレス変換バッファとしての連想メモリ部
    と、 上記アドレス指定による書込みに際して、そのアドレス
    で指定された領域への書込みを、当該指定された領域の
    エントリが保有する被検索アドレス情報と書込みデータ
    が保有する情報とを比較した結果が一致である場合に可
    能とし、不一致の場合には書込みを抑止する、連想書込
    みを行う制御部と、を有するものであることを特徴とす
    るデータ処理装置。
  2. 【請求項2】 上記制御部は、上記連想書込みを行うか
    否かを選択可能であり、連想書込みが非選択とされたと
    きは上記アドレス指定による書込みに際して、そのアド
    レスで指定された領域への書込みを、当該指定された領
    域のエントリが保有する被検索アドレス情報と書込みデ
    ータが保有する情報との一致不一致とは無関係に行うも
    のであることを特徴とする請求項1記載のデータ処理装
    置。
  3. 【請求項3】 上記アドレス変換ユニットの連想メモリ
    部をアクセスするためのアドレス情報は、上記連想書込
    みを選択するか否かを決定する制御ビットを所定のフィ
    ールドに備えるものであることを特徴とする請求項2記
    載のデータ処理装置。
  4. 【請求項4】 中央処理装置と、セットアソシアティブ
    形式のキャッシュユニットとを供え、 上記キャッシュユニットは、アドレスタグとそれに対応
    する情報をエントリとしてを格納すると共に、中央処理
    装置が管理するアドレス空間に配置されそれが配置され
    ているアドレス空間のアドレスを指定することによって
    エントリがアクセス可能にされるキャッシュメモリとし
    ての連想メモリ部と、 上記アドレス指定による書込みに際して、そのアドレス
    で指定された領域への書込みを、当該指定された領域の
    エントリが保有する被検索アドレス情報と書込みデータ
    が保有する情報とを比較した結果が一致である場合に可
    能とし、不一致の場合には書込みを抑止する、連想書込
    みを行う制御部と、を有するものであることを特徴とす
    るデータ処理装置。
  5. 【請求項5】 上記制御部は、上記連想書込みを行うか
    否かを選択可能であり、連想書込みが非選択とされたと
    きは上記アドレス指定による書込みに際して、そのアド
    レスで指定された領域への書込みを、当該指定された領
    域のエントリが保有する被検索アドレス情報と書込みデ
    ータが保有する検索アドレス情報との一致不一致とは無
    関係に行うものであることを特徴とする請求項4記載の
    データ処理装置。
  6. 【請求項6】 上記キャッシュユニットの連想メモリ部
    をアクセスするためのアドレス情報は、上記連想書込み
    を選択するか否かを決定する制御ビットを所定のフィー
    ルドに備えるものであることを特徴とする請求項5記載
    のデータ処理装置。
  7. 【請求項7】 中央処理装置と、前記中央処理装置が管
    理するアドレス空間に配置されるアドレス変換ユニット
    とを供え、 前記アドレス変換ユニットは、論理ページアドレスと物
    理ページアドレスとの変換対を格納する複数の領域を有
    し、前記中央処理装置によって形成された論理アドレス
    を前記変換対を利用して対応する物理アドレスに変換す
    るためのアドレス変換部と、前記中央処理装置によって
    形成された論理アドレスが供給され、前記アドレス変換
    部の前記記憶領域に対する読み出し動作及び書き込み動
    作の制御を行う制御部とを有し、 前記制御部は、前記中央処理装置によって形成された論
    理アドレスが前記記憶領域をアクセスするアドレスであ
    ることを検出したとき、それによってアクセスされる前
    記記憶領域の変換対が保有する論理ページアドレスが、
    当該論理アドレスと共に中央処理装置から供給されるデ
    ータに含まれる論理ページアドレスに一致することを条
    件に、当該データに含まれる情報を、前記一致に係る論
    理ページアドレスを保有する記憶領域に書き込み可能に
    する、連想書込みの制御を行うものであることを特徴と
    するデータ処理装置。
  8. 【請求項8】 前記変換対は当該変換対の有効性を示す
    バリッドビットを有し、前記連想書込みにおいて書き込
    まれる情報には前記バリッドビットが含まれることを特
    徴とする請求項7記載のデータ処理装置。
  9. 【請求項9】 前記中央処理装置は、全ての命令を実行
    することが可能な特権モードと特定命令のみが実行可能
    なユーザモードとを有し、上記中央処理装置が特権モー
    ドのとき、前記制御部による前記記憶領域への書き込み
    制御が可能とされて成るものであることを特徴とする請
    求項8記載のデータ処理装置。
  10. 【請求項10】 中央処理装置と、中央処理装置が管理
    するアドレス空間に配置されるキャッシュユニットとを
    供え、 前記キャッシュユニットは、複数のアドレス情報と上記
    複数のアドレス情報に対応して複数のデータを格納する
    キャッシュメモリと、上記中央処理装置からアドレスが
    供給され、上記キャッシュメモリの読み出し動作及び書
    き込み動作の制御を行う制御部を有し、 前記制御部は、前記中央処理装置によって形成されたア
    ドレスが前記キャッシュメモリをアクセスするアドレス
    であることを検出したとき、それによってアクセスされ
    る記憶領域が保有するアドレス情報が、当該アドレスと
    共に中央処理装置から供給されるデータに含まれるアド
    レス情報に一致することを条件に、当該データに含まれ
    る情報を、前記一致にアドレス情報を保有する記憶領域
    に書き込み可能にする、連想書込みの制御を行うもので
    あることを特徴とするデータ処理装置。
  11. 【請求項11】 前記キャッシュメモリは夫々のアドレ
    スとデータとの対の有効性を示すバリッドビットを有
    し、前記連想書込みにおいて書き込まれる情報には前記
    バリッドビットが含まれることを特徴とする請求項10
    記載のデータ処理装置。
  12. 【請求項12】 前記中央処理装置は、全ての命令を実
    行することが可能な特権モードと特定命令のみが実行可
    能なユーザモードとを有し、上記中央処理装置が特権モ
    ードのとき、前記制御部による前記書き込み制御が可能
    とされて成るものであることを特徴とする請求項11記
    載のデータ処理装置。
  13. 【請求項13】 論理アドレスの一部でインデックスさ
    れ、被検索アドレス情報として物理アドレスをアドレス
    タグに有し、複数のバンクを備えたセットアソシアティ
    ブ形式のキャッシュメモリを内蔵し、仮想記憶をサポー
    トするデータ処理装置において、 上記キャッシュメモリは、書き換えられたエントリのデ
    ータの書き戻しがライトバック方式で制御され、更に複
    数存在するバンクの内の一つのバンクのデータ記憶容量
    がアドレス変換のページサイズ以上とされるとき、上記
    アドレスタグはエントリに対応する物理ページアドレス
    を全ビット有し、検索時にはアドレスタグの一部が被検
    索アドレス情報とされ、ライトバック動作時にはアドレ
    スタグの全ビットで書き戻し先の物理ページアドレスが
    特定されるものであることを特徴とするデータ処理装
    置。
JP24087395A 1994-09-09 1995-08-25 データ処理装置 Expired - Fee Related JP3713312B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP24087395A JP3713312B2 (ja) 1994-09-09 1995-08-25 データ処理装置
KR1019950029113A KR100369923B1 (ko) 1994-09-09 1995-09-06 데이타처리장치
US08/524,791 US5835963A (en) 1994-09-09 1995-09-07 Processor with an addressable address translation buffer operative in associative and non-associative modes
EP95114249A EP0701212B1 (en) 1994-09-09 1995-09-11 Data processor with set associative unit
DE69529374T DE69529374T2 (de) 1994-09-09 1995-09-11 Datenprozessor mit Teilassoziativer Einheit

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP6-241992 1994-09-09
JP24199294 1994-09-09
JP7-87555 1995-03-20
JP8755595 1995-03-20
JP24087395A JP3713312B2 (ja) 1994-09-09 1995-08-25 データ処理装置

Publications (2)

Publication Number Publication Date
JPH08320829A true JPH08320829A (ja) 1996-12-03
JP3713312B2 JP3713312B2 (ja) 2005-11-09

Family

ID=27305542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24087395A Expired - Fee Related JP3713312B2 (ja) 1994-09-09 1995-08-25 データ処理装置

Country Status (5)

Country Link
US (1) US5835963A (ja)
EP (1) EP0701212B1 (ja)
JP (1) JP3713312B2 (ja)
KR (1) KR100369923B1 (ja)
DE (1) DE69529374T2 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999057642A1 (en) * 1998-05-01 1999-11-11 Matsushita Electric Industrial Co., Ltd. Data processing device and method
JP2002033769A (ja) * 2000-05-29 2002-01-31 Internatl Business Mach Corp <Ibm> 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造
JP2005235207A (ja) * 2004-02-16 2005-09-02 Arm Ltd データ処理装置およびデータ処理方法
JP2008282065A (ja) * 2007-05-08 2008-11-20 Matsushita Electric Ind Co Ltd アドレス変換メモリアクセス機構を備える半導体装置
JP2009544104A (ja) * 2006-07-14 2009-12-10 クゥアルコム・インコーポレイテッド マイクロプロセッサ内の例外を引き起こすページを示す方法およびシステム
JP2011510385A (ja) * 2008-01-21 2011-03-31 中国科学院▲計▼算技▲術▼研究所 Riscプロセッサ装置及びその命令アドレスの変換検索方法
DE112011103433T5 (de) 2010-11-26 2013-07-25 International Business Machines Corporation Verfahren, System und Programm zum Steuern von Cache-Kohärenz
JP2016509303A (ja) * 2013-02-05 2016-03-24 エイアールエム リミテッド データ処理装置のメモリ・アクセス動作の操作
JP2017530436A (ja) * 2014-07-18 2017-10-12 クアルコム,インコーポレイテッド 異種共有仮想メモリにおけるオンデマンド共有可能性変換
JP2020523682A (ja) * 2017-06-16 2020-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想キャッシュにおける仮想および実変換の共有
US11403222B2 (en) 2017-06-16 2022-08-02 International Business Machines Corporation Cache structure using a logical directory
US11775445B2 (en) 2017-06-16 2023-10-03 International Business Machines Corporation Translation support for a virtual cache
US11829293B2 (en) 2021-10-07 2023-11-28 Fujitsu Limited Processor and arithmetic processing method

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100466722B1 (ko) * 1996-01-24 2005-04-14 선 마이크로시스템즈 인코퍼레이티드 어레이경계검사방법및장치와,이를포함하는컴퓨터시스템
US6012131A (en) * 1996-11-06 2000-01-04 Hyundai Electronics Industries. Co., Ltd. High speed translation lookaside buffer employing content address memory
KR100263672B1 (ko) * 1997-05-08 2000-09-01 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
US6078987A (en) * 1997-09-30 2000-06-20 Sun Microsystems, Inc. Translation look aside buffer having separate RAM arrays which are accessable with separate enable signals
US6553475B2 (en) * 1997-10-09 2003-04-22 Matsushita Electric Industrial Co., Ltd. Memory system with address conversion based on inherent performance condition
US6516386B1 (en) * 1997-12-31 2003-02-04 Intel Corporation Method and apparatus for indexing a cache
US6910109B2 (en) * 1998-09-30 2005-06-21 Intel Corporation Tracking memory page state
US6862635B1 (en) * 1998-11-13 2005-03-01 Cray Inc. Synchronization techniques in a multithreaded environment
JP2001005726A (ja) * 1999-04-20 2001-01-12 Nec Corp メモリアドレス空間拡張装置及びプログラムを記憶した記憶媒体
US7350028B2 (en) * 1999-05-21 2008-03-25 Intel Corporation Use of a translation cacheable flag for physical address translation and memory protection in a host
US6771646B1 (en) 1999-06-30 2004-08-03 Hi/Fn, Inc. Associative cache structure for lookups and updates of flow records in a network monitor
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
US6349371B1 (en) 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6408381B1 (en) 1999-10-01 2002-06-18 Hitachi, Ltd. Mechanism for fast access to control space in a pipeline processor
US6496905B1 (en) 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
US6487683B1 (en) 1999-10-01 2002-11-26 Stmicroelectronics Limited Microcomputer debug architecture and method
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6542983B1 (en) 1999-10-01 2003-04-01 Hitachi, Ltd. Microcomputer/floating point processor interface and method
US6351803B2 (en) 1999-10-01 2002-02-26 Hitachi Ltd. Mechanism for power efficient processing in a pipeline processor
US6412047B2 (en) 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6502210B1 (en) 1999-10-01 2002-12-31 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
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
US6298394B1 (en) 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US6460174B1 (en) 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit
US6928073B2 (en) * 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
US6463553B1 (en) 1999-10-01 2002-10-08 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6665816B1 (en) 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
US6457118B1 (en) 1999-10-01 2002-09-24 Hitachi Ltd Method and system for selecting and using source operands in computer system instructions
US7266728B1 (en) 1999-10-01 2007-09-04 Stmicroelectronics Ltd. Circuit for monitoring information on an interconnect
US6567932B2 (en) 1999-10-01 2003-05-20 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6557119B1 (en) 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6590907B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics Ltd. Integrated circuit with additional ports
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6591369B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics, Ltd. System and method for communicating with an integrated circuit
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
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6629115B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6826191B1 (en) 1999-10-01 2004-11-30 Stmicroelectronics Ltd. Packets containing transaction attributes
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6530047B1 (en) 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6859891B2 (en) 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US7000078B1 (en) 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6601189B1 (en) 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6693914B1 (en) 1999-10-01 2004-02-17 Stmicroelectronics, Inc. Arbitration mechanism for packet transmission
US6598177B1 (en) 1999-10-01 2003-07-22 Stmicroelectronics Ltd. Monitoring error conditions in an integrated circuit
US7260745B1 (en) 1999-10-01 2007-08-21 Stmicroelectronics Ltd. Detection of information on an interconnect
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6820195B1 (en) 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
US6701405B1 (en) 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US7793261B1 (en) 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
US6615370B1 (en) 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6453387B1 (en) * 1999-10-08 2002-09-17 Advanced Micro Devices, Inc. Fully associative translation lookaside buffer (TLB) including a least recently used (LRU) stack and implementing an LRU replacement strategy
JP2001125781A (ja) * 1999-10-29 2001-05-11 Matsushita Electric Ind Co Ltd マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法
EP1182571B1 (en) * 2000-08-21 2011-01-26 Texas Instruments Incorporated TLB operations based on shared bit
EP1182568A3 (en) * 2000-08-21 2004-07-21 Texas Instruments Incorporated TLB operation based on task-id
US6546453B1 (en) * 2000-08-31 2003-04-08 Compaq Information Technologies Group, L.P. Proprammable DRAM address mapping mechanism
US7793111B1 (en) * 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US6678792B2 (en) * 2001-06-22 2004-01-13 Koninklijke Philips Electronics N.V. Fast and accurate cache way selection
US6715029B1 (en) * 2002-01-07 2004-03-30 Cisco Technology, Inc. Method and apparatus for possibly decreasing the number of associative memory entries by supplementing an associative memory result with discriminator bits from an original set of information
US6895488B2 (en) * 2002-05-22 2005-05-17 Lsi Logic Corporation DSP memory bank rotation
US7941605B1 (en) 2002-11-01 2011-05-10 Cisco Technology, Inc Methods and apparatus for generating a result based on a lookup result from a lookup operation using an associative memory and processing based on a discriminator portion of a lookup word
JP4127054B2 (ja) * 2003-01-14 2008-07-30 ソニー株式会社 半導体記憶装置
GB0301448D0 (en) 2003-01-22 2003-02-19 Falanx Microsystems As Microprocessor systems
TW591388B (en) * 2003-02-21 2004-06-11 Via Tech Inc Memory address decoding method and related apparatus by bit-pattern matching
TWI221221B (en) * 2003-02-27 2004-09-21 Via Tech Inc Address decoding method and related apparatus by comparing mutually exclusive bit-patterns of address
US7181580B2 (en) * 2003-03-27 2007-02-20 International Business Machines Corporation Secure pointers
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US7159095B2 (en) * 2003-12-09 2007-01-02 International Business Machines Corporation Method of efficiently handling multiple page sizes in an effective to real address translation (ERAT) table
US7304905B2 (en) 2004-05-24 2007-12-04 Intel Corporation Throttling memory in response to an internal temperature of a memory device
US7370296B2 (en) * 2004-05-25 2008-05-06 International Business Machines Corporation Modeling language and method for address translation design mechanisms in test generation
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7523285B2 (en) * 2004-08-20 2009-04-21 Intel Corporation Thermal memory control
JP4366298B2 (ja) * 2004-12-02 2009-11-18 富士通株式会社 記憶装置、その制御方法及びプログラム
JP2006185284A (ja) * 2004-12-28 2006-07-13 Renesas Technology Corp データ処理装置
US7991966B2 (en) * 2004-12-29 2011-08-02 Intel Corporation Efficient usage of last level caches in a MCMP system using application level configuration
US20060195677A1 (en) * 2005-02-28 2006-08-31 Texas Instruments Incorporated Bank conflict avoidance in a multi-banked cache system
US20060242368A1 (en) * 2005-04-26 2006-10-26 Cheng-Yen Huang Method of Queuing and Related Apparatus
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US8527673B2 (en) 2007-05-23 2013-09-03 Vmware, Inc. Direct access to a hardware device for virtual machines of a virtualized computer system
US7769853B2 (en) * 2007-06-12 2010-08-03 International Business Machines Corporation Method for automatic discovery of a transaction gateway daemon of specified type
US8275598B2 (en) * 2009-03-02 2012-09-25 International Business Machines Corporation Software table walk during test verification of a simulated densely threaded network on a chip
US9921967B2 (en) 2011-07-26 2018-03-20 Intel Corporation Multi-core shared page miss handler
CN102880426B (zh) * 2012-08-01 2015-05-27 龙芯中科技术有限公司 一种系统虚拟机减少tlb刷新的方法及系统虚拟机
US9026553B2 (en) * 2012-11-29 2015-05-05 Unisys Corporation Data expanse viewer for database systems
US9588902B2 (en) * 2012-12-04 2017-03-07 Advanced Micro Devices, Inc. Flexible page sizes for virtual memory
US9912713B1 (en) 2012-12-17 2018-03-06 MiMedia LLC Systems and methods for providing dynamically updated image sets for applications
US9606803B2 (en) 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
TWI489279B (zh) * 2013-11-27 2015-06-21 Realtek Semiconductor Corp 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法
US10359937B2 (en) * 2013-12-20 2019-07-23 Sandisk Technologies Llc System and method of implementing a table storage support scheme
US9715342B2 (en) * 2015-07-03 2017-07-25 Xitore, Inc. Apparatus, system, and method of logical address translation for non-volatile storage memory
KR102509986B1 (ko) * 2016-03-28 2023-03-14 삼성전자주식회사 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법
US10403333B2 (en) * 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller with flexible address decoding
US10176109B2 (en) * 2017-04-20 2019-01-08 Oracle International Corporation Permuted memory access mapping
US11032830B2 (en) * 2017-05-05 2021-06-08 Qualcomm Incorporated Scheduling request for wireless systems
US10423349B2 (en) * 2017-08-23 2019-09-24 Western Digital Technologies, Inc. Logical and physical address field size reduction by alignment-constrained writing technique
US10783083B2 (en) * 2018-02-12 2020-09-22 Stmicroelectronics (Beijing) Research & Development Co. Ltd Cache management device, system and method
US12572474B2 (en) * 2022-12-28 2026-03-10 Advanced Micro Devices, Inc. Sparsity compression for increased cache capacity

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58102381A (ja) * 1981-12-15 1983-06-17 Nec Corp バツフアメモリ
US5155833A (en) * 1987-05-11 1992-10-13 At&T Bell Laboratories Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory
CA2045789A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
GB9118312D0 (en) * 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
US5375216A (en) * 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
US5299147A (en) * 1993-02-22 1994-03-29 Intergraph Corporation Decoder scheme for fully associative translation-lookaside buffer
US5606687A (en) * 1993-10-07 1997-02-25 Sun Microsystems, Inc. Method and apparatus for optimizing supervisor mode store operations in a data cache
US5539892A (en) * 1994-08-02 1996-07-23 Motorola, Inc. Address translation lookaside buffer replacement apparatus and method with user override

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999057642A1 (en) * 1998-05-01 1999-11-11 Matsushita Electric Industrial Co., Ltd. Data processing device and method
US6598147B1 (en) 1998-05-01 2003-07-22 Matsushita Electric Industrial Co., Ltd. Data processing device and method
JP2002033769A (ja) * 2000-05-29 2002-01-31 Internatl Business Mach Corp <Ibm> 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造
JP2005235207A (ja) * 2004-02-16 2005-09-02 Arm Ltd データ処理装置およびデータ処理方法
US8250309B2 (en) 2004-02-16 2012-08-21 Arm Limited Control of data accesses to a cache in data processing
JP2009544104A (ja) * 2006-07-14 2009-12-10 クゥアルコム・インコーポレイテッド マイクロプロセッサ内の例外を引き起こすページを示す方法およびシステム
JP2008282065A (ja) * 2007-05-08 2008-11-20 Matsushita Electric Ind Co Ltd アドレス変換メモリアクセス機構を備える半導体装置
JP2011510385A (ja) * 2008-01-21 2011-03-31 中国科学院▲計▼算技▲術▼研究所 Riscプロセッサ装置及びその命令アドレスの変換検索方法
DE112011103433T5 (de) 2010-11-26 2013-07-25 International Business Machines Corporation Verfahren, System und Programm zum Steuern von Cache-Kohärenz
DE112011103433B4 (de) * 2010-11-26 2019-10-31 International Business Machines Corporation Verfahren, System und Programm zum Steuern von Cache-Kohärenz
JP2016509303A (ja) * 2013-02-05 2016-03-24 エイアールエム リミテッド データ処理装置のメモリ・アクセス動作の操作
US9940268B2 (en) 2013-02-05 2018-04-10 Arm Limited Handling memory access protection and address translation in a data processing apparatus
JP2017530436A (ja) * 2014-07-18 2017-10-12 クアルコム,インコーポレイテッド 異種共有仮想メモリにおけるオンデマンド共有可能性変換
JP2020523682A (ja) * 2017-06-16 2020-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想キャッシュにおける仮想および実変換の共有
US11403222B2 (en) 2017-06-16 2022-08-02 International Business Machines Corporation Cache structure using a logical directory
US11775445B2 (en) 2017-06-16 2023-10-03 International Business Machines Corporation Translation support for a virtual cache
US12141076B2 (en) 2017-06-16 2024-11-12 International Business Machines Corporation Translation support for a virtual cache
US11829293B2 (en) 2021-10-07 2023-11-28 Fujitsu Limited Processor and arithmetic processing method

Also Published As

Publication number Publication date
DE69529374T2 (de) 2003-10-23
JP3713312B2 (ja) 2005-11-09
EP0701212A2 (en) 1996-03-13
KR100369923B1 (ko) 2003-05-12
KR960011712A (ko) 1996-04-20
EP0701212B1 (en) 2003-01-15
US5835963A (en) 1998-11-10
EP0701212A3 (en) 1997-02-26
DE69529374D1 (de) 2003-02-20

Similar Documents

Publication Publication Date Title
JP3713312B2 (ja) データ処理装置
JP3740195B2 (ja) データ処理装置
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
EP2011010B1 (en) Virtually-tagged instruction cache with physically-tagged behavior
EP3238074B1 (en) Cache accessed using virtual addresses
US8296538B2 (en) Storing secure mode page table data in secure and non-secure regions of memory
US6854046B1 (en) Configurable memory management unit
US6697916B2 (en) Cache with block prefetch and DMA
US6754781B2 (en) Cache with DMA and dirty bits
EP3757799B1 (en) System and method to track physical address accesses by a cpu or device
US20170177500A1 (en) Method and apparatus for sub-page write protection
US6968400B2 (en) Local memory with indicator bits to support concurrent DMA and CPU access
JPH10177520A (ja) データプロセッサ及びデータ処理システム
WO2019133222A1 (en) Systems, methods, and apparatuses for patching pages
US8688952B2 (en) Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB
US20140189274A1 (en) Apparatus and method for page walk extension for enhanced security checks
CN101052952B (zh) 存储器管理单元和用于存储器管理的方法
US6738864B2 (en) Level 2 cache architecture for multiprocessor with task—ID and resource—ID
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
US6766421B2 (en) Fast hardware looping mechanism for cache cleaning and flushing of cache entries corresponding to a qualifier field
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JP2007280421A (ja) データ処理装置
US7076635B1 (en) Method and apparatus for reducing instruction TLB accesses
JP2005108262A (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: 20041102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041227

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: 20050809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050822

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: 20080826

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110826

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: 20110826

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: 20120826

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130826

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees