KR20140038075A - 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 - Google Patents
캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 Download PDFInfo
- Publication number
- KR20140038075A KR20140038075A KR1020120104316A KR20120104316A KR20140038075A KR 20140038075 A KR20140038075 A KR 20140038075A KR 1020120104316 A KR1020120104316 A KR 1020120104316A KR 20120104316 A KR20120104316 A KR 20120104316A KR 20140038075 A KR20140038075 A KR 20140038075A
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- signal
- coherency
- cobus
- bus
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
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)
Abstract
Description
도 2은 본 발명의 일 실시예에 따른 캐시 일관성을 위한 인터페이스의 입출력을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 코버스 중재기의 입출력을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따라 다른 캐시들과의 일관성을 유지하기 위한 캐시의 동작 순서도이다.
300: 코버스 중재기 310: 코버스
400: 메모리 410: 메모리 버스
Claims (16)
- 메인 메모리;
복수의 프로세서;
각 프로세서와 연결되는 복수의 캐시 메모리;
상기 복수의 캐시 메모리 및 상기 메인 메모리와 연결되는 메모리 버스; 및
상기 복수의 캐시 메모리와 연결되어 캐시간 일관성 관련 정보를 전달하는 코히어런시 버스(coherency bus)를 포함하는 멀티프로세서 장치. - 청구항 1에 있어서,
상기 코히어런시 버스는,
상기 복수의 캐시 메모리로부터 코히어런시 버스 점유 요청 신호를 수신하고 제1 캐시 메모리에 점유를 승인하며, 상기 복수의 캐시 메모리간 정보 신호의 송수신을 제어하는 코버스 중재기를 포함하는 멀티프로세서 장치. - 청구항 2에 있어서,
상기 코버스 중재기는, 상기 제1 캐시 메모리로부터 신호를 수신하고, 해당 신호와 관련하여 동작을 필요로 하는 적어도 하나의 제2 캐시 메모리에 코히어런시 버스 선택 신호 및 상기 제1 캐시 메모리로부터의 신호를 전달하는, 멀티프로세서 장치. - 청구항 1에 있어서,
상기 캐시 메모리는
다른 캐시 메모리와의 일관성 유지를 위한 신호 교환을 위한 캐시 일관성 인터페이스를 포함하는 멀티프로세서 장치. - 청구항 1에 있어서,
상기 캐시 일관성 인터페이스는,
코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코히어런시 버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환하는 멀티프로세서 장치. - 청구항 1에 있어서,
상기 캐시 메모리는 독점, 공유, 무효, 및 변형 모드를 포함하는 복수의 모드를 이용해 상태 관리되는 것을 특징으로 하는, 멀티프로세서 장치. - 복수의 프로세서를 위한 복수의 캐시 메모리와 연결되고, 상기 복수의 캐시 메모리간의 코히어런시 버스 점유를 제어하는 코버스 중재기를 포함하는 코히어런시 버스를 포함하고,
상기 캐시 메모리는 다른 캐시 메모리와의 일관성 유지를 위한 신호 교환을 위해 캐시 일관성 인터페이스를 포함하는, 캐시 일관성 유지 장치. - 청구항 7에 있어서,
상기 캐시 일관성 인터페이스는,
코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환하는, 캐시 일관성 유지 장치. - 복수의 다른 캐시와 연결된 코히어런시 버스를 통해 다른 캐시와의 일관성을 유지하는, 캐시의 일관성 유지 방법에 있어서,
프로세서로부터 요청받은 어드레스에 해당하는 데이터를 보유하는지 확인하는 단계;
상기 요청받은 어드레스에 해당하는 데이터를 보유하지 않는 경우, 상기 코히어런시 버스 상에 코버스 요청 신호를 발생시키는 단계;
코버스 점유 승인 신호를 수신하면, 상기 요청받은 어드레스 관련 정보 및 메인 메모리 읽기 시도 신호를 상기 코히어런시 버스 상에 발생시키는 단계; 및
복수의 다른 캐시로부터 수신한 신호의 값에 따라 캐시 상태를 설정하는 단계를 포함하는, 캐시의 일관성 유지 방법. - 청구항 9에 있어서,
상기 요청받은 어드레스 관련 정보는,
상기 어드레스로 계산된 태그 및 인덱스 값을 포함하는, 캐시의 일관성 유지 방법. - 청구항 9에 있어서,
상기 캐시 메모리는 독점, 공유, 무효, 및 변형 모드를 포함하는 복수의 모드를 이용해 상태 관리되는 것을 특징으로 하는, 캐시의 일관성 유지 방법. - 청구항 11에 있어서,
상기 복수의 다른 캐시로부터 수신한 신호의 값에 따라 캐시 상태를 설정하는 단계는,
상기 복수의 다른 캐시로부터 수신한 코버스 공유 값이 모두 '0'인 경우, 자신의 상태 값을 '독점(Exclusive)'로 설정하는 단계; 및
상기 복수의 다른 캐시로부터 수신한 코버스 공유 값이 하나라도 '1'인 경우, 자신의 상태 값을 '공유(shared)'로 설정하는 단계를 포함하는, 캐시의 일관성 유지 방법. - 청구항 11에 있어서,
상기 캐시 메모리는, 코버스 요청 신호, 코버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코히어런시 버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환하는 것을 특징으로 하는, 캐시의 일관성 유지 방법. - 청구항 11에 있어서,
프로세서에 의해 특정 태그 및 인덱스에 해당하는 데이터가 변경된 경우, 해당 태그 및 인덱스에 해당하는 데이터 상태를 '변형(modified)'으로 변경하는 단계를 더 포함하는, 캐시의 일관성 유지 방법. - 청구항 11에 있어서,
상기 코히어런시 버스에 실린 쓰기 신호에 대한 인덱스 및 태그에 해당하는 데이터를 보유하는 경우, 인덱스 및 태그에 해당하는 데이터를 '무효(Invalid)'로 상태 변경하는 단계를 더 포함하는, 캐시의 일관성 유지 방법. - 청구항 11에 있어서,
보유하고 있던 데이터가 공유인 상태에서, 해당 데이터를 공유하던 다른 캐시가 플러시되는 경우, 해당 데이터를 '독점(Exclusive)'으로 상태 변경하는 단계를 더 포함하는, 캐시의 일관성 유지 방법.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020120104316A KR101695845B1 (ko) | 2012-09-20 | 2012-09-20 | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 |
| US14/030,543 US9372795B2 (en) | 2012-09-20 | 2013-09-18 | Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020120104316A KR101695845B1 (ko) | 2012-09-20 | 2012-09-20 | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20140038075A true KR20140038075A (ko) | 2014-03-28 |
| KR101695845B1 KR101695845B1 (ko) | 2017-01-12 |
Family
ID=50275715
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020120104316A Expired - Fee Related KR101695845B1 (ko) | 2012-09-20 | 2012-09-20 | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9372795B2 (ko) |
| KR (1) | KR101695845B1 (ko) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20160146532A (ko) * | 2015-06-11 | 2016-12-21 | 에이알엠 리미티드 | 데이터 처리장치와 인터컨넥트 사이의 하드웨어 기반의 코히런시 |
| WO2019124972A1 (ko) * | 2017-12-20 | 2019-06-27 | 삼성전자 주식회사 | 병렬 처리 시스템 및 그 동작 방법 |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014158173A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Implementing coherency with reflective memory |
| KR102069696B1 (ko) * | 2013-11-20 | 2020-01-23 | 한국전자통신연구원 | 캐시 제어 장치 및 방법 |
| KR102457179B1 (ko) | 2016-03-02 | 2022-10-21 | 한국전자통신연구원 | 캐시 메모리 및 그것의 동작 방법 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6868481B1 (en) * | 2000-10-31 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Cache coherence protocol for a multiple bus multiprocessor system |
| US20090210628A1 (en) * | 2008-02-14 | 2009-08-20 | Gaither Blaine D | Computer Cache System With Stratified Replacement |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6519685B1 (en) | 1999-12-22 | 2003-02-11 | Intel Corporation | Cache states for multiprocessor cache coherency protocols |
| US8205046B2 (en) | 2005-01-31 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | System and method for snooping cache information using a directory crossbar |
| US8185700B2 (en) | 2006-05-30 | 2012-05-22 | Intel Corporation | Enabling speculative state information in a cache coherency protocol |
| US8185695B2 (en) | 2008-06-30 | 2012-05-22 | Advanced Micro Devices, Inc. | Snoop filtering mechanism |
| US20120137079A1 (en) | 2010-11-26 | 2012-05-31 | International Business Machines Corporation | Cache coherency control method, system, and program |
-
2012
- 2012-09-20 KR KR1020120104316A patent/KR101695845B1/ko not_active Expired - Fee Related
-
2013
- 2013-09-18 US US14/030,543 patent/US9372795B2/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6868481B1 (en) * | 2000-10-31 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Cache coherence protocol for a multiple bus multiprocessor system |
| US20090210628A1 (en) * | 2008-02-14 | 2009-08-20 | Gaither Blaine D | Computer Cache System With Stratified Replacement |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20160146532A (ko) * | 2015-06-11 | 2016-12-21 | 에이알엠 리미티드 | 데이터 처리장치와 인터컨넥트 사이의 하드웨어 기반의 코히런시 |
| WO2019124972A1 (ko) * | 2017-12-20 | 2019-06-27 | 삼성전자 주식회사 | 병렬 처리 시스템 및 그 동작 방법 |
| US11237992B2 (en) | 2017-12-20 | 2022-02-01 | Samsung Electronics Co., Ltd. | Parallel processing system and operation method thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101695845B1 (ko) | 2017-01-12 |
| US9372795B2 (en) | 2016-06-21 |
| US20140082300A1 (en) | 2014-03-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5431525B2 (ja) | アクセラレータ用低コストのキャッシュ一貫性を維持するシステム | |
| US10162757B2 (en) | Proactive cache coherence | |
| US7624236B2 (en) | Predictive early write-back of owned cache blocks in a shared memory computer system | |
| US9208091B2 (en) | Coherent attached processor proxy having hybrid directory | |
| CN104508645B (zh) | 用于使用多个子锁来控制对具有读取器‑写入器锁的共享数据结构的访问的系统和方法 | |
| JP5315017B2 (ja) | マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法、コンピュータ読み取り可能な記録媒体及びマルチプロセッサ・データ処理システム | |
| KR100861691B1 (ko) | 미러링된 로크 캐시들을 사용한 데이터 전파 | |
| US9208088B2 (en) | Shared virtual memory management apparatus for providing cache-coherence | |
| KR100515059B1 (ko) | 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법 | |
| CN102929832A (zh) | 基于非写分配的高速缓存一致性的多核处理器数据传输系统 | |
| JP2005519391A (ja) | 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム | |
| US9606923B2 (en) | Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program | |
| KR101695845B1 (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
| CN115686769A (zh) | 根据cxl协议处理一致存储器事务的系统、装置和方法 | |
| US20090083496A1 (en) | Method for Improved Performance With New Buffers on NUMA Systems | |
| US20140059297A1 (en) | System cache with sticky allocation | |
| US20060236039A1 (en) | Method and apparatus for synchronizing shared data between components in a group | |
| JP2012043031A (ja) | 共有キャッシュメモリ装置 | |
| US6601145B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls | |
| KR101092929B1 (ko) | 일관성 관리 방법, 일관성 관리 회로, 이를 포함하는 캐시 장치 및 반도체 장치 | |
| US8051251B2 (en) | Method and apparatus for setting status of cache memory | |
| JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 | |
| US6546469B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers | |
| US6546468B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update | |
| US6546470B1 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers with banked directory implementation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| A201 | Request for examination | ||
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-2-2-P10-P22-nap-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| FPAY | Annual fee payment |
Payment date: 20191223 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20240107 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20240107 |