JP3927556B2 - マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ - Google Patents
マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ Download PDFInfo
- Publication number
- JP3927556B2 JP3927556B2 JP2004128785A JP2004128785A JP3927556B2 JP 3927556 B2 JP3927556 B2 JP 3927556B2 JP 2004128785 A JP2004128785 A JP 2004128785A JP 2004128785 A JP2004128785 A JP 2004128785A JP 3927556 B2 JP3927556 B2 JP 3927556B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- tlbi
- tlb
- instructions
- interconnect
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
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)
- Multi Processors (AREA)
Description
本発明は、TLBIインストラクションの実行に対してマスタ・プロセッサ(すなわち、最終的にTLBIの生成をもたらした変換に関する要求を発行したプロセッサ)がどのように応答するかについて指図する、新しいTLBIプロトコルを提供する。このTLBIプロトコルは、受け取り側プロセッサが従うプロシージャのあらかじめ設定済みのセットであり、最終的には、マルチプロセッサ・システムのパーティション内の複数プロセッサによる、相互接続上におけるTLBIのコンカレント発行を可能にする。また、このTLBI応答プロトコルの具体化によって、プロセッサは、相互接続に対してTLBIオペレーションを発行する前に、PFTに関するグローバル・ロックを最初に獲得する必要があるという要件が排除される。このように本発明は、ロック獲得オペレーションを行う必要性ならびにそれに伴う遅れ時間を排除し、それにはロックのコンテンション、システムの同期化、およびそれに続くロックの解放が含まれる。
上記の実施態様の中で述べたように、TLBI応答プロトコルは、インストラクションの実行の中止およびキャッシュ・サブシステム・レベル(ここでは、キャッシュ・コヒーレンシー・レベルとも呼んでいる)におけるインストラクション・キューのドレイニングを強制する。実行が再開するとき、インストラクションがそれらの仮想アドレスとともにLSUから再発行され、アドレス変換のためにTLBへ送られ、その後、実行のために実行キュー内においてスケジューリングが行われる。アドレス変換、スケジューリング、およびロード/ストアの実行は、非常に多くのクロック・サイクルを使用することがあり、その間、そのキャッシュ・サブシステムにおける実行ユニットは、実行の再開に先行してインストラクションがキューに入れられるまでを待機しなければならない。
TLBIに先行するインストラクションの仮想アドレスが変換されるときには、TLBIオペレーションがTLB内のPTEをまだ無効化していないことから、その変換が『推論的に』完了される。変換後の実アドレスを伴うこれらのインストラクションは、キューに転送されて、『推論的に』スケジューリングが行われる。インストラクション(1ないしは複数)の仮想アドレスは、その後、TLBIによって無効化されることがあり、したがって、その実アドレスの不確定性を鑑みてインストラクションのスケジューリングが推論的に行われると言う。
図4に戻り、特にブロック417を参照するが、TLBIがTLB102へ送られたとき、TLB102は、ブロック416に示されているように対応するPTEを無効化し、その後ブロック417に示されているように、E‐キュー109内の推論によるインストラクションの仮想アドレス・タグ505とTLBIアドレスを比較する。本発明によれば、TLBI応答プロトコルに従って動作しているTLBコントローラが、サーチ・エンジン234に、仮想アドレス・タグ505のサーチおよびそのアドレスとTLBIによって指定された仮想アドレスの比較を実行させる。E‐キュー109内においてタグが明瞭に識別されていることから、TLBIアドレスとE‐キュー109内の仮想アドレス・タグ505の比較は容易に完了する。
代替実施態様においては、仮想アドレスが、実行ユニット・キュー内においてインストラクションに対してタグ付けされずに、プロセッサ内の独立したストレージ・キャッシュ内にストアされる。図6は、この具体化を例示しており、それによって推論的スケジューリングの行われたインストラクションの仮想アドレスが、一意的に追跡される。これに例示されているように、E‐キュー109に加えて、推論的スケジューリングの行われたすべてのインストラクションの仮想アドレスをキャッシュするために追加のタグ・アドレス・キャッシュ/レジスタ511が提供される。この実施態様によれば、仮想アドレスが配置されるとき、そのアドレスが独立のストレージ・キャッシュに転送され、その中にストアされる。TLBI仮想アドレスの比較は、このストレージ・キャッシュ内のアドレスに対して行われ、一致を生じると、全体のE‐キュー109からインストラクションのドレイニングが行われる。
別の実施態様においては、TLBI応答プロトコルにより、スケジューリング・シーケンス内のTLBIに続くすべてのオペレーションが、進行中のTLBIオペレーションを考慮することなく、実行ユニットに対して発行されることが可能になる。本発明は、これらのインストラクションが、TLBIがターゲットPTEを無効化した後にTLBにおいてそれらの変換を完了することから、これらのインストラクションが無効化された実アドレスを含まないものとなることを認識している。
ここで図7を参照すると、非TLBIインストラクション(つまり、キャッシュ・コヒーレンシー・レベルにおいてメモリ・アクセスを完了するためのアドレス・インストラクション)およびTLB102に対するTLBIインストラクションによるアクセスを受け取り、スケジューリングを行うための分離された非TLBIインストラクション・キュー605およびTLBIキュー606を伴うプロセッサ設計のブロック図表現が示されている。これに示されているように、インストラクション・シーケンス602は、TLBI1およびTLBI2を含んでいる。TLBIキュー606は、スヌーパ・ロジックおよびTLBコントローラによってコントロールされる。スヌーパ・ロジックが使用され、相互接続上においてスヌープされたTLBIは、直接TLBIキュー606へ転送される。TLBIキュー606および非TLBIインストラクション・キュー605には、TLB102に対するアクセスが提供され、インストラクションは、FIFOシーケンサ608を介してTLB102へシーケンシングされる。FIFOシーケンサ608は、それらのインストラクション(TLBIおよび非TLBI)を、受け取った順序に従ってTLBコントローラへ転送し、TLBIおよび非TLBIインストラクションは、互いに関して非同期でそれぞれのキューから送られる。
上記の応答プロセスによって提供される注目すべき恩典の1つは、リトライのないTLBIプロトコルの導入である。これは、TLBIインストラクションを実行しているマスタを、スヌーパのように見せかけ、それぞれのプロセッサに現在の未決のTLBIオペレーションの完了を追跡させることによって達成される。したがって、プロセッサのスヌーパは、プロセッサの未決の(完了していない)TLBIオペレーションに起因してスヌープ済みのTLBIのリトライを行う必要がなくなる。このように本発明は、リトライのないTLBIプロトコルを提供するが、これは、OSおよびTLBコントローラによって具体化されるTLBI応答プロトコルの直接的な結果である。
102 変換索引バッファ(TLB)
103 TLBコントローラ
105 インストラクション・キュー
107 スヌーパ
108 実行ユニット
109 実行キュー
125 相互接続
130 メモリ
132 ページ・フレーム・テーブル(PFT)
134 ページ・テーブル・エントリ(PTE)
136 オペレーティング・システム(OS)
137 ページ違反割り込みハンドラ
138 アプリケーション・プログラム
239 TLBIキュー
241 TLBIレジスタ
Claims (14)
- マルチプロセッサ・データ処理システムであって、
相互接続によって互いに結合されている第1のプロセッサおよび第2のプロセッサを含む複数のプロセッサを備え、
各プロセッサは、変換索引バッファ(TLB)、少なくとも1つの実行ユニット、および関連する実行キューを含むキャッシュ・コヒーレンシー・サブシステムを含み、前記実行キューは、前記TLBによって対応する仮想アドレスから変換された実アドレスを伴うアドレス・インストラクションを保持し、
前記相互接続によって前記複数のプロセッサに結合され、複数の、仮想および実アドレス変換ペアのページ・テーブル・エントリ(PTE)がストアされるページ・フレーム・テーブル(PFT)を含むメモリと、
各プロセッサに関連して設けられ、前記複数のプロセッサのそれぞれによるTLB無効化インストラクション(TLBI)の受け取りに対する応答をコントロールするTLBI応答プロトコルの具体化のためのオペレーティング・ロジックとをさらに備え、
前記第1のプロセッサのメモリ・アクセス・オペレーションに関連して前記PFTにおいてページ違反が発生するときに生成される第1のTLBIを前記第1のプロセッサが受け取ることに応答して、前記オペレーティング・ロジックが、前記第1のプロセッサに、前記相互接続上に前記第1のTLBIを発行する前に、前記第1のプロセッサの前記実行キュー内にキューされているアドレス・インストラクションのドレイニングを行わせ、前記第1のプロセッサの前記実行キューのドレイニングの完了に応答して、前記相互接続上に前記第1のTLBIを発行させるとともに、前記第2のプロセッサに、前記第1のプロセッサの前記実行キューのドレイニングが完了した後にのみ、前記相互接続上の前記第1のTLBIのスヌープを行わせる、マルチプロセッサ・データ処理システム。 - 前記オペレーティング・ロジックは、
前記第1のプロセッサが前記第1のTLBIを受け取るとき、前記第1のプロセッサにおけるアドレス・インストラクションの処理を直ちに中止するための手段と、
前記第1のプロセッサを除く前記複数のプロセッサのそれぞれからの前記第1のTLBIに関するTLBI完了メッセージの受け取りをモニタするための手段とを有し、
前記TLBI完了メッセージは、前記第1のプロセッサを除く前記複数のプロセッサのそれぞれにおけるTLB内の対応するエントリの無効化が完了したことを示し、
前記第1のプロセッサを除く前記複数のプロセッサのそれぞれから前記TLBI完了メッセージが受け取られるときに限り、前記第1のプロセッサにおけるアドレス・インストラクションの処理を再開するための手段をさらに有する、請求項1に記載のマルチプロセッサ・データ処理システム。 - 前記複数のプロセッサのそれぞれに関連して設けられ、自プロセッサを除く他のプロセッサによって前記相互接続上に置かれるすべてのトランザクションをスヌープするスヌーパをさらに備え、
前記第1のプロセッサが前記相互接続上に前記第1のTLBIを発行することに応答して、前記第2のプロセッサの前記スヌーパが、前記第1のTLBIをスヌープし、当該スヌープした第1のTLBIを前記第2のプロセッサのTLBへ転送する、請求項2に記載のマルチプロセッサ・データ処理システム。 - 前記第1のプロセッサの前記実行キューのドレイニングが行われている間に、前記第1のプロセッサの前記スヌーパが、前記第2のプロセッサから前記相互接続上に発行される第2のTLBIをスヌープすることに応答して、前記第1のプロセッサが、前記第2のプロセッサに対し前記第2のTLBIのリトライを強制する、請求項3に記載のマルチプロセッサ・データ処理システム。
- 前記第1のプロセッサを除く前記複数のプロセッサのそれぞれからの前記第1のTLBIに関するTLBI完了メッセージの受け取りを待機している間に、前記第1のプロセッサの前記スヌーパが、前記第2のプロセッサから前記相互接続上に発行される第2のTLBIをスヌープすることに応答して、前記第1のプロセッサが、前記第1のプロセッサのTLB内の対応するエントリを無効化し、前記スヌープされた第2のTLBIに関するTLBI完了メッセージを直ちに発行する、請求項3に記載のマルチプロセッサ・データ処理システム。
- 前記第2のTLBIを発行した後に、前記第2のプロセッサの前記スヌーパが、前記第1のTLBIをスヌープすることに応答して、前記第2のプロセッサは、前記第2のプロセッサのTLB内の対応するエントリを無効化し、前記スヌープされた第1のTLBIに関するTLBI完了メッセージを直ちに発行する、請求項4に記載のマルチプロセッサ・データ処理システム。
- 相互接続によって互いに結合されている第1のプロセッサおよび第2のプロセッサを備えたマルチプロセッサ・データ処理システムにおいて、前記第1のプロセッサおよび前記第2のプロセッサからのコンカレントな変換索引バッファ無効化インストラクション(TLBI)のハンドリングを行うための方法であって、
前記第1のプロセッサのメモリ・アクセス・オペレーションに関連してページ違反が発生するときに生成される第1のTLBIを前記第1のプロセッサが受け取ることに応答して、前記第1のプロセッサのキャッシュ・コヒーレンシー・サブシステムにおけるインストラクションの実行を直ちに中止するステップと、
前記第1のプロセッサの変換索引バッファ(TLB)内の対応するエントリを無効化するステップと、
前記第1のプロセッサの前記キャッシュ・コヒーレンシー・サブシステムにおけるすべての実行キュー内にキューされているアドレス・インストラクションのドレイニングを行うステップと、
前記実行キューのドレイニングが完了したときに限り、前記第1のプロセッサから前記相互接続上に前記第1のTLBIを発行するステップとを含み、
前記実行キューのドレイニングが完了した後にのみ、前記第2のプロセッサが前記相互接続上の前記第1のTLBIのスヌープを行う、方法。 - 前記第2のプロセッサから前記第1のTLBIに関するTLBI完了メッセージが受け取られる後に限り、前記第1のプロセッサにおけるインストラクションの実行を再開するステップをさらに含み、
前記TLBI完了メッセージは、前記第2のプロセッサにおけるTLB内の対応するエントリの無効化が完了したことを示す、請求項7に記載の方法。 - 前記第1のプロセッサが、前記第2のプロセッサからのオーバーラップする第2のTLBIに関して前記相互接続のスヌーピングを行うステップと、
前記第2のTLBIがスヌープされるとき、前記実行キューのドレイニングが完了していなければ、前記第2のプロセッサに対し前記第2のTLBIのリトライを強制するステップとをさらに含む、請求項7に記載の方法。 - 前記第2のTLBIがスヌープされ、かつ前記実行キューのドレイニングが完了しているとき、前記第2のTLBIに応答して、前記第1のプロセッサのTLB内の対応するエントリを無効化し、前記第2のプロセッサに対し前記第2のTLBIに関するTLBI完了メッセージを直ちに発行するステップをさらに含む、請求項9に記載の方法。
- 相互接続によって互いに結合されている複数のプロセッサを備えたマルチプロセッサ・データ処理システムにおいて用いるためのプロセッサであって、
少なくとも1つの実行ユニットを備え、
前記実行ユニットのそれぞれは、当該実行ユニットに関連して設けられ、かつ関連する実行ユニットによる実行のために変換済み実アドレスを有するインストラクションをスケジュールするための実行キューと、前記実行キューに結合されているキャッシュ・コヒーレンシー・サブシステムを有し、
前記キャッシュ・コヒーレンシー・サブシステムは、
変換索引バッファ(TLB)および関連するTLBコントローラと、
前記実行ユニットにおいて実行するインストラクションを受け取るための手段とを含み、
前記インストラクションは、当該プロセッサのメモリ・アクセス・オペレーションに関連するページ違反が発生するときに生成されるTLB無効化インストラクション(TLBI)を含み、
前記TLBIの受け取りに応答して、(1)最初に当該プロセッサの各実行キューのドレイニングを行い、(2)次に前記TLBIを前記相互接続上に発行する、TLBI応答プロトコルを具体化するためのオペレーティング・ロジックをさらに含む、プロセッサ。 - 当該プロセッサを前記相互接続に結合するとともに、他のプロセッサおよびメモリを含めた外部コンポーネントに結合するための接続手段と、
各実行キューのドレイニングの完了に応答して、前記相互接続上に前記TLBIを発行するための手段とをさらに含む、請求項11に記載のプロセッサ。 - 前記オペレーティング・ロジックは、
前記TLBIが受け取られるときに、当該プロセッサにおけるインストラクションの処理を中止するための手段と、
当該プロセッサを除く前記複数のプロセッサのそれぞれからの前記TLBIに関するTLBI完了メッセージの受け取りをモニタするための手段と、
前記複数のプロセッサのすべてから前記TLBI完了メッセージが受け取られるときに限り、当該プロセッサにおけるインストラクションの処理を再開するための手段とを含む、請求項11に記載のプロセッサ。 - 前記外部コンポーネントによって前記相互接続上に置かれるすべてのトランザクションをスヌープするスヌーパをさらに含み、
前記スヌーパが、他のプロセッサから前記相互接続上に発行されるTLBIをスヌープすることに応答して、前記オペレーティング・ロジックが、前記スヌープされたTLBIを当該プロセッサの前記TLBへ転送し、前記TLB内の対応するエントリを無効化し、かつ前記スヌープされたTLBIに関するTLBI完了メッセージを直ちに発行する、請求項12に記載のプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/425,425 US7073043B2 (en) | 2003-04-28 | 2003-04-28 | Multiprocessor system supporting multiple outstanding TLBI operations per partition |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004326798A JP2004326798A (ja) | 2004-11-18 |
JP3927556B2 true JP3927556B2 (ja) | 2007-06-13 |
Family
ID=33299509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004128785A Expired - Fee Related JP3927556B2 (ja) | 2003-04-28 | 2004-04-23 | マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US7073043B2 (ja) |
JP (1) | JP3927556B2 (ja) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996843B2 (en) | 1999-08-25 | 2011-08-09 | Qnx Software Systems Gmbh & Co. Kg | Symmetric multi-processor system |
US7757033B1 (en) | 2004-02-13 | 2010-07-13 | Habanero Holdings, Inc. | Data exchanges among SMP physical partitions and I/O interfaces enterprise servers |
US7633955B1 (en) | 2004-02-13 | 2009-12-15 | Habanero Holdings, Inc. | SCSI transport for fabric-backplane enterprise servers |
US7873693B1 (en) | 2004-02-13 | 2011-01-18 | Habanero Holdings, Inc. | Multi-chassis fabric-backplane enterprise servers |
US7685281B1 (en) | 2004-02-13 | 2010-03-23 | Habanero Holdings, Inc. | Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers |
US8868790B2 (en) | 2004-02-13 | 2014-10-21 | Oracle International Corporation | Processor-memory module performance acceleration in fabric-backplane enterprise servers |
US7843906B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway initiator for fabric-backplane enterprise servers |
US8713295B2 (en) | 2004-07-12 | 2014-04-29 | Oracle International Corporation | Fabric-backplane enterprise servers with pluggable I/O sub-system |
US7243200B2 (en) * | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US7281116B2 (en) * | 2004-07-30 | 2007-10-09 | Hewlett-Packard Development Company, L.P. | Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes |
US7711988B2 (en) * | 2005-06-15 | 2010-05-04 | The Board Of Trustees Of The University Of Illinois | Architecture support system and method for memory monitoring |
US7770170B2 (en) * | 2005-07-12 | 2010-08-03 | Microsoft Corporation | Blocking local sense synchronization barrier |
US7516247B2 (en) | 2005-08-12 | 2009-04-07 | Advanced Micro Devices, Inc. | Avoiding silent data corruption and data leakage in a virtual environment with multiple guests |
US7543131B2 (en) | 2005-08-12 | 2009-06-02 | Advanced Micro Devices, Inc. | Controlling an I/O MMU |
US7793067B2 (en) * | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an IOMMU |
US7480784B2 (en) | 2005-08-12 | 2009-01-20 | Advanced Micro Devices, Inc. | Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU) |
US7739476B2 (en) | 2005-11-04 | 2010-06-15 | Apple Inc. | R and C bit update handling |
US8161480B2 (en) | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
US8447911B2 (en) * | 2007-07-05 | 2013-05-21 | Board Of Regents, University Of Texas System | Unordered load/store queue |
US8122229B2 (en) * | 2007-09-12 | 2012-02-21 | Convey Computer | Dispatch mechanism for dispatching instructions from a host processor to a co-processor |
US8156307B2 (en) * | 2007-08-20 | 2012-04-10 | Convey Computer | Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set |
US8561037B2 (en) | 2007-08-29 | 2013-10-15 | Convey Computer | Compiler for generating an executable comprising instructions for a plurality of different instruction sets |
US9710384B2 (en) | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
US8095735B2 (en) * | 2008-08-05 | 2012-01-10 | Convey Computer | Memory interleave for heterogeneous computing |
US9015399B2 (en) | 2007-08-20 | 2015-04-21 | Convey Computer | Multiple data channel memory module architecture |
US7865675B2 (en) * | 2007-12-06 | 2011-01-04 | Arm Limited | Controlling cleaning of data values within a hardware accelerator |
US8332660B2 (en) * | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
US8775824B2 (en) * | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
US8422402B2 (en) | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8281053B2 (en) | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
US20100115233A1 (en) * | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
US8205066B2 (en) * | 2008-10-31 | 2012-06-19 | Convey Computer | Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor |
US8495261B2 (en) * | 2008-12-12 | 2013-07-23 | International Business Machines Corporation | Redispatching suspended tasks after completion of I/O operations absent I/O interrupts |
US8412911B2 (en) * | 2009-06-29 | 2013-04-02 | Oracle America, Inc. | System and method to invalidate obsolete address translations |
US8423745B1 (en) | 2009-11-16 | 2013-04-16 | Convey Computer | Systems and methods for mapping a neighborhood of data to general registers of a processing element |
US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
US9658877B2 (en) | 2010-08-23 | 2017-05-23 | Empire Technology Development Llc | Context switching using a context controller and on-chip context cache |
US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
US8566841B2 (en) | 2010-11-10 | 2013-10-22 | International Business Machines Corporation | Processing communications events in parallel active messaging interface by awakening thread from wait state |
WO2012070291A1 (ja) * | 2010-11-26 | 2012-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | キャッシュコヒーレンシ制御の方法、システムおよびプログラム |
US9916257B2 (en) * | 2011-07-26 | 2018-03-13 | Intel Corporation | Method and apparatus for TLB shoot-down in a heterogeneous computing system supporting shared virtual memory |
US8893083B2 (en) | 2011-08-09 | 2014-11-18 | International Business Machines Coporation | Collective operation protocol selection in a parallel computer |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
US8631212B2 (en) | 2011-09-25 | 2014-01-14 | Advanced Micro Devices, Inc. | Input/output memory management unit with protection mode for preventing memory access by I/O devices |
US9342452B2 (en) * | 2011-10-07 | 2016-05-17 | Hewlett Packard Enterprise Development Lp | Mapping processor address ranges to persistent storage |
WO2013085518A1 (en) * | 2011-12-08 | 2013-06-13 | Intel Corporation | A method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution |
US8706847B2 (en) | 2012-02-09 | 2014-04-22 | International Business Machines Corporation | Initiating a collective operation in a parallel computer |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
US10430190B2 (en) | 2012-06-07 | 2019-10-01 | Micron Technology, Inc. | Systems and methods for selectively controlling multithreaded execution of executable code segments |
US9092382B2 (en) * | 2012-11-02 | 2015-07-28 | International Business Machines Corporation | Reducing microprocessor performance loss due to translation table coherency in a multi-processor system |
US9330017B2 (en) | 2012-11-02 | 2016-05-03 | International Business Machines Corporation | Suppressing virtual address translation utilizing bits and instruction tagging |
US9128777B2 (en) * | 2013-01-28 | 2015-09-08 | Google Inc. | Operating and maintaining a cluster of machines |
US10445243B2 (en) | 2013-03-14 | 2019-10-15 | Nvidia Corporation | Fault buffer for resolving page faults in unified virtual memory system |
DE102013022168B4 (de) * | 2013-03-14 | 2023-03-09 | Nvidia Corporation | Migrationsschema für vereinheitlichtes virtuelles Speichersystem |
DE102013022169A1 (de) * | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem |
DE102013022166B4 (de) * | 2013-03-14 | 2024-04-25 | Nvidia Corporation | Seitenzustandsverzeichnis zur verwaltung eines vereinheitlichten virtuellen speichers |
US9785554B2 (en) * | 2014-05-30 | 2017-10-10 | International Business Machines Corporation | Synchronizing updates of page table status indicators in a multiprocessing environment |
US20160259728A1 (en) * | 2014-10-08 | 2016-09-08 | Via Alliance Semiconductor Co., Ltd. | Cache system with a primary cache and an overflow fifo cache |
US9684606B2 (en) | 2014-11-14 | 2017-06-20 | Cavium, Inc. | Translation lookaside buffer invalidation suppression |
US9501425B2 (en) | 2014-11-14 | 2016-11-22 | Cavium, Inc. | Translation lookaside buffer management |
US9697137B2 (en) * | 2014-11-14 | 2017-07-04 | Cavium, Inc. | Filtering translation lookaside buffer invalidations |
US9910776B2 (en) | 2014-11-14 | 2018-03-06 | Cavium, Inc. | Instruction ordering for in-progress operations |
US9870328B2 (en) * | 2014-11-14 | 2018-01-16 | Cavium, Inc. | Managing buffered communication between cores |
US9665505B2 (en) | 2014-11-14 | 2017-05-30 | Cavium, Inc. | Managing buffered communication between sockets |
US9830198B2 (en) | 2015-12-22 | 2017-11-28 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US9715459B2 (en) | 2015-12-22 | 2017-07-25 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US9928119B2 (en) * | 2015-12-22 | 2018-03-27 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US9898416B2 (en) | 2015-12-22 | 2018-02-20 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US9575815B1 (en) * | 2015-12-22 | 2017-02-21 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US9779028B1 (en) | 2016-04-01 | 2017-10-03 | Cavium, Inc. | Managing translation invalidation |
EP3255550B1 (en) * | 2016-06-08 | 2019-04-03 | Google LLC | Tlb shootdowns for low overhead |
US10540292B2 (en) | 2016-06-08 | 2020-01-21 | Google Llc | TLB shootdowns for low overhead |
US11327759B2 (en) * | 2018-09-25 | 2022-05-10 | Marvell Asia Pte, Ltd. | Managing low-level instructions and core interactions in multi-core processors |
US10817300B2 (en) | 2018-10-26 | 2020-10-27 | Marvell Asia Pte, Ltd. | Managing commit order for an external instruction relative to two unissued queued instructions |
US10977183B2 (en) * | 2018-12-11 | 2021-04-13 | International Business Machines Corporation | Processing a sequence of translation entry invalidation requests with regard to draining a processor core |
US10740239B2 (en) * | 2018-12-11 | 2020-08-11 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US10817434B2 (en) | 2018-12-19 | 2020-10-27 | International Business Machines Corporation | Interruptible translation entry invalidation in a multithreaded data processing system |
US11263043B1 (en) | 2019-07-19 | 2022-03-01 | Marvell Asia Pte, Ltd. | Managing processor core synchronization using interrupts |
KR102400977B1 (ko) * | 2020-05-29 | 2022-05-25 | 성균관대학교산학협력단 | 프로세서를 통한 페이지 폴트 처리 방법 |
US12001343B1 (en) * | 2022-12-30 | 2024-06-04 | International Business Machines Corporation | Selective distribution of translation entry invalidation requests in a multithreaded data processing system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60254346A (ja) * | 1984-05-31 | 1985-12-16 | Toshiba Corp | マルチプロセツサシステム |
JPH01109452A (ja) * | 1987-10-22 | 1989-04-26 | Fujitsu Ltd | 変換索引バッファ情報の消去制御方式 |
JPH04145570A (ja) * | 1990-10-05 | 1992-05-19 | Fujitsu Ltd | 計算機システムのオペレーション制御方式 |
JPH05151084A (ja) * | 1991-11-26 | 1993-06-18 | Nec Corp | Tlbエントリクリア方式 |
US5437017A (en) * | 1992-10-09 | 1995-07-25 | International Business Machines Corporation | Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system |
US5613083A (en) * | 1994-09-30 | 1997-03-18 | Intel Corporation | Translation lookaside buffer that is non-blocking in response to a miss for use within a microprocessor capable of processing speculative instructions |
US5906001A (en) * | 1996-12-19 | 1999-05-18 | Intel Corporation | Method and apparatus for performing TLB shutdown operations in a multiprocessor system without invoking interrup handler routines |
US5996085A (en) * | 1997-07-15 | 1999-11-30 | International Business Machines Corporation | Concurrent execution of machine context synchronization operations and non-interruptible instructions |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
US6119204A (en) * | 1998-06-30 | 2000-09-12 | International Business Machines Corporation | Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization |
US6345352B1 (en) * | 1998-09-30 | 2002-02-05 | Apple Computer, Inc. | Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions |
US6189078B1 (en) * | 1998-12-22 | 2001-02-13 | Unisys Corporation | System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency |
US6263403B1 (en) * | 1999-10-31 | 2001-07-17 | Hewlett-Packard Company | Method and apparatus for linking translation lookaside buffer purge operations to cache coherency transactions |
US6633967B1 (en) * | 2000-08-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Coherent translation look-aside buffer |
-
2003
- 2003-04-28 US US10/425,425 patent/US7073043B2/en not_active Expired - Fee Related
-
2004
- 2004-04-23 JP JP2004128785A patent/JP3927556B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004326798A (ja) | 2004-11-18 |
US20040215898A1 (en) | 2004-10-28 |
US7073043B2 (en) | 2006-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3927556B2 (ja) | マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ | |
US7617378B2 (en) | Multiprocessor system with retry-less TLBI protocol | |
US7350027B2 (en) | Architectural support for thread level speculative execution | |
US8321634B2 (en) | System and method for performing memory operations in a computing system | |
US8327101B2 (en) | Cache management during asynchronous memory move operations | |
US7921275B2 (en) | Method for enabling direct prefetching of data during asychronous memory move operation | |
US7930504B2 (en) | Handling of address conflicts during asynchronous memory move operations | |
US7991981B2 (en) | Completion of asynchronous memory move in the presence of a barrier operation | |
US8095758B2 (en) | Fully asynchronous memory mover | |
US8356151B2 (en) | Reporting of partially performed memory move | |
US20110208894A1 (en) | Physical aliasing for thread level speculation with a speculation blind cache | |
US20090198935A1 (en) | Method and system for performing an asynchronous memory move (amm) via execution of amm store instruction within instruction set architecture | |
US8275963B2 (en) | Asynchronous memory move across physical nodes with dual-sided communication | |
JPH09138779A (ja) | スヌープ処理方法 | |
EP0514024A2 (en) | Method and apparatus for an improved memory architecture | |
US20090198937A1 (en) | Mechanisms for communicating with an asynchronous memory mover to perform amm operations | |
US10621103B2 (en) | Apparatus and method for handling write operations | |
US20090106498A1 (en) | Coherent dram prefetcher | |
JPH0670779B2 (ja) | フェッチ方法 | |
JP2020523674A (ja) | システム内のキャッシュ転送のオーバーヘッドの削減 | |
US7937570B2 (en) | Termination of in-flight asynchronous memory move | |
US5875468A (en) | Method to pipeline write misses in shared cache multiprocessor systems | |
US5016168A (en) | Method for storing into non-exclusive cache lines in multiprocessor systems | |
US6480915B1 (en) | Bus protocol and token manager for SMP execution of global operations utilizing a single token with implied release | |
US8015380B2 (en) | Launching multiple concurrent memory moves via a fully asynchronoous memory mover |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061114 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070109 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070209 |
|
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: 20070227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070302 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |