JP5681782B2 - オン・ダイ・システム・ファブリック・ブロックの制御 - Google Patents

オン・ダイ・システム・ファブリック・ブロックの制御 Download PDF

Info

Publication number
JP5681782B2
JP5681782B2 JP2013268430A JP2013268430A JP5681782B2 JP 5681782 B2 JP5681782 B2 JP 5681782B2 JP 2013268430 A JP2013268430 A JP 2013268430A JP 2013268430 A JP2013268430 A JP 2013268430A JP 5681782 B2 JP5681782 B2 JP 5681782B2
Authority
JP
Japan
Prior art keywords
address
memory
osf
shadow
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.)
Active
Application number
JP2013268430A
Other languages
English (en)
Other versions
JP2014112387A (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 JP2014112387A publication Critical patent/JP2014112387A/ja
Application granted granted Critical
Publication of JP5681782B2 publication Critical patent/JP5681782B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Sewing Machines And Sewing (AREA)

Description

本開示は概して、電子機器の分野に関する。より具体的には、本発明の一実施形態は、オン・ダイ・システム・ファブリック(OSF)・ブロックの制御の方法に関する。
電子機器の設計において、半導体製のIPブロック(「IPコア」または「ロジックコア」、より一般的には「ロジックブロック」とも呼ばれる)は、ロジック回路、セル、または、チップレイアウトの設計では再利用可能な部分である。例えば、このようなロジックブロックは、さまざまなチップ設計またはロジック設計の構成要素として利用または再利用されるとしてよい。
IPブロックの数が増加すると、1つのシステムに統合するのが困難になる。また、IPブロックは、設計では、(例えば、コストを低く維持するべく)高度な回路を含まない場合がある。このため、アドレス処理に関連する一部のタスクは、IPブロック内のロジックではなくホストプロセッサによって実行する必要がある場合がある。この結果、例えば、ホストプロセッサをユーザモードとカーネルモードとの間で切り替える頻度が高くなり、アドレス処理に関するレイテンシが発生してしまう場合がある。
添付図面を参照しつつ詳細に説明する。
図中、参照番号の最大桁は、当該参照番号が最初に用いられた図面を表す。複数の図面で同じ参照番号を用いている場合は、同様または同一のものを表す。
本明細書で説明する実施形態を実施するために用いられるコンピューティングシステムの実施形態を示すブロック図である。 一実施形態に係るユーザレベル・コード・スニペットを示す図である。 一部の実施形態に係る方法を示すフローチャートである。 一部の実施形態に係るOSページテーブルおよびTLBに含まれるエントリの例を示す図である。 一部の実施形態に係る方法を示すフローチャートである。 本明細書で説明する実施形態を実施するために用いられるコンピューティングシステムの実施形態を示すブロック図である。 本明細書で説明する実施形態を実施するために用いられるコンピューティングシステムの実施形態を示すブロック図である。
以下に記載する説明では、さまざまな実施形態を深く理解していただくべく具体的且つ詳細な内容を数多く記載する。しかし、一部の実施形態は、以下に記載する具体的且つ詳細な内容を利用することなく実施され得る。また、公知の方法、手順、構成要素、および回路は、具体的な実施形態をあいまいにすることを避けるべく、詳細な説明を省略する。
一部の実施形態は、オン・ダイ・システム・ファブリック(OSF)を介して結合されている複数のIPブロックまたはロジックブロックを制御する方法に関する。当該制御は、一実施形態によると、ユーザレベルでアサートされるとしてよい。また、OSFは、プロセッサコアをIPブロック(一部の実施形態では、入出力装置等)にインターフェースするとしてよい。IPブロックは一般的に、例えば、コスト上の理由でメモリ・マネジメント・ユニット(MMU)を有していないことがあり、OSFはIPブロックに物理アドレスを通知する必要がある。アドレス処理をサポートする方法の1つとして、IPブロックについてカーネル内デバイスドライバを利用する方法が挙げられる。このようなデバイスドライバは、物理アドレスに基づいて動作する特権を持つとしてよい。しかし、このモデルは、頻繁なユーザモードとカーネルモードとの間での切替および/またはページテーブルウォークによって高コストであるために、加速の粒度が高くなると不十分であるとしてよい。しかし、ユーザレベルでの制御では、物理アドレスをIPブロックに通知する方法が問題となる。
この問題に対処するべく、ある実施形態では、物理アドレスシャドーイングを利用する。例えば、オペレーティングシステム(OS)において、(例えば、無効な物理アドレス範囲を用いて)複数の物理ページの番号またはアドレスのシャドーを形成するシステムコールを実現するとしてよい。これは、本願においては、「リマッピング(Remap)」とも呼ぶ。また、ハードウェア(例えば、OSFと通信する位置のハードウェア)は、シャドーアドレスから本物の物理アドレスを抽出するとしてよい(これは、本願では「リマッピング−1(Remap−1)」とも呼ぶ)。ある実施形態によると、リマッピング−1用のハードウェアは、アドレスの最上位の1ビットまたは2ビットを反転させることを含むとしてよい。一実施形態によると、アプリケーション(例えば、ユーザレベルで実行するもの)は、ユーザ空間からメモリアドレスおよびその他のパラメータをIPブロックに渡すために通常のx86ストアを利用するとしてよい。これは、ページテーブルにアクセスするためにカーネルにトラップされるよりも一桁分早く、IPブロック内に特別なMMUを構築するよりも何桁分も安価である。
また、一部の実施形態によると、ユーザアプリケーションは、4つの特徴でIPブロックの実行をトリガするとしてよい。(1)命令セットアーキテクチャ(ISA)拡張機能がない、(2)ユーザ−カーネル間のモード切替が過剰でない、(3)特別なMMUがない、および/または、(4)プロセッサコアおよびIPブロックは、固定アドレスではなく、ランタイム時にのみ周知となるアドレスを共有する、の4つである。このような特徴によって、IPブロックの利用に関する制限が大幅に緩和されるとしてよい。また、OSFを介して高粒度のアクセラレータをより広範囲に配設することが可能となるとしてよい。
本願に係る方法は、さまざまなコンピューティングシステム、例えば、図1、図6および図7を参照しつつ説明するようなものに適応し得る。より具体的には、図1は、本発明のある実施形態に係るコンピューティングシステム100を示すブロック図である。システム100は、1以上のエージェント102−1から102−M(本明細書では「エージェント102」と総称する)を備えるとしてよい。ある実施形態によると、エージェント102のうち1以上は、コンピューティングシステム、例えば、図6および図7を参照しつつ説明するコンピューティングシステムの構成要素のうち任意のものであってよい。
図1に示すように、エージェント102は、OSF等のファブリック104を介して通信を行なうとしてよい。このため、エージェント102およびファブリック104は、ある実施形態によると、同じ集積回路ダイ上にあるとしてよい。本明細書では、「OSF」とは、スケーリング可能、設定可能、および/または、各製品固有のオン・ダイ・システム・ファブリックを意味する用語であるとしてよい。例えば、エージェント102はそれぞれ、ブリッジ(例えば、別のファブリックへと接続するためのブリッジ)、IPブロック、または、ファブリック104を介して結合している電子デバイスの別の構成要素であってよい。一実施形態によると、ファブリック104は、さまざまなエージェント(例えば、コンピューティングデバイス)間でのデータ通信を可能とするコンピュータネットワークを含むとしてよい。ある実施形態によると、ファブリック104は、シリアル(例えば、ポイント・ツー・ポイント)リンクおよび/または共有通信ネットワークを介して通信を行う1以上のインターコネクト(または、インターコネクトネットワーク)を含むとしてよい。例えば、一部の実施形態によると、FB−DIMM(Fully−Buffered Dual In−line Memory Module)との通信を可能とするリンク上でのコンポーネントのデバッグまたは検証が容易になるとしてよい。例えば、FB−DIMMリンクは、メモリモジュールをホストコントローラデバイス(例えば、プロセッサまたはメモリハブ)に結合するシリアルリンクである。デバッグ情報は、FB−DIMMチャネルホストから、チャネル単位でのトラフィック追跡分析ツール(例えば、1以上のロジックアナライザ)に沿って観察されるように、送信されるとしてよい。
一実施形態によると、システム100は、物理層、リンク層、ルーティング層、トランスポート層、および/または、プロトコル層を含む階層化プロトコル方式をサポートしているとしてよい。ファブリック104はさらに、ある1つのプロトコル(例えば、キャッシュ・プロセッサまたはキャッシュ・アウェア・メモリ・コントローラ)から別のプロトコルへのポイント・ツー・ポイントネットワークまたは共有ネットワークのデータ送信(例えば、パケット送信)を容易にするとしてよい。また、一部の実施形態によると、ファブリック104は、1以上のキャッシュ・コヒーレンシ・プロトコルに準拠した通信を行うとしてよい。これに代えて、ファブリック104は、非コヒーレンシ・プロトコルに準拠するとしてもよい。
さらに、図1の矢印の方向で示すように、エージェント102はファブリック104を介してデータの送受信を行なうとしてよい。このため、一部のエージェントは一方向リンクを利用するが、二方向リンクを通信に利用するエージェントもあるとしてよい。例えば、1以上のエージェント(例えば、エージェント102−M)は(例えば、一方向リンク106を介して)データを送信するとしてよく、他のエージェント(例えば、エージェント102−2)は(例えば、一方向リンク108を介して)データを受信するとしてよく、一部のエージェント(例えば、エージェント102−1)は(例えば、二方向リンク110を介して)データの送受信を行なうとしてよい。一部の実施形態によると、リンク106−110は、IPブロックが複数の設計で利用可能となるようなプロトコルおよび/または信号伝達方式を持つOSFインターフェースであってよい。
ある実施形態によると、エージェント102間を接続するOSFインターフェース(例えば、リンク106−110)は、主要チャネルおよびサイドバンドチャネルと呼ばれる2つのポートを提供するとしてよい。主要チャネルは、(a)ピア間および/または上流へのデータ転送のための高性能インターフェースであってよく、(b)メモリ(例えば、32ビット、64ビット)、入出力(I/O)、設定、および、メッセージトランザクションをサポートし、(c)PCI(Peripheral Component Interconnect)順序決定ルールおよび/またはエニュメレーションをサポートし、(d)トランザクション分割プロトコルをサポートし、および/または、(e)PCI−eヘッダ情報をマッピングするとしてよい。サイドバンドチャネルは、(i)全てのサイドバンド情報を通信すると同時に特定用途ワイヤを除外する標準インターフェースであってよく、(ii)ポイント・ツー・ポイント・ネットワークを提供するとしてよく、(iii)状態、電力管理、設定シャドーイング、試験モード等に用いられるとしてよく、および/または、(iv)低性能で用いられるとしてよい(例えば、主要なデータ転送には利用されない)。
図2は、一部の実施形態に係る、OSF付属IPブロックを用いる、または、用いない、高速フーリエ変換(FFT)のためのユーザレベルのコードスニペットを示す図である。部分c)は、本明細書で後述するように、本発明の実施形態により可能となる。
カーネル内デバイスドライバ、IPブロックは、OSF等のパケット対応インターコネクトを介してプロセッサコアと通信するとしてよい。IPブロックは、OSのデバイスドライバによって制御されるとしてよい。ネットワーク・インターフェース・カード(NIC)ドライバ等の特別な場合には、メモリバッファは、開始アドレスをドライバに渡すタスクが未処理となるように、固定されるとしてよい。一部の実施形態によると、より一般的なものが利用される場合、例えば、IPブロックで関数が呼び出される度に、「バッファ」アドレスは変化する。任意のユーザ空間の仮想アドレス(VA)から始まる実行をIPブロックで呼び出す場合、ユーザアプリケーションはシステムコールを作成するとしてよく、当該システムコールはカーネルにトラップされて、デバイスドライバをトリガする(例えば、図2のb)を参照のこと)。デバイスドライバ(例えば、図6のデバイスドライバ)は、メモリ内のページテーブルで検索することによって(TLB(トランスレーション・ルックアサイド・バッファ)を利用するのではない)物理アドレス(PA)を取得する。デバイスドライバは、PAをIPブロックに渡す。しかし、頻繁なユーザ−カーネル間でのモード切り替えおよびページテーブルウォークによって、数千プロセッサクロックが簡単に費やされてしまい、IPブロックにおける高速化という高性能化の効果を大きく相殺してしまう。また、I/Oデバイス用のユーザレベルのデバイスドライバには、アプリケーションおよびカーネルを事前に割り当てられた固定メモリバッファを共有するように制限したり、または、メモリシステム内にアプリケーションの仮想アドレスを物理アドレスに変換する特別なMMUを必要とするものもある。
図2を参照すると、部分c)は、一実施形態に係るプログラミングモデルを図示している。例えば、アプリケーションは、malloc()の後にシステムコールを1つ作成する。この後、ユーザ空間の仮想アドレス(図2のva_alias)への通常(例えば、x86)のストア命令を用いてIPブロックにデータアドレスを渡すことが可能となる。続く図面では、IPブロックがアプリケーションの仮想アドレスをサポートする物理メモリアドレスを受信する様子の一例を示す。
より具体的に、図3は、ある実施形態に係るリマッピング動作を実行する方法300を示すフローチャートである。リマッピング動作は、OSにおいて、例えば、無効または未使用の物理アドレス範囲を利用して、物理ページ番号または物理アドレスのシャドーを作成するためのシステムコールとして実現されるとしてよい。一実施形態によると、方法300を参照して説明するデータ通信またはコマンド通信は、図1を参照して説明した主要チャネルで実行されるとしてよい。
ある実施形態によると、図3に示すリマッピング動作を実行した後、リマッピング−1動作において、シャドーアドレスから実際の物理アドレスを抽出するOSF内のハードウェアを利用するとしてよい。一実施形態によると、リマッピング−1動作は、アドレスの最上位の1ビットまたは2ビット(一部のビットでは3ビット以上)を反転させることによって実行されるとしてよい。
一部の実施形態によると、リマッピング−1動作は、シャドーアドレスから実際の物理アドレスへの変換であり、物理アドレスが用いられる任意の箇所で実行されるとしてよい。例えば、システムインターコネクトまたはIPブロックにおいて実行されるとしてよい。システムインターコネクトで当該動作を実行する場合には、IPブロックが送信先でないメモリトランザクションのクリティカルパスでこの動作を実行する場合があるとしてよい。アクセラレータ内で当該動作を実行する場合には、リマッピング−1ロジックを各IPブロック内に内蔵することが必要となるとしてよい。これに代えて、このようなハードウェアはOSFに設けられるとしてもよい。このようなサポートによって、アプリケーションは、1つのX86ストア命令を用いて、利用すべきメモリアドレスをIPブロックに指定するとしてよい。
図1から図3を参照しつつ説明すると、処理302において、複数バイト(例えば、図2のc)に示す「size」)を、VAのエイリアス(Alias_VA:本明細書では、「VA_Alias」とも呼ぶ)について、ユーザのアドレス空間で割り当てるとしてよい。処理304において、VAのPAを特定するとしてよい。処理306において、PAに基づきSA(シャドーアドレス)を特定するとしてよい。例えば、処理306において、Remap_to_shadow()では、OSFが真の物理アドレスを容易に抽出できるように、単純な反転関数を含むマッピングを行なうとしてよい。一部のシステムでは、実際にインストールされるメモリは、物理アドレス空間の半分未満である。このような機械では、Remap()関数およびRemap−1()関数は共に、アドレスの最上位の1ビットまたは2ビットを反転させることによって実施されるとしてよい。例えは、以下のように表される。
Remap(PA)=0x80000000 XOR PA
Remap−1(SA)=0x80000000 XOR SA
一部の実施形態によると、アプリケーションのうち加速されない部分は、本来のVAの利用を継続するとしてよい。また、syscall_OSF_remap()は、malloc()の後でのみ、例えば、アプリケーション初期化段階で実行されるとしてよい(例えば、図2のc)を参照のこと)。
ある実施形態によると、Remap−1(SA)は、IPブロック関数が呼び出される度に、OSFハードウェアによって実行されるとしてよい。ある実施形態によると、OSは、シャドーページテーブルと元々のページテーブルとの間の一貫性を保つ必要がある。
処理308において、Alias_VAおよびSAについてページテーブルエントリを追加するとしてよい。一実施形態によると、処理308において、当該エントリのページ属性は、キャッシュ不可能(図4を参照しつつ説明する)に設定されるとしてよい。処理310において、処理302の割り当てサイズの終端に到達すると、Alias_VAを返送するとしてよい。終端に到達していない場合、処理314において、VAおよびAlias_VAは更新されるとしてよい(例えば、VAおよびAlias_VAは選択ページサイズだけインクリメントされるとしてよい)。処理314の後、方法300は処理304から再度開始される。
図4は、一部の実施形態に係るOSページテーブルおよびTLBに含まれるエントリの一例を示す図である。例えば、0x0200400は、syscall_OSF_Remap()によって割り当てられたユーザ仮想アドレスである。VA0x0000b000のエイリアスとして、物理ページ0x30a07000によってサポートされている。しかし、ページテーブルでは、最上位ビットを意図的に反転させているので、物理ページは0xb0a07000(0x80000000 XOR 0x30a07000=0xb0a07000)となる。ある実施形態によると、TLBおよびTLBミスハンドラは、PAがシャドーであるか否かは考慮しない。
図4に示すように、アドレスマッピングは、システムコールを作成した結果、呼び出し元のアプリケーションについて変更されている。本例では、0x40000000より高位の任意のPAは、ベースラインプラットフォームにおいて無効である。エイリアス仮想アドレスは全て、物理アドレス空間402の無効領域にマッピングされる。両方のシステムにおける有効なPAの範囲は、0x0〜0x40000000(インストールされたメモリおよびメモリマップドIO(MMIO)を含む)である。
図5は、アプリケーションがX86ストア命令「st register→0x02004000」を、OSF内に特別なロジックを持つ、または、持たないプラットフォーム(それぞれ、図5の部分(B)および(A))で実行する場合を比較した図である。どちらの場合でも、プロセッサ(CPU)のMMUは、図4の(B)に示すページテーブルに基づき、VAをPAである0xb0a07000に変換する。ページの属性ビットはキャッシュ不可能である旨を示しているので、書き込みは、プロセッサキャッシュを迂回して、システムインターコネクトに直接到達する(図5の処理2)。
図5の(A)において、PAは有効なPAアドレス範囲(例えば、有効なPA範囲は、0x0〜0x40000000(インストールされたメモリおよびMMIOを含む))外であるので、ハードウェアは例外を発行する。図5の(B)では、OSFは、無効物理アドレス0xb0a07000(処理3)を選択して、リマッピング−1を実行して(処理4)、書込トランザクションを、IPブロックに真の物理アドレス0x30a07000を与えるコマンドパケットに変換する(処理5)。
さまざまな種類のコンピューティングシステムを用いて本明細書に記載する実施形態(例えば、図1から図5を参照しつつ説明した実施形態)を実施するとしてよい。例えば、図6は、コンピューティングシステム600の実施形態を示すブロック図である。図1に示すエージェント102のうち1以上は、コンピューティングシステム600の構成要素のうち1以上を有するとしてよい。コンピューティングシステム600は、相互接続ネットワーク(または、バス)604に結合されている1以上の中央演算処理装置(CPU)602(本明細書では、「プロセッサ602」と総称する)を備えるとしてよい。プロセッサ602は、任意の種類のプロセッサであってよく、例えば、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク605で通信されるデータを処理するもの)等であってよい(縮小命令セットコンピュータ(RISC)プロセッサまたは複合命令セットコンピュータ(CISC)プロセッサを含む)。また、プロセッサ602は、シングルコア型またはマルチコア型のいずれであってもよい。マルチコア型のプロセッサ602は、複数の種類のプロセッサコアを1つの同じ集積回路(IC)ダイに集積するとしてよい。また、マルチコア型のプロセッサ602は、対称型または非対称型の複数のプロセッサとして実現されるとしてもよい。
プロセッサ602は、1以上のキャッシュおよび/またはメモリ管理ユニット(MMU、図1から図5を参照しつつ説明したもの)(不図示)を有するとしてよい。キャッシュは、さまざまな実施形態において、個別キャッシュおよび/または共有キャッシュであってよい。一般的に、キャッシュは、別の箇所に格納されている元データ、または、事前に算出されている元データに対応するデータを格納する。メモリアクセスレイテンシを小さくするべく、データがキャッシュに格納された後は、元データを再度フェッチしたり、再度算出するのではなく、キャッシュされているコピーにアクセスするとしてよい。キャッシュは、システム600の1以上の構成要素が利用する電子データ(例えば、命令を含む)を格納する任意の種類のキャッシュであってよく、例えば、レベル1(L1)キャッシュ、レベル2(L2)キャッシュ、レベル3(L3)キャッシュ、中間レベルキャッシュ、最終レベルキャッシュ(LLC)等であってよい。
図6に示すように、OSF104は、1以上のIPブロック603とプロセッサ602との間に(例えば、インターコネクト604を介して)結合されているとしてよい。図1から図5を参照しつつ説明したように、OSF104はリマッピング−1動作を実行するロジックを有するとしてよい。
チップセット606もまた、相互接続ネットワーク604に結合されているとしてよい。さらに、チップセット606は、メモリ制御ハブ(MCH)608を有するとしてよい。MCH608は、メモリ612に結合されているメモリコントローラ610を含むとしてよい。メモリ612は、プロセッサ602またはコンピューティングシステム600の構成要素と通信している任意のその他のデバイスによって実行される命令列を一例として含むデータを格納するとしてよい。ある実施形態によると、メモリ612は、図1から図5を参照しつつ説明したようなデータ(例えば、ページテーブル)を格納するべく利用されるとしてよい。また、本発明の一実施形態によると、メモリ612は、1以上の揮発性格納デバイス(または、メモリデバイス)、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)等を含むとしてよい。ハードディスク等の不揮発性メモリを利用するとしてもよい。相互接続ネットワーク604には、さらに装置を結合するとしてよい。例えば、複数のプロセッサおよび/または複数のシステムメモリを結合するとしてよい。
MCH608はさらに、(例えば、ある実施形態によると、グラフィクスアクセラレータを介して)表示デバイス616に結合されているグラフィクスインターフェース614を有するとしてよい。一実施形態によると、グラフィクスインターフェース614は、アクセラレーテッド・グラフィクス・ポート(AGP)を介して、表示デバイス616に結合されているとしてよい。本発明のある実施形態によると、表示デバイス616(例えば、フラットパネルディスプレイ)は、例えば、ビデオメモリまたはシステムメモリ(例えば、メモリ612)等の格納デバイスに格納されているデジタル形式の画像を、表示デバイス616が解釈および表示する表示信号へと変換する信号変換器を介して、グラフィクスインターフェース614に結合されているとしてよい。
図6に示すように、ハブインターフェース618は、MCH608を入出力制御ハブ(ICH)620に結合しているとしてよい。ICH620は、コンピューティングシステム600に結合されている入出力(I/O)デバイスに対するインターフェースとなるとしてよい。ICH620は、周辺機器ブリッジ(またはコントローラ)624を介して、バス622に結合されているとしてよい。周辺機器ブリッジ(またはコントローラ)624は、PCIe仕様に準拠しているPCI(ペリフェラル・コンポーネント・インターコネクト)ブリッジ、USB(ユニバーサルシリアルバス)コントローラ等である。ブリッジ624は、プロセッサ602と周辺機器との間のデータ経路となるとしてよい。他の種類のトポロジーを利用するとしてもよい。また、複数のバスを、例えば、複数のブリッジまたはコントローラを介して、ICH620に結合するとしてよい。例えば、バス622は、PCIスペシャル・インタレスト・グループ(米国オレゴン州ポートランド)が発行しているPCIローカルバス仕様、改訂版3.0、2004年に準拠しているとしてよい(以下では、「PCIバス」と呼ぶ)。これに代えて、バス622は、上記のPCIスペシャル・インタレスト・グループ(米国オレゴン州ポートランド)が発行しているPCI−X仕様、改訂版3.0a、2003年に準拠したバス(以下では、「PCI−Xバス」と呼ぶ)、および/または、PCIエクスプレス(PCIe)仕様(PCIe仕様、改訂版2.0、2006年)に準拠したバスを含むとしてもよい。また、バス622は、その他の種類および構成のバスシステムを含むとしてよい。また、ICH620に結合されているその他の周辺機器は、本発明のさまざまな実施形態によると、IDE(インテグレーテッド・ドライブ・エレクトロニクス)またはSCSI(スモール・コンピュータ・システム・インターフェース)のハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、DVI(デジタル・ビデオ・インターフェース))等を含むとしてよい。
バス622は、オーディオデバイス626、1以上のディスクドライブ628、および、ネットワークアダプタ630(ある実施形態によると、NICであってよい)に結合されているとしてよい。一実施形態によると、ネットワークアダプタ630またはバス622に結合されているその他のデバイスは、切替ロジック612(一部の実施形態では、図4のロジック412と同一または同様のロジックであってよい)を介して、チップセット606と通信するとしてよい。その他のデバイスをバス622に結合するとしてもよい。また、さまざまな構成要素(例えば、ネットワークアダプタ630)は、本発明の一部の実施形態によると、MCH608に結合されているとしてよい。さらに、プロセッサ602およびMCH608を一体化して、1つのチップを構成するとしてよい。
コンピューティングシステム600はさらに、揮発性メモリおよび/または不揮発性メモリ(または、ストレージ)を備えるとしてよい。例えば、不揮発性メモリは、リードオンリーメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、628)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタル・バーサティル・ディスク(DVD)、フラッシュメモリ、光磁気ディスク、または、電子データ(例えば、命令を含む)を格納可能なその他の種類の不揮発性機械可読媒体のうち1以上を含むとしてよい。
メモリ612は、ある実施形態において、オペレーティングシステム(OS)632、アプリケーション634、および/または、デバイスドライバ636(例えば、図1から図5を参照しつつ説明したOS、アプリケーション、および/または、デバイスドライバ)のうち1以上を含むとしてよい。メモリ612はさらに、MMIO処理専用の領域を含むとしてよい。メモリ612に格納されているプログラムおよび/またはデータは、メモリ管理処理の一貫として、ディスクドライブ628に代りに書き込まれるとしてよい。アプリケーション634は、ネットワーク605に結合されている1以上のコンピューティングデバイスとの間で1以上のパケットを通信するべく、(例えば、プロセッサ602上で)実行されるとしてよい。ある実施形態によると、パケットは、少なくとも1つの送信側から少なくとも1つの受信側へと(例えば、ネットワーク605等のネットワークを介して)送信される1以上の電気信号によって符号化されている1以上のシンボルおよび/または値から成るシーケンスであってよい。例えば、各パケットは、当該パケットのルーティングおよび/または処理で利用されるさまざまな情報、例えば、送信元アドレス、送信先アドレス、パケットの種類等を含むヘッダを持つとしてよい。各パケットはさらに、当該パケットがコンピュータネットワーク(例えば、ネットワーク605)を介して複数のコンピューティングデバイス間で転送する未処理データ(またはコンテンツ)を含むペイロードを持つとしてよい。
ある実施形態によると、アプリケーション634は、OS632を用いて、例えば、デバイスドライバ636を介して、システム600のさまざまな構成要素と通信するとしてよい。このため、デバイスドライバ636は、例えば、チップセット606を介した、OS632と、ネットワークアダプタ630との間、または、システム600に結合されているその他のI/Oデバイスとの間の通信インターフェースを提供するためのネットワークアダプタ(530)専用のコマンドを含むとしてよい。
ある実施形態によると、OS632はネットワークプロトコルスタックを含むとしてよい。プロトコルスタックは概して、ネットワーク(605)を介して送信された、特定のプロトコルに準拠しているパケットを処理するべく実行される一連の手順またはプログラムを意味する。例えば、TCP/IP(トランスポートコントロールプロトコル/インターネットプロトコル)パケットは、TCP/IPスタックを用いて処理されるとしてよい。デバイスドライバ636は、例えば、プロトコルスタックに基づき処理されるバッファ638を示すとしてよい。
ネットワーク605は、任意の種類のコンピュータネットワークを含むとしてよい。ネットワークアダプタ630はさらに、ネットワーク605を介してデータの送受信を行なうべく、利用可能な記述子(例えば、メモリ612に格納されている)に割り当てられているバッファ(例えば、メモリ612に格納されている)にパケットを書き込むダイレクト・メモリ・アクセス(DMA)エンジン652を含むとしてよい。
図7は、本発明の実施形態に係るポイント・ツー・ポイント(PtP)構成のコンピューティングシステム700を示す図である。具体的には、図7は、プロセッサ、メモリ、および、入出力デバイスが複数のポイント・ツー・ポイント・インターフェースで相互接続されているシステムを示す。図1から図6を参照しつつ説明した処理は、システム700の構成要素のうち1以上によって実行されるとしてよい。
図7に示すように、システム700は複数のプロセッサを備えるとしてよい。説明を簡略化するべく、そのうち2つのみ、プロセッサ702および704を図示している。プロセッサ702および704はそれぞれ、メモリ710および712(請求項2および3を参照して説明するようなMMIO領域を格納しているとしてよい)との間での通信を可能とするべくローカルメモリコントローラハブ(MCH)706および708を有するとしてよい。メモリ710および/または712は、図6のメモリ612を参照しつつ説明したデータと同様のデータを格納するとしてよい。図7に示すように、プロセッサ702および704はさらに、図4および図6を参照しつつ説明したキャッシュと同様のキャッシュを1以上含むとしてよい。
ある実施形態によると、プロセッサ702および704は、図6を参照して説明したプロセッサ602のうち1つであってよい。プロセッサ702および704はそれぞれ、ポイント・ツー・ポイント(PtP)インターフェース回路716および718を用いて、PtPインターフェース714を介して、データを交換するとしてよい。また、プロセッサ702および704はそれぞれ、ポイント・ツー・ポイントインターフェース回路726、728、730、および、732を用いて、個別PtPインターフェース722および724を介して、チップセット720とデータを交換するとしてよい。チップセット720はさらに、例えば、PtPインターフェース回路737を用いて、高性能グラフィクスインターフェース736を介して、高性能グラフィクス回路734との間でデータを交換するとしてよい。
少なくとも1つの実施形態によると、OSF104は、プロセッサ702、704を(例えば、PtPインターフェースを介して)1以上のIPブロック603に結合するとしてよい。しかし、本発明の他の実施形態は、図7のシステム700に含まれるその他の回路、ロジックユニット、または、デバイスに含まれるとしてよい。さらに、本発明のその他の実施形態は、図7に示した複数の回路、ロジックユニット、または、デバイス間に分散して含まれるとしてもよい。また、プロセッサ702、704は、MMU(図5を参照しつつ説明したのと同様のもの)を含むとしてよい。さらに、OSF104は、リマッピング−1ロジックを含むとしてよく、または、当該ロジックはシステム700内のどこに配置するとしてもよい。例えば、チップセット720、通信デバイス746、バス740/744に結合されているデバイスに配置されるとしてもよい。
チップセット720は、PtPインターフェース回路741を用いてバス740と通信するとしてよい。バス740は、通信相手のデバイスを1以上有するとしてよい。例えば、バスブリッジ742およびI/Oデバイス743等である。バスブリッジ742は、バス744を介して、キーボード/マウス745、通信デバイス746(例えば、モデム、ネットワークインターフェースデバイス、または、コンピュータネットワーク605と通信するその他の通信デバイス)、オーディオI/Oデバイス、および/または、データ格納デバイス748等のデバイスと通信するとしてよい。データ格納デバイス748は、プロセッサ702および/または704によって実行されるコード749を格納するとしてよい。
また、システムは、入出力(I/O)デバイスと、プロセッサを前記I/Oデバイスに結合するオン・ダイ・システム・ファブリック(OSF)と、ユーザレベルの要求に応じて、物理アドレスに対応するシャドーアドレスを格納するメモリとを備え、前記OSFは、前記シャドーアドレスから前記物理アドレスを決定するロジックを有してもよい。メモリは、メモリアドレスまたはその他のパラメータをI/Oデバイスに渡すストア処理を生成するアプリケーションを格納してもよい。

