KR19990026501A - 분산 공유 메모리의 캐시 일관성 제어방법 및 장치 - Google Patents

분산 공유 메모리의 캐시 일관성 제어방법 및 장치 Download PDF

Info

Publication number
KR19990026501A
KR19990026501A KR1019970048654A KR19970048654A KR19990026501A KR 19990026501 A KR19990026501 A KR 19990026501A KR 1019970048654 A KR1019970048654 A KR 1019970048654A KR 19970048654 A KR19970048654 A KR 19970048654A KR 19990026501 A KR19990026501 A KR 19990026501A
Authority
KR
South Korea
Prior art keywords
state
directory
transaction
clean
cache block
Prior art date
Application number
KR1019970048654A
Other languages
English (en)
Inventor
김용
Original Assignee
구자홍
엘지전자 주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 구자홍, 엘지전자 주식회사 filed Critical 구자홍
Priority to KR1019970048654A priority Critical patent/KR19990026501A/ko
Publication of KR19990026501A publication Critical patent/KR19990026501A/ko

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 분산 공유 메모리의 캐시 일관성 제어방법 및 장치에 관한 것으로서, 분산 공유 메모리 구조를 갖는 다중 처리 시스템으로 이루어진 각 노드에 풀맵방식의 디렉토리를 구현하고, 디렉토리의 자원 관리를 위하여 그 저장 비트를 소정 비트로 제한하며, 그 상태 천이는 서로 다른 노드들의 정보 교환이 있을 경우 이루어지도록 함으로써, 읽기 및 쓰기 동작시 효율적으로 디렉토리의 캐시 일관성을 유지하도록 하는 것이다.
이와 같은 본 발명은 분산 공유 메모리 구조를 갖는 다중 처리 시스템에서 소정의 프로세서로부터 발생된 트랜잭션을 처리하기 위하여 다른 노드의 메모리 영역을 참조해야 할 때, 트랜잭션이 단순 읽기 동작이 아닌 경우에는 최종 디렉토리의 상태를 더티상태로 천이하는 과정과; 트랜잭션이 단순 읽기 동작이고, 동시에 로컬 억세스이면서 현재 캐시블록이 클린상태인 경우를 제외하고는 최종 디렉토리 상태를 공유상태로 천이하는 과정과; 더티상태와 공유상태로 천이하는 경우 외에는 최종 디렉토리 상태를 클린상태로 천이하는 과정으로 이루어짐을 특징으로 한다.

Description

