(57)【要約】セキュリティデータを記録しているメモリ（１０８）のセグメントへのアクセスを制御するための方法と装置が提供される。セキュリティ検査ユニット（３０４）は複数のメモリ（１０８）のセグメントに関し、これらの各々が保護されたデータを記録しているかを示す情報を維持する。ヒントディレクトリ（３０２）は、これらの複数のセグメントのいずれかのセグメントが保護されたデータを記録しているかどうかに関する情報を維持する。ヒントディレクトリ（３０２）は、保護されたデータを有さないとされる複数のセグメントの範囲に入るアドレス（４０２）を受け取ると、セキュリティ検査ユニット（３０４）をバイパスできる。ヒントディレクトリ（３０２）は、受け取ったアドレス（４０２）が保護されたデータを含む複数のセグメントのうちの１つに入ることを判定すると、アドレス（４０２）がセキュリティ検査ユニット（３０４）に渡され詳細に検査される。
2005521943.tif 000002
【特許請求の範囲】
【請求項１】
第１の予め選択されたメモリ（１０８）のセグメントのいずれかのロケーションに保護されたデータが記録されているかどうかを示す第１の情報を記録するステップと、
前記第１の予め選択されたメモリ（１０８）のセグメントのサブセットである、第２の複数の予め選択されたメモリ（１０８）のセグメントについて、各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第２の情報を記録するステップと、
アドレス（４０２）を受け取るステップと、
受け取った前記アドレス（４０２）の少なくとも一部が前記第１の予め選択されたメモリ（１０８）のセグメント内にあるかどうかを判定するステップと、
記録された前記第１の情報が、前記第１の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有さないことを示す場合、前記アドレス（４０２）へのアクセスを許可するステップと、
記録された前記第１の情報から、前記第１の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有すると判定した場合、前記第２の予め選択されたメモリ（１０８）のセグメントのうち、受け取った前記アドレス（４０２）が位置する少なくとも１つのセグメントを識別するステップと、
識別された前記第２の予め選択されたメモリ（１０８）のセグメントに対応する記録された前記第２の情報が、その第２の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有さないことを示す場合、受け取った前記アドレス（４０２）へのアクセスを許可するステップと、を有する方法。
【請求項２】
第１の予め選択されたメモリ（１０８）のセグメントのいずれかのロケーションに保護されたデータが記録されているかどうかを示す第１の情報を記録するステップは、前記第２の複数のメモリ（１０８）のセグメントのいずれかが保護されたデータを記録している場合に情報の単一のビットを記録するステップをさらに有する請求項１に記載の方法。
【請求項３】
第２の複数の予め選択されたメモリ（１０８）のセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第２の情報を記録するステップは、隣接する複数の第２の予め選択されたセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第２の情報を記録するステップをさらに有する請求項１に記載の方法。
【請求項４】
受け取った前記アドレス（４０２）の少なくとも一部が前記第１の予め選択されたメモリ（１０８）のセグメント内にあるかどうかを判定するステップは、受け取った前記アドレス（４０２）の少なくとも一部が前記隣接する複数の第２の予め選択されたセグメント内にあるかどうかを判定するステップをさらに有する請求項３に記載の方法。
【請求項５】
記録された前記第１の情報から、前記第１の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有すると判定した場合、前記第２の予め選択されたメモリ（１０８）のセグメントのうち、受け取った前記アドレス（４０２）が位置する少なくとも１つのセグメントを識別するステップは、受け取った前記アドレス（４０２）と、この第２の予め選択されたメモリ（１０８）のセグメントの少なくとも１つに対応するアドレス範囲と、を比較するステップをさらに有する請求項１に記載の方法。
【請求項６】
メモリ（１０８）のセグメントに記録されている保護されたデータに対するアクセスを制御する装置であって、
アドレス（４０２）を受け取ると、第１の複数の予め選択されたメモリ（１０８）のセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第１の情報にアクセスするように適合されたセキュリティ検査ユニット（３０４）と、
前記第１の複数の予め選択されたメモリ（１０８）のセグメントのいずれかの１つに保護されたデータが記録されているかどうかを示す第２の情報を記録すると共に、受け取ったアドレス（４０２）の少なくとも一部が前記第１の予め選択されたメモリ（１０８）のセグメントのうちの少なくとも１つにあり、かつ前記第２の情報が、前記第１の予め選択されたメモリ（１０８）のセグメントの各々が保護されたデータを有さないことを示していると判定すると前記セキュリティ検査ユニット（３０４）をバイパスするためのものであるヒントディレクトリ（３０２）と、を備えた装置。
【請求項７】
前記ヒントディレクトリ（３０２）は、前記第２の情報が、前記第１の予め選択されたメモリ（１０８）のセグメントの少なくとも１つが保護されたデータを有することを示していると判定すると、前記セキュリティ検査ユニット（３０４）に前記アドレス（４０２）を提供するものである、請求項６に記載の装置。
【請求項８】
前記ヒントディレクトリ（３０２）は、前記第１の予め選択されたメモリ（１０８）のセグメントのうちの第１の複数のセグメントと対応している１つのエントリを含むテーブルを有し、前記エントリは、前記第１の予め選択されたメモリ（１０８）のセグメントのうちの前記第１の複数のセグメントのいずれかが保護されたデータを有する場合、保護されたデータの存在を示すようにセットされる請求項６に記載の装置。
【請求項９】
前記テーブルは、受け取った前記アドレス（４０２）の少なくとも一部によって示されるメモリ（１０８）内のロケーションに記録される請求項８に記載の装置。
【請求項１０】
前記テーブルは、受け取った前記アドレス（４０２）の上位ビットの少なくとも一部によって示されるメモリ（１０８）内のロケーションに記録される請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータプロセッサに関し、本発明は、より詳細にはデータプロセッサのセキュアな動作、即ち安全な動作を保証するための方法ならびに装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの汎用コンピューティングシステムは、シングルタスク装置からマルチタスク装置へと進化を遂げている。マルチタスク装置では、当該装置のオペレーティングシステムをユーザプロセスから保護すると共に、プロセス同士を保護する保護するため、セキュリティサービスおよび保護サービスが必要となる。保護を行わなければ、例えば悪意のあるプログラムが、記憶空間にあるオペレーティングシステムや別のプロセスが保有しているプログラムコードやデータを、故意にあるいは偶発的に破壊してしまう可能性がある。
【０００３】
通常、ｘ８６マイクロプロセッサ環境では、異なる種類のソフトウェアがさまざまな特権レベルで実行されており、このため、これらソフトウェアのコンピューティングシステムの資源へのアクセス権はさまざまに異なる。例えば、オペレーティングシステムは最高の特権レベル（リング０：ring 0）で実行されており、オペレーティングシステムはどのシステム資源にもほぼ無制限にアクセスできる。また、ソフトウェアドライバも比較的高い特権レベルを有しており、コンピューティングシステムの資源に通常は無制限にアクセスできる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
マイクロソフト社のＷｉｎｄｏｗｓオペレーティングシステムの最新バージョン、Ｗｉｎｄｏｗｓ  ２０００（登録商標）では、カーネルおよび関連するカーネルモードドライバのコードの量が１００万行を越えている。つまり、１００万行以上のコードが、システム資源に通常は無制限にアクセスできる。この膨大な量のプログラムに、何らかのセキュリティ上の欠陥やその他のバグが潜んでいる可能性は高い。このため、比較的低い特権レベルで実行されているアプリケーションプログラムが、このようなバグまたはセキュリティ上の欠陥の１つ以上を利用して、オペレーティングシステムが提供するセキュリティを破る可能性がある。あるいは、悪意のあるドライバが、システム資源に記録されているデータにアクセスして、このデータを変更する可能性もある。このようなアプリケーションプログラムは、ページテーブルなどの通常は利用できない資源に対するアクセスを許可されると、メモリに記録されているページテーブルなどのデータを故意に変更する可能性がある。ページテーブルが変更されてしまうと、コンピュータシステムの操作を転送（redirect）して、本来実行できないコードをメモリから実行できるようになる。あるいは、ページテーブルが偶発的に変更された場合であっても、アプリケーションプログラム、時にはオペレーティングシステムが、本来は権限がないかアクセスを禁止されているメモリ部分に転送されることがある。権限がないメモリ部分へのアクセスが行われると、あるアプリケーションプログラムが、別のプログラムが使用している重要なデータを上書きしてしまう可能性がある。
【０００５】
一部のシステムでは、メモリを、ページなどの複数のセグメントに分割することが有用な場合がある。これらのセグメントは、セグメントに対応するセキュリティ情報を有している。この情報のデータの粒度（granurality）が増大するのに伴って、セキュリティデータの分量が増大し、セキュリティデータの管理およびアクセスが困難となる。例えば、粒度の非常に小さいセキュリティ方式ではアクセスに時間を要し、その結果システムの実行速度が大きく低下し、システムが実行不能に陥る。
【課題を解決するための手段】
【０００６】
本発明は、上記の問題の１つ以上を解決するか少なくとも軽減することを狙ったものである。
【０００７】
本発明の一態様において方法が提供される。この方法は、第１の予め選択されたメモリのセグメントのいずれかのロケーション（場所）に保護されたデータが記録されているかどうかを示す第１の情報を記録するステップと、第２の複数の予め選択されたメモリのセグメントの各々のいずれかのロケーションに、保護されたデータが記録されているかどうかを示す第２の情報を記録するステップと、を有する。第２の予め選択されたメモリのセグメントは、第１の予め選択されたメモリのセグメントより小さい。その後、アドレスが受信されて、受信したアドレスの少なくとも一部が第１の予め選択されたメモリのセグメント内にあるかどうかが判定される。記録された第１の情報が、第１の予め選択されたメモリのセグメントが保護されたデータを有さないことを示す場合、このアドレスへのアクセスが許可される。第１の予め選択されたメモリのセグメントが保護されたデータを有すると判定された場合、第２の予め選択されたメモリのセグメントのうち、受け取ったアドレスが存在する少なくとも１つのセグメントが識別される。識別された第２の予め選択されたセグメントに対応する記録された第２の情報が、第２の予め選択されたメモリのセグメントが保護されたデータを有さないことを示す場合、受け取ったアドレスへのアクセスが許可される。
【０００８】
本発明の別の態様において、メモリのセグメントに記録されている保護されたデータに対するアクセスを制御する装置が提供される。この装置は、セキュリティ検査ユニット及びヒントディレクトリを備える。セキュリティ検査ユニットは、第１の複数の予め選択されたメモリのセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第１の情報にアクセスするように適合されている。ヒントディレクトリは、第１の複数の予め選択されたメモリのセグメントのいずれかの１つに保護されたデータが記録されているかどうかを示す第２の情報を記録するように適合されている。ヒントディレクトリは、受け取ったアドレスの少なくとも一部が第１の予め選択されたメモリのセグメントの少なくとも１つにあり、かつ第２の情報が、第１の予め選択されたメモリのセグメントの各々が保護されたデータを有さないことを示していると判定するとセキュリティ検査ユニットをバイパスする。
【発明を実施するための最良の形態】
【０００９】
本発明は、添付の図面と併せて下記の説明を参照することで理解できるであろう。図面において、参照符号の一番左の数字は、それぞれの参照符号が最初に記載された図面を示している。
【００１０】
本発明は、種々の変形および代替形態を取り得るが、その特定の実施形態が、図面に例として図示され、ここに詳細に記載されているに過ぎない。しかし、この詳細な説明は、本発明を特定の実施形態に限定することを意図するものではなく、反対に、添付の特許請求の範囲によって規定される本発明の趣旨ならびに範囲に含まれる全ての変形例、均等物および代替例を含むことを理解すべきである。
【００１１】
本発明の例示的な実施形態を下記に記載する。簡潔を期すために、実際の実装の特徴を全て本明細書に記載することはしない。当然、実際の実施形態の開発においては、システム上の制約およびビジネス上の制約に適合させるなど、開発の具体的な目的を達成するために、実装に固有の判断が数多く必要とされ、この判断は実装によって変わるということが理解される。さらに、この種の開発作業は複雑かつ時間がかかるものであるが、本開示による利益を受ける当業者にとって日常的な作業であるということが理解されよう。
【００１２】
最初に、図１にコンピュータシステム１００の概略ブロック図を示す。コンピュータシステム１００は、ホストバス１０４に結合されたマイクロプロセッサなどのプロセッサ１０２を備えており、プロセッサ１０２は複数のプロセッサ（図示せず）を有することがある。システムメモリコントローラ１０６が、ホストバス１０４とメモリデバイス１０８とに結合されている。ホストブリッジ１１０は、ホストバス１０４を、周辺機器相互接続（peripheral component interconnect：ＰＣＩ）バス（ＰＣＩ仕様、レビジョン２．１）などのプライマリバス１１２に結合している。プライマリバス１１２には、ビデオコントローラ１１４やその他のデバイス１１６（ＰＣＩデバイスなど）が結合されている。コンピュータシステム１００は、セカンダリＰＣＩバス（図示せず）や当業界で公知のその他の周辺デバイス（図示せず）など、ほかのバスを備えていてもよい。
【００１３】
プロセッサ１０２は、システムメモリコントローラ１０６を介してメモリデバイス１０８と通信している。システムメモリコントローラ１０６は従来の構成を有するものであり、所望のメモリトランザクションを指定（characterize）するために、メモリデバイス１０８にメモリのアドレスと論理信号とを渡す。メモリデバイス１０８は、本発明の趣旨および範囲から逸脱することなく、さまざまな方式のものであり得、例えば同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、２倍速ダイナミックランダムアクセスメモリ（ＤＤＲＡＭ）などである。
【００１４】
図２に、プロセッサ１００に関連付けられた物理メモリ１０８へのアクセスを制御するためにコンピュータシステム１００で使用され得るセキュリティシステム２００のアーキテクチャの例示的な一実施形態を示す。システム２００は、仮想アドレス指定方式によるメモリアクセスを使用しているプロセッサに有用である。例えば、システム２００は、ｘ８６タイプのマイクロプロセッサで用いられているようなページング方式を使用してメモリのアドレス指定を行うプロセッサで有用である。さらに、システム２００は、ページレベルでセキュリティ属性を割り当てるプロセッサに特に利用される。この例に、２００１年１２月５日に出願された米国特許出願番号第１０／００５２７１号「メモリ管理システムならびにメモリアクセスのセキュリティを向上させる方法（MEMORY MANAGEMENT SYSTEM AND METHOD PROVIDING INCREASED MEMORY ACCESS SECURITY）」に記載したものがある。同出願は本出願の譲受人に譲渡されており、その全てがここに援用される。
【００１５】
図２に示す実施形態において、システム２００は、マイクロソフトコーポレーションが製造しているＷｉｎｄｏｗｓ（登録商標）などの従来のオペレーティングシステム２０２に追加される。従来、オペレーティングシステム２０２およびドライバ２０４は特権レベル（ＣＰＬ）＝０が割り当てられていた。つまり、オペレーティングシステム２０２およびドライバ２０４は、従来、コンピュータシステム１００の資源に対しほぼ無制限のアクセス権を有していた。これに対し、アプリケーションプログラム２０６はＣＰＬ＝３が割り当てられていた。つまり、アプリケーションプログラム２０６は、従来、コンピュータシステム１００の資源に対して大幅に制限されたアクセス権しか有していなかった。本発明の一実施形態においては、セキュアモード２０８が、オペレーティングシステム２０２、ドライバ２０４およびアプリケーションプログラム２０６と機能的に対応するように配置されている。すなわち、セキュリティカーネル２１０はＣＰＬ＝０を割り当てられ、保護された（セキュアな）アプリケーションプログラム２０６はＣＰＬ＝３を割り当てられる。上記に加え、オペレーティングシステム２０２、ドライバ２０４、アプリケーションプログラム２０６、セキュリティカーネル２１０、および保護されたアプリケーションプログラム２１２にはセキュリティ特権レベル（ＳＰ）が割り当てられる。ＳＰは、セキュアモード２０８のアクセス権と従来のモードのアクセス権とを分けるように機能する。すなわち、ＣＰＬとＳＰとの組み合せにより、セキュリティカーネルは最高の特権を有するようになる。
【００１６】
このため、セキュリティカーネル２１０は、さまざまな責任を果たし得るが、本発明にとって重要な機能は、メモリデバイス１０８の保護された領域（セキュアな領域）にデータ／情報／コードを記録する能力である。すなわち、セキュリティカーネル２１０は、高い特権レベルを有しているため、メモリの選択した領域へのアクセスを制限し得る。典型的には、セキュリティカーネル２１０は、起動段階中または起動後に、メモリデバイス１０８のセクションにデータ／情報／コードを記録し、次にこのセクションが保護されたセクションであることをマークあるいは識別する。メモリのセクションが保護されたセクションであると識別されると、特権レベルの低いプログラムはこれらにアクセスすることもこれらを変更することもできなくなる。例えば、セキュリティカーネル２１０によって書き込まれ、保護されたセクションとして識別されたメモリのセクションは、オペレーティングシステム２０２、ドライバ２０４、保護されたアプリケーションプログラム２１２またはアプリケーションプログラム２０６からアクセスできなくなる。このような保護されたメモリのセクションはセキュリティレベル２１０によってしかアクセスできない。
【００１７】
同時係属中の米国特許出願番号第１０／００５２７１号に記載されているように、ＣＰＵセキュリティ検査ユニット（ＳＣＵ）は、ＣＰＵがメモリにアクセスする度に検査を行い、そのメモリアクセスが、セキュリティカーネル２１０によって保護された領域として指定されているメモリ領域内に入るかどうかを判定する。なお、下記に詳述するように、セキュリティカーネル２１０によって保護された領域として指定されているメモリ領域は、ヒントディレクトリによって分析されるメモリのセグメントよりも小さい。メモリ領域が保護された領域として指定されていない場合、ＣＰＵ  ＳＣＵは、メモリアクセスを、ページングユニットなどのアドレス変換メカニズムに渡すことを許可する。これに対し、このメモリアクセスが保護された領域に位置している場合、ＣＰＵ  ＳＣＵは、メモリアクセスを分析して、要求側のエージェントが、この要求を開始できるだけの高い特権レベルを有しているかどうかを判定する。ＣＰＵ  ＳＣＵの動作に関する詳細な説明は、上記で既に援用した同時継続中の米国特許出願番号第１０／００５２７１号に記載されている。
【００１８】
図３に示すように、本発明は、機能的にはＣＰＵ  ＳＣＵ  ３０４の前に位置するヒントディレクトリ３０２を対象としている。ヒントディレクトリ３０２によって、システム１００は、あるメモリアクセスの対象が、保護されたメモリのセクションにないことを比較的迅速に判断して、このメモリアクセスをページングメカニズム３０６に直接送り、ＣＰＵ  ＳＣＵ  ３０４をバイパスできるようになる。ページングメカニズム３０６では、このメモリアクセスの仮想アドレスまたはリニアアドレスが、物理アドレスに翻訳され得る。ヒントディレクトリは、比較的大きなメモリのセクションが、保護されたセクションを有しているかどうかを記録している。すなわち、ヒントディレクトリは、メモリを、１つ以上のページなどの比較的大きなセクションに細分化し、このセクションが保護されたセクションに指定されているかどうかを示すビットを設定する。あるメモリのセクションが保護された部分を有さない場合、このセクションには保護された部分が存在しないため、ＣＰＵ  ＳＣＵ３０４は、問い合わせを行って、アクセスしようとしているロケーションが保護された領域に位置しているかどうかを判定する必要がない。
【００１９】
図４に、ヒントディレクトリ４００を模式的に示す。ヒントディレクトリ４００は、メモリデバイス１０８に記録されたエントリのディレクトリまたはテーブルであり、先頭はベースアドレス４０２である。各エントリは、選択されたメモリのセグメントに対応した１つのビットである。各エントリに記録されている値は、セキュリティカーネルが、そのエントリに対応する選択されたメモリのセグメントのいずれかの部分に何らかのデータ／情報／コードを記録しているかどうかを示す。すなわち、このエントリは、対応するメモリのセグメントが保護されており、ＣＰＵ  ＳＣＵ  ３０４による分析を行う必要があるかどうかを示す。本発明の趣旨および範囲から逸脱することなく、ヒントディレクトリのデータの粒度を変更することができる。すなわち、各エントリがメモリの各ページに対応していることが有用である用途もあれば、各エントリがメモリの複数のページに対応している用途もある。
【００２０】
ヒントディレクトリ４００の動作を説明するには、具体例を採り上げることが有用であろう。例えば、３２ビットのアドレスと、データ粒度が２キロビットのページのヒントディレクトリを使用するシステム１００を考える。図５に示したこの例示的な実施形態において、各２キロビットのページのセルは３２ビットアドレスの下位１０ビットによって表され、残る上位２２ビットはヒントディレクトリ内で各ページと各ロケーションとを識別している。すなわち、ベースアドレス４０２の上位１０ビットは、セキュリティカーネル２１０によって選択されたメモリの先頭アドレスを識別しており、アクセス要求の上位２２ビットはヒントディレクトリ内で特定のビットを識別している。例えば、２２ビットアドレス「００００００００００００００００００００００」はヒントディレクトリのロケーション５００を識別し、２２ビットアドレス「０００００００００００００００００００００１」はヒントディレクトリのロケーション５０２を識別し、２２ビットアドレス「００００００００００００００００００００１０」はヒントディレクトリのロケーション５０４を識別するというようになる。
【００２１】
さらに、図５の代表的な実施形態において、ロケーション５００，５０４は論理低値を記録しており、対応する保護された２キロビットロケーションが存在しないことを示す。しかし、ロケーション５０２は論理的高値を記録しており、対応する保護された２キロビットロケーションが１つ以上存在することを示す。このため、ロケーション５００またはロケーション５０４に対応するロケーションの範囲に入るメモリアクセスが発生すると、ヒントディレクトリによってＣＰＵ  ＳＣＵ  ３０４がバイパスされ、変換処理（translation process）が直ちに開始されるようになる。これに対して、ロケーション５０２に対応するロケーションの範囲に入るメモリアクセスが発生すると、ヒントディレクトリによって、ＣＰＵ  ＳＣＵ  ３０４がそのメモリアクセス要求を受け取ってこれを分析し、保護されたメモリロケーションにアクセスしようとしているかどうかを判定する。
【００２２】
当業者であれば、明らかにメモリアクセスが保護されたロケーションを対象としていないか、あるいは保護されたロケーションを対象としていない可能性があることを示す指示をヒントディレクトリ３０２が提供することが理解されよう。ヒントディレクトリ３０２は、保護されたロケーションを対象としてない可能性があるメモリアクセスをＣＰＵ  ＳＣＵ  ３０４に送り、さらに解析させる。
【００２３】
上記に記載した特定の実施形態は例に過ぎず、本発明は、本開示の教示から利益を得る当業者にとって自明の、同等の別法によって変更および実施されてもよい。さらに、ここに記載した構成または設計の詳細が、添付の特許請求の範囲以外によって制限を受けることはない。このため、上記に記載した特定の実施形態を変形または変更することが可能であり、この種の変形例の全てが本発明の範囲ならびに趣旨に含まれることが意図されることが明らかである。したがって、ここに保護を請求する対象は、添付の特許請求の範囲に記載したとおりである。
【図面の簡単な説明】
【００２４】
【図１】本発明が使用され得るコンピュータシステムの上位レベルブロック図の一実施形態を模式的に示す図である。
【図２】図１のコンピュータシステムにおいて使用され得る、改良されたセキュリティシステムの最上位レベル図の一実施形態を模式的に示す図である。
【図３】図１のコンピュータシステムの保護されたメモリ領域へのアクセスを制御するシステムの一部の一実施形態を模式的に示す図である。
【図４】コンピュータシステムによって使用される物理メモリのさまざまな部分へのアクセスを制御するための、メモリベースのテーブルの一実施形態を示す図である。
【図５】図４のメモリベースのテーブルのより詳細な実施形態を示す図である。
【図１】
2005521943.tif 000003
【図２】
2005521943.tif 000004
【図３】
2005521943.tif 000005
【図４】
2005521943.tif 000006
【図５】
2005521943.tif 000007
【手続補正書】
【提出日】平成16年3月5日(2004.3.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリ（１０８）のセグメントに記録されている保護されたデータに対するアクセスを制御する装置であって、
複数の第１の予め選択されたメモリ（１０８）のセグメントのいずれかの１つに保護されたデータが記録されているかどうかを示す第１の情報を記録すると共に、受け取ったアドレス（４０２）の少なくとも一部が前記第１の予め選択されたメモリ（１０８）のセグメントのうちの少なくとも１つにあり、かつ前記第２の情報が、前記第１の予め選択されたメモリ（１０８）のセグメントの各々が保護されたデータを有さないことを示していると判定するとセキュリティ検査ユニット（３０４）をバイパスするためのヒントディレクトリ（３０２）と、
アドレス（４０２）を受け取ると、前記複数の第１の予め選択されたメモリ（１０８）のセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第２の情報にアクセスするためのセキュリティ検査ユニット（３０４）と、を備えた装置。
【請求項２】
前記ヒントディレクトリ（３０２）は、前記第２の情報が、前記第１の予め選択されたメモリ（１０８）のセグメントの少なくとも１つが保護されたデータを有することを示していると判定すると、前記セキュリティ検査ユニット（３０４）に前記アドレス（４０２）を提供するためのものである、請求項１に記載の装置。
【請求項３】
前記ヒントディレクトリ（３０２）は、前記第１の予め選択されたメモリ（１０８）のセグメントのうちの第１の複数のセグメントと対応している１つのエントリを含むテーブルを有し、前記エントリは、前記第１の予め選択されたメモリ（１０８）のセグメントのうちの前記第１の複数のセグメントのいずれかが保護されたデータを有する場合、保護されたデータの存在を示すようにセットされる請求項１に記載の装置。
【請求項４】
前記テーブルは、受け取った前記アドレス（４０２）の少なくとも一部によって示されるメモリ（１０８）内のロケーションに記録される請求項３に記載の装置。
【請求項５】
前記テーブルは、受け取った前記アドレス（４０２）の上位ビットの少なくとも一部によって示されるメモリ（１０８）内のロケーションに記録される請求項３に記載の装置。
【請求項６】
メモリセグメント内に記録された保護されたへのアクセスを制御する方法であって、
第１の予め選択されたメモリ（１０８）のセグメントのいずれかのロケーションに保護されたデータが記録されているかどうかを示す第１の情報を記録するステップと、
前記第１の予め選択されたメモリ（１０８）のセグメントのサブセットである、第２の複数の予め選択されたメモリ（１０８）のセグメントについて、各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第２の情報を記録するステップと、
アドレス（４０２）を受け取るステップと、
受け取った前記アドレス（４０２）の少なくとも一部が前記第１の予め選択されたメモリ（１０８）のセグメント内にあるかどうかを判定するステップと、
記録された前記第１の情報が、前記第１の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有さないことを示す場合、前記アドレス（４０２）へのアクセスを許可するステップと、
記録された前記第１の情報から、前記第１の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有すると判定した場合、前記第２の予め選択されたメモリ（１０８）のセグメントのうち、受け取った前記アドレス（４０２）が位置する少なくとも１つのセグメントを識別するステップと、
識別された前記第２の予め選択されたメモリ（１０８）のセグメントに対応する記録された前記第２の情報が、その第２の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有さないことを示す場合、受け取った前記アドレス（４０２）へのアクセスを許可するステップと、を有する方法。
【請求項７】
第１の予め選択されたメモリ（１０８）のセグメントのいずれかのロケーションに保護されたデータが記録されているかどうかを示す第１の情報を記録するステップは、前記第２の複数のメモリ（１０８）のセグメントのいずれかが保護されたデータを記録している場合に情報の単一のビットを記録するステップをさらに有する請求項６に記載の方法。
【請求項８】
第２の複数の予め選択されたメモリ（１０８）のセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第２の情報を記録するステップは、隣接する複数の第２の予め選択されたセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第２の情報を記録するステップをさらに有する請求項６に記載の方法。
【請求項９】
受け取った前記アドレス（４０２）の少なくとも一部が前記第１の予め選択されたメモリ（１０８）のセグメント内にあるかどうかを判定するステップは、受け取った前記アドレス（４０２）の少なくとも一部が前記隣接する複数の第２の予め選択されたセグメント内にあるかどうかを判定するステップをさらに有する請求項８に記載の方法。
【請求項１０】
記録された前記第１の情報から、前記第１の予め選択されたメモリ（１０８）のセグメントが保護されたデータを有すると判定した場合、前記第２の予め選択されたメモリ（１０８）のセグメントのうち、受け取った前記アドレス（４０２）が位置する少なくとも１つのセグメントを識別するステップは、受け取った前記アドレス（４０２）と、この第２の予め選択されたメモリ（１０８）のセグメントの少なくとも１つに対応するアドレス範囲と、を比較するステップをさらに有する請求項６に記載の方法。
【国際調査報告】
2005521943.tif 000008
2005521943.tif 000009