JP4981041B2 - キャッシュする方法、装置及びシステム - Google Patents
キャッシュする方法、装置及びシステム Download PDFInfo
- Publication number
- JP4981041B2 JP4981041B2 JP2008518591A JP2008518591A JP4981041B2 JP 4981041 B2 JP4981041 B2 JP 4981041B2 JP 2008518591 A JP2008518591 A JP 2008518591A JP 2008518591 A JP2008518591 A JP 2008518591A JP 4981041 B2 JP4981041 B2 JP 4981041B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- data
- cache
- threads
- stage
- 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
- 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/46—Multiprogramming arrangements
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
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)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
更に、何れの大局状態更新も処理の更新段階に含まれる。よって、結果として生じるソフトウェア制御処理では、キャッシュ・ルックアップ動作及び書き戻し動作はそれぞれ、実行の何れかの特定のパスにおける更新動作それぞれの前及び後で一度、実行される。更に、キャッシュ・データを更新するために特定の実行パスにおいてアクセスが実行されない場合、対応する読み出し段階の空き更新段階が用いられる。これは、図5に表すロジックによって示すことが可能である。
KILL[n]={}である。
最後に、AWAIT_REQUIRED(s)=Union IN[n]であり、「n」はAWAIT(s)であり、ADVANCE_REQUIRED(s)=Union
IN[m]であり、「m」はADVANCE(s)である。
KILL[n]={}である。
最後に、AWAIT_AVAILABLE(s)=共通部分IN[n]であり、ここで「n」はAWAIT(s)である。
(t)の部分集合である場合、適格な2つの更新は互いに干渉しない。この場合、信号「s」に関連した更新は、何れかの制御フロー・パスにおける信号「t」に関連した更新前に実行される。更に、2つの更新はともに適格であるので、AWAIT_REQUIRED(t)がAWAIT_AVAILABLE(t)の部分集合になることが確実にされ、よって、第2の状態しか検査しなくてよい。
(s)の部分集合である場合、上記更新は互いに干渉しない。
技術的な開示の特性及び趣旨を読者がすばやく分かることを可能にするために米国特許法施行規則1.72(b)に準拠して要約書を記載する。上記要約書は、特許請求の範囲の範囲又は趣旨を解釈若しくは制限するために用いないものとする。
Claims (20)
- マルチ処理環境においてデータをキャッシングし、処理する方法であって、
キャッシュ内に収容されたデータの位置への参照を当初スレッドに、1つ又は複数のプロセッサによって転送する工程と、
最後のスレッドに達するまで前記参照を次スレッドに反復的に、前記1つ又は複数のプロセッサによって転送する工程であって、前記次スレッドが中間スレッド及び前記最後のスレッドの一方を備える工程と、
前記当初スレッドによって処理される当初の揮発性動作に前記キャッシュ内の前記データが利用可能である旨を前記最後のスレッドから前記当初スレッドに、前記1つ又は複数のプロセッサによって通知する工程と、
前記当初の揮発性動作が前記キャッシュ内で更新した後に前記データに対する次の揮発性動作を前記次のスレッドが実行することが適格である旨を前記当初スレッドから前記次スレッドに、前記1つ又は複数のプロセッサによって通知する工程とを備える方法。 - 請求項1記載の方法であって、前記最後のスレッドに達するまで、前記データに対して前記キャッシュへの更新が行われた後に前記次スレッドから新たな次スレッドに、前記1つ又は複数のプロセッサにより、反復的に通知する工程を更に備える方法。
- 請求項1記載の方法であって、
更新のために前記当初スレッド、0以上の中間スレッド、及び前記最後のスレッドについて更新の適格性を、前記1つ又は複数のプロセッサによって計算する工程と、
前記当初スレッド、前記0以上の中間スレッド、及び前記最後のスレッドの更新干渉グラフを、前記1つ又は複数のプロセッサによって彩色する工程であって、前記干渉グラフが、前記当初スレッド、前記0以上の中間スレッド、及び前記最後のスレッドの干渉関係を含む工程と、
適格性が存在している場合にキャッシュ命令を、前記1つ又は複数のプロセッサによって挿入する工程とを備え、前記キャッシュ命令は処理を自動的に可能にする方法。 - 請求項3記載の方法であって、彩色する工程は、前記当初スレッド、前記0以上の中間スレッド、及び前記最後のスレッドに関連した利用可能な論理コンテンツ・アドレス指定可能メモリ(CAM)装置を、前記1つ又は複数のプロセッサによって用いる工程を更に含む方法。
- 請求項1記載の方法であって、通知する工程は、
前記当初スレッドによって前記データを、前記1つ又は複数のプロセッサによって修正する工程と、
前記データを修正データとして前記キャッシュに前記参照の位置において、前記1つ又は複数のプロセッサによって書き戻す工程とを更に含む方法。 - 請求項1記載の方法であって、複数のプロセッサに亘って処理する工程を更に備える方法。
- 請求項1記載の方法であって、前記キャッシュと、0以上の中間スレッド又は前記最後のスレッドによって用いられる1つ又は複数の更なるキャッシュとに対して前記更新を、前記1つ又は複数のプロセッサによって実行する工程を更に備える方法。
- 処理するとマシンに、
複数のスレッドに関連した処理に干渉がなく、修正の適格性がある場合、第1の段階及び第2の段階を含めるようキャッシング・サービスの揮発性段階を自動的に修正する機能と、
当初スレッド、0以上の中間スレッド、及び最後のスレッドを含む前記複数のスレッドに、キャッシュ内のデータの位置への参照を第1の段階中に転送する機能と、
前記最後のスレッドが前記キャッシュ内のデータの位置への参照を含む状態になると前記最後のスレッドから前記当初スレッドに通知する機能と、
前記キャッシュ内の前記データへの修正を、現在処理しているスレッドが更新した状態になると、前記当初スレッドから始めて前記複数のスレッドそれぞれから前記第2の段階中に順次通知する機能とを実行させる関連した命令を記録させたマシン読み取り可能な記録媒体。 - 請求項8記載の記録媒体であって、複数のプロセッサに亘って前記命令を処理する旨の命令を更に含み、別々のキャッシュを各プロセッサが含む記録媒体。
- 請求項9記載の記録媒体であって、前記キャッシュ及び前記別々のキャッシュ内の前記データに対して行われる更新を同期化させる旨の命令を更に含む記録媒体。
- 請求項8記載の記録媒体であって、
大局状態の更新の適格性と、前記複数のスレッドの前記更新間の干渉関係とを計算する命令と、
利用可能な論理コンテンツ・アドレス指定可能なメモリ装置を用いて前記複数のスレッドの干渉グラフを彩色する命令であって、前記干渉グラフが前記複数のスレッドの干渉関係を含む命令と、
前記媒体の前記命令を実行するために前記複数のスレッドに関連した処理にキャッシュ命令を挿入する命令とを更に含む記録媒体。 - 請求項11記載の記録媒体であって、前記スレッド毎に並列に前記第1の段階を実質的に実行する旨の命令を更に含む記録媒体。
- 請求項11記載の記録媒体であって、前記第2の段階を処理するために前記スレッドの優先順序を判定する旨の命令を更に含む記録媒体。
- 装置であって、
キャッシュ・コントローラと、
前記キャッシュ・コントローラを処理するためのプロセッサとを備え、前記キャッシュ・コントローラは、1つ又は複数のキャッシュを介して複数のスレッドのデータへのアクセスを管理し、前記キャッシュ・コントローラは第1の段階及び第2の段階を処理し、前記第1の段階は、前記1つ又は複数のキャッシュ内のデータの位置への参照を前記複数のスレッドそれぞれに供給し、前記第2の段階は、前記1つ又は複数のキャッシュ内の前記データを特定のスレッドが更新した状態になると前記複数のスレッドそれぞれに順次通知する装置。 - 請求項14記載の装置であって、前記キャッシュ・コントローラは、前記複数のスレッドのうちの2つ以上が互いに干渉するか否かを決定し、肯定の場合、前記データを前記1つ又は複数のキャッシュから除去する装置。
- 請求項14記載の装置であって、キャッシュ・コントローラは、前記1つ又は複数のキャッシュ内の前記データへの修正を同期化させる装置。
- 請求項14記載の装置であって、前記1つ又は複数のキャッシュのうちのいくつかが1つ又は複数の別々のプロセッサ上に存在している装置。
- 請求項14記載の装置であって、前記第1の段階は、前記データに対する不揮発性動作に関連している装置。
- 請求項14記載の装置であって、前記第2の段階は、前記データに対する揮発性動作に関連している装置。
- 請求項14記載の装置であって、前記キャッシュ・コントローラは、前記第1の段階及び前記第2の段階を有する2段階のソフトウェア制御キャッシング処理を自動的に実現するために、前記複数のスレッドに関連した単一段階のキャッシング処理にキャッシュ命令を挿入する装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2005/000945 WO2007000081A1 (en) | 2005-06-29 | 2005-06-29 | Methods, apparatus, and systems for caching |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008544417A JP2008544417A (ja) | 2008-12-04 |
JP4981041B2 true JP4981041B2 (ja) | 2012-07-18 |
Family
ID=37595044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008518591A Expired - Fee Related JP4981041B2 (ja) | 2005-06-29 | 2005-06-29 | キャッシュする方法、装置及びシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US7412568B2 (ja) |
EP (1) | EP1896956A1 (ja) |
JP (1) | JP4981041B2 (ja) |
KR (1) | KR100974106B1 (ja) |
CN (1) | CN101213527A (ja) |
WO (1) | WO2007000081A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080024489A1 (en) * | 2006-07-28 | 2008-01-31 | Robert Allen Shearer | Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements |
US8655833B2 (en) * | 2008-06-17 | 2014-02-18 | Qualcomm Incorporated | Database architecture for supporting group communications among wireless communication devices |
US7591019B1 (en) | 2009-04-01 | 2009-09-15 | Kaspersky Lab, Zao | Method and system for optimization of anti-virus scan |
US8438201B2 (en) * | 2010-04-30 | 2013-05-07 | Raytheon Applied Signal Technology, Inc. | Digital fractional integrator |
WO2012046300A1 (ja) * | 2010-10-05 | 2012-04-12 | 富士通株式会社 | 情報処理装置、情報処理プログラム、および情報処理方法 |
WO2012046301A1 (ja) * | 2010-10-05 | 2012-04-12 | 富士通株式会社 | 情報処理装置、情報処理プログラム、および情報処理方法 |
US20130191846A1 (en) * | 2010-10-12 | 2013-07-25 | Nec Corporation | Data processing method, data processing device, and non-transitory computer readable medium storing data processing program |
JP6046870B1 (ja) * | 2013-12-05 | 2016-12-21 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | テーブルネットワークの繰り返し適用のための計算装置 |
DE102014104142B4 (de) * | 2014-03-25 | 2015-10-22 | Intel IP Corporation | Quantisierungsschaltung und Verfahren zum Quantisieren einer Eingangsgröße |
CN108182152A (zh) * | 2017-11-28 | 2018-06-19 | 深圳市丰巢科技有限公司 | 一种基于Redis的本地缓存刷新实现方法及装置 |
CN112631802B (zh) * | 2019-04-29 | 2024-04-12 | 杭州涂鸦信息技术有限公司 | 一种线程间通信方法及相关装置 |
US20230097115A1 (en) * | 2021-09-27 | 2023-03-30 | Advanced Micro Devices, Inc. | Garbage collecting wavefront |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69535330T2 (de) * | 1994-09-14 | 2007-05-31 | Intel Corporation, Santa Clara | Caching-System mit Explitzer Folgeliste |
JPH08116192A (ja) * | 1994-10-19 | 1996-05-07 | Toshiba Corp | 同軸ケーブルのシールド構造 |
JP2882475B2 (ja) * | 1996-07-12 | 1999-04-12 | 日本電気株式会社 | スレッド実行方法 |
US5724586A (en) * | 1996-09-30 | 1998-03-03 | Nec Research Institute, Inc. | Method for improving cache locality of a computer program |
JP3604029B2 (ja) * | 1999-01-12 | 2004-12-22 | 日本電気株式会社 | マルチスレッドプロセッサ |
US6665704B1 (en) * | 1999-06-18 | 2003-12-16 | Sun Microsystems, Inc. | Bounding delays and reducing threading overheads in caching |
US6675261B2 (en) * | 2000-12-22 | 2004-01-06 | Oblix, Inc. | Request based caching of data store data |
JP3796124B2 (ja) * | 2001-03-07 | 2006-07-12 | 株式会社ルネサステクノロジ | スレッド間優先度可変プロセッサ |
JP3661614B2 (ja) * | 2001-07-12 | 2005-06-15 | 日本電気株式会社 | キャッシュメモリ制御方法及びマルチプロセッサシステム |
JP3632635B2 (ja) * | 2001-07-18 | 2005-03-23 | 日本電気株式会社 | マルチスレッド実行方法及び並列プロセッサシステム |
US20040103248A1 (en) * | 2002-10-08 | 2004-05-27 | Hass David T. | Advanced telecommunications processor |
WO2004068361A1 (ja) * | 2003-01-27 | 2004-08-12 | Fujitsu Limited | 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法 |
US7404041B2 (en) * | 2006-02-10 | 2008-07-22 | International Business Machines Corporation | Low complexity speculative multithreading system based on unmodified microprocessor core |
-
2005
- 2005-06-29 CN CNA2005800509190A patent/CN101213527A/zh active Pending
- 2005-06-29 KR KR1020077030505A patent/KR100974106B1/ko not_active IP Right Cessation
- 2005-06-29 EP EP05757950A patent/EP1896956A1/en not_active Withdrawn
- 2005-06-29 JP JP2008518591A patent/JP4981041B2/ja not_active Expired - Fee Related
- 2005-06-29 WO PCT/CN2005/000945 patent/WO2007000081A1/en not_active Application Discontinuation
-
2006
- 2006-08-04 US US11/462,465 patent/US7412568B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100974106B1 (ko) | 2010-08-04 |
US7412568B2 (en) | 2008-08-12 |
CN101213527A (zh) | 2008-07-02 |
EP1896956A1 (en) | 2008-03-12 |
KR20080014085A (ko) | 2008-02-13 |
WO2007000081A1 (en) | 2007-01-04 |
US20080034164A1 (en) | 2008-02-07 |
JP2008544417A (ja) | 2008-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4981041B2 (ja) | キャッシュする方法、装置及びシステム | |
US6636950B1 (en) | Computer architecture for shared memory access | |
KR100641988B1 (ko) | 비대칭형 단일 칩 이종 멀티프로세서 컴퓨터 시스템, 공유 메모리의 직접 메모리 액세스를 아토믹 업데이트하는 방법, 및 아토믹 업데이트 장치 | |
CN104375958B (zh) | 高速缓存存储器管理事务性存储器访问请求 | |
US6757787B2 (en) | Adaptive cache coherence protocols | |
KR100567099B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
KR100704089B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치 | |
US20080263284A1 (en) | Methods and Arrangements to Manage On-Chip Memory to Reduce Memory Latency | |
US20050160132A1 (en) | Transaction references for requests in a multi-processor network | |
JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
US9928057B2 (en) | Method of providing a non-cacheable area in memory | |
JP2005513611A (ja) | データ処理システム | |
JP2008503821A (ja) | 小容量キャッシュシステムにおけるアトミック予約ライン上のライトバックを無効化する方法およびシステム | |
US6704833B2 (en) | Atomic transfer of a block of data | |
JP2020506483A (ja) | コンペアアンドスワップトランザクション | |
JP2006040090A (ja) | キャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央処理方法。 | |
US9367461B2 (en) | Ordering constraint management within coherent memory systems | |
US8010956B1 (en) | Control transfer table structuring | |
TWI758317B (zh) | 用於提供資料存取行為原子集的裝置及方法 | |
JP3566746B2 (ja) | 情報処理装置 | |
JP2011150427A (ja) | マルチプロセッサシステムおよびその制御方法 | |
JPH08123722A (ja) | 情報処理システムにおける記憶制御方法および記憶制御装置 | |
JP2000020477A (ja) | 情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110608 |
|
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: 20120321 |
|
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: 20120419 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150427 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |