JP2009516310A - メモリページをプログラムに対応付けるページカラーリング - Google Patents

メモリページをプログラムに対応付けるページカラーリング Download PDF

Info

Publication number
JP2009516310A
JP2009516310A JP2008541443A JP2008541443A JP2009516310A JP 2009516310 A JP2009516310 A JP 2009516310A JP 2008541443 A JP2008541443 A JP 2008541443A JP 2008541443 A JP2008541443 A JP 2008541443A JP 2009516310 A JP2009516310 A JP 2009516310A
Authority
JP
Japan
Prior art keywords
page
color
access
instruction
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
JP2008541443A
Other languages
English (en)
Other versions
JP4759059B2 (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2009516310A publication Critical patent/JP2009516310A/ja
Application granted granted Critical
Publication of JP4759059B2 publication Critical patent/JP4759059B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】メモリページをプログラムに対応付けるページカラーリングを提供する。
【解決手段】メモリページをプログラムに対応付けるページカラーリング装置と方法を開示する。一実施形態においては、装置はページングユニットと、メモリにアクセスするインターフェースとを含む。ページングユニットは、変換ロジックと比較ロジックとを含む。変換ロジックは第一のアドレスを第二のアドレスに変換する。第一のアドレスはメモリの第一のページに格納された命令が供給する。変換はデータ構造におけるエントリーに基づいており、エントリには第二のアドレスを含むメモリの第二のページのベースアドレスが含められている。比較ロジックは第一のページのカラーを第二のページのカラーに比較する。第一のページのカラーは、第一のページの、第一の命令を含む第一のプログラムとの対応付けを示す。データ構造のエントリーには、第二のページの、第一のプログラム又は第二のプログラムとの対応付けを示す第二のページのカラーも含められている。
【選択図】図1

Description

本開示は、情報処理分野に関連し、より具体的にはメモリの管理と保護の分野に関する。
メモリに関する攻撃は情報処理システムのセキュリティへの重大な脅威である。このような攻撃のいくつかは、たとえばウイルスもしくはワーム等の悪質なコードあるいは悪質なデータをコンピュータシステムのメモリに記憶させ、合法のプログラムを動作させつつバグ及び/又はバッファあふれを悪用して悪質なコードへと制御を伝達したり悪質なデータを活用したりする。この種の攻撃を防止する一方法においては、実行不可能を示すデータを格納するページを指定するべく用いられる「エグゼキュート・ディスエーブル」ビットをページテーブルエントリーに含め、悪質なコードをデータとして格納できないようにし、ひいては当該物理、線形、あるいは論理メモリ空間において悪質コードを実行できないようにする。しかし、メモリに関する攻撃技術はますます洗練され、これら攻撃を防止する更なる方法が望まれる。これには、既存のコードあるいは破損したメモリを実行するバッファあふれ、悪質なカーネルあるいはアプリケーションコンポーネント、ルートキット、スパイウェア、トロイの木馬、及びコンピュータウイルスからの保護が含まれる。また、たとえばポインターを暴走させるバグコード、線形アドレス空間内において他のプログラムあるいはサブプログラムのデータを破損させるアプリケーションプログラミングインターフェースの悪用からの保護が含まれる。
本発明を、添付の図面において限定としてでなく例として示す。
図1は、メモリページをプログラムに対応付けるページカラーリングロジックを含むプロセッサとしての本発明の実施形態を示す。
図2は、メモリページをプログラムに対応付けるページカラーリングの初期化方法としての本発明の実施形態を示す。
図3は、メモリページをプログラムに対応付けるページカラーリング方法としての本発明の実施形態を示す。
以下の記載においては、メモリページをプログラムとその関連データに対応付けるページカラーリング技術の実施形態を記載する。以下の記載においては、本発明のより徹底した理解を可能にするべくプロセッサとシステムの構成等、数多くの特定的詳細について述べる。しかし、これら特定的詳細を伴わなくても本発明は実施され得ることは当業者には理解されよう。さらに、不必要に本発明を曖昧としないよう、いくつかの周知の構造、回路等は詳細に示さなかった。
本発明の実施形態においては、特定のページを特定のプログラムとデータに対応づけるべく用いられる属性をメモリページに割り当てる。属性の割り当ては、オペレーティングシステムのマッパーによるオペレーティングシステムの方針に基づいた方法、あるいは基本的入出力システム、仮想マシンモニター、あるいは本発明を具現化するシステム上のその他任意の管理体による方法等、いかなる方法により行ってもよい。
属性をページの「カラー」と呼称し、あるプログラムから別のプログラムのメモリ空間へのアクセス、あるいは単一プログラムにおけるある部分から同一プログラムにおけるその他の部分のメモリ空間へのアクセスをさえ十分に防止できる細かさの粒度においてメモリを論理分割するべく当該属性を用いてよい。ページベースの既存のメモリ管理データ構造、仮想化技術において用いられるページベースのメモリ管理を入れ子式としたデータ構造、及び既存のデータ構造に相関する並列アクセスデータ構造内において本発明の実施形態に係る技術を実施してよく、それにより、本発明の実施形態の利用においてカラー情報を取得するための追加的なメモリアクセスにより性能が劣化しないようにしてよい。その他の技術においては、対応するページテーブルエントリーをメモリからフェッチするときに、メモリから取得され対応する変換索引バッファ(「TLB」)ハードウェアへとロードされる、ページカラー属性を含んだ並列ページテーブル構造を含めてよい。
図1は、プロセッサとして具現化する本発明、つまり、メモリページをプログラムと対応付けるページカラーリングロジックを含むプロセッサ110を示す。プロセッサ110をシステム100において示し、システム100はさらにメモリ120を含む。
プロセッサ110は、様々な異なる種類のプロセッサのいずれであってもよく、たとえばペンティアム(登録商標)プロセッサファミリー、アイテニアム(登録商標)プロセッサファミリー、あるいはインテル社のその他のプロセッサファミリーに属するプロセッサ、あるいは別の会社のその他いかなる汎用もしくはその他のプロセッサであってよい。図1においてはプロセッサとして具現化した本発明を示すが、代わりに本発明をその他いかなる種類のデータ処理コンポーネントあるいはデータ処理装置として具現化してもよい。図1の実施形態においては、プロセッサ110はインターフェース112とページングユニット130を含む。
インターフェース112は、ポイントツーポイントあるいはその他の接続形態等、任意の種類のバス上で直接的に、あるいはチップセットもしくはメモリコントローラ等、その他任意のコンポーネントを介して、プロセッサ110をメモリ120と通信可能にするバスユニット、あるいはその他任意のユニット、ポート、あるいはインターフェースであってよい。
ページングユニット130は、変換ロジック132、比較ロジック134、及びアクセスロジック136を含む。変換ロジックは以下に記載するアドレス変換を行う。比較ロジックは以下に記載する通りにページカラー比較を行う。アクセスロジック136は以下に記載する通りにページカラーに基づき特定のページへのアクセスを阻止あるいは許可する。
変換ロジック132は、ページベースの周知の任意のメモリ管理技術に従って、たとえば論理あるいは線形アドレスの物理アドレスへの変換等のアドレス変換を行う。アドレス変換を行うにあたり、変換ロジック132はプロセッサ110、メモリ120、システム100における図1に不図示のその他任意の格納位置において、及び/又はこれらコンポーネント・位置において組み合わせて格納される一以上のデータ構造を参照する。データ構造は、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠し、本発明の実施形態に従って改変したページディレクトリ及びページテーブル、及び/又はTLBに格納されたテーブルを含んでよい。
一実施形態においては、変換ロジック132は、実行すべき命令により供給される線形アドレス、及び/又はプロセッサ110がフェッチすべきデータの線形アドレスを受信する。変換ロジック132は、線形アドレスの一部を、ページテーブルを含む階層構造テーブルへの指標として用いる。ページテーブルはエントリーを含み、各エントリーはメモリ120のページのベースアドレス用の領域を、たとえばペンティアム(登録商標)プロセッサファミリーの拡張メモリ64技術に準拠してページテーブルエントリーにおけるビット39乃至12において含む。本発明の範囲においては任意のページサイズ(たとえば、4キロバイト)を用いてよい。したがって、プログラムがメモリ120にアクセスするべく用いる線形アドレスは、プロセッサ110がメモリ120にアクセスするべく用いる物理アドレスへと変換してよい。
比較ロジック134は、変換ロジック132が求めたページのページカラーを、フェッチすべき命令もしくはデータの線形アドレスを供給した命令を含むページのページカラーと比較する。周知の任意の方法に従って比較を行ってよい。ページカラーは、変換ロジック132がアドレス変換を行うべく用いたデータ構造におけるエントリーに格納された値により表されるページ属性である。たとえば、ページテーブルエントリーにおける8ビットの領域により、たとえばペンティアム(登録商標)プロセッサファミリーの拡張メモリ64技術に準拠したページテーブルエントリーにおけるビット47乃至40によりページカラーを表してよい。したがって、グラフィックディスプレイにおける画素のカラー値の定義と同様に、256個のエントリーを有するカラーテーブルへの指標を与えるべく8ビットの領域を用いることにより、ページのカラー値は256個の値のいずれか一つとしてよい。
アクセスロジック136は、比較ロジック136の結果を用い、変換ロジック134が求めた物理ページにアクセスするための線形アドレスを用いる命令を阻止あるいは許可する。一実施形態においては、アクセスロジック136は、命令を含むページのページテーブルエントリーに対応付けられたページカラーが、変換ロジック134が求めたページのページテーブルエントリーに対応付けられたページカラーと一致するときアクセスを許可し、ページカラーが不一致であるときアクセスを阻止してよい。アクセスロジック136は、ページフォールト例外(page fault exception)をトリガすることによりアクセスを阻止してよい。
したがって、オペレーティングシステムあるいはスーパーバイザープログラムは、メモリにロードしたあるプログラムの全ページに所定のページカラーを割り当て、メモリにロードした別のプログラムの全ページにそれとは異なるページカラーを割り当てる等して、あるプログラムが別のプログラムと同一の線形あるいは論理アドレス空間に存在したとしても各プログラムが他方のプログラムに対応付けられたページにアクセスしないようにしてよい。また、単一プログラムにおいて異なる部分にそれぞれ異なるページカラーを割り当てる等して、重要なプログラムコンポーネントあるいは重要なデータ構造がアクセスされるのを、特別な関数呼び出しを用いた場合、あるいはプログラムにおける特定のエントリーポイントを通過した場合に限ってよい。
アクセスロジック136は、更なる基準に基づいてアクセスの許可を判定してよい。たとえば、あるカラー値(たとえば、0x00)により「いずれのカラー」も表さず、いずれのカラーによってもマークされないページへはその他のいかなるページからもアクセスしてよいとしてよい。また、ページテーブルエントリーにおいて、たとえばペンティアム(登録商標)プロセッサファミリーの拡張メモリ64技術に準拠したページテーブルエントリーのビット48等の領域もしくはビットを含め、それによりページが「隠れている」かを定義してよい。当該ビットを0に設定することにより、隠れたページのカラー以外のカラーに対応する任意のページが、カラー比較の結果と無関係に参照先である隠れたページから読み出すのを許可してよく、また1に設定することにより、カラー比較が不一致であったことに基づいてアクセスロジック136がアクセスの阻止を行えるように、あるいは反対に、アクセスによる読み出しを行えるようにしてよい。
アクセスロジック136は、命令制御フローに基づいてアクセスを許可するかを判定してもよい。たとえば、命令はプログラムへのエントリーが許可されたポイントを表すべく用いてよい。ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したある実施形態においては、この目的において新たな命令(たとえば、「行き先アドレスベクトル(Directed Address Vector)」、つまり「DAV」)を加えてよい。あるカラーのページからジャンプ、呼び出し、もしくはその他の制御フロー命令が別のカラーのページにおけるDAV命令に向けて実行されたとき、このアクセスを許可する。しかし、このジャンプもしくは呼び出しがDAV命令でなく別のカラーのページへと向けられた場合、アクセスを許可しない。したがって、DAV命令を用いることにより、あるプログラムへは、ソフトウェア作成者が定義、制御し、安全なインターフェースとなることが期待されるポイントからだけエントリーできるようにしてよい。あるプログラムにおける、ランダムな部分、あるいはジャンプもしくは呼び出しが期待されていない部分、に対する別のカラーのプログラムからのジャンプもしくは呼び出しに対しては、例外であるとのフラグをプロセッサが付してよい。また、DAV命令に変数パラメータを用いることにより、当該DAVにより識別されるエントリー・ポイントが実装されているプログラムにアクセスを試みているのが期待するカラーのプログラムであるかを判定するカラー比較を行ってもよい。最後に、DAV命令の実行を実行可能な(たとえば、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したXDビットを用いることによって実行をディスエーブル(eXecute Disabled)されていない)ページに限定することにより、見かけ上DAV命令に見えるスプリアスなビットシーケンスを有するデータページをプロセッサが実行しないようにしてよい。
別の実施形態においては、ページを「トランジション」ページ指定してよい。トランジションページからの命令のフェッチは可能であるが、しかし、特定の周期的オフセットにおいてだけ可能であるとしてよい。「トランジションページビット」を定義し、それを任意のカラーのページに対して当該ページのテーブルエントリーにおいて対応付けてよい。このトランジションビットにより、対応付けられたカラーのページに向けての異なるカラーのページからのトランジションは、特定のワード配置に向けて行ってよいことがプロセッサに示される。したがって、いずれのカラーのページであっても、同一カラーのその他のページへのゲートとして機能するトランジションページとなることができる。たとえば、制御フローにおいて、トランジションページへの他のカラーのページからの移動は、トランジションページにおける特定ポイント、たとえば、64バイトおきのポイントに対してだけ行ってよい。制御フローにおいてトランジションページへの移動が64バイト整列で行われない場合にページフォールトをトリガしてよく、ジャンプもしくは呼び出しがトランジションページの64バイト整列された命令へ向けられていればジャンプもしくは呼び出しを実行してよい。トランジションページのエントリー・ポイントの実際の整列状態は、整列要件を特定する保護されたプロセッサレジスタにより構成してよい。トランジションページへページフォールトをトリガせずにエントリーさせてよいのは特定のポイントに対してだけであることをプロセッサにより保証するので、これらのエントリー・ポイント間にコードを挿入して以下に記載する前のページカラーレジスタを比較対象とした適切なカラーテストを行い、条件に適合するとアクセス制御テストにより証明された場合に異なるカラーのページへとトランジションしてよい。同様に、並列に保護したスタックにおいては、あるエントリー・ポイントの後のコードに、スタックからの復帰アドレス等により状態を退避し、呼び出し先ページからの復帰をトランジションページを介してリダイレクトしてよい。この方法により、異なるカラーの関数からのレガシーコール(legacy call)と復帰をトランジションページにより橋渡して、正しい制御フローを認証しつつページフォールトを回避してよい。
特別なカラーリング技術を実装するべくアクセスロジック136を用いてもよい。一実施形態においては、別のカラーのプログラムの任意の部分へのジャンプもしくは呼び出しを許可されたオペレーティングシステムコンポーネントに対して特別なページカラー(たとえば、0xFF)を割り当ててよい。アクセスロジック136は、当該カラーのページからのジャンプもしくは呼び出し命令はいつも許可してよい。このカラーをオペレーティングシステムスケジューラと割り込み処理ルーチンに使用させて、これらが中断されたプログラムの実行をページフォールトを生じさせずに中断位置から再開できるようにしてよい。このカラーのページからは、別のカラーのページへの書き込みアクセスあるいは別のカラーの隠れたページへの読み出しアクセスをしないようにしてよい。この特別なぺージカラーのページを実行するにあたり、プロセッサに以下に記載する前のページカラーレジスタの変更をさせず、この特別なページカラーのページに、中断されたプログラムへと復帰する前に前のページカラーレジスタを期待される値へと回復する能力を持たせてよい。
別の実施形態においては、他のカラーのページへの完全な読み出しアクセス・書き込みアクセスを有するスーパーバイザーページに対して特別なカラーを用いてよい。オペレーティングシステムコンポーネントにこれらの特別なカラーを用い、その他のプログラムを検証させ、必要であればその内容を修正させてよい。他のカラーを、限られたプロセッサレジスタ、限られたプロセッサ命令、あるいはアドバンスド・プログラマブル割り込みコントローラ(advanced programmable interrupt controller;「APIC」)に対応したメモリ位置へのアクセスに対応付けてよい。特権的カラーでカラーリングされたプログラムだけが、特権的カラーに対応付けられた限られたプロセッサ機能へとアクセスすることができる。プロセッサにおいて、この特別なカラーを設定するコンフィギュレーションレジスタを、たとえばオペレーティングシステム起動シーケンスの一部として設けてよい。
別の実施形態においては、上記したようにいずれのカラーによってもマークされないページは、他のカラーのページあるいはいずれのカラーによってもマークされない他のページから保護しなくてよい。しかし、カラーを割り当てたページは、いずれのカラーによってもマークされないページからの書き込み、ジャンプ、あるいは呼び出しアクセスが不可能であってよい。
さらに、アクセスロジック136は、ページカラー不一致あるいは違反によりページフォールトが生じたかを報告してもよい。たとえば、ページフォールトエラーコードのビット(たとえば、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したスタックにプッシュ(push)するページフォールトエラーコードのビット5)をページカラー違反ビットに指定して、1に設定することによりページフォールトがカラー不一致によりトリガされたことを示してよい。このビットは、他のフラグの文脈で解釈してよい。たとえば、ページカラー違反が命令フェッチにより生じた場合、エラーコードにおける命令フェッチビットを1に設定してよい。ページカラー違反が読み出しもしくは書き込みにより生じた場合、読み出し/書き込みビットを、読み出しの場合は0に、書き込みの場合は1に設定してよい。さらに、フォールトを生じた線形アドレスを、たとえば、ペンティアム(登録商標)プロセッサファミリーのアーキテクチャに準拠したプロセッサのCR2制御レジスタに退避してよい。
プロセッサ110は、あるプログラムから別のプログラムへの、上記したようなDAV命令を用いたトランジションをサポートする読み出し専用レジスタ140あるいはその他の記憶位置を含んでよい。一実施形態においては、このレジスタは、「前のページカラー(previous page color)」レジスタ、つまり「PPC」レジスタと呼称してよい。アクセスロジック136は、プロセッサ110が現在実行されている命令とは異なるカラーのページから命令のフェッチを開始したとき、ページカラーが不一致であると検出してよい。アクセスロジック136は、上記のDAV命令プロトコルに従ってこのフェッチを許可しページカラーの変更を許可してよいが、前のページカラーをPPCレジスタ140に退避してよい。したがって、新たなページからの命令がPPCレジスタ140に前のページカラーを問い合わせて判断することにより、異なるカラーのどのプログラムが現在実行されているプログラムにおいてDAVにより定義した特定のエントリー・ポイントに対してアクセスすることが許可されているかを判別し、それによりプログラムは自身のサービスへのアクセスを制御してよい。特別なカラーのページによるトランジションはPPCレジスタ140に記憶しなくてよく、したがってオペレーティングシステムスケジューラが発動したトランジションはページカラーのトランジションと記録する必要はなく、むしろ割り込み及び復帰と記録してよい。
図1において、メモリ20は、スタティックあるいはダイナミックランダムアクセスメモリ、半導体系の読み出し専用メモリあるいはフラッシュメモリ、磁気あるいは光ディスクメモリ、プロセッサ120が読み出し可能なその他いかなる種類の媒体、あるいはこれら媒体をどのように組み合わせたものであってもよい。
図2は本発明の方法としての実施形態を示し、この方法200は、ページカラーリングを初期化してメモリページをプログラムに対応付ける方法である。ブロック210において、オペレーティングシステムローダがメモリへとメモリ割り当てルーチンをロードし、メモリにページテーブル構造を作成して全てを第一のカラーとし、メモリ割り当てルーチンは以降にロードされたルーチンとプログラムにそれぞれページカラーを設定しつつ、メモリマネジャーとページテーブルとが、これらその他のルーチン及びプログラムから、たとえこれらがメモリマネジャーと同じ特権レベルで動作していたとしても、保護されるようにする。ブロック220においては、スケジューラをロードして0xFFにカラーリングし、スケジューラからのその他の任意のプログラム、スケジュールスレッド、及びマルチタスクへのジャンプあるいは呼び出しを許可する。さらに、オペレーティングシステムにより、この特別なカラーのページがDAV命令なしでレガシープログラムへのインターフェースをフックするよう構成してレガシープログラムを保護し、レガシープログラムとサブプログラムとの間の制御フローが正しくなるよう保証してよい。これらの追加的ページは、レガシープログラムに対する便益として、PPCレジスタ140を用いることにより必要なエントリー・ポイントアクセス制御を行ってよい。
ブロック230においては、オペレーティングシステムの可変のコンポーネントをメモリにロードし、異なるページカラーをそれぞれに割り当てる。たとえば、ドライバーをディスクからロードし、認証者である製造者の署名によりインテグリティを検査し、メモリにロードしたらそれらにページカラーを割り当ててその他のカーネルコンポーネントから保護する。その後、ドライバーは自身と同じカラーのメモリを割り当てる。
ブロック240においては、アプリケーションプログラムをメモリにロードし、それぞれに異なるページカラーを割り当てる。ページはカラーリングされているので、オペレーティングシステムの不変のアプリケーションプログラミングインターフェースにより、プログラムはそれぞれ署名と認証イメージを与えられたその他のプログラムのカラーを問い合わせることができる。データ構造をその他のカラーのプログラムと共有して共通に読み出し可能としてよいが、但しページが隠れているとのマークを付されていない場合だけである。この方法で、一方向先入れ先出しバッファをデータのライターが単一、リーダーが複数となるよう構成してよい。
あるカラーのページの所有者が、そのページカラーのうち一つを、元のプログラムが当該ページへの書き込みを終了したら別のプログラムのカラーに変更するようオペレーティングシステムに要求することもできる。このように、メモリマネジャー等のオペレーティングシステム不変部分に合図を出すことによりページの所有権を変更してよい。この要求は、所有権が変更される(カラーが変更される)ページが実行不可能とされて(XDビットが設定されて)実行不可能なデータだけを含むようになるとの条件で、オペレーティングシステムに支障なく容認されるようにしてよく、これによりカラー変更の後、別のカラーのプログラムがその内容を実行することができなくなる。
ページには同時に複数のカラーを割り当ててよく、あるいは各ページを異なるカラーを割り当てられた領域へと分割してよい。これは、複数のカラーと、ページ内においてそれらカラーが開始して終了する範囲に対応するオフセットをページテーブルエントリーにおいて特定することを可能にすることにより行ってよい。たとえば、ページテーブルエントリーにおいて、物理ページに対する二つのカラーと、ページの開始点から見て第一のカラーが終了し第二のカラーの開始する部分を特定するオフセットを特定してよい。ソフトウェアはこの特性を利用し、呼び出し元のスタックフレームをあるカラーにカラーリングし、呼び出し先のスタックフレームを別のカラーにカラーリングすることにより呼び出し元のスタック変数を呼び出し先からアクセス不可能として、呼び出し元の呼び出しスタックを呼び出し先から保護してよい。このようにして、呼び出し元と呼び出し先の両方のスタックフレームが単一ページ内に含まれている場合であっても、呼び出し元のスタックフレームは呼び出し先から破損されないようになる。同様に、同一ページに存在する隣接プログラムについて、各ページ当たり複数のカラーをそれぞれ対応する範囲において用いることにより、カラーリングに差異を設けてよい。
図3は本発明の方法としての実施形態を示し、この方法300は、メモリページをプログラムと対応付けるページカラーリング方法である。ブロック310において、ある命令がメモリのページへのアクセスを試みる。ブロック312において、ページをTLBにロードし、ページのカラーとパーミッションを記録する。ブロック320において、ページがカラーリングされているか(たとえば、カラー値が0x00でないか)を判定する。カラーリングされていなければ、ブロック390においてページへのアクセスを許可する。
ブロック320においてページがカラーリングされていれば、ブロック322において当該ページは当該命令を含んだページであるかを判定する。もしそうであれば、ブロック390において、ページへのアクセスを許可する。もしそうでなければ、ブロック324においてアクセスは書き込みであるかを判定する。
ブロック324においてアクセスが書き込みであれば、ブロック350において、当該ページは当該アクセス命令を含むページと同一カラーであるかを判定する。同一でなければ、ブロック352においてページフォールトをトリガしてアクセスを阻止する。同一であれば、ブロック390においてページへのアクセスを許可する。
ブロック324においてアクセスが書き込みでなければ、ブロック330においてページアクセスが命令のフェッチによるものかを判定する。命令フェッチによるものでなければ、ブロック332においてアクセスは読み出しであるかを判定する。アクセスが読み出しであれば、ブロック334においてページの隠しビットが設定されているかを判定する。隠しビットが設定されていなければ、ブロック390においてページへのアクセスを許可する。隠しビットが設定されていれば、ブロック350において当該ページは当該アクセス命令を含むページと同一カラーであるかを判定する。同一でなければ、ブロック352においてページフォールトをトリガすることによりアクセスを阻止する。同一であれば、ブロック390において、ページへのアクセスを許可する。
ブロック330に戻り、ページアクセスが命令フェッチによるものであれば、ブロック340において、フェッチ命令を含むページのカラーを確認して、別のカラーのページに対するジャンプもしくは呼び出しが許可されたものであるか(たとえば、当該カラーが0xFFであるか)を判定する。許可されたものであれば、ブロック390においてページへのアクセスを許可する。許可されたものでなければ、ブロック342においてフェッチ先命令はDAV命令であるか、あるいは当該アクセスがトランジションページにおいて許可されたエントリー・ポイントへのアクセスであるかを判定する。そうであれば、ブロック344において、フェッチ元命令のページカラーをPPCレジスタに退避し、ブロック390においてぺージへのアクセスを許可する。そうでなければ、ブロック350において、当該ページは、アクセス命令を含むページと同一カラーであるかを判定する。同一でなければ、ブロック352において、ページフォールトをトリガしてアクセスを阻止する。同一であれば、ブロック390においてページへのアクセスを許可する。
本発明の範囲において、方法200と300は、順序を変更して実施してよく、図示のブロックを同時に実施してよく、図示のブロックを省略して実施してよく、更なるブロックを追加して実施してよく、あるいはブロックの順序変更、同時実施、省略、追加を組み合わせて実施してよい。
本発明のある実施形態に従って設計するプロセッサ110、その他任意のプロセッサあるいはコンポーネントは、開発、シミュレーション、製造へと多様な段階を踏んで設計してよい。設計データは、設計を数多くの方法で表現してよい。まず、シミュレーションに利便的であるべく、ハードウェアをハードウェア記述言語あるいは別の機能的記述言語を用いて表現してよい。さらに又はあるいは、ロジックゲート及び/又はトランジスタゲートを有する回路レベルモデルを設計プロセスのいくつかの段階で作成してよい。さらに、大抵の設計は、ある段階において、多様なデバイスの物理的配置を表すデータによりモデル化できるレベルに到達する。従来の半導体製造技術を用いる場合、デバイス配置モデルを表すデータは、集積回路の製造に用いられるマスク用の複数のマスク層における、多様な特性についての有無を特定したデータであってよい。
設計をどのように表現した場合でも、データを任意の形態の機械読み取り可能媒体に保存してよい。当該情報を伝達するべく変調あるいは生成された光波あるいは電波、メモリ、ディスク等の磁気あるいは光記憶媒体が、機械読み取り可能媒体であってよい。設計、あるいは本発明の実施形態において用いるその他情報、たとえばエラー復帰ルーチンの命令を、これら媒体のいずれによって「搬送」あるいは「表現」してもよい。当該情報を表現あるいは搬送する搬送電波を伝送して電気信号をコピー、バッファリング、あるいは再伝送すると、新たなコピーが作成される。したがって、通信プロバイダーあるいはネットワークプロバイダーの業務は、搬送波、本発明を実施する技術等の物品のコピーの作成であってよい。
メモリページをプログラムに対応付けるページカラーリング技術を開示した。特定の実施形態を記載し添付図面に示したが、これら実施形態は広範な発明に対する限定でなく例示であり、当業者は本開示を検討することによりその他多様な変更に想到するであろうので、本発明は図示し記載した特定の構成と配置に限定されないことは理解されよう。本件のような進歩が早く今後の進歩を予測し難い技術分野においては、開示した実施形態は、本開示あるいは添付の請求項の原理から逸脱することなく技術進歩を取り込むことで容易に配置と詳細の変更をなし得るであろう。

Claims (20)

  1. メモリにアクセスするインターフェースと、
    ページングユニットと
    を備え、
    前記ページングユニットは、
    前記メモリの第一のページに格納された命令が供給する第一のアドレスを、前記メモリの第二のアドレスを含む第二のページのベースアドレスを含む、データ構造内のエントリーに基づいて、前記第二のアドレスに変換する変換ロジックと、
    前記第一のページが前記第一の命令を含む第一のプログラムと対応することを示す該第一のページのカラーを、前記第二のページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す、前記エントリーに更に含まれる該第二のページのカラーと比較する比較ロジックと
    を含む、
    装置。
  2. 前記第一のページの前記カラーと前記第二のページの前記カラーとが異なる場合、前記命令が前記第二のページにアクセスするのを阻止するアクセスロジックを更に含む請求項1に記載の装置。
  3. 前記アクセスロジックは、ページフォールト例外をトリガすることにより前記命令が前記第二のページにアクセスするのを阻止する、
    請求項2に記載の装置。
  4. 前記第二のページの前記カラーが、該第二のページがカラーリングされていないことを示すよう設定されている場合に、前記命令が該第二のページにアクセスするのを許可するアクセスロジックを更に含む請求項1に記載の装置。
  5. アクセスが読み出しアクセスであり、かつ前記エントリーに、前記第二のページが隠れていないことを示す表示も含められている場合に、前記命令が該第二のページにアクセスするのを許可するアクセスロジックを更に含む請求項1に記載の装置。
  6. アクセスが前記第二のページ内の許可されたエントリー・ポイント命令に対してのジャンプと呼び出しのうちの一方である場合に、前記命令が該第二のページにアクセスするのを許可するアクセスロジックを更に含む請求項1に記載の装置。
  7. 前記命令がジャンプと呼び出し命令のうちの一方であり、かつ前記第一のページの前記カラーが、該第一のページからの、該第一のページの該カラーとは異なるカラーのページに対するジャンプと呼び出しが許可されていることを示すよう設定されている場合に、前記命令が前記第二のページにアクセスするのを許可するアクセスロジックを更に含む請求項1に記載の装置。
  8. 前記アクセスロジックは、更に前記命令が前記第二のページにアクセスするのを阻止したことを、ページカラー違反としてエラーコードにより報告する、
    請求項3に記載の装置。
  9. 前記命令がジャンプと呼び出し命令のうちの一方であり、かつ前記ジャンプと前記呼び出しのうちの前記一方が許可されている場合に、前記第一のページの前記カラーを記憶する記憶位置を更に含む請求項1に記載の装置。
  10. アクセスが前記第二のページの境界から所定の整列状態にあるポイントに対するものであり、かつ前記エントリーに、該第二のページへの該ポイントに対するアクセスが許可されていることを示す表示も含められている場合に、前記命令が該第二のページにアクセスするのを許可するアクセスロジックを更に含む請求項1に記載の装置。
  11. 第一のページのカラーを第二のページのカラーに比較する段階と、
    前記第一のページの前記カラーが前記第二のページの前記カラーと同じである場合、前記第一のページからの命令が前記第二のページにアクセスするのを許可する段階と
    を含む方法。
  12. 前記第一のページの前記カラーが前記第二のページの前記カラーと異なる場合、前記命令が前記第二のページにアクセスするのを阻止する段階を更に含む請求項11に記載の方法。
  13. 前記第二のページがカラーリングされていない場合、前記命令が前記第二のページにアクセスするのを許可する段階を更に含む請求項11に記載の方法。
  14. アクセスが読み出しアクセスであり、前記第一のページの前記カラーが前記第二のページの前記カラーと異なり、かつ前記第二のページが隠れている場合、前記命令が前記第二のページにアクセスするのを阻止する段階を更に含む請求項11に記載の方法。
  15. アクセスがジャンプと呼び出しのうちの一方であり、かつ前記第一のページの前記カラーが、該第一のページからの、該第一のページの該カラーと異なるカラーのページに対するジャンプと呼び出しが許可されていることを示すよう設定されている場合、前記命令が該第二のページにアクセスするのを許可する段階を更に含む請求項11に記載の方法。
  16. スケジューラの一部を前記第一のページにロードする段階と、
    前記第一のページの前記カラーを、該第一のページからの、該第一のページの該カラーと異なるカラーのページに対するジャンプが許可されていることを示すよう設定する段階と
    を更に含む請求項15に記載の方法。
  17. アクセスが許可されたエントリー・ポイントに向けた命令フェッチである場合、前記命令が前記第二のページにアクセスするのを許可する段階を更に含む請求項11に記載の方法。
  18. 前記第二のページの前記カラーを見つけるべくページテーブルを参照する段階を更に含む請求項11に記載の方法。
  19. メモリ管理ルーチンの一部をメモリの第一のページにロードする段階と、
    前記メモリの第二のページにページテーブルを作成する段階と、
    前記第一のページと前記第二のページのカラーを複数のカラーのうちの一つに設定する段階と、
    アプリケーションプログラムの一部を前記メモリの第三のページにロードする段階と、
    前記第三のページのカラーを前記複数のカラーの別の一つに設定する段階と
    を含む方法。
  20. ダイナミックランダムアクセスメモリと、
    前記メモリに接続され、ページングユニットを含むプロセッサと
    を含むシステムであって、
    前記ページングユニットは、
    前記メモリの第一のページに格納された命令が供給する第一のアドレスを、前記メモリの第二のアドレスを含む第二のページのベースアドレスを含むデータ構造内のエントリーに基づいて、該第二のアドレスに変換する変換ロジックと、
    前記第一のページが前記第一の命令を含む第一のプログラムと対応することを示す該第一のページのカラーを、前記第二のページが前記第一のプログラムと第二のプログラムのうち一方と対応することを示す、前記エントリーに更に含まれる該第二のページのカラーと比較する比較ロジックと
    を含む
    システム。
JP2008541443A 2005-12-30 2006-12-21 メモリページをプログラムに対応付けるページカラーリング Expired - Fee Related JP4759059B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/323,446 2005-12-30
US11/323,446 US9390031B2 (en) 2005-12-30 2005-12-30 Page coloring to associate memory pages with programs
PCT/US2006/048940 WO2007079011A2 (en) 2005-12-30 2006-12-21 Page coloring to associate memory pages with programs

Publications (2)

Publication Number Publication Date
JP2009516310A true JP2009516310A (ja) 2009-04-16
JP4759059B2 JP4759059B2 (ja) 2011-08-31

Family

ID=38093456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008541443A Expired - Fee Related JP4759059B2 (ja) 2005-12-30 2006-12-21 メモリページをプログラムに対応付けるページカラーリング

Country Status (5)

Country Link
US (1) US9390031B2 (ja)
JP (1) JP4759059B2 (ja)
KR (1) KR20080072952A (ja)
CN (1) CN101351774B (ja)
WO (1) WO2007079011A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021512400A (ja) * 2018-02-02 2021-05-13 エイアールエム リミテッド メモリ・アクセスにおける保護タグ・チェックの制御

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US7512768B2 (en) * 2006-07-21 2009-03-31 Intel Corporation Dynamically sharing a stack between different code segments
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US8799581B2 (en) * 2007-01-05 2014-08-05 International Business Machines Corporation Cache coherence monitoring and feedback
US8671248B2 (en) * 2007-01-05 2014-03-11 International Business Machines Corporation Architecture support of memory access coloring
US7895392B2 (en) * 2007-01-05 2011-02-22 International Business Machines Color-based cache monitoring
JP2009104555A (ja) * 2007-10-25 2009-05-14 Intel Corp Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
KR101671494B1 (ko) 2010-10-08 2016-11-02 삼성전자주식회사 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
KR101179275B1 (ko) 2011-05-04 2012-09-03 성균관대학교산학협력단 메모리 관리 장치 및 방법
CN102663115B (zh) * 2012-04-16 2015-01-14 中国人民大学 基于页面染色技术的内存数据库访问优化方法
DE102012218363A1 (de) * 2012-10-09 2014-04-10 Continental Automotive Gmbh Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät
KR102368170B1 (ko) 2013-09-12 2022-02-25 버섹 시스템즈, 인코포레이션 멀웨어의 자동화된 런타임 검출
CN104572493A (zh) 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
US9785558B2 (en) * 2013-10-29 2017-10-10 Hua Zhong University Of Science Technology Mixed cache management
US9632832B2 (en) * 2014-02-27 2017-04-25 Empire Technology Development Llc Thread and data assignment in multi-core processors based on cache miss data
CA2953793C (en) 2014-06-24 2021-10-19 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
AU2015279920B2 (en) 2014-06-24 2018-03-29 Virsec Systems, Inc. Automated root cause analysis of single or N-TIERED applications
US10162694B2 (en) 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
US10585809B2 (en) 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
CA3027728A1 (en) 2016-06-16 2017-12-21 Virsec Systems, Inc. Systems and methods for remediating memory corruption in a computer application
US20180024944A1 (en) * 2016-07-22 2018-01-25 Qualcomm Incorporated Methods and apparatus for access control in shared virtual memory configurations
US10635479B2 (en) * 2016-12-19 2020-04-28 Bitdefender IPR Management Ltd. Event filtering for virtual machine security applications
US10686605B2 (en) 2017-09-29 2020-06-16 Intel Corporation Technologies for implementing mutually distrusting domains

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03244054A (ja) * 1990-02-21 1991-10-30 Nec Corp 記憶保護方式
JPH05257811A (ja) * 1992-01-16 1993-10-08 Toshiba Corp メモリ管理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3916385A (en) 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware
FR2547945B1 (fr) * 1983-06-21 1986-05-02 Raffinage Cie Francaise Nouvelle structure de cable electrique et ses applications
IN165278B (ja) 1984-09-21 1989-09-09 Digital Equipment Corp
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
CA2029628A1 (en) 1989-11-13 1991-05-14 Anantakotirajv Vagesna Translation look aside buffer with parallel exception checking and update bypass
US6009503A (en) * 1994-04-22 1999-12-28 International Business Machines Corporation Cache memory indexing using virtual, primary and secondary color indexes
DE19611311A1 (de) 1996-03-22 1997-09-25 Dyneon Gmbh Schichtstoff
US6347364B1 (en) * 1998-11-20 2002-02-12 International Business Machines Corp. Schedulable dynamic memory pinning
US6654859B2 (en) * 2001-07-26 2003-11-25 International Business Machines Corporation NUMA page selection using coloring
JP2003211748A (ja) * 2001-11-09 2003-07-29 Canon Inc 画像形成装置、画像形成方法およびプログラム
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
US7199896B2 (en) * 2003-05-29 2007-04-03 Xerox Corporation Systems and methods for efficiently generating and supplying image data for tandem printers
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03244054A (ja) * 1990-02-21 1991-10-30 Nec Corp 記憶保護方式
JPH05257811A (ja) * 1992-01-16 1993-10-08 Toshiba Corp メモリ管理装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN4002001006, Ruby B.Lee, "Precision Architecture", IEEE COMPUTER, 198901, Vol.22,No.1, p.78−91, US, IEEE *
JPN5008018990, Michael J.Mahon et.al, "Hewlett−Packard Precision Architecture:The Processor", HEWLETT−PACKARD JOURNAL, 19860801, Vol.37 No.8, P.4−21, US, HEWLETT−PACKARD CO. *
JPN6010033368, Steve Furber, 改訂ARMプロセッサ, 20011218, 初版, P.257−273, JP, CQ出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021512400A (ja) * 2018-02-02 2021-05-13 エイアールエム リミテッド メモリ・アクセスにおける保護タグ・チェックの制御
JP7291149B2 (ja) 2018-02-02 2023-06-14 アーム・リミテッド メモリ・アクセスにおける保護タグ・チェックの制御

Also Published As

Publication number Publication date
CN101351774A (zh) 2009-01-21
US20070157003A1 (en) 2007-07-05
KR20080072952A (ko) 2008-08-07
WO2007079011A3 (en) 2007-11-22
JP4759059B2 (ja) 2011-08-31
CN101351774B (zh) 2011-04-20
WO2007079011A2 (en) 2007-07-12
US9390031B2 (en) 2016-07-12

Similar Documents

Publication Publication Date Title
JP4759059B2 (ja) メモリページをプログラムに対応付けるページカラーリング
US8458791B2 (en) Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
US8341369B2 (en) Providing protected access to critical memory regions
US7272832B2 (en) Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
CN109643290B (zh) 用于具用扩展分段的面向对象的存储器管理的技术
US8909898B2 (en) Copy equivalent protection using secure page flipping for software components within an execution environment
US7631160B2 (en) Method and apparatus for securing portions of memory
US8856473B2 (en) Computer system protection based on virtualization
Schrammel et al. Jenny: Securing Syscalls for {PKU-based} Memory Isolation Systems
US20050108516A1 (en) By-pass and tampering protection for application wrappers
US10545851B2 (en) Breakpoint insertion into kernel pages
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
US9158710B2 (en) Page coloring with color inheritance for memory pages
CN111400702A (zh) 一种虚拟化的操作系统内核保护方法
WO2019237866A1 (zh) 一种运行时访问控制方法及计算装置
US7512768B2 (en) Dynamically sharing a stack between different code segments
EP3864555B1 (en) Verifying a stack pointer
CN114902178A (zh) 域转换禁用配置参数
Bratus et al. The cake is a lie: privilege rings as a policy resource
WO2022128142A1 (en) Apparatus and method for managing access to data memory by executable codes based on execution context
GB2618116A (en) Exception return state lock parameter
CN114902180A (zh) 模间调用分支指令
TW202131191A (zh) 用於控制對一組記憶體映射的控制暫存器的存取的設備及方法
Zhu et al. The Formal Functional Specification of DeltaUNITY: An Industrial Software Engineering Practice

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100924

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101014

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101115

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101215

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110517

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

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees