JP6272011B2 - キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 - Google Patents
キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 Download PDFInfo
- Publication number
- JP6272011B2 JP6272011B2 JP2013265377A JP2013265377A JP6272011B2 JP 6272011 B2 JP6272011 B2 JP 6272011B2 JP 2013265377 A JP2013265377 A JP 2013265377A JP 2013265377 A JP2013265377 A JP 2013265377A JP 6272011 B2 JP6272011 B2 JP 6272011B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- address
- cache
- array
- snoop
- 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/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
- 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/1048—Scalability
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)
Description
1)対応するプロセッサから排他ページ内の領域のアドレスを受信して、前記領域を含むページのスヌープ要求を他装置に送信して、前記領域を含むブロックのアドレスと最新データを自装置のキャッシュアレイに記憶し、2)他装置からページのスヌープ要求を受信して、指定されたページが包含する全てのブロックを自装置のキャッシュアレイから削除する管理手段と、前記キャッシュアレイと、を備える。
1)対応するプロセッサから排他ページ内の領域のアドレスを受信して、前記領域を含むページのスヌープ要求を他装置に送信して、前記領域を含むブロックのアドレスと最新データを自装置のキャッシュアレイに記憶し、2)他装置からページのスヌープ要求を受信して、指定されたページが包含する全てのブロックを自装置のキャッシュアレイから削除する。
本実施形態のキャッシュ装置100の構成及び動作を説明する前に、本実施形態に関する、基本的な考え方を説明する。
以降、本実施の形態のキャッシュ装置100の構成を説明する。図3は、本実施の形態のキャッシュ装置100を搭載したコンピュータ506の構成図である。
本実施の形態のキャッシュ装置100の動作を説明する前に、説明で用いられる、プロセッサ122による記憶装置505内のメモリのアクセス動作例を説明する。図6は、プロセッサ122による記憶装置505のアクセス動作例を示す図である。
M:Modified (データは当該キャッシュだけに存在し、主記憶上の値から変更されている)
E:Exclusive (データは当該キャッシュだけに存在するが、主記憶上の値と一致している)
S:Share (システム内の他のキャッシュにも同じデータが存在している)
I:Invalid (このキャッシュラインは無効である。キャッシュミス状態も同じ状態を示す)
スヌープ制御部(出力)106、ページ制御部112、および、キャッシュ制御部119は、この表に従って動作する。図7の表は、大きく二つの列に分かれている。「状態」と記された列は、命令に関する条件と、当該命令実行前のページアドレスアレイ110とキャッシュアレイ117の状態とを記述している。「判定と処理」と記された列は、スヌープ動作の単位と動作の要否、当該命令実行後のページアドレスアレイ110とキャッシュアレイ117の状態とを記述している。
ページの先頭であるA番地に対する最初のリード動作を考えると、当該番地のデータは、ページアドレスアレイ110にもキャッシュアレイ117にも存在しない。この状態は、図7の表のNo.1-9〜1-12のいずれかの状態(S/Eフラグ=0、メモリアクセス=リード、自ページアドレスアレイ110=ミス、自キャッシュアレイ117=I)が該当する。この場合、管理部120は、他のキャッシュ装置100の状態を認識するため他のキャッシュ装置100に対するスヌープ動作(スヌープ要求の発行を含む)を実行する。
続いて、プロセッサ122は、A番地+8番地に対するリード要求を出す。この時、ページアドレスアレイ110には当該番地のページアドレスは登録済みで、キャッシュアレイ117には当該番地のデータが存在している。この状態は、図7の表のNo.1-2〜1-4のいずれかの状態(S/Eフラグ=0、メモリアクセス=リード、自ページアドレスアレイ110=ヒット、自キャッシュアレイ117=E or S)が該当する。
続いて、プロセッサ122は、A番地+128番地に対するリード要求を出す。このとき、ページアドレスアレイ110には当該番地のページアドレスは登録済みだが、キャッシュアレイ117には当該番地のデータは存在しない。当該番地は、次ブロックに属するためである。この状態は、図7の表のNo.1-5〜1-8いずれかの状態(S/Eフラグ=0、メモリアクセス=リード、自ページアドレスアレイ110=ヒット、自キャッシュアレイ117=I)が該当する。この場合、管理部120は、他のキャッシュ装置100の状態を認識するため他のキャッシュ装置100に対するスヌープ動作を実行する。
以降のアクセスに対して管理部120は、キャッシュアレイ117に格納済みのブロック内にアクセスする場合は上述の1−2の動作を、格納済みブロックを越えて新たなブロックをアクセスする場合は上述の1−3の動作を実行する。更に管理部120は、ページを越えて新たなページに対してアクセスする場合は上述の1−1の動作を実行する。
ライト動作に関しても、リード時と同様に、状態に応じた処理が図7の表で規定してある。また、スヌープの処理単位は、キャッシュの管理サイズであるブロック単位である。詳細な説明は省略する。
A番地に対する最初のリード動作を考えると、当該番地のデータは、ページアドレスアレイ110にもキャッシュアレイ117にも存在しない。この状態は、図7の表のNo.2-9〜2-12いずれかの状態(S/Eフラグ=1、メモリアクセス=リード、自ページアドレスアレイ110=ミス、自キャッシュアレイ117=I)が該当する。この場合、管理部120は、他のキャッシュ装置100の状態を認識するため他のキャッシュ装置100に対するスヌープ動作(スヌープ要求の発行を含む)を実行する。
続いて、プロセッサ122は、A番地+8番地に対するリード要求を出す。この時、ページアドレスアレイ110には当該番地のページアドレスは登録済みで、キャッシュアレイ117には当該番地のデータが存在している。この状態は、No.2-2状態(S/Eフラグ=1、メモリアクセス=リード、自ページアドレスアレイ110=ヒット、自キャッシュアレイ117=E)が該当する。S/Eフラグ=1の場合、キャッシュアレイ117はSに遷移する事が無いため、自キャッシュアレイ117=Sの状態(図7の表のNo.2-3〜2-4)は存在しない。
続いて、プロセッサ122は、A番地+128番地に対するリード要求を出す。このとき、ページアドレスアレイ110には当該番地のページアドレスは登録済みだが、キャッシュアレイ117には当該番地のデータは存在しない。当該番地は、次ブロックに属するためである。この状態は、図7の表のNo.2-8状態(S/Eフラグ=1、メモリアクセス=リード、自ページアドレスアレイ110=ヒット、自キャッシュアレイ117=I)が該当する。リード要求の対象アドレスが、自装置のページアドレスアレイ110にヒットする状態は、既に他のキャッシュ装置100上に該当ページの全ブロックが存在していない事を意味している。したがって、必然的に他のキャッシュ装置100のキャッシュアレイ117の当該ブロックの状態はIであり、他の状態(図7の表のNo.2-5〜2-7)は存在しない。
以降のアクセスに対して管理部120は、キャッシュアレイ117に格納済みのブロック内にアクセスする場合は上述の2−2の動作を、格納済みブロックを越えて新たなブロックをアクセスする場合は上述の2−3の動作を実行する。更に管理部120は、ページを越えて新たなページに対してアクセスする場合は上述の2−1の動作を実行する。
ライト動作に関しても、リード時と同様に、状態に応じた処理が図7の表で規定してある。また、スヌープの処理単位は、ページである。詳細な説明は省略する。
1-1) No.1-9〜1-12 スヌープ
1-2) No.1-2〜1-4 不要
1-3) No.1-5〜1-8 スヌープ
1-4) 以降は1-2) → 1-3)を繰り返し、ページを越えたら1-1)へ
S/Eフラグ=1(排他メモリ空間)時 … ページを越える場合にのみスヌープ
2-1) No.2-9〜2-12 スヌープ
2-2) No.2-2 不要
2-3) No.2-8 不要
2-4) 以降は2)→3)を繰り返し、ページを越えたら1)へ
この結果スヌープ帯域への要求が低減され、本願発明のキャッシュ装置100は、LSI501の回路規模の低減、物理ピン数投資や高速動作に伴う消費電力等のテクノロジコストの低減が可能となる。
図8は、本実施の形態のキャッシュ装置100の構成図である。
101 命令デコード部
102 論理アドレス生成部
103 アドレス変換制御部
104 アドレス変換部
105 物理アドレス保持部
106 スヌープ制御部
106 スヌープ制御部(入力)
106 スヌープ制御部(出力)
107 スヌープアドレス保持部
108 選択器
109 ページアドレス保持部
110 ページアドレスアレイ
111 ページヒット/ミス判定部
112 ページ制御部
113 バースト制御部
114 ブロックアドレス保持部
115 選択器
116 ブロックアドレス保持部
117 キャッシュアレイ
118 キャッシュヒット/ミス判定部
119 キャッシュ制御部
121 メモリ制御部
122 プロセッサ
501 LSI
505 記憶装置
506 コンピュータ
Claims (5)
- 複数ブロックを含むページに分割され、複数のプロセッサに共有される共有ページと一定期間何れかのプロセッサに占有される排他ページを包含する記憶装置と、前記複数のプロセッサと、を備えるコンピュータに、プロセッサに対応して設けられたキャッシュ装置であって、
対応するプロセッサから排他ページ内の領域のアドレスを受信して、前記領域を含むページのスヌープ要求を他装置に送信して、前記領域を含むブロックのアドレスと最新データを自装置のキャッシュアレイに記憶し、他装置からページのスヌープ要求を受信して、指定されたページが包含する全てのブロックを自装置のキャッシュアレイから削除する管理手段と、前記キャッシュアレイと、ページアドレスアレイとを備え、
前記管理手段は、前記領域を含むページのアドレスが前記ページアドレスアレイに登録されていなければ、これを前記ページアドレスアレイに登録して、ページのスヌープ要求を他装置に送信し、前記領域を含むページのアドレスが前記ページアドレスアレイに登録されていれば、ページのスヌープ要求を他装置に送信しない、キャッシュ装置。 - 前記管理手段は、
対応するプロセッサから共有ページ内の領域のアドレスを受信して、前記領域を含むブロックのスヌープ要求を他装置に送信して、前記領域を含むブロックのアドレスと最新データを自装置のキャッシュアレイに記憶し、他装置からブロックのスヌープ要求を受信して、指定されたブロックを自装置のキャッシュアレイから削除する、請求項1のキャッシュ装置。 - 論理アドレスと、物理アドレスと、共用ページまたは排他ページの区別情報と、を格納するアドレス変換手段を備えた前記複数のプロセッサと、
前記記憶装置と、
プロセッサの論理アドレスによる前記記憶装置アクセス時に、前記アドレス変換手段から、前記物理アドレスと前記区別情報を取得する、請求項1または2のキャッシュ装置と、を備えるコンピュータ。 - 複数ブロックを含むページに分割され、複数のプロセッサに共有される共有ページと一定期間何れかのプロセッサに占有される排他ページを包含する記憶装置と、前記複数のプロセッサと、を備えるコンピュータに、プロセッサに対応して設けられたキャッシュ装置において、
対応するプロセッサから排他ページ内の領域のアドレスを受信して、前記領域を含むページのアドレスが自装置のページアドレスアレイに登録されていなければ、これを前記ページアドレスアレイに登録して、ページのスヌープ要求を他装置に送信し、前記領域を含むブロックのアドレスと最新データを自装置のキャッシュアレイに記憶し、前記領域を含むページのアドレスが前記ページアドレスアレイに登録されていれば、ページのスヌープ要求を他装置に送信せず、
他装置からページのスヌープ要求を受信して、指定されたページが包含する全てのブロックを自装置のキャッシュアレイから削除するキャッシュ制御方法。 - 対応するプロセッサから共有ページ内の領域のアドレスを受信して、前記領域を含むブロックのスヌープ要求を他装置に送信して、前記領域を含むブロックのアドレスと最新データを自装置のキャッシュアレイに記憶し、他装置からブロックのスヌープ要求を受信して、指定されたブロックを自装置のキャッシュアレイから削除する、請求項4のキャッシュ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013265377A JP6272011B2 (ja) | 2013-12-24 | 2013-12-24 | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013265377A JP6272011B2 (ja) | 2013-12-24 | 2013-12-24 | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015121945A JP2015121945A (ja) | 2015-07-02 |
JP6272011B2 true JP6272011B2 (ja) | 2018-01-31 |
Family
ID=53533504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013265377A Active JP6272011B2 (ja) | 2013-12-24 | 2013-12-24 | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6272011B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761985B2 (en) * | 2018-08-02 | 2020-09-01 | Xilinx, Inc. | Hybrid precise and imprecise cache snoop filtering |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002032265A (ja) * | 2000-07-14 | 2002-01-31 | Hitachi Ltd | キャッシュ・アクセス制御方式およびデータ処理システム |
JP2002197073A (ja) * | 2000-12-25 | 2002-07-12 | Hitachi Ltd | キャッシュ一致制御装置 |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
-
2013
- 2013-12-24 JP JP2013265377A patent/JP6272011B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015121945A (ja) | 2015-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2430551B1 (en) | Cache coherent support for flash in a memory hierarchy | |
US9081711B2 (en) | Virtual address cache memory, processor and multiprocessor | |
RU2443011C2 (ru) | Фильтрация отслеживания с использованием кэша запросов отслеживания | |
US9792210B2 (en) | Region probe filter for distributed memory system | |
TWI522802B (zh) | 確保微處理器之快取記憶體層級之資料一致性的裝置與方法 | |
US7363462B2 (en) | Performing virtual to global address translation in processing subsystem | |
US7765381B2 (en) | Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US10423354B2 (en) | Selective data copying between memory modules | |
US20170185515A1 (en) | Cpu remote snoop filtering mechanism for field programmable gate array | |
US11526449B2 (en) | Limited propagation of unnecessary memory updates | |
EP1611513B1 (en) | Multi-node system in which global address generated by processing subsystem includes global to local translation information | |
CN113656212B (zh) | 用于缓存目录tcam错误检测和纠正的系统和方法 | |
TWI407306B (zh) | 快取記憶體系統及其存取方法與電腦程式產品 | |
US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
JP3732397B2 (ja) | キャッシュシステム | |
JP6272011B2 (ja) | キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法 | |
JP6249120B1 (ja) | プロセッサ | |
KR20200088391A (ko) | 공통 메모리 페이지로부터 메모리로의 캐시 라인들의 린싱 | |
US11755485B2 (en) | Snoop filter device | |
US10482015B2 (en) | Ownership tracking updates across multiple simultaneous operations | |
TWI417725B (zh) | 微處理器、微處理器之資料快取存取方法與電腦程式產品 | |
JP7515912B2 (ja) | スヌープフィルタデバイス | |
KR101192423B1 (ko) | 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 | |
Goel et al. | E-cache memory becoming a boon towards memory management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170822 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171002 |
|
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: 20171205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6272011 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |