JP2005515536A - 所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置 - Google Patents

所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置 Download PDF

Info

Publication number
JP2005515536A
JP2005515536A JP2003560724A JP2003560724A JP2005515536A JP 2005515536 A JP2005515536 A JP 2005515536A JP 2003560724 A JP2003560724 A JP 2003560724A JP 2003560724 A JP2003560724 A JP 2003560724A JP 2005515536 A JP2005515536 A JP 2005515536A
Authority
JP
Japan
Prior art keywords
access
space
security level
segment
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003560724A
Other languages
English (en)
Other versions
JP4478458B2 (ja
Inventor
シー. バーンズ ブライアン
エス. ストロンジン ジェフリー
ダブリュ. シュミット ロドニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2005515536A publication Critical patent/JP2005515536A/ja
Application granted granted Critical
Publication of JP4478458B2 publication Critical patent/JP4478458B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

目標とされたセキュリティを用いてアクセスするためのI/Oデバイスを実行するための方法及び装置である。ソフトウェアオブジェクト(350)が実施される。ソフトウェアオブジェクト(350)のセキュリティレベルが構築される。マルチテーブル入出力(I/O)スペースアクセスは、少なくともセキュリティレベルの1つを用いて実行される。ソフトウェアオブジェクト(350)の機能が実施される。

Description

本発明は、一般にコンピュータシステム操作に関連し、主に、安全な入出力(I/O)アクセスを用意するための物理的なアドレスに基づいたセキュリティスキームを実行するための方法及び装置に係わる。
コンピュータ又はコンピュータシステムは、今日の工業用アプリケーションとホームアプリケーションの多くにおいて重要な構成要素である。製造システム、電力システム、製品流通システム、書類システム等のような多くのシステムは、プロセッサを使用するコンピュータシステムによって支えられている。これらのプロセッサは、種々のテストを行い、複数ソフトウェアプログラムの交信を実行する。多くの場合、入出力デバイスは、プロセッサとソフトウェアプログラムオペレーションの操作を可能にする。ある種のソフトウェア構造(例えば、ソフトウェアオブジェクト、サブルーティン、スタンドアローンプログラム等)が制御されて他のソフトウェア構築よりも優先権を付与されるように、プロセッサのオペレーション時には標準レベルのセキュリティが要請される。多くの場合、認証されていない、又は不正のアクセスやオペレーションがプロセッサにより実行されることのないように、ある種のソフトウェア構造とあるプロセッサ機能へのアクセスには制限が設けられている。現在のコンピュータアーキテクチャは、コンピュータシステムの物理的メモリ内にある、いくつかのシステム定義されたテーブルを用いる仮想メモリを使用するためのスキームを含む。これらのシステムテーブル内のエントリは、一般的に予め限定され、あるソフトウェア構築にアクセスすることを限定する、リザーブされたセクションを含む。
コンピュータシステムは、単一タスクデバイスからマルチタスクデバイスに進化してきた。コンピュータシステムは、多数のタスクを実行するためのオペレーティングシステムを使用してこれらのリソース使用を管理する。一般的には、ユーザが処理を実行する(例えば、ワードプロセッサのようなアプリケーションプログラムを開く)と、操作システムでは、あるコンピュータリソース(例えば、メモリの一部)をタスクに占有させる。しかしながら、この方法では、多くのコンピュータリソースを占有させることはできない。例えば、プリンタドライバは、マルチタスクによって頻繁に用いられる。それ故、操作システムは通常、このような共有されたリソースに係わるアクセス権とタスクのプロトコルを設定する。従って操作システムの動作により、コンピュータシステムは、効果的な方法でマルチタスクを同時に実行可能となっている。
このようなコンピュータ環境においては、“セキュリティ”が重要となる。マルチタスクを採用したコンピュータシステムでは、ユーザプロセスから操作システムを保護し、相互の処理を保護するために、セキュリティと保護サービスを採用している。保護がなければ、悪意のあるプログラムが、操作システム又は他の処理に属するメモリスペースにおけるプログラムコード又はプログラムデータをユーザの意に反して破壊することが可能である。少なくとも本願においては、セキュリティとは、これらの悪意ある行為自体を阻止することを意図するものではなく、これらの悪意ある行為からの保護を意味するものである。
x86プロセッサのような多くのプロセッサは、特権レベルのような複数セキュリティレベルを用意する。図1を参照すると、複数セキュリティレベルの表示の一実施例が示されている。図1に示す逆ピラミッド型構造は、4つのセキュリティ(特権)レベルであるレベル0,レベル1,レベル2,レベル3、及びレベルnまでを表す。操作システムはレベル0のような特権レベルが付与されている。セキュリティレベル0によって提供される特権により、特定のソフトウェア構造が、レベル1からレベル3のような後続のセキュリティレベルからのアクセスを獲得することを可能にする。もしソフトウェア構造が、セキュリティレベル2の特権のみを許可されるとすると、この特定ソフトウェアは特権レベル2と特権レベル3によって付与される操作に関してのみアクセスを有し、制御可能であることになる。マイクロソフトウィンドウズ(登録商標)のような多くのケースでは、複数の特権レベルの全性能を用いることはない。ソフトウェア操作システムにおいて、レベル0やレベル3のような2つのレベルのみを用いるものもある。
操作システムサービスと全部のドライバがセキュリティレベル0で動作している間でも、ユーザアプリケーションプログラムは、セキュリティレベル3で実行され得る。このことは、コンピュータシステムを種々のセキュリティリスクにさらすことになる。これは、殆どのドライバが、最も特権を有するレベルであるセキュリティレベル0で動作しているため全部のコンピュータリソースに対するアクセスを有するのことからも実証される。従って、モデムドライバのようなコンピュータシステムのI/Oデバイスを制御するドライバに対する権限のないアクセスによって、I/Oデバイスの不正操作を引き起こし、システム破壊又は不正使用という結果を生じ得る。更に、システムI/Oデバイスに対する不正アクセスにより、重要なデータやソフトウェアプログラムの損失が引き起こされるおそれがある。
本発明は、上述した1つ以上の問題を解決、又は少なくとも削減することを目的としている。
本発明の一態様においては、ターゲットとなるセキュリティレベル、つまり所望のセキュリティを用いてI/Oデバイスにアクセスを実行する方法が用意される。ソフトウェアオブジェクトが実行される。ソフトウェアオブジェクトのセキュリティレベルが設定される。マルチテーブル入出力(I/O)空間アクセスが少なくとも1つのセキュリティレベルを用いて実行される。オブジェクトの機能が実施される。
本発明の他の態様において、標的セキュリティを用いてI/Oデバイスを実行する装置が、用意される。本発明の装置は、バスに結合されるプロセッサ、少なくとも1つのソフトウェアオブジェクトがプロセッサに結合される手段、入出力(I/O)デバイス、バスとメモリユニットに結合される(I/O)アクセスインターフェース、及び、ソフトウェアオブジェクトを実施するプロセッサに応じて少なくとも1つのセキュリティレベルに基づくメモリの少なくとも一部のプロセッサマルチレベルテーブルI/O空間アクセスを用意するメモリアクセスインターフェースを含む。
本発明は、種々の変形及び形態で実施することができるが、以下に、本発明の一実施形態図示し、詳細を記載する。しかしながら、この実施形態は、単に例示的なものに過ぎず、本発明を特定の実施形態に限定することを意図したものではない。逆に、本クレームの趣旨及び範囲に属するすべての修正、等価物、及び変形例は、本願発明の範疇に属するものである。
以下、本発明の実施形態を記載する。明瞭性を期すために、実際の実施例の全部の特徴は本明細書に記載されていない。このような実際の実施例の開発にあたって、システム関連又はビジネス関連制約に応じた種々の変化に富んだ実施例が実施され、開発者の特定の目的を満たすために、個々の実施形態に特有の仕様が採用され得る。更に、このような開発努力は、複雑で時間を要することではあるが、当業者にとっては、本願における開示の利益を享受するための通常の能力の発揮にすぎない。
以下、本発明を、添付した図面を参照して説明する。図面において、同一の要素あるいは同等の要素に対しては同一番号を付している。
本発明の実施形態は、セキュリティアクセスシステムを用いたI/O空間アクセスを用意する。本発明の実施形態は、コンピュータシステムにおいて1つ以上のプロセッサによって起動したI/O空間にアクセスする(例えば、I/Oデバイスにアクセスする)間、マルチI/O空間アクセステーブル及び/又はI/Oメモリアクセステーブルシステムのためにセキュリティを用意する。本発明の実施形態は、また、結果としてI/O空間アクセスとI/Oメモリアクセスの間、セキュリティ度を高める、I/O空間アクセステーブルと第2I/Oメモリアクセステーブルを用いるI/O空間アクセスシステムを用意する。
図2に、本発明に係るシステム200の一実施形態を示す。システム200は、プロセスユニット210と、キーボード230、マーズ240、入力ペン250のような複数入出力デバイスと、モニタのような表示ユニット220と、を有する。本発明によって開示されるセキュリティレベルは、一実施形態によると、プロセスユニット210内にある。入出力デバイス230,240,250の1つからの入力は、プロセスユニット210における、操作システムを含む1以上のソフトウェアの起動して実行させる。次にシステム200にあるI/O空間に関連するI/O空間及び/又はI/Oメモリがアクセスされ、プロセスユニット210内にある種々のソフトウェア構造が実行される。本発明の実施形態では、システム200内にプログラムされた所定のセキュリティエントリに基づき、1つ以上のソフトウェア構造によって起動されるI/O空間アクセスを限定する。
図3に、本発明に係るプロセスユニット210の一実施形態を簡略したブロック図を示す。一実施形態におけるプロセスユニット210は、プロセッサ310、I/Oアクセスインターフェース320、I/O空間340、及びソフトウェアオブジェクト又はソフトウェア構造のようなプログラム可能なオブジェクト350を含む。このプロセッサ310は、複数プロセッサ(図示されていない)を有するマイクロプロセッサである。
一実施形態において、I/O空間340は、モデム、ディスクドライブ、ハードシスクドライブ、CD−ROMドライブ、DVDドライブ、PCMCIAカード、及び種々の入出力周辺デバイスのようなI/Oデバイス360に対して“ゲートウェイ”を用意する。他の実施形態においては、I/O空間340は、I/Oデバイス360内に一体化されている。一実施形態において、I/O空間340は、I/O空間340とアドレス指定と通信に関連するデータを含むメモリユニット347を有する。メモリユニット347は、磁気テープメモリ、フラッシュメモリ、ランダムアクセスメモリ、半導体チップにおけるメモリ等のような物理的メモリを含む、物理的メモリセクションを有する。半導体チップにおけるメモリは、同期ダイナミックランダムアクセスメモリ(SDRAM)、倍率(?)ダイナミックランダムアクセスメモリ(DDRAM)のような種々の形態を用いることができる。
プロセッサ310は、システムI/Oアクセスインターフェース320を介してI/O空間340と通信を行う。一実施形態において、I/Oアクセスインターフェース320は、従来の構造のものであり、所望の入出力データトランザクションを特徴付けるために、I/O空間340に対してI/O空間アドレスとロジック信号を用意する。本発明の一実施形態は、マルチテーブルの、セキュリティベースのアクセスシステムを実行するためにI/Oアクセスインターフェース320を用意する。
プロセッサ310は、一実施形態においてホストバス315に結合される。プロセッサ310は、ホストバス315を介してI/Oアクセスインターフェース320とオブジェクト350との通信を行う。I/Oアクセスインターフェース320は、ホストバス315とI/O空間340に結合される。プロセッサ310は、周辺デバイスとの通信を行うために使用される1次バス325に結合される。一実施形態において、1次バス325は周辺構成要素相互接続(PCI)バス(PCI仕様書、概説2.1参照)である。表示ユニット220を動かすビデオコントローラ(図示されていない)と他のデバイス(例えばPCIデバイス)は、1次バス325に結合される。コンピュータシステム200は、2次PCIバス(図示されていない)又は当業者にとって周知の他のデバイス(図示されていない)のような他のデバイスである。
プロセッサ310は、オブジェクト350からの命令に基づく複数のコンピュータ処理操作を実行する。オブジェクト350は、複数の機能を実施するためにプロセッサ310を促すソフトウェア構造を有する。更に、マイクロソフトワード等の操作システム、ユーザインターフェースソフトウェアシステムのような複数のオブジェクト350のサブセクションはプロセッサ310内に位置し、同時に操作を実行する。本発明の実施形態は、プロセッサ310に関するセキュリティレベルのアクセスと特権を用意する。
オブジェクト350によって用意されるソフトウェアコードの実行に応じて、プロセッサ310は、1つ以上のオブジェクト350の起動によって促されるタスクを実行するために、メモリアクセスを含む、1つ以上のI/Oデバイスアクセスを実行する。プロセッサ310によって実行されるI/Oアクセスは、モデム操作のようなI/Oデバイス360の各機能を制御するためにI/Oデバイスにアクセスする過程を有する。プロセッサ310によって実行されたI/Oアクセスは、記録されたメモリロケーションからデータを入手するために実施コードとメモリアクセスの記録のI/Oデバイス360のメモリロケーションにアクセスする過程を含む。
多くの場合、あるI/Oデバイス360又はI/Oデバイス360の一部は1つ以上の選択されたオブジェクト350によってアクセスが制限される。同様にI/Oデバイス360の特定のメモリロケーションに記録されたある種のデータは、1つ以上の選択されたオブジェクト350によって、アクセスが制限される。本発明の実施形態は、システム200において特定I/Oデバイス360、又はI/Oデバイス360のメモリロケーションにアクセスすることを制限するためにマルチテーブルセキュリティアクセスを用意する。プロセッサ310は、I/Oアクセスインターフェース320を介してI/O空間アクセスを実行する。I/Oアクセスインターフェース320は、複数のI/Oデバイス360に向けたゲートウェイを含むI/O空間340に対するアクセスを用意する。マルチテーブル仮想メモリアクセスプロトコルは、本発明の少なくとも一実施形態によって用意される。
図4を参照すると、本発明に従ったI/Oアクセスインターフェース320の一実施形態のブロック概略図が示される。一実施形態において、I/Oアクセスインターフェース320は、I/Oアクセステーブル410(又はI/O空間アクセステーブル410),第2のI/Oテーブル430,及びI/O空間インターフェース345を含む。一実施形態において、I/O空間インターフェース345は、I/Oデバイス360又はI/Oデバイス360の一部に関連する物理的ロケーションのアドレス指定するために使用可能である“バーチャル”I/O空間アドレスを表す。このバーチャルI/O空間アドレス指定は、仮想メモリテーブルに関連する仮想メモリをアドレス指定する過程として限定される。他の実施形態によると、仮想メモリテーブルは第2のI/Oテーブル430又はI/Oアクセステーブル410内のような、I/O空間インターフェース345の外部に配置される。
本発明の実施形態は、マルチテーブルI/Oとマルチアクセスシステムを用いてI/Oアクセスを実行する過程を用意する。本発明の実施形態によって使用されるマルチテーブルI/Oとマルチアクセスシステムは、I/O空間インターフェース345を介してI/O空間アドレスにアクセスするためにマルチレベルテーブルアドレス指定構造(つまり第2のI/Oテーブル430を用いて)を用いる。I/Oメモリアドレスは、要請された物理的I/Oロケーションを配置するためにプロセッサ310によって使用される。
システム200は、仮想メモリテーブルに関連するバーチャルI/O空間アドレスを限定するために、第2のI/Oテーブル430のような少なくとも1つの他のテーブルと結合するI/Oアクセステーブル410を用いる。I/Oアクセステーブル410第2のI/Oアクセステーブル430は、物理的I/Oアドレスに通じるバーチャルI/O空間アドレスを変換するために用いられる。物理的I/Oアドレスは、I/Oデバイス360の物理的ロケーション又はメモリロケーションを指定する。本発明の実施形態によって用意されたマルチレベルI/Oアクセステーブルシステムは、第2のI/Oテーブル430にバーチャルI/Oアクセステーブル410の全体部分を設定することが可能となる。ある実施例において、第2のI/Oテーブル430は、I/Oアクセステーブル410内にあるバーチャルI/Oアドレスの部分を設定する。第2のI/Oテーブル430は、I/Oアクセステーブルによって生成されるバーチャルI/Oアドレスに基づく物理的I/Oロケーションをさらに設定する微調整デバイスとして使用可能である。
一実施形態において、2次テーブル430内に複数のサブセットテーブルを含む2次テーブル430はメモリユニット347,又はシステム200の主メモリ(図示されていない)に記録される。第2のI/Oテーブル430は、第2のI/Oテーブル430にアクセスしようとする安全でない、未証明のソフトウェア構造又はオブジェクト350を回避するために高水準レベルで記録される。一実施形態において、プロセッサ310は、オブジェクト350によって送信された命令に基づく物理的I/Oデバイスロケーション内のロケーションにアクセスすることを要請する。プロセッサ310によるメモリアクセス要請に応じて、I/Oアクセスインターフェース320は、I/Oアクセステーブル410に第2のI/Oテーブルに更に限定されるバーチャルアドレスを生成することを要請する。バーチャルI/Oアドレスは次にI/O空間インターフェース345内の場所を指定する。プロセッサ310は、I/Oデバイス360内の対応する場所を配置するために使用されるバーチャルI/Oロケーションへのアクセスを次に要請する。
プロセッサ310によって実行されるメモリアクセスを実施する実施形態は、図5A,図5B,に示され、以下の記載に説明される。図5Aを参照すると、データプロセッサ又はコンピュータシステム200におけるセキュリティレベル属性を記録し、取り出すためのI/Oアクセスシステム500の一実施例が、示される。一実施形態において、I/Oアクセスシステム500は、プロセスユニット210内に一体化される。I/Oアクセスシステム500は、I/O空間340にアクセスするためのマルチテーブルセキュリティスキームを用いるデータプロセッサ(図示されていない)において有用である。例えば、I/Oアクセスシステム500は、x86マイクロプロセッサ内に実装されるページングスキームのようなページングスキームを用いてI/O空間340をアドレス指定する場合に、プロセッサ310によって使用され得る。一実施形態において、x86システム内の単一メモリページは、4Kバイトのメモリを有する。更に、I/Oアクセスシステム500は、プロセッサ310においてページレベルにおける適切なセキュリティレベル属性を割り当てる特定のアプリケーションを見つける。
I/Oアクセスシステム500は、x86型マイクロプロセッサ内のページングユニットによって受信されるバーチャル、リニア、又は中間(intermediate)アドレスとは異なり、ページ部分510とオフセット部分520で構成されるI/O空間アドレス553を受信する。一実施形態において、ページ部分510データは、適切なメモリページのアドレス指定を行い、一方、オフセット部分520データは、選択されたページ部分510内に特定のオフセットI/Oロケーションをアドレス指定する。I/Oアクセスシステム500は、物理的アドレス、例えばx86型マイクロプロセッサ内のページングユニット(図示せず)によって生成されるような物理アドレスを受信する。
一般的に拡張されたセキュリティ属性テーブル(extended security attributes tabel:ESAT)と称されるマルチレベル探索テーブル530は、物理的I/Oアドレスのページ部分510を受信する。マルチレベル探索テーブル530は、メモリの各ページ510と関連するセキュリティ属性を記録する。換言すれば、各ページ510は、このページ510と関連する、あるセキュリティ属性を有する。一実施形態において、ページ510に関連するセキュリティ属性は、マルチレベルマルチレベル探索テーブル530内に記録される。例えば、各ページ510に関連するセキュリティ属性として、ルックダウン、セキュリティコンテキストイD、ライトウェイトコールゲート(lightweight call gate)、読み出しイネーブル、書取りイネーブル、実行、外部マスタ書取りイネーブル、外部マスタ読み出しイネーブル、暗号化メモリ、セキュリティイネーブル等が挙げられる。これらの属性の多くは、本開示による利益を享受する当業者にとって周知である。
一実施形態において、マルチレベル検索テーブル530は、システム200のシステムメモリ(図示されていない)内に配置される。他の実施形態において、マルチレベル検索テーブル530は、システム200を使用するマイクロプロセッサを含むプロセッサ310内に結合される。従って、マルチレベル検索テーブル530が操作可能な速度は、少なくとも一部でシステムメモリの速度に依存する。プロセッサ310の速度と比較して、システムメモリの速度は、概してかなり遅い。従って、マルチレベル探索テーブル530を用いたセキュリティ属性を読み出す処理は、システム200の操作全体を遅くする。セキュリティ属性を配置し、読み出すために要請される時間を削減するために、マルチレベル探索テーブル530と並行してキャッシュ540が実装される。キャッシュ540は、プロセッサ310として同一の半導体ダイ(つまり半導体チップにキャッシュ540とプロセッサ310とが結合される)又はプロセッサ310の外部に配置可能である。概して、キャッシュ540の速度は、実質的にマルチレベル探索テーブル530の速度より速い。キャッシュ540は、ページ510の比較的小さなサブセットを含み、これらのセキュリティ属性は、マルチレベル探索テーブル530内に包含される。従って、キャッシュ540に記録されたページ510に関して、セキュリティ属性を取り出す操作が、実質的に向上され得る。
図5Bを参照すると、メモリ内のページ510と関連したセキュリティ属性を記録し、取り出すために使用されるマルチレベル探索テーブル530の一実施形態が示される。マルチレベル探索テーブル530は、一般的にESATディレクトリと称される第1テーブル550と、一般的にESATと称される第2テーブル552とを含む。概して、第1テーブル550には、各ページ510のセキュリティ属性が記録される、複数ESAT552の開始アドレスのディレクトリを含む。以下に記載される一実施形態において、単一ESATディレクトリ550は、I/Oデバイス360内のアドレス及び/若しくはメモリの全体の範囲をマップするために用いられる。
最上位オーダーの命令ビットを含むスペースアドレス553の第1部分は、一般的にディレクトリ(DIR)554と称され、第1テーブル550への指針として使用される。I/O空間アドレス553は、アドレス指定されているテーブル550とテーブル552を識別可能なテーブルデータ570を含む部分を有する。I/O空間アドレス553は、更に特定のエントリ560,580につながるテーブル550,552内にオフセット520を含む。第1テーブル550は、ベースアドレス555におけるシステムメモリ内に配置される。I/O空間アドレス553のDIR部分554は、第2テーブル552の1つに適切なアドレスのベースアドレスを指定する、エントリ560を識別するためにベースアドレス555に追加される。一実施形態において、複数の第2テーブル552は、マルチテーブルb探索テーブル530内に配置される。概して、第1テーブル550のエントリ560の各々は、第2テーブル552内のアドレスの1つのスタートアドレスを指定する。すなわち、各エントリ580は、それぞれの別のESAT552を指示する。
一実施形態において、第1テーブル550と第2テーブル552は、物理的メモリの1ページを占有する。それ故、ページングイネーブルを備えたx86型マイクロプロセッサ従来のメモリ管理ユニットは、必要であれば、システムメモリの出入りにおいて、テーブル550,552を交換する能力がある。これは、テーブル550と552がマルチレベル配置であるために、テーブル552の全部が同時にI/O空間340内にあることが望ましい。メモリユニット347にカレントに配置されていないテーブル552の1つが第1テーブル550のエントリ560によって要請された場合、x86マイクロプロセッサの従来のメモリ管理ユニット(図示されていない)は、ハードディスクドライブのような主メモリからページ510を読み取り、アクセスされるシステムメモリ内に要請されたページ510を記録する。テーブル550,552をこのように1ページサイズとしたことで、マルチレベル探索テーブル530を記録するために要するシステムメモリの量を削減し、テーブル550,552を用いてI/O空間340にアクセスするために要するメモリ交換の量を削減する。
一実施形態において、各ページのサイズは4Kバイトであり、システムメモリ総量は、「16」Mバイトである。それ故、ほぼ4000のESATテーブル552がページ510内に存在する。一実施形態において、4000のESATテーブル552の各々は、4000セットのセキュリティ属性を含む。更に、ESATディレクトリ550は、各4000ESATテーブル552の開始アドレスを含む。第1テーブル550のエントリ560は、適切な第2テーブル552のベースアドレスを指示する。適切な第2テーブル552の所望のエントリ580は、I/O空間アドレス553の第2部分552(テーブル部分)をエントリ560内に含まれたベースアドレス555に追加することによって識別される。一実施形態において、エントリ580は、I/O空間340の識別されたページ510に関連する所定のセキュリティ属性を含む。図5Aと図5Bに示されるマルチテーブルスキームは、一実施例であり、本開示によって利益を享受しうる当業者であれば、本発明に従った種々のマルチテーブルスキームを実装可能であろう。
図6を参照すると、本発明の一実施形態に従った方法のフローチャート図が示される。オブジェクト350は、システム200(ブロック610)によって起動される。特定のソフトウェアプログラム(例えば、マイクロソフトワード)のようなオブジェクト350は、マウス240のような入出力デバイスの起動によって開始する。オブジェクト350がシステム200によって起動された場合、プロセッサ310は、オブジェクト350(ブロック620)によって用意されたコードを実行する。システム200は、オブジェクト350(ブロック630)のための所定のセキュリティレベルに基づいたセキュリティレベルを設定する。その後、システム200は、マルチテーブルI/O空間アクセス(ブロック640)を呼び出す。システム200によって実行されたマルチテーブルI/O空間アクセスは、以下に大部分の詳細が記載される。設定されたセキュリティレベル及びシステム200によって実行されるマルチテーブルI/O空間アクセスに基づいて、オブジェクト350の機能が実施される(ブロック650)。オブジェクト350の機能は、記録されたドキュメントを読み取る過程と、ワイヤレスモデムのようなモデムによって起動される通信リンクの実行する過程とを含む。
図7を参照すると、図6のブロック640に記載のマルチテーブルI/O空間アクセスを実行するための一実施形態のフローチャート図が示される。システム200は、第2のテーブル設定機能を実行する(ブロック710)。第2のI/Oテーブル430を設定する過程は、2次テーブル430におけるセキュリティレベルデータを配置し、更新する過程を有する。第2のI/Oテーブル430は、I/Oアクセステーブル410における複数セクションを限定するために使用される。第2のI/Oテーブル430は、I/Oアクセステーブル410からなくなっているテーブルエントリの全部のセクション(例えば、図5Bの560,580)に関連するデータを含む。
一実施形態において、システム200は、プロセッサ310がページ510に基づいてI/O空間340にアクセスするように、I/O空間340をページ510に分ける。一実施形態において、ページ510は、x86プロセッサと互換性がある4Kバイトのメモリセクションであるように限定される。I/Oアクセステーブル410と第2のI/Oテーブル430は、テーブル410,430にインデックスを含める。これらのインデックスは、I/Oデバイス360にアクセスするために用い得る物理的I/O空間アドレス553の計算、及び/又はI/Oデバイス360の物理的メモリのようなI/Oデバイス360の特定部分への配置、のために使用することができる。プロセッサ310によって実行されるテーブル410,430を用いてI/O空間340にアクセスする過程の詳細を以下に記述する。
システム200が第2のI/Oテーブル430を設定すると、システム200は、プロセッサ310(ブロック720)からのI/O空間アクセス要請をチェックする。メモリアクセス要請は、概してオブジェクト350によって促される。若干のオブジェクト350は、モデムを介して通信の起動、特定ドキュメントに属するデータの取り出し等のようなそれぞれのタスクを実行するために広大なI/O空間340及び/又はメモリアクセスを要請する。システム200は、I/O空間アクセス要請が受信されたか否かを判断する(ブロック720)。システムがI/O空間アクセスが受信されていないと判断すると、システム200は、図7においてブロック730からブロック720に戻るとして示されるように、I/O空間アクセス要請のチェックを継続する。
システム200は、I/O空間アクセスの要請がなされたと判断すると、本発明の一実施形態に従ったマルチテーブルアクセスを実行する(ブロック740)。システム200によって実行されたマルチレベルテーブルアクセスのより詳細な記載が以下に示される。システム200は一旦、ブロック740に記載のマルチテーブルアクセスを実行すると、マルチレベルテーブルアクセスに応じた適切なI/O空間アクセスを許可する。つまり、システム200は、プロセッサ310でのメモリリクエストのリクエストを促したオブジェクト350が、実際にI/Oデバイス360及び/又はI/Oデバイス360内の物理的メモリにアクセスすることを許可する。
図8を参照すると、図7のブロック710に示される第2のテーブル430を設定する方法の一実施形態が、表される。システム200は、I/Oデバイス360内のI/O空間及び/又はメモリを複数セグメント(ブロック810)に分ける。一実施形態において、これらのセグメントは、ページ510と称される。一実施形態において、これらのセグメント/ページは、いずれも4Kバイトに分割される。I/O空間340を4Kバイトセグメントに区分することは、本開示による利益を享受し得る当業者にとって周知であるハードウェア処理によって実行可能である。他の実施形態においては、本開示による利益を享受する当業者に周知のソフトウェア技術によってI/O空間340をセグメントに区分することも可能である。
システム200は、第2のテーブル430から何れのセグメントを除外するかを判断し、除外機能(オミット機能)を実行する(ブロック820)。第2のテーブル430から除外されたセグメントは、ページ510であり、デフォルトセキュリティレベルを割り当てることができる。ページ510を含めて、除外されたセグメントは、広範囲レベル(broad-level)又は低いレベル(low-level)のセキュリティレベルに割り当て可能である。従って、システム200は、除外されたセグメントに対して、デフォルトセキュリティレベルを割り当てる(ブロック830)。除外されたセグメントには最も低いレベルには、最も低いレベルが割り当てられる。従って、除外されたセグメントは、プロセッサ310にI/O空間340及び/又はメモリにアクセスすることを促すいずれのソフトウェアオブジェクト350によっても、仮想的にアクセス可能である。
システム200は、次にI/O空間340内の除外されていないセグメント/ページ510に応じたセキュリティレベルを割り当てる(ブロック840)。システム200は、プロセッサ310を介した特定のオブジェクト350によって予想されるアクセスに基づいて、ページ510にセキュリティレベルを割り当てる。システム200は、除外されていないセグメント/ページ510に適切なセキュリティレベルを割り当てる間、プロセッサユニット210におけるハードウェアデバイスと他のメモリロケーションを保護する。
セキュリティレベルが一度、割り当てられると、システム200は、特定のセグメント/ページ510と初期又は仮想I/O空間アドレス553とを関連付ける(ブロック850)。仮想I/O空間アドレス553は、特定のセキュリティレベルに基づいてI/Oデバイス360及び/又はI/Oデバイス360内のメモリを指示する。システム200は、次に仮想のI/O空間アドレス553のI/O空間内のセグメントに対しての関連づけを用いて、マルチレベルの第2のI/Oテーブル430を生成する(ブロック850)。一実施形態において、メモリリソースを残すために、2次I/Oテーブル430内の特定の空間が除外される。上述したように除外されたメモリロケーションは、概して最も低いセキュリティレベルである、初期値セキュリティレベルに割り当てられる。
図9を参照すると、図7のブロック740に示されるマルチテーブルアクセス処理を実行するための一実施形態が示される。I/O空間アクセスを受信後、システム200は、要請されたI/O空間アクセスに応じた2次I/Oテーブル430内のセキュリティレベルを決定する(ブロック910)。システム200は、プロセッサ310のソフトウェアの実行を起動するオブジェクト350のタイプに関するプロセッサ310が指示されたことに応じて、I/O空間アクセスに基づく第2のテーブル430におけるセキュリティレベルを決定する。ソフトウェアオブジェクト350によっては、メモリにおけるある種のセンシティブなI/Oデバイス及び又はメモリ内のデータへのアクセスを許可する、より高レベルのセキュリティアクセスを要請する。例えば、データ通信転送を要請するソフトウェアオブジェクト350は、プロセッサユニット310からのセンシティブなデータにアクセスするために、高セキュリティレベルのクリアランスを要求し得る。反対に、マイクロソフトワード(登録商標)のようなデータプロセッサの機能を実行するソフトウェアオブジェクト350は、タスクを実行するために低レベルのセキュリティクリアランスを要求するであろう。
システム200は、次にI/O空間アクセスリクエストを開始させるソフトウェアオブジェクト350の実行セキュリティレベルと、I/O空間アクセスのターゲットであるページ510のセキュリティレベルと、を検査する(ブロック920)。プロセッサ310は、現在実行しているソフトウェアオブジェクト350のセキュリティレベルを、I/O空間アクセス及び/又はメモリアクセスの目標であるページ510のセキュリティレベルと比較して、両者の一致性、即ち両者が一致するか否か(即ち、要請されたI/O空間340及び/又はメモリアクセスを許可するか否か)を判断する。これにより、ある種のI/Oデバイス360及び/又はI/Oデバイスの物理的メモリ内のセンシティブなデータにアクセスする権限を有さないある種のソフトウェアオブジェクト350は、何らかのI/Oデバイス360及び/又はメモリロケーションにアクセスすることも、またこれらを制御することもできないようになっている。システム200は、次にソフトウェアオブジェクト350によって起動された特定のアクセス要請に適切なセキュリティレベルを関連付ける(ブロック930)。
システム200は、次に第2のI/Oテーブル430アドレスを、I/O空間インターフェース345のロケーションに関連付ける。こおnI/O空間インターフェース345のロケーションは、I/O空間340及び/又はメモリー内のロケーションに対応する(ブロック940)。システム200は、I/O空間340のロケーションを行い、適切なセキュリティレベルを物理的なI/O空間340に関連付ける(ブロック950)。一実施形態において、I/O空間アクセスインターフェース320は、I/O空間インターフェース345のロケーションの設定を行い、また、I/O空間インターフェース345をI/O空間340に関連付ける。
図10を参照すると、図9のブロック910に示されるようにプロセッサ310のメモリアクセス要請に応じて第2のテーブル430におけるセキュリティレベルを決定する過程の一実施形態が表される。システム200は、I/Oアクセステーブル410からのI/O空間アクセスリクエストに応答するI/O空間アドレス553を決定する(ブロック1010)。システム200は、次に物理的I/O空間アドレス553に基づいて(例えば、アドレスを2次I/Oテーブル430へのインデックスとして使用して)、ソフトウェアオブジェクト350に応答するプロセッサ310によって実行されるセグメント/ページ510のロケーションを設定する(ブロック1020)。システム200は、ソフトウェアオブジェクト350に基づくコードを実施すると、プロセッサ310が実行されるページ510のセキュリティレベルを決定し、このセキュリティレベルから現在のセキュリティレベルを決定することができる。従って、システム200は、セキュリティレベルを設定するためにセグメント/ページ510を効果的に使用する(ブロック1030)。システム200は、次に適切なI/O空間アクセスを実行するために、設定されたセキュリティレベルを送信する(ブロック1040)。図10に示されるステップを完了することで、実質的に、図9のブロック910に示される2次I/Oテーブル430におけるセキュリティレベルを決定するステップも完了される。
図11を参照すると、図7のブロック750に記載の適切なI/O空間アクセスを実行するためのステップの一実施形態が表される。システム200は、特定のメモリアクセス要請に応じるセキュリティレベルをチェックする(ブロック1110)。セキュリティレベルは、プロセッサ310によって実施される特定のソフトウェアオブジェクト350に基づく特定のI/Oと関連付けることが可能である。システム200は、次に、セキュリティレベルが、I/OリソースI/Oメモリ(例えば、I/Oデバイス360及び/又はI/Oデバイス360のメモリの一部)にアクセス可能となるに十分であるかを判断する(ブロック1120)。システム200は、セキュリティレベルクリアランスが、プロセッサ310によって要請されたI/O空間アクセスを許可しかつ特定のI/Oデバイス360及び/又はI/Oデバイス360内のメモリロケーションにアクセス可能となるに適切なものであるか否か(セキュリティレベルがこれらの条件を満たしているか)をチェックする。
システム200が、プロセッサ310による特定のI/O空間アクセス要求に基づいたI/O−リソース/I/O−メモリメモリアクセスを許可するに十分にセキュリティレベルが高くないと判断した場合、システム200は、要求されたI/O−リソース/I/O−メモリメモリアクセスを拒否する。システム200が、セキュリティレベルがI/O−リソース/I/O−メモリメモリアクセスを許可するに十分なまでに高いと判定した場合、システム200は、プロセッサ310又はソフトウェアオブジェクト350による、特定のI/Oデバイス360及び/又は物理メモリ345内のI/Oデバイス360内のメモリロケーションへのアクセスを許可する(ブロック1130)。図11におけるステップが完了することは、実質的に、図7のブロック750に示されるように適切なメモリアクセスのプロセスが完了することを意味する。本発明が教唆する原理は、その他のタイプの自動化フレームワークに実装することも可能である。
本願の開示による利益を享受し得る当業者であれば、上述の例とは異なるものの明らかに等価な範疇で本発明の修正及び実行が可能である。更に、クレームの記載を除き、ここに示される構成または設計は、本発明を限定することを意図したものではない。従って、上述の特定の実施形態は、変形又は修正が可能であり、これらは本発明の趣旨及び範囲内のものに過ぎない。従って、本発明は、添付したクレームにより保護されるべきである。
コンピュータシステムにおけるセキュアなアクセスのための複数の権限レベルの説明図。 本発明の一実施形態に適用可能なコンピュータシステムの説明図。 本発明の一実施形態に係る、図2に示される処理ユニットのより詳細な説明図。 本発明の一実施形態に係る、図3に示されるI/Oアクセスインターフェースのより詳細な説明図。 図1〜4に示されるプロセッサで実行されるI/O−空間/I/O−メモリアクセスの機能ブロック図。 図1〜4に示されるプロセッサで実行されるI/O−空間/I/O−メモリアクセスの機能ブロック図。 本発明の一実施形態に係るセキュリティスキームを用いたI/O−空間/I/O−メモリアクセスの実行方法を示すフローチャート。 本発明の一実施形態に係る、図6に示されるI/O−空間/I/O−メモリアクセス方法を示すフローチャート。 本発明の一実施形態に係る、図7に示される第2のI/Oテーブルのセットアップ方法を示すフローチャート。 本発明の一実施形態に係る、図7に示されるマルチテーブルアクセスを実行する方法を示すフローチャート。 本発明の一実施形態に係る、図9に示される、第2のI/Oテーブルにおけるセキュリティレベルの決定方法を示すフローチャート。 本発明の一実施形態に係る、図7に示される、マルチレベルテーブルアクセスに応答しての適切なI/O−空間/I/O−メモリアクセスを容易化する方法を示すフローチャート。

Claims (10)

  1. ソフトウェアオブジェクト(350)を実行し、
    前記ソフトウェアオブジェクト(350)にセキュリティレベルを設定し、
    前記セキュリティレベルの少なくとも一つを用いてマルチテーブル入出力(I/O)空間アクセスを実行し、
    前記オブジェクト(350)の前記機能を実行する、方法。
  2. 前記ソフトウェアオブジェクト(350)のセキュリティレベルの設定では、メモリ(347)の少なくとも一部のI/O空間アクセス空間に関連するセキュリティレベルの割当がなされる、請求項1記載の方法。
  3. 前記セキュリティレベルの少なくとも一つを用いたマルチテーブルI/O空間アクセスの実行では、
    第2のI/Oテーブル(430)を設定し、
    前記ソフトウェアオブジェクト(350)の実行に基づいてI/O空間アクセスリクエストを受信し、
    前記第2のI/Oテーブル(430)及び少なくとも一つのバーチャルメモリーテーブルを用いて、前記I/O空間アクセスリクエストに基づいてマルチレベルテーブルアクセスを実行し、
    前記マルチレベルテーブルアクセスに基づいてI/Oデバイス(360)の少なくとも一部にアクセスする、請求項1記載の方法。
  4. 第2のI/Oテーブル(430)の設定では、
    I/O空間(340)を複数のセグメントに分割し、
    前記複数のセグメントのうち前記第2のI/Oテーブル(430)からオミットすべきセグメントを少なくとも一つ、オミットされないセグメントを少なくとも一つ、それぞれ決定し、
    前記オミットされたセグメントに対してデフォルトセキュリティレベルを割り当て、
    前記オミットされなかったセグメントに対してはセキュリティレベルを割り当て、
    少なくとも一つの割り当てられたセグメントをI/O空間(340)ロケーションを関連付ける、請求項3記載の方法。
  5. 善意I/O空間アクセスリクエストに基づいたマルチレベルテーブルアクセスの実行では、
    前記第2のI/Oテーブル(430)内のセグメントに対応する少なくとも一つのセキュリティレベルを決定し、
    前記オブジェクトの実行に応答して、アクセスされるセグメントに関連付けられたセキュリティレベルと、実行セキュリティレベルと、の一致性を照合し、
    アクセスされた前記セグメントに関連付けられた前記セキュリティレベルと前記実行セキュリティレベルとの一致性に応じて、前記第2のI/Oテーブル(430)に基づいてI/O空間アドレスを決定し、
    前記I/O空間アドレスに対応するI/Oデバイス(360)のロケーションを決定する、請求項3記載の方法。
  6. 前記第2のI/Oテーブル(430)内のセグメントに対応する少なくとも一つのセキュリティレベルの決定では、
    前記第2のI/Oテーブル(430)から物理I/Oデバイスアドレスを決定し、
    前記物理I/Oデバイスアドレスに基づいて実行されるセグメントを決定し、
    前記実行されるセグメントの決定に基づいて現在のセキュリティレベルを定義する、請求項5記載の方法。
  7. 所望のセキュリティを用いてI/Oデバイスアクセスを実行する装置であって、
    バス(315)に結合されたプロセッサ(310)と、
    前記プロセッサ(310)に少なくとも一つのソフトウェアオブジェクトを結合させる手段と、
    入出力(I/O)デバイスと、
    前記バス(315)及びメモリユニット(347)に結合さたI/Oアクセスインターフェース(320)と、を有し、当該I/Oアクセスインターフェースは、前記プロセッサによる前記ソフトウェアオブジェクト(350)の実行に応答して、前記プロセッサ(310)に、前記メモリユニット(347)の少なくとも一部のマルチテーブルI/O空間アクセスを前記少なくとも一つのセキュリティレベルに基づいて与える、装置。
  8. 前記I/O空間アクセスインターフェースは、第2のI/Oテーブル(430)に結合されたI/O空間アクセステーブル(410)を有し、当該I/Oアクセスインターフェース(320)により、セキュリティレベルに基づいて前記I/Oデバイス(360)の少なくとも一部にアクセスするための仮想メモリアドレッシングスキームが提供される、請求項7記載の装置。
  9. コンピュータに実行されたときに所定の方法を実行するインストラクションを含んでエンコードされたコンピュータ可読プログラム記録デバイスであって、前記方法では、
    ソフトウェアオブジェクト(350)を実行し、
    前記ソフトウェアオブジェクト(350)にセキュリティレベルを設定し、
    第2の入出力(I/O)テーブル(430)を設定し、
    前記ソフトウェアオブジェクト(350)の実行に基づいてI/O空間アクセスリクエストを受信し、
    前記第2のI/Oテーブル(430)内のセグメントに対応するセキュリティレベルを少なくとも一つ決定し、
    前記ソフトウェアオブジェクトの実行に応答して、アクセスされるセグメントに関連付けられたセキュリティレベルと、実行セキュリティレベルと、の一致性を照合し、
    アクセスされた前記セグメントに関連付けられた前記セキュリティレベルと前記実行セキュリティレベルとの一致性に応じて、前記第2のI/Oテーブル(430)に基づいてI/O空間アドレスを決定し、
    前記I/O空間アドレスに対応する物理I/Oデバイス(360)のロケーション(物理メモリロケーション)を決定する、コンピュータ可読プログラム記録デバイス。
  10. コンピュータに実行されたときに請求項9に記載の方法を実行するインストラクションを含んでエンコードされたコンピュータ可読プログラム記録デバイスであって、前記第2のI/Oテーブル(430)内のセグメントに対応するセキュリティレベルの少なくとも一つの決定では、
    前記I/O空間テーブルから物理I/Oデバイス(360)アドレスを決定し、
    前記物理I/Oデバイス(360)アドレスに基づいて実行されるセグメントを決定し、
    前記実行されるセグメントの決定に基づいて現在のセキュリティレベルを設定する、コンピュータ可読プログラム記録デバイス。
JP2003560724A 2002-01-15 2002-09-12 所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置 Expired - Lifetime JP4478458B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/047,188 US7739498B2 (en) 2002-01-15 2002-01-15 Method and apparatus for multi-table accessing of input/output devices using target security
PCT/US2002/029042 WO2003060696A2 (en) 2002-01-15 2002-09-12 Method and apparatus for multi-table accessing of input/output devices using target security

Publications (2)

Publication Number Publication Date
JP2005515536A true JP2005515536A (ja) 2005-05-26
JP4478458B2 JP4478458B2 (ja) 2010-06-09

Family

ID=21947532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003560724A Expired - Lifetime JP4478458B2 (ja) 2002-01-15 2002-09-12 所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置

Country Status (8)

Country Link
US (1) US7739498B2 (ja)
EP (1) EP1468363A2 (ja)
JP (1) JP4478458B2 (ja)
KR (1) KR100941743B1 (ja)
CN (1) CN100367246C (ja)
AU (1) AU2002324986A1 (ja)
TW (1) TWI286686B (ja)
WO (1) WO2003060696A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785790B1 (en) * 2002-05-29 2004-08-31 Advanced Micro Devices, Inc. Method and apparatus for storing and retrieving security attributes
WO2005088462A1 (en) * 2004-03-05 2005-09-22 Finisar Corporation Hierarchical and byte-configurable memory in an optical transceiver
US20080029940A1 (en) * 2004-06-04 2008-02-07 Res Kammer Pneumatic Cushion
US7571490B2 (en) * 2004-11-01 2009-08-04 Oracle International Corporation Method and apparatus for protecting data from unauthorized modification
CA2551045C (en) * 2005-06-30 2008-04-22 Hitachi, Ltd. Input-output control apparatus, input-output control method, process control apparatus and process control method
WO2011119137A1 (en) 2010-03-22 2011-09-29 Lrdc Systems, Llc A method of identifying and protecting the integrity of a set of source data
US10356127B2 (en) * 2016-06-06 2019-07-16 NeuVector, Inc. Methods and systems for applying security policies in a virtualization environment
US10691592B2 (en) * 2018-10-30 2020-06-23 Micron Technology, Inc. Error-checking in namespaces on storage devices using a namespace table and metadata
CN111382476B (zh) * 2020-03-20 2021-06-04 青岛理工大学 一种转体桥球铰支撑状态下偏转风险评估方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4173783A (en) * 1975-06-30 1979-11-06 Honeywell Information Systems, Inc. Method of accessing paged memory by an input-output unit
US4104721A (en) 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US5255384A (en) 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US5293597A (en) * 1987-03-09 1994-03-08 At&T Bell Laboratories Concurrent context memory management unit
JPH01175057A (ja) * 1987-12-28 1989-07-11 Toshiba Corp セキュリティの動的管理方法
US4926476A (en) * 1989-02-03 1990-05-15 Motorola, Inc. Method and apparatus for secure execution of untrusted software
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5822749A (en) * 1994-07-12 1998-10-13 Sybase, Inc. Database system with methods for improving query performance with cache optimization strategies
US5802590A (en) 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
US6578090B1 (en) * 1998-06-08 2003-06-10 Ricoh Company, Ltd. System and method for interfacing two modules supporting various applications
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
GB2356469B (en) 1999-11-17 2001-12-12 Motorola Ltd Portable data carrier memory management system and method
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
JP4522548B2 (ja) * 2000-03-10 2010-08-11 富士通フロンテック株式会社 アクセス監視装置及びアクセス監視方法
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
US6694457B2 (en) 2001-03-06 2004-02-17 Hewlett-Packard Development Company, L.P. System and method for monitoring execution of privileged instructions
US6823433B1 (en) 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US7311144B2 (en) * 2004-10-12 2007-12-25 Greg Allen Conrad Apparatus and method for increasing well production using surfactant injection

Also Published As

Publication number Publication date
US7739498B2 (en) 2010-06-15
AU2002324986A1 (en) 2003-07-30
JP4478458B2 (ja) 2010-06-09
KR100941743B1 (ko) 2010-02-11
US20040054895A1 (en) 2004-03-18
AU2002324986A8 (en) 2003-07-30
TW200301858A (en) 2003-07-16
CN100367246C (zh) 2008-02-06
WO2003060696A3 (en) 2004-04-08
TWI286686B (en) 2007-09-11
CN1615473A (zh) 2005-05-11
KR20040075077A (ko) 2004-08-26
EP1468363A2 (en) 2004-10-20
WO2003060696A2 (en) 2003-07-24

Similar Documents

Publication Publication Date Title
JP5068108B2 (ja) メモリ・アドレスの変換およびピン止めのための方法およびシステム
US7809923B2 (en) Direct memory access (DMA) address translation in an input/output memory management unit (IOMMU)
CN109002706B (zh) 一种基于用户级页表的进程内数据隔离保护方法和系统
KR100931706B1 (ko) 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치
US7631160B2 (en) Method and apparatus for securing portions of memory
US7774561B2 (en) Key-controlled object-based memory protection
US7975117B2 (en) Enforcing isolation among plural operating systems
KR102511451B1 (ko) 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템
US8583888B2 (en) Method to qualify access to a block storage device via augmentation of the device'S controller and firmware flow
JP4399270B2 (ja) データプロセッサのセキュリティを改善させるための方法ならびに装置
US7454787B2 (en) Secure direct memory access through system controllers and similar hardware devices
JP4478458B2 (ja) 所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置
US20220308756A1 (en) Performing Memory Accesses for Input-Output Devices using Encryption Keys Associated with Owners of Pages of Memory
WO2019177721A1 (en) Memory objects
JP3072706B2 (ja) データ保護装置及びコンピュータ・システム
US11307999B2 (en) Data cache segregation for spectre mitigation
US7698522B1 (en) Method and apparatus for linear address based page level security scheme to determine current security context
CN112580023B (zh) 影子栈管理方法及装置、介质、设备
CN116561824A (zh) 在机密计算架构中管理内存的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090525

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090601

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090624

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090701

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090724

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090821

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100208

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100309

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100315

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20100818