JP4566264B2 - 格納および予約命令を利用して関連アプリケーションと相互参照してキャッシュライン・ポーリングを行う方法、システム、装置、およびプログラム - Google Patents
格納および予約命令を利用して関連アプリケーションと相互参照してキャッシュライン・ポーリングを行う方法、システム、装置、およびプログラム Download PDFInfo
- Publication number
- JP4566264B2 JP4566264B2 JP2008558761A JP2008558761A JP4566264B2 JP 4566264 B2 JP4566264 B2 JP 4566264B2 JP 2008558761 A JP2008558761 A JP 2008558761A JP 2008558761 A JP2008558761 A JP 2008558761A JP 4566264 B2 JP4566264 B2 JP 4566264B2
- Authority
- JP
- Japan
- Prior art keywords
- reservation
- data
- cache line
- memory location
- state
- 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
Links
- 238000000034 method Methods 0.000 title claims description 56
- 238000012545 processing Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 41
- 230000009471 action Effects 0.000 claims description 10
- 230000010365 information processing Effects 0.000 description 32
- 238000000348 solid-phase epitaxy Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000007704 transition Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000011112 process operation Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002195 synergetic effect Effects 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/1016—Performance improvement
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
図1の実施形態において、任意の特定の処理エレメント内に含まれるコンピュータ・モジュールの数は、その処理エレメントにより行われる情報処理により要求される処理能力に依存する。例えば、システム101のサーバ108は、クライアント106よりも多くのデータおよびアプリケーションの処理を行うので、サーバ108はクライアント106よりも多くのコンピュータ・モジュールを含む。PDA110は、その一方で、比較的少ない処理を行う。図示される実施形態においては、各コンピュータ・モジュールが、1つの処理コントローラおよびネットワーク104上で伝送されるデータおよびアプリケーションの並列処理を行うための複数の同一の処理ユニットを含む。
L1キャッシュ312およびL2キャッシュ314の各々は、キャッシュ管理ユニット(cache management unit:CMU)(例えば、L1キャッシュ312のCMU322、およびL2キャッシュ314のCMU328)ならびに、ストレージ・エレメント(例えば、L1キャッシュ312のストレージ・エレメント324、およびL2キャッシュ314のストレージ・エレメント332)を含む。CMU322および328は、それぞれ、ストレージ・エレメント324および332のうちの対応する1つの中でのデータまたは命令、あるいはその両方の格納を制御するために用いられ、例えば、キャッシュライン置換アルゴリズム、キャッシュライン状態もしくは状態メタデータの更新、または同様のことを実施する。次に、ストレージ・エレメント324および332は、アプリケーション・データまたは命令、あるいはその両方、ならびに附随するメタデータ(例えば、キャッシュ・タグ、状態ビット、または同様のもの)を含むデータのラインまたはブロックを格納するために利用される。CMU322および328は、それらそれぞれのキャッシュの統合ユニットまたはモジュールとして描かれているが、本発明の代替実施形態においては、CMU322または328、あるいはその両方、またはそれらの機能性は、他の構成で(例えば、L1キャッシュ312およびL2キャッシュ314のうちの一つ内またはPPU316内に、別々のユニットもしくはモジュールとして、またはそれらの組合せとして)提供することもできる。
キャッシュ・メモリは、そのキャッシュラインの1つに他のプロセッサがアクセスしているかどうかを検出する機構を有している。この機構はスヌープ機構と通常呼ばれる。キャッシュラインが他のプロセッサまたはデバイスによって書き換えられているかを判断するために、状態マシン400が同様のプロセスを用いることが可能である。さらに、状態マシン400は、同じプロセッサの、またはキャッシュ・メモリを共有する他のプロセッサの別のスレッドによる、バッファ・フラグへの格納命令を監視する。
その後、外部(例えば、I/O)デバイス390に、関連するデータ・バッファがアクセスされる準備ができた(図示せず)ことが(例えば、MMIOレジスタへの書込み、例外、割り込み、トラップ、または同様のことの発生によって)通知されても良い。あるいは、そのような通知が、先に説明したように、単にキャッシュ可能メモリ・ロケーション336内へのバッファ「ビジー」標識データ値の格納によって行われても良い。ロード/格納・ユニット318は、次に予約がリセットされたかを(例えば、状態レジスタ320内のフラグの1以上のビットを検査することによって)判断する(プロセス・ブロック508)。予約がリセットされるときの判断を表すために連続的なループが利用されているが、(単一スレッドのユニプロセッサ・システムまたはマルチプロセッサ・システム内の)プロセッサ、または(マルチ・スレッドのプロセッサ・システム内の)関連するスレッドのどちらによっても実際の命令は実行されておらず、従って、通常のキャッシュライン・ポーリング法を利用した場合には浪費される貴重な処理能力および電力が節約されることを理解されたい。ひとたび予約が(例えば、外部デバイス390によるキャッシュ可能メモリ・ロケーション336のバッファ・フラグ内への「非ビジー」標識データ値の格納により)リセットされると、ロード/格納・ユニット318により、キャッシュ可能メモリ・ロケーション336内に格納されているバッファ・フラグ・データがPPU316のレジスタ内に読み込まれる(プロセス・ブロック510)。
Claims (9)
- 複数のプロセスを有するデータ処理システムにおいてキャッシュライン・ポーリングを行う方法であって、
第1のプロセスにより、第2のプロセスによって行われるアクションを要求し、格納動作を介してキャッシュ可能メモリ・ロケーション上に予約を設定するステップと、
前記第1のプロセスにより、前記要求されたアクションが前記第2のプロセスによって完了したか否かを判断するためにロード動作を介してキャッシュ可能メモリ・ロケーションを読み込むステップと、
リセットにより前記キャッシュ可能メモリ・ロケーション上の前記予約が喪失するまで前記ロード動作を停止するステップと、
前記第2のプロセスにより、前記要求されたアクションが完了後、前記キャッシュ可能メモリ・ロケーションにおいて前記予約を喪失させるために前記予約をリセットするステップと、
を含む、方法。 - 前記設定するステップが前記キャッシュ可能メモリ・ロケーション上にバッファ・ビジー標識を設定することをさらに含む、請求項1に記載の方法。
- 前記停止するステップが、前記予約がリセットされるまでキャッシュライン・ポーリングのループにおいて前記ロード動作の実行を防止することをさらに含む、請求項1または2に記載の方法。
- 前記ロード動作が条件付きロード動作である、請求項1、2または3に記載の方法。
- 第1のデバイスおよび第2のデバイスを有するデータ処理システムにおいてキャッシュライン・ポーリングを行う装置であって、
第1のデバイスにより、第2のデバイスによって行われるアクションを要求し、格納動作を介してキャッシュ可能メモリ・ロケーション上に予約を設定する手段と、
前記第1のデバイスにより、前記要求されたアクションが前記第2のデバイスによって完了したか否かを判断するためにロード動作を介してキャッシュ可能メモリ・ロケーションを読み込む手段と、
リセットにより前記キャッシュ可能メモリ・ロケーション上の前記予約が喪失するまで前記ロード動作を停止する手段と、
前記第2のデバイスにより、前記要求されたアクションが完了後、前記キャッシュ可能メモリ・ロケーションにおいて前記予約を喪失させるために前記予約をリセットする手段と、
を備えている、前記装置。 - 前記設定する手段が前記キャッシュ可能メモリ・ロケーション上にバッファ・ビジー標識を設定する手段をさらに備えている、請求項5に記載の装置。
- 前記停止する手段が、前記予約がリセットされるまでキャッシュライン・ポーリングのループにおいて前記ロード動作の実行を防止する手段をさらに備えている、請求項5または6に記載の装置。
- 前記ロード動作が条件付きロード動作である、請求項5、6または7に記載の装置。
- 複数のプロセスを有するデータ処理システムにおいてキャッシュライン・ポーリングを行うプログラムであって、データ処理システムに、請求項1〜8のいずれか一項に記載の方法の各ステップを実行させる前記プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/377,505 US9390015B2 (en) | 2006-03-16 | 2006-03-16 | Method for performing cacheline polling utilizing a store and reserve instruction |
PCT/EP2007/051810 WO2007104638A2 (en) | 2006-03-16 | 2007-02-26 | Method, system, apparatus, and article of manufacture for performing cacheline polling utilizing a store and reserve instruction |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009529740A JP2009529740A (ja) | 2009-08-20 |
JP2009529740A5 JP2009529740A5 (ja) | 2010-06-03 |
JP4566264B2 true JP4566264B2 (ja) | 2010-10-20 |
Family
ID=38509831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008558761A Active JP4566264B2 (ja) | 2006-03-16 | 2007-02-26 | 格納および予約命令を利用して関連アプリケーションと相互参照してキャッシュライン・ポーリングを行う方法、システム、装置、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US9390015B2 (ja) |
EP (1) | EP1994469B1 (ja) |
JP (1) | JP4566264B2 (ja) |
CN (1) | CN101401071B (ja) |
WO (1) | WO2007104638A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8219763B2 (en) * | 2006-03-16 | 2012-07-10 | International Business Machines Corporation | Structure for performing cacheline polling utilizing a store and reserve instruction |
US9983874B2 (en) * | 2006-03-16 | 2018-05-29 | International Business Machines Corporation | Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling |
CN101510177B (zh) * | 2009-03-06 | 2012-04-18 | 成都市华为赛门铁克科技有限公司 | 一种存储方法和存储系统 |
CN102739788B (zh) * | 2012-06-25 | 2015-08-19 | 广州复旦奥特科技股份有限公司 | 一种基于eib协议的现场设备通信方法 |
WO2014065880A1 (en) * | 2012-10-22 | 2014-05-01 | Robert Beers | Coherence protocol tables |
WO2014192867A1 (ja) * | 2013-05-31 | 2014-12-04 | 日本電気株式会社 | 分散処理システム、分散処理装置、分散処理方法および分散処理プログラム |
EP2840503A1 (de) * | 2013-08-22 | 2015-02-25 | Continental Automotive GmbH | Verfahren zum Betreiben eines Pufferspeichers einer Datenverarbeitungsanlage und Datenverarbeitungsanlage |
CN103760855B (zh) * | 2014-01-09 | 2017-01-18 | 厦门立林科技有限公司 | 自组式模块化家居控制系统 |
GB2524063B (en) | 2014-03-13 | 2020-07-01 | Advanced Risc Mach Ltd | Data processing apparatus for executing an access instruction for N threads |
US11086672B2 (en) | 2019-05-07 | 2021-08-10 | International Business Machines Corporation | Low latency management of processor core wait state |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4380798A (en) * | 1980-09-15 | 1983-04-19 | Motorola, Inc. | Semaphore register including ownership bits |
US5669002A (en) * | 1990-06-28 | 1997-09-16 | Digital Equipment Corp. | Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory |
US5574922A (en) * | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
JP2507235B2 (ja) | 1994-06-24 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法 |
US5611074A (en) * | 1994-12-14 | 1997-03-11 | International Business Machines Corporation | Efficient polling technique using cache coherent protocol |
JPH10149285A (ja) * | 1996-11-18 | 1998-06-02 | Hitachi Ltd | 命令実行制御方法および情報処理装置 |
US6141734A (en) * | 1998-02-03 | 2000-10-31 | Compaq Computer Corporation | Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol |
CN1211737C (zh) * | 1999-12-30 | 2005-07-20 | 皇家菲利浦电子有限公司 | 多任务处理软件体系结构 |
US20030115476A1 (en) * | 2001-10-31 | 2003-06-19 | Mckee Bret | Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms |
US6904504B2 (en) * | 2001-11-14 | 2005-06-07 | Intel Corporation | Method and apparatus for software selection of protected register settings |
US7080209B2 (en) * | 2002-12-24 | 2006-07-18 | Intel Corporation | Method and apparatus for processing a load-lock instruction using a relaxed lock protocol |
US20050120185A1 (en) * | 2003-12-01 | 2005-06-02 | Sony Computer Entertainment Inc. | Methods and apparatus for efficient multi-tasking |
US7516306B2 (en) * | 2004-10-05 | 2009-04-07 | International Business Machines Corporation | Computer program instruction architecture, system and process using partial ordering for adaptive response to memory latencies |
US7581067B2 (en) * | 2006-03-16 | 2009-08-25 | International Business Machines Corporation | Load when reservation lost instruction for performing cacheline polling |
US8117389B2 (en) | 2006-03-16 | 2012-02-14 | International Business Machines Corporation | Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions |
US7600076B2 (en) * | 2006-03-16 | 2009-10-06 | International Business Machines Corporation | Method, system, apparatus, and article of manufacture for performing cacheline polling utilizing store with reserve and load when reservation lost instructions |
US8219763B2 (en) | 2006-03-16 | 2012-07-10 | International Business Machines Corporation | Structure for performing cacheline polling utilizing a store and reserve instruction |
-
2006
- 2006-03-16 US US11/377,505 patent/US9390015B2/en active Active
-
2007
- 2007-02-26 CN CN2007800089935A patent/CN101401071B/zh active Active
- 2007-02-26 EP EP07726510.6A patent/EP1994469B1/en active Active
- 2007-02-26 WO PCT/EP2007/051810 patent/WO2007104638A2/en active Application Filing
- 2007-02-26 JP JP2008558761A patent/JP4566264B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP1994469B1 (en) | 2016-06-08 |
CN101401071A (zh) | 2009-04-01 |
US9390015B2 (en) | 2016-07-12 |
JP2009529740A (ja) | 2009-08-20 |
CN101401071B (zh) | 2012-06-20 |
WO2007104638A2 (en) | 2007-09-20 |
WO2007104638A3 (en) | 2007-12-13 |
EP1994469A2 (en) | 2008-11-26 |
US20070220212A1 (en) | 2007-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4566264B2 (ja) | 格納および予約命令を利用して関連アプリケーションと相互参照してキャッシュライン・ポーリングを行う方法、システム、装置、およびプログラム | |
JP4568292B2 (ja) | キャッシュライン・ポーリングを実行する方法、装置、プログラム及び情報処理システム | |
CN110865968B (zh) | 多核处理装置及其内核之间数据传输方法 | |
US8117389B2 (en) | Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions | |
US7581067B2 (en) | Load when reservation lost instruction for performing cacheline polling | |
US7526608B2 (en) | Methods and apparatus for providing a software implemented cache memory | |
US10169087B2 (en) | Technique for preserving memory affinity in a non-uniform memory access data processing system | |
US7797563B1 (en) | System and method for conserving power | |
KR20120061938A (ko) | 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템 | |
US9009420B2 (en) | Structure for performing cacheline polling utilizing a store and reserve instruction | |
JP4767361B2 (ja) | キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム | |
US9983874B2 (en) | Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling | |
US7107410B2 (en) | Exclusive status tags | |
US9285865B2 (en) | Dynamic link scaling based on bandwidth utilization | |
US8938588B2 (en) | Ensuring forward progress of token-required cache operations in a shared cache | |
Pitter et al. | Towards a Java multiprocessor | |
US9558119B2 (en) | Main memory operations in a symmetric multiprocessing computer | |
US20150113221A1 (en) | Hybrid input/output write operations | |
WO2022246769A1 (zh) | 一种访问数据的方法和装置 | |
CN112765086A (zh) | 固态存储中一种基于cache一致性的软硬件交互方法 | |
JPH09198310A (ja) | マルチプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091116 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20100311 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100419 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20100423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100518 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100610 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100610 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20100610 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100611 |
|
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: 20100728 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100728 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20100728 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100803 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4566264 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130813 Year of fee payment: 3 |