本発明のさまざまな実施形態によると、例えば、図1から図7を参照しつつ本明細書で説明した処理は、ハードウェア(例えば、回路)、ソフトウェア、ファームウェア、マイクロコード、または、これらの組み合わせとして実現されるとしてよい。これらは、例えば、本明細書で説明するプロセスを実行するようにコンピュータをプログラミングするために用いられる命令(またはソフトウェアプロシージャ)が格納された機械可読媒体またはコンピュータ可読媒体を含むコンピュータプログラム製品として提供されるとしてよい。また、「ロジック」という用語は、一例として、ソフトウェア、ハードウェア、または、ソフトウェアおよびハードウェアの組み合わせを含むとしてよい。機械可読媒体は、図1から図7を参照しつつ説明したものと同様の格納デバイスを含むとしてよい。また、このようなコンピュータ可読媒体は、コンピュータプログラム製品としてダウンロードされるとしてもよい。この場合、プログラムは、リモートコンピュータ(例えば、サーバ)から要求元コンピュータ(例えば、クライアント)へと、搬送波またはその他の伝播媒体として提供されるデータ信号を用いて、通信リンク(例えば、バス、モデム、または、ネットワーク接続)を介して転送されるとしてよい。
本明細書において「一実施形態」または「ある実施形態」という表現は、当該実施形態に関連付けて説明する特定の特徴、構造、または、特性が少なくとも1つの実施例に含まれることを意味する。「一実施形態」という表現は本明細書において何度も登場するが、必ずしも全てが同じ実施形態を意味しているものではない。
また、明細書および請求項において、「結合」および「接続」という用語を利用している。本発明の一部の実施形態によると、「接続」は、2つ以上の構成要素が互いに物理的または電気的に直接接触している様子を示す用語であるとしてよい。「結合」は、2つ以上の構成要素が物理的または電気的に直接接触していることを意味するとしてよい。しかし、「結合」は同時に、2つ以上の構成要素が互いに直接接触していないが、互いに共同することも意味するとしてよい。
構造上の特徴および/または方法論上の動作に特有の用語を用いて本発明の実施形態を説明してきたが、請求の対象となる主題は記載した具体的な特徴および動作に限定されるものではないと理解されたい。逆に、具体的な特徴および動作は、請求の対象となる主題を実施する形態の一例として開示している。

Claims (18)

  1. プロセッサを、物理アドレスを用いるロジックブロックに結合するオン・ダイ・システム・ファブリック(OSF)と、
    ユーザレベルの要求に応じて、物理アドレスに対応するシャドーアドレスを含むページテーブル、前記物理アドレスに対応する仮想アドレス、および、前記シャドーアドレスに対応するエイリアス仮想アドレスを格納するメモリと
    を備え、
    オペレーティングシステムにおいて、システムコールは、無効または未使用の物理アドレス範囲を使用して前記シャドーアドレスを生成して、
    前記OSFは、前記シャドーアドレスから前記物理アドレスを決定するロジックを有し、
    ユーザレベルで実行されるアプリケーションは、前記シャドーアドレスを前記ロジックブロックへ渡すストア処理を利用する
    装置。
  2. 前記メモリは、ページテーブルを格納し、
    前記ページテーブルは、前記エイリアス仮想アドレスおよび前記シャドーアドレスに対応するエントリを含む請求項に記載の装置。
  3. 前記メモリは、前記シャドーアドレスおよび前記物理アドレスについてキャッシュ可能情報を格納する請求項1に記載の装置。
  4. 前記プロセッサおよび前記ロジックブロックは、ランタイム時にのみ周知となるアドレスを共有する請求項1から3のいずれか1項に記載の装置。
  5. 前記プロセッサおよび前記ロジックブロックは、固定アドレスではなくランタイム時にのみ周知となるアドレスを共有する請求項1から4のいずれか1項に記載の装置。
  6. 前記メモリは、前記ユーザレベルの要求を生成するためのアプリケーションを格納する請求項1から5のいずれか1項に記載の装置。
  7. 前記メモリは、メモリアドレスまたはその他のパラメータを前記ロジックブロックに渡すストア処理を生成するアプリケーションを格納する請求項1から6のいずれか1項に記載の装置。
  8. 前記OSFおよび前記メモリは、同じ集積回路ダイ上にある請求項1から7のいずれか1項に記載の装置。
  9. 前記プロセッサは、前記OSFを介して前記ロジックブロックと通信する複数のプロセッサコアを含む請求項1から8のいずれか1項に記載の装置。
  10. 前記複数のプロセッサコア、前記メモリ、および、前記OSFは、同じ集積回路ダイ上にある請求項に記載の装置。
  11. 前記OSFを前記プロセッサに結合する第1のインターフェースおよび前記OSFを前記ロジックブロックに結合する第2のインターフェースをさらに備え、
    前記第1のインターフェースおよび前記第2のインターフェースはそれぞれ、主要チャネルおよびサイドバンドチャネルを有し、
    前記ロジックブロックおよび前記プロセッサは、前記第1のインターフェースおよび前記第2のインターフェースの前記主要チャネルを介して通信する請求項1から10のいずれか1項に記載の装置。
  12. オペレーティングシステムにおいて、システムコールは、無効または未使用の物理アドレス範囲を使用してシャドーアドレスを生成して、ユーザレベルの要求に応じて、物理アドレスに対応する前記シャドーアドレスを含むページテーブル、前記物理アドレスに対応する仮想アドレス、および、前記シャドーアドレスに対応するエイリアス仮想アドレスを格納するためにメモリの一部分を割り当てる段階と、
    ユーザレベルで実行されるアプリケーションは、前記シャドーアドレスをロジックブロックへ渡すストア処理を利用して、オン・ダイ・システム・ファブリック(OSF)において、前記シャドーアドレスから前記物理アドレスを決定する段階と
    を備える方法。
  13. ページテーブルを前記メモリに格納する段階をさらに備え、
    前記ページテーブルは、前記エイリアス仮想アドレスおよび前記シャドーアドレスに対応するエントリを含む請求項12に記載の方法。
  14. 前記メモリの一部分を割り当てる段階は、無効な物理アドレス範囲を割り当てる段階を有する請求項12または13に記載の方法。
  15. 前記シャドーアドレスおよび前記物理アドレスについてのキャッシュ可能情報を前記メモリに格納する段階をさらに備える請求項12から14のいずれか1項に記載の方法。
  16. アプリケーションを前記メモリに格納する段階と、
    前記アプリケーションが前記ユーザレベルの要求を生成する段階とを
    さらに備える請求項12から15のいずれか1項に記載の方法。
  17. アプリケーションを前記メモリに格納する段階と、
    前記アプリケーションがメモリアドレスまたはその他のパラメータをロジックブロックに渡すストア処理を生成する段階と
    をさらに備える請求項12から16のいずれか1項に記載の方法。
  18. プロセッサを前記OSFを介して前記ロジックブロックに結合する段階をさらに備える請求項17に記載の方法。
JP2013268430A 2009-03-31 2013-12-26 オン・ダイ・システム・ファブリック・ブロックの制御 Active JP5681782B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/415,941 US8225069B2 (en) 2009-03-31 2009-03-31 Control of on-die system fabric blocks
US12/415,941 2009-03-31

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012500824A Division JP5448218B2 (ja) 2009-03-31 2010-03-03 オン・ダイ・システム・ファブリック・ブロックの制御

Publications (2)

Publication Number Publication Date
JP2014112387A JP2014112387A (ja) 2014-06-19
JP5681782B2 true JP5681782B2 (ja) 2015-03-11

Family

ID=42785722

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012500824A Expired - Fee Related JP5448218B2 (ja) 2009-03-31 2010-03-03 オン・ダイ・システム・ファブリック・ブロックの制御
JP2013268430A Active JP5681782B2 (ja) 2009-03-31 2013-12-26 オン・ダイ・システム・ファブリック・ブロックの制御

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012500824A Expired - Fee Related JP5448218B2 (ja) 2009-03-31 2010-03-03 オン・ダイ・システム・ファブリック・ブロックの制御

Country Status (7)

Country Link
US (2) US8225069B2 (ja)
JP (2) JP5448218B2 (ja)
KR (1) KR101352721B1 (ja)
CN (3) CN102378968A (ja)
DE (1) DE112010001467B4 (ja)
RU (1) RU2491616C2 (ja)
WO (1) WO2010117518A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225069B2 (en) 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
US8327198B2 (en) * 2009-08-14 2012-12-04 Intel Corporation On-die logic analyzer for semiconductor die
US8914568B2 (en) * 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
KR101781617B1 (ko) * 2010-04-28 2017-09-25 삼성전자주식회사 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩
US8711875B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
CN103827776B (zh) 2011-09-30 2017-11-07 英特尔公司 通过pci高速组件减少功耗的活动状态功率管理(aspm)
EP2761386B1 (en) * 2011-09-30 2017-09-06 Intel Corporation Managing sideband segments in on-die system fabric
US9100348B2 (en) 2011-10-03 2015-08-04 Intel Corporation Managing sideband routers in on-die system fabric
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
EP2972888B1 (en) * 2013-03-14 2019-02-06 Micron Technology, INC. Memory systems and methods including training,data organizing,and/or shadowing
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
KR20170061221A (ko) * 2015-11-25 2017-06-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8021A (en) * 1851-04-01 Brick-press
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
US7058726B1 (en) 1996-07-08 2006-06-06 Internet Number Corporation Method and systems for accessing information on a network using message aliasing functions having shadow callback functions
US5748539A (en) * 1997-03-05 1998-05-05 Sun Microsystems, Inc. Recursive multi-channel interface
JPH10312338A (ja) 1997-05-13 1998-11-24 Toshiba Corp メモリ制御装置、及びメモリ制御方法
US6226732B1 (en) * 1997-10-02 2001-05-01 Hitachi Micro Systems, Inc. Memory system architecture
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
JP4116137B2 (ja) * 1998-03-06 2008-07-09 富士通株式会社 電子データ交換システムにおけるデータ保護装置及び方法及び当該方法を実現するプログラムを記録した記録媒体
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
CA2346231A1 (en) * 2000-05-08 2001-11-08 Internet Number Corporation Method and system for accessing information on a network using message aliasing functions having shadow callback functions
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US8068485B2 (en) * 2003-05-01 2011-11-29 Genesis Microchip Inc. Multimedia interface
US7194572B2 (en) * 2003-08-08 2007-03-20 Intel Corporation Memory system and method to reduce reflection and signal degradation
US20050091432A1 (en) 2003-10-28 2005-04-28 Palmchip Corporation Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
US7310721B2 (en) * 2003-10-30 2007-12-18 Microsoft Corporation Shadow page tables for address translation control
CN101002169A (zh) * 2004-05-19 2007-07-18 Arc国际(英国)公司 微处理器架构
JP2006127407A (ja) * 2004-11-01 2006-05-18 Canon Inc 半導体集積回路
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
GB0505289D0 (en) * 2005-03-15 2005-04-20 Symbian Software Ltd Computing device with automated page based rem shadowing and method of operation
US7299337B2 (en) * 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US7363463B2 (en) 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
KR101173539B1 (ko) 2006-02-15 2012-08-14 삼성전자주식회사 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법
CN100426276C (zh) * 2006-12-07 2008-10-15 威盛电子股份有限公司 总线相容装置和暂存值修正方法
JP5143601B2 (ja) * 2008-03-24 2013-02-13 株式会社日立製作所 情報処理装置と情報処理方法およびストレージシステム
US8214845B2 (en) * 2008-05-09 2012-07-03 International Business Machines Corporation Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US8225069B2 (en) 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks

Also Published As

Publication number Publication date
US8819388B2 (en) 2014-08-26
US20120284486A1 (en) 2012-11-08
CN103383661B (zh) 2017-04-26
JP5448218B2 (ja) 2014-03-19
WO2010117518A2 (en) 2010-10-14
US8225069B2 (en) 2012-07-17
WO2010117518A3 (en) 2011-01-13
JP2012520533A (ja) 2012-09-06
DE112010001467T5 (de) 2012-05-16
KR101352721B1 (ko) 2014-01-16
JP2014112387A (ja) 2014-06-19
CN101853226B (zh) 2013-05-29
US20100250889A1 (en) 2010-09-30
DE112010001467B4 (de) 2017-01-05
RU2011141892A (ru) 2013-05-10
CN102378968A (zh) 2012-03-14
KR20110127730A (ko) 2011-11-25
RU2491616C2 (ru) 2013-08-27
CN101853226A (zh) 2010-10-06
CN103383661A (zh) 2013-11-06

Similar Documents

Publication Publication Date Title
JP5681782B2 (ja) オン・ダイ・システム・ファブリック・ブロックの制御
US11663135B2 (en) Bias-based coherency in an interconnect fabric
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US7707383B2 (en) Address translation performance in virtualized environments
US11204867B2 (en) PCIe controller with extensions to provide coherent memory mapping between accelerator memory and host memory
TWI470435B (zh) 為本地與遠端實體記憶體間之共用虛擬記憶體提供硬體支援
US8161243B1 (en) Address translation caching and I/O cache performance improvement in virtualized environments
JP6171210B2 (ja) 複数orチェーンバスの拡張データバス反転符号化
US20070143546A1 (en) Partitioned shared cache
US8904045B2 (en) Opportunistic improvement of MMIO request handling based on target reporting of space requirements
JP2008033928A (ja) Gpuにおけるページマッピングのための専用機構
US7657724B1 (en) Addressing device resources in variable page size environments
TWI502346B (zh) 根據窺探回應資訊之目錄快取分配技術
US20110078386A1 (en) Buffering in media and pipelined processing components
US9652560B1 (en) Non-blocking memory management unit
US8593472B1 (en) System and method for accessing a frame buffer via a storage driver
CN113849262A (zh) 用于无需复制而在虚拟机之间移动数据的技术
US20070002853A1 (en) Snoop bandwidth reduction

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141022

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150109

R150 Certificate of patent or registration of utility model

Ref document number: 5681782

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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