KR101944329B1 - 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법 - Google Patents

멀티프로세서 시스템 및 그것의 캐쉬 관리 방법 Download PDF

Info

Publication number
KR101944329B1
KR101944329B1 KR1020120039804A KR20120039804A KR101944329B1 KR 101944329 B1 KR101944329 B1 KR 101944329B1 KR 1020120039804 A KR1020120039804 A KR 1020120039804A KR 20120039804 A KR20120039804 A KR 20120039804A KR 101944329 B1 KR101944329 B1 KR 101944329B1
Authority
KR
South Korea
Prior art keywords
transaction
data
master
write
slave device
Prior art date
Application number
KR1020120039804A
Other languages
English (en)
Other versions
KR20130117086A (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 KR1020120039804A priority Critical patent/KR101944329B1/ko
Priority to US13/793,023 priority patent/US9183149B2/en
Publication of KR20130117086A publication Critical patent/KR20130117086A/ko
Application granted granted Critical
Publication of KR101944329B1 publication Critical patent/KR101944329B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Abstract

본 발명의 일 실시예에 따른 멀티프로세서 시스템은 복수의 마스터 디바이스, 적어도 하나의 슬레이브 디바이스, 및 상기 복수의 마스터 디바이스와 상기 적어도 하나의 슬레이브 디바이스를 연결하는 시스템 버스를 포함하고, 상기 복수의 마스터 디바이스 중 적어도 어느 하나는 캐쉬 메모리를 가지고, 상기 시스템 버스는 상기 복수의 마스터 디바이스에 대한 스누핑 동작의 종료 이전에 상기 복수의 마스터 디바이스 중 적어도 어느 하나로부터 상기 슬레이브 디바이스로의 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리한다.

Description

멀티프로세서 시스템 및 그것의 캐쉬 관리 방법{MULTI PROCESSOR SYSTEM AND MANAGING METHOD FOR CACHE MEMORY THEREOF}
본 발명은 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법에 관한 것이다.
일반적인 컴퓨팅 시스템에서 프로세서는 외부 메모리로부터 데이터를 읽고, 그 데이터를 복사하여 캐쉬 메모리에 저장한다. 프로세서는 읽어들인 데이터를 이용하여 동작들을 실행할 때, 외부 메모리로부터 데이터를 다시 읽어오는 대신 캐쉬 메모리로부터 그 데이터를 읽어온다. 따라서, 캐쉬 메모리의 사용은 프로세서가 명령어들을 더욱 신속하게 실행할 수 있도록 하며, 궁극적으로 프로세서의 성능을 향상시킨다. 프로세서와 외부 메모리 사이의 액세스는 프로세서와 캐쉬 메모리 사이의 액세스보다 높은 레이턴시(latency)를 갖기 때문이다.
한편, 이러한 캐쉬 메모리를 갖는 다수의 프로세서들을 이용하는 멀티프로세서 기반 시스템이 많이 이용되고 있다. 최근에는 서버, PC와 같은 고성능 시스템뿐만 아니라 모바일 기기에 대해서도 멀티프로세서 기반 시스템이 도입되고 있다. 이러한 멀티프로세서 기반 시스템의 도입은 모바일 기기의 성능 및 신뢰성의 향상을 가능하게 한다. 하지만, 이러한 모바일 기기의 경우 프로세서들 간의 캐쉬 일관성(cache coherency)이 문제된다. 모바일 기기의 경우 범용 시스템과 비교하여 하드웨어 가속기들이 시스템에서 큰 비중을 차지하며, 이러한 기기들과의 캐쉬 일관성이 시스템 성능에 큰 영향을 미칠 수 있기 때문이다.
본 발명의 목적은 쓰기 레이턴시를 감소시킬 수 있는 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법을 제공하는 데 있다.
또한, 본 발명의 목적은 읽기 레이턴시를 감소시킬 수 있는 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법을 제공하는 데 있다.
본 발명의 일 실시예에 따른 멀티프로세서 시스템은 복수의 마스터 디바이스, 적어도 하나의 슬레이브 디바이스, 및 상기 복수의 마스터 디바이스와 상기 적어도 하나의 슬레이브 디바이스를 연결하는 시스템 버스를 포함하고, 상기 복수의 마스터 디바이스 중 적어도 어느 하나는 캐쉬 메모리를 가지고, 상기 시스템 버스는 상기 복수의 마스터 디바이스에 대한 스누핑 동작의 종료 이전에 상기 복수의 마스터 디바이스 중 적어도 어느 하나로부터 상기 슬레이브 디바이스로의 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리한다.
본 발명의 일 실시예에 따른 멀티프로세서 시스템의 캐쉬 관리 방법은 복수의 마스터 디바이스가 시스템 버스를 통해 슬레이브 디바이스를 공유하는 멀티프로세서 시스템의 캐쉬 관리 방법에 있어서, (a) 상기 복수의 마스터 디바이스 중 적어도 어느 하나로부터 상기 슬레이브 디바이스로의 트랜잭션을 생성하는 단계, (b) 상기 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리하는 단계, 및 (c) 상기 복수의 마스터 디바이스 중 상기 트랜잭션을 발생하지 않은 마스터 디바이스를 스누핑하는 단계를 포함하고, 상기 (b) 단계는 상기 (c) 단계가 종료되기 전에 수행된다.
본 발명의 실시예들에 따르면, 멀티프로세서 시스템의 캐쉬 일관성을 유지할 수 있다. 또한, 멀티프로세서 시스템의 쓰기 레이턴시 및/또는 읽기 레이턴시를 감소시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 멀티프로세서 시스템을 개략적으로 보여준다.
도 2는 본 발명의 일 실시예에 따른 멀티프로세서 시스템을 더욱 구체적으로 보여준다.
도 3은 본 발명의 일 실시예에 따른 멀티프로세서 시스템의 쓰기 트랜잭션에 대한 캐쉬 관리 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 멀티프로세서 시스템의 읽기 트랜잭션에 대한 캐쉬 관리 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 멀티프로세서 시스템을 개략적으로 보여준다.
도 6은 도 5의 실시예에 따른 멀티프로세서 시스템의 쓰기 트랜잭션에 대한 캐쉬 관리 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 멀티프로세서 시스템을 포함하는 컴퓨팅 시스템을 개략적으로 보여준다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 일 실시예는 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법에 관한 것이다. 이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 멀티프로세서 시스템을 개략적으로 보여준다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 멀티프로세서 시스템(100)은 제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120), 제 3 마스터 디바이스(130), 시스템 버스(140) 및 슬레이브 디바이스(150)를 포함한다.
마스터(master) 디바이스는 다른 디바이스를 제어하는 디바이스를 의미할 수 있다. 슬레이브(slave) 디바이스는 다른 디바이스에 의해 제어되는 디바이스를 의미할 수 있다. 또한, 마스터 및 슬레이브 디바이스들의 개수는 예시적인 것이며, 이에 한정되지 않는다.
제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터(130) 디바이스는 프로세서일 수 있다. 제 1 마스터 디바이스(110)는 예를 들어, CPU일 수 있다. 제 2 마스터 디바이스(120)는 예를 들어, 그래픽 프로세서(GPU) 일 수 있다. 제 3 마스터(130) 디바이스는 예를 들어, DMA(Direct Memory Access) 일 수 있다.
제 1 마스터 디바이스(110)는 제 1 캐쉬 메모리(111)를 포함한다. 제 2 마스터 디바이스(120)는 제 2 캐쉬 메모리(121)를 포함한다. 제 3 마스터 디바이스(130)는 캐쉬 메모리를 포함하지 않을 수 있다. 제 1 캐쉬 메모리(111) 및 제 2 캐쉬 메모리(121) 각각은 레벨 1 캐쉬 메모리(L1 Cache) 및 레벨 2 캐쉬 메모리(L2 Cache)를 포함할 수 있다.
한편, 제 1 캐쉬 메모리(111) 및 제 2 캐쉬 메모리(121)는 캐쉬 라인 단위로 데이터를 저장한다. 예를 들어, 캐쉬 라인 단위는 32 byte, 64 byte 또는 128 byte일 수 있으며, 이에 한정되는 것은 아니다.
슬레이브 디바이스(150)는 RAM, ROM, SDRAM 등의 메모리 디바이스 또는 입출력 디바이스(I/O device) 일 수 있다. 이하에서, 슬레이브 디바이스(150)는 메모리 디바이스인 것으로 설명된다. 예를 들어, 슬레이브 디바이스(150)는 메모리 컨트롤러와 메모리로 구성될 수 있다. 메모리는 휘발성 메모리(예를 들어, DRAM)일 수 있다.
제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130)는 시스템 버스(140)를 통해 슬레이브 디바이스(150)에 연결된다. 예를 들어, 제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130)는 단일 시스템 버스를 통해 슬레이브 디바이스(150)에 연결될 수 있다. 즉, 제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130)는 슬레이브 디바이스(150)에 액세스(access)하기 위해 시스템 버스(140)를 공유한다. 여기에서, 시스템 버스(140)는 복수의 계층으로 구성될 수 있다.
제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130) 중 적어도 어느 하나는 트랜잭션(transaction)을 발생하여 슬레이브 디바이스(150)에 액세스한다. 트랜잭션은 예를 들어, 쓰기 트랜잭션(write transaction) 또는 읽기 트랜잭션(read transaction)일 수 있다. 즉, 제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130)가 시스템 버스(140)를 통해 슬레이브 디바이스(150)에 데이터를 기입하거나 슬레이브 디바이스(150)로부터 데이터를 읽는 측면에서, 멀티프로세서 시스템(100)은 공유 메모리 시스템으로 이해될 수 있다.
따라서, 멀티프로세서 시스템(100)에서 캐쉬 일관성(cache coherency)이 문제될 수 있다. 예를 들어, 제 1 마스터 디바이스(110)가 쓰기 트랜잭션을 발생하여 슬레이브 디바이스(150)에 제 1 데이터를 기입하는 경우, 제 2 마스터 디바이스(120)의 제 2 캐쉬 메모리(121)에 저장된 제 2 데이터와 제 1 데이터 간의 불일치가 발생할 수 있기 때문이다. 여기서, 제 1 데이터와 제 2 데이터는 어드레스를 매개로 하여 연관성이 있는 데이터이다.
본 발명의 일 실시예에 따른 멀티프로세서 시스템(100)의 시스템 버스(140)는 제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130) 중 적어도 어느 하나로부터 트랜잭션(쓰기 트랜잭션 또는 읽기 트랜잭션)이 발생하는 경우, 트랜잭션을 발생한 마스터 디바이스를 제외한 다른 마스터 디바이스에 대한 스누핑 동작 종료 이전에 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리한다.
예를 들어, 제 1 마스터 디바이스(110)로부터 쓰기 트랜잭션이 발생한 경우가 가정된다. 이 경우, 시스템 버스(140)는 쓰기 트랜잭션에 대응하는 데이터(이하에서, '쓰기 데이터(write data)'로 칭함)를 슬레이브 디바이스(150)에 기입하고, 다른 마스터 디바이스들에 대해 스누핑 동작을 개시한다. 한편, 스누핑 동작은 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청 처리 이전에 개시될 수 있다. 또한, 스누핑 동작은 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청 처리 이후에 개시될 수도 있다. 하지만, 이러한 경우들에서도 본 발명의 일 실시예에 따른 멀티프로세서 시스템(100)의 시스템 버스(140)는 스누핑 동작의 종료 이전에 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리한다.
일 측면에서, 스누핑 동작은 다른 마스터 디바이스들의 캐쉬 메모리에 유효 데이터가 존재하는지 확인하는 동작으로 이해될 수 있다. 유효 데이터(valid data)는 트랜잭션에 대응하는 데이터와 어드레스를 매개로 연관되는 다른 마스터 디바이스의 캐쉬 메모리 영역에 저장되는 데이터를 의미할 수 있다.
따라서, 멀티프로세서 시스템(100)은 캐쉬 일관성을 유지하면서, 멀티프로세서 시스템(100)은 쓰기 레이턴시 또는 읽기 레이턴시를 감소시킬 수 있다. 쓰기 레이턴시는 쓰기 트랜잭션 발생에 따라 쓰기 데이터가 기입될 때까지의 대기 시간을 의미한다. 읽기 레이턴시는 읽기 트랜잭션 발생에 따라 읽기 데이터가 읽어질 때까지의 대기 시간을 의미한다. 이는 이하의 도 2 및 도 3을 참조하여 더욱 상세하게 설명될 것이다.
도 2는 본 발명의 일 실시예에 따른 멀티프로세서 시스템을 더욱 구체적으로 보여준다. 동일한 구성에 대한 설명은 중복을 피하기 위하여 생략된다.
제 1 마스터 디바이스(110)는 다른 마스터 디바이스를 스누핑(snooping) 할 수 있고, 다른 마스터 디바이스로부터 스누핑 될 수 있는 것으로 가정된다. 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130)는 제 1 마스터 디바이스(110)에 의해 스누핑 될 수 없는 것으로 가정된다. 또한, 제 2 마스터 디바이스(120)가 쓰기 트랜잭션을 발생하는 것으로 가정된다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 멀티프로세서 시스템(100)의 시스템 버스(140)는 복수의 슬레이브 인터페이스(141), 마스터 인터페이스(142) 및 스누프 라우터(143)를 포함한다.
복수의 슬레이브 인터페이스(141), 마스터 인터페이스(142) 및 스누프 라우터(143) 각각은 로직 회로로 구성될 수 있다. 복수의 슬레이브 인터페이스(141)의 개수는 마스터 디바이스(110, 120, 130)의 개수에 대응하여 달라질 수 있다.
슬레이브 인터페이스(141)는 대응되는 제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 또는 제 3 마스터 디바이스(130)가 액세스하고자 하는 슬레이브 디바이스(150)의 주소를 디코딩한다.
마스터 인터페이스(142)는 제 1 마스터 디바이스(110), 제 2 마스터 디바이스(120) 및 제 3 마스터 디바이스(130)에 슬레이브 디바이스(150)에 대한 액세스 권한을 부여한다. 구체적으로, 마스터 인터페이스(142)는 복수의 슬레이브 인터페이스(141)로부터 마스터 디바이스(110, 120 및 130)들의 주소를 전달받고, 그 가운데 하나의 마스터 디바이스(예를 들어, 제 2 마스터)에 슬레이브 디바이스(150)에 대한 액세스 권한을 부여한다.
또한, 마스터 인터페이스(142)는 액세스 권한이 부여된 마스터 디바이스(예를 들어, 제 2 마스터)로부터의 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리한다. 예를 들어, 제 2 마스터 디바이스(120)로부터 발생된 쓰기 트랜잭션을 전달받는 경우, 마스터 인터페이스(142)는 슬레이브 디바이스(150)에 쓰기 데이터가 기입되도록 제어한다.
스누프 라우터(143)는 마스터 인터페이스(142)로부터 스누프 제어 신호를 전달받는다. 스누프 라우터(143)는 스누프 제어 신호에 기초하여 마스터 디바이스들을 스누핑한다. 본 실시예에서는 예시적으로, 스누프 라우터(143)가 제 1 마스터 디바이스(110)를 스누핑하는 것으로 가정된다. 구체적으로, 스누프 라우터(143)는 제 1 마스터 디바이스(110)의 제 1 캐쉬 메모리(111)를 스누핑한다.
또한, 스누프 라우터(143)는 마스터 인터페이스(142)로부터 트랜잭션에 대응하는 데이터 정보를 전달받을 수 있다. 예를 들어, 스누프 라우터(143)는 마스터 인터페이스(142)로부터 쓰기 데이터가 풀-라인(full-line) 데이터인지 또는 부분-라인(partial-line) 데이터인지에 대한 정보를 전달받을 수 있다. 여기서, 풀-라인 데이터는 캐쉬 라인 단위의 데이터를 의미한다. 부분-라인 데이터는 캐쉬 라인 단위보다 작은 단위의 데이터를 의미한다. 예를 들어, 캐쉬 라인 단위가 64 byte인 경우, 부분-라인 데이터는 그보다 작은 데이터량을 가질 것이다.
스누프 라우터(143)의 스누핑 결과는 스누프 히트(Snoop Hit) 또는 스누프 미스(Snoop Miss)로 분류될 수 있다. 스누프 히트는 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하는 것을 의미한다. 스누프 미스는 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하지 않음을 의미한다.
스누프 히트의 경우, 쓰기 데이터가 풀-라인 데이터이면 스누프 라우터(143)는 유효 데이터를 무효화한다. 즉, 유효 데이터가 저장된 제 1 캐쉬 메모리(111)의 캐쉬 라인을 무효화한다. 쓰기 데이터가 부분-라인 데이터이면 스누프 라우터(143)는 쓰기 데이터와 제 1 캐쉬 메모리(111)의 유효 데이터를 결합(merging)한다. 스누프 라우터(143)는 결합된 데이터를 마스터 인터페이스(142)로 전달한다. 마스터 인터페이스(142)는 결합된 데이터가 슬레이브 디바이스(150)에 재기입(overwrite)되도록 제어한다.
스누프 미스의 경우, 스누프 라우터(143)는 쓰기 트랜잭션에 대응하는 데이터의 처리 동작을 종료한다.
본 발명의 일 실시예에 따른 멀티프로세서 시스템(100)은 마스터 디바이스(110, 120 또는 130)로부터 트랜잭션(쓰기 또는 읽기 트랜잭션)이 발생한 경우, 마스터 인터페이스(142)는 다른 마스터 디바이스(110)에 대한 스누핑 동작 종료 이전에 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리한다. 따라서, 본 발명의 일 실시예에 따른 멀티프로세서 시스템(100)은 캐쉬 일관성을 유지하면서 쓰기 레이턴시 또는 읽기 레이턴시를 감소시킬 수 있다.
도 3은 본 발명의 일 실시예에 따른 멀티프로세서 시스템의 쓰기 트랜잭션에 대한 캐쉬 관리 방법을 설명하기 위한 흐름도이다. 여기서, 유효 데이터와 쓰기 데이터는 어드레스를 매개로 하여 연관성 있는 데이터이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 멀티프로세서 시스템의 쓰기 트랜잭션에 대한 캐쉬 관리 방법은 S110 단계 내지 S170 단계를 포함한다.
S110 단계에서는 쓰기 트랜잭션이 발생된다. 쓰기 트랜잭션은 제 2 마스터 디바이스(200)로부터 발생된다고 가정된다. 발생된 쓰기 트랜잭션은 제 2 캐쉬 메모리(210)를 통해 시스템 버스(140)로 전달될 것이다.
S120 단계에서 쓰기 데이터는 슬레이브 디바이스(150)에 기입되고, 다른 마스터 디바이스(110)에 대한 스누핑 동작이 개시된다. 구체적으로, 시스템 버스(140)의 마스터 인터페이스(142)는 제 2 마스터 디바이스(120)에 액세스 권한을 부여한다. 그리고 마스터 인터페이스(142)는 쓰기 트랜잭션에 대응한 쓰기 데이터가 슬레이브 디바이스(150)에 기입되도록 제어할 것이다. 또한, 스누프 라우터(143)는 마스터 디바이스들에 대한 스누핑 동작을 개시한다. 예를 들어, 스누프 라우터(143)는 스누핑되는 것을 허용하는 제 1 마스터 디바이스(110)의 제 1 캐쉬 메모리(111)에 대해 스누핑한다. 구체적으로, 스누프 라우터(143)는 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하는지 확인한다.
한편, 스누프 라우터(143)의 스누핑 동작은 S120 단계 이전에 개시될 수 있다. 또한, 스누프 라우터(143)의 스누핑 동작은 S120 단계 이후에, S130 단계 이전에 개시될 수도 있다.
S130 단계에서 스누핑 동작이 종료된다. 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하는 경우, 스누프 히트로 판별된다. 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하지 않는 경우, 스누프 미스로 판별된다.
스누프 히트의 경우, S140 단계가 수행된다. 스누프 미스의 경우, 쓰기 트랜잭션에 대한 처리 동작이 종료될 것이다.
S140 단계는 쓰기 데이터가 풀-라인 데이터인지 판별한다. 쓰기 데이터가 풀-라인 데이터인 경우 S150 단계가 수행된다. 쓰기 데이터가 부분-라인 데이터인 경우 S160 단계가 수행된다. 풀-라인 데이터 및 부분-라인 데이터에 대해서는 상술하였으므로 자세한 설명은 생략된다.
S150 단계는 유효 데이터를 무효화(invalidate)한다. 구체적으로, 스누프 라우터(143)는 쓰기 데이터가 풀-라인 데이터인 경우 유효 데이터가 존재하는 캐쉬 메모리의 해당 캐쉬 라인을 무효화한다.
S160 단계는 쓰기 데이터가 부분-라인(partial-line) 데이터인 경우 유효 데이터 및 쓰기 데이터를 결합하고, 유효 데이터를 무효화한다.
S170 단계는 결합된 데이터를 슬레이브 디바이스(150)에 재기입(overwrite)한다.
상술한 S110 단계 내지 S170 단계를 통해 멀티프로세서 시스템(100)의 쓰기 트랜잭션에 대한 캐쉬 관리 방법이 수행된다. 즉, 쓰기 데이터가 부분-라인 데이터인 경우를 제외하면 쓰기 트랜잭션에 대한 처리 동작이 조기에 종료될 수 있다. 따라서, 쓰기 레이턴시는 감소될 수 있다.
도 4는 본 발명의 일 실시예에 따른 멀티프로세서 시스템의 읽기 트랜잭션에 대한 캐쉬 관리 방법을 설명하기 위한 흐름도이다. 읽기 트랜잭션에 대응하는 데이터는 읽기 데이터(read data)로 호칭된다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 멀티프로세서 시스템의 읽기 트랜잭션에 대한 캐쉬 관리 방법은 S210 단계 내지 S250 단계를 포함한다.
S210 단계에서는 읽기 트랜잭션이 발생된다. 읽기 트랜잭션은 제 2 마스터 디바이스(120)로부터 발생된다고 가정된다. 발생된 읽기 트랜잭션은 제 2 캐쉬 메모리(121)를 통해 시스템 버스(140)로 전달될 것이다.
S220 단계는 읽기 데이터를 슬레이브 디바이스(150)로부터 독출하고, 다른 마스터 디바이스(110)에 대해 스누핑 동작을 개시한다. 구체적으로, 시스템 버스(140)의 마스터 인터페이스(142)는 제 2 마스터 디바이스(120)에 액세스 권한을 부여한다. 그리고 마스터 인터페이스(142)는 슬레이브 디바이스(150)로부터 읽기 데이터가 독출되도록 제어할 것이다. 스누프 라우터(143)는 스누핑되는 것을 허용하는 제 1 마스터 디바이스(110)의 제 1 캐쉬 메모리(111)에 대해 스누핑한다. 구체적으로, 스누프 라우터(143)는 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하는지 확인한다. 한편, 스누프 라우터(143)의 스누핑 동작은 S220 단계 이전에 개시될 수 있다. 또한, 스누프 라우터(143)의 스누핑 동작은 S220 단계 이후에, S230 단계 이전에 개시될 수도 있다.
S230 단계에서 스누핑 동작이 종료된다. 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하는 경우, 스누프 히트로 판별된다. 제 1 캐쉬 메모리(111)에 유효 데이터가 존재하지 않는 경우, 스누프 미스로 판별된다. 스누프 히트의 경우, S240 단계가 수행된다. 스누프 미스의 경우, 읽기 트랜잭션에 대한 처리 동작이 종료될 것이다.
S240 단계에서 제 2 마스터 디바이스(120)는 시스템 버스(140)를 통해 제 1 마스터 디바이스(110)의 제 1 캐쉬 메모리(111)의 유효 데이터를 독출할 것이다.
상술한 S210 단계 내지 S240 단계를 통해 멀티프로세서 시스템(100)의 읽기 트랜잭션에 대한 캐쉬 관리 방법이 수행된다. 즉, 스누핑 동작의 종료 이전에 읽기 트랜잭션에 대응한 읽기 데이터가 독출될 수 있다. 이 경우, 스누핑 결과 스누핑 미스로 판별되는 경우에 특히 읽기 레이턴시를 감소시킬 수 있다. 따라서, 멀티프로세서 시스템(100)의 읽기 레이턴시는 감소될 수 있다.
도 5는 본 발명의 다른 실시예에 따른 멀티프로세서 시스템을 개략적으로 보여준다. 동일한 구성에 대한 설명은 중복을 피하기 위해 생략된다.
도 5를 참조하면, 본 발명의 다른 실시예에 따른 멀티프로세서 시스템(200)은 제 1 마스터 디바이스(210), 제 2 마스터 디바이스(220), 제 3 마스터 디바이스(230), 시스템 버스(240) 및 슬레이브 디바이스(250)를 포함한다.
제 1 마스터 디바이스(210) 및 제 2 마스터 디바이스(220)는 다른 마스터 디바이스를 스누핑(snooping) 할 수 있고, 다른 마스터 디바이스로부터 스누핑 될 수 있는 것으로 가정된다. 제 3 마스터 디바이스(230)는 제 1 마스터 디바이스(210) 및 제 2 마스터 디바이스(220)에 의해 스누핑 될 수 없는 것으로 가정된다. 또한, 제 3 마스터 디바이스(230)로부터 쓰기 트랜잭션이 발생되는 것으로 가정된다.
제 3 마스터 디바이스(230)로부터 발생된 쓰기 트랜잭션은 대응되는 슬레이브 인터페이스(241)로 전달된다. 슬레이브 인터페이스(241)는 슬레이브 디바이스(250)의 주소를 디코딩하고, 이를 마스터 인터페이스(242)로 전달한다. 마스터 인터페이스(242)는 제 3 마스터 디바이스(230)에 슬레이브 디바이스(250)에 대한 액세스 권한을 부여한다. 또한, 마스터 인터페이스(242)는 쓰기 트랜잭션에 대응하는 쓰기 데이터를 슬레이브(250)에 기입한다. 스누프 라우터(243)는 제 1 캐쉬 메모리(211) 및 제 2 캐쉬 메모리(221)에 대해 스누핑 동작을 수행한다.
스누핑 히트이며, 제 1 캐쉬 메모리(211) 및/또는 제 2 캐쉬 메모리(221)에 유효 데이터가 존재하는 경우, 스누프 라우터(243)는 유효 데이터들을 모두 무효화시킨다. 이 경우, 제 1 및/또는 제 2 캐쉬 메모리(211 및 221)에 저장된 유효 데이터들은 모두 풀-라인 데이터일 것이다. 캐쉬 메모리의 경우 캐쉬 라인 단위로 데이터를 저장하기 때문이다. 상술한 실시예에 따르면 멀티프로세서 시스템(200)의 쓰기 레이턴시는 더욱 감소될 수 있다.
도 6은 도 5의 실시예에 따른 멀티프로세서 시스템의 쓰기 트랜잭션에 대한 캐쉬 관리 방법을 설명하기 위한 흐름도이다. 각 단계에 대한 중복되는 설명은 생략된다.
도 6을 참조하면, 본 발명의 다른 실시예에 따른 멀티프로세서 시스템의 쓰기 트랜잭션에 대한 캐쉬 관리 방법은 S310 단계 내지 S340 단계를 포함한다.
구체적으로, S310 단계에서 쓰기 트랜잭션이 발생된다.
S320 단계에서 쓰기 트랜잭션에 대응하는 쓰기 데이터가 슬레이브 디바이스(500)에 기입되고, 제 1 마스터 디바이스(210)의 제 1 캐쉬 메모리(211) 및 제 2 마스터 디바이스(220)의 제 2 캐쉬 메모리(221)에 대한 스누핑 동작이 개시된다. 구체적으로, 시스템 버스(240)의 마스터 인터페이스(242)는 제 3 마스터 디바이스(220)에 액세스 권한을 부여한다. 그리고 마스터 인터페이스(242)는 쓰기 트랜잭션에 대응한 쓰기 데이터가 슬레이브 디바이스(250)에 기입되도록 제어할 것이다. 또한, 스누프 라우터(243)는 마스터 디바이스들에 대한 스누핑 동작을 개시한다. 예를 들어, 스누프 라우터(243)는 제 1 마스터 디바이스(210)의 제 1 캐쉬 메모리(211) 및 제 2 마스터 디바이스(220)의 제 2 캐쉬 메모리(221)에 대해 스누핑한다. 구체적으로, 스누프 라우터(243)는 제 1 캐쉬 메모리(211) 및 제 2 캐쉬 메모리(221)에 유효 데이터가 존재하는지 확인한다.
한편, 스누프 라우터(243)의 스누핑 동작은 S320 단계 이전에 개시될 수 있다. 또한, 스누프 라우터(243)의 스누핑 동작은 S320 단계 이후에, S330 단계 이전에 개시될 수도 있다.
S330 단계에서 스누핑 동작이 종료된다. 스누핑 결과, 제 1 캐쉬 메모리(211) 및 제 2 캐쉬 메모리(221) 중 어느 하나라도 유효 데이터를 포함하는 경우, S340 단계가 수행된다.
S340 단계는 제 1 캐쉬 메모리(211) 및/또는 제 2 캐쉬 메모리(221)에 저장된 유효 데이터를 무효화한다.
스누핑 결과, 제 1 캐쉬 메모리(211) 및 제 2 캐쉬 메모리(221) 모두 유효 데이터를 포함하지 않는 경우, 쓰기 트랜잭션에 대한 처리 동작이 종료된다.
따라서, 상술한 실시예에 따르면, 도 3을 참조하여 설명된 실시예와 비교하여 멀티프로세서 시스템(200)의 쓰기 레이턴시를 더욱 감소시킬 수 있다.
도 7은 본 발명의 일 실시예에 따른 멀티프로세서 시스템(1100)을 포함하는 컴퓨팅 시스템(1000)을 개략적으로 보여준다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)은 멀티프로세서 시스템(1100), 메모리 시스템(1200), 사용자 인터페이스(1300) 및 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(1400)을 포함한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)이 모바일 장치인 경우, 컴퓨팅 시스템(1000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)에는 응용 칩세트(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
멀티프로세서 시스템(1100)은 제 1 마스터 디바이스(1110), 제 2 마스터 디바이스(1120), 제 3 마스터 디바이스(1130), 시스템 버스(1140) 및 슬레이브 디바이스(1150)를 포함한다. 또한, 멀티프로세서 시스템(1100)은 시스템 설정, 사용 환경에 따라 메모리 시스템(1200), 사용자 인터페이스(1300) 및 모뎀(1400)을 포함할 수 있다. 슬레이브 디바이스(1150)는 예를 들어, DRAM과 같은 주기억 장치일 수 있다. 멀티프로세서 시스템(1100)은 시스템 버스(1140)를 통해 메모리 시스템(1200), 사용자 인터페이스(1300) 및 모뎀(1400)과 연결된다.
상술한 바와 같이, 멀티프로세서 시스템(1100)의 시스템 버스(1140)는 제 1 마스터 디바이스(1110), 제 2 마스터 디바이스(1120) 및 제 3 마스터 디바이스(1130) 중 적어도 어느 하나로부터 트랜잭션(쓰기 트랜잭션 또는 읽기 트랜잭션)이 발생하는 경우 트랜잭션에 대응하는 데이터를 처리하고, 이와 동시에 또는 그 이후에 스누핑 동작을 수행한다.
한편, 메모리 시스템(1200)은, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 또는, 메모리 시스템(1200)은, 퓨전 플래시 메모리(예를 들면, 원낸드 플래시 메모리)로 제공될 수 있다.
이상 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100, 200: 멀티프로세서 시스템 141, 241: 슬레이브 인터페이스
110, 210: 제 1 마스터 디바이스 142, 242: 마스터 인터페이스
120, 220: 제 2 마스터 디바이스 143, 243: 스누프 라우터
130, 230: 제 3 마스터 디바이스 1000: 컴퓨팅 시스템
111, 211: 제 1 캐쉬 메모리 1100: 멀티프로세서 시스템
121, 221: 제 2 캐쉬 메모리 1200: 메모리 시스템
140, 240: 시스템 버스 1300: 사용자 인터페이스
150, 250: 슬레이브 디바이스 1400: 모뎀

Claims (10)

  1. 복수의 마스터 디바이스;
    적어도 하나의 슬레이브 디바이스; 및
    상기 복수의 마스터 디바이스와 상기 적어도 하나의 슬레이브 디바이스를 연결하는 시스템 버스를 포함하고,
    상기 복수의 마스터 디바이스 중 적어도 어느 하나는 캐쉬 메모리를 가지고,
    상기 시스템 버스는 상기 복수의 마스터 디바이스에 대한 스누핑 동작의 종료 이전에 상기 복수의 마스터 디바이스 중 적어도 어느 하나로부터 상기 슬레이브 디바이스로의 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리하고,
    상기 시스템 버스는
    상기 복수의 마스터 디바이스 중 대응되는 마스터 디바이스로부터 상기 트랜잭션을 전달받고, 상기 슬레이브 디바이스에 대응되는 주소를 디코딩하는 복수의 슬레이브 인터페이스;
    상기 슬레이브 인터페이스로부터 상기 트랜잭션을 전달받고, 상기 복수의 마스터 디바이스 중 어느 하나에 대해 상기 슬레이브 디바이스에 대한 액세스 권한을 부여하는 마스터 인터페이스; 및
    상기 마스터 인터페이스로부터 전달받는 스누프 제어 신호에 기초하여 상기 복수의 마스터 디바이스에 대해 스누핑 동작을 수행하는 스누프 라우터를 포함하는 멀티프로세서 시스템.
  2. 제 1 항에 있어서,
    상기 트랜잭션은 쓰기 트랜잭션이고,
    상기 시스템 버스는 상기 쓰기 트랜잭션에 대응하는 쓰기 데이터를 상기 슬레이브 디바이스에 기입하고, 이와 동시에 또는 그 이후에 상기 복수의 마스터 디바이스의 상기 캐쉬 메모리에 대해 상기 쓰기 트랜잭션에 대응한 스누핑 동작을 수행하는 멀티프로세서 시스템.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 트랜잭션은 쓰기 트랜잭션이고,
    상기 스누프 라우터는 상기 복수의 마스터 디바이스 중 상기 쓰기 트랜잭션을 발생하지 않은 마스터 디바이스의 상기 캐쉬 메모리에 유효 데이터가 존재하는 경우,
    상기 쓰기 트랜잭션에 대응하는 쓰기 데이터가 풀-라인 데이터이면 상기 유효 데이터를 무효화하고,
    상기 쓰기 데이터가 부분-라인 데이터이면 상기 유효 데이터와 상기 쓰기 데이터를 결합하여 결합된 데이터를 상기 마스터 인터페이스로 전달하고, 상기 유효 데이터를 무효화하는 멀티프로세서 시스템.
  5. 제 4 항에 있어서,
    상기 마스터 인터페이스는 상기 결합된 데이터를 상기 슬레이브 디바이스에 재기입(overwrite)하는 멀티프로세서 시스템.
  6. 제 1 항에 있어서,
    상기 트랜잭션은 읽기 트랜잭션이고,
    상기 시스템 버스는 상기 읽기 트랜잭션에 대응하는 읽기 데이터를 상기 슬레이브 디바이스로부터 독출하고, 이와 동시에 또는 그 이후에 상기 복수의 마스터 디바이스에 대해 상기 읽기 트랜잭션에 대응한 스누핑 동작을 수행하는 멀티프로세서 시스템.
  7. 복수의 마스터 디바이스가 시스템 버스를 통해 슬레이브 디바이스를 공유하는 멀티프로세서 시스템의 캐쉬 관리 방법에 있어서:
    상기 복수의 마스터 디바이스 중 적어도 어느 하나로부터 상기 슬레이브 디바이스로의 트랜잭션을 생성하는 단계;
    상기 트랜잭션에 대응하는 데이터 읽기 또는 데이터 쓰기 요청을 처리하는 단계; 및
    상기 복수의 마스터 디바이스 중 상기 트랜잭션을 발생하지 않은 마스터 디바이스를 스누핑하는 단계를 포함하고,
    상기 데이터 읽기 또는 상기 데이터 쓰기 요청을 처리하는 단계는 상기 스누핑하는 단계가 종료되기 전에 수행되고,
    상기 시스템 버스는
    상기 복수의 마스터 디바이스 중 대응되는 마스터 디바이스로부터 상기 트랜잭션을 전달받고, 상기 슬레이브 디바이스에 대응되는 주소를 디코딩하는 복수의 슬레이브 인터페이스;
    상기 슬레이브 인터페이스로부터 상기 트랜잭션을 전달받고, 상기 복수의 마스터 디바이스 중 어느 하나에 대해 상기 슬레이브 디바이스에 대한 액세스 권한을 부여하는 마스터 인터페이스; 및
    상기 마스터 인터페이스로부터 전달받는 스누프 제어 신호에 기초하여 상기 복수의 마스터 디바이스에 대해 스누핑 동작을 수행하는 스누프 라우터를 포함하는 멀티프로세서 시스템의 캐쉬 관리 방법.
  8. 제 7 항에 있어서,
    상기 트랜잭션은 쓰기 트랜잭션이고,
    상기 데이터 읽기 또는 상기 데이터 쓰기 요청을 처리하는 단계는 상기 슬레이브 디바이스에 상기 쓰기 트랜잭션에 대한 쓰기 데이터를 기입하는 멀티프로세서 시스템의 캐쉬 관리 방법.
  9. 제 8 항에 있어서,
    상기 스누핑하는 단계는 상기 적어도 하나의 마스터 디바이스를 제외한 다른 마스터 디바이스에 유효 데이터가 존재하는지 판별하는 멀티프로세서 시스템의 캐쉬 관리 방법.
  10. 제 7 항에 있어서,
    상기 트랜잭션은 읽기 트랜잭션이고,
    상기 데이터 읽기 또는 상기 데이터 쓰기 요청을 처리하는 단계는 상기 슬레이브 디바이스로부터 상기 읽기 트랜잭션에 대응한 읽기 데이터를 독출하는 멀티프로세서 시스템의 캐쉬 관리 방법.
KR1020120039804A 2012-04-17 2012-04-17 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법 KR101944329B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120039804A KR101944329B1 (ko) 2012-04-17 2012-04-17 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법
US13/793,023 US9183149B2 (en) 2012-04-17 2013-03-11 Multiprocessor system and method for managing cache memory thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120039804A KR101944329B1 (ko) 2012-04-17 2012-04-17 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법

Publications (2)

Publication Number Publication Date
KR20130117086A KR20130117086A (ko) 2013-10-25
KR101944329B1 true KR101944329B1 (ko) 2019-04-18

Family

ID=49326141

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120039804A KR101944329B1 (ko) 2012-04-17 2012-04-17 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법

Country Status (2)

Country Link
US (1) US9183149B2 (ko)
KR (1) KR101944329B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102285749B1 (ko) 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US9916251B2 (en) * 2014-12-01 2018-03-13 Samsung Electronics Co., Ltd. Display driving apparatus and cache managing method thereof
US10942904B2 (en) * 2018-10-09 2021-03-09 Arm Limited Mapping first identifier to second identifier

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06208507A (ja) 1993-01-11 1994-07-26 Casio Comput Co Ltd キャッシュメモリシステム
JP3872118B2 (ja) 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US6021472A (en) 1995-08-21 2000-02-01 Canon Kabushiki Kaisha Information processing device and control method thereof
KR100286344B1 (ko) 1999-01-30 2001-03-15 김영환 캐시의 스누핑 사이클 제거장치
JP2000250811A (ja) 1999-03-03 2000-09-14 Hitachi Ltd メモリコントローラ及びコンピュータシステム
JP2001034597A (ja) 1999-07-22 2001-02-09 Fujitsu Ltd キャッシュメモリ装置
JP3609656B2 (ja) 1999-07-30 2005-01-12 株式会社日立製作所 コンピュータシステム
US7546422B2 (en) 2002-08-28 2009-06-09 Intel Corporation Method and apparatus for the synchronization of distributed caches
US7484044B2 (en) 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
JP4673585B2 (ja) * 2004-08-05 2011-04-20 富士通株式会社 メモリシステム制御装置およびメモリシステム制御方法
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7519780B2 (en) 2006-11-03 2009-04-14 International Business Machines Corporation System and method for reducing store latency in symmetrical multiprocessor systems

Also Published As

Publication number Publication date
US9183149B2 (en) 2015-11-10
KR20130117086A (ko) 2013-10-25
US20130275686A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
US9665486B2 (en) Hierarchical cache structure and handling thereof
US9465767B2 (en) Multi-processor, multi-domain, multi-protocol cache coherent speculation aware shared memory controller and interconnect
US9170946B2 (en) Directory cache supporting non-atomic input/output operations
US11789868B2 (en) Hardware coherence signaling protocol
JP2008027435A (ja) 排他的所有権のスヌープフィルタ
US20180143903A1 (en) Hardware assisted cache flushing mechanism
CN113892090A (zh) 多级高速缓存安全性
KR101944329B1 (ko) 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법
US9292442B2 (en) Methods and apparatus for improving performance of semaphore management sequences across a coherent bus
US20150113221A1 (en) Hybrid input/output write operations
US20080140942A1 (en) Implementing a hot coherency state to a cache coherency protocol in a symmetric multi-processor environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right