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