(57)【特許請求の範囲】
【請求項１】
中央処理装置とアドレス変換ユニットとを具備し、
前記中央処理装置は、アドレス空間中のアドレスを生成し、
前記アドレス変換ユニットはアドレス変換バッファとコントローラとを有し、
前記アドレス変換バッファは、アドレス変換に用いる複数のエントリを有し、前記中央処理装置の所定のアドレス空間に配置されてアクセス可能とされ、
前記コントローラは、前記中央処理装置から連想ビットを含むアドレスとデータとを供給されることで連想書込みを制御し、
前記連想ビットが第１状態であって、前記アドレス変換バッファ中の前記アドレスで指定されるエントリに含まれる被検索アドレス情報が、前記中央処理装置からのデータに含まれる情報に対応する場合、前記コントローラは、前記中央処理装置からの前記アドレスにより指定されるエントリに含まれる所定の領域へデータの書込みを可能とし、前記アドレス変換バッファ中の前記アドレスで指定されるエントリに含まれる被検索アドレス情報が、前記中央処理装置からのデータに含まれる情報に対応しない場合、前記コントローラは、前記中央処理装置からの前記アドレスにより指定されるエントリに含まれる所定の領域へデータの書込みを抑止することを特徴とするデータ処理装置。
【請求項２】
請求項１において、
前記中央処理装置は、特権モードとユーザモードでの処理が可能であり、特権モード下では命令のセットを実行可能であり、ユーザモード下では命令のセットの一部であるサブセットが実行可能であり、
前記連想書込みは、前記中央処理装置が前記特権モード下で命令のセットに含まれる所定の命令を実行することにより制御されることを特徴とするデータ処理装置。
【請求項３】
請求項１又は２において、
前記連想ビットが第２状態であって、前記アドレス変換バッファの被検索アドレス情報が前記中央処理装置からの前記データに含まれる情報に対応する場合と、対応しない場合の何れの場合にも、前記コントローラは、前記中央処理装置からの前記アドレスにより指定されるエントリに含まれる所定の領域へデータの書込みを可能とすることを特徴とするデータ処理装置。
【請求項４】
請求項３において、
前記所定の領域は、前記エントリの有効性を示すバリッドビットの領域であることを特徴とするデータ処理装置。
【請求項５】
中央処理装置と、アドレス変換ユニットとを供え、
上記アドレス変換ユニットは、アドレス変換用のエントリを格納すると共に、前記中央処理装置が管理する所定のアドレス空間に配置されそれが配置されているアドレス空間のアドレスを指定することによってエントリがアクセス可能にされるアドレス変換バッファとしての連想メモリ部と、
上記アドレス指定による書込みに際して、前記中央処理装置による前記アドレスで指定された領域への書込みを、当該指定された領域のエントリが保有する被検索アドレス情報と前記アドレスに対応する書込みデータが保有する情報とを比較した結果が一致である場合に可能とし、不一致の場合には書込みを抑止する、連想書込み制御を行う制御部と、を有するものであることを特徴とするデータ処理装置。
【請求項６】
請求項５において、
上記制御部は、上記連想書込みを行うか否かを選択可能であり、連想書込みが非選択とされたときは上記アドレス指定による書込みに際して、そのアドレスで指定された領域への書込みを、当該指定された領域のエントリが保有する被検索アドレス情報と書込みデータが保有する情報との一致不一致とは無関係に行うものであることを特徴とするデータ処理装置。
【請求項７】
請求項６において、
上記アドレス変換ユニットのアドレス変換用のエントリをアクセスするための前記中央処理装置によるアドレスは、上記連想書込みを選択するか否かを決定する制御ビットを所定のフィールドに備えるものであることを特徴とするデータ処理装置。
【請求項８】
中央処理装置と、前記中央処理装置が管理する所定のアドレス空間に配置されるアドレス変換ユニットとを供え、
前記アドレス変換ユニットは、論理ページアドレスと物理ページアドレスとの変換対を格納する複数の記憶領域を有し、前記中央処理装置によって形成された論理アドレスを前記変換対を利用して対応する物理アドレスに変換するためのアドレス変換部と、前記中央処理装置によって形成された論理アドレスが供給され、前記アドレス変換部の前記複数の領域に対する読み出し動作及び書き込み動作の制御を行う制御部とを有し、
前記制御部は、前記中央処理装置によって形成された論理アドレスが前記複数の記憶領域の何れか一つの所定の記憶領域をアクセスするアドレスであることを検出したとき、それによってアクセスされる前記所定の記憶領域の変換対が保有する論理ページアドレスが、前記中央処理装置によって形成される前記論理アドレスと共に中央処理装置から供給されるデータに含まれる論理ページアドレス情報に一致することを条件に、当該データに含まれる所定の情報を、前記一致に係る論理ページアドレス情報を保有する所定の記憶領域に書き込み可能にする、連想書込みの制御を行うものであることを特徴とするデータ処理装置。
【請求項９】
請求項８において、
前記変換対は当該変換対の有効性を示すバリッドビットを有し、前記連想書込みにおいて書き込まれる所定の情報には前記バリッドビットを更新するための情報が含まれることを特徴とするデータ処理装置。
【請求項１０】
請求項９において、
前記中央処理装置は、全ての命令を実行することが可能な特権モードと特定命令のみが実行可能なユーザモードとを有し、上記中央処理装置が特権モードのとき、前記制御部による前記複数の記憶領域への書き込み制御が可能とされて成るものであることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、キャッシュメモリやアドレス変換バッファを内蔵するデータ処理装置、特にキャッシュメモリやアドレス変換バッファを一般的なデータ転送命令でアクセスする技術、そして仮想記憶における最小ページサイズを越えてキャッシュメモリのデータ記憶容量を増大させるための技術に関し、例えばマイクロコンピュータに適用して有効な技術に関する。
【０００２】
【従来の技術】
ユーザが実メモリを意識せずに、オペレーティングシステム（以下ＯＳとも記す）がメモリ管理を行う分野では、データ処理装置はアドレス変換機構をサポートする必要がある。アドレス変換機構とは仮想記憶を実現するために中央処理装置により形成された論理アドレスを物理アドレスに変換する機構である。このアドレス変換機構を高速に実行するために、論理アドレスと物理アドレスの変換対を保持するアドレス変換バッファ（Translation lookaside buffer、以下単にＴＬＢとも記す）を、中央処理装置と共にデータ処理装置に内蔵する技術が採用されている。アドレス変換バッファは例えば、最近使用された論理アドレスと物理アドレスとの変換対を保持する連想記憶構造のバッファメモリとして構成される。ヒット率を向上させるには複数セットのバンクを持つセットアソシアティブ形式の連想メモリを採用することができる。このようなアドレス変換バッファにおいてＴＬＢミスを生ずるとミスに係る新たなエントリが追加されることになる。このときインデックスされた各バンクのエントリが有効であるか否かをバリッドビットを参照して判定し、無効なエントリが存在する場合にはそれがリプレース対象とされる。一方、バリッドビットを参照した結果、全てのエントリが有効である場合にはＬＲＵ（Least Recentry Used）などの論理にしたがってエントリの入れ替えが行われる。このようにアドレス変換バッファは、連想メモリ動作による通常のアドレス変換動作の他に、エントリ入れ替えのためのライトアクセス、バリッドビット判定のためのリードアクセスなどが必要とされ、それらのアクセスは個々のバンクにおいてエントリを指定して行われなければならない。
【０００３】
また、ＤＲＡＭで構成されるような大容量低速メモリへのアクセス頻度を減らしてデータアクセスの高速化を図るため、そのようなメモリにおいて頻繁に利用されると予想されるデータをＳＲＡＭのような小容量高速メモリにて構成されるキャッシュメモリに格納する技術が広く採用されている。このようなキャッシュメモリも最近使用されたデータとその所在を示すためのアドレス情報とのペアを保持した連想記憶構造のバッファメモリとして構成することができる。ヒット率を向上させるには同じく複数セットのバンクを持つセットアソシアティブ形式の連想メモリを採用することができる。斯るキャッシメモリにおいてキャッシュミスを生ずると、ミスに係る新たなエントリが追加されることになる。このときインデックスされた各バンクのエントリが有効であるか否かをバリッドビットを参照して判定し、無効なエントリが存在する場合にはそれがリプレース対象とされ、全てのエントリが有効である場合にはＬＲＵなどの論理にしたがってエントリの入れ替えが行われる。このように連想記憶構造のキャッシュメモリにおいても、通常の連想動作の他に、エントリ入れ替えのためのライトアクセス、バリッドビット判定のためのリードアクセスなどが必要とされ、それらのアクセスは個々のバンクにおいてエントリを指定して行われなければならない。
【０００４】
また、キャッシュメモリを１次記憶とすると、２次記憶のメインメモリとの間で相互に共有されるデータは整合されなければならない。このとき、ライトアクセスにてキャッシュヒットを生じてキャッシュメモリのエントリが書き換えられた場合、その内容を２次記憶に書き戻す制御手法にはライトスルー方式とライトバック方式がある。ライトスルー方式はキャッシュメモリの書き換えと同時に２次記憶にもデータのライトを行う。ライトバック方式は、ライトアクセスにおいてキャッシュメモリが書き換えられたとき当該書き換えられた内容を、その後キャッシュミスが生じてそのエントリが新たなエントリにリプレースされるときに外部メモリに書き戻すという手法である。このライトバック方式において書き戻し先の書込みアドレスは、当該書き戻されるべきキャッシュラインのアドレスタグに含まれる物理ページアドレス情報と、そのときのキャッシュミスに係る論理アドレス情報を用いて生成しなければならない。
【０００５】
尚、連想記憶形式のバッファメモリについて記載された文献の例としては昭和６１年２月１０日に株式会社培風館から発行された「超高速ＭＯＳデバイス」第２８７頁及び第２８８頁がある。
【０００６】
【発明が解決しようとする課題】
しかしながら、アドレス変換バッファやキャッシュメモリなどの連想メモリのエントリを入れ替え若しくは無効化するための操作は連想動作とは異なる操作のため、その操作を実現するために専用命令を用いると、その分だけ命令コードの種類が増える。命令コードの種類が多くなるということは、命令コードのビット数が多くなるということであり、中央処理装置内部で命令をデコードするための命令デコーダの論理規模も大きくしなければならない。
【０００７】
そこで本発明者は、命令語長を短くしなければならないようなマイクロコンピュータのアークテクチャ上の要請などに対処するため、アドレス変換バッファやキャッシュメモリをＭＯＶ命令のような一般的なデータ転送命令でリード／ライトアクセス可能にする必要性を見出した。
【０００８】
また、本発明者は仮想記憶におけるページサイズとキャッシュメモリの１個のバンク（１個のウェイ若しくはセット）当たりのデータ記憶容量との関係を検討した。これによれば連想動作において、キャッシュメモリにおけるキャッシュラインを選択し、選択されたキャッシュラインのエントリからアクセス単位のデータを選択するために必要なアドレスビット数は、１個のバンクのデータ記憶容量によって決定される。したがってアクセスアドレス信号からそのようなビット数の対応ビットを除いた残りのビットがエントリのアドレスタグとの比較対象にされなければならない。このとき１個のバンクのデータ記憶容量がページサイズ以下であればアドレスタグには必ず物理ページアドレスが含まれることになる。しかしながら、逆（１個のバンクのデータ記憶容量＞ページサイズ）の場合にはキャッシュメモリの連想動作という観点ではアドレスタグに物理ページアドレスの全部を含める必要はない。この場合に上記ライトバック方式では、新たなエントリによって置き換えられるべきエントリの書込み先アドレスは当該エントリのアドレスタグの情報を利用しなければならない。したがって、サポートされる最小ページサイズに比べて１個のバンクのデータ記憶容量が大きくされるキャッシュメモリにおいてライトバックを保証できるようにするには、キャッシュエントリのアドレスタグには当該最小ページサイズの場合における物理ページアドレスを含めるように考慮する必要のあることが本発明者によって見出された。
【０００９】
本発明の目的は、キャッシュユニットやアドレス変換ユニットに含まれる連想メモリ（キャッシュメモリ、アドレス変換バッファ）をＭＯＶ命令のような一般的なデータ転送命令にてアクセスしてエントリの無効化などの操作を行うことができるデータ処理装置を提供することにある。
【００１０】
本発明の別の目的は、セットアソシアティブ形式のキャッシュメモリにおける１個のバンクのデータ記憶容量が論理ページサイズ以上である場合にもライトバックを保証できるようにするデータ処理装置を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１２】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、データ処理装置に含まれるセットアソシアティブ形式のアドレス変換ユニットは、アドレス変換用のエントリを格納すると共に、中央処理装置が管理するアドレス空間に配置されそれが配置されているアドレス空間のアドレスを指定することによってエントリがアクセス可能にされたアドレス変換バッファとしての連想メモリ部を備える。更に、上記アドレス指定による書込みに際して、そのアドレスで指定された領域への書込みを、当該指定された領域のエントリが保有する被検索アドレス情報と書込みデータが保有する情報とを比較した結果が一致である場合に可能とし、不一致の場合には書込みを抑止する、連想書込みを行う制御部を有する。
【００１４】
データ処理装置に含まれるセットアソシアティブ形式のキャッシュユニットは、アドレスタグとそれに対応する情報をエントリとしてを格納すると共に、中央処理装置が管理するアドレス空間に配置されそれが配置されているアドレス空間のアドレスを指定することによってエントリがアクセス可能にされたキャッシュメモリとしての連想メモリ部を備える。更に上記アドレス指定による書込みに際して、そのアドレスで指定された領域への書込みを、当該指定された領域のエントリが保有する被検索アドレス情報と書込みデータが保有する情報とを比較した結果が一致である場合に可能とし、不一致の場合には書込みを抑止する、連想書込みを行う制御部を有する。
【００１５】
アドレス変換ユニットやキャッシュユニットの連想メモリ部に対するデバイステスト時のテストパターンデータ書込みなどを考慮した場合、アドレス変換ユニットやキャッシュユニットは上記連想書込みを行うか否かを選択可能にする。連想書込みが非選択とされたときは上記アドレス指定による書込みに際して、そのアドレスで指定された領域への書込みを、当該指定された領域のエントリが保有する被検索アドレス情報と書込みデータが保有する情報との一致不一致とは無関係に行うものとされる。上記連想書込みを選択するか否かを決定するための制御ビットを連想メモリ部のアクセスアドレスの所定のフィールドに配置するアドレスフォーマットを採用できる。
【００１６】
論理アドレスの一部でインデックスされ、被検索アドレス情報として物理アドレスをアドレスタグに有し、複数のバンクを備えたセットアソシアティブ形式のキャッシュメモリを内蔵し、仮想記憶をサポートするデータ処理装置において、上記キャッシュメモリが、書き換えられたエントリの２次記憶へのデータ書き戻しがライトバック方式で制御されるものであるとき、複数存在するバンクの内の一つのバンクのデータ記憶容量がアドレス変換のページサイズ以上とされる場合にもライトバックを保証できるように、上記アドレスタグはエントリに対応する物理ページアドレスを全ビット有し、連想動作のための検索時にはアドレスタグの一部が被検索アドレス情報とされ、ライトバック動作時にはアドレスタグの全ビットで書き戻し先の物理ページアドレスが特定される。例えば、図１１に示されるように、キャッシュメモリの１個のバンクにおけるデータ記憶容量が２Ｋバイト（４バイト×４×１２８）のとき、アクセス単位のデータ指定には３２ビットの論理アドレスのうち下位側の１１ビット（ビット１０〜ビット０）が必要とされ、連想比較のためのアドレスはビット３１〜ビット１１とされる。このとき、ページサイズが４Ｋバイトのときはページアドレスはビット３１〜ビット１２とされる。ページサイズが１Ｋバイトの場合、ページアドレスはビット３１〜ビット１０にて指定されることになる。このような場合を想定してアドレスタグ（ＴＡＧ）には１Ｋバイトのページサイズにおける物理ページアドレスＰＰＮ（３１−１０）を保有し、ライトバックに際して当該ＰＰＮ（３１−１０）を書き戻し先の物理ページ番号としてそのまま利用できるようにしてある。
【００１７】
【作用】
上記した手段によれば、例えば図１に示されるようにキャッシュユニットに含まれる連想メモリ部であるキャッシュメモリ（ＣＡＣＨＥ−Ｍ）のアドレスアレイ部をＨ'Ｆ０＊＊＊＊＊＊（＊は任意）に、データアレイ部をＨ'Ｆ１＊＊＊＊＊＊に、アドレス変換ユニットに含まれる連想メモリ部であるアドレス変換バッファ（ＴＬＢ）のアドレスアレイ部をＨ'Ｆ２＊＊＊＊＊＊に、データアレイ部をＨ'Ｆ３＊＊＊＊＊＊にマッピングし（Ｈ'は１６進数を意味する）、＊部分においてラインの指定及びバンクの指定などができるようにアドレスフォーマットが決定される。キャッシュメモリ（ＣＡＣＨＥ−Ｍ）やアドレス変換バッファ（ＴＬＢ）のコントローラ（制御部）はそのようなフォーマットのアドレスを受けることにより、それに従ったバンク及びラインを選択するための論理を備える。これにより、キャッシュメモリ（ＣＡＣＨＥ−Ｍ）及びアドレス変換バッファ（ＴＬＢ）に対してアドレスアレイ部及びデータアレイ部の何れに対しても任意のバンクの任意のラインをアドレス指定可能にされる。このことが、殆どの命令セットに必ず含まれるＭＯＶ命令のような一般的なデータ転送命令を以てキャッシュメモリ（ＣＡＣＨＥ−Ｍ）及びアドレス変換バッファ（ＴＬＢ）をアクセス可能にする。例えば図１において、キャッシュメモリ（ＣＡＣＨＥ−Ｍ）又はアドレス変換バッファ（ＴＬＢ）をリードアクセスするときはリードすべき対象を指定するためのアドレス情報を所定のアドレスフォーマットに従ってレジスタＲ１に格納し、データ転送命令ＭＯＶ  ＠Ｒ１，Ｒ０を実行することによりレジスタＲ１に格納されたアドレスを転送元アドレスとしてキャッシュメモリ（ＣＡＣＨＥ−Ｍ）又はアドレス変換バッファ（ＴＬＢ）からレジスタＲ０にデータが転送される。キャッシュメモリ（ＣＡＣＨＥ−Ｍ）又はアドレス変換バッファ（ＴＬＢ）をライトアクセスするときはライトすべき対象を指定するためのアドレス情報を所定のアドレスフォーマットに従ってレジスタＲ１に格納し、データ転送命令ＭＯＶ  Ｒ０，＠Ｒ１を実行することによりレジスタＲ０のデータを転送元としレジスタＲ１で指定されるキャッシュメモリ（ＣＡＣＨＥ−Ｍ）又はアドレス変換バッファ（ＴＬＢ）のアドレス位置にデータが書き込まれる。
【００１８】
書込みに際して連想書込みをサポートすることは、アドレス指定だけでは考慮されないところの被検索アドレス情報を書込み可否の条件とするから、誤りなくエントリを無効化する操作を保証する。
【００１９】
連想書込みを非選択可能にすることは、所定論理値のデータを書き込んだ後それと同じ論理値のデータが読み出せるか否かを検証するような連想メモリ部のデバイステストへの対応も可能にする。例えば図１においてアドレスに含まれる連想ビットＡ＝１のときは連想書込みが選択され、Ａ＝０の時は連想書込みが非選択とされる。
【００２０】
キャッシュメモリの１個のバンクにおけるデータ記憶容量がページサイズよりも大きな場合に、そのページサイズに対応した物理ページアドレスを全ビット保有できるサイズのアドレスタグのフィールドを採用し、アドレス比較に必要なビット数を超えてそこに物理アドレス情報を保有させることは、キャッシュメモリの連想動作という観点ではアドレスタグに物理ページアドレスの全部を含める必要はないものの、ライトバック方式では新たなエントリによって置き換えられるべきエントリの書込み先アドレスを当該エントリのアドレスタグの情報を利用して生成しなければならないという要求を満足させる。このことが、キャッシュメモリのデータ記憶容量の増大や論理ページサイズの可変化に際して、インデックスされたキャッシュエントリに対するアドレス比較とライトバックの双方を達成可能にする。
【００２１】
【実施例】
《マイクロコンピュータの構成モジュール》  図２には本発明の一実施例に係るマイクロコンピュータのブロック図が示される。同図に示されるマイクロコンピュータＭＰＵは、例えば公知の半導体集積回路製造技術によって単結晶シリコンのような１個の半導体基板に形成される。このマイクロコンピュータＭＰＵは、特に制限されないが、システムバスＳ−ｂｕｓ、キャッシュバスＣ−ｂｕｓ、及びペリフェラルバスＰ−ｂｕｓから成るスリーバス構成を有する。夫々のバスＳ−ｂｕｓ，Ｃ−ｂｕｓ，Ｐ−ｂｕｓはデータ、アドレス、制御信号の各信号線群を備えている。システムバスＳ−ｂｕｓには中央処理装置ＣＰＵ、乗算器ＭＬＴ、キャッシュユニットＣＡＣＨＥ、アドレス変換ユニット（メモリマネージメントユニットとも記す）ＭＭＵが結合される。キャッシュユニットＣＡＣＨＥは他方においてキャッシュバスＣ−ｂｕｓに結合され、当該キャッシュバスＣ−ｂｕｓにはライトバックバッファＷＢＢＵＦ及びバスステートコントローラＢＳＣが接続される。バスステートコントローラＢＳＣは入出力回路ＥＸＩＦを介して外部バスＥＸ−ｂｕｓに結合され、当該外部バスＥＸ−ｂｕｓに結合された外部メモリＭＭＲＹなどとキャッシュバスＣ−ｂｕｓとのインタフェース制御を行う。上記ライトバックバッファＷＢＢＵＦはキャッシュユニットＣＡＣＨＥのキャッシュミス時にキャッシュエントリをリプレースするとき外部メモリに書き戻すべきデータを一時的に蓄えて当該キャッシュミスに係るデータのキャッシュメモリへの書込みを優先させるためのものであり、その出力はキャッシュバスＣ−ｂｕｓに接続される。バスコントローラＢＳＣはペリフェラルバスＰ−ｂｕｓに接続された周辺モジュールＰＭＤＵＬに対するバスアクセス制御を行う。尚、ＣＭＤＵＬはマイクロコンピュータＭＰＵの動作基準クロック信号を発生するクロックモジュールである。
【００２２】
図１３は図２のマイクロコンピュータＭＰＵを更に詳細に示したブロック図である。図１３においてクロックモジュールＣＭＤＵＬは図示を省略し、前記ライトバックバッファＷＢＢＵＦは図１３のキャッシュユニットＣＡＣＨＥに含まれ、また、ペリフェラルアダプタＰＡＤＰは図１３のバスコントローラＢＳＣに含まれる。図２の周辺モジュールＰＭＤＵＬは図１３においてタイマＴＭＵ、リアルタイムクロックＲＴＣ、シリアルコミュニケーションインタフェースＳＣＩ、及びリフレッシュコントローラＲＥＦＣとして具体化されている。また、図１３においては図２では図示を省略した割り込みコントローラＩＮＴＣ及びユーザブレークコントローラＵＢＣが示されている。
【００２３】
図１３においてシステムバスＳ−ｂｕｓには、中央処理装置ＣＰＵ、乗算器ＭＬＴ、キャッシュユニットＣＡＣＨＥ、メモリマネージメントユニットＭＭＵ、及びユーザブレークコントローラＵＢＣが結合される。キャッシュバスＣ−ｂｕｓには上記キャッシュメモリＣＡＣＨＥ、メモリマネージメントユニットＭＭＵ、命令ブレークコントローラＵＢＣ、及びバスステートコントローラＢＳＣが結合される。バスステートコントローラＢＳＣに接続されるペリフェラルバスＰ−ｂｕｓにはタイマＴＭＵ、中央処理装置ＣＰＵへのクロック供給が停止されても計時動作が可能にされるリアルタイムクロックＲＴＣ、リフレッシュコントローラＲＥＦＣ、及びシリアルコミュニケーションインタフェースＳＣＩなどの内蔵周辺モジュールが接続される。また、バスステートコントローラＢＳＣは入出力回路ＥＸＩＦを介して外部バスＥＸ−ｂｕｓに接続可能にされる。上記外部バスＥＸ−ｂｕｓには外部メモリＭＭＲＹや補助記憶装置ＤＩＳＫなどが接続されることになる。上記バスステートコントローラＢＳＣは、内蔵周辺モジュール及び外部に対するバスサイクルの起動とそれに伴う各種バス制御を行う。
【００２４】
割り込みコントローラＩＮＴＣは上記内蔵周辺モジュールから、及び複数ビットの外部割り込み端子ＩＲＬ０〜ＩＲＬ３から割り込み要求を受け、割込み優先レベルに従って要求の調停などを行って、中央処理装置ＣＰＵに割り込み信号ＳＩＧ１を供給する。それと共に割り込みコントローラＩＮＴＣは、受け付けた割り込み要求の要因を信号ＳＩＧ２にてメモリマネージメントユニットＭＭＵに通知する。割り込み信号ＳＩＧ１を受けた中央処理装置ＣＰＵは割り込み受け付けの通知信号ＳＩＧ３をメモリマネージメントユニットＭＭＵに与える。これによってマモリマネージメントユニットＭＭＵはその割り込み要因を要因レジスタＩＮＴＥＶＴにセットする。中央処理装置ＣＰＵは要因レジスタＩＮＴＥＶＴにセットされた割り込み要因を用いて所定の割り込み処理に分岐される。
【００２５】
本実施例のマイクロコンピュータＭＭＵは論理アドレス空間を論理ページと呼ばれる単位に分割し、そのページ単位に物理アドレスへのアドレス変換を行うための仮想記憶をサポートする。上記メモリマネージメントユニットＭＭＵはアドレス変換バッファＴＬＢとその制御部ＴＬＢ−Ｃとを備える。このメモリマネージメントユニットＭＭＵのアドレス変換バッファＴＬＢは論理ページ番号と物理ページ番号とに関する変換対などをＴＬＢエントリとして格納し、その制御部ＴＬＢ−Ｃは中央処理装置ＣＰＵが出力する論理アドレスをアドレス変換バッファＴＬＢなどを用いて物理アドレスに変換する。ＴＬＢミスの場合にはその論理アドレスに対応されるＴＬＢエントリは制御部ＴＬＢ−Ｃを介して外部メモリＭＭＲＹ上のアドレス変換テーブル（ページテーブル）から読み込まれる。そのアドレス変換バッファＴＬＢは例えば４ウェイ・セットアソシアティブ方式のキャッシュメモリによって構成される。ＴＬＢミスなどのアドレス変換に係る各種例外が発生すると、制御部ＴＬＢ−Ｃはその例外要因を要因レジスタＥＸＰＥＶＴにセットし、且つ、ＴＬＢミスなどのアドレス変換に係る例外発生の通知信号ＳＩＧ４を中央処理装置ＣＰＵに送る。中央処理装置ＣＰＵは、要因レジスタＥＸＰＥＶＴにセットされた要因を用いて、或いはそれを用いずにハードウェアで直接、所定の例外処理に分岐される。
【００２６】
中央処理装置ＣＰＵは例えば４ギガバイトの論理アドレス空間をサポートするために３２ビットのアドレスを利用する。図１３において中央処理装置ＣＰＵの回路ブロック内には汎用レジスタＲ０〜Ｒ１５や算術論理演算器ＡＬＵで代表される演算部と、後述するプログラムカウンタＰＣなどの制御用レジスタ群、そして命令のフェッチや解読並びに命令実行手順を制御したり演算制御を行う制御部ＣＴＲＬが代表的に示されている。ＩＤは中央処理装置ＣＰＵがフェッチした命令を解読して各種制御信号を発生する命令デコーダである。この中央処理装置ＣＰＵは外部メモリＭＭＲＹから命令をフェッチし、その命令を命令デコーダＩＤにて解読することにより、当該命令記述に応じたデータ処理を行う。図１３においてＳＩＧ５は中央処理装置ＣＰＵからメモリマネージメントユニットＭＭＵへの各種制御信号及び中央処理装置ＣＰＵの内部状態を通知するための信号を総称するものである。
【００２７】
キャッシュユニットＣＡＣＨＥは、特に制限されないが、４ウェイ・セットアソシアティブ形式の連想メモリ部としてのキャッシュメモリＣＡＣＨＥ−Ｍとその制御部ＣＡＣＨＥ−Ｃを備える。キャッシュメモリＣＡＣＨＥ−Ｍに対するインデックスは論理アドレスの一部を用いて行われ、エントリのタグ部には物理アドレスが保有され、インデックスされたタグ部はその論理アドレスがアドレス変換バッファＴＬＢで変換された物理アドレスと比較され、その比較結果に応じてキャッシュミス／ヒットを判定する。キャッシュミスの場合に当該キャッシュミスに係るデータ又は命令は外部メモリＭＭＲＹから読み込まれ、読み込まれたデータ又は命令は新たなキャッシュエントリとしてキャッシュメモリＣＡＣＨＥ−Ｍに格納される。
【００２８】
上記ユーザブレークコントローラＵＢＣはデバッグ機能を強化するために設けられており、システムバスＳ−ｂｕｓの状態がブレーク条件に一致するかを監視し、一致する場合には中央処理装置ＣＰＵ１０にブレーク割込みを発生させる。ユーザブレークコントローラＵＢＣに含まれるＩＢＲはブレーク条件として命令アドレスなどが設定される命令ブレークアドレスレジスタである。中央処理装置ＣＰＵはデバッグ若しくはエミュレーション開始前にそのためのサービスルーチンを実行して命令ブレークアドレスレジスタＩＢＲにブレークすべき命令の先頭アドレスやオペランドアドレスなどの所望の命令ブレーク条件をあらかじめ設定する。マイクロコンピュータＭＰＵの内部状態が前記命令ブレーク条件に一致すると、後述の命令ブレーク例外が発生し、これによって中央処理装置ＣＰＵはデバッグのための命令ブレークハンドラが実行可能にされる。したがって、マイクロコンピュータＭＰＵの内部でブレークポイント制御を行うことができる。
【００２９】
中央処理装置ＣＰＵは夫々３２ビットの上記汎用レジスタＲ０〜Ｒ１５の他に、プログラムカウンタＰＣ、ステータスレジスタＳＲ、ベクタベースレジスタＶＢＲ、セーブプログラムカウンタＳＰＣ、及びセーブステータスレジスタＳＳＲなどのシステムレジスタやコントロールレジスタを有する。プログラムカウンタＰＣは現在の命令のスタート番地を指す。セーブステータスレジスタＳＳＲは例外発生時などにおいて現在のステータスレジスタＳＲの値を退避するレジスタである。セーブプログラムカウンタＳＰＣは例外が発生したときに例外から復帰した後に中央処理装置ＣＰＵが実行すべき命令のアドレスを保持するためのレジスタであり、例外が発生したときに所定のタイミングを以てプログラムカウンタＰＣの値が退避されるレジスタである。ベクタベースレジスタＶＢＲは例外処理のためのベクタ領域のベースアドレス（ベクタテーブルベースアドレス）を保有する。
【００３０】
ステータスレジスタＳＲは、図１４に示されるように演算においてキャリー、ボロー、オーバーフローを示すために利用されるＴビット、メモリアクセス制御に利用されるＳビット、割り込み要求に対するマスクレベルを４ビットで示す割り込みマスクビットＩＭＡＳＫ、除算に利用されるＭ及びＱビット、汎用レジスタＲ０〜Ｒ１５のバンク指定を行うためのレジスタバンクビットＲＢ、ブロックビットＢＬ、プロセッサオペレーションモードビットＭＤ、及びゼロビットを含む。ブロックビットＢＬは特権モードにおける例外をマスクするために利用され、ＢＬ＝１は例外をマスクすることを指示し、ＢＬ＝０は例外を許容することを指示する。モードビットＭＤはＭＤ＝１にて特権モードを、ＭＤ＝０にてユーザモードを示す。モードビットＭＤの”０”あるいは”１”は命令を実行することによって設定される。上記Ｍ，Ｑ，Ｓ，Ｔの各ビットはユーザモードにおいても専用命令によってセットまたはクリア可能であるが、その他全てのビットは特権モードにおいてだけリード・ライト可能にされる。ステータスレジスタＳＲなどのコントロールレジスタに対する書き込みは制御ロード命令（ＬＤＣ）、読み出しは制御ストア命令（ＳＴＣ）にて可能にされる。両方の命令は、システム制御命令若しくは特権命令の一つとされる。
【００３１】
《マイクロコンピュータのアドレス空間》  本実施例のマイクロコンピュータＭＰＵは、４ＧＢ（ギガバイト）の論理アドレス空間をサポートするために、中央処理装置ＣＰＵは、３２ビットのアドレスを利用する。該論理アドレスは後述の空間番号（プロセス番号）ａｓｉｄによって拡張可能にされる。図３（Ａ）及び図３（Ｂ）にはその論理アドレス空間のアドレスマッピングが示される。同図において”Mapped”と示される領域はアドレス変換バッファＴＬＢを利用したアドレス変換の対象とされる。Ｈ'ＦＦＦＦＦＦＦＦ〜Ｈ'８０００００００の領域は特権モードにおいてアクセス可能な領域とされ、ユーザモードでのアクセスはアドレスエラーとされる。Ｐ４領域はコントロールスペースであり、周辺コントロールレジスタ、そして上記アドレス変換バッファＴＬＢやキャッシュメモリＣＡＣＨＥ−Ｍがマッピングされる制御空間とされる。Ｐ１，Ｐ２領域はそれに対応される物理アドレスが固定とされる領域であり、アドレス変換バッファＴＬＢを利用したアドレス変換の対象とはされない。これらの領域Ｐ１，Ｐ２の論理アドレスは、一定の定数が加算または減算されて、物理アドレスに変換される。したがって、特権モードにおいて、当該領域Ｐ１，Ｐ２をアクセスするときはＴＬＢミスを初めとするアドレス変換に係る例外が生じない。特にＰ２領域はキャッシュメモリＣＡＣＨＥ−Ｍによるキャッシュの対象とされず、Ｐ１領域はキャッシュの対象とされている。
【００３２】
論理アドレス空間は論理ページと呼ばれる単位に分割され、そのページ単位に物理アドレスへの変換が行われる。本実施例のマイクロコンピュータＭＰＵがサポートする論理ページサイズは４ＫＢ（キロバイト）と１ＫＢの双方とされる。これは、サポートされる論理ページの最大サイズ（＝４ＫＢ）が最小サイズ（＝１ＫＢ）の２のべき乗数倍にされ、アドレス変換バッファＴＬＢのバンクの数（＝４）が上記２のべき乗数以上であるという関係を満足する。図４に示されるように、論理ページサイズが１ＫＢの場合に論理アドレスは、中央処理装置ＣＰＵにより形成される論理アドレス（ビット０からビット３１までの３２ビットのアドレス）の内、ビット０〜ビット９までがオフセットとされ、ビット１０〜ビット３１までが論理ページ番号（論理ページアドレス）ｖｐｎとされる。論理ページサイズが４ＫＢの場合に論理アドレスは、ビット０〜ビット１１までがオフセットとされ、ビット１２〜ビット３１までが論理ページ番号ｖｐｎ（論理ページアドレス）とされる。
【００３３】
《ＴＬＢエントリ》  仮想記憶のためのページテーブルエントリは論理ページ番号ＶＰＮと物理ページ番号ＰＰＮとの対応やアクセスの属性などについての記述が含まれ、それはソフトウェアによって形成されて図２及び図１３に示される外部メモリＭＭＲＹ上のアドレス変換テーブルに格納され、且つ、その一部が上記アドレス変換ユニットＭＭＵのアドレス変換バッファＴＬＢに格納される。アドレス変換バッファＴＬＢに格納されるエントリ（ＴＬＢエントリ）のフォーマットは、図４にその詳細が示されるように、便宜上アドレスアレイ部ＴＡ−ａｒｙに格納されるアドレス部とデータアレイ部ＴＤ−ａｒｙに格納されるデータ部に分けられている。アドレス部は、論理ページ番号の情報ＶＰＮ（３１−１７），ＶＰＮ（１１−１０）、及び空間番号ＡＳＩＤ（８ビット）とされる。データ部は、共有ステータスＳＨ（１ビット）、サイズビットＳＺ（１ビット）、エントリが有効であることを示すバッリドビットＶ（１ビット）、論理ページ番号に対応される物理ページ番号ＰＰＮ（２２ビット）、記憶保護のためのプロテクションＰＲ（２ビット）、キャッシャブルビットＣ（１ビット）、及びダーティビットＤ（１ビット）を保有する。アドレス部が保有する論理ページ番号の情報は３２ビットの論理アドレスのビットフォーマットにおいてインデックスに利用されるビットを除いたビット１０〜ビット１１とビット１７〜ビット３１とされる。前者はＶＰＮ（１１−１０）と表記され、後者はＶＰＮ（３１−１７）と表記される。共有ステータスＳＨは複数プロセス間で当該ページが共有されているか否かを示し、ＳＨ＝０は非共有、ＳＨ＝１は共有を意味する。空間番号ＡＳＩＤは特定のプロセスに属するものとして論理ページを定義したりするために利用されるものであり、プロセス番号とも称する。プロテクションＰＲはページに対するアクセス権を定義するためにエンコードされたデータであり、その値の組み合わせによってアクセス権が定義される。サイズビットＳＺは論理ページサイズを指定するビットであり、ＳＺ＝１は４ＫＢページサイズを指定し、ＳＺ＝０は１ＫＢページサイズを指定する。
【００３４】
尚、本明細書において小文字で示されるｖｐｎ，ｐｐｎ，ａｓｉｄは、アクセスに利用される論理ページ番号、物理ページ番号、プロセス番号とされ、アドレス変換バッファＴＬＢやキャッシュメモリＣＡＣＨＥ−Ｍのエントリ若しくはページテーブルエントリとしての大文字で示される論理ページ番号ＶＰＮ、物理ページ番号ＰＰＮ、プロセス番号ＡＳＩＤとは区別されている。
【００３５】
《複数ページサイズのサポート》  図４及び図１９に示されるように、アドレス変換テーブルエントリ（ページテーブルエントリ）及びＴＬＢエントリは上記サイズビットＳＺを有し、論理ページサイズがページ毎に可変に設定可能とされる。４ウェイ・セットアソシアティブ形式のアドレス変換バッファＴＬＢは、そのサイズが可変に設定可能にされる複数の論理ページサイズに対して共通利用される。本実施例ではマイクロコンピュータＭＰＵがサポートする論理ページサイズは１ＫＢと４ＫＢの２種類とされる。そしてアドレス変換バッファＴＬＢに対するインデックスアドレスＩＤＸの指定方法は４ＫＢと１ＫＢの双方において共通化され、図６に示されるように中央処理装置ＣＰＵで形成される全部で３２ビットの論理アドレスの内、ビット１２〜ビット１６即ちｖｐｎ（１６−１２）がアドレス変換バッファＴＬＢのインデックスに利用される。インデックスアドレスは５ビットであるから１バンク（ウエイ）当たり最大３２個のエントリを保有できる。アドレス変換バッファＴＬＢは４個のバンクＢＮＫ０〜ＢＮＫ３を持つから、一つのインデックスアドレスにつき、最大４個のエントリを保有できる。上記インデックスアドレスは、ページサイズが４ＫＢの場合には当該論理ページ番号ｖｐｎの最下位から５ビットｖｐｎ（１６−１２）とされるので、ページサイズ４ＫＢのときは、任意の論理ページ番号のエントリについても各バンクに最大３２エントリ（全体で１２８エントリ）保有することができる。一方、ページサイズが１ＫＢの場合には当該論理ページ番号ｖｐｎの最下位から２ビットｖｐｎ（１１−１０）はインデックスに利用されない。このため、論理ページサイズが１ＫＢにおける一つのバンクに対するインデックスを考えると、インデックスされたエントリは、５ビットのインデックスアドレスによって選ばれた４個の論理ページ番号（それぞれが１ＫＢのページサイズを持つ）の内のいずれかを指す。インデックスに利用されない２ビット（ビット１０，１１）は、この選ばれた４個の論理ページ番号の内の何れか一つを指すために使われるものである。したがって、バンクの数が１個しか存在しない場合には、連続する４個の論理ページに対して、１個しかエントリが割り当てられない。本実施例においては、論理ページの最大サイズが最小サイズに対して２のＮ乗倍とされ、バンクの数も２のＮ乗個設けられている。すなわち、論理ページ最小サイズは１ＫＢとされ、最大サイズは、その２の２乗倍である４ＫＢとされ、バンク数は２の２乗個（４個）設けられている。このようにすることにより、４ＫＢページサイズの場合とほぼ同様に、アドレス変換バッファＴＬＢには、全体としては１ＫＢページサイズの、任意論理ページ番号のエントリを、１２８個保有可能にされる。但し、一つのバンクに保有できるエントリの論理ページ番号は４ＫＢ毎という制約を受ける。この制限は、アドレス変換バッファＴＬＢの保有するエントリの論理ページ番号が連続的であれば、アドレス変換バッファＴＬＢのヒット率には何等影響を与えない。分散的である場合にはある程度ヒット率に影響を受ける。この場合でも、１ＫＢの論理ページを２ＫＢ毎にアドレスマッピングすればその影響を小さく���き、４ＫＢ毎にアドレスマッピングすれば全く影響を受けないようにすることができる。例えば、１ＫＢページサイズの変換情報をアドレス変換バッファＴＬＢへ設定する（書き込む）際、４個のバンク（ＢＮＫ０）、（ＢＮＫ１）、（ＢＮＫ２）、（ＢＮＫ３）のそれぞれから、５ビットのインデックスアドレスによって指示される４個のエントリに、２ビットｖｐｎ（１１−１０）が"００"のときの変換情報、２ビットｖｐｎ（１１−１０）が"０１"のときの変換情報、２ビットｖｐｎ（１１−１０）が"１０"のときの変換情報、２ビットｖｐｎ（１１−１０）が"１１"のときの変換情報を、各々設定する。このようにすれば、ヒット率の低下を防ぐことが可能となる。
【００３６】
ヒット判定のためのアドレス比較のビット数は、図２４に基づいて後述するように論理ページサイズに応じて変化されなければならない。論理ページサイズが１ＫＢの場合には４ＫＢの場合に比べてｖｐｎ（１１−１０）をＶＰＮ（１１−１０）と比較しなければならない。アドレス変換バッファＴＬＢはそのような比較対象のビット数を全てカバーできるようにＶＰＮ（３１−１７）とＶＰＮ（１１−１０）の記憶領域を備え、且つ、物理ページ番号ＰＰＮに対しても２２ビットの記憶領域を備えている。アドレス変換バッファＴＬＢは各エントリのデータ部にそれがサポートする論理ページサイズを示すサイズビットＳＺを有し、その値に応じてヒット判定のためのアドレス比較のビット数を変化させる。図２４に示されるように、サイズビットＳＺ＝１（論理ページサイズ＝４ＫＢ）の場合にはＶＰＮ（３１−１７）が論理アドレスの対応ビットとの比較対象とされ、サイズビットＳＺ＝０（論理ページサイズ＝１ＫＢ）の場合にはＶＰＮ（３１−１７），ＶＰＮ（１１−１０）が論理アドレスの対応ビットとの比較対象とされる。図２０等に示されるｈｉｔ１〜ｈｉｔ４は各バンクＢＮＫ０〜ＢＮＫ３におけるヒット判定を通知するためのヒット信号であり、それらに基づいてＴＬＢヒット／ミスが判定される。
【００３７】
このように複数ページサイズを選択的にサポートするマイクロコンピュータＭＰＵは、システムに実装される実メモリの全記憶容量が少ないような場合に論理ページのサイズを比較的小さくして各プロセスによるメモリ利用効率を向上させたいという要求にも容易に対応できる。このとき、最大論理ページサイズが最小サイズの２のべき乗数倍にされ、そのセットアソシアティブ方式のアドレス変換バッファＴＬＢのバンクの数をその２のべき乗数以上にすることにより、インデックスアドレスの指定手法を最大論理ページサイズのものに統一化しても、選ばれている論理ページサイズが最大であっても最小であっても、原理的にはどの論理ページ番号のエントリについてもアドレス変換バッファＴＬＢに保有可能にすることができる。論理ページ番号に対応する論理ページのサイズを示すための情報を設け、このサイズを用いてヒット判定のためのアドレス比較のビット数を変化させることにより、アドレス変換バッファＴＬＢを連想的に検索するための比較対象情報のビット数やビット位置を論理ページのサイズによって変化させることを容易に実現できる。複数ページサイズをサポートするアドレス変換バッファＴＬＢをセットアソシアティブ形式のキャッシュメモリで実現することは、これをＣＡＭ（Content Addressable Memory）で構成する場合に比べてチップ専有面積と消費電力を共に半減させることができる。
【００３８】
《アドレス変換ユニットの構成モジュール》  図５にはアドレス変換ユニットＭＭＵのブロック図が示される。アドレス変換バッファＴＬＢは例えばＳＲＡＭ（スタティックランダムアクセスメモリ）から構成され、４ウェイセットアソシアティブ形式を実現するために４個のバンク（ウェイとも記す）ＢＮＫ０〜ＢＮＫ３を供え、各バンクＢＮＫ０〜ＢＮＫ３はＴＬＢエントリのアドレス部（論理ページアドレスと比較されるべきアドレスタグとしての論理ページ番号に関する情報などを含む）を格納するためのアドレスアレイ部ＴＡ−ａｒｙと、ＴＬＢエントリのデータ部（アドレスタグに対応する物理ページ情報などを含む）を格納するためのデータアレイ部ＴＤ−ａｒｙとに分けられている。一つのＴＬＢエントリはアドレスアレイ部ＴＡ−ａｒｙとデータアレイ部ＴＤ−ａｒｙにまたがって格納される。夫々のバンクＢＮＫ０〜ＢＮＫ３は３２個のＴＬＢエントリを格納する。従って各バンクから一つのエントリを選択するためには５ビットのインデックスアドレスＩＤＸが必要とされる。インデックスアドレスＩＤＸはアドレスアレイ部ＴＡ−ａｒｙ及びデータアレイ部ＴＤ−ａｒｙの各バンクＢＮＫ０〜ＢＮＫ３に共通に供給される。インデックスアドレスＩＤＸにて各バンクＢＮＫ０〜ＢＮＫ３で選択された夫々のＴＬＢエントリは読み出し経路Ｒ１−ｐａｓｓを介して制御部ＴＬＢ−Ｃに供給される。インデックスされたＴＬＢエントリのうちＴＬＢミス／ヒットを判定するためのアドレスタグなどはバンク毎にコンパレータＣＭＰ０〜ＣＭＰ３に供給される。コンパレータＣＭＰ０〜ＣＭＰ３はバンク毎にアドレスタグと論理ページアドレスとを比較してその判定結果をヒット信号ｈｉｔ１〜ｈｉｔ４にて制御部ＴＬＢ−Ｃ（ＴＬＢコントローラＴＬＢ−Ｃとも記す）に通知する。
【００３９】
ＴＬＢコントローラＴＬＢ−Ｃは上記読出されたＴＬＢエントリの情報とヒット信号ｈｉｔ１〜ｈｉｔ４などを受け、それらに従ってＴＬＢミス／ヒットなどに関する処理を行う。ＴＬＢヒットの場合にはヒットに係るＴＬＢエントリに含まれる物理ページ番号にそのときの論理アドレスのオフセットを下位側に付加して物理アドレスを生成する。ＴＬＢミスの場合には、ＴＬＢミス例外が発生され、ミスに係る新たなＴＬＢエントリが外部メモリＭＭＲＹからロードされてアドレス変換が再実行される。そのときエントリのリプレースを要するときはランダム或いはＬＲＵ（Least Recentry Used）などの論理に従ってリプレース対象バンクが決定される。
【００４０】
上述の新たなＴＬＢエントリのロードやＴＬＢエントリの無効化などにおいてはバンクを指定してメモリ部ＴＬＢ−Ｍをアクセスすることを要する。それに対処するためにアドレス変換バッファＴＬＢは以下に説明するところのアドレス指定アクセスが可能にされる。
【００４１】
アドレス変換バッファＴＬＢのアドレス指定アクセスのためのハードウェア構成として図５の制御回路ＴＬＢ−Ｃには、書き込み選択回路ＷＳ１、書き込み制御ゲートＧＴ１、読み出し選択回路ＲＳ１、アドレスデコーダＤＥＣ１、オアゲートＯＲ１が示される。書き込み経路Ｗ１−ｐａｓｓは書き込み選択回路ＷＳ１からアドレスアレイ部ＴＡ−ａｒｙ及びデータアレイ部ＴＤ−ａｒｙの各バンクＢＮＫ０〜ＢＮＫ３に結合される。書き込み選択回路ＷＳ１はアドレスデコーダＤＥＣ１から出力されるデコード信号としてのアレイ部選択信号Ｓ１−ａｒｙとバンク選択信号Ｓ１−ｂｎｋにてアドレスアレイ部ＴＡ−ａｒｙ又はデータアレイ部ＴＤ−ａｒｙの一つのバンクを選択して書き込みデータを供給する。制御ゲートＧＴ１は書き込み選択回路ＷＳ１に、外部から与えられた書き込みデータを供給する。制御ゲートＧＴ１はオアゲートＯＲ１の出力がハイレベルにされることを条件に書き込みデータを書き込み選択回路ＷＳ１に与える。したがって、後述の連想ビットＡがハイベルのときは、ヒット信号ｈｉｔ１〜ｈｉｔ４の何れかがハイレベルにされることを条件に書き込み制御ゲートＧＴ１が開かれ、連想ビットＡがローレベルのときは、ヒット信号ｈｉｔ１〜ｈｉｔ４のレベルとは無関係に書き込み制御ゲートＧＴ１が開かれる。読み出し選択回路ＲＳ１は、アドレスアレイ部ＴＡ−ａｒｙ及びデータアレイ部ＴＤ−ａｒｙでインデックスされて読み出し経路Ｒ１−ｐａｓｓに読出されてくるデータを受け、アドレスデコーダＤＥＣ１から出力されるアレイ部選択信号Ｓ１−ａｒｙとバンク選択信号Ｓ１−ｂｎｋにてアドレスアレイ部ＴＡ−ａｒｙ又はデータアレイ部ＴＤ−ａｒｙの一つのバンクからの読み出しデータを外部に出力可能にする。書き込み選択回路ＷＳ１は書き込み動作が指示されることによって動作可能にされ、読み出し選択回路ＲＳ１は読み出し動作が指示されることによって動作可能にされる。書き込み又は読み出しの指示は中央処理装置ＣＰＵが論理アドレスと共に出力する。尚、論理アドレスを物理アドレスに変換するためのアドレス変換動作において、各バンクＢＮＫ０〜ＢＮＫ３でインデックスされた情報は、読み出し選択回路ＲＳ１を通らず、図示しない制御回路ＴＬＢ−Ｃ内部の制御論理にて物理アドレスへの変換制御に利用される。
【００４２】
《ＴＬＢのアドレス指定アクセス》  アドレス変換バッファＴＬＢは論理空間の上記Ｐ４領域にマッピングされ、ＭＯＶ命令のような一般的なデータ転送命令にてアドレスを指定してリード・ライト可能にされている（Memory Mapped TLB）。アドレスアレイ部ＴＡ−ａｒｙはＨ'Ｆ２００００００〜Ｈ'Ｆ２ＦＦＦＦＦＦにマッピングされ、データアレイ部ＴＤ−ａｒｙはＨ'Ｆ３００００００〜Ｈ'Ｆ３ＦＦＦＦＦＦにマッピングされる。Ｐ４領域（Ｈ'Ｅ０００００００〜Ｈ'ＦＦＦＦＦＦＦＦ）は図３からも明らかなようにオペレーティングシステムやシステムプログラムが走行する特権状態（特権モード）によってアクセス可能な空間とされる。
【００４３】
アドレス変換バッファＴＬＢに対するアクセスアドレスを指定するためのアドレスフォーマットは図７に示される。アドレスアレイ部ＴＡ−ａｒｙに対するリード／ライトのアドレスのビット３１〜ビット２４はＨ'Ｆ２（１１１１００１０）とされる。データアレイ部ＴＤ−ａｒｙに対するリード／ライトのアドレスのビット３１〜ビット２４はＨ'Ｆ３（１１１１００１１）とされる。これによってアドレス変換ユニットＭＭＵの制御部ＴＬＢ−Ｃはデータアレイ部ＴＤ−ａｒｙやアドレスアレイ部ＴＡ−ａｒｙに対するアドレス指定アクセスを認識する。このとき、アクセス対象バンク（ウェイ）の指定はビット９〜ビット８の２ビット（Ｗ）で指定され、１個のバンク当たりのエントリの指定はビット１６〜ビット１２の５ビット（ＥＮＴＲＹ）で指定される。制御部ＴＬＢ−Ｃはそれらの情報に従い、アクセス論理アドレスのビット３１〜ビット２４のＨ'Ｆ２又はＨ'Ｆ３に応じ上記信号Ｓ１−ａｒｙにてアドレスアレイ部ＴＡ−ａｒｙ又はデータアレイ部ＴＤ−ａｒｙを指定し、バンク指定ビットＷに応ずる信号Ｓ１−ｂｎｋにて１個のバンクを指定し、エントリ指定ビットＥＮＴＲＹに応じインデックスアドレスＩＤＸにてバンク内の一つのＴＬＢエントリを指定する。これにより、データアレイ部ＴＤ−ａｒｙ又はアドレスアレイ部ＴＡ−ａｒｙにおける所定バンクの所定エントリをアドレスにて指定可能になる。
【００４４】
図５を参照して更に詳述する。システムバスＳ−ｂｕｓ上の論理アドレスは図５のアドレスデコーダＤＥＣ１にも供給される。アドレスデコーダＤＥＣ１は図７のアドレスフォーマットに示されるように、論理アドレスのビット３１〜ビット２４のＨ'Ｆ２又はＨ'Ｆ３を検出することによって、アドレス変換バッファＴＬＢに対するアドレス指定アクセスを認識する。中央処理装置ＣＰＵが出力するシステムバスコマンド（Ｓバスコマンド）をコマンドデコーダＤＣＲがデコードすることによってリード／ライト信号Ｒ／Ｗが形成される。したがって、アクセスがリード動作かライト動作かはコマンドデコーダＤＣＲから出力されるリード／ライト信号Ｒ／Ｗによって決まる。図７のアドレス及びデータフォーマットに示されるように、アドレスアレイ部に対するリード動作の指示によって読出されるデータはアドレスタグとしての論理ページ番号情報ＶＰＮ（３１−１７），ＶＰＮ（１１−１０）及び空間番号ＡＳＩＤとされる。アドレスアレイ部に対するライト動作の指示によって書き込まれるデータはアドレスタグとしての論理ページ番号情報ＶＰＮ（３１−１７），ＶＰＮ（１１−１０）及び空間番号ＡＳＩＤの他にバリッドビットＶが含まれる。図４の説明ではＶビットはデータアレイ部ＴＤ−ａｒｙに配置されているが、アドレスアレイ部ＴＡ−ａｒｙに対するライト動作では当該Ｖビットについても併せてデータアレイ部ＴＤ−ａｒｙに書込みを行うようにする制御信号が前記制御信号Ｓ１−ｂｎｋに含まれている。アドレスアレイ部に対する書き込みだけで当該エントリを無効化できるようにするためである。データアレイ部に対するリード動作の指示によって読出されるデータとライト動作によって書き込まれるデータは共に、ＰＰＮ，Ｖ，ＰＲ，ＳＺ，Ｃ，Ｄ，ＳＨとされる。
【００４５】
特にアドレスアレイ部ＴＡ−ａｒｙに対するライトアクセスの場合には図７に示されるようにビット７に連想ビットＡが割り当てられる。連想ビットＡは連想して（論理ページ番号とアドレスタグとのアドレス比較などを行って）書込みを行うか否かを指示するビットとされ、Ａ＝１の場合にはアドレス比較の結果がヒットの場合にのみ該当エントリへの書込みを許容し（ミスの場合には書込みを行わない）、Ａ＝０の場合にはアドレス比較を行わずアドレスで選択されたエントリへの書込みを許容することを意味する。連想ビットＡ＝１で指示されるアドレスアレイ部ＴＡ−ａｒｙへの連想書込みにおける比較対象アドレスは、書込みデータに含まれる論理ページ番号ＶＰＮの情報と、インデックスされたエントリの保有する論理ページ番号ＶＰＮの情報とである。このような連想書込みは特定のＴＬＢエントリを無効化するためにＶビットを論理値０に書き換えるような場合に利用される。例えば図８に示されるようなエントリの無効化に利用される。図５に示されるようにＡ＝１の場合には、オアゲートＯＲ１の出力はヒット信号ｈｉｔ１〜ｈｉｔ４の何れかがヒットレベル（ハイレベル）にされない限りローレベルを維持するから、アドレス比較結果がヒットになって初めて書き込みデータが書き込み選択回路ＷＳ１に供給される。Ａ＝０で指示される非連想書込みでは、アドレス比較結果とは無関係に書き込み制御ゲートＧＴ１が開かれるので、デバイステストにおいてアドレスアレイ部ＴＡ−ａｒｙを単に書き換える場合などに利用される。
【００４６】
上述のアドレスマッピングされたアドレス変換バッファＴＬＢに対するアドレス指定リードアクセスは、ＭＯＶ命令のようなデータ転送命令を利用して実行できる。その命令記述は例えば、ＭＯＶ  ＠Ｒ１，Ｒ０とされる。＠Ｒ１は転送元アドレスであり、適当なレジスタＲ１に図７で説明したフォーマットの所望のアドレスが設定される。Ｒ０は転送先レジスタである。この命令を実行することにより、アドレス変換バッファＴＬＢはＭＯＶ命令でアクセス可能なメモリと同様にリードアクセスされ、そのリードデータはレジスタＲ０に転送される。アドレス変換バッファＴＬＢに対するライトアクセスも同様であり、その命令記述は例えば、ＭＯＶ  Ｒ０，＠Ｒ１とされる。＠Ｒ１は転送先アドレスであり、適当なレジスタＲ１に図７で説明したフォーマットの所望のアドレスが設定される。Ｒ０は転送元レジスタであり、書込みデータが保持される。この命令を実行することにより、アドレス変換バッファＴＬＢはその他のメモリ同様にＭＯＶ命令でライトアクセスされる。この場合、Ａビット＝１をアドレス情報に含め、無効化したいエントリの論理ページ番号ＶＰＮとＶ＝０を書込みデータに含めて上記命令を実行したとき、アドレス比較が一致（ＴＬＢヒット）の場合だけ書込み動作が行われ（当該エントリの無効化が行われ）、不一致の場合には書込み動作は行われない（当該エントリは無効化されない）。
【００４７】
このようにアドレス変換バッファＴＬＢをアドレス空間にマッピングしアドレスを指定してアクセス可能にすると、そのアクセスは、殆どの命令セットに必ず含まれるＭＯＶ命令のような一般的なデータ転送命令を以て実現できる。したがって、アドレス変換バッファＴＬＢをアクセスするための専用命令を要さず、命令コードの種類を少なくでき、命令語長の短縮に寄与できる。換言すれば、アドレス変換バッファＴＬＢをアクセスするための専用命令を採用する必要がないから、中央処理装置ＣＰＵの内部で命令をデコードするための命令デコーダＩＤの論理規模の増大を抑えることができる。更に、命令語長を短くしなければならないようなマイクロコンピュータのアークテクチャ上の要請にも容易に対処できる。例えば本実施例のマイクロコンピュータＭＰＵが１６ビット固定長命令を採用するならば、比較的短い命令コード故に当該命令コードは貴重なリソースとして位置付けられる。このため、アドレス変換バッファＴＬＢをアドレス空間にマッピングしアドレスを指定してアクセス可能にするということは、命令デコーダＩＤのハードウェア変更量を少なくでき、命令コードの新規追加を不要にできる。また、アドレスアレイ部ＴＡ−ａｒｙに対するライトアクセスのためのアドレスフォーマットには連想ビットＡが含まれ、これによって連想書込みの有無を任意に指定できるようにしたので、本来アドレス比較を要するＴＬＢエントリの無効化の処理とデバイステスト時のような本来アドレス比較を要しないような書き換えとの双方の要求に容易に対処することができる。
【００４８】
《キャッシュエントリ》  図９にはキャッシュメモリＣＡＣＨＥ−Ｍのエントリ構成が示される。アドレス部は２２ビットのアドレスタグ（エントリの物理アドレスのビット３１〜ビット１０）ＴＡＧ、バリッドビットＶ（Ｖ＝１は当該エントリの有効、Ｖ＝０は当該エントリの無効を意味する）、アップデートビットＵ（Ｕ＝１は当該キャッシュエントリが書き換えられたこと、Ｕ＝０は当該エントリが書き換えられていないことを意味する）、及び６ビットのＬＲＵフィールドＬ（キャッシュエントリのリプレースメントのためのＬＲＵアルゴリズムにしたがってエンコードされたデータ）を有し、データ部は夫々３２ビットのロングワードデータの領域を４個（１６バイト）有する。
【００４９】
《キャッシュユニットの構成モジュール》  図１０にはキャッシュユニットＣＡＣＨＥのブロック図が示される。キャッシュメモリＣＡＣＨＥ−Ｍは例えばＳＲＡＭから構成され、４ウェイセットアソシアティブ形式を実現するために４個のバンク（ウェイとも記す）ＢＮＫ０〜ＢＮＫ３を供え、各バンクＢＮＫ０〜ＢＮＫ３はキャッシュエントリのアドレス部を格納するためのアドレスアレイ部ＣＡ−ａｒｙと、キャッシュエントリのデータ部を格納するためのデータアレイ部ＣＤ−ａｒｙとに分けられている。一つのキャッシュエントリはアドレスアレイ部ＣＡ−ａｒｙとデータアレイ部ＣＤ−ａｒｙにまたがって格納される。夫々のバンクＢＮＫ０〜ＢＮＫ３は１２８個のキャッシュエントリを格納する。したがって各バンクから一つのエントリを選択するためには７ビットのインデックスアドレスＩＤＸが必要とされる。一つのキャッシュエントリは１６バイトのデータを保有できるので、インデックスアドレスは論理アドレスのビット１０〜ビット４とされる。インデックスアドレスＩＤＸはアドレスアレイ部ＣＡ−ａｒｙ及びデータアレイ部ＣＤ−ａｒｙの各バンクＢＮＫ０〜ＢＮＫ３に共通に供給される。論理アドレスのビット３〜ビット０は１６バイトのデータをバイト単位で指定する情報とみなすことができる。
【００５０】
キャッシュメモリＣＡＣＨＥ−Ｍのデータ記憶容量は、１個のバンク当たり約２ＫＢ（１６Ｂ×１２８）であり全体で８ＫＢ（２ＫＢ×４）とされる。ページサイズが４ＫＢのときキャッシュエントリのアドレスタグＴＡＧは、論理アドレスページ番号ｖｐｎ（ビット３１〜ビット１２）をアドレス変換ユニットＭＭＵにて変換した物理ページ番号ｐｐｎと論理アドレスのビット１１（論理アドレスのオフセットの最上位ビット）を合わせた物理アドレスのビット３１〜ビット１１すなわちｐｐｎ（３１−１１）と比較される。ページサイズが１ＫＢのときキャッシュエントリのアドレスタグＴＡＧは、論理アドレスページ番号ｖｐｎ（ビット３１〜ビット１０）をアドレス変換ユニットＭＭＵにて変換した物理ページ番号ｐｐｎのうちビット３１〜ビット１１すなわちｐｐｎ（３１−１１）と比較される。アドレスタグＴＡＧを構成する物理アドレスのビット１０は上記アドレス比較には利用されない。これは後述するように専らライトバックにおける書き戻しアドレスの生成に利用される。上記アドレス比較はバンク毎にコンパレータＣＭＰ０〜ＣＭＰ３にて行われ、その比較結果はヒット信号ｈｉｔ１１〜ｈｉｔ１４にて制御部ＣＡＣＨＥ−Ｃに与えられる。図１１にはページサイズ４ＫＢの場合におけるキャッシュエントリ選択手法が模式的に示されている。
【００５１】
図１０において制御部ＣＡＣＨＥ−Ｃ（キャッシュコントローラＣＡＣＨＥ−Ｃとも記す）は上記読出されたキャッシュエントリの情報とヒット信号ｈｉｔ１１〜ｈｉｔ１４などを受け、それらに従ってキャッシュミス／ヒットなどに関する処理を行う。例えばリードアクセスにおいてアドレスタグＴＡＧの比較動作が一致の場合にはバリッドビットＶが調べられ、Ｖ＝１ならばキャッシュヒットとされ、論理アドレスのビット２及び３にて当該エントリの１６バイトのデータから対応する４バイトのデータをキャッシュバスＣ−ｂｕｓに出力する。リードアクセスに際してアドレスタグＴＡＧの比較動作が不一致又は選択されたエントリのバリッドビットＶ＝０ならばキャッシュミスとされ、外部バスサイクルが起動されて外部メモリＭＭＲＹから目的とするデータが読み込まれ、それが新たなキャッシュエントリとしてロードされる。新たなエントリによって置き換えられるべきキャッシュラインは例えばハードウェアによりＬＲＵアルゴリズムにて選択される。置き換えられるべきキャッシュラインのエントリのアップデートビットＵ＝１ならば、そのエントリは置き換えの前にライトバックバッファＷＢＢＵＦにストアされ、エントリの置き換え後に外部メモリＭＭＲＹの対応アドレスに書き戻される。キャッシュメモリＣＡＣＨＥ−Ｍと外部メモリＭＭＲＹとのデータの整合を保つためである。リプレースされた新たなキャッシュエントリは、それがライトミスに起因するものであるときにはライトの後にＵ＝１とされ、リードミスに起因するものであるときにはＵ＝０のままとされる。
【００５２】
ライトアクセスにおいてもキャッシュメモリＣＡＣＨＥ−Ｍに対するインデックスはリードアクセスと同様に行われる。キャッシュヒットの場合には、書込みデータが当該キャッシュヒットに係るキャッシュエントリに書き込まれると共に当該キャッシュエントリのアップデートビットＵを論理値１にセットするための書込みが行われる。書込みアクセスにおいてキャッシュミスを生じた場合には、新たなキャッシュラインに書き込まれることになる。このとき置き換えられるべきキャッシュラインのエントリが保有するアップデートビットＵ＝１ならば、そのエントリは置き換えの前にライトバックバッファＷＢＢＵＦにストアされ、エントリの置き換え後に外部メモリＭＭＲＹの対応アドレスに書き戻される。リプレースされた新たなキャッシュエントリにおけるアップデートビットＵは論理値１にされる。
【００５３】
上述の新たなキャッシュエントリのロード、キャッシュエントリの無効化、アップデートビットＵのリード／ライトなどにおいてはバンクを指定してキャッシュメモリＣＡＣＨＥ−Ｍをアクセスすることを要する。それに対処するためにキャッシュメモリＣＡＣＨＥ−Ｍは以下に説明するところのアドレス指定アクセスが可能にされる。
【００５４】
キャッシュメモリＣＡＣＨＥ−Ｍのアドレス指定アクセスのためのハードウェア構成として図１０の制御回路ＣＡＣＨＥ−Ｃには、書き込み選択回路ＷＳ２、書き込み制御ゲートＧＴ２、読み出し選択回路ＲＳ２、アドレスデコーダＤＥＣ２、オアゲートＯＲ２が示される。書き込み経路Ｗ２−ｐａｓｓは書き込み選択回路ＷＳ２からアドレスアレイ部ＣＡ−ａｒｙ及びデータアレイ部ＣＤ−ａｒｙの各バンクＢＮＫ０〜ＢＮＫ３に結合される。書き込み選択回路ＷＳ２はアドレスデコーダＤＥＣ２から出力されるデコード信号としてのアレイ部選択信号Ｓ２−ａｒｙとバンク選択信号Ｓ２−ｂｎｋにてアドレスアレイ部ＣＡ−ａｒｙ又はデータアレイ部ＣＤ−ａｒｙの一つのバンクを選択して書き込みデータを供給する。制御ゲートＧＴ２は書き込み選択回路ＷＳ２に、外部から与えられた書き込みデータを供給する。制御ゲートＧＴ２はオアゲートＯＲ２の出力がハイレベルにされることを条件に書き込みデータを書き込み選択回路ＷＳ２に与える。したがって、後述の連想ビットＡがハイベルのときは、ヒット信号ｈｉｔ１１〜ｈｉｔ１４の何れかがハイレベルにされることを条件に書き込み制御ゲートＧＴ２が開かれ、連想ビットＡがローレベルのときは、ヒット信号ｈｉｔ１１〜ｈｉｔ１４のレベルとは無関係に書き込み制御ゲートＧＴ２が開かれる。読み出し選択回路ＲＳ２は、アドレスアレイ部ＣＡ−ａｒｙ及びデータアレイ部ＣＤ−ａｒｙでインデックスされて読み出し経路Ｒ２−ｐａｓｓに読出されてくるデータを受け、アドレスデコーダＤＥＣ２から出力されるアレイ部選択信号Ｓ２−ａｒｙとバンク選択信号Ｓ２−ｂｎｋにてアドレスアレイ部ＣＡ−ａｒｙ又はデータアレイ部ＣＤ−ａｒｙの一つのバンクからの読み出しデータを外部に出力可能にする。書き込み選択回路ＷＳ２は書き込み動作が指示されることによって動作可能にされ、読み出し選択回路ＲＳ２は読み出し動作が指示されることによって動作可能にされる。書き込み又は読み出しの指示は中央処理装置ＣＰＵが論理アドレスと共に出力する。尚、キャッシュ動作において、各バンクＢＮＫ０〜ＢＮＫ３でインデックスされた情報は、読み出し選択回路ＲＳ２を通らず、図示しない制御回路ＣＡＣＨＥ−Ｃ内部の制御論理にてキャッシュミス／ヒットの制御に利用される。
【００５５】
《アドレスタグのライトバックへの考慮》  本実施例のマイクロコンピュータＭＰＵにおいて上記キャッシュユニットＣＡＣＨＥにはライトバック（コピーバックとも称される）方式が採用される。即ち、ライトアクセスにおいてキャッシュメモリＣＡＣＨＥ−Ｍが書き換えられたとき当該書き換えられた内容を、キャッシュミスが生じてそのエントリが新たなエントリにリプレースされるときに外部メモリＭＭＲＹに書き戻すという手法である。上述のようにエントリをリプレースするときに新たなエントリによって置き換えられるべきエントリのアップデートビットＵ＝１ならば、当該エントリは外部メモリＭＭＲＹに書き戻される。このようにして書き戻すときの書込みアドレスは、当該書き戻されるべきキャッシュラインのアドレスタグＴＡＧの情報と、そのときのキャッシュミスに係る論理アドレス情報（特に論理アドレスにおけるオフセット部分）を用いて生成しなければならない。
【００５６】
本実施例のキャッシュメモリＣＡＣＨＥ−Ｍの１個のバンクにおけるデータ記憶容量は上述のように２ＫＢである。本実施例においてアドレスはバイトアドレスである。キャッシュメモリＣＡＣＨＥ−Ｍをインデックスしてバンクから一つのロングワードデータ（４バイト）を指定するには論理アドレスのビット１０までを必要とする。論理アドレスのビット１１〜ビット３１まではアドレスタグＴＡＧとのアドレス比較に利用される。即ちアドレス比較という点に関してアドレスタグＴＡＧには物理アドレスのビット３１〜ビット１１が保持されていることが必要とされる。このとき本実施例のマイクロコンピュータＭＰＵはページサイズを１ＫＢと４ＫＢに可変に設定できるようになっている。ページサイズが１ＫＢ（１個のバンクにおけるデータ記憶容量よりも小さな記憶容量とされる）のときページ番号はアドレスのビット３１〜ビット１０によって特定される。したがってページサイズが１ＫＢのときにライトバックを行うには、少なくとも物理アドレスのビット３１〜ビット１０で規定される物理ページアドレスが必要であり、この情報がアドレスタグＴＡＧになければライトバックのための書き戻しアドレスを特定することは困難になる。そこで、キャッシュエントリはマイクロコンピュータＭＰＵがサポートする最小ページサイズに対応した物理ページ番号の全ビット（物理アドレスのビット３１〜ビット１０）をアドレスタグＴＡＧとして保有するためのフィールドを有し、インデックスされたエントリのアドレス比較に際してはアドレスタグＴＡＧにおける物理アドレスのビット３１〜ビット１１を利用し（１ＫＢ／４ＫＢページサイズの何れにおいてもビット１０は不使用）、ライトバックの際の書き戻しアドレスの生成にはアドレスタグＴＡＧのフィールドに含まれる物理アドレスのビット３１〜ビット１０が利用される。ページサイズが１ＫＢのときは当該アドレスタグに含まれる物理アドレスのビット３１〜１０を全部使用し、ページサイズが４ＫＢのときは物理アドレスのビット３１〜１２を利用する。
【００５７】
このようにページサイズがキャッシュメモリＣＡＣＨＥ−Ｍの１個のバンクにおけるデータ記憶容量よりも小さな容量とされる場合に、そのページサイズに対応した物理ページ番号を全ビット保有できるサイズのアドレスタグＴＡＧのフィールドを採用し、アドレス比較に必要なビット数を超えてそこに物理アドレス情報を保有させることにより、インデックスされたキャッシュエントリに対するアドレス比較とライトバックの双方の要求を満足するに必要且つ充分なキャッシュメモリとすることができる。
【００５８】
《キャッシュメモリのアドレス指定アクセス》  キャッシュメモリＣＡＣＨＥ−Ｍもアドレス変換バッファＴＬＢと同様に論理空間の上記Ｐ４領域にマッピングされ、ＭＯＶ命令のような一般的なデータ転送命令にてアドレスを指定してリード・ライト可能にされている（Memory Mapped CACHE）。アドレスアレイ部ＣＡ−ａｒｙはＨ'Ｆ０００００００〜Ｈ'Ｆ０ＦＦＦＦＦＦにマッピングされ、データアレイ部ＣＤ−ａｒｙはＨ'Ｆ１００００００〜Ｈ'Ｆ１ＦＦＦＦＦＦにマッピングされる。Ｐ４領域（Ｈ'Ｅ０００００００〜Ｈ'ＦＦＦＦＦＦＦＦ）は図３（Ａ）からも明らかなようにオペレーティングシステムやシステムプログラムが走行する特権状態（特権モード）によってアクセス可能な空間とされる。
【００５９】
キャッシュメモリＣＡＣＨＥ−Ｍに対するアクセスアドレスを指定するためのアドレスフォーマットは図１２に示される。アドレスアレイ部ＣＡ−ａｒｙに対するリード／ライトのアドレスのビット３１〜ビット２４はＨ'Ｆ０（１１１１００００）とされる。データアレイ部ＣＤ−ａｒｙに対するリード／ライトのアドレスのビット３１〜ビット２４はＨ'Ｆ１（１１１１０００１）とされる。これによってキャッシュユニットＣＡＣＨＥの制御部ＣＡＣＨＥ−Ｃはデータアレイ部ＣＤ−ａｒｙやアドレスアレイ部ＣＡ−ａｒｙに対するアドレス指定アクセスを認識する。このとき、アクセス対象バンク（ウェイ）の指定はビット１２〜ビット１１の２ビット（Ｗ）で指定され、エントリの指定（キャッシュラインの指定）はビット１０〜ビット４の７ビット（ＥＮＴＲＹ）で指定される。制御部ＣＡＣＨＥ−Ｃはそれらの情報にしたがい、アクセス論理アドレスのビット３１〜ビット２４のＨ'Ｆ０又はＨ'Ｆ１に応じ信号Ｓ２−ａｒｙにてアドレスアレイ部ＣＡ−ａｒｙ又はデータアレイ部ＣＤ−ａｒｙを指定し、バンク指定ビットＷに応じ信号Ｓ２−ｂｎｋにて１個のバンクを指定し、エントリ指定ビットＥＮＴＲＹに応ずるインデックスアドレスＩＤＸにてバンク内に一つのキャッシュエントリ（キャッシュライン）を指定する。これにより、データアレイ部ＣＤ−ａｒｙ又はアドレスアレイ部ＣＡ−ａｒｙにおける所定バンクの所定エントリをアドレスにて指定可能にされる。
【００６０】
図１０を参照して更に詳述する。システムバスＳ−ｂｕｓ上の論理アドレスは図１０のアドレスデコーダＤＥＣ２にも供給される。アドレスデコーダＤＥＣ２は図１２のアドレスフォーマットに示されるように、論理アドレスのビット３１〜ビット２４のＨ'Ｆ０又はＨ'Ｆ１を検出することによって、キャッシュメモリＣＡＣＨＥ−Ｍに対するアドレス指定アクセスを認識する。中央処理装置ＣＰＵが出力するＳバスコマンドをコマンドデコーダＤＣＲがデコードすることによってリード／ライト信号Ｒ／Ｗが形成される。したがって、アクセスがリード動作かライト動作かはコマンドデコーダＤＣＲから出力されるリード／ライト信号Ｒ／Ｗによって決まる。図１２のアドレス及びデータフォーマットに示されるように、アドレスアレイ部に対するリードデータ及びライトデータはアドレスタグＴＡＧ（３１−１０）、ＬＲＵ、Ｕビット、及びＶビットとされる。アドレスアレイ部に対する書き込みだけで当該エントリを無効化できるようにＶビットが含まれている。データアレイ部に対するリードライトデータは１６バイトのデータとされる。
【００６１】
アドレスアレイ部ＣＡ−ａｒｙに対するライトアクセスの場合には図１２に示されるように、アドレスのビット３に連想ビットＡが割り当てられる。連想ビットＡは連想して（前記アドレス比較を行って）書込みを行うか否かを指示するビットとされ、Ａ＝１の場合にはアドレス比較の結果がヒットの場合にのみ該当エントリへの書込みを許容し（ミスの場合には書込みを行わない）、Ａ＝０の場合にはアドレス比較を行わずアドレスで選択されたエントリへの書込みを許容することを意味する。連想ビットＡで指示されるアドレスアレイへの連想書込みにおける比較対象アドレスは書込みデータに含まれるアドレスタグＴＡＧである。このような連想書込みは特定のキャッシュエントリを無効化するためにＶビットを論理値０に書き換えるような場合に利用される。エントリの無効化の処理例は図８に示される。データアレイ部ＣＤ−ａｒｙに対するアクセスの場合にはそのアドレスのビット３〜ビット２にはロングワードセレクトビットＬＳが割り当てられている。ロングワードセレクトビットＬＳはアクセス対象とするロングワードデータを２ビットで指定する。図１０に示されるようにＡ＝１の場合には、オアゲートＯＲ２の出力はヒット信号ｈｉｔ１１〜ｈｉｔ１４の何れかがヒットレベル（ハイレベル）にされない限りローレベルを維持するから、アドレス比較結果がヒットになって初めて書き込みデータが書き込み選択回路ＷＳ２に供給される。Ａ＝０で指示される非連想書込みでは、アドレス比較結果とは無関係に書き込み制御ゲートＧＴ２が開かれるので、デバイステストにおいてアドレスアレイ部ＣＡ−ａｒｙを単に書き換える場合などに利用される。
【００６２】
上述のアドレスマッピングされたキャッシュメモリＣＡＣＨＥ−Ｍに対するリードアクセスは、ＭＯＶ命令のようなデータ転送命令を利用して実行できる。その命令記述は例えば、ＭＯＶ  ＠Ｒ１，Ｒ０とされる。＠Ｒ１は転送元アドレスであり、適当なレジスタＲ１に図１２で説明したフォーマットのアドレスが設定される。Ｒ０は転送先レジスタである。この命令を実行することにより、キャッシュメモリＣＡＣＨＥ−ＭはＭＯＶ命令でアクセス可能なメモリと同様にリードアクセスされ、そのリードデータはレジスタＲ０に転送される。キャッシュメモリＣＡＣＨＥ−Ｍに対するライトアクセスも同様であり、その命令記述は例えば、ＭＯＶ  Ｒ０，＠Ｒ１とされる。＠Ｒ１は転送先アドレスであり、適当なレジスタＲ１に図１２で説明したフォーマットのアドレスが設定される。Ｒ０は転送元レジスタであり、書込みデータが保持される。この命令を実行することにより、キャッシュメモリＣＡＣＨＥ−Ｍはその他のメモリ同様にＭＯＶ命令でライトアクセスされる。この場合、Ａ＝１をアドレス情報に含め、無効化したいエントリのアドレスタグＴＡＧとＶ＝０を書込みデータに含めて上記命令を実行したとき、アドレス比較が一致（キャッシュヒット）の場合だけ書込み動作が行われ（当該キャッシュエントリが無効化され）、不一致の場合には書込み動作は行われない（当該キャッシュエントリは無効化されない）。
【００６３】
このようにキャッシュメモリＣＡＣＨＥ−Ｍをアドレス空間にマッピングし、アドレスを指定してアクセス可能にすると、そのアクセスは、ほとんどの命令セットに含まれるＭＯＶ命令のような一般的なデータ転送命令を以て実現できる。したがって、キャッシュメモリＣＡＣＨＥ−Ｍをアクセスするための専用命令を要さず、命令コードの種類を少なくでき、命令語長の短縮に寄与できる。換言すれば、キャッシュメモリＣＡＣＨＥ−Ｍをアクセスするための専用命令を採用する必要がないから、中央処理装置ＣＰＵの内部で命令をデコードするための命令デコーダＩＤの論理規模の増大を抑えることができる。更に、命令語長を短くしなければならないようなマイクロコンピュータのアークテクチャ上の要請にも容易に対処できる。例えば本実施例のマクロコンピュータＭＰＵが１６ビット固定長命令を採用するならば、比較的短い命令コード故に当該命令コードは貴重なリソースとして位置付けられる。このため、キャッシュメモリＣＡＣＨＥ−Ｍをアドレス空間にマッピングしアドレスを指定してアクセス可能にするということは、命令デコーダＩＤのハードウェア変更量を少なくでき、命令コードの新規追加を不要にできる。また、アドレスフォーマットにはＡビットを含めて連想書込みの有無を任意に指定できるようにしたので、本来アドレス比較を要するキャッシュエントリの無効化の処理とデバイステスト時のような本来アドレス比較を要しないような書き換えとの双方の要求に容易に対処することができる。
【００６４】
図１５には前記キャッシュメモリＣＡＣＨＥ−Ｍ及びアドレス変換バッファＴＬＢに対するアドレス指定アクセスが中央処理装置ＣＰＵの特権モードにおいてのみ可能にされることを示すブロック図である。同図においてキャッシュメモリＣＡＣＨＥ−Ｍ及びアドレス変換バッファＴＬＢに対するアクセス制御はそれに対するインデックスを主体に図示されている。アドレス変換バッファＴＬＢには論理アドレスのビット１６〜１２がインデックスアドレスとして供給される。アドレス指定アクセスにおいてそれらのビットは図７のアドレス指定アクセスにおけるアドレスフォーマットのバンク指定ビットＥＮＴＲＹに相当される。キャッシュメモリＣＡＣＨＥ−Ｍには論理アドレスのビット１０〜４がインデックスアドレスとして供給される。アドレス指定アクセスにおいてそれらのビットは図１２のアドレス指定アクセスにおけるアドレスフォーマットのバンク指定ビットＥＮＴＲＹに相当される。アクセス権チェック回路６０は、図３のメモリマップから明らかなように、その論理アドレスが特権モードにおいてのみアクセスが許容される領域Ｐ１〜Ｐ４のアドレスか否かを論理アドレスの最上位側の４ビットにて判定する。アクセス権チェック回路６０はモードビットＭＤを入力し、それによって論理アドレスに特権違反（ユーザモードにおける領域Ｐ１〜Ｐ４のアクセス）がないかを判定し、特権違反に対してはアドレスエラーを中央処理装置ＣＰＵに通知する。中央処理装置ＣＰＵはそれによって現在の命令実行を中断して例外処理に分岐される。図７及び図１２に示されるようにキャッシュメモリＣＡＣＨＥ−Ｍ及びアドレス変換バッファＴＬＢはＰ４領域にマッピングされるので、それらに対する前記アドレス指定アクセスは特権モードにおいてのみ可能にされる。尚、レジスタＰＴＥＨ及びＭＭＵＣＲはキャッシュコントローラＣＡＣＨＥ−Ｃに含まれる一部のコントロールレジスタ、ＸＯＲは排他的論理和回路、１８は選択回路であり、それらについては次の実施例説明で明らかにする。
【００６５】
以上の実施例説明ではマイクロコンピュータＭＰＵは複数ページサイズをサポートするものとした。本発明が適用されるマイクロコンピュータはその他に、複数のインデックス方法をサポートし、ＴＬＢエントリなどに対するリプレースの自由度を向上させ、単一仮想記憶と多重仮想記憶の双方をサポートする機能が付加されていてもよい。以下、図１６から図３３を参照しながらマイクロコンピュータＭＰＵにおける前記複数のインデックス方法のサポートなどについて説明する。
【００６６】
図２０にはメモリマネージメントユニットＭＭＵを主体として、マイクロコンピュータのブロック図が示される。同図に示されるマイクロコンピュータは、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような１個の半導体基板に形成されている。同図には論理アドレスバスＶＡＢＵＳ、物理アドレスバスＰＡＢＵＳ、データバスＤＢＵＳ、中央処理装置ＣＰＵ、キャッシュユニットＣＡＣＨＥ、バッファメモリとしてのアドレス変換バッファＴＬＢ、及びＴＬＢコントローラＴＬＢ−Ｃが代表的な回路ブロックとして図示されている。中央処理装置ＣＰＵは図示しないプログラムメモリから命令をフェッチし、その命令記述に応じたデータ処理を行い、外部アクセスを要する場合には論理アドレスバスＶＡＢＵＳに論理アドレスを出力し、データバスＤＢＵＳにデータを入出力を行う。キャッシュユニットＣＡＣＨＥは、特に制限されないが、４ウェイ・セットアソシアティブ形式とされ、バンクに対するインデックスは論理アドレスバスＶＡＢＵＳから供給される論理アドレスの一部を用いて行われ、エントリのタグ部には物理アドレスが保有され、インデックスされたタグ部はその論理アドレスがアドレス変換バッファＴＬＢで変換されて物理アドレスバスＰＡＢＵＳに出力される物理アドレスと比較され、その比較結果に応じてキャッシュミス／ヒットを判定する。
【００６７】
本実施例のマイクロコンピュータは、論理アドレス空間を論理ページと呼ばれる単位に分割し、そのページ単位で論理アドレスを物理アドレスへアドレス変換を行うための仮想記憶をサポートする。上記アドレス変換バッファＴＬＢは論理ページ番号ＶＰＮとこれに対応した物理ページ番号ＰＰＮとに関する変換対などをＴＬＢエントリとして格納し、ＴＬＢコントローラＴＬＢ−Ｃは中央処理装置ＣＰＵが出力する論理アドレスをアドレス変換バッファＴＬＢなどを用いて物理アドレスに変換する。そのアドレス変換バッファＴＬＢは夫々インデックスアドレスが共通化された４個のバンクを持つ４ウェイ・セットアソシアティブ方式のキャッシュメモリによって構成される。図面が複雑になるのを避けるために、図２０には代表的に１個のバンクＢＮＫ０のみが図示されているが、実際には図６のようにバンクＢＮＫ０と同様の別のバンクＢＮＫ１〜ＢＮＫ３が紙面の表裏方向に配置されている。上記アドレス変換バッファＴＬＢ、ＴＬＢコントローラＴＬＢ−Ｃ、中央処理装置ＣＰＵ、及びアドレス変換とメモリ保護のためのシステムソフトウェア若しくはオペレーティングシステムによって、上記仮想記憶をサポートするアドレス変換機構が構成される。
【００６８】
本実施例マイクロコンピュータのアドレス空間については図３（Ａ）及び図３（Ｂ）に基づいて既に説明した通りである。また、本実施例のマイクロコンピュータを特権モードに設定する仕方として、１）例外や割り込みの発生、２）特権状態セット命令（ＴＲＡＰＡ）の実行の２通りがある。図５や図１０において説明したアドレス変換バッファＴＬＢ及びキャッシュメモリＣＡＣＨＥをアクセスする際、マイクロコンピュータを特権モードにする仕方としては、特に制限されないが前記２）方法とする。もちろん、前記１）の仕方でマイクロコンピュータを特権モードに設定し、アドレス変換バッファＴＬＢ及びキャッシュメモリＣＡＣＨＥをアクセスしてもかまわない。特権状態（特権モードが設定されている状態であり、中央処理装置ＣＰＵはすべての命令を実行することが可能となり、かつすべてのレジスタをアクセスすることができる）は、ユーザ状態（ユーザモードが設定されている状態であり、中央処理装置ＣＰＵはシステムに重大な影響を与える命令の実行やシステムが管理するレジスタ及びメモリ領域のアクセスはできず、特定命令実行、特定レジスタ及び特定メモリ領域のアクセスのみ可能）ではアドレスエラーとされるアドレス空間をアクセスでき、ユーザ状態では実行不可能な特権命令若しくはシステム制御命令を実行することができる、などという点においてユーザ状態と相違される。特に制限されないが、モードビットＭＤが"１"のとき中央処理装置ＣＰＵは特権モードとされ、モードビットＭＤが"０"のとき中央処理装置ＣＰＵはユーザモードとされる。
【００６９】
また上記実施例同様に、本実施例のマイクロコンピュータがサポートする論理ページのサイズは４ＫＢと１ＫＢの双方とされ、サポートされる論理ページの最大サイズ（＝４ＫＢ）が最小サイズ（＝１ＫＢ）の２のべき乗数倍にされ、アドレス変換バッファＴＬＢのバンクの数（＝４）がその２のべき乗数以上であるという関係を満足している。このときの論理ページサイズとオフセット及び論理ページ番号（論理ページアドレス）との関係は図４に基づいて既に説明した通りであり、アドレス変換バッファＴＬＢに対するインデックスには、ページサイズが４ＫＢであるか１ＫＢであるかに拘わらず、４ＫＢページサイズの論理ページアドレスの下位５ビットのビット位置の情報、換言すれば、３２ビットの論理アドレスのビット１２〜ビット１６が用いられる。アドレス変換バッファＴＬＢに格納されるエントリについても図４に基づいて既に説明した内容と同じである。
【００７０】
ここで単一仮想記憶と多重仮想記憶の概念を図３２（Ａ）及び図３２（Ｂ）に基づいて説明する。多重仮想記憶とは、複数のプロセスの夫々が論理空間の全域にわたる各々のアドレス変換情報を有するときにはプロセス番号ａｓｉｄによって論理アドレスを修飾或いは拡張するというものである。単一仮想記憶とは、複数のプロセスに論理アドレス空間の一部が排他的に割り当てられ夫々のプロセスがそれに割り当てられた論理アドレス空間のアドレス変換情報を有するときにはプロセス番号ａｓｉｄによって論理アドレスを修飾或いは拡張しないというものである。このように、単一仮想記憶においては、複数のプロセス間で排他的に論理アドレス空間が割り当てられるため図３２（Ｂ）で示されるようにプロセスに割り当てられた論理アドレス空間毎にそれ固有のアドレス変換情報が存在する。そのため、アドレス変換テーブルは一つ存在するだけである。当該一つのアドレス変換テーブルを用いれば、ある論理アドレスＡはそれに対応される物理アドレスＤに一義的に変換される。これに対して多重仮想記憶においては複数のプロセス間で論理アドレス空間が相互に重複して割り当てられる。そのため、プロセス毎のアドレス変換情報は相互に別々のアドレス変換テーブルに含まれなければならない。したがって、ある論理アドレスＡは相互に異なるアドレス変換テーブルｉ，ｊを介することによって異なる物理アドレスＢ，Ｃに変換されることになる。このとき変換に係る論理アドレスＡがどのプロセスに属するかは、プロセス番号によって識別される。図３２（Ａ）に従えば、多重仮想記憶においてアドレス変換テーブルｉはプロセス番号ｉに対応され、アドレス変換テーブルｊはプロセス番号ｊに対応される。プロセス番号は、互いに同じ論理アドレス空間を使う（アクセスする）ところの複数のプロセスにおける識別番号とみなすこともできる。
【００７１】
図２０において上記ＴＬＢコントローラＴＬＢ−Ｃは制御回路（ＣＴＲＬ）５０、ページテーブルエントリ上位（ＰＴＥＨ）レジスタ５１、ページテーブルエントリ下位（ＰＴＥＬ）レジスタ５２、変換テーブルベース（ＴＴＢ）レジスタ５３、ＴＬＢ例外アドレス（ＴＥＡ）レジスタ５４、及びコントロール（ＭＭＵＣＲ）レジスタ５５を備える。後で図３４を用いて説明するように、これらのレジスタは中央処理装置ＣＰＵによって直接リード／ライト可能にされる。その他のレジスタ５１〜５３も中央処理装置ＣＰＵによって直接アクセス可能とされる。
【００７２】
図１９に示されるようにＰＴＥＨレジスタ５１，ＰＴＥＬレジスタ５２は、ＴＬＢミスなどにおいてアドレス変換バッファＴＬＢのエントリを更新又は追加するためのページテーブルエントリを保有できるフィールドが備えられている。また、ＰＴＥＨレジスタ５１には、ソフトウエアの実行によって、中央処理装置ＣＰＵから、現在のプロセスの空間番号ａｓｉｄがセットされる。また、ＰＴＥＨレジスタ５１は、ＴＬＢミスなどが発生した場合、中央処理装置ＣＰＵが出力しているＴＬＢミスの論理ページアドレスｖｐｎを保持する機能も兼ね備えている。中央処理装置ＣＰＵが出力する論理アドレスのオフセットは制御回路（ＣＴＲＬ）５０内部の図示しないラッチ回路に保持される。ＴＴＢレジスタ５３は現在のページテーブルのベースアドレスを指している。ＴＥＡレジスタ５４はＴＬＢに関する例外又はアドレスエラー例外を生じた論理アドレスを保持する。ＭＭＵＣＲレジスタ５５は、アドレス変換を有効にするか無効にするかを指示するビットＡＴ（論理値１＝有効，論理値０＝無効）、アドレス変換バッファＴＬＢのフラッシングを指示するビットＴＦ、２ビットのランダムカウンタフィールドＲＣ、インデックスモードを指定するインデックスモードビットＩＸ、単一仮想記憶と多重仮想記憶との何れを選択するかを指示するシングルバーチャルビットＳＶ（ＳＶ＝１で単一仮想記憶を選択，ＳＶ＝０で多重仮想記憶を選択）を含む。上記インデックスモードビットＩＸ＝１の場合には、図１７に示されるように、ａｓｉｄ（４−０）即ち現在の空間番号ａｓｉｄのビット０〜ビット４と、論理ページ番号ｖｐｎのビット１２〜ビット１６と、を利用したインデックス手法が選択され、ＩＸ＝０の場合には図１６に示されるように、中央処理装置ＣＰＵから出力されているところの論理ページ番号ｖｐｎのビット１２〜ビット１６を利用したインデックス手法が選択される。さらに詳しく述べるならば、ＩＸ＝１の場合におけるインデックスアドレスは、図２０に示されるようにＰＴＥＨレジスタ５１が保有する空間番号ａｓｉｄのビット０〜ビット４と中央処理装置ＣＰＵから出力されている論理ページ番号ｖｐｎのビット１２〜ビット１６すなわちｖｐｎ（１６−１２）を入力する排他的論理和ゲートＸＯＲの出力とされる。図２０のセレクタ１８は排他的論理和ゲートＸＯＲでハッシングされた出力又はｖｐｎ（１６−１２）の何れかをインデックス用アドレスとして選択する。その選択制御はインデックスモードビットＩＸの値にしたがって決定され、制御回路５０から出力される選択信号５５０にて行われる。
【００７３】
図２０において、中央処理装置ＣＰＵから出力される論理アドレスの論理ページ番号ｖｐｎ（３１−１０）の内、ビット１２〜ビット１６に相当されるｖｐｎ（１６−１２）はＴＬＢの４個のバンクＢＮＫ０〜ＢＮＫ３に共通なインデックスアドレス２の生成に利用される。上記のように、論理ページ番号は５ビットで表されるため、共通なインデックスアドレス２によって夫々のバンクにおいて３２個のエントリから一つが選択されて読出される。選択される夫々のエントリは、ＶＰＮ（３１−１７），ＶＰＮ（１１−１０），ＡＳＩＤ，ＳＨ，ＳＺ，Ｖ，ＰＰＮ（３１−１０），ＰＲ，Ｃ，Ｄを含む。読出されたＶＰＮ（３１−１７）はコンパレータ１５１によって、中央処理装置ＣＰＵから出力されている論理アドレスのｖｐｎ（３１−１７）と比較される。ＶＰＮ（１１−１０）は、コンパレータ１５２によって、中央処理装置ＣＰＵから出力されている論理アドレスのｖｐｎ（１１−１０）と比較される。読み出されたプロセス番号ＡＳＩＤは、ＰＴＥＨレジスタ５１が保有する現在のプロセス番号ａｓｉｄとコンパレータ１５３にて比較される。比較結果に対しては制御ロジック１５４が、共有ステータスＳＨ，サイズビットＳＺ、シングルバーチャルビットＳＶ，及びモードビットＭＤの値を考慮してバンクＢＮＫ０のミス／ヒットの判定を行う。ｈｉｔ１はバンクＢＮＫ０におけるミス／ヒットの判定結果としてのヒット信号である。上記コンパレータ１５１〜１５３及び制御ロジック１５４は各バンクＢＮＫ０〜ＢＮＫ３に設けられている。図２０ではバンクＢＮＫ１〜ＢＮＫ３に関しては夫々のヒット信号ｈｉｔ２〜ｈｉｔ４が代表的に示されている。本実施例に従えば各コンパレータ１５１〜１５３の出力はハイレベルが一致レベルとされる。ヒット信号ｈｉｔ１〜ｈｉｔ４はハイレベルがヒットレベルとされる。制御回路５０はヒット信号ｈｉｔ１〜ｈｉｔ４の何れかがヒットレベルにされることを以てＴＬＢヒットと判定する。図２０の５０１はＴＬＢヒット／ミスの判定結果を中央処理装置ＣＰＵに通知するＴＬＢヒット信号である。ＴＬＢミスが発生したときには、アドレス変換バッファＴＬＢのエントリを置換する処理が行われる。この変換処理において、置換されるべきエントリの内容はＰＴＥＨレジスタ５１，ＰＴＥＬレジスタ５２に保持され、ＰＴＥＨレジスタ５１，ＰＴＥＬレジスタ５２からアドレス変換バッファＴＬＢに変換されるべき情報が供給され、アドレス変換バッファＴＬＢに格納される。変換されるべきエントリを選択するためのインデックス手法はリード時におけるとインデックス手法と同じであるが、どのバンク（セット）に当該エントリを格納するかはＭＭＣＣＲレジスタ５５のＲＣの値（ＭＭＵＣＲ．ＲＣ）によって決定される。
【００７４】
図３３には前記制御ロジック１５４の一例論理構成が示される。１５４１は３入力アンドゲート、１５４２は２入力オアゲート、１５４３は２入力オアゲートである。オアゲート１５４２は、インデックスされたＴＬＢエントリ（インデックスアドレスによって選択され、読み出されたエントリ）に含まれるＶＰＮ（１１−１０）と論理アドレスに含まれるｖｐｎ（１１−１０）との比較結果であるコンパレータ１５２の出力と、上記インデックスされたＴＬＢエントリからのサイズビットＳＺとを入力する。サイズビットＳＺ＝１によって指示される４ＫＢの論理ページサイズにおいてはＴＬＢミス／ヒット判定のためのアドレス比較においてＴＬＢエントリ内のＶＰＮ（１１−１０）と中央処理装置ＣＰＵからのｖｐｎ（１１−１０）との比較は行う必要がない。そのため、サイズビットＳＺ＝１の状態では、アンドゲート１５４１の出力信号ｈｉｔ１には上記アドレスビット１１，１０の比較結果は反映されない。サイズビットＳＺ＝０によって指示される１ＫＢの論理ページサイズではＴＬＢミス／ヒット判定のためにアドレスビット１１，１０の比較動作が必要とされ、その結果が信号ｈｉｔ１に反映される。
【００７５】
前記オアゲート１５４３は、インデックスされたＴＬＢエントリに含まれるプロセス番号ＡＳＩＤと現在のプロセス番号（ＰＴＥＨレジスタ５１から出力されているプロセス番号）ａｓｉｄとの比較結果であるコンパレータ１５３の出力と、上記インデックスされたＴＬＢエントリからの共有ビットＳＨとを入力する。共有ビットＳＨ＝１（プロセス間での論理ページの共有）の状態ではＴＬＢミス／ヒット判定のためのアドレス比較においてプロセス番号間の比較を要しないから、共有ビットＳＨ＝１の状態では、アンドゲート１５４１の出力信号ｈｉｔ１にはプロセス番号の比較結果は反映されない。共有ビットＳＨ＝０（プロセス間での論理ページの非共有）の状態ではＴＬＢミス／ヒット判定のためのアドレス比較においてプロセス番号間の比較を要するから、共有ビットＳＨ＝０の状態では、アンドゲート１５４１の出力信号ｈｉｔ１にはプロセス番号の比較結果が反映される。
【００７６】
ここで、ＴＬＢエントリが保有するプロセス番号ＡＳＩＤは、単一仮想記憶においてメモリ保護情報（ドメイン番号）として利用される。すなわち、単一仮想記憶でも多重仮想記憶でも共有ビットＳＨによって共有又は非共有が指示される。非共有が指示されているとき、多重仮想記憶においては現在のプロセス番号ａｓｉｄとＴＬＢエントリに含まれるプロセス番号ＡＳＩＤの不一致はＴＬＢミスとされる。これに対して、非共有が示されているとき、単一仮想記憶においてプロセス番号ａｓｉｄ，ＡＳＩＤ間の不一致はＴＬＢプロテクト違反例外の検出に利用される。それを実現するために、制御回路５０にはアクセス権チェックのための一つの論理として図３３に示されるアンドゲート５０２を有する。このアンドゲート５０２は、前記オアゲート１５４３の反転出力、ＭＭＵＣＲレジスタからのシングルバーチャルビットＳＶ、及び中央処理装置ＣＰＵ内のステータスレジスタ内のモードビットＭＤの反転信号を受けて、ＴＬＢプロテクト違反例外の検出信号５０３を形成する。この検出信号５０３は、ハイレベルがＴＬＢプロテクト違反例外の検出レベルである。信号５０３によってＴＬＢプロテクト違反例外が検出されるのは、プロセス番号が不一致且つ非共有（オアゲート１５４３の出力がローレベル）、単一仮想記憶（ＳＶ＝１）、ユーザモード（ＭＤ＝０）の条件が満足されたときである。即ち、単一仮想記憶においてプロセス番号が不一致且つ非共有の場合には実質的にＴＬＢミスになるがこの状態をメモリ保護のためのＴＬＢプロテクト違反例外とする。モードビットＭＤ＝１によって指示される特権状態では別のプロセスに割り当てられている論理ページもアクセスできるようにすることが望ましいため、ＭＤ＝１の特権状態においてはＴＬＢプロテクト違反例外を検出しないようにしている。
【００７７】
図２２には制御回路５０によるアドレス変換の制御メインフローが示される。その制御はアドレス変換バッファＴＬＢのインデックス処理Ｌ１、アドレス比較とＶビットのチェック処理Ｌ２、アクセス権のチェック処理Ｌ３、物理アドレスの生成処理Ｌ４に大別される。これらの処理は中央処理装置ＣＰＵ及びコントローラ５によって制御される。
【００７８】
アドレス変換バッファＴＬＢのインデックス処理Ｌ１において、それに利用される論理アドレスは論理ページサイズに拘わらずｖｐｎ（１６−１２）とされる。このインデックス処理において利用される論理アドレスを、排他的論理和ゲートＸＯＲを用いて空間番号ａｓｉｄの一部ａｓｉｄ（４−０）でハッシングしたものをインデックス用アドレスとするか否かがＭＭＵＣＲレジスタ５５のＩＸの値（ＭＭＵＣＲ．ＩＸ）によって決定される。図２３に示されるように、ＭＭＵＣＲ．ＩＸ＝１の場合には、上記利用される論理アドレスがａｓｉｄ（４−０）にてハッシングされ、インデックス用アドレスとされる。ＭＭＵＣＲ．ＩＸ＝０の場合にはｖｐｎ（１６−１２）がそのままインデックス用アドレスとされる。前者のインデックス手法は図１７に示され、後者のインデックス手法は図１６に示される。アドレス変換バッファＴＬＢがインデックスされると、夫々のバンクＢＮＫ０〜ＢＮＫ３において３２個のエントリから一つが選択されて読出される。選択される夫々のエントリは、ＶＰＮ（３１−１２），ＶＰＮ（１１−１０），ＡＳＩＤ，ＳＨ，ＳＺ，Ｖ，ＰＰＮ（３１−１０），ＰＲ，Ｃ，Ｄを含む。
【００７９】
アドレス比較とＶビットのチェック処理Ｌ２において、アドレス比較の手順は図２４のようにされる。この手順は図３３の制御ロジック１５４の論理に基づくが、空間番号ＡＳＩＤの比較に関してはＴＬＢプロテクト違反例外の検出も考慮されている。ヒット信号ｈｉｔ１〜ｈｉｔ４に反映されるべきアドレス比較の対象をどのようにするかは、次のように決められる。ＳＨ＝１か否かによってアドレス比較の対象として、空間番号を考慮するかが大別され、ＳＺ＝０か否かによってアドレス比較の対象として、ＶＰＮ（１１−１０）考慮するか否かが決定される。特に、単一仮想記憶（ＳＶ＝１）においては、空間番号ＡＳＩＤのフィールド内データをメモリ保護情報として用いるが、前述のように特権モードにおいては別のプロセスに割り当てられた論理ページも現在のプロセスからアクセスすることができるようにするため、言い換えるならば、ＴＬＢプロテクト違反例外を検出しないようにするために、単一仮想記憶であって、且つ特権モード（ＳＶ＝１且つＭＤ＝１）のときには比較対象から空間番号ＡＳＩＤのフィールドを除外するようにしている。
【００８０】
インデックスによって、アドレス変換バッファＴＬＢからＴＬＢエントリがリードされ、そのリードされたＴＬＢエントリ内の共有ステータスＳＨに基づいて、アドレス比較の際に空間番号ＡＳＩＤを考慮するか否かが判定される。ＳＨ＝１（共有）の場合、空間番号ＡＳＩＤはアドレス比較の対象として考慮されず、ＳＨ＝０（非共有）の場合、空間番号ＡＳＩＤはアドレス比較の対象として考慮される。ＭＭＵＣＲレジスタ５５のＳＶの値（ＭＭＵＣＲ．ＳＶ）＝１にて単一仮想記憶が設定されている場合に、ステータスレジスタＳＲのモードビットＳＲ．ＭＤ＝１にて特権モードが指定されているときは空間番号ＡＳＩＤはＴＬＢプロテクト違反例外の検出には考慮されない。特権モードの性質上別のプロセスに割り当てられている論理ページをアクセスできるようにするためである。
【００８１】
本実施例においては、ＴＬＢエントリ内のサイズビットＳＺの値に従って、１ＫＢまたは４ＫＢの論理ページサイズのサイズとして選択される。論理ページのサイズが１ＫＢの場合には、各バンクでインデックスされたそれぞれのＴＬＢエントリ内の情報ＶＰＮ（３１−１７）及びＶＰＮ（１１−１０）が論理アドレスの対応ビットｖｐｎ（３１−１７），ｖｐｎ（１１−１０）との比較対象とされる。論理ページサイズが４ＫＢの場合には、各バンクでインデックスされたそれぞれのＴＬＢエントリ内の情報ＶＰＮの内、ＶＰＮ（１１−１０）とこれに対応する論理アドレスの対応ビットｖｐｎ（１１−１０）とは比較判定対象から除外される。
【００８２】
上述のようにして、比較対象（ＶＰＮ（３１−１７,１１−１０）,ｖｐｎ（３１−１７,１１−１０），ＡＳＩＤ，ａｓｉｄ）が定められ、比較が行われる。この比較結果として、何れかのバンクにおいて一致すると、その一致したバンクからヒット信号が出力される。各バンクのヒット信号ｈｉｔ１〜ｈｉｔ４として出力され、ＴＬＢヒットとされる。これに対して、いずれのバンクからもヒット信号が出力されない場合、すなわち不一致の場合にはＴＬＢミス例外が検出されることになる。その結果は信号５０１にて中央処理装置ＣＰＵにも通知され、中央処理装置ＣＰＵによって、後で述べるＴＬＢミス例外の処理が行われる。
【００８３】
また、インデックスされた各バンクのエントリに対しては、そのエントリ内のＶビットについてのチェックも行われる。すなわち、インデックスによって、リードされたエントリ内のＶビットに対してチェックが行われる。ＴＬＢヒットの場合に、ヒットに係るエントリがＶ＝０（無効）のときは、ＴＬＢインバリッド例外が検出され、これが中央処理装置ＣＰＵに通知される。この例外処理の内容は後述する。ＴＬＢミスの場合におけるＶビットの判定結果はＴＬＢミスに係る後述のエントリリプレースにて利用される。
【００８４】
アクセス権のチェック処理Ｌ３においては、インデックスによりリードされたＴＬＢエントリ内の情報ＰＲの内容と、ＭＭＵＣＲレジスタ内のビットＭＭＵＣＲ．ＳＶの内容とに従ってアクセス権がチェックされる。例えば図２５に示されるように、先ずＭＭＵＣＲレジスタ内のビットＭＭＵＣＲ．ＳＶが１（単一仮想記憶）か０（多重仮想記憶）かの判定が行われる。多重仮想記憶（ＳＶ＝０）の場合には図２１のＰＲの内容にしたがってＴＬＢエントリ内の情報で表されるアドレス空間のプロテクションが行われる。単一仮想記憶で、かつ特権モードにされている場合、すなわちＭＭＵＣＲ．ＳＶ＝１（単一仮想記憶）で、ステータスレジスタ内のビットＳＲ．ＭＤ＝１（特権モード）場合には、ＴＬＢエントリ内の情報で表されるアドレス空間を、無条件にアクセスすることができる。これに対して、単一仮想記憶であっても、ユーザモードの場合（ＳＲ．ＭＤ＝０：ユーザモード）には、アクセス権のチェックに際して空間番号ＡＳＩＤと共有ステータスＳＨが考慮される。すなわち、アクセス時のＰＴＥＨレジスタ５１の空間番号ａｓｉｄとアドレス変換バッファＴＬＢからリードされた空間番号ＡＳＩＤとが一致する場合又はＳＨ＝１（共有）の場合には上記ＰＲにしたがってＴＬＢエントリ内の情報で表されるアドレス空間のプロテクションが行われる。これに対して、プロセス番号不一致で、且つ非共有の場合にはＴＬＢプロテクト違反例外が検出される。当該例外の内容については後述する。更にアクセス権のチェック処理Ｌ３においてはアクセスがリードのたのものかライトのためのものかのアクセスタイプ判定とアドレス変換バッファＴＬＢからリードしたエントリのＤビットが判定が行われる。アクセスが初めてのライト（例えば、電源投入やリセットの後の初めてのライトアクセス）の場合にはＴＬＢイニシャルページライト例外が検出される。即ち、ＴＬＢイニシャルページライト例外は、論理アドレスとインデックスされたＴＬＢエントリとの比較結果がＴＬＢヒットであってＴＬＢエントリ内のダーティビットＤ＝０とされ、そのときのアクセスがライトアクセスである条件によって検出される。このＴＬＢイニシャルページライト例外処理の内容については後述する。
【００８５】
物理アドレスの生成処理Ｌ４においては、インデックスされたＴＬＢエントリのサイズビットＳＺにしたがって図２６のように物理アドレスが生成される。物理アドレスｐａを形成するために使われる論理アドレスｖａのオフセットｖａ（９−０）は、図示されていないが、制御回路５０内のラッチ回路に保持されている。ＳＺ＝０（論理ページサイズが１ＫＢ）のときは、中央処理装置ＣＰＵから出力されている論理アドレスｖａのオフセットｖａ（９−０）が物理アドレスｐａのオフセットｐａ（９−０）とされる。ヒットしたＴＬＢエントリのデータ部に含まれる物理ページ番号ＰＰＮの全ビットＰＰＮ（３１−１０）が物理ページアドレスｐａ（３１−１０）とされ、これにオフセットとしてアドレス（９−０）が下位側に付加されて、物理アドレスｐａが生成される。ＳＺ＝１（論理ページサイズが４ＫＢ）のときは、中央処理装置ＣＰＵから出力されている論理アドレスｖａのオフセットｖａ（１１−０）が物理アドレスｐａのオフセットｐａ（１１−０）とされる。ヒットしたＴＬＢエントリ内のデータ部に含まれる物理ページ番号ＰＰＮの内、下位２ビットが無視されたＰＰＮ（３１−１２）が物理ページアドレスｐａ（３１−１２）とされ、オフセットとしてのアドレス（１１−０）が下位側に付加されて、物理アドレスｐａが生成される。
【００８６】
図２７にはアドレス比較とＶビットのチェック処理Ｌ２において検出されたＴＬＢミス例外におけるリプレース対象バンクのハードウェア指定手法が示される。この制御は制御回路５０がその論理構成に従って一義的に行うものであり、ＭＭＵＣＲ．ＲＣをランダムカウンタのような計数手段として利用する。ＭＭＵＣＲ．ＲＣのビット数の２のべき乗数は上記アドレス変換バッファＴＬＢのバンクの数（＝４）に一致される。制御回路５０は、上記ヒット信号ｈｉｔ１〜ｈｉｔ４の何れもがヒット状態を示さないことに応答して、ＴＬＢミスによるアドレス変換バッファＴＬＢに対するエントリの置換が必要と判断する。このように判断すると、制御回路５０はＭＭＵＣＲ．ＲＣを１インクリメント（＋１）し、インデックスされた４個のエントリに無効なエントリが有るか否かをそのＶビットに基づいて判定する。Ｖビットは無効なエントリがない（インデックスされた各バンクのエントリはＶ＝１にて有効なデータを保持している）ことを示している場合にはそのインクリメントされた結果を置換すべきバンク番号とし、ＭＭＵＣＲ．ＲＣに対してはノー・オペレーションとする。無効なエントリが存在する（各バンクでインデックスされた何れかのエントリがＶ＝０にて有効なデータを保持していない）場合には、無効なエントリを有するバンクのバンク番号をＭＭＵＣＲ．ＲＣにセットし且つセットされた番号のバンクを置換すべきバンクとする。また、上記ＭＭＵＣＲ．ＲＣの各ビットは中央処理装置ＣＰＵによるソフトウェアの実行によって任意にその値を変更することが可能である。そのため、上述のようにして、このレジスタに設定されたバンク番号を、さらに、ソフトウエアによって変更することもできる。そのため、任意のバンクをリプレースの対象にすることができる。
【００８７】
図２８には上記ＴＬＢミス例外に対処するために、ＴＬＢエントリを更新するためのＴＬＢミスハンドラによる処理手順が示される。アドレス変換バッファＴＬＢのエントリ更新にはロードＴＬＢインストラクションが利用される。このロードＴＬＢインストラクション（ＬＤＴＬＢとも表す）が、中央処理装置ＣＰＵによって実行されることにより、次の処理が行われる。すなわち、ＰＴＥＨ,ＰＴＥＬの各レジスタ５１,５２の値を、アドレス変換バッファＴＬＢのエントリへ書き込む処理が行われる。この場合、書き込み対象のエントリは、特に制限されないが、ＭＭＵＣＲ．ＲＣにセットされているバンク番号により指示されるバンク内のエントリであって、ＰＴＥＨレジスタ５１内に保持されている論理アドレス（ビット１２−ビット１６）をインデックスアドレスとして指示されるエントリである。上記ＴＬＢミス例外が検出されると、中央処理装置ＣＰＵから出力されているところの、そのときの論理アドレスの一部（ビット１０からビット３１）は、上記ＰＴＥＨレジスタ５１に保持される。これにより、ＴＬＢミス例外が発生したときのインデックスアドレスと同じ値のインデックスアドレスによって、リプレースの際のエントリが指示される。ただし、リプレースに使われるバンクは、ＭＭＵＣＲ．ＲＣにセットされているバンク番号によって決定されることになる。
【００８８】
ＴＬＢミス例外に対処するために、図３４に示されている様な外部メモリＲＡＭに、予め、ページテーブルが、ユーザによって形成される。このページテーブルには、特に制限されないが、複数の論理アドレスに各々対応した複数の変換情報（ページテーブルエントリ）が、所定の規則に従って、格納される。このページテーブルのアドレス、例えば、その開始アドレスは、ベースアドレスとして、レジスタＴＴＢ５３に、予め格納される。このページテーブルは、特に制限されないが、開始アドレスとしての上記ベースアドレスと論理アドレスとにもとづいて、当該論理アドレスに対応したページテーブルエントリ（対応する物理ページ番号ｐｐｎ,バリッドビットｖ,プロテクションビットｐｒ,サイズビットｓｚ,キャッシャブルビットｃ,ダーティビットｄ,ステータスｓｈを含む）を検索することができるような規則で、複数の論理アドレスに各々対応した複数のページテーブルエントリが、配置されている。
【００８９】
上記ＴＬＢミスハンドラは、ユーザによって記述される。ＴＬＢミス例外が検出されると、中央処理装置ＣＰＵによって、このＴＬＢミスハンドラが起動される。これにより、ＰＴＥＨレジスタ５１にはＴＬＢミス発生時の論理アドレスの情報ｖｐｎ（１０−３１）が格納される。このときに、ＰＴＥＨレジスタ５１には、ＴＬＢミス発生時の空間番号ａｓｉｄも格納されるようにしても良い。また、中央処理装置ＣＰＵは、レジスタＴＴＢ５３に格納されているベースアドレスと、ＴＬＢミス発生時の論理アドレスとを用いて、外部メモリ上の上記ベーステーブルを検索する。この検索によって、ＴＬＢミス発生時の論理アドレスに対応するページテーブルエントリが発見されると、この発見されたページテーブルエントリの内容は、ＰＴＥＬレジスタ５２にロードされる。次いでロードＴＬＢインストラクションが発行されてＰＴＥＨ，ＰＴＥＬの各レジスタ５１，５２の値によってアドレス変換バッファＴＬＢの該当エントリが更新される。尚、ＰＴＥＨレジスタ５１に保持されているところの、ＴＬＢミス発生時の論理アドレスの情報ｖｐｎ，ａｓｉｄはＴＬＢエントリの一部ＶＰＮ，ＡＳＩＤとして採用されることになる。また、このとき、リプレースされるエントリは、上記したように、ＭＭＵＣＲ．ＲＣにセットされているバンク番号によって指示されているバンク内のエントリであって、ＴＬＢミス発生時のインデックスアドレスと同じインデックスアドレスによって指示されるエントリである。
【００９０】
上記ＴＬＢインバリッド例外は、ＴＬＢヒットにおけるページフォルトの場合に発生する。この例外に対しては、例えば、まず、外部メモリ上に必要なページテーブルエントリを回復して、そのページテーブルエントリ内のＶビットを論理値１にする。その後、当該ページテーブルエントリを外部メモリからＰＴＥＬレジスタ５２にロードし、上述のロードＴＬＢインストラクションを発行してＰＴＥＨ，ＰＴＥＬの各レジスタ５１，５２の値によってアドレス変換バッファＴＬＢの該当エントリを更新する。
【００９１】
上記ＴＬＢイニシャルページライト例外については、それが検出されると、外部メモリ上の対応するページテーブルエントリのＤビットを論理値１にし、当該ページテーブルエントリを外部メモリからＰＴＥＬレジスタ５２にロードした後、上述のロードＴＬＢインストラクションを発行してＰＴＥＨ，ＰＴＥＬの各レジスタ５１，５２の値によってアドレス変換バッファＴＬＢの該当エントリを更新する。尚、例外要因とされた論理アドレスの情報ｖｐｎ，ａｓｉｄはＰＴＥＨレジスタ５１に保持されている。Ｄ＝１にされるべき状況は、メインメモリ上の物理ページ領域に最初に書込みが行われるときに発生される。仮想記憶においてページ入れ換えの際に補助記憶装置とメインメモリ（例えば図３４の外部メモリ）相互間でのデータの整合を図るためメインメモリの入れ換え対象ページの内容を補助記憶装置にコピーバックするか否かの判定が必要とされる。ダーティービットＤは、この判定のために利用される。
【００９２】
上記ＴＬＢプロテクト違反例外が検出されると、例外要因とされる論理アドレスの論理ページ番号ｖｐｎがＰＴＥＨレジスタ５１に、そしてその論理アドレスがＴＥＡレジスタ５４に書き込まれた後に、そのプロテクト違反を解決するためのハンドラが起動される。
【００９３】
上記のように、ＭＭＵＣＲ．ＲＣをカウンタとして使う場合、上記のＴＬＢミス例外の対策の際には、新たなバンクへエントリを登録することができるようにするために、上記のようにインクリメントすることが望ましい。これに対して、上記ＴＬＢインバリッド例外、上記ＴＬＢイニシャルページライト例外及び上記ＴＬＢプロテクト違反例外の対策においては、ＭＭＵＣＲ．ＲＣをインクリメントしないことが望ましい。これらの対策においては、Ｄビット、あるいはＶビットの変更だけが必要な場合があり、新たなバンクに登録せずに、元のバンクに登録するようにした方がＴＬＢを有効に使えるためである。もちろん、本発明は、このようにすることに制限されるものではない。
【００９４】
図２９及び図３０にはＭＭＵＣＲレジスタのＭＭＵＣＲ．ＳＶ＝０（多重仮想記憶）におけるアドレス変換バッファＴＬＢに関する例外検出フローの全体が示される。図２９に従えば、論理アドレスのｖｐｎや現在の空間番号ａｓｉｄに従って所定の手法でアドレス変換バッファＴＬＢのインデックスが行われる（Ｓ１）。これによってインデックスされたエントリがＳＨ＝０（非共有）を含むときにはＡＳＩＤまたはＶＰＮが不一致であれば（Ｓ２，Ｓ３）、ＴＬＢミス例外（ＥＸ１）が検出される。インデックスされたエントリがＳＨ＝１（共有）を含むときにはＡＳＩＤは比較されずＶＰＮが不一致であれば（Ｓ４）ＴＬＢミス例外（ＥＸ１）が検出される。ＴＬＢヒットの場合（Ｓ３，Ｓ４のＹＥＳ）にはＶ＝１かが判定される（Ｓ５）。Ｖ＝０（インバリッド）であればＴＬＢインバリッド例外（ＥＸ２）が検出される。Ｖ＝１（バリッド）の場合には図３０に示されるように、ステータスレジスタＳＲ．ＭＤからユーザモード（User）か特権モード（Privileged）かが判定される（Ｓ６）。中央処理装置ＣＰＵがユーザモードで動作しており、このモードで動作している中央処理装置ＣＰＵによるアクセスによってリードされたところのエントリが、特権モードでのアクセスを許容すること（ユーザモードでのアクセス禁止）を示す情報ＰＲを有している場合（ＰＲ＝００又は０１）、ＴＬＢプロテクト違反例外（ＥＸ３）が検出される。また、ユーザモードでのアクセスにより、リードされたエントリ内の情報ＰＲが１０と判定されたとき、このアクセスがリードのアクセスタイプかライトのアクセスタイプかがさらに判定される。図２１に示されているように、情報ＰＲが、１０の場合、ユーザアクセスは、リードのアクセスタイプのみが許容される。そのため、上記アクセスが、ライトのアクセスタイプである場合には、アクセスタイプが相違される（Ｓ７のｗｒｉｔｅ）ため、ＴＬＢプロテクト違反例外（ＥＸ３）が検出される。
【００９５】
特権モードでのアクセスにおいてもＰＲ＝００又は１０が判定されたときのリード／ライトのアクセスタイプがＰＲの内容に対して反している（Ｓ８のｗｒｉｔｅ）とＴＬＢプロテクト違反例外（ＥＸ４）が検出される。すなわち、中央処理装置ＣＰＵが、ユーザモードで動作しているか特権モードで動作しているかによりＰＲにより許容されるアクセス権は異なるが、何れの場合も、ＰＲにより許容される以外のアクセスタイプでアクセスをした場合には、ＴＬＢプロテクト違反例外（ＥＸ３，４）が検出される。アクセスタイプがＰＲによって許容されたライト（Ｓ９，Ｓ１０のｗｒｉｔｅ）である場合、エントリ内の情報Ｄが０（未書込みのページ）ならば、ＴＬＢイニシャルライト例外（ＥＸ５）が検出される。また、エントリ内の情報Ｄが１の場合、エントリ内の情報Ｃが１ならば、キャッシュユニットＣＡＣＨＥがアクセスされることになる。Ｃ＝０ならばメインメモリ（例えば、図３４の外部メモリＲＡＭ，ＲＯＭ）がアクセスされることになる。アクセスタイプが、ＰＲによって許容されたリード（Ｓ７〜Ｓ１０のｒｅａｄ）である場合に、Ｃ＝１ならばキャッシュユニットＣＡＣＨＥがアクセスされ、Ｃ＝０のときはメインメモリがアクセスされることになる。
【００９６】
図３４には、図２０に示した各レジスタと中央処理装置ＣＰＵとの接続関係が主に示されている。上記各レジスタには、それぞれ固有のアドレスが割り当てられている。中央処理装置ＣＰＵにより形成された論理アドレスは、内部論理アドレスバスＶＡＢＵＳを介して、ＴＬＢ制御回路ＴＬＢ−Ｃ内の選択回路に供給される。この選択回路は、上記論理アドレスをデコードし、論理アドレスが、レジスタに割り当てられた固有のアドレスであった場合、レジスタを選択するための選択信号を形成する。例えば、論理アドレスが、ＰＴＥＬレジスタ５２に割り当てられたアドレスであった場合、選択回路は、選択信号C４を形成して、該レジスタを選択する。同様にして、他のレジスタ（ＰＴＥＨ，ＭＭＵＣＲ，ＴＥＡ，ＴＴＢ）の選択も行われる。言い替えるならば、これらのレジスタは、アドレスマップされている。選択されたレジスタに対する、中央処理装置ＣＰＵからのリード／ライトは、図示されていない内部制御バスを介して、中央処理装置ＣＰＵから各レジスタへ供給されるリード／ライト制御信号によって、指示される。勿論、この図面に示されているように、各レジスタと中央処理装置ＣＰＵとは、内部データバスＤＢＵＳを介して互いに接続されている。各レジスタは、図２０に示した制御回路５０及びＴＬＢとも接続されているが、図面が複雑になるのを避けるため、図３４には示されていない。中央処理装置ＣＰＵは、ソフトウエアを実行することにより、レジスタにデータを書き込むことができる。すなわち、ソフトウエアの実行により、中央処理装置は、レジスタに割り当てられた論理アドレスをバスＶＡＢＵＳへ出力し、データをバスＤＢＵＳへ出力し、リード／ライト制御信号でライトを指示することにより、レジスタへデータを書き込むことができる。同様に、ソウトウエアの実行によって、中央処理装置ＣＰＵは、レジスタからデータを読み出すことも可能である。このようにソウフトウエアの実行により、ＰＴＥＨレジスタ５１に対しては、論理空間番号、ＴＬＢミスの際の論理アドレスを書き込むことが可能であり、ＰＴＥＬレジスタ５２に対しては、リプレースの際のテーブルエントリを書き込むことが可能であり、ＴＴＢレジスタ５３に対しては、ベースアドレスを、ＴＥＡレジスタ５４に対しては、プロテクト違反例外の際に論理アドレスを書き込むことが可能である。また、ＭＭＵＣＲレジスタ５５に対しては、図１９に示されている種々の制御データを書き込むことが可能であり、特定のビットをカウンタの様に使うこともできる。
【００９７】
図３４において、内部論理アドレスバスＶＡＢＵＳは、制御回路５０、ＴＬＢにも接続されている。制御回路５０には、上記したように論理アドレスのオフセットを保持するためのラッチ回路が設けられており、内部論理アドレスバスＶＡＢＵＳからの論理アドレスのオフセットが保持される。また、この内部論理アドレスバスＶＡＢＵＳを介して、中央処理装置ＣＰＵから論理アドレスが、ＴＬＢに供給され、インデックスアドレス、検索用のアドレスとして使われる。勿論、制御回路５０に設けられる上記ラッチ回路は、オフセットアドレスだけでなく、論理アドレスの全てを保持する様にしても良い。
【００９８】
この図面には、上記ＰＴＥＨレジスタ５１と上記ＴＬＢとの接続だけが、明示的に示されている。ＴＬＢのミス／ヒットの判定のための空間番号は、このレジスタにセットされ、このレジスタから上記ＴＬＢへ供給される。また、ＴＬＢのミス例外についての対策においても、このレジスタから、上記したように論理アドレス等が上記ＴＬＢへ供給される。
【００９９】
内部データバスＤＢＵＳ及び内部物理アドレスバスＰＡＢＵＳは、このデータ処理装置に設けられた外部端子ＴＤ及びＴＡを介して、外部データバスＤＢＵＳ及び外部アドレスバスＡＢＵＳに接続される。これらの外部バスには、例えば、同図に示されている様に、外部メモリＲＡＭ，ＲＯＭが接続される。特に制限されないが、外部メモリＲＡＭは、揮発性メモリであり、上記したような種々のテーブル等が形成される。また、外部メモリＲＯＭは、不揮発性のメモリであり、種々のプログラム（例えば、上記したハンドラ等のソフトウエア）を格納している。
【０１００】
以上説明した実施例の作用効果を以下その項目別に列挙する。
【０１０１】
《メモリマップドＴＬＢ及びキャッシュメモリ》  キャッシュメモリＣＡＣＨＥ−Ｍのアドレスアレイ部ＣＡ−ａｒｙをＨ'Ｆ０＊＊＊＊＊＊（＊は任意）に、データアレイ部ＣＤ−ａｒｙをＨ'Ｆ１＊＊＊＊＊＊に、アドレス変換バッファＴＬＢのアドレスアレイ部ＴＡ−ａｒｙをＨ'Ｆ２＊＊＊＊＊＊に、データアレイ部ＴＤ−ａｒｙをＨ'Ｆ３＊＊＊＊＊＊にマッピングし、＊部分においてラインの指定及びバンクの指定などができるようにアドレスフォーマットが決定されることにより、キャッシュメモリＣＡＣＨＥ−Ｍ及びアドレス変換バッファＴＬＢに対してアドレスアレイ部及びデータアレイ部の何れに対しても任意のバンクの任意ラインをアドレス指定可能にされる。これにより、殆どの命令セットに必ず含まれるＭＯＶ命令のような一般的なデータ転送命令を以てキャッシュメモリＣＡＣＨＥ−Ｍ及びアドレス変換バッファＴＬＢに対してアクセスすることができる。したがって、エントリの無効化やＵビットのリード／ライトなどのためにアドレス変換バッファＴＬＢやキャッシュメモリＣＡＣＨＥ−Ｍをアクセスするための専用命令を要さず、命令コードの種類を少なくでき、命令語長の短縮に寄与できる。換言すれば、アドレス変換バッファＴＬＢをアクセスするための専用命令を採用する必要がないから、中央処理装置ＣＰＵの内部で命令をデコードするための命令デコーダＩＤの論理規模の増大を抑えることができる。更に、命令語長を短くしなければならないようなマイクロコンピュータのアークテクチャ上の要請にも容易に対処できる。例えば本実施例のマクロコンピュータＭＰＵが１６ビット固定長命令を採用するならば、比較的短い命令コード故に当該命令コードは貴重なリソースとして位置付けられる。このため、アドレス変換バッファＴＬＢをアドレス空間にマッピングしアドレスを指定してアクセス可能にするということは、命令デコーダＩＤのハードウェア変更量を少なくでき、命令コードの新規追加を不要にできる。
【０１０２】
更に、そのようなアドレスフォーマットは連想書込みの有無を任意に指定できる連想ビットＡを含み、アドレスで選択されたラインのアドレスタグＴＡＧや論理ページ番号のような被検索アドレス情報と書込みデータ中の検索アドレス情報とのアドレス比較が一致の場合にのみ書込みを実行するかを選択できるので、本来アドレス比較を要するエントリの無効化の処理とデバイステスト時のような本来アドレス比較を要しないような書き換えとの双方の要求に容易に対処することができる。
【０１０３】
《アドレスタグのライトバックへの考慮》  ページサイズがキャッシュメモリの１個のバンクにおけるデータ記憶容量よりも小さな容量とされる場合に、そのページサイズに対応した物理ページ番号を全ビット保有できるサイズのアドレスタグＴＡＧのフィールドを採用し、アドレス比較に必要なビット数を超えてそこに物理アドレス情報を保有させることにより、インデックスされたキャッシュエントリに対するアドレス比較とライトバックの双方の要求を満足することができる。これはページサイズを可変に設定できるマイクロコンピュータの場合だけでなく、データ記憶容量の大きなキャッシュメモリを内蔵しなければならない場合にも同様に機能する。
【０１０４】
《複数ページサイズのサポート》  図４及び図１９に示されるようにページテーブルエントリ及びＴＬＢエントリは上記サイズビットＳＺを有し、論理ページサイズがページ毎に可変に設定可能とされ、４ウェイ・セットアソシアティブ形式のアドレス変換バッファＴＬＢは可変に設定可能にされる複数の論理ページサイズに対して共通利用される。本実施例ではマイクロコンピュータがサポートする論理ページサイズは１ＫＢと４ＫＢの２種類とされる。そしてアドレス変換バッファＴＬＢに対するインデックス用アドレスの指定方法は４ＫＢと１ＫＢの双方において共通化され、図１６及び図１７に示されるように全部で３２ビットの論理アドレスにおけるビット１２〜ビット１６即ちｖｐｎ（１６−１２）がアドレス変換バッファＴＬＢのインデックスに利用される。論理ページの最大サイズ４ＫＢは最小サイズ１ＫＢの２の２乗倍とされ、このときにバンク数は２の２乗個（４個）存在されるから、アドレス変換バッファＴＬＢ全体としては４ＫＢページサイズとほぼ同様に、どの論理ページ番号のエントリについても全体で１２８個保有可能にされる。
【０１０５】
ヒット判定のためのアドレス比較のビット数は図２４に基づいて説明したように論理ページサイズに応じて変化されなければならない。論理ページサイズが１ＫＢの場合には４ＫＢの場合に比べてｖｐｎ（１１−１０）をＶＰＮ（１１−１０）と比較しなければならない。アドレス変換バッファＴＬＢはそのような比較対象のビット数を全てカバーできるようにＶＰＮ（３１−１７）とＶＰＮ（１１−１０）の記憶領域を備え、且つ、物理ページ番号ＰＰＮに対しても２２ビットの記憶領域を備えている。アドレス変換バッファＴＬＢは各エントリのデータ部にそれがサポートする論理ページサイズを示すサイズビットＳＺを有し、その値に応じてヒット判定のためのアドレス比較のビット数を変化させる。図２４で説明したように、サイズビットＳＺ＝１（論理ページサイズ＝４ＫＢ）の場合にはＶＰＮ（３１−１７）が論理アドレスの対応ビットとの比較対象とされ、サイズビットＳＺ＝０（論理ページサイズ＝１ＫＢ）の場合にはＶＰＮ（３１−１７），ＶＰＮ（１１−１０）が論理アドレスの対応ビットとの比較対象とされる。
【０１０６】
このように複数ページサイズを選択的にサポートするマイクロコンピュータは、システムに実装される実メモリの全記憶容量が少ない場合に論理ページのサイズを比較的小さくして各プロセスによるメモリ利用効率を向上させたいという要求にも容易に対応できる。このとき、最大論理ページサイズが最小サイズの２のべき乗数倍にされ、そのセットアソシアティブ方式のアドレス変換バッファＴＬＢのバンクの数をその２のべき乗数以上にすることにより、インデックスアドレスの指定手法を最大論理ページサイズのものに統一化しても、選ばれている論理ページサイズが最大であっても最小であっても、原理的にはどの論理ページ番号のエントリについてもアドレス変換バッファＴＬＢに保有可能にすることができる。複数ページサイズをサポートするアドレス変換バッファＴＬＢをセットアソシアティブ形式のキャッシュメモリで実現することは、これをＣＡＭで構成する場合に比べてチップ専有面積と消費電力を共に半減させることができる。
【０１０７】
《複数のインデックス方法をサポート》  複数のプロセスが存在し、夫々のプロセスが夫々のアドレス変換情報を有し、プロセス番号ａｓｉｄによって区別される多重仮想記憶をサポートする場合に、アドレス変換バッファＴＬＢのインデックスアドレスを指定する手法として、図１６に示されるように論理アドレスの一部のみをデコードする手法と、図１７に示されるように排他的論理和ゲートＸＯＲによってその論理アドレスの一部を現在のプロセス番号ａｓｉｄの一部によって修飾した結果をデコードする手法とを、レジスタＭＭＵＣＲ．ＩＸの論理値にしたがって指示することができる。これによれば、多重仮想記憶において多くのプロセスが並列的に起動される利用形態においてヒット率の低下を抑えることができるように、その利用形態に応じてインデックス方法を選択可能にすることができる。また、論理アドレスの一部を当該論理アドレスを利用するプロセスの番号ａｓｉｄによって修飾し、これを以てバッファメモリをインデックスすることにより、多重仮想記憶において多くのプロセスが並列的に起動される利用形態においてヒット率の低下を抑えることができる。
【０１０８】
《リプレースの自由度》  上述の如くアドレス変換バッファＴＬＢは、夫々のインデックスアドレスが共通化された複数バンクＢＮＫ０〜ＢＮＫ３を持つ４ウェイ・セットアソシアティブ方式のキャッシュメモリとして構成され、キャッシュミスなどにおいてその複数バンクの中から記憶情報を置換すべき場合に当該置換されるべきセットは、中央処理装置３によるソフトウェアの実行によって任意に指定可能にされる。図１９に示されるＭＭＵＣＲ．ＲＣは、上記バンクを任意に指定するための２ビットの情報が設定されるレジスタである。これに設定された値が図１８のデコーダ１７によって解読されることにより４個のバンクＢＮＫ０〜ＢＮＫ３の中から一つを選ぶ信号（ＢＳＬ１〜ＢＳＬ４）が形成され、これにより、インデックスアドレス２で指定された４個のバンクＢＮＫ０〜ＢＮＫ３の内の一つが置換対象とされる。ＭＭＵＣＲ．ＲＣはランダムカウンタのような計数手段とされる。ＭＭＵＣＲ．ＲＣのビット数の２のべき乗数は上記バッファメモリ１のバンクの数（＝４）に一致される。制御回路（ＣＴＲＬ）５０は、図２７に基づいて説明したようにアドレス変換バッファＴＬＢに対する記憶情報の置換が必要になった（ＴＬＢミス）場合にそのＭＭＵＣＲ．ＲＣを１インクリメントし、何れのバンクもインデックスされた記憶領域に有効なデータを保持している（インデックスされた各エントリはＶ＝１を保有する）場合にはそのインクリメントされた結果を置換すべきバンク番号とし、何れかのバンクがインデックスされた記憶領域に有効なデータを保持していない（インデックスされた何れかのエントリはＶ＝０を保有する）場合にはそのバンク番号をＭＭＵＣＲ．ＲＣにセットし且つセットされた番号のバンクを置換すべきバンクとする、という一定の規則に従って置換すべきバンクを指定する。このとき、ＭＭＵＣＲ．ＲＣの各ビットは中央処理装置３によるソフトウェアの実行によって任意に値が変更可能な対象とされる。すなわち、ＭＭＵＣＲ．ＲＣはＴＬＢミスの発生によって＋１される動作に限定されない。特定の値を除外するようにＭＭＵＣＲ．ＲＣを更新してもよい。さらに、中央処理装置ＣＰＵが実行するソフトウェアのアルゴリズム次第で、（ａ）ランダム、（ｂ）最初にロードされたものからリプレースするＦＩＦＯ、（ｃ）最後に参照されたものからリプレースするＬＲＵ（Least Recentry Used）、などに従い、ＭＭＵＣＲ．ＲＣを更新してリプレースを行う自由度も保証できる。
【０１０９】
このようにアドレス変換バッファＴＬＢのエントリを置き換えるためのリプレースメントアルゴリズムを固定化せず、置き換えるべきバンクをソフトウェアで任意に決定可能にすることにより、データ処理の都合上、常に特定の変換対をアドレス変換バッファＴＬＢにエントリとして格納しておきたいという要求や、特定のエントリをリプレース対象にしたくないという要求に容易に答えることができるようになる。
【０１１０】
《単一仮想記憶と多重仮想記憶のサポート》  本実施例のマイクロコンピュータは、複数のプロセスの夫々が論理空間の全域にわたる各々のアドレス変換情報を有するときにはプロセス番号ａｓｉｄによって論理アドレスを修飾或いは拡張する多重仮想記憶を、また、複数のプロセスに論理アドレス空間の一部が排他的に割り当てられ夫々のプロセスがそれに割り当てられた論理アドレス空間のアドレス変換情報を有するときにはプロセス番号ａｓｉｄによって論理アドレスを修飾或いは拡張しない単一仮想記憶を選択可能とされる。そのような仮想記憶についての制御は、図１９に例示されるＭＭＵＣＲ．ＳＶの値によって指示される。ＭＭＵＣＲ．ＳＶの値は中央処理装置３がソフトウェアを実行することによって任意に設定される。単一仮想記憶と多重仮想記憶との概念的な相違は図３２で説明した通りであり、その他の代表的な相違点については図３１に例示されている。図４に示されるようにアドレス変換バッファＴＬＢは論理ページ番号ＶＰＮと物理ページＰＰＮ番号と共にプロセス番号ＡＳＩＤのフィールドを有する。このフィールドの値は、単一仮想記憶か多重仮想記憶かでその処理内容が相違されることになる。あるＴＬＢエントリに含まれるプロセス番号に対応される論理ページが他のプロセスと共有不可能とされるとき、多重仮想記憶においてそのプロセス番号ＡＳＩＤは図２９で説明したようにアドレス変換バッファＴＬＢのＴＬＢヒット／ミスの判定に用いられる。したがって、アドレス変換バッファＴＬＢに格納されているエントリの論理ページ番号ＶＰＮが論理ページアドレスｖｐｎに一致すると共に当該エントリのプロセス番号ＡＳＩＤが現在のプロセスの番号ａｓｉｄに一致していなければＴＬＢヒットとはされない。単一仮想記憶においてはそのプロセス番号ＡＳＩＤはメモリ保護情報（ドメイン番号）として使用される。ユーザモードにおいて非共有ページについての他プロセスによる当該ページアクセスはＴＬＢプロテクト違反例外としてソフトウェアにより処理される。
【０１１１】
ＭＭＵＣＲ．ＳＶの値を中央処理装置ＣＰＵを介して設定することにより単一仮想記憶と多重仮想記憶の双方を選択的にサポート可能にすることにより、アドレス変換機構の使い勝手を向上させることができる。多重仮想記憶におけるプロセス番号ＡＳＩＤを単一仮想記憶におけるメモリ保護情報として使用することにより、その場合におけるメモリ保護の完全化を容易に実現することができる。
【０１１２】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えば、アドレス変換バッファやキャッシュメモリのウェイ数即ちバンクの数は５以上例えば８にすることも可能である。マイクロコンピュータがサポートするアドレス空間のサイズは４ＧＢに限定されず、それに応じて論理アドレスのビット数も制限されない。サポートするページサイズも適宜のサイズに、且つサポートする種類の数も適宜変更可能である。また、ＴＬＢエントリとして保有する論理ページ番号ＶＰＮは上記実施例のようにインデックスに利用される対応ビットを除いたものとする構成に限定されず、論理ページ番号の全ビットをＴＬＢエントリとして保有することもできる。
【０１１３】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるアドレス変換バッファとキャッシュメモリの双方を内蔵した１チップ型のマイクロコンピュータに利用した場合について説明したが本発明はそれに限定されず少なくとも中央処理装置と共に何れか一方を内蔵するデータ処理装置に広く適用することができる。
【０１１４】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１１５】
すなわち、殆どの命令セットに含まれるＭＯＶ命令のような一般的なデータ転送命令を以てキャッシュメモリやアドレス変換バッファに対してアクセスすることができる。したがって、エントリの無効化などのためにアドレス変換バッファやキャッシュメモリをアクセスするための専用命令を要さず、命令コードの種類を少なくでき、命令語長の短縮に寄与できる。したがって、アドレス変換バッファやキャッシュメモリをアクセスするための専用命令を採用する必要がないから、中央処理装置の命令デコーダの論理規模の増大を抑えることができる。
【０１１６】
更に、命令語長を短くしなければならないようなマイクロコンピュータのアークテクチャ上の要請にも容易に対処できる。マイクロコンピュータが比較的数句内ビット数の固定長命令を採用するならば、比較的短い命令コード故に当該命令コードは貴重なリソースとして位置付けられる。このため、アドレス変換バッファやキャッシュメモリをアドレス空間にマッピングしアドレスを指定してアクセス可能にするということは、命令デコーダのハードウェア変更量を少なくでき、命令コードの新規追加を不要にできる。
【０１１７】
書込みに際して連想書込みをサポートすることにより、アドレス指定だけでは考慮されない被検索アドレス情報を書込み可否の条件とするから、誤りなくエントリを無効化する操作を保証できる。
【０１１８】
連想書込みを非選択可能にすることにより、所定論理値のデータを書き込んだ後それと同じ論理値のデータが読み出せるか否かを検証するような連想メモリ部のデバイステストへの対応も可能になる。
【０１１９】
キャッシュメモリの１個のバンクにおけるデータ記憶容量がページサイズよりも大きな場合に、そのページサイズに対応した物理ページアドレスを全ビット保有できるサイズのアドレスタグのフィールドを採用し、アドレス比較に必要なビット数を超えてそこに物理アドレス情報を保有させることにより、キャッシュメモリの連想動作という観点ではアドレスタグに物理ページアドレスの全部を含める必要はないものの、ライトバック方式では新たなエントリによって置き換えられるべきエントリの書込み先アドレスを当該エントリのアドレスタグの情報を利用して生成しなければならないという要求を満足させることができる。これにより、キャッシュメモリのデータ記憶容量の増大や論理ページサイズの可変化に際して、インデックスされたキャッシュエントリに対するアドレス比較とライトバックの双方を達成できる。
【図面の簡単な説明】
【図１】キャッシュメモリ及びアドレス変換バッファのメモリマッピングについての一実施例説明図である。
【図２】本発明の一実施例に係るマイクロコンピュータのブロック図である。
【図３】本実施例のマイクロコンピュータにおけるアドレス空間の一例マッピング図である。
【図４】ページサイズ可変の論理アドレスのフォーマット及びＴＬＢエントリの説明図である。
【図５】アドレス変換ユニットの一例ブロック図である。
【図６】複数ページサイズをサポートするアドレス変換バッファの説明図である。
【図７】メモリマッピングされたアドレス変換バッファのためのアドレス及びデータの一例フォーマット図である。
【図８】エントリ無効化処理の一例フローチャートである。
【図９】キャッシュエントリの一例説明図である。
【図１０】キャッシュユニットの一例ブロック図である。
【図１１】キャッシュメモリにおけるキャッシュライン選択の一例説明図である。
【図１２】メモリマッピングされたキャッシュメモリのためのアドレス及びデータの一例フォーマット図である。
【図１３】本実施例のマイクロコンピュータの更に詳細なブロック図である。
【図１４】ステータスレジスタの説明図である。
【図１５】アドレス変換バッファ及びキャッシュメモリに対するアドレス指定アクセスに際してのアクセス権チェックの説明図である。
【図１６】論理ページアドレスの一部をそのまま利用してアドレス変換バッファをインデックスする手法の説明図である。
【図１７】論理ページアドレスの一部とプロセス番号の一部を用いてアドレス変換バッファをインデックスする手法の説明図である。
【図１８】ＴＬＢエントリのリプレース対象バンクをソフトウェアで任意に決定可能とする構成の説明図である。
【図１９】アドレス変換バッファの各種コントロールレジスタの一例説明図である。
【図２０】メモリマネージメントユニットを特に詳細に示したマイクロコンピュータの実施例ブロック図である。
【図２１】記憶保護に利用されるプロテクションビットＰＲによって規定されるアクセス権の説明図である。
【図２２】アドレス変換の制御メインフローチャートである。
【図２３】アドレス変換バッファのインデックス手法選択のための制御フローチャートである。
【図２４】論理アドレスとそれによってインデックスされたタグとのアドレス比較の制御フローチャートである。
【図２５】単一仮想記憶においてプロセス番号をメモリ保護に利用する制御を含んだプロテクション制御の部分的なフローチャートである。
【図２６】ページサイズに従った物理アドレス生成手順を示すフローチャートである。
【図２７】ＴＬＢリプレース対象バンクをハードウェア的に指定するための制御フローチャートである。
【図２８】ＴＬＢミス例外においてＴＬＢエントリを更新するためのＴＬＢミスハンドラによる処理の一例フローチャートである。
【図２９】単一仮想記憶におけるアドレス変換バッファに関する例外検出処理の前半を示すフローチャートである。
【図３０】単一仮想記憶におけるアドレス変換バッファに関する例外検出処理の後半を示すフローチャートである。
【図３１】単一仮想記憶と多重仮想記憶との全体的な相違を示す説明図である。
【図３２】単一仮想記憶と多重仮想記憶との概念を示す説明図である。
【図３３】アドレス変換バッファの各バンクにおけるヒット信号に反映すべきアドレス比較結果を制御する制御ロジックの一例論理回路図である。
【図３４】図２０の一部をさらに詳細に示したブロック図である。
【符号の説明】
ＭＰＵ  マイクロコンピュータ
ＣＰＵ  中央処理装置
ＭＭＵ  メモリマネージメントユニット
ＴＬＢ  アドレス変換バッファ（連想メモリ部）
ＴＡ−ａｒｙ  アドレスアレイ部
ＴＤ−ａｒｙ  データアレイ部
ＴＬＢ−Ｃ  制御部
ＣＡＣＨＥ  キャッシュユニット
ＣＡＣＨＥ−Ｍ  キャッシュメモリ（連想メモリ部）
ＣＡ−ａｒｙ  アドレスアレイ部
ＣＤ−ａｒｙ  データアレイ部
ＣＡＣＨＥ−Ｃ  制御部
Ｐ４  制御空間
Ｖ  バリッドビット
Ｕ  アップデートビット
ＴＡＧ  アドレスタグ
Ａ  連想ビット
ＶＰＮ  論理ページ番号
ＰＰＮ  物理ページ番号
ＡＳＩＤ，ａｓｉｄ  空間番号（プロセス番号）
ｖｐｎ  論理ページアドレス（論理ページ番号）
ｐｐｎ  物理ページアドレス（物理ページ番号）
ＢＮＫ０〜ＢＮＫ３  バンク
５１  ＰＴＥＨレジスタ
５２  ＰＴＥＬレジスタ
５３  ＴＴＢレジスタ
５４  ＴＥＡレジスタ
５５  ＭＭＵＣＲレジスタ
ＳＶ  シングルバーチャルビット
ＳＺ  サイズビット
ＩＸ  インデックスモードビット
ＭＤ  モードビット
【図１】
0003713312.tif 000002
【図２】
0003713312.tif 000003
【図３】
0003713312.tif 000004
【図４】
0003713312.tif 000005
【図５】
0003713312.tif 000006
【図６】
0003713312.tif 000007
【図７】
0003713312.tif 000008
【図８】
0003713312.tif 000009
【図９】
0003713312.tif 000010
【図１０】
0003713312.tif 000011
【図１１】
0003713312.tif 000012
【図１２】
0003713312.tif 000013
【図１３】
0003713312.tif 000014
【図１４】
0003713312.tif 000015
【図１５】
0003713312.tif 000016
【図１６】
0003713312.tif 000017
【図１７】
0003713312.tif 000018
【図１８】
0003713312.tif 000019
【図１９】
0003713312.tif 000020
【図２０】
0003713312.tif 000021
【図２１】
0003713312.tif 000022
【図２２】
0003713312.tif 000023
【図２３】
0003713312.tif 000024
【図２４】
0003713312.tif 000025
【図２５】
0003713312.tif 000026
【図２６】
0003713312.tif 000027
【図２７】
0003713312.tif 000028
【図２８】
0003713312.tif 000029
【図２９】
0003713312.tif 000030
【図３０】
0003713312.tif 000031
【図３１】
0003713312.tif 000032
【図３２】
0003713312.tif 000033
【図３３】
0003713312.tif 000034
【図３４】
0003713312.tif 000035