분산 공유 메모리의 캐시 일관성 제어방법 및 장치
본 발명은 다수개의 프로세서를 채용한 중형 컴퓨터의 캐시 일관성(Cache Coherency) 유지 시스템에 관한 것으로서, 보다 상세하게는 분산 공유 메모리 구조의 중형 컴퓨터에서 각 프로세서의 캐시 일관성을 유지하기 위하여 디렉토리 캐시를 사용함으로써, 캐시 일관성 유지 프로토콜 방식에 읽기 및 쓰기 동작시 디렉토리의 상태를 효율적으로 관리하도록 하는 분산 공유 메모리의 캐시 일관성 제어방법에 관한 것이다.
일반적으로 중형 컴퓨터 시스템은 다중 프로세서의 메모리를 구현하는 방식에 따라 대칭형 다중 처리(SMP : Symmetric Multi-Processing) 시스템과, 메인 메모리를 각각 분산시킨 분산 공유 메모리 구조가 있다.
도 1은 SMP 시스템의 개략적인 블록 구성도로서, 이에 도시된 바와 같이, 캐시 메모리를 포함한 다수개의 프로세서(11∼13)를 로컬 버스로 연결 접속하고, 각 프로세서로부터 발생된 트랜잭션을 로컬 버스를 통하여 다른 프로세서의 캐시 메모리에 억세스 하거나, 로컬 버스에 연결된 공유 메모리(14)를 참조하는 해당 데이터를 패치 하게 된다.
도 2는 분산 공유 메모리구조의 다중 처리 시스템의 개략적인 블록 구성도로서, 이에 도시된 바와 같이 다수개의 CPU와 캐시 메모리와 분산 공유 메모리(21a∼23a)를 포함한 다수개의 노드(21∼23)로 구성되며, 상기 각 노드(21∼23)를 상호 연결하여 리모트 억세스에 따른 해당 노드로의 어드레스 및 데이터를 요청 및 공급하는 상호접속 버스로 구성된다.
이와 같이 구성된 종래의 분산 공유 메모리 구조의 다중 처리 시스템은 캐시 일관성 유지를 위하여 도 1a와 같은 SMP 구조의 다중 프로세서 시스템에서 사용하였던 스누핑 방식이 아닌 디렉토리 기반(Directory-based)의 캐시 일관성 유지 프로토콜이 사용된다.
여기서, 디렉토리 기반의 캐시 일관성 유지 프로토콜은 스누핑 방식에 비하여 동시전송(broadcasting)에 의한 부하를 감소시킬 뿐만 아니라, 각 노드간의 네트워크 연결을 줄이는 효과가 있다.
한편, 분산 공유 메모리 구조에서의 캐시 일관성 프로토콜은 전송속도가 빠르고, 확장성이 큰 점 대 점(Point-to-point) 방식을 기초로 하여 풀맵(Full-map), 리미티드(Limited), 체인드 디렉토리(chained directory)등의 디렉토리 구조를 기반으로 한 각각 변형된 디렉토리 구조가 적용되었다.
여기서, 풀맵 디렉토리 구조는 가장 기초적인 구조로서 임의의 데이터 블록에 대한 각 노드의 캐시 메모리에 데이터가 저장된 상태를 각 노드당 1 비트를 할당(assign)하고, 비공유(Unshared), 공유(shared), 더티(dirty)의 상태를 표시하게 된다.
이상에서 설명한 바와 같이 종래 기술에 따른 풀맵 디렉토리 구조는 제한된 노드수를 갖는 시스템에서는 효과적이나, 노드수가 증가함에 따라 메모리의 용량을 증가시켜야 하는 문제점이 있으며, 이와 같은 문제점을 개선한 리미티드 또는 체인드 방식의 디렉토리 구조는 확장성은 증가되었으나, 복잡도가 증가하는 등의 문제점이 있었다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 개선하고자 하여 분산 공유 메모리 구조를 갖는 다중 처리 시스템으로 이루어진 각 노드에 풀맵방식의 디렉토리를 구현하고, 디렉토리의 자원 관리를 위하여 그 저장 비트를 소정 비트로 제한하며, 그 상태 천이는 서로 다른 노드들의 정보 교환이 있을 경우 이루어지도록 함으로써, 읽기 및 쓰기 동작시 효율적으로 디렉토리의 캐시 일관성을 유지하도록 하는 분산 공유 메모리의 캐시 일관성 제어방법 및 장치를 제공함에 그 목적이 있다.
도 1은 일반적인 대칭형 다중 처리 시스템의 개략 구성도 이고,
도 2는 종래 기술에 따른 분산 공유 메모리 구조의 다중 처리 시스템의 개략 구성도 이고,
도 3은 본 발명을 구현하기 위한 분산 공유 메모리 구조의 다중 처리의 개략 구성도 이고,
도 4는 본 발명의 실시예에 따른 캐시 일관성 유지를 위한 디렉토리 캐시의 상태 천이를 설명하기 위한 도이다.
* 도면의 주요부분에 대한 부호의 설명
100, 200 : 제 1, 제 2 노드 101 ∼ 104 : 제 1 내지 제 4 프로세서
110, 210 : 제 1, 제 2 메모리 제어부
111, 211 : 제 1, 제 2 메모리 121 ∼ 222 : OPB
201 ∼ 204 : 제 5 내지 제 8 프로세서
상기한 본 발명의 목적을 달성하기 위한 분산 공유 메모리의 캐시 일관성 제어과정은 분산 공유 메모리 구조를 갖는 다중 처리 시스템에서 소정의 프로세서로부터 발생된 트랜잭션을 처리하기 위하여 다른 노드의 메모리 영역을 참조해야 할 때, 상기 트랜잭션이 단순 읽기 동작이 아닌 경우에는 최종 디렉토리의 상태를 더티상태로 천이하는 과정과; 상기 트랜잭션이 단순 읽기 동작이고, 동시에 로컬 억세스이면서 현재 캐시블록이 클린상태인 경우를 제외하고는 최종 디렉토리 상태를 공유상태로 천이하는 과정과; 상기 더티상태와 상기 공유상태로 천이하는 경우 외에는 최종 디렉토리 상태를 클린상태로 천이하는 과정으로 이루어짐을 특징으로 한다.
상기한 본 발명의 목적을 달성하기 위한 다른 방법은 분산공유 메모리 구조를 갖는 다중 프로세서를 포함한 다수개의 노드중 어느 특정 프로세서로부터 트랜잭션이 발생할 경우 자신의 노드의 메모리 영역을 참조하는 로컬 억세스와, 상기 트랜잭션을 처리하기 위하여 다른 노드의 메모리를 참조하는 리모트 억세스에 의하여 해당 프로세서에 응답하는 분산 공유 메모리의 분산공유 메모리 관리방법에 있어서, 상기 로컬 억세스는 발생된 트랜잭션이 단순한 읽기 동작일 경우 캐시 블록의 상태에 따라 최종 디렉토리 상태를 클린 또는 공유상태로 천이하는 제 1 과정과; 상기 트랜잭션이 단순 읽기 동작이외 일 경우에는 캐시 블록의 상태에 관계없이 최종 디렉토리 상태를 클린상태로 천이하는 제 2 과정을 포함하며, 상기 리모트 억세스는 상기 트랜잭션이 쓰기동작 또는 단순 읽기 동작일 경우 현재 캐시 블록에 관계없이 최종 디렉토리 상태를 공유상태로 천이하는 제 3 과정과; 상기 트랜잭션이 자신 이외의 모든 캐시 데이터를 무효화시키기 위한 요청이거나, 쓰기를 위한 읽기동작일 경우 현재 캐시 블록에 관계없이 최종 디렉토리 상태를 더티상태로 천이하는 제 4 과정을 포함하여 이루어짐을 특징으로 한다.
또한, 본 발명의 목적을 달성하기 위한 분산 공유 메모리의 캐시 일관성 제어장치는 다수개의 프로세서를 연결하는 제 1 로컬버스와 상기 각 프로세서가 공유하며 발생된 트랜잭션을 처리하는 공유 메모리 및 메모리 제어장치를 포함한 다수개의 노드와, 상기 각 노드를 내부 접속하는 제 3 로컬버스를 포함한 분산 공유 메모리 구조의 다중 처리 시스템에 있어서, 상기 메모리 제어장치는 디렉토리 기반의 캐시 일관성 제어를 하도록 데이터 블록에 대한 각 노드의 캐싱 상태를 캐시 블록당 소정 비트를 할당하여 표시하는 디렉토리를 포함하여 구성됨을 특징으로 한다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 보다 상세히 설명하면 다음과 같다.
도 4는 본 발명의 실시예에 따른 분산 공유 메모리의 캐시 일관성 유지를 위한 디렉토리의 상태 천이 표시도로서, 이에 도시된 바와 같이 제 1 노드(100)의 어느 프로세서로부터 발생된 트랜잭션을 처리하기 위하여 제 2 노드의 메모리(211) 영역을 참조(Remote access)해야 할 때, 상기 트랜잭션이 단순 읽기 동작(Read for read)이 아닌 경우(R !RFR)에는 최종 디렉토리(Final Directory)의 상태를 더티상태(Dirty)로 천이하는 제 1 과정과; 상기 트랜잭션이 단순 읽기 동작이고, 동시에 로컬 억세스이면서 현재의 캐시블록이 클린상태인 경우를 제외(RFR !(LC))하고는 최종 디렉토리 상태를 공유상태(Shared)로 천이하는 제 2 과정과; 상기 더티상태(Dirty)와 상기 공유상태(Shared)로 천이하는 경우 외에는 최종 디렉토리 상태를 클린상태(Clean)로 천이하는 제 3 과정으로 이루어진다.
여기서, 미 설명부호 'L'은 로컬 억세스(Local access)이고, 'R'은 리모트 억세스(Remote access)이고, 'RFR'은 단순 읽기동작(Read for read)이고, 'RFW'는 쓰기를 위한 읽기동작(Read for write)이고, 'INV'은 무효화(Invalid)요청이고, 'WR'은 쓰기동작이고, 'C'는 현재 캐시블록이 클린상태임을 나타내고, 'S'는 현재 캐시블록이 공유상태(Shared)를 나타내고, 'D'는 현재 캐시블록이 더티상태(Dirt)를 나타내고, 한편, ''는 논리곱(and), '#'는 논리합(or), '!'는 부정(not)을 나타낸다.
도 3은 본 발명에 따른 분산 공유 메모리구조를 갖는 다중 처리 시스템의 구성도로서, 이에 도시된 바와 같이 다수개의 프로세서를 포함하며, 각 프로세서로부터 발생된 트랜잭션을 처리하도록 공유 메모리를 참조하고, 요청된 데이터가 없을 경우 리모트 억세스를 통하여 데이터를 요청하여 해당 프로세서에 공급하는 제 1, 제 2 노드(100)(200)와; 상기 제 1, 제 2 노드(100)(200)를 연결하며 프로그램 가능 통신용 인터페이스(Programmable Communications Interface : 이하 PCI라 약칭함) 버스를 제어하는 오피비(Orion PCI Bridge : 이하 OPB라 약칭함)(121~222)과 인터페이스 하는 제 3 로컬버스로 구성된다.
여기서, 제 1, 제 2 노드(100)(200)는 제 1 내지 제 4 프로세서(101∼104)를 연결하는 제 1 로컬버스와, 제 3 내지 제 8 프로세서(201∼204)를 연결하는 제 2 로컬버스와, 상기 해당 로컬버스에 각각 연결되어 데이터를 공유하는 제 1, 제 2 메모리(111)(211)와, 상기 각 프로세서(101∼104)(201~204)로부터 발생된 트랜잭션을 처리하도록 자신의 노드에 해당되는 각 메모리(111)(211)를 참조하여 데이터를 판독 및 갱신함과 아울러, 리모트 억세스를 구동시켜 제 3 로컬 버스를 통하여 다른 노드의 메모리를 참조함과 아울러 디렉토리의 상태를 변경시키는 제 1, 제 2 메모리 제어부(110)로 구성된다.
또한, 상기 제 1, 제 2 메모리 제어부(110)(210)에 포함된 각 디렉토리는 데이터 블록에 대한 각 노드의 캐싱(Caching)한 상태를 캐시 블록당 2비트를 할당하여 클린, 공유, 더티상태를 표시한다.
이와 같이 구성된 본 발명의 동작을 도 2 내지 도 4를 참조하여 보다 상세히 설명하면 다음과 같다.
먼저, 본 발명은 도 3에 도시된 바와 같이 제 1 노드(100)의 제 1 프로세서(101)에서 구동된 트랜잭션이 각 프로세서(101∼104)에서 캐시 미스가 발생할 경우, 제 1 로컬버스로 구동하게 된다. 제 1 메모리 제어부(110)는 제 1 로컬버스에 구동된 트랜잭션을 해당 디렉토리를 참조하여 제 1 메모리(111)에 해당 데이터가 존재할 경우 이를 판독하여 제 1 프로세서(101)로 공급한다.
만약, 제 1 메모리 제어부(110)의 디렉토리를 참조한 결과 원하는 데이터가 존재하지 않을 경우에는 제 3 로컬버스를 통하여 제 2 노드(200)의 메모리(211)에 리모트 억세스를 수행하게 된다.
제 3 로컬버스에 구동된 트랜잭션은 제 2 노드(200)의 제 2 메모리 제어부(210)를 통하여 제 2 메모리(211)에 저장된 데이터를 판독한 후 제 3 로컬버스를 통하여 제 1 메모리 제어부(110)에 전달하고, 해당 데이터를 제 1 메모리(111)에 저장 및 제 1 프로세서(101)에 공급하는 한편, 제 1, 제 2 메모리 제어부(110)의 각 디렉토리의 상태를 적절히 변경시킨다.
여기서, 각 노드의 디렉토리는 풀맵 구조를 기반으로 하는 디렉토리 캐시를 갖는 구조에서 디렉토리의 자원관리를 위하여, 데이터 블록에 대한 각 노드의 캐싱(caching) 상태를 캐시 블록당 2비트를 할당하고, 그 상태를 다른 노드가 캐싱하지 않은 상태(클린상태)와, 다른 노드가 읽기용으로 캐싱한 상태(공유상태)와, 다른 노드가 쓰기 용으로 캐싱한 상태(더티상태)중 하나로 표시하고, 서로 다른 노드들의 정보 교환 즉, 리모트 억세스 동작이 수행될 경우 상태 천이가 이루어지도록 한다.
예를 들어, 할당된 2비트(D1, D0)의 값이 '(0,0)'일 경우에는 클린상태를 표시하고, '(0,1)'일 경우에는 공유상태를 표시하고, '(1,0)'일 경우에는 더티상태를 표시하도록 한다.
다음 표 1a, 1b는 본 발명에 따른 분산 공유 메모리의 캐시 일관성 유지를 위한 디렉토리의 상태 천이를 나타낸 도표로서, 이을 참조하여 보다 상세히 설명하면 다음과 같다.
여기서 미 설명 부호'-'는 'Don't care'를 나타낸다.
먼저, 상기 표 1a에서와 같이, 제 1 노드(100) 내의 소정의 프로세서에서 발생된 트랜잭션을 자기 자신의 노드안의 메모리 영역을 참조할 경우에 대하여 설명하면 다음과 같다.
단순한 읽기 동작일 경우 즉, 트랜잭션을 시작하려는 프로세서가 단순 읽기 동작을 위한 요청을 할 경우, 현재의 캐시 블록에 대한 상태가 클린상태 또는 공유상태이면 특별한 액티비티가 필요하지 않으며, 제 1 메모리(111)로부터 데이터를 제공받으면 된다. 이때의 최종 디렉토리 상태는 각각 클린상태와 공유상태를 그대로 유지한다. 만약, 현재의 캐시블록에 대한 상태가 더티상태이면 유효한 데이터가 제 2 노드(200)의 메모리에 있으므로, 제 2 노드(200)의 제 2 메모리 제어부(210)에 라이트 백(Write back)요청을 하고, 이때의 디렉토리 상태는 공유상태로 천이하게 된다.
발생된 트랜잭션이 쓰기를 위한 읽기 동작일 경우 즉, 트랜잭션을 시작하려는 프로세서가 쓰기동작을 위한 읽기동작 요청일 경우에는 만약 현재의 캐시 블록에 대한 상태가 클린상태일 경우에는 특별한 액티비티가 필요하지 않으며, 제 1 메모리(111)로부터 데이터를 제공받으면 되고, 최종 디렉토리의 상태는 그대로 유지된다.
만약, 현재의 캐시 블록에 대한 상태가 공유상태인 경우에는 무효화 액티비티(Invalid activity)가 필요하며, 제 1 메모리(111)로부터 데이터를 제공받으면 된다. 이때, 디렉토리의 상태는 클린상태로 천이하게 된다.
만약, 현재의 캐시 블록에 대한 상태가 더티상태일 경우에는 유효한 데이터가 제 2 노드(200)의 제 2 메모리(211)에 있으므로, 제 2 노드(200)에게 무효화 요청을 한다. 즉, 제 2 노드(200)의 해당 데이터가 라이트 백하면서 동시에 제 2 노드(200)의 데이터를 무효화시키게 된다. 이때, 디렉토리 상태는 클린상태로 천이하게 된다.
소정 프로세서에서 발생된 트랜잭션이 무효화 요청일 경우 즉, 트랜잭션을 시작하려는 프로세서가 자기 이외의 모든 캐시 메모리의 데이터를 무효화시키기 위한 요청이다. 이때, 만약 현재의 캐시 블록에 대한 상태가 클린 상태인 경우에는 특별한 액티비티가 필요하지 않고, 디렉토리의 상태도 그대로 클린상태를 유지하게 된다.
만약, 현재의 캐시 블록에 대한 상태가 공유상태인 경우에는 무효화 액티비티가 필요하며, 이때의 디렉토리 상태는 클린상태로 천이하게 된다.
또한, 만약 현재의 캐시 블록에 대한 상태가 더티상태인 경우에는 유효한 데이터가 제 2 노드(200)에 있으므로, 제 2 노드(200)에 무효화 요청을 하게 된다. 이는 제 2 노드(200)의 해당 데이터가 라이트 백하면서, 동시에 다른 노드의 데이터를 무효화 시키도록 하기 위한 것이다. 이때의 디렉토리 상태는 클린상태로 천이하게 된다.
소정 프로세서에서 발생된 트랜잭션이 쓰기동작일 경우, 즉 트랜잭션을 시작하려는 프로세서가 쓰기동작을 위한 요청일 경우, 이때 만약 현재의 캐시 블록에 대한 상태가 클린상태인 경우에는 특별한 액티비티가 필요하지 않으며, 이때의 디렉토리 상태는 그대로 클린상태를 유지한다.
만약, 현재의 캐시 블록에 대한 상태가 공유상태일 경우에는 무효화 액티비티가 필요하며, 이때의 디렉토리 상태는 클린상태로 천이하게 된다.
한편, 발생된 트랜잭션이 쓰기동작일 경우에는 로컬버스의 캐시 일관성 유지를 위한 프로토콜이 스누프방식이므로 더티상태는 발생하지 않는다.
다음은 표 1b에서와 같이, 제 1 노드(100)의 소정의 프로세서에서 발생된 트랜잭션을 처리하기 위하여 제 2 노드(200)의 제 2 메모리(211) 영역을 참조하는 경우 즉, 리모트 억세스를 해야할 경우에 관하여 보다 상세히 설명하면 다음과 같다.
제 1 노드(100)의 소정의 프로세서에서 발생된 트랜잭션이 단순 읽기 동작일 경우 즉, 트랜잭션을 시작하려는 프로세서가 단순 읽기 동작을 위한 요청일 경우, 만약, 현재의 캐시 블록에 대한 상태가 클린상태 또는 공유상태인 경우에는 특별한 액티비티가 필요하지 않으며, 제 2 메모리(211)로부터 데이터를 제공받고, 이때의 디렉토리 상태는 공유상태로 천이한다.
제 1 노드(100)의 소정의 프로세서에서 발생된 트랜잭션이 쓰기를 위한 읽기동작일 경우 즉, 트랜잭션을 시작하려는 프로세서가 쓰기동작을 위한 읽기 동작요청일 경우, 만약 현재의 캐시블록에 대한 상태가 클린상태이면 특별한 액티비티가 필요하지 않으며, 제 2 메모리(211)의 데이터를 제공받으면 된다. 이때의 디렉토리 상태는 더티상태로 천이하게 된다. 한편, 현재의 캐시블록에 대한 상태가 공유상태인 경우에는 무효화 액티비티가 필요하며, 제 2 메모리(211)의 데이터를 제공받으면 되고, 이때의 디렉토리 상태는 더티상태로 천이하게 된다.
제 1 노드(100)의 소정의 프로세서에서 발생된 트랜잭션이 무효화 요청일 경우 즉, 트랜잭션을 시작하려는 프로세서가 자기 이외의 모든 캐시 데이터를 무효화시키기 위한 요청일 경우 만약, 현재의 캐시 블록에 대한 상태는 더티상태 또는 클린상태인 경우는 발생하지 않으며, 캐시 블록 상태가 공유상태이면 무효화 액티비티가 필요하며 이때의 디렉토리 상태는 더티상태로 천이하게 된다.
제 1 노드(100)의 소정의 프로세서에서 발생된 트랜잭션이 쓰기동작이 경우 즉, 트랜잭션을 시작하려는 프로세서가 쓰기동작을 위한 요청일 경우이고, 이때 현재의 캐시 블록에 대한 상태가 더티상태이면 특별한 액티비티가 필요하지 않으며 디렉토리 상태는 그대로 더티상태를 유지한다.
이와 같이 디렉토리 상태의 결정요소는 억세스의 구분, 트랜잭션과 현재의 디렉토리 상태에 따라 가변될 수 있다. 즉, 모두 24 경우의 수가 발생할 수 있으며, 그 중에서 3가지의 경우가 더티상태로 5가지의 경우가 공유상태로, 그리고 나머지는 클린상태를 천이하게 된다.
이상에서 설명한 바와 같이 본 발명은 분산 공유 메모리 구조를 갖는 다중 처리 시스템에서 풀맵을 기반으로 하는 디렉토리 캐시를 갖는 구조에서 디렉토리의 자원 관리를 위하여 그 저장 비트를 소정 비트로 제한하고, 이를 통하여 발생된 트랜잭션을 처리함에 따라 디렉토리의 상태를 천이 시킴으로써, 디렉토리 방식의 캐시 일관성 유지 프로토콜 방식에 읽기 및 쓰기 동작시 디렉토리의 상태를 효율적으로 관리할 수 있는 효과가 있다.

Claims (8)

  1. 분산 공유 메모리 구조를 갖는 다중 처리 시스템에서 소정의 프로세서로부터 발생된 트랜잭션을 처리하기 위하여 다른 노드의 메모리 영역을 참조해야 할 때, 상기 트랜잭션이 단순 읽기 동작이 아닌 경우에는 최종 디렉토리의 상태를 더티상태로 천이하는 과정과; 상기 트랜잭션이 단순 읽기 동작이고, 동시에 로컬 억세스이면서 현재 캐시블록이 클린상태인 경우를 제외하고는 최종 디렉토리 상태를 공유상태로 천이하는 과정과; 상기 더티상태와 상기 공유상태로 천이하는 경우 외에는 최종 디렉토리 상태를 클린상태로 천이하는 과정으로 이루어짐을 특징으로 하는 분산공유 메모리의 캐시 일관성 제어방법.
  2. 분산공유 메모리 구조를 갖는 다중 프로세서를 포함한 다수개의 노드중 어느 특정 프로세서로부터 트랜잭션이 발생할 경우 자신의 노드의 메모리 영역을 참조하는 로컬 억세스와, 상기 트랜잭션을 처리하기 위하여 다른 노드의 메모리를 참조하는 리모트 억세스에 의하여 해당 프로세서에 응답하는 분산 공유 메모리의 분산공유 메모리 관리방법에 있어서,
    상기 로컬 억세스는,
    1. 발생된 트랜잭션이 단순한 읽기 동작일 경우 캐시 블록의 상태에 따라 최종 디렉토리 상태를 클린 또는 공유상태로 천이하는 제 1 과정과;
    2. 상기 트랜잭션이 단순 읽기 동작이외 일 경우에는 캐시 블록의 상태에 관계없이 최종 디렉토리 상태를 클린상태로 천이하는 제 2 과정을 포함하며,
    상기 리모트 억세스는,
    3. 상기 트랜잭션이 쓰기동작 또는 단순 읽기 동작일 경우 현재 캐시 블록에 관계없이 최종 디렉토리 상태를 공유상태로 천이하는 제 3 과정과;
    4. 상기 트랜잭션이 자신 이외의 모든 캐시 데이터를 무효화 시키기 위한 요청이거나, 쓰기를 위한 읽기동작일 경우 현재 캐시 블록에 관계없이 최종 디렉토리 상태를 더티상태로 천이하는 제 4 과정을 포함하여 이루어짐을 특징으로 하는 분산 공유 메모리의 캐시 동일성 제어방법.
  3. 제 2 항에 있어서, 상기 제 1 과정은 현재 트랜잭션이 단순 읽기 동작일 경우 현재 캐시 블록이 클린 및 공유상태이면 현재 상태를 유지하고, 현재 캐시 블록이 더티상태이면 라이트 백이 구동되고 디렉토리 상태는 공유 상태로 천이함을 특징으로 하는 분산 공유 메모리의 캐시 일관성 제어방법.
  4. 제 2 항에 있어서, 상기 제 2 과정은 현재 트랜잭션이 쓰기를 위한 읽기 동작이거나 자기 외의 모든 캐시 데이터를 무효화시키기 위한 요청을 할 때, 현재의 캐시 블록 상태가 클린상태일 경우는 현재 상태를 유지하고, 현재의 캐시 블록 상태가 공유상태일 경우는 무효화 요청을 하고 디렉토리 상태를 클린상태로 천이하는 단계와; 상기 트랜잭션이 쓰기동작이고, 현재의 캐시 블록에 대한 상태가 클린상태일 경우에는 현재 상태를 유지하며, 현재의 캐시 블록에 대한 상태가 공유상태일 경우 무효화 요청을 하고 디렉토리 상태를 클린상태로 천이하는 단계로 이루어짐을 특징으로 하는 분산 공유 메모리의 캐시 일관성 제어방법.
  5. 제 2 항에 있어서, 상기 제 3 과정은 소정 프로세서에서 발생된 트랜잭션이 단순 읽기 동작이고, 다른 노드의 메모리를 참조해야 할 경우 현재의 캐시 블록의 상태가 클린상태이면 요청한 데이터를 제공받고 디렉토리의 상태를 공유상태로 천이함을 특징으로 하는 분산 공유 메모리의 캐시 일관성 제어방법.
  6. 제 2 항에 있어서, 상기 제 4 과정은 소정 프로세서에서 발생된 트랜잭션이 쓰기를 위한 읽기 동작의 요청이고, 다른 노드의 메모리를 참조해야 할 경우 현재의 캐시 블록 상태가 클린상태이면 해당 데이터를 제공받은 후 디렉토리 상태를 더티상태로 천이하고, 공유상태이면 무효화 요청하고 데이터를 제공받은 후 디렉토리 상태를 더티상태로 천이하는 단계와; 상기 발생된 트랜잭션이 자기 이외의 모든 캐시 데이터를 무효화시키기 위한 요청일 경우 현재 캐시 블록이 공유상태 이면 무효화 요청을 한 후 디렉토리 상태를 더티상태로 천이하는 단계로 이루어짐을 특징으로 하는 분산 공유 메모리의 캐시 일관성 제어방법.
  7. 다수개의 프로세서를 연결하는 로컬버스와 상기 각 프로세서가 공유하며 발생된 트랜잭션을 처리하는 공유 메모리 및 메모리 제어장치를 포함한 다수개의 노드와, 상기 각 노드를 상호 접속하는 제 3 로컬버스를 포함한 분산 공유 메모리 구조의 다중 처리 시스템에 있어서,
    상기 메모리 제어장치는 디렉토리 기반의 캐시 일관성을 유지 하도록 데이터 블록에 대한 각 노드의 캐싱 상태를 캐시 블록당 소정 비트를 할당하여 표시하는 디렉토리를 포함하여 구성됨을 특징으로 하는 분산 공유 메모리의 캐시 일관성 제어장치.
  8. 제 7 항에 있어서, 상기 각 노드의 디렉토리는 데이터 블록에 대한 각 노드의 캐싱한 상태를 캐시 블록당 2비트를 할당하여 클린, 공유, 더티상태를 표시함을 특징으로 하는 분산 공유 메모리의 캐시 일관성 제어장치.
KR1019970048654A 1997-09-25 1997-09-25 분산 공유 메모리의 캐시 일관성 제어방법 및 장치 KR19990026501A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970048654A KR19990026501A (ko) 1997-09-25 1997-09-25 분산 공유 메모리의 캐시 일관성 제어방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970048654A KR19990026501A (ko) 1997-09-25 1997-09-25 분산 공유 메모리의 캐시 일관성 제어방법 및 장치

Publications (1)

Publication Number Publication Date
KR19990026501A true KR19990026501A (ko) 1999-04-15

Family

ID=66044475

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970048654A KR19990026501A (ko) 1997-09-25 1997-09-25 분산 공유 메모리의 캐시 일관성 제어방법 및 장치

Country Status (1)

Country Link
KR (1) KR19990026501A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100430561B1 (ko) * 2000-12-27 2004-05-10 주식회사 케이티 엑티브 네트워크 환경에서 웹 서버와 웹 캐쉬 서버간데이터 일치성 유지 방법
KR100434055B1 (ko) * 2002-04-27 2004-06-04 엘지전자 주식회사 이동통신 시스템의 캐시 일관성 유지 방법
KR100582782B1 (ko) * 1998-08-28 2006-08-23 엘지엔시스(주) 캐쉬 일관성 유지 방법
KR100700510B1 (ko) * 2000-01-04 2007-03-28 엘지전자 주식회사 공유 메모리 다중 프로세서 시스템 및 이를 위한 디렉토리압축방법
KR101121487B1 (ko) * 2008-11-21 2012-02-28 엔비디아 코포레이션 멀티-클래스 데이터 캐시 정책들
CN117093511A (zh) * 2023-09-04 2023-11-21 海光云芯集成电路设计(上海)有限公司 访存控制方法、访存控制装置、芯片及电子设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100582782B1 (ko) * 1998-08-28 2006-08-23 엘지엔시스(주) 캐쉬 일관성 유지 방법
KR100700510B1 (ko) * 2000-01-04 2007-03-28 엘지전자 주식회사 공유 메모리 다중 프로세서 시스템 및 이를 위한 디렉토리압축방법
KR100430561B1 (ko) * 2000-12-27 2004-05-10 주식회사 케이티 엑티브 네트워크 환경에서 웹 서버와 웹 캐쉬 서버간데이터 일치성 유지 방법
KR100434055B1 (ko) * 2002-04-27 2004-06-04 엘지전자 주식회사 이동통신 시스템의 캐시 일관성 유지 방법
KR101121487B1 (ko) * 2008-11-21 2012-02-28 엔비디아 코포레이션 멀티-클래스 데이터 캐시 정책들
CN117093511A (zh) * 2023-09-04 2023-11-21 海光云芯集成电路设计(上海)有限公司 访存控制方法、访存控制装置、芯片及电子设备
CN117093511B (zh) * 2023-09-04 2024-05-10 海光云芯集成电路设计(上海)有限公司 访存控制方法、访存控制装置、芯片及电子设备

Similar Documents

Publication Publication Date Title
US6959364B2 (en) Partially inclusive snoop filter
US5809536A (en) Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US5671391A (en) Coherent copyback protocol for multi-level cache memory systems
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US7996625B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US7669018B2 (en) Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
US6085295A (en) Method of maintaining data coherency in a computer system having a plurality of interconnected nodes
US7581068B2 (en) Exclusive ownership snoop filter
EP1311955B1 (en) Method and apparatus for centralized snoop filtering
US7373457B2 (en) Cache coherence protocol for a multiple bus multiprocessor system
JP5005631B2 (ja) 複数のコアキャッシュ・クラスタ間の包括的共有キャッシュの提供
US6651145B1 (en) Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US5848434A (en) Method and apparatus for caching state information within a directory-based coherency memory system
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
JPH08328957A (ja) マルチプロセッシング・システムにおけるキャッシュ・パフォーマンス向上のためのシステムおよび方法
US6078997A (en) Directory-based coherency system for maintaining coherency in a dual-ported memory system
JPH10320283A (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
JP2000067024A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US7143245B2 (en) System and method for read migratory optimization in a cache coherency protocol
US6345344B1 (en) Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
KR19990026501A (ko) 분산 공유 메모리의 캐시 일관성 제어방법 및 장치
US7234028B2 (en) Power/performance optimized cache using memory write prevention through write snarfing
US5860120A (en) Directory-based coherency system using two bits to maintain coherency on a dual ported memory system

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19970925

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19970925

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20000128

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20000417

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20000128

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I