JP4256167B2 - コンピュータメモリ保護方式の拡張機構 - Google Patents

コンピュータメモリ保護方式の拡張機構 Download PDF

Info

Publication number
JP4256167B2
JP4256167B2 JP2002578154A JP2002578154A JP4256167B2 JP 4256167 B2 JP4256167 B2 JP 4256167B2 JP 2002578154 A JP2002578154 A JP 2002578154A JP 2002578154 A JP2002578154 A JP 2002578154A JP 4256167 B2 JP4256167 B2 JP 4256167B2
Authority
JP
Japan
Prior art keywords
access
extended
read
flag field
legacy
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.)
Expired - Lifetime
Application number
JP2002578154A
Other languages
English (en)
Other versions
JP2004527044A5 (ja
JP2004527044A (ja
Inventor
アンデルソン、ペテル、コック
キッセル、ケヴィン、ディー
Original Assignee
ミップス テクノロジーズ インコーポレイテッド
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 ミップス テクノロジーズ インコーポレイテッド filed Critical ミップス テクノロジーズ インコーポレイテッド
Publication of JP2004527044A publication Critical patent/JP2004527044A/ja
Publication of JP2004527044A5 publication Critical patent/JP2004527044A5/ja
Application granted granted Critical
Publication of JP4256167B2 publication Critical patent/JP4256167B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

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

Description

(関連出願の相互参照)
本出願は同じ日に出願された同一譲受人、同一発明者の出願中米国特許出願第 号(ドケットMIPS:0118.00US), Mechanism for Extending Properties of Virtual Memory Pages by a TLB に関連している。
(発明の分野)
本発明は一般的にコンピューティングシステム内のメモリ管理の分野に関し、特に、既存のアドレス変換バッファー(translation lookaside buffer)アーキテクチュア内のページ保護機構により提供されるものを越えて仮想メモリページに対するアクセス保護の種類を拡張する装置および方法に関する。
(関連技術の説明)
初期のコンピューティングシステムは特にこれらのシステム上で実行するように構成されたアプリケーションプログラムを実行した。プログラムは実行時にコンピューティングシステムのメモリ内にロードされた一連の命令からなっていた。実行するために命令がメモリからフェッチされる度に、コンピューティングシステム内のアドレス論理がメモリアドレスを発生した。コンピューティングシステム内のアクセス論理がメモリアドレスバス上にメモリアドレスを出し、メモリがコンピューティングシステムにより実行されるメモリアドレスに対応するメモリ場所のコンテンツを提供した。プログラム命令の他に、初期のコンピューティングシステムはアプリケーションプログラムにより使用されたデータを一時的に格納するためのメモリ場所を利用した。実行するプログラム命令の検索と同様に、プログラムデータの格納および検索はデータメモリ場所に対応するメモリアドレスの発生を伴った。
アドレス論理により発生されたメモリアドレスは初期のコンピューティングシステムのメモリバスに直接ルーティングされて対応するメモリ場所にアクセスした。したがって、メモリ内の場所10513BC7hにアクセスするには、アドレス論理がアドレス10513BC7hを発生してこのアドレスをメモリバスに発行する必要があった。しかしながら、言い換えると、アドレス論理がアドレス10513BC7hを発生した時に、このアドレスが対応するメモリ場所はやはり場所10513BC7hであったことも事実である。
初期のコンピューティングシステムで実行されるプログラムにより発生されたメモリアドレスとコンピューティングシステムのメモリ内の場所との間の直接、1対1対応は多くの観点からすぐさま不利と考えられたことに直観的に気が付く。第1に、広範な多様なアプリケーションプログラムを実行するために、初期のコンピューティングシステムは常にシステムの全アドレス範囲にまたがるメモリを提供する。第2に、このような対応によりコンピューティングシステムのアーキテクチュアはシステム上でプログラムを作り出して実行するのに使用されたツールに不要に接続された。例えば、異なるメモリ範囲および制約を示したコンピューティングシステム上でプログラムを実行できるようにするために、プログラムは著しい変更を必要とした。最後に、コンピュータが時分割(すなわち、マルチタスク)オペレーティングシステムを提供するポイントまで進歩すると、全てのメモリ管理および保護機能をオペレーティングシステムにより実施しなければならないため、性能劣化が観察された。
特に、前記した問題に取り組むために1970年代半ばに仮想メモリ管理技術が開発された。本質的に、コンピューティング処理装置(CPU)内の仮想メモリ“マネジャー”がCPU内のアドレス発生論理とメモリ場所にアクセスするアクセス論理との間の媒介として働く。仮想メモリ管理方式の元で、アドレス論理により発生される“仮想アドレス”は予め定められた構成可能なマッピング戦略に従って、対応するメモリ場所にアクセスするためにメモリバス上に出される“物理的アドレス”に“変換される”。したがって、仮想メモリ管理により1対1対応の前記した限界が克服される。
仮想メモリ管理技術は、実行中にプログラムにメモリを割り当てプログラムにより必要とされなくなった時にメモリをメモリプールに戻すことができる手段を提供する他に、アプリケーションプログラムがどこでメモリからロードされ実行されるかをコンピューティングシステムのオペレーティングシステムが有効に制御できるようにする利点を提供し続ける。最も新しい仮想メモリ管理ユニットはシステムのアドレススペースをメモリページと呼ばれる等サイズチャンクに分割する。メモリページにアクセスするには仮想アドレスの上位ビットを変換する必要があり、仮想アドレスの下位ビットは変換されず単にページ内へのオフセットを表わす。
仮想メモリ管理はメモリに関連する場所だけでなく、これらの場所に関連する性質または属性にも適用される。例えば、ページ内の場所へのデータライトを排除できるように仮想ページをリードオンリーとして指示することができる。
仮想メモリページの属性を指定する情報と共に、仮想対物理的アドレスマッピング情報がページテーブルとして知られるメモリの指示されたエリア内に格納される。一般的に言えば、ページテーブルはCPUのアドレススペース内に各仮想メモリページに対する1つのエントリを含んでいる。したがって、各メモリアクセスに対して、アクセスに関連するページテーブルエントリをページテーブルから検索して、仮想アドレスを物理的アドレスに変換することができアクセス特権を決定できるようにする必要がある。
頻繁に使用されるページテーブルエントリをCPU内に格納してアドレスが発生される度にメモリアクセスを必要とすることがないように、アドレス変換バッファー(TLB)がCPU設計に内蔵されている。TLBはいくつかのページテーブルエントリに対する記憶装置を提供する非常に高速のメモリである。TLBは典型的にCPUのクリティカルタイミングパス内にあるため、効率的かつ高速に設計される。したがって、アドレスの変換に不可欠なビットおよびメモリページ属性の仕様だけがTLB内のページテーブルエントリ内に与えられる。
TLBはアドレスの変換に対する高速アクセスをサポートするためにストリームラインされる。しかしながら、その結果、所与のTLBの構造は完全にスタティックとなり、拡張の余地は殆どまたは全く生じない。したがって、メモリアクセス保護方式の新たに開発または拡張されたセットを内蔵するようにCPUの設計を更新したい場合には、CPUのTLBの設計は仮想ページレベルにおいてアクセス制約の表現を与えるように修正しなければならない見込みが高い。しかしながら、仮想メモリ管理タスクの相当な部分をオペレーティングシステムソフトウェアに移管しているCPUにとって、既存のTLBの構造を変更するとオペレーティングシステムソフトウェアとのインコンパチビリティを生じ−新しい/拡張されたアクセス制約に従ったメモリ管理を提供するためにオペレーティングシステムを更新しなければならない。
しかしながら、グレードアップされたCPUがより古いオペレーティングシステムおよびそのアプリケーションプログラムともはやコンパチブルとはならないようであれば、大切な市場の一画を失うことになる。CPUメーカは、少なくとも、CPUグレードアップがより古いソフトウェアとのコンパチビリティを保持することを望んでいる。しかしながら、ソフトウェア管理TLBアーキテクチュアの場合のコンパチビリティ保持はグレードアップされた設計において提供されるアクセス特権数が既存のTLB構造により制御されることを意味する。
したがって、必要とされているのは、TLBの構造がレガシーアクセス保護プロトコルとのコンパチビリティを維持される、既存のTLB設計を介して拡張されたアクセス保護方式を提供することができる装置である。
さらに、必要とされているのは、既存のTLB構造を利用する仮想メモリページのアクセス制約を拡張する機構である。
さらに、必要とされているのは、より古いオペレーティングシステムソフトウェアとバックワードコンパチブルでもある、既存のTLB構造により与えられるものよりも多種の仮想メモリページアクセス特権を規定することができるCPU装置である。
さらに、必要とされているのは、レガシーアクセス保護プロトコルに従って解釈することができる状態にデフォルトする、既存のTLBの仮想メモリページアクセス保護を拡張する方法である。
(発明の概要)
本発明は既存のアドレス変換バッファー(TLB)により提供されるものを越えて仮想メモリページへ与えられるアクセス保護の種類を拡張する優れた技術を提供する。仮想メモリページのアクセス保護は本発明に従ってTLBまたはその中の任意のエントリの構造になんら有害なインパクトを与えることなく拡張される。性質拡張は、本発明により、レガシーオペレーティングシステム内のTLB管理ソフトウェアとのバックワードコンパチビリティを許すようになされる。
一実施例では、仮想メモリページに対する拡張されたアクセス制約を規定する装置が提供される。この装置はアドレス変換バッファー(TLB)および拡張された保護論理を含んでいる。TLBは複数のTLBエントリを格納し、その各々がフラグフィールドおよび拡張フラグフィールドを有する。拡張保護論理がTLBに接続されている。拡張保護論理はフラグフィールドに従ったレガシーアクセス制約を指定し、さらに、拡張フラグフィールドと結合したフラグフィールドに従った拡張アクセス制約を指定する。レガシーアクセス制約の仕様はレガシー仮想メモリページアクセスプロトコルとのコンパチビリティを保存する。
本発明の一つの側面はアドレス変換バッファー(TLB)が仮想メモリページの保護方式を拡張できるようにするマイクロプロセッサ内の機構を特徴とする。この機構は仮想メモリページをアクセスするメモリ管理ユニットを有する。メモリ管理ユニットはTLBエントリおよび拡張保護論理を含んでいる。TLBエントリは仮想メモリページの保護方式を規定し、各TLBエントリ内の拡張フラグフィールドは既存のフラグフィールドにより提供された保護方式表示を拡張する。拡張保護論理はTLBエントリに接続される。拡張保護論理は既存のフラグフィールドに従ったレガシー保護方式または拡張フラグフィールドと結合した既存のフラグフィールドに従った拡張保護方式を規定する。レガシー保護方式はレガシー仮想メモリページアクセスプロトコルとバックワードコンパチブルである。
本発明のもう一つの側面はコンピューティングデバイスで使用するコンピュータプログラムプロダクトである。コンピュータプログラムプロダクトは、媒体内に具現されたコンピュータ読取可能プログラムコードを有する、コンピュータ使用可能媒体を含んでいる。コンピュータ読取可能プログラムコードはCPUを記述されるようにし、CPUはレガシー保護方式および拡張保護方式に従って仮想メモリページをアクセスすることができる。コンピュータ読取可能プログラムコードは第1のプログラムコードおよび第2のプログラムコードを有する。第1のプログラムコードはアドレス変換バッファー(TLB)を記述し、TLBはTLBエントリを格納するように構成され、各エントリは既存のフラグフィールドおよび拡張フラグフィールドを有する。第2のプログラムコードは拡張保護論理を記述し、拡張保護論理は既存のフラグフィールドに従ったレガシー保護方式および拡張フラグフィールドと結合した既存のフラグフィールドに従った拡張保護方式を指定するように構成され、レガシー保護方式の仕様はレガシーアクセスプロトコルとのコンパチビリティを保存する。
本発明のさらにもう一つの側面により、伝送媒体内に具現されたコンピュータデータ信号が提供される。コンピュータデータ信号は第1のコンピュータ読取可能プログラムコード、第2のコンピュータ読取可能プログラムコード、および第3のコンピュータ読取可能プログラムコードを含んでいる。第1のコンピュータ読取可能プログラムコードはアドレス変換バッファー(TLB)を記述し、TLBはTLBエントリを格納するように構成され、各TLBエントリが既存のフラグフィールドおよび拡張フラグフィールドを有する。第2のコンピュータ読取可能プログラムコードは拡張保護論理を記述し、拡張保護論理は既存のフラグフィールドに従ったレガシー保護方式および拡張フラグフィールドと結合した既存のフラグフィールドに従った拡張保護方式を指定するように構成されている。第3のコンピュータ読取可能プログラムコードアクセス論理を記述し、アクセス論理は仮想メモリページをアクセスするように構成されており、レガシープロトコルアクセスが利用される場合には、仮想メモリページはレガシー保護方式に従ってアクセスされる。
(詳細な説明)
本発明のこれらおよびその他の目的、特徴、および利点は下記の説明および添付図に関してより良く理解することができる。
仮想メモリ管理に関連するタスクを迅速に処理するために今日のコンピューティングシステムにより利用される技術の前記した背景を考慮して、次に、図1に関して関連技術例について検討する。この例は現在の仮想メモリ管理技術の、特に、アドレス変換バッファー(TLB)の構造に関する限界を強調している。今日のTLBの実質的に全てのアーキテクチュアがせいぜい拡張のための余地をほとんど提供せず、レガシーオペレーティングシステムソフトウェアとのコンパチビリティを保存するために、与えられる任意の新しいアクセス制約はレガシーオペレーティングシステムともコンパチブルでなければならない。この検討に続いて、図2から図5に関して本発明の詳細な説明を行う。本発明は、コンピューティングシステムの既存のTLB構造やコンピューティングシステムのレガシーオペレーティングシステムとのコンパチビリティにインパクトを与えることなく、コンピューティングシステム内の拡張された仮想ページアクセス特権を規定する装置および方法を提供することにより、コンピューティングシステム内の仮想メモリページの保護方式を拡張する障害を克服する。
次に、図1に仮想メモリ130の管理を迅速に処理するためにアドレス変換バッファー115を利用する関連技術コンピューティングシステム100の特徴を表わすブロック図を示す。コンピューティングシステム100はアドレスバス122およびデータバス123を介してシステムメモリ130にアクセスする中央処理装置(CPU)110を含んでいる。あるシステム100では、2つのバス122,123は結合される。CPU110、すなわちマイクロプロセッサ110、はメモリ管理論理114へ仮想アドレス112(すなわち、システム100上で実行しているオペレーティングシステム125またはアプリケーションプログラムにより発生されたアドレス)を与えるアドレス論理111を有する。メモリ管理論理114、すなわちメモリマネジャー114、はアドレス変換を実施するアドレス変換バッファー115およびアドレスバス122およびデータバス123を介してシステムメモリ130にアクセスするアクセス論理118を有する。仮想メモリコンピューティングシステム100内で、システムメモリ130は一連の等サイズメモリページ136へ分割され、今日最も一般的なサイズは4KB/ページである。したがって、4KBメモリページ136へ分割された32ビットアドレス範囲を有するCPU110はほぼ4百万ページ136のアクセスを管理する。メモリ130内のあるページ131は仮想アドレスの変換および各メモリページ136の他のアクセス特徴を規定する全情報を格納するように特別に指示されている。これらの特別に指示されたページ131はページテーブル131と呼ばれる。ページテーブル131は仮想メモリページ136の各々に対応するエントリ132を有する。
仮想メモリ管理の概念により、オペレーティングシステムソフトウェア125はアプリケーションプログラムがどこでどのようにシステムメモリ130内にロードされるか、また付加メモリ130がどこでどのようにプログラムに割り当てられるかを制御することができる。仮想メモリ管理技術はデマンドページング、アドレス範囲拡張、アクセス保護、プログラムリロケーション、メモリ割当て、および同じアプリケーションプログラムの多数のインスタンスを実行する能力等の多くの利点をコンピューティングシステム100に提供する。一般的に、CPU110はメモリ130内の命令およびデータにアクセスする仮想プログラムアドレス112を発生する。CPU110の観点から、システムメモリ130はCPU110が発生することができる全てのアドレス場所を含んでいる。スペクトルの一端において、仮想メモリ管理はオペレーティングシステムソフトウェア125により利用されて、これらのプログラムの物理的場所を少数の物理的メモリページに制約しながら、CPU110の全仮想アドレス範囲にわたるアプリケーションプログラムをCPU110上で実行することができる。これは多数の仮想メモリページ136を同じ物理的メモリ範囲へ変換して(すなわち、マッピングして)行われる。他端において、オペレーティングシステム125は仮想メモリ技術を使用して同じアプリケーションプログラムの多数のインスタンスをCPU110上で同時に実行することができ、各インスタンスは同じ仮想アドレスを発生し、しかもプログラムの各インスタンスはプログラムの他の全てのインスタンスとは異なる物理的メモリへマッピングされる。アドレス変換に加えて、仮想メモリ管理技術によりオペレーティングシステムはある仮想メモリページ136に対して行うことができるアクセスの種類を制御することができる。仮想ページ0136はCPUのメモリキャッシュ(図示せず)内にロードすることができないリードオンリーページとして指示されることに注目されたい。同様に、仮想ページN136はリードおよびライトアクセスの両方に対して指示され、ページN136はCPUのメモリキャッシュ内にロードすることができる。
動作において、CPUのオペレーティングシステム125はページテーブル131のコンテンツを規定する。システム100内の各仮想メモリページ136に対して、ページテーブルエントリ132が確立される。アドレス論理111がメモリ130をアクセスする目的で仮想アドレス112を発生する時は、仮想アドレス112は要求されるアクセスのタイプ(例えば、データリード、データライト、実行リード、等)と共にメモリ管理ユニット114へ与えられる。その中で仮想アドレス112が見つかる仮想メモリページ136に対応するページテーブル131内のページテーブルエントリ132はメモリ管理ユニット114へ与えなければならない。典型的なページテーブルエントリ132は物理的フレーム番号(PFN)フィールド134、フラグ(FL)フィールド135、およびスペアビット(SP)フィールド133を有する。PFNフィールド134は仮想アドレス112がマッピングされる物理的メモリページに対応する物理的アドレスの上位ビットを与える。FLフィールド135はリード/ライトアクセス、キャッシュポリシー、データ有効/無効、等の仮想メモリページ136へのアクセスを制御するビットを含んでいる。FLフィールド135内のビットにより禁止されるアクセスタイプが要求される場合には、メモリ管理ユニットはアドレス論理111へ例外を戻す。あるページテーブル設計では、アドレス成長を調整するためにSPフィールド133が与えられ、PFNフィールド134内のビット数を将来増加できるようにされる。
要約すれば、仮想メモリ管理は本質的にアプリケーションプログラムにより発生されたアドレスの上位アドレスビットを置換することを含んでいる。置換されるビットは仮想ページ番号と呼ばれる。置換ビットは物理的フレーム番号134と呼ばれる。下位アドレスビットは仮想または物理的ページ内のメモリ場所を指示するためページオフセットと呼ばれる。前記したような性質、または属性、または各仮想ページ136は仮想ページ136に対応するページテーブルエントリ132のFLフィールド135内のビットにより規定される。
TLB115は、仮想アドレス112が発生される度にオペレーティングシステム125がページテーブル131にアクセスする必要がないように、CPU110内の高速メモリ内にページテーブル131のサブセットを保持するキャッシュ構造である。変換を要する仮想アドレス112に対してTLB115内にエントリ132が存在しないことが判明する時は、最も使用頻度の低いエントリ132がTLB115からドロップされ新しいエントリ132がページテーブル131からフェッチされる。提出された仮想アドレス112に対してTLB115内に対応するエントリ132が存在しない状況はTLBミスとして知られる。ページテーブル131からの対応する新しいエントリ132のフェッチングはTLBフィルと呼ばれる。TLB管理タスクをオペレーティングシステム125に割り当てるシステム100では、典型的にTLBミスによりCPU110は例外を発生するようにされ、それによりオペレーティングシステム125はこのミスを知らされる。したがって、オペレーティングシステム125はページテーブル131から適切なページテーブルエントリ132をフェッチしてTLBエントリレジスタ119にエントリデータを書き込む。次に、オペレーティングシステムはTLBレジスタ114のコンテンツをTLB115内に書き込ませる命令を実行する。
理想的なケースでは、TLBミスには遭遇せず、TLBフィルに関連する遅延は回避される。しかしながら、現実としてTLBミスは頻繁に生じ、アドレス変換を実施するためにメモリ130にアクセスしなければならないために生じる遅延を最小限に抑えるために、今日のTLB115は典型的に非常に高速に設計される。ストリームラインTLB設計の一つの暗示はTLBエントリ(図示せず)内のビット数が最小限に抑えられ、所与の仮想ページ136に関する重要な情報だけがTLB115内に格納されることである。当業者ならば、ソフトウェア管理TLB環境内のページテーブルエントリ132の構造はTLB115内のTLBエントリの構造と同等である必要はないことを理解できるが、性能の理由から、大概のオペレーティングシステム125はそれらのページテーブルエントリ132をTLBの構造に対応するように設計する。あるエントリレジスタ119はスペアビットを与えるが、典型的にこれらのビットはTLBフィル動作中に当然オペレーティングシステム125がメモリ130からフェッチするバイトすなわち語内の残留ビットである。
より近年になって、CPU110のアーキテクチュアは次第に精巧かつ複雑になってきている。開発および生産エラーを排除するために、既存のマイクロプロセッサ設計のワーキング部が設計のグレードアップバージョンにおいて現在再使用されている。当業者ならば理解できるように、今日コンピュータシステム設計者が直面する最大の問題は、オペレーティングシステムコンパチビリティおよび既存のアプリケーションプログラムとのコンパチビリティの両方に関して、レガシーソフトウェアとのコンパチビリティを維持することである。したがって、CPU110のグレードアップバージョンがフィールドされる時、それはより新しいオペレーティングシステムソフトウェアおよびCPU110に付加された特徴を利用するアプリケーションソフトウェアとコンパチブルであるだけでなく、CPU110はより古い、レガシーオペレーティングシステムソフトウェアおよびアプリケーションソフトウェアともコンパチブルでなければならない。
本発明者は、TLB115の管理に関連する多くの操作がオペレーティングシステムソフトウェアに割り当てられている時は、レガシーオペレーティングシステムソフトウェアコンパチビリティ要求条件がCPUアーキテクチュア110に有害なインパクトを与えることに気付いた。これはCPUグレードアップの目標が仮想メモリページ136に与えられる保護方式を拡張することである場合特にそうである。仮想メモリページ136のアクセス制約数(アクセス特権とも呼ばれる)は従来提供されていたものよりもハイレベルのアクセスセキュリティを必要とするアプリケーションの結果増大してきている。例えば、今日のアクセス制御は典型的にページ136をリードできるかあるいはリードおよびライトできるかを指定するユーザ特権レベル(カーネルレベル特権ではなく)を有するアプリケーションしか制約しない。しかしながら、今日のあるアプリケーションはさらにページ136へのアクセスを制約する要求条件を有する。実行オンリー、データリードオンリー、およびデータライトオンリーとして記述されるページアクセス特権を必要とするコンピューティングシステム100に対するアプリケーションを見つけるのは今日珍しくはない。これらのページアクセス要求条件はデータの安全を確保し金融アプリケーションの安全を確保するのに非常にありふれたものとなっている。
したがって、設計者が仮想ページベースでコンピューティングシステム100により提供されるアクセス特権数を増加したい場合、これらのポリシーに関する情報を各ページテーブルエントリ132内で表現し、TLBエントリレジスタ119へ書き込んでメモリ管理ユニット114により処理しなければならない。
しかしながら、どの拡張アクセス特権が仮想メモリページレベルで規定されるかに無関係に、所望の拡張された性質を表現するのに十分なスペアビット数がTLB115およびTLBエントリレジスタ119内の既存のエントリ内になければ、設計者はTLB115およびエントリレジスタ119の設計を修正して、各仮想ページ136に対して所望の拡張されたアクセス制約の表現を与えるよう強制される。しかも、オペレーティングシステムソフトウェア125に頼って仮想メモリ管理タスクを実施するシステム100に対しては、TLB115の設計を変更するとシステム100は即座にレガシーオペレーティングシステムソフトウェア125とインコンパチブルとなる。したがって、拡張仮想ページ属性を提供するために、今日利用されている最も一般的な方法はTLB115の属性容量を増加するようにメモリ管理ユニット114を設計し直し、一組の所望の拡張メモリ管理特徴を与えるためにレガシーオペレーティングシステム125とのコンパチビリティを犠牲にすることである。しかしながら、この方法はバックワードオペレーティングシステムコンパチビリティを強要する技術のセグメント内では全く受け入れられない。しかしながら、バックワードコンパチブルCPU110は現在およびレガシーオペレーティングシステムを使用するカストマーにサービスする二つ以上の別々のプロダクトを維持する代わりに作り出すことができるため、レガシーアクセス制約プロトコルを有するバックワードコンパチビリティは非常に重要な目標でもある。
本発明は、設計者がレガシーオペレーティングシステムコンパチビリティを犠牲にすることなく既存のTLB115により提供される仮想ページ保護方式数を増加することができる装置および方法を提供することにより前記した既存の設計の限界を克服するものである。次に、図2から図5について本発明をより詳細に説明する。
図2に、システム200内の仮想メモリ230の属性を拡張する既存のアドレス変換バッファー設計215を利用する本発明に従ったコンピューティングシステム200を図解するブロック図が示されている。コンピューティングシステム200はアドレスバス222およびデータバス223、または結合されたアドレス/データバス222/223を介してシステムメモリ230に接続されたCPU210を有する。CPU210は仮想アドレス212を発生するアドレス論理211を有する。仮想アドレス212はバス213を介して拡張保護メモリ管理ユニット240にルーティングされる。メモリ管理ユニット240は仮想対物理的アドレス変換を実施するアドレス変換バッファー215およびアドレス/データバス222/223を介してシステムメモリ230をアクセスするアクセス論理218を有する。TLB215内のエントリはエントリレジスタ219を介してエントリをロードするオペレーティングシステムソフトウェア225により管理される。拡張保護メモリ管理ユニット240はFLバス216およびEXバス220を介してTLB215に接続される拡張保護論理241も有する。
システムメモリ230は等サイズの仮想メモリページ236へ分割される。一実施例では、ページ236は4KBサイズである。別の実施例では、ページ236のサイズは4KB,16KB,64KB,256KB,1MB,4MB,16MB,または64MBとして規定することができる。メモリ230は仮想メモリページ236の各々に対応する複数のページテーブルエントリ251を含むページテーブル250を有する。各ページテーブルエントリ251は物理的フレーム番号(PFN)フィールド253、フラグ(FL)254、および拡張フラグフィールド252を有する。拡張フラグフィールド252は、図1のTLB115のような、レガシーTLB115内のエントリ内のスペアビットに対応するビット位置を利用する。
動作において、本発明に従ったコンピューティングシステム200の要素は100の桁を2で置換した図1のコンピューティングシステム100の同番号要素と非常に類似した機能を果たす。本発明に従ったTLB215およびTLBエントリレジスタ219のアーキテクチュアは図1に示すものと厳密に同じである。しかしながら、図1のコンピューティングシステム100と本発明に従ったコンピューティングシステム200との間の違いは、各ページテーブルエントリ251のEXフィールド252およびFLフィールド254がエントリレジスタにロードされ、メモリ管理ユニット240により処理され解釈される方法に集中される。EXフィールド252は拡張特権オペレーティングシステムにより構成することができ、しかも立上げ、またはデフォルト、EXフィールド252内のビットの状態は本発明に従ったTLBエントリ251をレガシーオペレーティングシステムとも完全にコンパチブルとする。
レガシーメモリ管理プロトコルが存在する場合に、TLB215により仮想アドレス212が変換されると、変換された物理的アドレスはバス217を介してアクセス論理218へ与えられ、EXフィールド252およびFLフィールド254のコンテンツは拡張メモリ保護論理241へ与えられる。レガシーオペレーティングシステム225はレガシーメモリ管理プロトコル(典型的に、オール0またはオール1)に従ってEXフィールド252のビットを設定かつ解釈し、既存のフラグフィールド254のビットを利用してレガシーアクセス特権を表示し呼び出す。拡張保護論理241は両方のフィールド252,254のコンテンツを解釈かつ処理して所与のページ236に対するレガシーアクセス特権および拡張アクセス特権の同時表示を与えるが、レガシーオペレーティングシステム225はレガシー状態に従ってEXフィールド252を設定するため、TLBエントリレジスタ219の対応するビットはレガシープロトコルに従って設定される。したがって、拡張保護論理241はレガシーメモリ管理プロトコルに従ってアクセス制約を発行し、レガシー制約はアクセス論理218により利用される。拡張アクセス特権オペレーティングシステム225が存在する場合には、レガシー制約とそれらの拡張の両方が仮想メモリページ236へのアクセスを制御するのに利用される。レガシープロトコルの元で、FLフィールド254のコンテンツが要求されたアクセスタイプは禁止されることを示す場合には、メモリ管理ユニット240は例外をアドレス論理211へ戻し、レガシープロトコルに従って要求されたアクセスタイプを排除する。拡張プロトコルの元で、FLフィールド254およびEXフィールド252のコンテンツが要求されたアクセスタイプは禁止されることを示す場合には、メモリ管理ユニット240は例外をアドレス論理211へ戻し、拡張プロトコルに従って要求されたアクセスタイプを排除する。拡張保護論理241はFLフィールド254に従った一組のレガシー保護方式およびFLフィールド254と結合したEXフィールド252に従った一組の拡張された保護方式を処理する。EXフィールド252内のビットの状態および意味は既存のFLフィールド254内のビットにより提供されるこれらの表示のさらなる制約またはさらなる定義を与えるように規定される。
既存のフラグフィールド254により与えられる表示を拡張する拡張フラグフィールド252を提供し、かつレガシーおよび拡張アクセス特権を同時に表示する拡張保護論理241を提供することにより、本発明に従ったCPU210はレガシーオペレーティングシステムとのコンパチビリティを保持しながら改善された仮想ページ管理性能の利点を享受することができる。例えば、図2のブロック図は本発明に従ってコンピュータメモリ保護を拡張する機構は図1とそれ同じTLBアーキテクチュア115を利用して、関連技術コンピューティングシステム100のページエントリ132が表現することができるものに対応する一組の仮想ページアクセス制約/特権を規定することができ、しかもこれらの拡張制約/特権の表現はレガシーアクセスプロトコルに従った制約/特権の表現とバックワードコンパチブルであることを示している。
次に、図3に本発明に従った典型的なTLBエントリレジスタ300を示す図が示されている。TLBエントリレジスタ300はページマスクフィールド301、エントリハイフィールド310、エントリロー0フィールド320、およびエントリロー1フィールド330を有する。エントリハイフィールド310は仮想ページ番号(VPN2)サブフィールド311、グローバル(G)サブフィールド312、およびアプリケーションスペース識別(ASID)サブフィールド313を有する。エントリローフィールド320,330は対応する物理的フレーム番号(PFN0,PFN1)サブフィールド321,331、キャッシュポリシー(C0,C1)サブフィールド322,332,ダーティ(D0,D1)サブフィールド323,333,および有効(V0,V1)サブフィールド324,334を有する。ダーティおよび有効サブフィールド323,333,324,334はレガシーアクセスプロトコル設計に対応する既存のフラグを含んでいる。さらに、エントリローフィールド320,330は拡張アクセスサブフィールド、リードインヒビット(RI0,RI1)325,335および実行インヒビット(XI0,XI1)326,336を有する。リードインヒビットおよび実行インヒビットサブフィールド325,326,335,336はレガシーアクセスプロトコル設計に従ってスペアビットフィールド内に与えられる。図3に示す典型的なTLBエントリレジスタ300はMIPS32TMアーキテクチュアに従ったページテーブルおよびTLBの構造を反映しているが、当業者ならば前記した検討から実質的に任意の今日のマイクロプロセッサアーキテクチュアに対する拡張メモリ保護特徴を、本発明の範囲から著しく逸脱することなく、ここで検討された典型的なTLBエントリレジスタ300から引出すことができることを理解できる。
動作において、本発明に従ってアドレス論理により発生される仮想アドレスの下位ビットは仮想ページ内へのオフセットとして利用されTLBには与えられない。典型的な実施例では、仮想アドレスは12ビットオフセット(すなわち、4KBページサイズ)および20ビット仮想ページ番号を含む32ビットアドレスである。したがって、メモリ内のページテーブルはCPUによりアドレス可能な全仮想ページ番号に対するエントリを含んでいる。典型的な実施例では、CPU上で実行する各アプリケーションには6ビットASID、すなわちプロセスIDが割り当てられる。典型的な実施例に従って、各ページテーブルエントリ300はアプリケーションのASIDの20ビット仮想ページ番号との連接を対応する20ビット物理的フレーム番号、キャッシュポリシー、レガシー特権、および拡張特権へマッピングする。典型的なエントリ300のVPN2サブフィールド311は最下位ビットを除く仮想ページ番号の全ビットを格納する。TLB(図示せず)内の論理は最下位ビットを利用して2つのエントリローフィールド320,330の一方を選択する。最下位ビットが0であれば、エントリロー0 320が選択され、最下位ビットが1であれば、エントリロー1 330が選択される。グローバルサブフィールド312はアプリケーションのASIDがその仮想ページ番号と共にアドレス変換に使用されるかどうかを指定する。アプリケーションのASIDを利用する変換により、そのアプリケーションの多数のインスタンスを同じCPU上で同時に実行することができる。G312が表明されない場合には、アドレス変換中にASIDサブフィールド313は無視される。同様に、ページマスクフィールド301のコンテンツを利用して変換中に仮想ページ番号の対応するビットが無視される(すなわち、マスクされる)。例えば、典型的なTLBエントリレジスタ300に従った32ビット仮想アドレス実施例では、ページマスク301は32ビットエントリである。ページマスク301がゼロに設定される場合には、4KB仮想メモリページが規定される。ページマスク301の14-13ビットが1に設定される場合には、16KB仮想ページサイズが規定される。64KBページサイズは16-13ビットを1に設定することにより規定される。当業者ならば、ページマスク301のビットを設定することによりさまざまな他のページサイズも指定できることを理解できる。したがって、仮想ページ番号は対応するプロセスID(ASID)と連接されTLBへ提出される。次に、TLBはページマスクフィールド301、およびグローバル312およびASIDサブフィールド313のコンテンツに従って仮想ページ番号の上位ビットをVPN2 311と一致させる。仮想ページ番号の最下位ビットはエントリロー0 320またはエントリロー1 330を選択する。
エントリローフィールド320,330は物理的メモリへアクセスするためのオフセットに連接される物理的フレーム番号321,331を与える。対応する仮想ページに対するキャッシュポリシー(例えば、キャッシャブル、非キャッシャブル)はCサブフィールド322,332により規定される。メモリアクセス制約はリードインヒビット、実行インヒビット、ダーティ、および有効サブフィールド325,326,323,324,335,336,333,334により規定される。レガシーまたは拡張アクセスオペレーティングシステムプロトコルの元で、有効サブフィールド324,334が表明されなければ、対応するエントリ300内のデータは有効ではないため例外が表示される。この機構はCPUによるアクセスに利用できないページをマークするのに利用される。レガシーおよび拡張プロトコルの両方の元で、ダーティサブフィールド323,333はページへのライトが許されるかどうかを示すように機能する。したがって、エントリ300内のダーティサブフィールド323,333が表明されると、ライトがイネーブルされる。そうでなければ、このページへのライトはトラップしなければならない。レガシープロトコルの元では、実行とデータ特権との間に区別はない。したがって、有効サブフィールド324,334はデータアクセスと命令フェッチの両方に対してリードを許可/排除する。
拡張メモリアクセス方式は拡張アクセス特権オペレーティングシステムのある所でリードインヒビットおよび実行インヒビットサブフィールド325,326,335,336により対応する仮想メモリページに対してイネーブルされる。このケースでは、インヒビットサブフィールド325,326,335,336は、無許可アプリケーションが特定の仮想ページからの読出しを試みる時にデータリードおよび命令フェッチの両方により例外を生じることができるようにライトオンリーアクセスを区別する他に、さらに、データおよび命令(すなわち、実行)アクセス間の区別を行う。
次に、図4に本発明に従った仮想メモリ管理ユニット内の拡張保護論理401を示すブロック図400が示されている。拡張保護論理401はレガシーアクセスプロセッサ401および拡張アクセスプロセッサ402を有する。本発明に従ったアクセス論理は要求されたアクセスタイプを信号407を介して両方のプロセッサ401,402へ与える。TLBエントリの既存のフラグフィールドのコンテンツは有効信号403およびダーティ信号404を介してレガシーアクセスプロセッサへ与えられる。レガシープロセッサ401はレガシー信号403,404をレガシー保護特権へ復号して要求されたアクセスタイプが許されるかどうかを決定する。レガシープロセッサ401はアクセスok信号を拡張アクセスプロセッサ402への入力として与えることにより、アクセスタイプが許されるかどうかを示す。拡張アクセスプロセッサ402はリードインヒビット信号405および実行インヒビット信号406を介してTLBエントリの拡張フラグフィールドのコンテンツと共にアクセスok信号を受信する。拡張アクセスプロセッサ402はインヒビット信号405,406を利用してレガシー保護特権の意味をさらに定義する。要求されたアクセスタイプがレガシープロセッサ401により許されており、かつリードインヒビット405および実行インヒビット406の状態も要求されたアクセスタイプが許されることを示す場合には、拡張アクセスプロセッサ402は例外信号408の状態を設定する。
図5に本発明に従ったTLBエントリによりTLBエントリ内のビット状態の関数として規定されるアクセス保護を図解するテーブル500が示されている。このテーブル500は本発明に従ってTLBエントリ、リードインヒビット(RI)、実行インヒビット(XI)、ダーティ(D)、および有効(V)内の下記のビット状態の関数として仮想メモリページに対して指定することができるアクセス保護を示している。
有効ビットを0に設定することにより仮想メモリページへのアクセスが排除される。一実施例では、レガシーオペレーティングシステムはスペアビットであるためにRIおよびXIビットを全エントリ内で0に設定する。したがって、レガシーアクセスプロトコルを使用して得られるアクセス制約だけが有する0に設定されたRIおよびXIでダーティビットの状態を設定することにより、リード/実行オンリーおよびリード/ライト/実行保護が規定される。
本発明に従ってRIおよびXIの状態を設定することにより、リード/実行オンリーおよびリード/ライト/実行特権がさらに向上される。RIが1に設定され、Dは0にVは1に設定されると、命令フェッチ(すなわち、実行オンリー)以外の操作に対してページは保護される。XIが1に設定され、Dは0にVは1に設定されると、データリード(すなわち、リードオンリー)以外の操作に対してページは保護される。RIおよびXIが共に1に設定され、Dは0にVは1に設定されると、データライト(すなわち、ライトオンリー)以外の操作に対してページは保護される。
図2から図5の例はコンピューティングシステムに対する仮想メモリページの保護方式は本発明に従って有効に拡張することができ、同時にコンピューティングシステムのオペレーティングシステムソフトウェアとのバックワードコンパチビリティを保存することを明確に表わしている。バックワードコンパチビリティがある所でのアクセス保護は、既存のアクセス保護ビットの意味を強化するように、既存のTLBエントリ内のスペアビットを利用することにより提供される。スペアビットは既存のアクセス保護ビットの意味を強化するためにしか使用されないため、レガシーメモリ管理コードがある所では既存のアクセス保護ビットの意味は影響を受けない。
本発明の目的、特徴、および利点を詳細に説明してきたが、本発明には他の実施例も含まれる。ハードウェアを使用する実施例の他に、例えば、ソフトウェア(すなわち、コンピュータ読取可能プログラムコード)を格納するように構成されたコンピュータ使用可能(すなわち、読取可能)媒体内に配置されたソフトウェア内に本発明を具現することができる。プログラムコードによりここに開示された本発明の機能または製作、またはその両方、が可能とされる。例えば、これは一般的なプログラミング言語(例えば、C,C++,等)、Verilog HDL,VHDL,AHDL(Altera Hardware Description Language)等を含むハードウェア記述言語(HDL)、または当技術において入手できる他のプログラミングおよび/または回路(すなわち、回路図(schematic))キャプチャーツールを使用して達成することができる。プログラムコードは半導体メモリ、磁気ディスク、光ディスク(例えば、CD-ROM,DVD-ROM,等)を含む任意の既知のコンピュータ使用可能媒体内に、コンピュータ使用可能(例えば、読取可能)伝送媒体(例えば、デジタル、光またはアナログベース媒体を含むキャリア波または任意他の媒体)内に具現されるコンピュータデータ信号として配置することができる。このようにして、コードはインターネットおよびイントラネットを含む通信網を介して伝送することができる。前記した本発明により達成される機能および/または提供される構造はプログラムコード内に具現されるコア(例えば、マイクロプロセッサコア)内に表現することができ集積回路の生産の一部としてハードウェアに変換できることが理解される。また、本発明はハードウェアとソフトウェアの組合せとして具現することができる。
さらに、本発明は特に汎用CPUまたはマイクロプロセッサの点から特徴づけられている。この特徴は、ここでは、本発明の代表的実施例として提示されているが、このような説明は仮想メモリアクセス保護方式拡張の概念の応用を決して限定しようとするものではない。むしろ、本発明は通信プロセッサ、ビデオプロセッサ、セカンドティアメモリ管理ユニット、およびマイクロコントローラを含むあまり広く知られてはいないコンポーネントだけでなく、グラフィックプロセッサ、デジタル信号プロセッサ内でも具現することができる。
さらに、本発明はMIPS Technologies, Inc.社から入手できるMIPS32TMおよびMIPS64TMアーキテクチュアにより提供されるある既知の仮想ページ保護特徴を実現することができるCPUに関して特に紹介されている。これらの典型的な保護特徴は本発明を教示するための認識できる基礎を提供するためにここで利用されているが、本発明の応用はこれらのタイプまたはいくつかの保護特徴に制限されるものと解釈してはならない。むしろ、本発明はMIPSアーキテクチュアTLBまたは任意他のアーキテクチュアまたはメーカのTLBにより提供される任意の形式のページベースアクセス制御拡張をもくろんでいる。
さらに、ここで本発明は一つの仮想ページ番号を二つの物理的ページ番号にマッピングするエントリからなるアドレス変換バッファー(TLB)実施例に従って説明されてきており、このようなマッピングは仮想ページ番号の最下位ビットにより制御される。これらのタイプのTLBは当技術においてよく見かけるものではあるが、本発明は他のTLBアーキテクチュアも包含する。例えば、本発明は単一仮想ページ番号を単一物理的ページ番号にマッピングするTLB構造にも応用することができる。
当業者ならば、本発明の同じ目的を実施する他の構造を設計または修正するための基礎として開示された概念および特定実施例を容易に使用することができ、添付特許請求の範囲に明記された本発明の精神および範囲を逸脱することなくさまざまな変更、置換および修正が可能であることを理解できる。
アドレス変換バッファーを利用してシステム内の仮想メモリの管理を迅速に処理する関連技術コンピューティングシステムを特徴づけるブロック図である。 既存のアドレス変換バッファー設計を利用してシステム内の仮想メモリのアクセス保護を拡張する本発明に従ったコンピューティングシステムを図解するブロック図である。 本発明に従ったTLBエントリレジスタを示す図である。 本発明に従った仮想メモリ管理ユニット内の拡張保護論理を示すブロック図である。 本発明に従ったTLBエントリによりその中のビット状態の関数として規定されるアクセス保護を図解するテーブルである。

Claims (36)

  1. 仮想メモリページに対する拡張アクセス制約を規定する装置であって、前記装置は、
    複数のアドレス変換バッファー(TLB)エントリを格納するように構成されたアドレス変換バッファー(TLB)であって、前記複数のTLBエントリの各々がフラグフィールドおよび拡張フラグフィールドを有するアドレス変換バッファー(TLB)と、
    前記TLBに接続され、前記フラグフィールドに従ってレガシーアクセス制約を指定するように構成され、かつ前記拡張フラグフィールドと前記フラグフィールドとの結合に基づいた拡張アクセス制約を指定するように構成され、前記拡張フラグフィールドが前記フラグフィールドで指定される前記レガシーアクセス制約にさらなる制約を与える拡張保護論理であって、前記拡張フラグフィールドはレガシーページテーブルエントリの中のスペアビットフィールドの位置に対応する位置に配置されており、前記レガシーアクセス制約の仕様はレガシー仮想ページアクセスプロトコルとのコンパチビリティを保存する拡張保護論理と、
    を含む装置。
  2. 請求項1記載の装置であって、前記レガシーアクセス制約および拡張アクセス制約は同時に指定される装置。
  3. 請求項2記載の装置であって、前記レガシー仮想ページアクセスプロトコルは前記レガシーアクセス制約に従って仮想メモリページへアクセスを向ける装置。
  4. 請求項3記載の装置であって、拡張仮想ページアクセスプロトコルは拡張アクセス制約に従って仮想メモリページへアクセスを向ける装置。
  5. 請求項1記載の装置であって、前記レガシーアクセス制約はリード-ライト-実行アクセスおよびリード-実行オンリーアクセスを含む装置。
  6. 請求項1記載の装置であって、前記拡張アクセス制約は下記のアクセスタイプ、リード-実行オンリーアクセス、リード-ライト-実行アクセス、リードオンリーアクセス、リード-ライトオンリーアクセス、実行オンリーアクセス、ライト-実行オンリーアクセス、およびライトオンリーアクセスの一つ以上を含む装置。
  7. 請求項1記載の装置であって、前記フラグフィールドは、
    任意形式のアクセスに対して特定の仮想メモリページが利用できるかどうかを示すように構成された有効ビットと、
    前記有効ビットに接続され、ライトアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたダーティビットと、
    を含む装置。
  8. 請求項7記載の装置であって、前記拡張フラグフィールドは、
    リードアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたリードインヒビットビットと、
    前記リードインヒビットビットに接続され、実行アクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成された実行インヒビットビットと、
    を含む装置。
  9. アドレス変換バッファー(TLB)が仮想メモリページの保護方式を拡張できるようにするマイクロプロセッサ内の機構であって、前記機構は、
    仮想メモリページをアクセスするメモリ管理ユニットを含み、前記メモリ管理ユニットは、
    仮想メモリページの保護方式を規定するTLBエントリであって、前記各TLBエントリ内の拡張フラグフィールドが既存のフラグフィールドにより与えられる保護方式表示を拡張するものであり、前記拡張フラグフィールドはレガシーページテーブルエントリの中のスペアビットフィールドの位置に対応する位置に配置されている、前記TLBエントリと、
    前記TLBに接続され、前記既存のフラグフィールドに従ったレガシー保護方式または前記拡張フラグフィールドと結合した前記既存のフラグフィールドに従った拡張保護方式を規定するように構成された拡張保護論理であって、前記拡張フラグフィールドが前記既存のフラグフィールドで指定される保護方式にさらなる定義を与え、前記レガシー保護方式はレガシー仮想ページアクセスプロトコルとバックワードコンパチビリティすなわち下位互換性がある拡張保護論理と、を含む機構。
  10. 請求項9記載の機構であって、前記レガシー保護方式および拡張保護方式は同時に規定される機構。
  11. 請求項9記載の機構であって、前記レガシー保護方式はリード-ライト-実行特権およびリード-実行特権を含む機構。
  12. 請求項9記載の機構であって、前記拡張保護方式は下記のアクセスタイプ、リード-実行オンリー特権、リード-ライト-実行特権、リードオンリー特権、リード-ライトオンリー特権、実行オンリー特権、ライト-実行オンリー特権、およびライトオンリー特権の一つ以上を含む機構。
  13. 請求項9記載の機構であって、前記既存のフラグフィールドは、
    任意形式のアクセスに対して特定の仮想メモリページが利用できるかどうかを示すように構成された有効ビットと、
    前記有効ビットに接続され、ライトアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたダーティビットと、
    を含む機構。
  14. 請求項13記載の機構であって、前記拡張フラグフィールドは、
    リードアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたリードインヒビットビットと、
    前記リードインヒビットビットに接続され、実行アクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成された実行インヒビットビットと、
    を含む機構。
  15. コンピューティングデバイスで使用するコンピュータプログラムを記録したコンピュータ使用可能媒体であって、前記媒体は、
    前記媒体内に具現されたコンピュータ読取可能プログラムコードを記録し、CPUを記述されるようにし、前記CPUはレガシー保護方式および拡張保護方式に従った仮想メモリページをアクセスすることができるものであって、前記コンピュータ読取可能プログラムコードは、
    アドレス変換バッファー(TLB)を記述する第1のプログラムコードであって、前記TLBは各々が既存のフラグフィールドおよび拡張フラグフィールドを有するTLBエントリを格納するように構成された第1のプログラムコードと、
    拡張保護論理を記述する第2のプログラムコードであって、前記拡張保護論理は前記既存のフラグフィールドに従った前記レガシー保護方式および前記拡張フラグフィールドと結合した前記既存のフラグフィールドに従った前記拡張保護方式を指定するように構成され、前記拡張フラグフィールドは前記既存のフラグフィールドで指定されるアクセス特権にさらなる制約を与え、前記拡張フラグフィールドはレガシーページテーブルエントリの中のスペアビットフィールドの位置に対応する位置に配置されており、前記レガシー保護方式の仕様はレガシーページアクセスプロトコルとのコンパチビリティを保存する第2のプログラムコードと、
    を含むコンピュータ使用可能媒体。
  16. 請求項15記載のコンピュータ使用可能媒体であって、前記レガシー保護方式はリード-ライト-実行特権およびリード-実行オンリー特権を含むコンピュータ使用可能媒体。
  17. 請求項15記載のコンピュータ使用可能媒体であって、前記拡張保護方式は下記のアクセスタイプ、リード-実行オンリー特権、リード-ライト-実行特権、リードオンリー特権、リード-ライトオンリー特権、実行オンリー特権、ライト-実行オンリー特権、およびライトオンリー特権の一つ以上を含むコンピュータ使用可能媒体。
  18. 請求項15記載のコンピュータ使用可能媒体であって、前記既存のフラグフィールドは、
    任意形式のアクセスに対して特定の仮想メモリページが利用できるかどうかを示すように構成された有効ビットと、
    前記有効ビットに接続され、ライトアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたダーティビットと、
    を含むコンピュータ使用可能媒体。
  19. 請求項18記載のコンピュータ使用可能媒体であって、前記拡張フラグフィールドは、
    リードアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたリードインヒビットビットと、
    前記リードインヒビットビットに接続され、実行アクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成された実行インヒビットビットと、
    を含むコンピュータ使用可能媒体。
  20. 伝送媒体内に具現されるコンピュータデータ信号を生成する方法であって、
    アドレス変換バッファー(TLB)を記述する第1のコンピュータ読取可能プログラムコードであって、前記TLBは各々が既存のフラグフィールドおよび拡張フラグフィールドを有するTLBエントリを格納するように構成されている第1のコンピュータ読取可能プログラムコードを生成し、
    拡張保護論理を記述する第2のコンピュータ読取可能プログラムコードであって、前記拡張保護論理は前記既存のフラグフィールドに従ったレガシー保護方式および前記拡張フラグフィールドと結合した前記既存のフラグフィールドに従った拡張保護方式を指定し、前記拡張フラグフィールドはレガシーページテーブルエントリの中のスペアビットフィールドの位置に対応する位置に配置されている、第2のコンピュータ読取可能プログラムコードを生成し、
    アクセス論理を記述する第3のコンピュータ読取可能プログラムコードであって、前記アクセス論理は仮想メモリページにアクセスするように構成されており、レガシーアクセスプロトコルが利用される場合には、前記仮想メモリページは前記レガシー保護方式に従ってアクセスされる第3のコンピュータ読取可能プログラムコードを生成し、
    前記第1、第2及び第3のプログラムコードを含むコンピュータデータ信号を生成する方法。
  21. 請求項20記載のコンピュータデータ信号を生成する方法であって、拡張アクセスプロトコルが利用される場合には、前記仮想メモリページは前記拡張保護方式に従ってアクセスされるコンピュータデータ信号を生成する方法。
  22. 請求項20記載のコンピュータデータ信号を生成する方法であって、前記レガシー保護方式はリード-ライト-実行特権およびリード-実行特権を含むコンピュータデータ信号を生成する方法。
  23. 請求項20記載のコンピュータデータ信号を生成する方法であって、前記拡張保護方式は下記のアクセスタイプ、リード-実行オンリー特権、リード-ライト-実行特権、リードオンリー特権、リード-ライトオンリー特権、実行オンリー特権、ライト-実行オンリー特権、およびライトオンリー特権の一つ以上を含むコンピュータデータ信号を生成する方法。
  24. 請求項20記載のコンピュータデータ信号を生成する方法であって、前記既存のフラグフィールドは、
    任意形式のアクセスに対して特定の仮想メモリページが利用できるかどうかを示すように構成された有効ビットと、
    前記有効ビットに接続され、ライトアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたダーティビットと、
    を含むコンピュータデータ信号を生成する方法。
  25. 請求項24記載のコンピュータデータ信号を生成する方法であって、前記拡張フラグフィールドは、
    リードアクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成されたリードインヒビットビットと、
    前記リードインヒビットビットに接続され、実行アクセスに対して前記特定の仮想メモリページが利用できるかどうかを示すように構成された実行インヒビットビットと、
    を含むコンピュータデータ信号を生成する方法。
  26. 仮想メモリページにアクセスする方法であって、
    当該方法は、
    アドレス変換バッファー(TLB)エントリから第1のフラグフィールドを読み出すステップであって、前記第1のフラグフィールドはレガシー仮想ページアクセスプロトコルに従ってレガシーアクセス制約を指定することにより前記レガシー仮想ページアクセスプロトコルとのコンパチビリティを保存するステップと、
    前記TLBエントリから第2のフラグフィールドを読み出すステップであって、前記第2のフラグフィールドは前記第1のフラグフィールドと結合されて用いられることにより拡張アクセス制約を指定するステップと、
    を含み、
    前記第2のフラグフィールドはレガシーページテーブルエントリの中のスペアビットフィールドの位置に配置されている、
    方法。
  27. 請求項26記載の方法であって、さらに、
    アクセスタイプを指定するステップと、
    前記レガシーアクセス制約または前記拡張アクセス制約の元で前記アクセスタイプが許可されない場合には例外信号を発行するステップと、
    を含む方法。
  28. 請求項26記載の方法であって、前記第1のフラグフィールドは、
    仮想メモリページがアクセス可能であるかどうかを示す第1の部分と、
    ライトアクセスに対して仮想メモリページが利用できるかどうかを示す第2の部分と、
    を含む方法。
  29. 請求項28記載の方法であって、前記第2のフラグフィールドは、
    リードアクセスに対して仮想メモリページが利用できるかどうかを示す第1の部分と、
    実行アクセスに対して仮想メモリページが利用できるかどうかを示す第2の部分と、
    を含む方法。
  30. 請求項26記載の方法であって、前記拡張アクセス制約はリード-実行オンリーアクセスを含む方法。
  31. 請求項26記載の方法であって、前記拡張アクセス制約はリード-ライト-実行アクセスを含む方法。
  32. 請求項26記載の方法であって、前記拡張アクセス制約はリードオンリーアクセスを含む方法。
  33. 請求項26記載の方法であって、前記拡張アクセス制約はリード-ライトオンリーアクセスを含む方法。
  34. 請求項26記載の方法であって、前記拡張アクセス制約は実行オンリーアクセスを含む方法。
  35. 請求項26記載の方法であって、前記拡張アクセス制約はライト実行オンリーアクセスを含む方法。
  36. 請求項26記載の方法であって、前記拡張アクセス制約はライトオンリーアクセスを含む方法。
JP2002578154A 2001-03-30 2002-03-08 コンピュータメモリ保護方式の拡張機構 Expired - Lifetime JP4256167B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/822,796 US6643759B2 (en) 2001-03-30 2001-03-30 Mechanism to extend computer memory protection schemes
PCT/US2002/007206 WO2002079998A1 (en) 2001-03-30 2002-03-08 Mechanism to extend computer memory protection schemes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008176897A Division JP2008282417A (ja) 2001-03-30 2008-07-07 コンピュータメモリ保護方式の拡張機構

Publications (3)

Publication Number Publication Date
JP2004527044A JP2004527044A (ja) 2004-09-02
JP2004527044A5 JP2004527044A5 (ja) 2005-12-22
JP4256167B2 true JP4256167B2 (ja) 2009-04-22

Family

ID=25237002

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002578154A Expired - Lifetime JP4256167B2 (ja) 2001-03-30 2002-03-08 コンピュータメモリ保護方式の拡張機構
JP2008176897A Pending JP2008282417A (ja) 2001-03-30 2008-07-07 コンピュータメモリ保護方式の拡張機構

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008176897A Pending JP2008282417A (ja) 2001-03-30 2008-07-07 コンピュータメモリ保護方式の拡張機構

Country Status (4)

Country Link
US (1) US6643759B2 (ja)
EP (1) EP1374066A1 (ja)
JP (2) JP4256167B2 (ja)
WO (1) WO2002079998A1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406682B2 (en) * 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
US7069413B1 (en) * 2003-01-29 2006-06-27 Vmware, Inc. Method and system for performing virtual to physical address translations in a virtual machine monitor
US7139892B2 (en) * 2003-05-02 2006-11-21 Microsoft Corporation Implementation of memory access control using optimizations
US7089397B1 (en) 2003-07-03 2006-08-08 Transmeta Corporation Method and system for caching attribute data for matching attributes with physical addresses
FR2859292A1 (fr) * 2003-08-27 2005-03-04 St Microelectronics Sa Dispositif de controle de l'acces a une memoire securisee, comprenant un circuit synchrome de recherche d'attributs
US7594089B2 (en) * 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
US7418585B2 (en) 2003-08-28 2008-08-26 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US9032404B2 (en) 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US7870553B2 (en) 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7836450B2 (en) 2003-08-28 2010-11-16 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
EP1660993B1 (en) 2003-08-28 2008-11-19 MIPS Technologies, Inc. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7711931B2 (en) * 2003-08-28 2010-05-04 Mips Technologies, Inc. Synchronized storage providing multiple synchronization semantics
US7849297B2 (en) 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US7200733B2 (en) * 2003-09-11 2007-04-03 Honeywell International Inc. Virtual memory translator for real-time operating systems
JP4576172B2 (ja) * 2004-07-29 2010-11-04 富士通株式会社 演算処理装置,情報処理装置及び演算処理装置の制御方法
FR2874103B1 (fr) * 2004-08-03 2006-11-17 Trango Systems Sarl Utilisation de la mmu pour la detection de borne de memoire tampon
US20060047959A1 (en) * 2004-08-25 2006-03-02 Microsoft Corporation System and method for secure computing
US7802110B2 (en) 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7558939B2 (en) * 2005-03-08 2009-07-07 Mips Technologies, Inc. Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor
US7496495B2 (en) * 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
US7617380B2 (en) * 2005-08-25 2009-11-10 Broadcom Corporation System and method for synchronizing translation lookaside buffer access in a multithread processor
US7376807B2 (en) 2006-02-23 2008-05-20 Freescale Semiconductor, Inc. Data processing system having address translation bypass and method therefor
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US7401201B2 (en) * 2006-04-28 2008-07-15 Freescale Semiconductor, Inc. Processor and method for altering address translation
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
JP2008102850A (ja) * 2006-10-20 2008-05-01 Toshiba Corp 情報処理装置及び情報処理方法
US8745337B2 (en) * 2007-12-31 2014-06-03 Teradyne, Inc. Apparatus and method for controlling memory overrun
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
US8782371B2 (en) * 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) * 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US8861014B2 (en) * 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
JP4656347B2 (ja) 2009-04-14 2011-03-23 日本電気株式会社 コンピュータ・システム
US9069672B2 (en) * 2009-06-12 2015-06-30 Intel Corporation Extended fast memory access in a multiprocessor computer system
JP5845902B2 (ja) * 2012-01-04 2016-01-20 トヨタ自動車株式会社 情報処理装置及びメモリアクセス管理方法
US9253014B2 (en) * 2012-06-25 2016-02-02 Hitachi, Ltd. Computer system and application program execution environment migration method
US9588902B2 (en) * 2012-12-04 2017-03-07 Advanced Micro Devices, Inc. Flexible page sizes for virtual memory
US9208102B2 (en) * 2013-01-15 2015-12-08 Qualcomm Incorporated Overlap checking for a translation lookaside buffer (TLB)
US9170956B2 (en) * 2013-02-07 2015-10-27 Texas Instruments Incorporated System and method for virtual hardware memory protection
GB2514107B (en) * 2013-05-13 2020-07-29 Advanced Risc Mach Ltd Page table data management
US11531624B2 (en) * 2015-02-06 2022-12-20 Arm Limited Address translation in a data processing apparatus
US10664410B2 (en) 2015-06-18 2020-05-26 Hewlett Packard Enterprise Development Lp Transmitting contents of an operation field to a media controller
US10185679B2 (en) * 2016-02-24 2019-01-22 Red Hat Israel, Ltd. Multi-queue device assignment to virtual machine groups
US10713177B2 (en) * 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
AU2018315624A1 (en) * 2017-08-08 2020-02-27 Richardson, Ric B Method and apparatus for operating a computer
US11875168B2 (en) 2020-03-19 2024-01-16 Oracle International Corporation Optimizing execution of foreign method handles on a virtual machine
US11513779B2 (en) 2020-03-19 2022-11-29 Oracle International Corporation Modeling foreign functions using executable references
US11543976B2 (en) * 2020-04-01 2023-01-03 Oracle International Corporation Methods for reducing unsafe memory access when interacting with native libraries

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4581702A (en) 1983-01-10 1986-04-08 International Business Machines Corporation Critical system protection
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
JPH0721781B2 (ja) * 1989-03-13 1995-03-08 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセツサ・システム
EP0425771A3 (en) 1989-11-03 1992-09-02 International Business Machines Corporation An efficient mechanism for providing fine grain storage protection intervals
JPH06139147A (ja) * 1992-10-23 1994-05-20 Fujitsu Ltd キャッシュメモリシステム
US5628023A (en) 1993-04-19 1997-05-06 International Business Machines Corporation Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view
US5426379A (en) * 1994-07-29 1995-06-20 Xilinx, Inc. Field programmable gate array with built-in bitstream data expansion
US5809563A (en) 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US6189074B1 (en) 1997-03-19 2001-02-13 Advanced Micro Devices, Inc. Mechanism for storing system level attributes in a translation lookaside buffer
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6260131B1 (en) * 1997-11-18 2001-07-10 Intrinsity, Inc. Method and apparatus for TLB memory ordering
US6351797B1 (en) * 1997-12-17 2002-02-26 Via-Cyrix, Inc. Translation look-aside buffer for storing region configuration bits and method of operation
US6230248B1 (en) 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
EP1046998A1 (en) 1999-04-22 2000-10-25 Texas Instruments Incorporated Digital signal processors with virtual addressing
JP3607540B2 (ja) * 1999-08-18 2005-01-05 エヌイーシーシステムテクノロジー株式会社 プログラム単位メモリアクセス属性管理方式
US6412043B1 (en) * 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory

Also Published As

Publication number Publication date
WO2002079998A1 (en) 2002-10-10
US20020144077A1 (en) 2002-10-03
US6643759B2 (en) 2003-11-04
JP2004527044A (ja) 2004-09-02
EP1374066A1 (en) 2004-01-02
JP2008282417A (ja) 2008-11-20

Similar Documents

Publication Publication Date Title
JP4256167B2 (ja) コンピュータメモリ保護方式の拡張機構
US6523104B2 (en) Mechanism for programmable modification of memory mapping granularity
US7334107B2 (en) Caching support for direct memory access address translation
US6249853B1 (en) GART and PTES defined by configuration registers
JP3237065B2 (ja) データ処理システム
EP1866772B1 (en) Method and apparatus for fragment processing in a vitual memory system
JP4772795B2 (ja) 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上
US7149872B2 (en) System and method for identifying TLB entries associated with a physical address of a specified range
US7089398B2 (en) Address translation using a page size tag
KR100959014B1 (ko) Tlb 록 표시자
JP3859757B2 (ja) 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置
US8156308B1 (en) Supporting multiple byte order formats in a computer system
US6442664B1 (en) Computer memory address translation system
JP3264319B2 (ja) バスブリッジ
JP2012532381A (ja) 凝集された小さいページを用いて拡張されたページサイズ
JPH1091525A (ja) 変換索引バッファ及びメモリ管理システム
US6651156B1 (en) Mechanism for extending properties of virtual memory pages by a TLB
JP2000122927A (ja) 仮想領域番号によってアクセスするコンピュ―タ・システム
US6282625B1 (en) GART and PTES defined by configuration registers
JP4312952B2 (ja) メモリ属性パレット
US6728859B1 (en) Programmable page table access
US6567907B1 (en) Avoiding mapping conflicts in a translation look-aside buffer
JPH10293684A (ja) コンピュータシステムおよびその立ち上げ制御方法
JP2000267932A (ja) タグアドレス比較装置
JP2000293437A (ja) キャッシュメモリ装置及びキャッシュメモリ制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080825

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081217

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

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

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

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4256167

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20140206

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

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

EXPY Cancellation because of completion of term