JP2007183950A - アドレススペースエミュレーション - Google Patents

アドレススペースエミュレーション Download PDF

Info

Publication number
JP2007183950A
JP2007183950A JP2006349809A JP2006349809A JP2007183950A JP 2007183950 A JP2007183950 A JP 2007183950A JP 2006349809 A JP2006349809 A JP 2006349809A JP 2006349809 A JP2006349809 A JP 2006349809A JP 2007183950 A JP2007183950 A JP 2007183950A
Authority
JP
Japan
Prior art keywords
memory
address
memory address
configuration
processor
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
JP2006349809A
Other languages
English (en)
Other versions
JP5128122B2 (ja
Inventor
M Datta Sham
エム ダッタ シャム
Robert Greiner
グレイナー ロバート
Frank Binns
ビンズ フランク
Tiruvallur Keshavan
ティルヴァルラー ケシャヴァン
Rajesh Parthasarathy
パルササラシー ラジェシュ
Madhavan Parthasarathy
パルササラシー マドハヴァン
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 JP2007183950A publication Critical patent/JP2007183950A/ja
Application granted granted Critical
Publication of JP5128122B2 publication Critical patent/JP5128122B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

【課題】レガシーOSソフトウェアのコンパチビリティを維持しつつ、システムの効率及び性能を拡張する。
【解決手段】装置及びシステム、及び方法並びに製品は、コンフィギュレーションメモリアドレス及び第一のメモリアドレスビットサイズに関連される入力/出力アクセス動作を検出するために動作する。コンフィギュレーションメモリアドレス及び関連されるコンフィギュレーションデータは、第一のメモリアドレスのビットサイズ(たとえば32ビット)よりも大きな第二のメモリアドレスのビットサイズ(たとえば64ビット)を有するパケットに結合される場合がある。パケットは、プロセッサと同じパッケージに集積されている、PCI(Peripheral Component Interconnect)インタフェースベースの周辺装置及び類似のプラットフォーム装置と通信しようとするレガシーオペレーティングシステムについてコンパチビリティを確立するために使用される。
【選択図】図1

Description

本発明は、レジスタ及び他のメモリロケーションを介して情報をハードウェア装置に伝達するために使用される装置、システム及び方法を含む、データ処理全般に関する。
旧式の中央処理装置(CPU)は、メモリコントローラのようなプラットフォームコンポーネントをプロセッサ自身と同じパッケージに典型的に集積していない。かかる集積されていないコンポーネントと通信するため、オペレーティングシステム(OS)は、PCI(Pripheral Component Interconnect)2.0インタフェースのようなレジスタベースのインタフェースを含む、様々なスキームを使用している。PCI2.0インタフェースに関する更なる情報については、1998年12月18日付けのPCI−SIG(Special Internet Group)により公表された対応する仕様のRevision2.2及び後のRevisionを参照されたい。
パフォーマンスを改善するため、メモリコントローラのようなプラットフォームコンポーネントは、プロセッサコアと同じパッケージにあるように組み立てられる。かかるデザインをシンプルにし、更にパフォーマンスを高めるため、幾つかの集積されたプラットフォームコンポーネントのレジスタは、従来の32ビットの入力/出力(I/O)スペースを64ビットのメモリマップされたアドレススペースに緩和される。しかし、かかる集積されたプラットフォームコンポーネントと使用されるレガシー(旧式)のOSソフトウェアは、PCIインタフェースのような旧式のレジスタベースのメカニズムを使用してコンポーネントアドレスにアクセスしようとする。
図1は、本発明の様々な実施の形態に係る装置100及びシステム160のブロック図である。先に記載された挑戦に対処するため、ある実施の形態は、PCI I/Oアドレススペースで使用されるような、ファンクショナルメモリマップレジスタブロック(Functional Memory Mapped Register Block)をエミュレートするために動作する。この方式では、旧式のOSと集積されたプラットフォームコンポーネントとの間のハードウェアコンパチビリティは、かかるコンポーネント(たとえばメモリコントローラ、キャッシュコントローラ等)がPCIベースであろうとなかろうと維持される。
したがって、ある実施の形態では、アドレススペースエミュレーション装置100は、1以上のプロセッサP1,P2を有する場合がある。プロセッサP1,P2は、次いで、アクセスが集積装置154に向けられるとき、PCI I/Oアドレススペース170のようなI/Oアドレススペース122、及び第一のメモリアドレスビットサイズ126(たとえば16ビット又は32ビット等)と関連されるI/Oアクセスオペレーション118’,118’’を検出するためのマクロコード命令の遮断手段(MCII:Macro-Code Instruction Intercepter)114を含む。MCII114は、マイクロコードシーケンサ128の一部を形成する。かかるアクセスオペレーション118’,118’’は、PCI I/Oアドレススペース170へのメモリ読み取り又はメモリ書き込みを含む、I/Oアドレススペース122のアクセス動作の間に生じる。しかし、アクセス動作118’,118’’は、従来のI/Oアドレススペース122におけるアドレスの代わりに、メモリアドレスHMADR1,HMADDR2,...,HMADDRNに実際にマッピングされる集積装置154に向けられない場合には検出されない。
ある実施の形態では、マイクロコードスクラッチパッドメモリのような、スクラッチパッドメモリ130’,130’’は、オペレーティングシステムスレッド138及びI/Oアドレススペース122と関連されるコンフィギュレーションメモリアドレス134を記録するために動作する。MCII 114は、コンフィギュレーションメモリアドレス134と関連されるコンフィギュレーションデータ142を結合して、第一のメモリビットサイズサイズ126よりも大きい第二のメモリアドレスビットサイズ146を有するパケットPKTにするために動作する。次いで、パケットPKTは、プロセッサパッケージ162における(たとえば集積されたプラットフォーム装置154といった)装置にアクセスするための高いメモリロケーションを含む、(たとえばHMADDR)といったメモリロケーションへの直接的又は間接的な参照として使用される。たとえば、4GB(less 16MB)と4GB(less32MB)との間の領域におけるアドレスは、ある実施の形態におけるかかる動作について確保される。したがって、たとえば、アドレス0xFA00_0000は、結合されたPCIパケットを書き込むために内部的に使用することができる高いメモリアドレスである。勿論、他のアドレスレンジが使用される場合もある。
PCI I/Oスペースにアクセスすることに関し、0xCF8に書き込まれるものは何であっても、所望のハイメモリアドレスHMADDR1,HMADDR2,...,HMADDRNを固有に定義するために使用される。書き込み又は読み取りされたデータは、64ビットワードサイズ、又はオリジナルビットサイズ126’,126’’よりも大きなビットサイズ146に埋め込まれる。たとえば、旧式のOS150は、レジスタのインデックスを選択するために動作し、このレジスタに対して、結果として得られるデータバイト(又はワード)が、先に引用されたPCI仕様により決定されるように、パケットフォーマットでアドレス0xcf8に結合されたアドレス及びレジスタセレクションを書き込むことで書き込まれる。このアドレス情報は、抽出され、パケットを形成するために次のI/Oアドレスアクセスからのデータと結合される。これにより、結合されたアドレス及びレジスタセレクションにより定義されるハイメモリアドレスに適切に書き込まれるためにフォーマットされる。
かかる装置100の実施の形態がどのように動作するかを良好に理解するため、以下の例を考える。レガシーOS150は、周辺装置のような集積装置154が従来のPCI 2.0I/Oアドレススペース170におけるそれぞれのロケーションに従ってアクセスされるという想定の下で動作する。すなわち、コンフィギュレーションメモリアドレス134及び関連されるコンフィギュレーションデータ142は、PCIアドレスコンフィギュレーションスペース170にアクセスすることが意図される。したがって、集積されたプラットフォーム装置154のレジスタ158へのアクセスは、(たとえば、ビット31のセットを有する0xCF8のCONF_ADDRESSSSコンフィギュレーションメモリアドレスといった)PCI I/Oスペースにおける選択されたアドレスに対して、32ビットI/Oメモリアクセスサイクルを使用して行われる。MCII 114は、おそらくCPU I/Oマイクロコードモジュールの一部として実現され、それぞれ(論理的又は物理的)CPUスレッド138’についてマイクロコードにより確保されるスクラッチパッドメモリ130’,130’’へのアクセス動作118’,118’’と関連されるデータ142を保存するために動作する。
PCIアクセスペアは処理エンティティ(たとえばプロセッサP1又はP2)によるクリティカルコードシーケンスとして実行されるので、同じCPUスレッド138’は、第二のPCI I/Oアドレス(たとえば0xCFCのCINFIG_DATAアドレス)へのアクセスを発するために動作する。MCII 114は、32ビットコンフィギュレーションアドレス134と32ビットコンフィギュレーションデータ142を結合し、単一の64ビットパケットPKTにするために動作する。64ビットパケットPKTは、参照(たとえばインデックス)又はアドレスとして使用され、これらは、メモリマップレジスタとしてレジスタを使用する、集積されたPCI周辺装置を含む、コアハードウェア装置154のような集積されたプラットフォームハードウェア装置と通信するために特別にデコードされるハイメモリアドレス(たとえばアドレスHMADDRN)に直接的又は間接的に対応する。メモリの読み取り又はメモリの書き込みは、参照されたロケーション158に対して行われる。この方式では、アクセスオペレーション118’,118’’が検出され、I/Oアドレススペース122は、コアハードウェア装置154のような集積されたプラットフォームコンポーネントとの通信においてレガシーOS150を支援するためにエミュレートされる。
ある実施の形態では、単一の集積回路パッケージ172は、プロセッサP1(又はマルチコアプロセッサパッケージの一部としてマルチプルプロセッサP1,P2)、及びスクラッチパッドメモリ130’,130’’を収容する。MCII 114も同様にパッケージ172に収容される場合があり、必要に応じて、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを有する場合がある。CPUマイクロコードは、ある実施の形態では、記載されるエミュレーションを達成するために使用され、あるケースでは、エミュレーションは、更なるハードウェアの必要なしに、マイクロコード命令を使用することで全体的に達成される。
プロセッサP1,P2は、メモリマップレジスタのような、1以上の関連されるレジスタ158を有する、集積されたメモリコントローラコアハードウェアエレメントのような、1以上のコアハードウェア装置154をそれぞれ含む。コンフィギュレーションメモリアドレス134及び/又は関連されるコンフィギュレーションデータ142は、様々なハイメモリアドレスHMADDR1,HMADDR2,...,HMADDRNで配置されるレジスタ158のコンテンツ(たとえばビット)を変更するために使用される。
先に述べたように、第一のメモリアドレスビットサイズ126は、第二のメモリアドレスビットサイズ146の小部分を有する。たとえば、ある実施の形態では、第一のメモリアドレスビットサイズ126は、第二のメモリアドレスビットサイズ146の約2分の1又は約4分の1である。したがって、第一のメモリアドレスビットサイズ126が16ビット又は32ビットである場合、第二のメモリアドレスビットサイズ146は、32ビット、64ビット又は128ビットのそれぞれである。これらのサイズは、単なる例示であって、限定するものではない。第一のメモリアドレスビットサイズ126及び第二のメモリアドレスビットサイズ146は、本実施の形態で記載される装置100及びシステム160の設計者により選択されるような何れかのビット数である。
あるケースでは、SMI(System Management Interrupt)を含む高い優先度の割り込みにより、I/Oアドレススペース122にアクセスするプロセスが割り込まれる。たとえば、ある状況では、PCIコンフィギュレーションアドレス0xCF8へのアクセスには、コンフィギュレーションデータアドレス0xCFCからの、及び/又はコンフィギュレーションデータアドレス0xCFCへの、期待されるデータ読み取り/書き込み動作が後続しない。かかる割り込みが生じた場合(たとえばSMI)、制御がプラットフォームシステムマネージメントモード(SMM)コードに転送される。このポイントで、MCII 114は、(SMMルーチンに通常はアクセス可能ではない)割り込みされたスレッドについてスクラッチパッドメモリ130’,130’’コンテンツを保存するために動作する。したがって、ある実施の形態では、SMMルーチンは、アドレス0xCF8への32ビットの読み取りを行い、SMMメモリ164の保存されたデータエリア168のような保存されたSMMデータエリア168に結果的に得られたデータを保存する。なお、あるシステムでは、単一のSMIにより、全てのプロセッサP1,P2が、スレッド当りのベース(per-thread basis)で、SMMメモリ164におけるスクラッチパッドメモリ130’,130’’コンテンツを保存するために動作することになるように、全てのプロセッサP1,P2のSMIが相互接続される。
更なる周辺I/Oスペース122のアクセスがSMIのサービスの間に実行されるとするとどうであろうか?このケースでは、SMMコードは、0xCF8 I/Oのコンテンツを読み取り、SMMメモリ164内のSMIデータエリア166にコンテンツを保存するために動作する。ここで、SMMコードは、自由に周辺のI/Oアドレススペース122にアクセスすることができる。しかし、前の動作モードに戻る前に、SMMコードは、0xCF8レジスタに0xCF8 I/Oアドレスの前に保存されたコンテンツを書き込み、保存されたデータで0XCF8へのI/Oアクセスを行う。このアクセス動作は、記載されたやり方で完全なエミュレーションへの次の0xCFCメモリアクセスを待つ、MCII 114により更に検出される。したがって、ある実施の形態では、SMMコードは、スクラッチパッドメモリ130’,130’’に位置される0xCF8インデックスをそれ自身所有のSMIデータエリア(たとえばエリア166)に保存し、必要な場合、SMIサービスルーチンの実行の間に更なる0xCF8及び0xCFCアクセスを実行する。
(プロセッサP1,P2に含まれる)スクラッチパッドメモリ130’,130’’は、SMMメモリ164と同じではない。たとえば、スクラッチパッドメモリ130’,130’’は、マイクロコードスクラッチパッドメモリを有し、マイクロコードフラグがダイナミックランダムアクセスメモリ(DRAM)に位置されるように、SMMメモリ164は、確保されたメモリを有するために選択される。したがって、更なるSMIコールをサービスするSMMコード(たとえば、SMMが入力された後に生じるSMI)は、パッケージ172内からスクラッチパッドメモリ130’,130’’コンテンツを保存するために動作しない。むしろ、SMIをサービスするSMMコードは、I/O命令を使用して0xCF8 I/Oアドレスを読み取り、おそらく個別に割り当てられたSMIデータエリア166において、SMMメモリ164において関連するデータを保存するために動作する。
再開(たとえばRSM)命令の差し迫った実行の検出に応じて、それぞれのプロセッサP1,P2のMCII 114は、SMMメモリ164からの個別のスクラッチパッドメモリ130’,130’’にスレッドに特化した0xCF8インデックス値を回復するために動作する。再開命令が実行された後、割り込みされた周辺のI/Oスペース122のアクセス(たとえば、0xCF8アドレスへのアクセス)は影響されたスレッド138により0xCFCへの後続するアクセスによるそれぞれのスレッド138により完了される。
他の実施の形態が実現される場合がある。たとえば、様々な実施の形態に係るシステム160は、マルチコアパッケージ172の一部として、又はパッケージ162の集合として、互いに結合される1以上のプロセッサP1,P2を含む。多くのバリエーションが可能である。たとえば、第一のプロセッサP1は、I/Oアドレススペース122及び第一のメモリアドレスビットサイズ126と関連付けされた第一のI/Oアクセスオペレーション118’を検出するためのMCII 114’を含む。第二のプロセッサP2は、I/Oアドレススペース122及び第二のメモリアドレスビットサイズ126に関連される第二のI/Oアクセスオペレーション118’’を検出するために第二のMCII 114’’を含む。プロセッサP1,P2は、物理的なプロセッサ又は論理的なプロセッサである。
第一のプロセッサP1に含まれる第一のスクラッチパッドメモリ130’は、第一のOSスレッド138’及びI/Oアドレススペース122に関連されるコンフィギュレーションアドレス134’を記録するために動作し、第一のMCII 114’は、第一のOSスレッド138’に関連されるコンフィギュレーションメモリアドレス134’と関連されるコンフィギュレーションデータ142’とを、先に記載されたように、第一のメモリビットサイズ126よりも大きい第二のメモリアドレスビットサイズ146を有する第一のパケットPKT’に結合するために動作する。マイクロコードスクラッチパッドメモリのような第二のスクラッチパッドメモリ130’’は、第二のOSスレッド138’’及びI/Oアドレススペース122に関連されるコンフィギュレーションアドレス134’’を記録するために動作する。第二のMCII 114’’は、第二のOSスレッド138’’に関連されるコンフィギュレーションメモリアドレス134’’と関連されるコンフィギュレーションデータ142’’とを、第二のメモリアドレスビットサイズ146を有する第二のパケットPKT’’に結合するために動作する。スクラッチパッドメモリ130’,130’’は、マイクロコードシーケンサ128によりアクセスされる。
システム160は、プロセッサP1,P2により処理されるデータ(たとえばコンフィギュレーションデータ142)を表示する、陰極線管ディスプレイ、フラットパネルディスプレイ、その他を含む、1以上のディスプレイ188を含む。ディスプレイ188は、直接に、又はバス及び/又はグラフィックスコントローラ周辺機器(図示せず)を介してプロセッサP1,P2に電気的に接続される。コンピュータマザーボード194は、プロセッサP1,P2に動作電力を供給するために動作する。システム160は、無線トランシーバに結合される、無指向性、ダイポール、パッチ、又はビームアンテナを含む、1以上のアンテナ192と同様に、プロセッサP1,P2により処理されたデータを送信する1以上の無線トランシーバ196を含む。ある実施の形態では、システム160は、SMIを含むハイレベル割り込みがプロセッサP1,P2により検出された後、関連するコンフィギュレーションデータ142のコピーを受信するためのシステムマネージメントメモリ164を含む。
先に記載された何れかのコンポーネントは、ソフトウェアを介したシミュレーションを含めて、様々なやり方で実現することができる。したがって、装置100;プロセッサP1,P2;MCII 114’,114’’;I/Oアクセスオペレーション118’,118’’;I/Oアドレススペース122;第一及び第二のメモリアドレスビットサイズ126,146;マイクロコードシーケンサ128;スクラッチパッドメモリ130’,130’’;コンフィギュレーションメモリアドレス134;OSスレッド138’,138’’;関連されるコンフィギュレーションデータ142’,142’’;OS150;集積装置154;SMIデータエリア166;確保されたSMMメモリエリア168;I/Oアドレススペース170;ディスプレイ188;アンテナ192;マザーボード194;無線トランシーバ196;メモリアドレスHMADDR1,HMADDR2,...,HMADDRN;パケットPKT’,PKT’’;及び割り込みSMIは、本明細書では「モジュール」として全て特徴付けされる。
これらのモジュールは、装置100及びシステム160のアーキテクトにより所望されるように、様々な実施の形態の特定の実現について適切なように、ハードウェア回路、シングル又はマルチプロセッサ回路、メモリ回路、ソフトウェアプログラムモジュール及びオブジェクト、ファームウェア、及びその組み合わせを含む。モジュールは、ソフトウェア電気信号シミュレーションパッケージ、パワーユーセージ及びディストリビューションシミュレーションパッケージ、ネットワークセキュリティシミュレーションパッケージ、電力/熱消散シミュレーションパッケージ、信号送信−受信シミュレーションパッケージ、又は、様々な潜在的な実施の形態の動作をシミュレートするために使用されるソフトウェア及びハードウェアの何れかの組み合わせのようなシステムオペレーションシミュレーションパッケージに含まれる。かかるシミュレーションは、たとえば実施の形態を特徴づけ又は検査するために使用される。
様々な実施の形態の装置及びシステムは、シングル−マルチコアプロセッサを有するデスクトップ又はラップトップコンピュータ以外のアプリケーションで使用することができることを理解されたい。したがって、本発明の様々な実施の形態は、そのように制限されるべきではない。装置100及びシステム160の例示は、様々な実施の形態の構造の一般的な理解を提供することが意図され、本明細書で説明された構造を利用する装置及びシステムの全てのエレメント及び機能の完全な説明としての役割を果たすことが意図されない。
様々な実施の形態の新たな装置及びシステムを含むアプリケーションは、高速コンピュータで使用される電子回路、通信及び信号処理回路、モデム、シングル又はマルチプロセッサモジュール、1つ又は複数のエンベデッドプロセッサ、及びマルチレイヤ、マルチチップモジュールを含む特定用途向けモジュールを含む。かかる装置及びシステムは、データブリッジ、スイッチ及びハブ;テレビジョン及びセルラフォン;パーソナルコンピュータ及びワークステーション;ラジオ及びビデオプレーヤ;及び特に自動車のような、様々な電子システム内のサブコンポーネントとして更に含まれる。
ある実施の形態は、多数の方法を含む。たとえば、図2は、本発明の様々な実施の形態に係る幾つかの方法211を説明するフローチャートを含む。アドレススペースエミュレーション方法211は、周辺のI/Oアドレススペースアクセスに応じて実行され、何れかのスレッドの実行前のような他の選択された時間で実行される。ある実施の形態では、方法211は、マルチコアパッケージにおけるそれぞれのプロセッサにより、及び/又はパッケージにおけるそれぞれのプロセッサコアにおけるそれぞれのオペレーショナルスレッドにより実行される。
方法211は、おそらく選択されたコンフィギュレーションメモリアドレス及び第一のメモリアドレスビットサイズ(たとえば0xCF8及び32ビット)に関連される、集積装置へのI/Oアクセス動作を検出することによりブロック215で始まる。マイクロコードのシーケンスは、I/Oアクセス動作の検出を達成するために実行される。
ある実施の形態では、方法211は、ブロック219で、マイクロコードスクラッチパッドメモリのような、スクラッチパッドメモリにおけるコンフィギュレーションメモリアドレスを保存することを含む。この動作は、スレッド当たりに基づいて、コンフィギュレーションメモリアドレスを保存することを含む。
その後のI/Oアドレススペースへのメモリ読み取り又はメモリ書き込みがブロック223で検出された場合、方法211は、ブロック227で、コンフィギュレーションメモリアドレスと関連されるコンフィギュレーションデータとを、パケットに結合することを含む。パケットは、先に述べたように、第一のメモリアドレスビットサイズよりも大きい第二のメモリアドレスビットサイズを有する。
本方法211は、ブロック231で、パケットのコンテンツにより定義されるアドレスへの読み取り動作又は書き込み動作のうちの1つを実行することを含むように進む。パケットのコンテンツにより定義されるアドレスは、(たとえば、読み取り/書き込み動作を現在実行しているプロセッサと同じパッケージに集積されるPCIコンパチブル周辺装置のような、プロセッサと同じパッケージに集積されているプラットフォームハードウェアコンポーネントといった)コアハードウェアエレメントにおけるメモリマップレジスタと通信するためにデコードされるメモリアドレスを含む。したがって、本方法211は、ブロック231で、(メモリマップレジスタを定義するため)コンフィギュレーションメモリアドレス及び関連するコンフィギュレーションデータを使用したコアハードウェアエレメントにおけるメモリマップレジスタと通信するためにデコードされるメモリアドレスへの書き込みを含む。ブロック223で、読み取り/書き込み動作が検出されない場合、ブロック235で、SMIのようなハイレベルの割り込みが検出されない場合、本方法211は、ブロック227に関して記載される動作を継続することを含む。
ある実施の形態では、ブロック235で、SMIのようなハイレベルの割り込みが検出された場合、本方法211は、ブロック243でSMMコードを入力又は実行し、ブロック247でコンフィギュレーションメモリアドレス及び関連されるコンフィギュレーションデータに関連する、マイクロコードコンテクストのようなコンテクストを保存する。これは、0xCF8コンフィギュレーションアドレスを読み取り、SMM保存メモリに読み取られた情報のコピーを直接に保存する。ある実施の形態では、これは、SMM保存メモリのような、システムマネージメントメモリにコンフィギュレーションメモリアドレスに関連するデータを含む、1以上の(たとえば多数の)マイクロコードスクラッチパッドメモリのコンテンツを保存することを含む。
本方法211は、ブロック251で、SMIのような割り込みを処理することを含む。割り込み処理のルーチンは、おそらくSMM割り込みデータエリアを使用して、I/Oアドレススペースにアクセスし、ある実施の形態では、かかるアクセスは、MCIIにより検出されない(たとえば、0xCF8及び0xCFCレジスタがPCI2.0アクセスコンストラクト外で使用することができる)。ブロック255で割り込み処理が終了したとき、方法211は、ブロック259でマイクロコードコンテクストのようなコンテクストを回復することを含む。このアクティビティは、(たとえばSMM保存メモリエリアといった)システムマネージメントメモリから関連されるコンフィギュレーションデータのコピーを検索し、関連されるコンフィギュレーションデータをコンフィギュレーションアドレスに再書き込みし、再開命令を実行することを含み、したがって、割り込みされたコンテクストに動作が戻る。ある実施の形態では、このアクティビティは、SMMコードの実行により全体的に向けられる。
本明細書で記載された方法は、記載される順序又は特定の順序で実行される必要がない。さらに、本明細書で識別される方法に関して記載される様々なアクティビティは、反復的、シリアル、又はパラレルな方式で実行される。パラメータ、コマンド、オペランド及び他のデータを含む情報は、1以上の搬送波の形式で送出及び受信される。
当業者であれば、ソフトウェアプログラムは、ソフトウェアプログラムで定義される機能を実行するコンピュータベースのシステムにおけるコンピュータ読み取り可能な媒体から起動される方式を理解されるであろう。様々なプログラミング言語は、本明細書で開示される方法を実現及び実行するために設計される1以上のソフトウェアプログラムをつくるために利用される。このプログラムは、Java(登録商標)又はC++のようなオブジェクト指向の言語を使用してオブジェクト指向のフォーマットで構築される。代替的に、プログラムは、アセンブリ又はCのような手続き言語を使用して手続き指向のフォーマットで構築される。ソフトウェアコンポーネントは、リモートプロシジャーコールを含む、アプリケーションプログラムインタフェース又はインタープロセスコミュニケーション技術といった、当業者にとって公知の多数のメカニズムを使用して伝達する。様々な実施の形態の技術は、何れか特定のプログラミング言語又は環境に制限されない。
したがって、他の実施の形態が実現される場合がある。たとえば、図3は、コンピュータ、メモリシステム、磁気又は光ディスク、他のストレージ装置、及び/又は何れかのタイプの電子装置又はシステムのような、様々な実施の形態に係るアーティクル(製品)385のブロック図である。アーティクル385は、(たとえばコンピュータプログラム命令及び/又はデータといった)関連される情報391を有する、(たとえば電気的、光学的又は電磁的な導体を有する有形のメモリを含む、固定された、取り外し可能な記憶媒体といった)メモリ、又は搬送波のような、コンピュータ読み取り可能な媒体389に結合された(1以上のプロセッサを有する)コンピュータ387を含み、この情報391は、コンピュータ387により実行されたとき、コンピュータ387に、コンフィギュレーションメモリアドレス及び第一のメモリアドレスビットサイズに関連されるI/Oアクセス動作を検出すること、第一のメモリアドレスビットサイズよりも大きな第二のメモリアドレスビットサイズを有するパケットに、コンフィギュレーションメモリアドレス及び関連されるコンフィギュレーションデータを結合することを含む方法を実行させる。
他の動作は、パケットのコンテンツにより定義されるアドレスへの読み取り動作又は書き込み動作のうちの1つを実行することを含む(たとえばパケットのコンテンツにより定義されるアドレスは、コアハードウェアエレメントにおけるメモリマップレジスタと通信するためにデコードされるメモリアドレスを含む)。
ある実施の形態では、更なる動作は、システムマネージメントインターラプトを検出すること、システムマネージメントメモリにおけるコンフィギュレーションメモリアドレスと関連されるデータを含む多数のマイクロコードスクラッチのコンテンツを保存することを含む。他のアクティビティは、図2で説明された、及び先に記載された方法の一部を形成する動作の何れかを含む。
本実施の形態で開示された装置、システム及び方法を実現することは、64ビット幅のメモリマップレジスタとして、CPUパッケージに含まれるメモリコントローラのような、集積されたプラットフォームレベルのリソースにアクセスすることを可能にするために動作する。さらに、他のソフトウェア(たとえば、0xCF8及び0xCFCアドレスを使用するアドレス指定されるハードウェア)により使用される従来のPCI2.0スペースとのレガシーOSソフトウェアのコンパチビリティが達成される。したがって、コンパチビリティが維持されつつ、効率及び性能が拡張される。
本発明の一部を形成する添付図面は、例示を通して、限定することなしに、対象物が実施される特定の実施の形態を示している。例示される実施の形態は、本明細書で開示された教示を当業者が実施するのを可能にするために十分に詳細に記載された。他の実施の形態は、これより利用かつ導出され、構造的かつ論理的な置き換え及び変化がこの開示の範囲から逸脱することなしになされる。したがって、詳細な説明は限定的な意味で解釈されるべきではなく、様々な実施の形態の範囲は、かかる請求項に与えられた権利と完全な範囲の等価なものと共に、特許請求の範囲によってのみ定義される。
本発明の対象物のかかる実施の形態は、1を超える発明が開示される場合、この出願の範囲を単一の発明又は発明の概念に自発的に限定することを意図することなしに、単に便宜上、用語「発明」により個々に又は集合的に参照される。したがって、特定の実施の形態が本明細書で例示及び記載されたが、同じ目的を達成するために計算されるアレンジメントは図示される特定の実施の形態について置き換えられる。この開示は、様々な実施の形態の何れか又は全ての適合又は変形をカバーすることが意図される。本明細書で特に記載されていない先の実施の形態と他の実施の形態の結合は、先の説明を検討することに応じて等業者にとって明らかとなるであろう。
開示の要約は、読者が技術的な開示の特性を迅速に確認するのを可能にする要約を必要とする37C.F.R.§1.72(b)に準拠するために提供される。請求項の範囲又は意味を解釈又は限定するために使用されないことが理解される。さらに、上述された詳細な説明では、様々な機能が開示を合理化する目的で単一の実施の形態において互いにグループ化される。この開示の方法は、それぞれの請求項で明示的に引用されたよりも多くの特徴を必要とすることが解釈されるべきではない。むしろ、本発明の主要な内容は、単一の開示された実施の形態の全ての機能よりも少なく発見される場合がある。したがって、特許請求の範囲は、詳細な説明に盛り込まれ、それぞれの請求項は個別の実施の形態としてそれ自身について有効である。
本発明の様々な実施の形態に係る装置及びシステムのブロック図である。 本発明の様々な実施の形態に係る幾つかの方法を例示するフローチャートである。 本発明の様々な実施の形態に係るアーティクルのブロック図である。
符号の説明
142’,142’’:データ
130’,130’’:スクラッチパッド
128:シーケンサ
122:I/Oスペース
154:デバイス
164:SMMメモリ
100:バス

Claims (28)

  1. 入力/出力アドレススペース及び第一のメモリアドレスのビットサイズに関連する入力/出力アクセス動作を検出するため、マクロコード命令を遮断する手段を含むプロセッサと、
    オペレーティングシステムのスレッドと前記入力/出力アドレススペースとに関連されるコンフィギュレーションアドレスを記録するスクラッチパッドメモリとを備え、
    前記マクロコード命令を遮断する手段は、前記コンフィギュレーションメモリアドレスと関連されるコンフィギュレーションデータとを、前記第一のメモリアドレスのビットサイズよりも大きな第二のメモリアドレスのビットサイズを有するパケットに結合する、
    ことを特徴とする装置。
  2. 前記プロセッサ及び前記スクラッチパッドメモリを含む集積回路パッケージを更に備える、
    請求項1記載の装置。
  3. 前記マクロコード命令の遮断手段は、マクロコードシーケンサの一部を形成する、
    請求項1記載の装置。
  4. メモリマップレジスタを有するコアハードウェアエレメントを更に備え、前記コンフィギュレーションメモリアドレスと前記関連されるコンフィギュレーションデータの少なくとも1つは、前記メモリマップレジスタのビットを変更するために使用される、
    請求項1記載の装置。
  5. 前記第一のメモリアドレスのビットサイズは、前記第二のメモリアドレスのビットサイズの約2分の1又は約4分の1のうちの1つである、
    請求項1記載の装置。
  6. 前記コンフィギュレーションメモリアドレス及び前記コンフィギュレーションデータは、PCI(Peripheral Component Interconnect)コンフィギュレーションスペースに含まれる、
    請求項1記載の装置。
  7. 前記コンフィギュレーションメモリアドレスは、0xCF8アドレスを含む、
    請求項6記載の装置。
  8. 前記スクラッチパッドメモリは、マイクロコードスクラッチメモリを有する、
    請求項1記載の装置。
  9. 入力/出力アドレススペース及び第一のメモリアドレスビットサイズに関連される第一の入力/出力アクセス動作を検出するため、第一のマクロコード命令の遮断手段を含む第一のプロセッサと、
    第一のオペレーティングシステム(OS)のスレッド及び前記入力/出力アドレススペースに関連されるコンフィギュレーションアドレスを記録するための第一のスクラッチパッドメモリと、前記第一のマクロコード命令の遮断手段は、前記第一のOSのスレッドと関連されるコンフィギュレーションメモリアドレスと関連されるコンフィギュレーションデータとを、前記第一のメモリのビットサイズよりも大きな第二のメモリアドレスのビットサイズを有する第一のパケットに結合し、
    前記プロセッサに電気的に結合されるフラットパネルディスプレイと、
    を備えることを特徴とするシステム。
  10. 前記第一のプロセッサに動作電力を供給するコンピュータマザーボードを更に含む、
    請求項9記載のシステム。
  11. 前記第一のプロセッサにより処理されるデータを送信するためのワイヤレストランシーバを更に含む、
    請求項9記載のシステム。
  12. 前記入力/出力アドレス及び前記第一のメモリアドレスのビットサイズに関連する第二の入力/出力アクセス動作を検出するため、第二のマイクロコード命令の遮断手段を含む第二のプロセッサと、
    第二のOSのスレッド及び前記入力/出力アドレススペースに関連するコンフィギュレーションアドレスを記録する第二のスクラッチパッドメモリと、前記第二のマクロコード命令の遮断手段は、前記第二のOSのスレッドに関連する前記コンフィギュレーションメモリアドレスと関連されるコンフィギュレーションデータとを、前記第二のメモリアドレスのビットサイズを有する第二のパケットに結合し、
    前記第一のプロセッサと前記第二のプロセッサを含む集積回路と、
    を備えることを特徴とする請求項9記載のシステム。
  13. 前記第一のスクラッチパッドメモリは、マイクロコードシーケンサによりアクセスされる、
    請求項9記載のシステム。
  14. システムマネージメントの割り込みが前記第一のプロセッサにより検出された後、前記関連されるコンフィギュレーションデータのコピーを受信するシステムマネージメントメモリを更に備える、
    請求項9記載のシステム。
  15. 前記第一のスクラッチパッドメモリは、マイクロコードスクラッチパッドメモリを含む、
    請求項9記載のシステム。
  16. コンフィギュレーションメモリアドレス及び第一のメモリアドレスのビットサイズに関連する入力/出力アクセス動作を検出するステップと、
    前記コンフィギュレーションメモリアドレス及び関連されるコンフィギュレーションデータを、前記第一のメモリアドレスのビットサイズよりも大きな第二のメモリアドレスビットサイズを有するパケットに結合するステップと、
    を含むことを特徴とする方法。
  17. 前記コンフィギュレーションメモリアドレスをマイクロコードスクラッチパッドメモリに保存するステップを更に含む、
    請求項16記載の方法。
  18. 前記コンフィギュレーションメモリアドレスをスレッド当たりで保存するステップを更に含む、
    請求項16記載の方法。
  19. 前記コンフィギュレーションメモリアドレス及び前記関連されるコンフィギュレーションデータを使用して、コアハードウェアエレメントにおけるメモリマップレジスタと通信するためにデコードされるメモリアドレスに書き込むステップを更に含む、
    請求項16記載の方法。
  20. 前記メモリマップレジスタは、PCI(Peripheral Component Interconnect)コンフィギュレーションスペースの一部としてデコードされる、
    請求項19記載の方法。
  21. 前記コンフィギュレーションメモリアドレス及び前記関連されるコンフィギュレーションデータに関連するマイクロコードコンテクストを保存するステップと、
    システムマネージメントの割り込みを処理するステップと、
    前記マイクロコードのコンテクストを回復するステップと、
    を更に含む請求項16記載の方法。
  22. システムマネージメントの割り込みを検出するステップと、
    システムマネージメントメモリに前記関連されるコンフィギュレーションデータのコピーを保存するステップと、
    を更に含む請求項16記載の方法。
  23. 前記関連されるコンフィギュレーションデータのコピーを検索するステップと、
    前記関連されるコンフィギュレーションデータを前記コンフィギュレーションアドレスに書き込むステップと、
    再開命令を実行するステップと、
    を更に含む請求項22記載の方法。
  24. プロセッサにより実行されたとき、前記プロセッサに、
    コンフィギュレーションメモリアドレスと第一のメモリアドレスのビットサイズとに関連する入力/出力アクセス動作を検出するステップと、
    前記コンフィギュレーションメモリアドレスと関連されるコンフィギュレーションデータとを、前記第一のメモリアドレスのビットサイズよりも大きな第二のメモリアドレスのビットサイズを有するパケットに結合するステップと、
    を含む方法を実行させるコンピュータ読み取り可能な記憶媒体に記憶された命令を有するコンピュータ読み取り可能な記憶媒体。
  25. 前記命令は、前記プロセッサにより実行されたとき、前記プロセッサに、前記パケットのコンテンツにより定義されるアドレスでの読み取り動作又は書き込み動作のうちの1つを実行するステップを含む方法を実行させる、
    請求項24記載のコンピュータ読み取り可能な記憶媒体。
  26. 前記パケットのコンテンツにより定義されるアドレスは、コアハードウェアにおけるメモリマップレジスタと通信するためにデコードされるメモリアドレスを含む、
    請求項25記載のコンピュータ読み取り可能な記憶媒体。
  27. 前記命令は、前記プロセッサにより実行されたとき、前記プロセッサに、前記検出するステップを達成するためにマイクロコードのシーケンスを実行するステップを含む方法を実行させる、
    請求項24記載のコンピュータ読み取り可能な記憶媒体。
  28. 前記命令は、前記プロセッサにより実行されたとき、前記プロセッサに、システムマネージメントの割り込みを検出するステップ、及びシステムマネージメントメモリに前記コンフィギュレーションメモリアドレスに関連するデータを含む多数のマイクロコードスクラッチパッドメモリのコンテンツを保存するステップを含む方法を実行させる、
    請求項24記載のコンピュータ読み取り可能な記憶媒体。
JP2006349809A 2005-12-30 2006-12-26 アドレススペースエミュレーション Expired - Fee Related JP5128122B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/323,465 2005-12-30
US11/323,465 US8423682B2 (en) 2005-12-30 2005-12-30 Address space emulation

Publications (2)

Publication Number Publication Date
JP2007183950A true JP2007183950A (ja) 2007-07-19
JP5128122B2 JP5128122B2 (ja) 2013-01-23

Family

ID=37908031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006349809A Expired - Fee Related JP5128122B2 (ja) 2005-12-30 2006-12-26 アドレススペースエミュレーション

Country Status (5)

Country Link
US (1) US8423682B2 (ja)
EP (1) EP1835396A3 (ja)
JP (1) JP5128122B2 (ja)
CN (1) CN100481027C (ja)
TW (1) TWI331282B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101496340B1 (ko) * 2008-10-31 2015-03-04 삼성전자주식회사 프로세서 및 메모리 제어 방법
JP2015127982A (ja) * 2015-04-06 2015-07-09 学校法人早稲田大学 マルチプロセッサシステム

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007143278A2 (en) 2006-04-12 2007-12-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
US8677105B2 (en) 2006-11-14 2014-03-18 Soft Machines, Inc. Parallel processing of a sequential program using hardware generated threads and their instruction groups executing on plural execution units and accessing register file segments using dependency inheritance vectors across multiple engines
US8473941B2 (en) * 2008-07-08 2013-06-25 Sandisk Il Ltd. Dynamic file system restriction for portable storage devices
US8055805B2 (en) 2009-03-31 2011-11-08 Intel Corporation Opportunistic improvement of MMIO request handling based on target reporting of space requirements
CN103250131B (zh) 2010-09-17 2015-12-16 索夫特机械公司 包括用于早期远分支预测的影子缓存的单周期多分支预测
TWI520070B (zh) 2011-03-25 2016-02-01 軟體機器公司 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的記憶體片段
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
TWI666551B (zh) 2011-05-20 2019-07-21 美商英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
US20150039859A1 (en) 2011-11-22 2015-02-05 Soft Machines, Inc. Microprocessor accelerated code optimizer
EP2783280B1 (en) 2011-11-22 2019-09-11 Intel Corporation An accelerated code optimizer for a multiengine microprocessor
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
KR102063656B1 (ko) 2013-03-15 2020-01-09 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9632825B2 (en) 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
CN112732238B (zh) * 2020-12-28 2024-02-20 上海微盟企业发展有限公司 一种基于js的执行上下文获取方法及相关装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02168351A (ja) * 1988-03-23 1990-06-28 Du Pont Pixel Syst Ltd 積分変換方法
JPH0844655A (ja) * 1994-06-20 1996-02-16 Internatl Business Mach Corp <Ibm> マルチプル・バス情報処理システムのアドレス空間の拡張
US5638532A (en) * 1994-12-06 1997-06-10 Digital Equipment Corporation Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode
US6189062B1 (en) * 1996-09-10 2001-02-13 Lsi Logic Corporation Apparatus and method for address translation in bus bridge devices
US6457115B1 (en) * 2000-06-15 2002-09-24 Advanced Micro Devices, Inc. Apparatus and method for generating 64 bit addresses using a 32 bit adder
US6629157B1 (en) * 2000-01-04 2003-09-30 National Semiconductor Corporation System and method for virtualizing the configuration space of PCI devices in a processing system
US6725366B1 (en) * 2000-09-07 2004-04-20 International Business Machines, Corporation System and method for 32 bit code branching to 64 bit targets
JP2004531838A (ja) * 2001-06-29 2004-10-14 インテル コーポレイション 仮想pciデバイス装置及び方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5423013A (en) 1991-09-04 1995-06-06 International Business Machines Corporation System for addressing a very large memory with real or virtual addresses using address mode registers

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02168351A (ja) * 1988-03-23 1990-06-28 Du Pont Pixel Syst Ltd 積分変換方法
JPH0844655A (ja) * 1994-06-20 1996-02-16 Internatl Business Mach Corp <Ibm> マルチプル・バス情報処理システムのアドレス空間の拡張
US5638532A (en) * 1994-12-06 1997-06-10 Digital Equipment Corporation Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode
US6189062B1 (en) * 1996-09-10 2001-02-13 Lsi Logic Corporation Apparatus and method for address translation in bus bridge devices
US6629157B1 (en) * 2000-01-04 2003-09-30 National Semiconductor Corporation System and method for virtualizing the configuration space of PCI devices in a processing system
US6457115B1 (en) * 2000-06-15 2002-09-24 Advanced Micro Devices, Inc. Apparatus and method for generating 64 bit addresses using a 32 bit adder
US6725366B1 (en) * 2000-09-07 2004-04-20 International Business Machines, Corporation System and method for 32 bit code branching to 64 bit targets
JP2004531838A (ja) * 2001-06-29 2004-10-14 インテル コーポレイション 仮想pciデバイス装置及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101496340B1 (ko) * 2008-10-31 2015-03-04 삼성전자주식회사 프로세서 및 메모리 제어 방법
JP2015127982A (ja) * 2015-04-06 2015-07-09 学校法人早稲田大学 マルチプロセッサシステム

Also Published As

Publication number Publication date
CN1991797A (zh) 2007-07-04
CN100481027C (zh) 2009-04-22
TWI331282B (en) 2010-10-01
JP5128122B2 (ja) 2013-01-23
TW200745856A (en) 2007-12-16
EP1835396A2 (en) 2007-09-19
US8423682B2 (en) 2013-04-16
US20070174587A1 (en) 2007-07-26
EP1835396A3 (en) 2008-04-23

Similar Documents

Publication Publication Date Title
JP5128122B2 (ja) アドレススペースエミュレーション
US9606919B2 (en) Method and apparatus to facilitate shared pointers in a heterogeneous platform
JP5911985B2 (ja) ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
CN100592271C (zh) 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法
JP6124463B2 (ja) 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール
KR101572079B1 (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
US8645811B2 (en) System and method for selective error checking
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
US11249927B2 (en) Directed interrupt virtualization
US8621112B2 (en) Discovery by operating system of information relating to adapter functions accessible to the operating system
US10223149B2 (en) Implementing device models for virtual machines with reconfigurable hardware
WO2013100975A1 (en) Workload adaptive address mapping
US11880908B2 (en) System and method for pre-boot dynamic video rendering and graphics interpretation by a virtual graphics browser
US10853299B2 (en) Hot-plugged PCIe device configuration system
US6269459B1 (en) Error reporting mechanism for an AGP chipset driver using a registry
US10216524B2 (en) System and method for providing fine-grained memory cacheability during a pre-OS operating environment
KR20190138031A (ko) 반도체 장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100727

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101022

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110511

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110518

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110527

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120330

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120405

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120427

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120601

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120606

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

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

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

LAPS Cancellation because of no payment of annual fees