[go: up one dir, main page]

KR20140038075A - 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 - Google Patents

캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 Download PDF

Info

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
Application number
KR1020120104316A
Other languages
English (en)
Other versions
KR101695845B1 (ko
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 KR1020120104316A priority Critical patent/KR101695845B1/ko
Priority to US14/030,543 priority patent/US9372795B2/en
Publication of KR20140038075A publication Critical patent/KR20140038075A/ko
Application granted granted Critical
Publication of KR101695845B1 publication Critical patent/KR101695845B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency 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

캐시 일관성 유지 방법 및 장치, 그리고 이를 이용하는 멀티프로세서 장치가 개시된다. 본 발명에 따른 멀티프로세서 장치는, 메인 메모리, 복수의 프로세서, 각 프로세서와 연결되는 복수의 캐시 메모리, 상기 복수의 캐시 메모리 및 상기 메인 메모리와 연결되는 메모리 버스, 및 상기 복수의 캐시 메모리와 연결되어 캐시간 일관성 관련 정보를 전달하는 코히어런시 버스(coherency bus)를 포함할 수 있다. 따라서, 메모리와 캐시간의 통신 구조를 이용함에 따라 발생하는 온칩 통신 구조에서 대역폭 부족 현상을 줄이고, 캐시간의 일관성을 위한 통신을 단순화할 수 있다.

Description

캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치{APPARATUS AND METHOD FOR MAINTAINING CACHE COHERENCY, AND MULTIPROCESSOR APPARATUS USING THE METHOD}
본 발명은 캐시 일관성 유지 기술에 관한 것으로, 더욱 상세하게는 멀티프로세서 장치에서 캐시간 일관성을 유지하는 방법 및 이를 이용하는 캐시 일관성 유지 장치에 관한 것이다.
일반적으로 컴퓨터 시스템은 중앙 처리 유닛(CPU), 메모리, 및 입출력(I/O) 유닛의 세 개의 기본 블록들을 포함하여 구성된다. 이러한 블록들은 버스를 통해 상호 연결되며, 키보드, 마우스 등의 입력 장치들은 입출력 유닛을 통해 명령 또는 데이터를 입력하는 데 사용된다. 이러한 명령들 및 데이터는 메모리에 저장될 수 있으며, 중앙 처리 장치는 메모리에 저장된 데이터를 꺼내 저장된 명령에 의해 지시된 대로 데이터를 처리한다. 그 결과는 다시 메모리에 저장되거나 또는 입출력 유닛을 통해 프린터 등의 출력 장치로 출력된다.
특히 최근에는 멀티플 프로세서들을 활용하는 컴퓨터 시스템이 많이 사용되고 있는데, 이러한 시스템의 경우 여러 태스크나 함수들이 단일 CPU에 의해서만 처리되는 것이 아니기 때문에 전체적인 시스템의 컴퓨팅 능력이 개선된다. 이론상으로는, n 개의 프로세서를 가진 컴퓨터 시스템이라면 n 배만큼 많은 양의 일을 처리할 수 있어야 하고, 따라서 단일 프로세서에 비해 n 배 빠른 속도를 가져야 한다. 하지만, 멀티플 프로세서들을 사용하기 위해서는 데이터의 가장 최근 버전이 어디에 위치하는지 알아야 할 필요가 있고, 어떤 일을 수행하는데 데이터가 필요할 때 각 프로세서가 이러한 정보를 알고 있어야 하는데, 이것을 데이터 일관성이라고 한다.
멀티플 프로세서들은 보통 캐시 또는 캐시 메모리라 불리는 전용 메모리를 가진다. 캐시는 동작의 속도를 증가시키는 데 사용된다. 캐시를 가지는 프로세서의 경우, 어떤 정보가 메인 메모리에 의해 불러와지고 프로세서에 의해 사용될 때, 해당 정보와 그 메인 메모리 주소가 또한 캐시 메모리에 저장된다. 캐시 메모리는 통상적으로 SRAM(Static Randon Accesss Memory)이다. 새로운 읽기 또는 쓰기 명령이 내려지면, 시스템은 해당 정보가 존재하는지 캐시 메모리를 찾아보게 된다. 찾는 정보가 캐시 메모리에 존재하는 경우는 '히트(hit)'가 있다(즉, 해당 정보가 캐시에서 활용 가능함)고 한다. 그러면, 해당 정보는 메인 메모리가 아닌 캐시로부터 액세스될 수 있고, 메인 메모리로의 접속은 필요하지 않게 된다. 만약, 찾는 정보가 캐시 메모리에 존재하지 않는 경우에는, 향후를 위해 새로운 데이터가 메인 메모리로부터 복사되어 캐시 메모리에 저장된다.
캐시 메모리, 특히 멀티플 캐시 메모리를 채용하는 시스템의 경우, 주어진 메모리 위치로부터의 데이터가 동시에 메인 메모리 및 적어도 하나의 캐시 메모리에 존재할 수 있다. 하지만, 메인 메모리 내의 데이터와 캐시 메모리 내의 데이터가 항상 동일한 것은 아니다. 이러한 경우는 프로세서가, 메인 메모리 또는 다른 캐시 메모리를 업데이트하지 않고, 연관된 캐시 메모리에 저장된 데이터를 업데이트하는 경우에 발생하거나, 다른 버스 마스터가 프로세서 캐시 메모리에서 그 복사본을 업데이트하지 않고 메인 메모리 내의 데이터를 변경하는 경우 발생할 수 있다. 버스 마스터는 메인 메모리에 명령을 쓰거나 명령을 읽을 수 있는 다른 장치이다.
이처럼, 멀티플 캐시 시스템에서 하나의 캐시 메모리의 내용과 모든 캐시들을 위한 메인 메모리의 내용이 동일하지 않게 되는 상황의 문제를 해결하기 위해 캐시 일관성 프로토콜이 제안되었다.
캐시 일관성 프로토콜은 캐시들, 프로세서들, 메인 메모리 및 대안적인 버스 마스터들이 서로 통신하는 방식이다. 캐시 일관성 프로토콜은 컴퓨터 시스템이 메인 메모리에 저장된 데이터, 및 동일한 버스 상에 있는 캐시에 저장된 데이터 사이의 합의 유지를 보장한다. 다시 말해, 캐시 일관성 프로토콜은 프로세서들, 메인 메모리, 및 여러 캐시 메모리들간에 이동하는 데이터를 추적하기 위해 컴퓨터 시스템에 의해 사용되는 프로토콜이라 할 것이다.
이러한 캐시 일관성 프로토콜을 사용하여 캐시간 일관성을 유지하는 일반적인 방법들의 경우에도, 멀티프로세서 시스템의 경우 메인 메모리 대역폭이 제한적이기 때문에 바틀넥(bottleneck) 현상이 발생하는 등 다양한 문제가 발생하고 있으며, 따라서, 보다 더 효율적인 캐시 일관성 유지 방안이 요구되고 있는 실정이다.
상술한 문제점을 극복하기 위한 본 발명의 목적은 캐시간 일관성이 유지되는 멀티프로세서 장치를 제공하는 데 있다.
본 발명의 다른 목적은 캐시 일관성 유지 장치를 제공하는 데 있다.
본 발명의 또 다른 목적은 캐시 일관성 유지 방법을 제공하는 데 있다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티프로세서 장치는, 메인 메모리, 복수의 프로세서, 각 프로세서와 연결되는 복수의 캐시 메모리, 상기 복수의 캐시 메모리 및 상기 메인 메모리와 연결되는 메모리 버스, 및 상기 복수의 캐시 메모리와 연결되어 캐시간 일관성 관련 정보를 전달하는 코히어런시 버스(coherency bus)를 포함할 수 있다.
상기 코히어런시 버스는, 상기 복수의 캐시 메모리로부터 코버스 점유 요청 신호를 수신하고 제1 캐시 메모리에 점유를 승인하며, 상기 복수의 캐시 메모리간 정보 신호의 송수신을 제어하는 코버스 중재기를 포함할 수 있다.
상기 코버스 중재기는, 상기 제1 캐시 메모리로부터 신호를 수신하고, 해당 신호와 관련하여 동작을 필요로 하는 적어도 하나의 제2 캐시 메모리에 코버스 선택 신호 및 상기 제1 캐시 메모리로부터의 신호를 전달한다.
상기 캐시 메모리는 다른 캐시 메모리와의 일관성 유지를 위한 신호 교환을 위한 캐시 일관성 인터페이스를 포함할 수 있다.
상기 캐시 일관성 인터페이스는, 코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환한다.
상기 캐시 메모리는 독점, 공유, 무효, 및 변형 모드를 포함하는 복수의 모드를 이용해 상태 관리된다.
본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 캐시 일관성 유지 장치는, 복수의 프로세서를 위한 복수의 캐시 메모리와 연결되어, 상기 복수의 캐시 메모리간의 코히어런시 버스의 점유를 제어하는 코버스 중재기를 포함하는 코히어런시 버스를 포함하고, 상기 캐시 메모리는 다른 캐시 메모리와의 일관성 유지를 위한 신호 교환을 위한 캐시 일관성 인터페이스를 포함할 수 있다.
상기 캐시 일관성 인터페이스는, 코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환한다.
본 발명의 또 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 캐시 일관성 유지 방법은, 프로세서로부터 요청받은 어드레스에 해당하는 데이터를 보유하는지 확인하는 단계, 상기 요청받은 어드레스에 해당하는 데이터를 보유하지 않는 경우, 코버스 요청 신호를 발생시키는 단계, 코버스 점유 승인 신호를 수신하면, 상기 코버스로 상기 요청받은 어드레스 관련 정보 및 메인 메모리 읽기 시도 신호를 발생시키는 단계, 및 복수의 다른 캐시로부터 수신한 신호의 값에 따라 캐시 상태를 설정하는 단계를 포함할 수 있다.
상기 요청받은 어드레스 관련 정보는, 상기 어드레스로 계산된 태그 및 인덱스 값을 포함한다.
상기 캐시 메모리는 독점, 공유, 무효, 및 변형 모드를 포함하는 복수의 모드를 이용해 상태 관리될 수 있다.
상기 복수의 다른 캐시로부터 수신한 신호의 값에 따라 캐시 상태를 설정하는 단계는, 상기 복수의 다른 캐시로부터 수신한 코버스 공유 값이 모두 '0'인 경우, 자신의 상태 값을 '독점(Exclusive)'로 설정하는 단계, 및 상기 복수의 다른 캐시로부터 수신한 코버스 공유 값이 하나라도 '1'인 경우, 자신의 상태 값을 '공유(shared)'로 설정하는 단계를 포함할 수 있다.
상기 캐시 메모리는, 코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환하는 것을 특징으로 한다.
상기 캐시의 일관성 유지 방법은, 프로세서에 의해 특정 태그 및 인덱스에 해당하는 데이터가 변경된 경우, 해당 태그 및 인덱스에 해당하는 데이터 상태를 '변형(modified)'으로 변경하는 단계를 더 포함할 수 있다.
상기 캐시의 일관성 유지 방법은, 상기 코히어런시 버스에 실린 쓰기 신호에 대한 인덱스 및 태그에 해당하는 데이터를 보유하는 경우, 인덱스 및 태그에 해당하는 데이터를 '무효(Invalid)'로 상태 변경하는 단계를 더 포함할 수 있다.
상기 캐시의 일관성 유지 방법은, 보유하고 있던 데이터가 공유인 상태에서, 해당 데이터를 공유하던 다른 캐시가 플러시되는 경우, 해당 데이터를 '독점(Exclusive)'으로 상태 변경하는 단계를 더 포함할 수 있다.
상술한 바와 같은 본 발명은 캐시의 구조에 일관성을 위한 전용 채널을 추가함으로써, 메모리와 캐시간의 통신 구조를 이용함에 따라 발생하는 온칩 통신 구조에서 대역폭 부족 현상을 줄일 수 있다.
또한, 캐시간의 일관성을 위한 통신을 단순화할 수 있다는 효과도 얻을 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 멀티 프로세서를 갖는 컴퓨터 시스템의 블록 구조도이다.
도 2은 본 발명의 일 실시예에 따른 캐시 일관성을 위한 인터페이스의 입출력을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 코버스 중재기의 입출력을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따라 다른 캐시들과의 일관성을 유지하기 위한 캐시의 동작 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명은 칩 내에서 여러 프로세서가 동일 메모리로부터 프로그램을 읽을 때, 다수의 캐시 메모리를 배치함으로써 발생하는 캐시 내의 명령어 및 데이터의 불일관성 문제를 해결하기 위한 장치를 제안한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대한 중복된 설명은 생략한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 멀티프로세서 장치의 블록 구조도이다.
본 발명에 따른 멀티프로세서 장치는, 도 1에 도시된 바와 같이 메인 메모리(400), 복수의 프로세서(100), 각 프로세서와 연결되는 복수의 캐시 메모리(200), 복수의 캐시 메모리 및 메인 메모리와 연결되는 메모리 버스(320), 및 상기 복수의 캐시 메모리와 연결되어 캐시간 일관성 관련 정보를 전달하는 코히어런시 버스(coherency bus)(310)를 포함하여 구성될 수 있다.
즉, 본 발명에 따른 바람직한 일 실시예로는 다수의 프로세서 코어(100), 각각의 프로세서를 위한 다수의 캐시(200)를 포함하는 멀티프로세서 컴퓨터 시스템을 가정할 수 있다. 캐시들은 메모리 버스(320)를 통해 서로 연결됨과 동시에, 코히어런시 버스(310)를 통해서도 상호 연결된다. 코히어런시 버스(310)는 복수의 캐시 메모리간의 코버스 점유를 제어하는 코버스 중재기를 포함할 수 있다.
프로세서는 외부 저장장치에 보관된 명령어를 읽어 명령어를 분석하여 명령어가 지정하는 피연산자(operand)를 이용한 특정 연산(operation)을 수행하여 다시 외부 저장장치에 저장을 하여 저장된 프로그램에 의해 특정 기능을 수행하는 장치이다.
프로세서는 기본적으로 프로세서 코어(Core), 그리고 캐시(cache) 메모리로 이루어져 있다. 프로세서가 수행할 작업은 다수의 명령어(Instruction)의 조합으로 규정된다. 즉, 명령어가 메모리에 저장되어 있고, 프로세서에 이 명령어들이 순차적으로(Sequentially) 입력되어 매 클럭 사이클마다 프로세서가 특정 연산을 행하게 된다. 프로세서당 하나의 캐시를 구비해야 하기에 도 1에 도시된 바와 같이 프로세서를 많이 장착함에 따라 캐시도 함께 구비가 되어야 하고 캐시 간 일관성 유지 또한 필요하다.
캐시는 외부 메모리에 저장되어 있는 명령어를 칩 내부에 잠시 저장함으로써 프로세서의 속도를 증대시키는 역할을 한다.
프로세서 코어(100)가 외부 메모리에서 데이터를 읽어오기 위해서 10 내지 100 사이클의 상당한 시간이 소모되는데, 이것은 코어가 작업을 하지 않는 아이들(idle) 상태에서 장시간 머무르게 되는 요인이 된다.
캐시(200)는 프로세서 코어가 사용할 명령어를 프로세서 코어에 직접적으로 연결된 칩내의 메모리에 저장한 유닛이며 외부의 대용량 메모리를 칩 내부에 잠시 저장하는 역할을 한다.
따라서, 캐시는 프로세서의 성능에 상당한 영향을 미치게 된다. 코어가 특정 명령어를 요구할 때, 캐시에 프로세서가 요구하는 명령어가 없으면 외부 메모리에서 읽어와야 하기 때문에 외부 메모리에서 읽어 오는 동안 캐시는 아이들 상태가 된다. 매 요청시 프로세서는 어드레스를 캐시에 보내게 되며 캐시는 내부에 저장된 명령어 코드에 대한 인덱스로 해당하는 어드레스 즉, 태그를 태그 메모리에 저장을 하고 있다가, 프로세서의 명령어 코드 요청이 있을 때마다 매번 어드레스와 태그의 비교를 위해 태그 메모리를 액세스해야 한다. 또한 저장된 명령어 코드에 상당하는 태그(tag)를 저장해야 한다.
또한, 여러 프로세서가 집적시 프로세서마다 캐시 메모리는 존재하게 되며 캐시 메모리에 태그를 저장할 때 해당 태그가 다른 캐시에 저장되어 있는지를 알 필요가 있다. 이는 다른 캐시에 저장된 태그에 프로세서가 쓰기(Write)를 할 때는 해당 태그를 프로세서가 캐시로부터 읽을 때는 다른 캐시에서 해당 태그에 쓰기 값을 읽어 오도록 해야 하기 때문이다. 즉, 캐시간의 일관성을 유지시키는 것이 필요하다.
도 1에 도시된 바와 같이 본 발명에서는 디렉토리와 같은 저장 공간을 센터에 두지 않는다. 보통 디렉토리를 기반으로 하여 캐시 일관성 유지하는 방법은 긴 지연시간을 가지지만, 메시지가 브로드캐스트 방식이 아닌 포인트 대 포인트 방식으로 전송되어 적은 대역폭을 소모하게 되어, 아주 많은(64개 이상) 프로세서를 가지는 큰 시스템에서 많이 사용된다.
본 발명에서는 디렉토리와 같은 저장 공간을 센터에 두지 않음으로써, 디렉토리 기반의 일관성 유지 방식을 사용하는 경우 발생할 수 있는 통신의 집중 현상을 막을 수 있다.
구체적으로, 본 발명에서는 아래와 같은 캐시의 4가지 모드를 이용해 캐시 일관성을 유지한다.
-무효(Invalid): 해당 태그는 무효하기에 프로세서가 요청시 메모리에서 다시 읽어와야 한다.
-독점(Exclusive): 해당 태그를 메모리에서 읽어 올 때 다른 캐시를 조사 결과 다른 캐시에는 해당 태그가 존재하지 않는다.
-공유(Shared): 해당 태그를 메모리에서 읽어 올 때 다른 캐시에 존재하나 그 캐시에서 프로세서에 의해 새로운 값으로 바뀌지는 않았다.
-변형(Modified): 해당 태그를 메모리에서 읽어와 프로세서에 의해 새로운 값으로 바꾸었다.
이처럼 4 가지 모드를 이용하여 캐시 간의 통신을 하게 되면 일관성을 유지할 수 있다. 이를 위해 캐시는 프로세서와 메모리와의 통신 인터페이스 외에 캐시 일관성을 위한 인터페이스를 구비해야 한다.
도 2은 본 발명의 일 실시예에 따른 캐시 일관성을 위한 인터페이스의 입출력을 나타낸다.
도 2에 도시된 바와 같이, 본 발명에 따른 각 캐시(200)는 다른 캐시들과의 일관성 유지를 위한 일관성 인터페이스(210)를 가진다.
캐시 일관성을 위한 인터페이스(210)의 입출력 신호 중 해당 캐시가 cobus_grant를 수신한 경우의 송수신 정보 신호는 상단(201)에 포함되어 있으며 "_f"의 서픽스(suffix)를 갖는 것으로 표시되어 있다. 또한, 해당 캐시가 cobus_sel 신호를 수신한 경우의 송수신 정보 신호들은 하단(202)에 포함되어 있으며, "_b"의 서픽스(suffix)를 갖는 것으로 표시되어 있다.
캐시 일관성 인터페이스(210)는 코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환한다.
도 2에 나타난 캐시 일관성을 위한 인터페이스의 입출력 신호들 중 대표적인 것들을 아래에 나타내었다.
Cobus_request: 코히어런시 버스(coherency bus)를 요청하는 신호
Cobus_grant: 코히어런시 버스의 점유를 허락하는 신호
Cobus_tag[21:0], cobus_index[7:0]: 특정 어드레스에 대한 정보가 다른 캐시에 있는지를 알아보기 위한 해당 어드레스의 태그 및 인덱스 정보
Cobus_read_Sdram: cobus_tag, cobus_index로 계산된 메인 메모리(SDRAM) 로부터 읽으려 함을 알리는 메인 메모리 읽기 시도 신호
Cobus_write_Processor: cobus_tag, cobus_index에 대해 프로세서에 의해 새로운 값으로 바꿈을 알리는 프로세서 쓰기 신호
Cobus_share: cobus_read_sdram 신호가 발생하였을 때의 다른 캐시로부터의 응답으로, 해당 태그와 인덱스의 메모리 값이 다른 캐시에 존재함을 알리는 코버스 공유 신호
Cobus_invalid: cobus_write_processor 신호가 발생하였을 때의 다른 캐시로부터의 응답으로 cobus_tag, cobus_index에 있는 데이터의 모드를 무효(invalid)로 변경하였음을 알리는 코버스 무효화 신호
도 3은 본 발명의 일 실시예에 따른 코버스 중재기의 입출력을 도시한다.
코버스 중재기(300)는 모든 캐시로부터 cobus_req 신호를 수신할 수 있으며, 코버스의 점유를 요청한 캐시들 중 하나의 캐시에 코버스의 점유를 승인하는 신호(cobus_grant)를 보낸다. 즉, 코버스 중재기(300)는 cobus_grant 신호를 통해 특정 캐시에게만 코버스의 점유를 허락한다.
코버스 중재기(300)는 또한, 코버스 점유 승인을 받은 캐시로부터 신호를 수신하여, 해당 신호와 관련하여 필요한 동작이 있다고 판단되는 다른 캐시에게 cobus_sel 신호를 보내주면서 코버스 점유 승인을 받은 캐시로부터의 신호를 전달해 주게 된다.
앞서, 도 2에서 cobus_grant를 받은 캐시가 보내는 정보 신호는 _f의 서픽스(suffix)를 갖는 것으로 표시되어 있으며, cobus_sel 신호를 받은 캐시가 받는 정보 신호는 _b의 서픽스(suffix)를 갖는 것으로 표시함을 이미 언급하였고, 이는 도 3에도 마찬가지로 적용된다.
한편, cobus_sel 신호를 받은 캐시는 "_b" 서픽스(suffix)를 갖는 신호를 읽어 cobus_share_b 또는 cobus_invalid_b 신호를 코버스 중재기(cobus arbiter) 로 보낸다. 코버스 중재기(cobus arbiter)는 수신한 신호(cobus_share_b 또는 cobus_invalid_b 신호)를 cobus_grant를 받은 캐시에 하나의 신호로 전달한다. 즉, 코버스 중재기(cobus arbiter)는 다수의 캐시로부터 받은 신호들 중 cobus_share_b가 하나라도 1이면 cobus_share_f를 1로, cobus_invalid_b 가 모두 1이면 cobus_invalid_f를 1로 설정하여 코버스에 해당 신호를 싣는다.
코버스 중재기(Cobus arbiter)는 각 캐시의 신호를 받아 cobus_req, cobus_grant 신호를 이용하여 특정 캐시가 버스를 점유하도록 하고 있다.
상술한 바와 같은 코버스 인터페이스를 위한 통신 방식에 대해 아래에서 자세히 살펴본다.
도 4는 본 발명의 일 실시예에 따라 다른 캐시들과의 일관성을 유지하기 위한 캐시의 동작 순서도이다.
우선, 캐시가 프로세서로부터 특정 어드레스에 대한 데이터 요청을 수신하는 경우(S401), 해당 어드레스에 해당하는 태그가 캐시에 존재하는 여부를 체크한다(S403). 캐시가 이미 보유하는 데이터에 대한 어드레스인 경우는 해당하는 명령어 코드를 프로세서 코어로 전달한다(S404).
반대로, 캐시에 없는 새로운 어드레스의 데이터에 대한 요청을 수신하는 경우, 캐시는 메모리로부터 어드레스에 저장된 데이터를 읽어올 필요가 있다. 이 때 캐시는 cobus_request 신호를 발생시키고(S405), cobus_grant 신호가 수신되기를 기다린다(S407). Cobus_grant 신호가 오면 코버스(coherency bus)로 캐시 일치를 위한 정보를 전송한다. 즉, 어드레스로 계산된 태그와 인덱스 값을 cobus_tag와 cobus_index 신호에 실어주며, 메인 메모리(SDRAM)로부터 읽으려 함을 표시하기 위해 cobus_read_sdram 신호를 1로 설정하여 코버스에 실어 전송한다(S409). 이때, 다른 캐시는 cobus_tag, cobus_index에 해당하는 데이터가 존재하면 cobus_share를 1로, 그렇지 않으면 cobus_share를 0으로 설정하여 cobus_grant 신호를 받은 캐시에 보낸다.
Cobus_grant를 수신하였던 캐시는, 다른 캐시들로부터 cobus_share 값을 수신하기를 기다렸다가(S411), 다른 모든 캐시로부터 수신한 cobus_share의 값이 모두 0이면 메인 메모리에서 읽어온 데이터를 {cobus_tag, cobus_index}에 저장하고 캐시 상태를 독점(Exclusive) 모드로 설정한다(S413). 반대로, 다른 모든 캐시로부터 수신한 cobus_share의 값이 하나라도 1이면 공유(shared) 모드로 설정한다(S412). cobus_share 값을 1로 설정하여 보낸 다른 캐시 또한 해당 캐시의 상태가 독점(Exclusive)이었다면 공유 모드로 변경한다.
이상 도 4를 통해 도시한 순서도를 살펴본 것은 본 발명의 실시예에 불과하며, 본 발명의 범주가 이에 국한되는 것은 아니다. 다시 말해, 본 발명에 따른 캐시는 아래와 같은 다양한 동작이 가능하다.
프로세서가 캐시 내에 있는 {tag, index}의 데이터를 새로운 값으로 변경하였을 경우 캐시에 있는 {tag, index}의 데이터는 무효/전용/공유 모드에서 변형 모드로 변경된다.
어떤 캐시가 cobus_req 신호를 발생하여 cobus_grant 신호를 받았다면, 태그와 인덱스를 cobus_tag와 cobus_index에 실어 보내며, cobus_write_processor 신호에 1을 실어 보낸다. 이 신호를 수신하는 캐시들 중 {cobus_index, cobus_tag}의 데이터를 보유하는 캐시가 있다면, 해당 캐시는 그 전에 어떤 모드이었던 간에, 상태를 무효(Invalid) 모드로 변경하여 설정한다. 해당 캐시는 이후, cobus_invalid 신호에 1을 실어 전송하여, 자신이 해당 데이터를 무효(invalid)로 처리하였음을 cobus_grant 신호를 받은 캐시가 알 수 있도록 한다.
캐시에 있는 {tag, index}의 데이터가 공유인 경우, 데이터를 공유하는 다른 캐시가 플러쉬(flush)된다면 독점(exclusive) 모드로 변경될 것이다.
이렇게 독립적인 캐시 일관성을 위한 통신 구조는 캐시와 메모리간의 통신 대역폭을 할애하지 않기 때문에 대역폭 소모 측면에서 장점이 있으며, 캐시 일관성만을 위한 간략한 통신 프로토콜을 사용하기에 캐시간의 빠른 통신 또한 가능하다.
이상, 다수의 전용 캐시들간의 일관성을 보장하는 본 발명에 따른 통신 방식에 대해 살펴보았다.
이와 같은 본 발명에 따른 통신 방식을 채택함에 따라 캐시 일관성을 위해서 기존의 캐시와 메모리간의 온칩 통신구조를 변경할 필요가 없게 된다.
뿐만 아니라, 본 발명에 따른 전용 캐시 일관성을 위한 프로토콜은 빠른 핸드쉐이크(handshake)로 일관성을 위한 통신 오버헤드(overhead)를 줄일 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 프로세서 코어 200: 캐시
300: 코버스 중재기 310: 코버스
400: 메모리 410: 메모리 버스

Claims (16)

  1. 메인 메모리;
    복수의 프로세서;
    각 프로세서와 연결되는 복수의 캐시 메모리;
    상기 복수의 캐시 메모리 및 상기 메인 메모리와 연결되는 메모리 버스; 및
    상기 복수의 캐시 메모리와 연결되어 캐시간 일관성 관련 정보를 전달하는 코히어런시 버스(coherency bus)를 포함하는 멀티프로세서 장치.
  2. 청구항 1에 있어서,
    상기 코히어런시 버스는,
    상기 복수의 캐시 메모리로부터 코히어런시 버스 점유 요청 신호를 수신하고 제1 캐시 메모리에 점유를 승인하며, 상기 복수의 캐시 메모리간 정보 신호의 송수신을 제어하는 코버스 중재기를 포함하는 멀티프로세서 장치.
  3. 청구항 2에 있어서,
    상기 코버스 중재기는, 상기 제1 캐시 메모리로부터 신호를 수신하고, 해당 신호와 관련하여 동작을 필요로 하는 적어도 하나의 제2 캐시 메모리에 코히어런시 버스 선택 신호 및 상기 제1 캐시 메모리로부터의 신호를 전달하는, 멀티프로세서 장치.
  4. 청구항 1에 있어서,
    상기 캐시 메모리는
    다른 캐시 메모리와의 일관성 유지를 위한 신호 교환을 위한 캐시 일관성 인터페이스를 포함하는 멀티프로세서 장치.
  5. 청구항 1에 있어서,
    상기 캐시 일관성 인터페이스는,
    코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코히어런시 버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환하는 멀티프로세서 장치.
  6. 청구항 1에 있어서,
    상기 캐시 메모리는 독점, 공유, 무효, 및 변형 모드를 포함하는 복수의 모드를 이용해 상태 관리되는 것을 특징으로 하는, 멀티프로세서 장치.
  7. 복수의 프로세서를 위한 복수의 캐시 메모리와 연결되고, 상기 복수의 캐시 메모리간의 코히어런시 버스 점유를 제어하는 코버스 중재기를 포함하는 코히어런시 버스를 포함하고,
    상기 캐시 메모리는 다른 캐시 메모리와의 일관성 유지를 위한 신호 교환을 위해 캐시 일관성 인터페이스를 포함하는, 캐시 일관성 유지 장치.
  8. 청구항 7에 있어서,
    상기 캐시 일관성 인터페이스는,
    코히어런시 버스 요청 신호, 코히어런시 버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환하는, 캐시 일관성 유지 장치.
  9. 복수의 다른 캐시와 연결된 코히어런시 버스를 통해 다른 캐시와의 일관성을 유지하는, 캐시의 일관성 유지 방법에 있어서,
    프로세서로부터 요청받은 어드레스에 해당하는 데이터를 보유하는지 확인하는 단계;
    상기 요청받은 어드레스에 해당하는 데이터를 보유하지 않는 경우, 상기 코히어런시 버스 상에 코버스 요청 신호를 발생시키는 단계;
    코버스 점유 승인 신호를 수신하면, 상기 요청받은 어드레스 관련 정보 및 메인 메모리 읽기 시도 신호를 상기 코히어런시 버스 상에 발생시키는 단계; 및
    복수의 다른 캐시로부터 수신한 신호의 값에 따라 캐시 상태를 설정하는 단계를 포함하는, 캐시의 일관성 유지 방법.
  10. 청구항 9에 있어서,
    상기 요청받은 어드레스 관련 정보는,
    상기 어드레스로 계산된 태그 및 인덱스 값을 포함하는, 캐시의 일관성 유지 방법.
  11. 청구항 9에 있어서,
    상기 캐시 메모리는 독점, 공유, 무효, 및 변형 모드를 포함하는 복수의 모드를 이용해 상태 관리되는 것을 특징으로 하는, 캐시의 일관성 유지 방법.
  12. 청구항 11에 있어서,
    상기 복수의 다른 캐시로부터 수신한 신호의 값에 따라 캐시 상태를 설정하는 단계는,
    상기 복수의 다른 캐시로부터 수신한 코버스 공유 값이 모두 '0'인 경우, 자신의 상태 값을 '독점(Exclusive)'로 설정하는 단계; 및
    상기 복수의 다른 캐시로부터 수신한 코버스 공유 값이 하나라도 '1'인 경우, 자신의 상태 값을 '공유(shared)'로 설정하는 단계를 포함하는, 캐시의 일관성 유지 방법.
  13. 청구항 11에 있어서,
    상기 캐시 메모리는, 코버스 요청 신호, 코버스 점유 허락 신호, 메인 메모리 읽기 시도 신호, 프로세서 쓰기 신호, 코버스 공유 신호, 코버스 무효화 신호 중 적어도 하나의 신호를 이용하여 상기 코히어런시 버스와 연결된 적어도 하나의 다른 캐시 메모리와 일관성 관련 정보 신호를 교환하는 것을 특징으로 하는, 캐시의 일관성 유지 방법.
  14. 청구항 11에 있어서,
    프로세서에 의해 특정 태그 및 인덱스에 해당하는 데이터가 변경된 경우, 해당 태그 및 인덱스에 해당하는 데이터 상태를 '변형(modified)'으로 변경하는 단계를 더 포함하는, 캐시의 일관성 유지 방법.
  15. 청구항 11에 있어서,
    상기 코히어런시 버스에 실린 쓰기 신호에 대한 인덱스 및 태그에 해당하는 데이터를 보유하는 경우, 인덱스 및 태그에 해당하는 데이터를 '무효(Invalid)'로 상태 변경하는 단계를 더 포함하는, 캐시의 일관성 유지 방법.
  16. 청구항 11에 있어서,
    보유하고 있던 데이터가 공유인 상태에서, 해당 데이터를 공유하던 다른 캐시가 플러시되는 경우, 해당 데이터를 '독점(Exclusive)'으로 상태 변경하는 단계를 더 포함하는, 캐시의 일관성 유지 방법.
KR1020120104316A 2012-09-20 2012-09-20 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 Expired - Fee Related KR101695845B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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