KR101192423B1 - 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 - Google Patents
멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 Download PDFInfo
- Publication number
- KR101192423B1 KR101192423B1 KR1020100134895A KR20100134895A KR101192423B1 KR 101192423 B1 KR101192423 B1 KR 101192423B1 KR 1020100134895 A KR1020100134895 A KR 1020100134895A KR 20100134895 A KR20100134895 A KR 20100134895A KR 101192423 B1 KR101192423 B1 KR 101192423B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- processor
- cache
- memory
- local store
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (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
많은 수의 프로세싱 코어가 집적된 CMP(chip multi-processor)에 적용가능한 메모리 관리 장치 및 이러한 메모리 관리 장치가 적용된 멀티코어 시스템이 제공된다. 본 발명의 일 양상에 의하면, 멀티코어 시스템의 각 코어는 캐시와 로컬 스토어를 갖는다. 캐시는 데이터 일관성을 지원하지 아니하고 로컬 스토어는 데이터 일관성을 지원한다. 각 코어는 캐시 또는 로컬 스토어를 통해 메모리 블록에 페이지 단위로 접근하는데, 해당 페이지의 페이지 디스크립터에는 그 페이지가 캐시로 로드되어야 하는지 또는 로컬 스토어로 로드되어야 하는지를 나타내는 필드가 있다. 이에 따라 페이지는 일관성 보장의 필요성에 따라 캐시 또는 로컬 스토어로 선택적으로 로드되고 해당 페이지의 페이지 디스크립터가 수정된다.
Description
다수의 프로세싱 코어를 포함하는 멀티코어 시스템 및 멀티코어 시스템의 일관성 정책 기술과 관련된다.
일반적으로, 멀티코어 시스템이란 여러 개의 작업을 한 번에 처리하기 위해 두 개 이상의 프로세싱 코어를 가지고 있는 프로세서를 말한다. 멀티 코어 프로세서는 싱글 코어 프로세서에 비해 성능 및 소비 전력 절감 면에서 유리하기 때문에 최근 각광을 받고 있다.
멀티코어 시스템에는 동일한 코어가 다수개 존재하는 대칭형 멀티코어 시스템(SMP, Symmetric Multi-Processing)과 DSP(Digital Processing Processor)나 GPU(Graphic Processing Unit) 등 GPP(General Purpose Processor)로 사용될 수 있는 다양한 이기종 코어들로 이루어진 비대칭 멀티코어 시스템(AMP, Asymmetric Multi-Processing)이 있다.
멀티코어 시스템에서 각 프로세싱 코어는 독립적으로 태스크를 실행한다. 따라서 어떤 메모리 영역에 서로 다른 프로세싱 코어가 동시에 접근하는 경우 데이터 불일치가 발생할 수 있다. 이러한 데이터 불일치를 방지하기 위해 대부분의 멀티코어 시스템은 coherent cache architecture를 채택하고 있다.
대표적인 coherent cache architecture로는 snooping-based coherent cache와 directory-based coherent cache가 있다.
Snooping-based coherent cache는 실제 상용 프로세서에서 가장 많이 쓰이고 있는 기법으로, 각 프로세싱 코어가 공유 버스에 연결되어 다른 프로세싱 코어가 어떤 메모리 블록에 어떤 접근을 하고 있는지를 snooping하는 방식으로 coherence를 제공한다. Snooping-based coherent cache의 경우, 공유 버스를 이용하여 모든 메모리 요청이 모든 프로세서에 전달되므로 확장성면에서 많은 수의 프로세싱 코어가 집적된 CMP(chip multi-process)에 적용하기엔 적합하지 않다.
Directory-based coherent cache는 cache에 저장되는 메모리 블록마다 어떤 프로세싱 코어가 어떠한 권한으로 접근하고 있는지를 기록하는 directory가 존재하여 필요한 경우 해당 프로세싱 코어에만 coherent message를 보내는 기법이다. 따라서 snooping-based coherent cache보다 확장성이 좋다고 여겨지고 있으나 하드웨어 설계의 복잡도가 매우 높아서 이 역시 CMP에 적용하기에는 적절치 아니하다.
많은 수의 프로세싱 코어가 집적된 CMP에 적용가능한 멀티코어 시스템의 메모리 관리 장치 및 이러한 메모리 관리 장치가 적용된 멀티코어 시스템이 제공된다.
본 발명의 일 양상에 따른 메모리 관리 장치는, 제 1 프로세서가 접근하려는 페이지를 지시하고 그 페이지가 메모리 영역으로부터 제 1 프로세서의 캐시로 로드될지 또는 제 1 프로세서의 로컬 스토어로 로드될지를 나타내는 로드 위치 결정 필드를 갖는 페이지 디스크립터를 제 1 프로세서의 TLB(translation lookaside buffer, 변환 참조 버퍼)로 복사하는 제 1 TLB 예외 처리부, 및 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인 경우, 그 페이지에 접근했던 제 2 프로세서의 캐시가 플러시되고 제 2 프로세서의 TLB가 무효화되도록 인터럽트 메시지를 제 2 프로세서로 전달하고, 제 2 프로세서의 응답에 따라 제 1 프로세서의 캐시를 플러시하고 로드 위치 결정 필드를 수정하는 제 2 TLB 예외 처리부를 포함할 수 있다.
또한 본 발명의 일 양상에 따른 멀티코어 시스템은, 제 1 프로세서, 메모리 일관성을 제공하지 아니하는 제 1 캐시, 및 메모리 일관성을 제공하는 제 1 로컬 스토어를 포함하는 제 1 코어와, 제 2 프로세서, 메모리 일관성을 제공하지 아니하는 제 2 캐시, 및 메모리 일관성을 제공하는 제 2 로컬 스토어를 포함하는 제 2 코어 및, 제 1 또는 제 2 프로세서가 접근하려는 페이지에 관한 페이지 디스크립터의 로드 위치 결정 비트에 따라 페이지를 제 1 또는 제 2 캐시에 복사하거나 제 1 또는 제 2 로컬 스토어에 복사하는 메모리 관리부를 포함할 수 있다.
개시된 내용에 따르면, 프로세서에 의해 접근되는 페이지를 그 페이지의 일관성 보장 필요성에 따라 일관성 정책이 지원되는 로컬 스토어와 일관성 정책이 지원되지 아니하는 캐시에 선택적으로 로드하여 관리하기 때문에 불필요한 네트워크 트래픽을 줄이고 시스템 구조를 단순화시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 멀티코어 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 페이지 디스크립터의 로드 위치 결정 필드를 도시한다.
도 4 내지 도 7은 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 동작을 도시한다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 페이지 디스크립터의 로드 위치 결정 필드를 도시한다.
도 4 내지 도 7은 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 동작을 도시한다.
가상 메모리에서 프로세서가 접근하는 가상 메모리 영역은 페이지 단위로 나누어진다. 이러한 페이지 중 실제로 일관성(coherence)이 보장되어야 하는 페이지는 다수의 프로세서가 접근하고, 그 중 적어도 하나의 프로세서가 해당 page에 write operation을 수행하는 경우가 될 수 있다. 이러한 페이지를 쓰기 공유 페이지라 칭한다.
본 발명의 일 양상에 따른 메모리 시스템 설계에 따라, 쓰기 공유 페이지에 대한 일관성은 로컬 스토어에 의해 제공될 수 있다. 로컬 스토어는 소프트웨어에 의해 제어되는 각 프로세서의 임시 저장소가 될 수 있다. 이 로컬 스토어는 하드웨어에 의해 제어되는 캐시와는 다르다.
각 프로세서의 페이지 요청은 TLB(translation lookaside buffer)로 복사되는 페이지 디스크립터에 의해 이루어지며, 페이지 디스크립터는 해당 페이지가 로컬 스토어로 로드되어야 하는지 또는 일관성을 제공하지 아니하는 캐시로 로드되어야 하는지를 나타내는 특정 필드를 포함할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 멀티코어 시스템을 도시한다.
도 1을 참조하면, 멀티코어 시스템(100)은 다수의 코어(110), 메모리 관리부(120), 및 메인 메모리(130)를 포함한다.
각각의 코어(110)는 타일(tile) 또는 메쉬(mesh) 구조로 연결된다. 각각의 코어(110)는 페이지 단위로 메인 메모리(130)의 메모리 블록에 접근한다. 메모리 관리부(120)는 페이지 일관성(page coherence)이 보장되면서 코어(110)들이 메인 메모리(130)의 특정 페이지에 접근하여 읽기/쓰기 동작을 실행할 수 있도록 각종 예외 처리와 코어(110)의 동작을 제어한다.
각각의 코어(110)는 프로세서(111), TLB(112, 113), L1 캐시(114, 115), L2 캐시(116), 로컬 스토어(117), DMA(118), 및 라우터/스위치(119)를 포함한다.
프로세서(111)는 TLB(tranlation lookaside buffer, 변환 참조 버퍼)(112, 113)에 저장된 페이지 디스크립터(page descriptor)를 통해 메인 메모리(130)의 페이지에 접근한다.
TLB(112, 113)는 프로세서(111)가 접근하려는 페이지에 관한 페이지 디스크립터를 저장한다. TLB(112, 113)는 인스트럭션과 관련된 페이지의 페이지 디스크립터가 저장되는 I-TLB(112)와 데이터와 관련된 페이지의 페이지 디스크립터가 저장되는 D-TLB(113)로 구분될 수 있다.
L1 캐시(114, 115)는 프로세서(111)가 접근하려는 페이지를 임시로 저장한다. 프로세서(111)는 L1 캐시(114, 115)를 통해 빠르게 페이지에 접근하는 것이 가능하다. L1 캐시(114, 115)는 인스트럭션과 관련된 페이지가 저장되는 L1 인스트럭션 캐시(114)와 데이터와 관련된 페이지가 저장되는 L1 데이터 캐시(115)로 구분될 수 있다.
L1 데이터 캐시(115)는 데이터 일관성(data coherence)를 제공하지 아니할 수 있다. 다시 말해, 프로세서(111)가 L1 데이터 캐시(115)를 통해 페이지에 접근하는 경우, 프로세서(111)는 데이터 일관성을 고려하지 않고 자유롭게 데이터를 읽고 쓰는 것이 가능하다.
L2 캐시(116)는 프로세서(111)가 접근하려는 페이지를 임시로 저장한다. L2 캐시(116)는 다른 코어에 존재하는 프로세서가 공유할 수 있는 캐시로서, Non-Unified Cache Access(NUCA)로 구성될 수 있다. 즉 L2 캐시(116)는 슬라이스로 나누어져서 각 코어(110)에 분산배치될 수 있다.
로컬 스토어(117)는 프로세서(111)가 접근하려는 페이지를 임시로 저장한다. 로컬 스토어(117)는 메모리 관리부(120)에 의해 관리되며, 메모리 관리부(120)의 관리에 의해 데이터 일관성을 제공할 수 있다. 다시 말해, 프로세서(111)가 로컬 스토어(117)를 통해 페이지에 접근하는 경우, 프로세서(111)에 의해 접근된 페이지는 메모리 관리부(120)에 의해 페이지 일관성이 보장될 수 있다.
DMA(118)는 메인 메모리(130)와 로컬 스토어(117) 간의 데이터 전송을 관리하고, 라우터/스위치(119)는 코어(110)간의 네트워크 메시지를 전송 및 수신한다.
본 실시예에 따라, 어떤 코어(110)의 프로세서(111)가 접근하려고 하는 페이지는 캐시(예컨대, 115) 또는 로컬 스토어(117)로 로드될 수 있다. 페이지가 캐시(115)로 로드될지 또는 로컬 스토어(117)로 로드될지는 그 페이지에 관한 페이지 디스크립터의 특정 필드에 따라 결정될 수 있다. 또한 본 실시예에 따라, 캐시(115)는 페이지 일관성을 제공하지 아니하고 로컬 스토어(117)는 페이지 일관성을 제공할 수 있다.
따라서 어떤 페이지에 대한 페이지 일관성 보장의 필요성에 따라 그 페이지의 페이지 디스크립터의 특정 필드가 적절히 조절되고, 그에 따라 페이지의 로드 위치가 캐시(117) 또는 로컬 스토어(117)로 결정되기 때문에 페이지 일관성을 제공하면서도 일관성 보장을 위한 네트워크 트래픽을 줄일 수 있다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 장치를 도시한다. 이것은 도 1의 메모리 관리부(120) 또는 DMA(118)의 일부 구성에 관한 일 예가 될 수 있다.
도 1 및 도 2를 참조하면, 메모리 관리 장치(200)는 예외 처리부(201)와 일관성 보장부(202)를 포함한다.
예외 처리부(201)는 프로세서(111)가 어떤 페이지에 접근하기 위해 D-TLB(113)를 참조하였을 때 해당 페이지의 페이지 디스크립터가 D-TLB(113)에 존재하지 않는 경우 호출될 수 있다.
예외 처리부(201)는 제 1 예외 처리부(211) 및 제 2 예외 처리부(212)를 포함할 수 있다.
제 1 예외 처리부(211)는 프로세서(111)가 접근하려는 페이지의 페이지 디스크립터를 D-TLB(113)로 복사한다. 이때, 페이지 디스크립터는, 본 발명의 일 실시예에 따라, 소정의 로드 위치 결정 필드를 가질 수 있다. 로드 위치 결정 필드는 하나 또는 두개의 비트 영역으로 구성될 수 있다. 로드 위치 결정 필드는 페이지 디스크립터가 지시하는 페이지가 L1 데이터 캐시(115)로 로드될지 또는 로컬 스토어(117)로 로드될지 여부를 나타낸다.
또한 본 발명의 일 양상에 따라, 제 1 예외 처리부(211)는 페이지 디스크립터를 복사하는 동안 페이지 디스크립터의 락(lock)을 설정하였다가 예외 처리가 끝나면 락을 해제할 수 있다.
제 2 예외 처리부(212)는 페이지 디스크립터가 지시하는 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인지 여부를 판단한다. 예컨대, 제 2 예외 처리부(212)는 그 페이지로 다수의 프로세서가 접근하였고 그 중 적어도 하나의 프로세서가 쓰기 동작을 위해 접근한 경우 해당 페이지를 쓰기 공유 페이지로 설정할 수 있다.
페이지가 쓰기 공유 페이지인 경우, 제 2 예외 처리부(212)는 인터럽트 메시지를 생성하고, 생성된 인터럽트 메시지를 그 페이지에 접근했던 다른 프로세서들에게 전달하고, 다른 프로세서들로부터 그 메시지에 대한 응답을 받을 때까지 대기한다. 생성된 인터럽트 메시지는 해당 페이지에 접근했던 다른 프로세서들의 캐시가 플러시되고 TLB가 무효화되도록 하는 요청 메시지가 될 수 있다.
인터럽트 메시지를 수신한 각 프로세서들은 자신의 캐시를 플러시(무효화 포함)하고 또한 자신의 TLB를 무효화한 후 응답 메시지를 보낸다. 응답 메시지에 따라 제 2 예외 처리부(212)는 프로세서(111)의 L1 데이터 캐시(115)를 플러시하고 페이지 디스크립터의 로드 위치 결정 필드를 수정한다.
일관성 보장부(202)는 정해진 일관성 프로토콜에 따라 페이지 일관성이 보장될 수 있도록 각 코어(110)의 로컬 스토어(117)를 제어한다. 예컨대, 일관성 보장부는 릴리스 일관성 프로토콜에 따라 특정한 시점에 로컬 스토어(117)의 내용이 메인 메모리(130)에 반영되도록 하거나 쓰기 공유 페이지를 접근한 프로세서들의 D-TLB(113)를 무효화시키는 것이 가능하다.
도 3은 본 발명의 일 실시예에 따른 페이지 디스크립터의 로드 위치 결정 필드를 도시한다.
도 3을 참조하면, 페이지 디스크립터의 유후 비트 영역에 C 비트와 L 비트가 지정될 수 있다. 예컨대, 로드 위치 결정 비트 11은 페이지 디스크립터가 지시하는 페이지의 로드 위치가 L1 캐시 및 L2 캐시임을 나타낸다. 로드 위치 결정 비트 10은 페이지 디스크립터가 지시하는 페이지의 로드 위치가 L2 캐시임을 나타낸다. 로드 위치 결정 비트 01은 페이지 디스크립터가 지시하는 페이지의 로드 위치가 로컬 스토어임을 나타낸다. 로드 위치 결정 비트 11은 페이지 디스크립터가 지시하는 페이지가 캐시 또는 로컬 스토어를 통하지 않고 직접 프로세서에 의해 접근됨을 나타낸다. 도 3에서, 로드 위치 결정 비트의 초기 디폴트 값은 11로 주어질 수 있다.
도 4 내지 도 7은 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 장치에 대한 동작을 도시한다.
도 2 및 도 4에서, 프로세서 #1이 페이지 A(401)를 읽기 위하여 D-TLB(410)를 참조하였으나, TLB miss가 발생하여 예외 처리부(201)가 호출되었다. 예외 처리부(201)는 메모리 영역(130)에서 페이지 A(401)의 페이지 디스크립터(402)를 프로세서 #1의 D-TLB(410)로 복사한다.
이때, 예외 처리부(201)는 페이지 디스크립터(402)가 D-TLB(410)로 복사되고 해당 페이지가 로드될 때까지 페이지 디스크립터(402)에 락(lock)을 설정하는 것이 가능하다.
페이지 디스크립터(402)가 D-TLB(410)로 복사되면, 프로세서 #1은 캐시(420) 또는 로컬 스토어(430)를 통해 페이지 A(401)로 접근한다. 이때 페이지 디스크립터(402)의 로드 위치 결정 필드가 디폴트 값인 '1'이므로, 페이지 A(401)는 캐시(420)로 로드된다.
페이지 A(401)가 로드되면, 예외 처리부(201)는 페이지 A(401)가 쓰기 공유 페이지(write-shared page)인지 여부를 판단한다. 예컨대, 예외 처리부(201)는 로드 위치 결정 필드가 '1'인 페이지 디스크립터(402)에 의해 지시되는 페이지에 대하여, 해당 페이지로 다수의 프로세서가 접근하였는지 여부 및 접근한 프로세서 중 적어도 하나의 프로세서가 쓰기 동작을 위해 접근하였는지 여부에 따라 페이지 A(401)가 쓰기 공유 페이지인지 여부를 판단할 수 있다. 페이지 A(401)로 프로세서 #1만 접근한 상태이므로 페이지 A(401)는 쓰기 공유 페이지가 아니다.
이어서 도 2 및 도 5에서, 프로세서 #2가 페이지 A(501)를 쓰기 위하여 D-TLB(510)를 참조하였으나, TLB miss가 발생하여 예외 처리부(201)가 호출되었다. 예외 처리부(201)는 메모리 영역(130)에서 페이지 A(501)의 페이지 디스크립터(502)를 프로세서 #2의 D-TLB(510)로 복사한다.
페이지 디스크립터(502)가 D-TLB(510)로 복사되면, 프로세서 #2는 캐시(520) 또는 로컬 스토어(530)를 통해 페이지 A(501)로 접근한다. 이때 페이지 디스크립터(502)의 로드 위치 결정 필드가 디폴트 값인 '1'이므로, 페이지 A(501)는 캐시(520)로 로드된다.
페이지 A(501)가 로드되면, 예외 처리부(201)는 페이지 A(501)가 쓰기 공유 페이지(write-shared page)인지 여부를 판단한다. 예컨대, 도 4에서 프로세서 #1이 이미 페이지 A(401)에 접근하였고, 이후 도 5에서 프로세서 #2가 동일한 페이지 A(501)에 대해 쓰기 동작을 수행하였으므로, 예외 처리부(201)는 페이지 A(501)가 쓰기 공유 페이지인 것으로 판단할 수 있다.
페이지 A(501)가 쓰기 공유 페이지로 결정된 경우, 예외 처리부(201)는 페이지 A(501)에 접근했던 다른 프로세서, 즉 프로세서 #1로 인터럽트 메시지를 전송한다. 이 인터럽트 메시지를 수신한 프로세서 #1은, 도 4에서, 캐시(420)에 저장된 페이지 A를 무효화(invalidation) 및 플러시(flush)하고, TLB(410)에 저장된 페이지 디스크립터를 무효화한다. 그리고 프로세서 #1은 프로세서 #2로 응답 메시지를 보낸다.
또한 프로세서 #1의 응답 메시지에 따라, 예외 처리부(201)는, 도 5에서, 캐시(520)에 저장된 페이지 A를 무효화(invalidation) 및 플러시(flush)하고, 페이지 디스크립터(502)의 로드 위치 결정 필드를 '0'으로 변경한다.
이어서 도 2 및 도 6에서, 프로세서 #1이 다시 페이지 A(601)에 접근하려고 하면 도 4 및 도 5를 통해 TLB(610)가 무효화된 상태이기 때문에 다시 TLB miss가 발생된다. TLB miss에 따라 호출된 예외 처리부(201)는 페이지 A(601)의 페이지 디스크립터(602)를 프로세서 #1의 TLB(610)로 복사한다.
페이지 디스크립터(602)가 D-TLB(610)로 복사되면, 프로세서 #1은 캐시(620) 또는 로컬 스토어(630)를 통해 페이지 A(601)로 접근한다. 이때 페이지 디스크립터(602)의 로드 위치 결정 필드가 도 6을 통해 '0'으로 변경되었으므로, 페이지 A(601)는 로컬 스토어(630)로 로드된다.
또한 도 2 및 도 7에서, 프로세서 #3이 페이지 A(701)에 접근하는 경우, 도 6과 마찬가지로 페이지 A(701)의 페이지 디스크립터(702)가 프로세서 #3의 TLB(710)로 복사되고, 페이지 A(701)가 로컬 스토어(730)로 로드되는 것이 가능하다.
도 6과 도 7을 참조하면, 동일한 페이지 A(601)(701)가 프로세서 #1의 로컬 스토어(630) 및 프로세서 #3의 로컬 스토어(730)에 동시에 로드되어 있으므로, 프로세서의 동작에 따라 페이지(601)(701)에 일관성(coherence)이 보장되지 아니할 수도 있다.
도 2, 도 6 및 도 7에서, 일관성 보장부(202)는 프로세서 #1의 로컬 스토어(630) 및 프로세서 #3의 로컬 스토어(730)를 제어해서 페이지 일관성이 보장되도록 한다. 다시 말해, 일관성 보장부(202)는 정해진 일관성 정책(coherent protocol)에 따라 어느 하나의 프로세서가 변경한 내용을 특정한 시점에 다른 프로세서가 볼 수 있게 하는 것이 가능하다.
예컨대, Release consistency model에 따라, 도 6에서, release point에 로컬 스토어(630)의 내용을 메인 메모리(130)로 반영하고 페이지 A(601)을 접근했던 모든 프로세서들의 로컬 스토어(예컨대, 도 5의 520 및 도 7의 730)에 저장된 쓰기 공유 페이지를 invalid로 설정하는 것이 가능하다. 이후 각각의 프로세서 #1, #2, 및 #3는 자신의 로컬 스토어에 저장된 쓰기 공유 페이지가 invalid로 설정되어있는지 검사한 후 invalid로 설정된 쓰기 공유 페이지에 대해서는 TLB에서 해당 페이지 디스크립터를 무효화시킬 수 있다. 그러나 이것은 Release consistency model을 예시한 것에 불과한 것으로, 일관성 보장부(202)는 그 밖에도 다른 일관성 정책에 따라 각 로컬 스토어 및 각 프로세서의 페이지 접근 순서를 제어할 수 있음은 물론이다.
도 5 내지 도 7과 같은 과정이 반복되면, 실제로 일관성이 보장되어야 하는 페이지에 대해서만 선택적으로 로컬 스토어를 통해 일관성 보장을 위한 동작이 수행되는 것을 알 수 있다. 즉 프로세서에 의해 접근되는 페이지를 그 페이지의 일관성 보장 필요성에 따라 일관성 정책이 지원되는 로컬 스토어와 일관성 정책이 지원되지 아니하는 캐시에 선택적으로 로드하여 관리하기 때문에 불필요한 네트워크 트래픽을 줄이고 시스템 구조를 단순화시킬 수 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
Claims (10)
- 제 1 프로세서가 접근하려는 페이지를 지시하고 그 페이지가 메모리 영역으로부터 제 1 프로세서의 캐시로 로드될지 또는 제 1 프로세서의 로컬 스토어로 로드될지를 나타내는 로드 위치 결정 필드를 갖는 페이지 디스크립터를 제 1 프로세서의 TLB(translation lookaside buffer, 변환 참조 버퍼)로 복사하는 제 1 TLB 예외 처리부; 및
상기 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인 경우, 그 페이지에 접근했던 제 2 프로세서의 캐시가 플러시되고 제 2 프로세서의 TLB가 무효화되도록 인터럽트 메시지를 제 2 프로세서로 전달하고, 제 2 프로세서의 응답에 따라 제 1 프로세서의 캐시를 플러시하고 상기 로드 위치 결정 필드를 수정하는 제 2 TLB 예외 처리부; 를 포함하는 멀티코어 시스템의 메모리 관리 장치.
- 제 1 항에 있어서,
정해진 일관성 프로토콜에 따라 페이지 일관성이 보장될 수 있도록 상기 제 1 및 제 2 프로세서의 로컬 스토어를 제어하는 일관성 보장부; 를 더 포함하는 멀티코어 시스템의 메모리 관리 장치.
- 제 1 항에 있어서, 상기 제 1 TLB 예외 처리부는
상기 페이지 디스크립터를 상기 TLB에 복사하는 동안 상기 페이지 디스크립터에 락(lock)을 설정하는 멀티코어 시스템의 메모리 관리 장치.
- 제 1 항에 있어서, 상기 제 2 TLB 예외 처리부는
상기 페이지를 적어도 2개의 프로세서가 접근하였고 그 중 적어도 하나의 프로세서가 쓰기 오퍼레이션을 위해 접근하였는지 여부에 따라 상기 페이지가 쓰기 공유 페이지인지 여부를 판단하는 멀티코어 시스템의 메모리 관리 장치.
- 제 1 항에 있어서, 상기 제 2 TLB 예외 처리부는
상기 제 2 프로세서의 응답에 따라, 제 1 또는 제 3 프로세서가 상기 페이지에 접근할 때 상기 페이지가 제 1 또는 제 3 프로세서의 로컬 스토어로 로드되도록 상기 로드 위치 결정 필드를 수정하는 멀티코어 시스템의 메모리 관리 장치.
- 제 1 항에 있어서, 상기 로드 위치 결정 필드는
적어도 하나의 비트 영역을 포함하는 멀티코어 시스템의 메모리 관리 장치.
- 제 2 항에 있어서, 상기 일관성 보장부는
어느 하나의 프로세서의 로컬 스토어에서 수정된 페이지를 다른 프로세서가 참조할 수 있도록 릴리스(release) 일관성 프로토콜에 따라 상기 수정된 페이지를 상기 메모리 영역에 반영하는 멀티코어 시스템의 메모리 관리 장치.
- 제 1 프로세서, 메모리 일관성을 제공하지 아니하는 제 1 캐시, 및 메모리 일관성을 제공하는 제 1 로컬 스토어를 포함하는 제 1 코어;
제 2 프로세서, 메모리 일관성을 제공하지 아니하는 제 2 캐시, 및 메모리 일관성을 제공하는 제 2 로컬 스토어를 포함하는 제 2 코어;
제 1 또는 제 2 프로세서가 접근하려는 페이지에 관한 페이지 디스크립터의 로드 위치 결정 비트에 따라 상기 페이지를 제 1 또는 제 2 캐시에 복사하거나 제 1 또는 제 2 로컬 스토어에 복사하는 메모리 관리부; 를 포함하는 멀티코어 시스템.
- 제 8 항에 있어서, 상기 메모리 관리부는
상기 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인 경우, 상기 로드 위치 결정 비트를 수정하는 멀티코어 시스템.
- 제 8 항에 있어서, 상기 메모리 관리부는
정해진 일관성 프로토콜에 따라 페이지 일관성이 보장될 수 있도록 상기 제 1 및 제 2 로컬 스토어를 제어하는 멀티코어 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100134895A KR101192423B1 (ko) | 2010-12-24 | 2010-12-24 | 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100134895A KR101192423B1 (ko) | 2010-12-24 | 2010-12-24 | 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120072952A KR20120072952A (ko) | 2012-07-04 |
KR101192423B1 true KR101192423B1 (ko) | 2012-10-18 |
Family
ID=46707536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100134895A KR101192423B1 (ko) | 2010-12-24 | 2010-12-24 | 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101192423B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216284A (ja) | 1999-11-25 | 2001-08-10 | Denso Corp | 電子制御装置 |
-
2010
- 2010-12-24 KR KR1020100134895A patent/KR101192423B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216284A (ja) | 1999-11-25 | 2001-08-10 | Denso Corp | 電子制御装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20120072952A (ko) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9665486B2 (en) | Hierarchical cache structure and handling thereof | |
US10552339B2 (en) | Dynamically adapting mechanism for translation lookaside buffer shootdowns | |
US7657710B2 (en) | Cache coherence protocol with write-only permission | |
JP2819982B2 (ja) | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム | |
US7539823B2 (en) | Multiprocessing apparatus having reduced cache miss occurrences | |
US8285969B2 (en) | Reducing broadcasts in multiprocessors | |
KR101677900B1 (ko) | 데이터 처리장치 내부의 로컬 캐시 구조에 발행된 액세스 연산을 처리하는 장치 및 방법 | |
KR101639672B1 (ko) | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 | |
JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
US7577794B2 (en) | Low latency coherency protocol for a multi-chip multiprocessor system | |
US5692149A (en) | Block replacement method in cache only memory architecture multiprocessor | |
US8700863B2 (en) | Computer system having a cache memory and control method of the same | |
US8095739B2 (en) | Barriers processing in a multiprocessor system having a weakly ordered storage architecture without broadcast of a synchronizing operation | |
US8949569B2 (en) | Enhanced direct memory access | |
US20140006716A1 (en) | Data control using last accessor information | |
GB2507759A (en) | Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache | |
CN110554975A (zh) | 提供死块预测以用于确定是否在cache设备中对数据高速缓存 | |
US20120124297A1 (en) | Coherence domain support for multi-tenant environment | |
WO2013186694A2 (en) | System and method for data classification and efficient virtual cache coherence without reverse translation | |
GB2427715A (en) | Managing snoop operations in a multiprocessor system | |
US8332592B2 (en) | Graphics processor with snoop filter | |
JP2022547484A (ja) | プロデューサからコンシューマへのアクティブな直接キャッシュ転送 | |
Mallya et al. | Simulation based performance study of cache coherence protocols | |
KR101192423B1 (ko) | 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 | |
US10489292B2 (en) | Ownership tracking updates across multiple simultaneous operations |
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 | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160217 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170925 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20181002 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20191001 Year of fee payment: 8 |