JP6362769B2 - マルチプロセッシング環境におけるページ・テーブルの状態インジケータの更新の同期させる方法 - Google Patents
マルチプロセッシング環境におけるページ・テーブルの状態インジケータの更新の同期させる方法 Download PDFInfo
- Publication number
- JP6362769B2 JP6362769B2 JP2017514988A JP2017514988A JP6362769B2 JP 6362769 B2 JP6362769 B2 JP 6362769B2 JP 2017514988 A JP2017514988 A JP 2017514988A JP 2017514988 A JP2017514988 A JP 2017514988A JP 6362769 B2 JP6362769 B2 JP 6362769B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory
- synchronization
- address translation
- indicator
- 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
- 238000000034 method Methods 0.000 claims description 71
- 238000013519 translation Methods 0.000 claims description 47
- 230000008859 change Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 25
- 239000003550 marker Substances 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000001427 coherent effect Effects 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 67
- 230000008569 process Effects 0.000 description 47
- 230000006870 function Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 238000005192 partition Methods 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 101100111162 Arabidopsis thaliana ARPN gene Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/1009—Address translation using page tables, e.g. page table structures
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
付加的な特徴及び利点が実現される。他の実施形態及び態様は、本明細書で詳細に説明され、特許請求される本発明の一部と見なされる。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないが、より高レベルの抽象化では位置(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、位置とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
102:プロセッサ
104、230:メモリ管理ユニット(MMU)
105、231、311:アドレス変換構造
106、110、232:キャッシュ
107、234:同期ユニット
112、212:入力/出力(I/O)サブシステム
114:外部I/Oデバイス
202:中央プロセッサ・コンプレックス(CPC)
208:プロセッサ・メモリ
210:中央プロセッサ
212:入力/出力(I/O)サブシステム
214:仮想マシン(又は論理パーティション)
216、220:プロセッサ・ファームウェア
218:ハイパーバイザ
222:アプリケーション
224:オペレーティング・システム
302:ネイティブ中央処理ユニット
304:メモリ
310:ネイティブ・レジスタ
312:エミュレータ・コード
350:ゲスト命令
354:命令変換ルーチン
360:エミュレーション制御ルーチン
400:ページ・テーブル・エントリ
500:RCsync命令
1600:コンピュータ・プログラム
Claims (15)
- コンピューティング環境において状態インジケータの更新を同期させるためのコンピュータ・プログラムであって、
第1のプロセッサにより、第2のプロセッサから、メモリ内に位置するアドレス変換構造の1つ又は複数のエントリの1つ又は複数の状態インジケータの保留中の更新をコミットするように前記第1のプロセッサに指示する同期要求を受信することと、
前記第1のプロセッサにより、前記同期要求の受信に基づいて、同期操作を実施して、前記1つ又は複数の状態インジケータの前記保留中の更新をコミットすることと、
前記同期操作の完了に基づいて、前記第1のプロセッサにより、完了を前記第2のプロセッサに示すことと、
を含む、コンピュータ・プログラム。 - 前記1つ又は複数の状態インジケータは、変更インジケータと関連したメモリのユニットが更新されたかどうかを示す変更インジケータ、又は参照インジケータと関連した前記メモリのユニットにアクセスされたかどうかを示す参照インジケータのうちの少なくとも1つを含む、請求項1に記載のコンピュータ・プログラム。
- 前記メモリのユニットはメモリのページを含み、前記アドレス変換構造はページ・テーブルを含み、前記変更インジケータ及び前記参照インジケータは、前記メモリのページに対応するページ・テーブル・エントリ内に位置する、請求項2に記載のコンピュータ・プログラム。
- 前記1つ又は複数の状態インジケータの前記保留中の更新をコミットすることは、前記第1のプロセッサにより、前記第1のプロセッサのローカル構造内の前記変更インジケータ又は前記参照インジケータの変更値の少なくとも1つに基づいて、前記アドレス変換構造内の前記変更インジケータ又は前記参照インジケータのうちの少なくとも一方を更新することを含む、請求項2に記載のコンピュータ・プログラム。
- 前記第1のプロセッサにより前記同期要求を受信することは、前記第2のプロセッサによる同期命令の発行に基づく、請求項1に記載のコンピュータ・プログラム。
- 前記同期操作を実施することは、
前記第1のプロセッサのキューにおける、前記1つ又は複数の状態インジケータについての1つ又は複数の保留中の更新要求にマーク付けすることと、
前記キュー内の前記マーク付けされた1つ又は複数の保留中の更新要求に基づいて、前記アドレス変換構造の1つ又は複数のエントリを更新することと、
を含む、請求項1に記載のコンピュータ・プログラム。 - 前記同期操作を実施することは、
前記同期要求の受信に基づいて、キュー内にマーカーを配置することであって、前記キューは、前記マーカーより前の、前記1つ又は複数の状態インジケータに対する1つ又は複数の保留中の更新要求を含む、配置することと、
前記マーカーより前の、前記キュー内の前記1つ又は複数の保留中の更新要求に基づいて、前記アドレス変換構造の1つ又は複数のエントリを更新することであって、前記同期操作の完了は、前記マーカーの到達に基づいて示される、更新することと、
を含む、請求項1に記載のコンピュータ・プログラム。 - 前記コンピューティング環境は、特定の時間内に前記アドレス変換構造の更新が保証されないという点で、前記アドレス変換構造の非コヒーレントな更新のために構成される、請求項1に記載のコンピュータ・プログラム。
- 前記同期要求を受信することは、同期を実施し、完了の表示を送るために、複数のプロセッサにより、前記同期要求を受信することを含む、請求項1に記載のコンピュータ・プログラム。
- 前記複数のプロセッサは、選択されたプロセッサのグループであり、前記選択されたプロセッサのグループは、特定のアドレス空間のパーティション化、グループ化、又は使用の1つ又は複数に基づいて選択される、請求項9に記載のコンピュータ・プログラム。
- コンピューティング環境において状態インジケータの更新を同期させるためのコンピュータ・システムであって、
メモリと、
前記メモリと通信するプロセッサと、を含み、
第1のプロセッサにより、第2のプロセッサから、メモリ内に位置するアドレス変換構造の1つ又は複数のエントリの1つ又は複数の状態インジケータの保留中の更新をコミットするように、前記第1のプロセッサに指示する同期要求を受信することと、
前記第1のプロセッサにより、前記同期要求の受信に基づいて、同期操作を実施して、前記1つ又は複数の状態インジケータの前記保留中の更新をコミットすることと、
前記同期操作の完了に基づいて、前記第1のプロセッサにより、完了を前記第2のプロセッサに示すことと、
を実行する、コンピュータ・システム。 - コンピューティング環境において状態インジケータの更新を同期させるための方法であって、
第1のプロセッサにより、第2のプロセッサから、メモリ内に位置するアドレス変換構造の1つ又は複数のエントリの1つ又は複数の状態インジケータの保留中の更新をコミットするように前記第1のプロセッサに指示する同期要求を受信することと、
前記第1のプロセッサにより、前記同期要求の受信に基づいて、同期操作を実施して、前記1つ又は複数の状態インジケータの前記保留中の更新をコミットすることと、
前記同期操作の完了に基づいて、前記第1のプロセッサにより、完了を前記第2のプロセッサに示すことと、
を含む、方法。 - 前記同期操作を実施することは、
前記第1のプロセッサのキューにおける、前記1つ又は複数の状態インジケータについての1つ又は複数の保留中の更新要求にマーク付けすることと、
前記キュー内の前記マーク付けされた1つ又は複数の保留中の更新要求に基づいて、前記アドレス変換構造の1つ又は複数のエントリを更新することと、
を含む、請求項12に記載の方法。 - 前記同期操作を実施することは、
前記同期要求の受信に基づいて、キュー内にマーカーを配置することであって、前記キューは、前記マーカーより前の、前記1つ又は複数の状態インジケータに対する1つ又は複数の保留中の更新要求を含む、配置することと、
前記マーカーより前の、前記キュー内の前記1つ又は複数の保留中の更新要求に基づいて、前記アドレス変換構造の1つ又は複数のエントリを更新することであって、前記同期操作の完了は、前記マーカーの到達に基づいて示される、更新することと、
を含む、請求項12に記載の方法。 - コンピューティング環境において状態インジケータの更新を同期させるためのコンピュータ・プログラムであって、
前記コンピューティング環境の1つのプロセッサから、前記コンピューティング環境の少なくとも1つの他のプロセッサに、メモリ内に位置するアドレス変換構造の1つ又は複数のエントリの1つ又は複数の状態インジケータの保留中の更新をコミットするように、前記少なくとも1つの他のプロセッサに指示する同期要求を送ることと、
前記1つのプロセッサにより、前記少なくとも1つの他のプロセッサから、前記1つ又は複数の状態インジケータの前記保留中の更新の前記コミットが完了したことを示す完了の表示を受信することと、
前記少なくとも1つの他のプロセッサから前記完了の表示を受信することに基づいて、1つ又は複数の更新された状態インジケータを用いて1つ又は複数の操作を開始することと、
を含む、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/292,604 US9785554B2 (en) | 2014-05-30 | 2014-05-30 | Synchronizing updates of page table status indicators in a multiprocessing environment |
US14/292,604 | 2014-05-30 | ||
PCT/IB2015/053728 WO2015181687A1 (en) | 2014-05-30 | 2015-05-21 | Synchronizing updates to status indicators in a computing environment |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017520869A JP2017520869A (ja) | 2017-07-27 |
JP2017520869A5 JP2017520869A5 (ja) | 2017-09-07 |
JP6362769B2 true JP6362769B2 (ja) | 2018-07-25 |
Family
ID=54698201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017514988A Expired - Fee Related JP6362769B2 (ja) | 2014-05-30 | 2015-05-21 | マルチプロセッシング環境におけるページ・テーブルの状態インジケータの更新の同期させる方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9785554B2 (ja) |
JP (1) | JP6362769B2 (ja) |
CN (1) | CN106462505B (ja) |
DE (1) | DE112015001977B4 (ja) |
GB (1) | GB2540912B (ja) |
WO (1) | WO2015181687A1 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US9116850B2 (en) | 2010-12-14 | 2015-08-25 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US9218376B2 (en) | 2012-06-13 | 2015-12-22 | Commvault Systems, Inc. | Intelligent data sourcing in a networked storage system |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9811427B2 (en) | 2014-04-02 | 2017-11-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US9785554B2 (en) | 2014-05-30 | 2017-10-10 | International Business Machines Corporation | Synchronizing updates of page table status indicators in a multiprocessing environment |
US9384133B2 (en) | 2014-05-30 | 2016-07-05 | International Business Machines Corporation | Synchronizing updates of page table status indicators and performing bulk operations |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US20170192868A1 (en) | 2015-12-30 | 2017-07-06 | Commvault Systems, Inc. | User interface for identifying a location of a failed secondary storage device |
US10146695B2 (en) * | 2016-09-22 | 2018-12-04 | Unisys Corporation | System and method for implementing an efficient large system page invalidation |
US10417102B2 (en) | 2016-09-30 | 2019-09-17 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic |
CN108572926B (zh) * | 2017-03-13 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 一种用于同步中央处理器所属缓存的方法和装置 |
CN107231417B (zh) * | 2017-05-31 | 2020-05-26 | 深圳市亚启科技有限公司 | 一种低速链路下网络节点间数据同步方法及系统 |
US11016696B2 (en) | 2018-09-14 | 2021-05-25 | Commvault Systems, Inc. | Redundant distributed data storage system |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US11200168B2 (en) * | 2018-12-10 | 2021-12-14 | International Business Machines Corporation | Caching data from remote memories |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11442896B2 (en) | 2019-12-04 | 2022-09-13 | Commvault Systems, Inc. | Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources |
US11816037B2 (en) | 2019-12-12 | 2023-11-14 | Advanced Micro Devices, Inc. | Enhanced page information co-processor |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
GB2603489B (en) * | 2021-02-04 | 2023-02-22 | Advanced Risc Mach Ltd | A data processing apparatus and method for address translation |
US11645175B2 (en) | 2021-02-12 | 2023-05-09 | Commvault Systems, Inc. | Automatic failover of a storage manager |
US12112200B2 (en) | 2021-09-13 | 2024-10-08 | International Business Machines Corporation | Pipeline parallel computing using extended memory |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
CA2107056C (en) * | 1993-01-08 | 1998-06-23 | James Allan Kahle | Method and system for increased system memory concurrency in a multiprocessor computer system |
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 |
US6647468B1 (en) | 1999-02-26 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment |
US6360231B1 (en) | 1999-02-26 | 2002-03-19 | Hewlett-Packard Company | Transactional memory for distributed shared memory multi-processor computer systems |
US6286092B1 (en) * | 1999-05-12 | 2001-09-04 | Ati International Srl | Paged based memory address translation table update method and apparatus |
US6751721B1 (en) | 2000-08-31 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Broadcast invalidate scheme |
US6779049B2 (en) * | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US6745272B2 (en) | 2001-04-04 | 2004-06-01 | Advanced Micro Devices, Inc. | System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system |
US7096323B1 (en) | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
US7073043B2 (en) * | 2003-04-28 | 2006-07-04 | International Business Machines Corporation | Multiprocessor system supporting multiple outstanding TLBI operations per partition |
US7552254B1 (en) | 2003-07-30 | 2009-06-23 | Intel Corporation | Associating address space identifiers with active contexts |
US8307194B1 (en) * | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7363463B2 (en) * | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
US8423747B2 (en) | 2008-06-30 | 2013-04-16 | Intel Corporation | Copy equivalent protection using secure page flipping for software components within an execution environment |
US7454590B2 (en) * | 2005-09-09 | 2008-11-18 | Sun Microsystems, Inc. | Multithreaded processor having a source processor core to subsequently delay continued processing of demap operation until responses are received from each of remaining processor cores |
US7739476B2 (en) | 2005-11-04 | 2010-06-15 | Apple Inc. | R and C bit update handling |
US7549035B1 (en) | 2006-09-22 | 2009-06-16 | Sun Microsystems, Inc. | System and method for reference and modification tracking |
US8296520B2 (en) | 2007-12-19 | 2012-10-23 | International Business Machines Corporation | System and method for optimizing neighboring cache usage in a multiprocessor environment |
US8001328B2 (en) | 2008-01-29 | 2011-08-16 | International Business Machines Corporation | Method and process for expediting the return of line exclusivity to a given processor through enhanced inter-node communications |
US8312219B2 (en) | 2009-03-02 | 2012-11-13 | International Business Machines Corporation | Hybrid caching techniques and garbage collection using hybrid caching techniques |
US8234407B2 (en) | 2009-06-30 | 2012-07-31 | Oracle America, Inc. | Network use of virtual addresses without pinning or registration |
US8566524B2 (en) | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
US8930635B2 (en) | 2009-12-14 | 2015-01-06 | International Business Machines Corporation | Page invalidation processing with setting of storage key to predefined value |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US8788761B2 (en) | 2010-09-24 | 2014-07-22 | Nvidia Corporation | System and method for explicitly managing cache coherence |
DE112011103433B4 (de) * | 2010-11-26 | 2019-10-31 | International Business Machines Corporation | Verfahren, System und Programm zum Steuern von Cache-Kohärenz |
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 |
US9418010B2 (en) | 2013-04-17 | 2016-08-16 | Apple Inc. | Global maintenance command protocol in a cache coherent system |
US9411745B2 (en) | 2013-10-04 | 2016-08-09 | Qualcomm Incorporated | Multi-core heterogeneous system translation lookaside buffer coherency |
US9785554B2 (en) | 2014-05-30 | 2017-10-10 | International Business Machines Corporation | Synchronizing updates of page table status indicators in a multiprocessing environment |
US9384133B2 (en) | 2014-05-30 | 2016-07-05 | International Business Machines Corporation | Synchronizing updates of page table status indicators and performing bulk operations |
-
2014
- 2014-05-30 US US14/292,604 patent/US9785554B2/en not_active Expired - Fee Related
- 2014-09-09 US US14/481,244 patent/US9785555B2/en not_active Expired - Fee Related
-
2015
- 2015-05-21 GB GB1620122.0A patent/GB2540912B/en active Active
- 2015-05-21 WO PCT/IB2015/053728 patent/WO2015181687A1/en active Application Filing
- 2015-05-21 CN CN201580028949.5A patent/CN106462505B/zh not_active Expired - Fee Related
- 2015-05-21 DE DE112015001977.4T patent/DE112015001977B4/de active Active
- 2015-05-21 JP JP2017514988A patent/JP6362769B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB201620122D0 (en) | 2017-01-11 |
US20150347306A1 (en) | 2015-12-03 |
GB2540912A (en) | 2017-02-01 |
CN106462505A (zh) | 2017-02-22 |
JP2017520869A (ja) | 2017-07-27 |
WO2015181687A1 (en) | 2015-12-03 |
US9785555B2 (en) | 2017-10-10 |
US20150347300A1 (en) | 2015-12-03 |
DE112015001977T5 (de) | 2017-03-09 |
US9785554B2 (en) | 2017-10-10 |
CN106462505B (zh) | 2019-06-04 |
GB2540912B (en) | 2017-12-20 |
DE112015001977B4 (de) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6362769B2 (ja) | マルチプロセッシング環境におけるページ・テーブルの状態インジケータの更新の同期させる方法 | |
US9836411B2 (en) | Synchronizing updates of page table status indicators and performing bulk operations | |
US10180910B2 (en) | Host-based resetting of active use of guest page table indicators | |
US10380033B2 (en) | Multi-engine address translation facility | |
US10802986B2 (en) | Marking to indicate memory used to back address translation structures | |
US10515020B2 (en) | Marking storage keys to indicate memory used to back address translation structures | |
US10169243B2 (en) | Reducing over-purging of structures associated with address translation | |
US10572385B2 (en) | Granting exclusive cache access using locality cache coherency state | |
US11132290B2 (en) | Locality domain-based memory pools for virtualized computing environment | |
JP7486419B2 (ja) | コンピュータ・プログラムおよびコンピュータ・システム | |
US20180018283A1 (en) | Selective purging of guest entries of structures associated with address translation | |
TWI665605B (zh) | 用於暫時抑制受約束儲存器運算元請求之處理之電腦程式產品、電腦實施方法及電腦系統 | |
US11010307B2 (en) | Cache management | |
JP2021502629A (ja) | 複数のプロセッサによる共有キャッシュ・ラインの同時変更 | |
US10691604B2 (en) | Minimizing cache latencies using set predictors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170714 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180205 |
|
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: 20180605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180626 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6362769 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |