JP4631948B2 - 情報処理装置及び順序保証方式 - Google Patents
情報処理装置及び順序保証方式 Download PDFInfo
- Publication number
- JP4631948B2 JP4631948B2 JP2008208322A JP2008208322A JP4631948B2 JP 4631948 B2 JP4631948 B2 JP 4631948B2 JP 2008208322 A JP2008208322 A JP 2008208322A JP 2008208322 A JP2008208322 A JP 2008208322A JP 4631948 B2 JP4631948 B2 JP 4631948B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- cache
- bank
- instruction
- identifier
- 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
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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- 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
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
(1)Fence命令より後続のLoad命令が投機的に実行されないこと。
すなわち、待ち合わせが完了する前の共有メモリへのアクセスを抑止しなければならない。
通常、(1)の機能はプロセッサ内で、Load命令がFence命令を追い越すことを不許可にすることで実現する。
(2)Release命令以前のStore命令によるAcquire側プロセッサに対する無効化要求の完了の保証すること。この(2)を実現する必要がある。しかしながら、複数バンクから構成されるメモリを複数のプロセッサで共有し、かつ、プロセッサの持つキャッシュ間でのコヒーレンス制御をするアーキテクチャを前提とした場合、バンク構成の共有メモリから発行されるキャッシュへの無効化要求の完了順序は保証されない。具体的には、キャッシュの無効化要求の処理の順番は不確定であり、無効化要求の処理の完了を把握する仕組みは、図1には表わされていない。
実施形態1では、Fence命令発行に無効化要求の処理完了を把握できる仕組みを追加する。具体的には次のような処理を実施する。まず、Fence命令発行時に、当該命令の識別子(Fence命令ID)を共有メモリの全バンクにブロードキャストする。識別子は、発行元に返信させる命令である。これにより、ブロードキャストされたすべての識別子が、各バンクが持つ無効化要求キューにキューイングされる。その後、識別子が発行元プロセッサに戻ることによって、Fence命令発行以前の無効化要求の完了を保証する。以下、図面を用いて詳細に説明する。
2 プロセッサ・メモリ間ネットワーク
3 バンク
4 共有メモリ
11 命令制御部
12 L1キャッシュ
13 FENCE制御部
14 無効化要求制御部
15 ストア制御部
31 無効化要求キュー
32 ディレクトリ
33 メモリ本体
Claims (6)
- 第1のバンクを含む複数のバンクから構成される共有メモリ、第1のプロセッサ及び第2のプロセッサを含む複数のプロセッサ、及び、前記複数のプロセッサと前記共有メモリとを接続するネットワークを有する情報処理装置であって、
各プロセッサは、
前記共有メモリが保持するデータの一部の写しを保持するキャッシュと、
他のプロセッサから前記共有メモリ及び前記キャッシュが保持するデータの一貫性の処理完了保証を要求されたタイミングで、発行元に返信される識別子を、前記ネットワークを介して前記各バンクへ送信し、前記識別子が前記各バンクから返信されることを確認するフェンス制御手段と、を備え、
各バンクは、
メモリ本体と、
前記キャッシュが保持するデータのメモリ本体の領域情報を保持し、前記メモリ本体にデータが書き込まれた領域に応じて、当該書き込まれたデータを保持しているキャッシュを備えるプロセッサに対して、前記キャッシュが保持するデータを無効化する無効化要求を発行するディレクトリ手段と、
前記無効化要求と前記識別子とをキューイングし、キューイングされた順番に、前記無効化要求と識別子とのいずれかを前記ネットワークを介して該当するプロセッサへ送信するキューイング手段と、を備え、
前記第1のプロセッサは、前記第1のバンクのメモリ本体へデータを書き込むための書き込み命令を発行し、
前記第1のバンクのディレクトリ手段は、前記書き込み命令の対象のデータが前記第2のプロセッサのキャッシュが保持するデータと共有されていると判定した場合に、前記第2のプロセッサへの無効化要求を発行し、
前記第1のバンクのキューイング手段は、前記第2のプロセッサへの無効化要求をキューイングし、
前記第1のプロセッサは、前記第2のプロセッサへ前記データの一貫性の処理完了保証を要求し、
前記第2のプロセッサの前記フェンス制御手段は、前記第1のプロセッサからの前記データの一貫性の処理完了保証の要求に応じて、前記各バンクのキューイング手段へ前記識別子を送信し、
前記各バンクのキューイング手段は、前記第2のプロセッサから送信された前記識別子をキューイングし、
前記第1のバンクのキューイング手段は、前記第2のプロセッサへの無効化要求の送信後に前記識別子を前記第2のプロセッサへ送信し、
前記第2のプロセッサの前記フェンス制御手段は、前記複数のバンク全てから前記識別子が返信されることを確認する
ことを特徴とする情報処理装置。 - 前記フェンス制御手段は、前記タイミングを、他のプロセッサが発行したリリース命令によって検出し、前記リリース命令を検出した後、前記識別子を前記複数のバンクすべてへブロードキャストすることを特徴とする請求項1記載の情報処理装置。
- 前記各プロセッサは、さらに、命令の実行を制御する命令制御手段を備え、
前記フェンス制御手段は、前記識別子を前記複数のバンクへ送信した後、すべてのバンクから前記識別子が返信されたことを確認するまで、前記後続する命令の実行を停止することを特徴とする請求項2記載の情報処理装置。 - 前記情報処理装置は、リリースコンシステンシモデルに基づいて、前記データの一貫性の処理完了を保証することを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
- 第1のバンクを含む複数のバンクから構成される共有メモリ、キャッシュを有する第1のプロセッサ及び第2のプロセッサを含む複数のプロセッサ、及び、前記複数のプロセッサと前記共有メモリとを接続するネットワークから構成される情報処理装置が、前記共有メモリと前記キャッシュとのコヒーレンス制御をディレクト方式により実現する順序保証方法であって、
前記第1のプロセッサは、前記第1のバンクのメモリ本体へデータを書き込むための書き込み命令を発行し、
前記第1のバンクは、前記書き込み命令の対象のデータが前記第2のプロセッサのキャッシュが保持するデータと共有されていると判定した場合に、前記第2のプロセッサのキャッシュが保持するデータを無効化する無効化要求をキューイングし、
前記第1のプロセッサは、前記第2のプロセッサへ前記共有メモリ及び前記第2のプロセッサの前記キャッシュが保持するデータの一貫性の処理完了保証を要求し、
前記第2のプロセッサは、前記第1のプロセッサからの前記データの一貫性の処理完了保証の要求に応じて、前記各バンクへ発行元に返信される識別子を送信し、
前記各バンクは、前記第2のプロセッサから送信された前記識別子をキューイングし、
前記第1のバンクは、前記第2のプロセッサへの無効化要求の送信後に前記識別子を前記第2のプロセッサへ送信し、
前記第2のプロセッサは、前記複数のバンク全てから前記識別子が返信されることを確認する順序保証方法。 - 前記各プロセッサは、前記識別子がすべてのバンクから返信されたタイミングで、後続の命令を実行することを特徴とする請求項5記載の順序保証方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008208322A JP4631948B2 (ja) | 2008-08-13 | 2008-08-13 | 情報処理装置及び順序保証方式 |
US12/536,081 US8468307B2 (en) | 2008-08-13 | 2009-08-05 | Information processing apparatus and order guarantee method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008208322A JP4631948B2 (ja) | 2008-08-13 | 2008-08-13 | 情報処理装置及び順序保証方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010044599A JP2010044599A (ja) | 2010-02-25 |
JP4631948B2 true JP4631948B2 (ja) | 2011-02-16 |
Family
ID=41682061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008208322A Active JP4631948B2 (ja) | 2008-08-13 | 2008-08-13 | 情報処理装置及び順序保証方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8468307B2 (ja) |
JP (1) | JP4631948B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352687B2 (en) | 2010-06-23 | 2013-01-08 | International Business Machines Corporation | Performance optimization and dynamic resource reservation for guaranteed coherency updates in a multi-level cache hierarchy |
CN104321750B (zh) * | 2012-04-25 | 2019-03-08 | 英特尔公司 | 在共享存储器编程中保持释放一致性的方法和系统 |
US9218289B2 (en) * | 2012-08-06 | 2015-12-22 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
JP5811245B1 (ja) | 2014-07-24 | 2015-11-11 | 日本電気株式会社 | 情報処理装置、メモリ順序保障方法、及び、プログラム |
US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10474461B2 (en) * | 2016-09-22 | 2019-11-12 | Qualcomm Incorporated | Instruction-based synchronization of operations including at least one SIMD scatter operation |
JP6319473B1 (ja) * | 2017-02-07 | 2018-05-09 | 日本電気株式会社 | 情報処理装置 |
JP6249117B1 (ja) | 2017-02-27 | 2017-12-20 | 日本電気株式会社 | 情報処理装置 |
JP6984148B2 (ja) * | 2017-03-22 | 2021-12-17 | 日本電気株式会社 | 計算機システム及びキャッシュ・コヒーレンス方法 |
US10395623B2 (en) * | 2017-04-01 | 2019-08-27 | Intel Corporation | Handling surface level coherency without reliance on fencing |
US10133512B1 (en) * | 2017-04-27 | 2018-11-20 | Friday Harbor Llc | Inclusion monitors |
US10120732B1 (en) * | 2017-04-27 | 2018-11-06 | Friday Harbor Llc | Exclusion monitors |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62288949A (ja) * | 1986-06-09 | 1987-12-15 | Fujitsu Ltd | シリアライズ命令制御装置 |
JPH10198644A (ja) * | 1997-01-13 | 1998-07-31 | Hitachi Ltd | 同期制御方法およびマルチプロセッサシステム |
JPH1196124A (ja) * | 1997-09-16 | 1999-04-09 | Hitachi Ltd | 並列プロセッサシステム |
JP2000194680A (ja) * | 1998-12-28 | 2000-07-14 | Hitachi Ltd | マルチプロセッサシステム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6745298B2 (en) * | 1999-06-16 | 2004-06-01 | Intel Corporation | Internal processor buffering for implicit writebacks |
JP2002007371A (ja) | 2000-06-23 | 2002-01-11 | Hitachi Ltd | L1キャッシュフォールスシェア緩和制御方式 |
US7366847B2 (en) * | 2006-02-06 | 2008-04-29 | Azul Systems, Inc. | Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag |
-
2008
- 2008-08-13 JP JP2008208322A patent/JP4631948B2/ja active Active
-
2009
- 2009-08-05 US US12/536,081 patent/US8468307B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62288949A (ja) * | 1986-06-09 | 1987-12-15 | Fujitsu Ltd | シリアライズ命令制御装置 |
JPH10198644A (ja) * | 1997-01-13 | 1998-07-31 | Hitachi Ltd | 同期制御方法およびマルチプロセッサシステム |
JPH1196124A (ja) * | 1997-09-16 | 1999-04-09 | Hitachi Ltd | 並列プロセッサシステム |
JP2000194680A (ja) * | 1998-12-28 | 2000-07-14 | Hitachi Ltd | マルチプロセッサシステム |
Also Published As
Publication number | Publication date |
---|---|
JP2010044599A (ja) | 2010-02-25 |
US8468307B2 (en) | 2013-06-18 |
US20100042771A1 (en) | 2010-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4631948B2 (ja) | 情報処理装置及び順序保証方式 | |
TWI250411B (en) | Method, apparatus and system for memory access | |
US6189078B1 (en) | System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency | |
KR100360064B1 (ko) | 고도로파이프라인된버스구조 | |
KR100641988B1 (ko) | 비대칭형 단일 칩 이종 멀티프로세서 컴퓨터 시스템, 공유 메모리의 직접 메모리 액세스를 아토믹 업데이트하는 방법, 및 아토믹 업데이트 장치 | |
KR100567099B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
US6801986B2 (en) | Livelock prevention by delaying surrender of ownership upon intervening ownership request during load locked / store conditional atomic memory operation | |
JP2020009492A5 (ja) | ||
CN102541465B (zh) | 利用回写排序的连贯性控制电路及设备 | |
US6871267B2 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
KR20040007546A (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치 | |
JP2010027048A (ja) | 部分書込と非スヌープアクセスとの間のメモリ順序付け要件の充足 | |
EP3123351A1 (en) | Method and processor for processing data | |
JPH02166539A (ja) | フェッチ方法 | |
JP2009176179A (ja) | キャッシュコヒーレンシ制御方法 | |
US7533223B1 (en) | System and method for handling memory requests in a multiprocessor shared memory system | |
JP2008046969A (ja) | 共有メモリのアクセス監視方法及び装置 | |
JP5811245B1 (ja) | 情報処理装置、メモリ順序保障方法、及び、プログラム | |
US7912998B2 (en) | DMA access systems and methods | |
JP5213485B2 (ja) | マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム | |
JPH0748197B2 (ja) | データ・バスを確保する方法 | |
JP2011008674A (ja) | 二重化情報処理システム及び同期化方法 | |
EP1662401A2 (en) | Memory control device and memory control method | |
US10775870B2 (en) | System and method for maintaining cache coherency | |
JP6319473B1 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100816 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100831 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100924 |
|
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: 20101019 |
|
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: 20101101 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4631948 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131126 Year of fee payment: 3 |