KR20120072952A - Multicore system and memory management device for multicore system - Google Patents
Multicore system and memory management device for multicore system Download PDFInfo
- Publication number
- KR20120072952A KR20120072952A KR1020100134895A KR20100134895A KR20120072952A KR 20120072952 A KR20120072952 A KR 20120072952A KR 1020100134895 A KR1020100134895 A KR 1020100134895A KR 20100134895 A KR20100134895 A KR 20100134895A KR 20120072952 A KR20120072952 A KR 20120072952A
- Authority
- KR
- South Korea
- Prior art keywords
- page
- processor
- memory
- cache
- tlb
- 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
Abstract
Description
다수의 프로세싱 코어를 포함하는 멀티코어 시스템 및 멀티코어 시스템의 일관성 정책 기술과 관련된다.It relates to the coherency policy techniques of multicore systems and multicore systems that include multiple processing cores.
일반적으로, 멀티코어 시스템이란 여러 개의 작업을 한 번에 처리하기 위해 두 개 이상의 프로세싱 코어를 가지고 있는 프로세서를 말한다. 멀티 코어 프로세서는 싱글 코어 프로세서에 비해 성능 및 소비 전력 절감 면에서 유리하기 때문에 최근 각광을 받고 있다.In general, a multicore system refers to a processor that has two or more processing cores to process several tasks at once. Multi-core processors have been in the spotlight recently because they are advantageous in terms of performance and power savings over single-core processors.
멀티코어 시스템에는 동일한 코어가 다수개 존재하는 대칭형 멀티코어 시스템(SMP, Symmetric Multi-Processing)과 DSP(Digital Processing Processor)나 GPU(Graphic Processing Unit) 등 GPP(General Purpose Processor)로 사용될 수 있는 다양한 이기종 코어들로 이루어진 비대칭 멀티코어 시스템(AMP, Asymmetric Multi-Processing)이 있다.Multi-core systems include a variety of heterogeneous types that can be used as symmetric multi-core systems (SMP, Symmetric Multi-Processing) with multiple cores, and General Purpose Processors (GPPs) such as Digital Processing Processors (DSPs) or Graphic Processing Units (GPUs). There is an asymmetric multi-processing system (AMP) consisting of cores.
멀티코어 시스템에서 각 프로세싱 코어는 독립적으로 태스크를 실행한다. 따라서 어떤 메모리 영역에 서로 다른 프로세싱 코어가 동시에 접근하는 경우 데이터 불일치가 발생할 수 있다. 이러한 데이터 불일치를 방지하기 위해 대부분의 멀티코어 시스템은 coherent cache architecture를 채택하고 있다. In a multicore system, each processing core executes a task independently. As a result, data inconsistencies may occur when different processing cores simultaneously access a memory area. To avoid such data inconsistencies, most multicore systems employ a coherent cache architecture.
대표적인 coherent cache architecture로는 snooping-based coherent cache와 directory-based coherent cache가 있다. Representative coherent cache architectures include snooping-based coherent cache and directory-based coherent cache.
Snooping-based coherent cache는 실제 상용 프로세서에서 가장 많이 쓰이고 있는 기법으로, 각 프로세싱 코어가 공유 버스에 연결되어 다른 프로세싱 코어가 어떤 메모리 블록에 어떤 접근을 하고 있는지를 snooping하는 방식으로 coherence를 제공한다. Snooping-based coherent cache의 경우, 공유 버스를 이용하여 모든 메모리 요청이 모든 프로세서에 전달되므로 확장성면에서 많은 수의 프로세싱 코어가 집적된 CMP(chip multi-process)에 적용하기엔 적합하지 않다.Snooping-based coherent caches are the most commonly used techniques in real-world processors, providing coherence by snooping which memory blocks are accessed by each processing core on a shared bus. In the case of snooping-based coherent caches, all memory requests are delivered to all processors using a shared bus, making them unsuitable for chip multi-process (CMP) integration with a large number of processing cores.
Directory-based coherent cache는 cache에 저장되는 메모리 블록마다 어떤 프로세싱 코어가 어떠한 권한으로 접근하고 있는지를 기록하는 directory가 존재하여 필요한 경우 해당 프로세싱 코어에만 coherent message를 보내는 기법이다. 따라서 snooping-based coherent cache보다 확장성이 좋다고 여겨지고 있으나 하드웨어 설계의 복잡도가 매우 높아서 이 역시 CMP에 적용하기에는 적절치 아니하다.Directory-based coherent cache is a technique that sends a coherent message to only those processing cores when there is a directory that records which processing core has access to what authority in each memory block stored in the cache. Therefore, scalability is better than snooping-based coherent cache, but the complexity of hardware design is so high that it is not suitable for CMP.
많은 수의 프로세싱 코어가 집적된 CMP에 적용가능한 멀티코어 시스템의 메모리 관리 장치 및 이러한 메모리 관리 장치가 적용된 멀티코어 시스템이 제공된다.A memory management apparatus of a multicore system applicable to a CMP in which a large number of processing cores are integrated, and a multicore system to which such a memory management apparatus is applied are provided.
본 발명의 일 양상에 따른 메모리 관리 장치는, 제 1 프로세서가 접근하려는 페이지를 지시하고 그 페이지가 메모리 영역으로부터 제 1 프로세서의 캐시로 로드될지 또는 제 1 프로세서의 로컬 스토어로 로드될지를 나타내는 로드 위치 결정 필드를 갖는 페이지 디스크립터를 제 1 프로세서의 TLB(translation lookaside buffer, 변환 참조 버퍼)로 복사하는 제 1 TLB 예외 처리부, 및 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인 경우, 그 페이지에 접근했던 제 2 프로세서의 캐시가 플러시되고 제 2 프로세서의 TLB가 무효화되도록 인터럽트 메시지를 제 2 프로세서로 전달하고, 제 2 프로세서의 응답에 따라 제 1 프로세서의 캐시를 플러시하고 로드 위치 결정 필드를 수정하는 제 2 TLB 예외 처리부를 포함할 수 있다.A memory management apparatus according to an aspect of the present invention is a load position indicating a page to be accessed by a first processor and indicating whether the page is loaded from a memory area into a cache of the first processor or into a local store of the first processor. A first TLB exception handler that copies the page descriptor with decision fields to the translation lookaside buffer (TLB) of the first processor, and a write-shared page where the page must ensure page coherence page), forward the interrupt message to the second processor so that the cache of the second processor that accessed the page is flushed and the TLB of the second processor is invalidated, and flush the cache of the first processor according to the response of the second processor. And a second TLB exception processing unit that modifies the load location determination field.
또한 본 발명의 일 양상에 따른 멀티코어 시스템은, 제 1 프로세서, 메모리 일관성을 제공하지 아니하는 제 1 캐시, 및 메모리 일관성을 제공하는 제 1 로컬 스토어를 포함하는 제 1 코어와, 제 2 프로세서, 메모리 일관성을 제공하지 아니하는 제 2 캐시, 및 메모리 일관성을 제공하는 제 2 로컬 스토어를 포함하는 제 2 코어 및, 제 1 또는 제 2 프로세서가 접근하려는 페이지에 관한 페이지 디스크립터의 로드 위치 결정 비트에 따라 페이지를 제 1 또는 제 2 캐시에 복사하거나 제 1 또는 제 2 로컬 스토어에 복사하는 메모리 관리부를 포함할 수 있다.In addition, a multicore system according to an aspect of the present invention may include a first core comprising a first processor, a first cache not providing memory consistency, and a first local store providing memory consistency, a second processor, A second core comprising a second cache that does not provide memory coherence, and a second local store that provides memory coherence, and according to the load position determination bits of the page descriptors regarding pages that the first or second processor is trying to access. It may include a memory management unit for copying the page to the first or second cache or to the first or second local store.
개시된 내용에 따르면, 프로세서에 의해 접근되는 페이지를 그 페이지의 일관성 보장 필요성에 따라 일관성 정책이 지원되는 로컬 스토어와 일관성 정책이 지원되지 아니하는 캐시에 선택적으로 로드하여 관리하기 때문에 불필요한 네트워크 트래픽을 줄이고 시스템 구조를 단순화시킬 수 있다.According to the disclosure, the system accesses the pages that are accessed by the processor by selectively loading and managing them in the local store where the consistency policy is supported and the cache where the consistency policy is not supported, according to the necessity of guaranteeing the consistency of the pages. The structure can be simplified.
도 1은 본 발명의 일 실시예에 따른 멀티코어 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 페이지 디스크립터의 로드 위치 결정 필드를 도시한다.
도 4 내지 도 7은 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 동작을 도시한다.1 illustrates a multicore system according to one embodiment of the invention.
2 illustrates a memory management apparatus of a multicore system according to an exemplary embodiment of the present invention.
3 illustrates a load position determination field of a page descriptor according to an embodiment of the present invention.
4 through 7 illustrate a memory management operation of a multicore system according to an embodiment of the present invention.
가상 메모리에서 프로세서가 접근하는 가상 메모리 영역은 페이지 단위로 나누어진다. 이러한 페이지 중 실제로 일관성(coherence)이 보장되어야 하는 페이지는 다수의 프로세서가 접근하고, 그 중 적어도 하나의 프로세서가 해당 page에 write operation을 수행하는 경우가 될 수 있다. 이러한 페이지를 쓰기 공유 페이지라 칭한다.The virtual memory area accessed by the processor in the virtual memory is divided into pages. Among these pages, a page in which coherence should be guaranteed is accessed by a plurality of processors, and at least one of the pages may perform a write operation on the page. Such a page is called a write shared page.
본 발명의 일 양상에 따른 메모리 시스템 설계에 따라, 쓰기 공유 페이지에 대한 일관성은 로컬 스토어에 의해 제공될 수 있다. 로컬 스토어는 소프트웨어에 의해 제어되는 각 프로세서의 임시 저장소가 될 수 있다. 이 로컬 스토어는 하드웨어에 의해 제어되는 캐시와는 다르다. According to a memory system design in accordance with an aspect of the present invention, consistency for write shared pages may be provided by a local store. The local store can be a temporary store for each processor controlled by software. This local store is different from the cache controlled by the hardware.
각 프로세서의 페이지 요청은 TLB(translation lookaside buffer)로 복사되는 페이지 디스크립터에 의해 이루어지며, 페이지 디스크립터는 해당 페이지가 로컬 스토어로 로드되어야 하는지 또는 일관성을 제공하지 아니하는 캐시로 로드되어야 하는지를 나타내는 특정 필드를 포함할 수 있다.Each processor's page request is made by a page descriptor that is copied into a translation lookaside buffer (TLB), which contains a specific field that indicates whether the page should be loaded into the local store or into a cache that does not provide consistency. It may include.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다. Hereinafter, specific examples for carrying out the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 멀티코어 시스템을 도시한다.1 illustrates a multicore system according to one embodiment of the invention.
도 1을 참조하면, 멀티코어 시스템(100)은 다수의 코어(110), 메모리 관리부(120), 및 메인 메모리(130)를 포함한다. Referring to FIG. 1, the
각각의 코어(110)는 타일(tile) 또는 메쉬(mesh) 구조로 연결된다. 각각의 코어(110)는 페이지 단위로 메인 메모리(130)의 메모리 블록에 접근한다. 메모리 관리부(120)는 페이지 일관성(page coherence)이 보장되면서 코어(110)들이 메인 메모리(130)의 특정 페이지에 접근하여 읽기/쓰기 동작을 실행할 수 있도록 각종 예외 처리와 코어(110)의 동작을 제어한다. Each
각각의 코어(110)는 프로세서(111), TLB(112, 113), L1 캐시(114, 115), L2 캐시(116), 로컬 스토어(117), DMA(118), 및 라우터/스위치(119)를 포함한다.Each
프로세서(111)는 TLB(tranlation lookaside buffer, 변환 참조 버퍼)(112, 113)에 저장된 페이지 디스크립터(page descriptor)를 통해 메인 메모리(130)의 페이지에 접근한다. The processor 111 accesses a page of the
TLB(112, 113)는 프로세서(111)가 접근하려는 페이지에 관한 페이지 디스크립터를 저장한다. TLB(112, 113)는 인스트럭션과 관련된 페이지의 페이지 디스크립터가 저장되는 I-TLB(112)와 데이터와 관련된 페이지의 페이지 디스크립터가 저장되는 D-TLB(113)로 구분될 수 있다.The
L1 캐시(114, 115)는 프로세서(111)가 접근하려는 페이지를 임시로 저장한다. 프로세서(111)는 L1 캐시(114, 115)를 통해 빠르게 페이지에 접근하는 것이 가능하다. L1 캐시(114, 115)는 인스트럭션과 관련된 페이지가 저장되는 L1 인스트럭션 캐시(114)와 데이터와 관련된 페이지가 저장되는 L1 데이터 캐시(115)로 구분될 수 있다. The L1 caches 114 and 115 temporarily store pages that the processor 111 wants to access. The processor 111 may quickly access a page through the
L1 데이터 캐시(115)는 데이터 일관성(data coherence)를 제공하지 아니할 수 있다. 다시 말해, 프로세서(111)가 L1 데이터 캐시(115)를 통해 페이지에 접근하는 경우, 프로세서(111)는 데이터 일관성을 고려하지 않고 자유롭게 데이터를 읽고 쓰는 것이 가능하다. The
L2 캐시(116)는 프로세서(111)가 접근하려는 페이지를 임시로 저장한다. L2 캐시(116)는 다른 코어에 존재하는 프로세서가 공유할 수 있는 캐시로서, Non-Unified Cache Access(NUCA)로 구성될 수 있다. 즉 L2 캐시(116)는 슬라이스로 나누어져서 각 코어(110)에 분산배치될 수 있다. The
로컬 스토어(117)는 프로세서(111)가 접근하려는 페이지를 임시로 저장한다. 로컬 스토어(117)는 메모리 관리부(120)에 의해 관리되며, 메모리 관리부(120)의 관리에 의해 데이터 일관성을 제공할 수 있다. 다시 말해, 프로세서(111)가 로컬 스토어(117)를 통해 페이지에 접근하는 경우, 프로세서(111)에 의해 접근된 페이지는 메모리 관리부(120)에 의해 페이지 일관성이 보장될 수 있다. The
DMA(118)는 메인 메모리(130)와 로컬 스토어(117) 간의 데이터 전송을 관리하고, 라우터/스위치(119)는 코어(110)간의 네트워크 메시지를 전송 및 수신한다.The DMA 118 manages data transfer between the
본 실시예에 따라, 어떤 코어(110)의 프로세서(111)가 접근하려고 하는 페이지는 캐시(예컨대, 115) 또는 로컬 스토어(117)로 로드될 수 있다. 페이지가 캐시(115)로 로드될지 또는 로컬 스토어(117)로 로드될지는 그 페이지에 관한 페이지 디스크립터의 특정 필드에 따라 결정될 수 있다. 또한 본 실시예에 따라, 캐시(115)는 페이지 일관성을 제공하지 아니하고 로컬 스토어(117)는 페이지 일관성을 제공할 수 있다. According to the present embodiment, a page that a processor 111 of a
따라서 어떤 페이지에 대한 페이지 일관성 보장의 필요성에 따라 그 페이지의 페이지 디스크립터의 특정 필드가 적절히 조절되고, 그에 따라 페이지의 로드 위치가 캐시(117) 또는 로컬 스토어(117)로 결정되기 때문에 페이지 일관성을 제공하면서도 일관성 보장을 위한 네트워크 트래픽을 줄일 수 있다. This provides page consistency because certain fields in the page descriptor of that page are appropriately adjusted according to the need for ensuring page consistency for a page, and therefore the load location of the page is determined by the
도 2는 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 관리 장치를 도시한다. 이것은 도 1의 메모리 관리부(120) 또는 DMA(118)의 일부 구성에 관한 일 예가 될 수 있다.2 illustrates a memory management apparatus of a multicore system according to an exemplary embodiment of the present invention. This may be an example of some configurations of the
도 1 및 도 2를 참조하면, 메모리 관리 장치(200)는 예외 처리부(201)와 일관성 보장부(202)를 포함한다.1 and 2, the
예외 처리부(201)는 프로세서(111)가 어떤 페이지에 접근하기 위해 D-TLB(113)를 참조하였을 때 해당 페이지의 페이지 디스크립터가 D-TLB(113)에 존재하지 않는 경우 호출될 수 있다. When the processor 111 refers to the D-
예외 처리부(201)는 제 1 예외 처리부(211) 및 제 2 예외 처리부(212)를 포함할 수 있다. The
제 1 예외 처리부(211)는 프로세서(111)가 접근하려는 페이지의 페이지 디스크립터를 D-TLB(113)로 복사한다. 이때, 페이지 디스크립터는, 본 발명의 일 실시예에 따라, 소정의 로드 위치 결정 필드를 가질 수 있다. 로드 위치 결정 필드는 하나 또는 두개의 비트 영역으로 구성될 수 있다. 로드 위치 결정 필드는 페이지 디스크립터가 지시하는 페이지가 L1 데이터 캐시(115)로 로드될지 또는 로컬 스토어(117)로 로드될지 여부를 나타낸다. The first
또한 본 발명의 일 양상에 따라, 제 1 예외 처리부(211)는 페이지 디스크립터를 복사하는 동안 페이지 디스크립터의 락(lock)을 설정하였다가 예외 처리가 끝나면 락을 해제할 수 있다.In addition, according to an aspect of the present invention, the first
제 2 예외 처리부(212)는 페이지 디스크립터가 지시하는 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인지 여부를 판단한다. 예컨대, 제 2 예외 처리부(212)는 그 페이지로 다수의 프로세서가 접근하였고 그 중 적어도 하나의 프로세서가 쓰기 동작을 위해 접근한 경우 해당 페이지를 쓰기 공유 페이지로 설정할 수 있다.The
페이지가 쓰기 공유 페이지인 경우, 제 2 예외 처리부(212)는 인터럽트 메시지를 생성하고, 생성된 인터럽트 메시지를 그 페이지에 접근했던 다른 프로세서들에게 전달하고, 다른 프로세서들로부터 그 메시지에 대한 응답을 받을 때까지 대기한다. 생성된 인터럽트 메시지는 해당 페이지에 접근했던 다른 프로세서들의 캐시가 플러시되고 TLB가 무효화되도록 하는 요청 메시지가 될 수 있다.If the page is a write shared page, the
인터럽트 메시지를 수신한 각 프로세서들은 자신의 캐시를 플러시(무효화 포함)하고 또한 자신의 TLB를 무효화한 후 응답 메시지를 보낸다. 응답 메시지에 따라 제 2 예외 처리부(212)는 프로세서(111)의 L1 데이터 캐시(115)를 플러시하고 페이지 디스크립터의 로드 위치 결정 필드를 수정한다.Each processor that receives the interrupt message flushes its cache (including invalidation), invalidates its TLB, and sends a response message. According to the response message, the
일관성 보장부(202)는 정해진 일관성 프로토콜에 따라 페이지 일관성이 보장될 수 있도록 각 코어(110)의 로컬 스토어(117)를 제어한다. 예컨대, 일관성 보장부는 릴리스 일관성 프로토콜에 따라 특정한 시점에 로컬 스토어(117)의 내용이 메인 메모리(130)에 반영되도록 하거나 쓰기 공유 페이지를 접근한 프로세서들의 D-TLB(113)를 무효화시키는 것이 가능하다.The
도 3은 본 발명의 일 실시예에 따른 페이지 디스크립터의 로드 위치 결정 필드를 도시한다.3 illustrates a load position determination field of a page descriptor according to an embodiment of the present invention.
도 3을 참조하면, 페이지 디스크립터의 유후 비트 영역에 C 비트와 L 비트가 지정될 수 있다. 예컨대, 로드 위치 결정 비트 11은 페이지 디스크립터가 지시하는 페이지의 로드 위치가 L1 캐시 및 L2 캐시임을 나타낸다. 로드 위치 결정 비트 10은 페이지 디스크립터가 지시하는 페이지의 로드 위치가 L2 캐시임을 나타낸다. 로드 위치 결정 비트 01은 페이지 디스크립터가 지시하는 페이지의 로드 위치가 로컬 스토어임을 나타낸다. 로드 위치 결정 비트 11은 페이지 디스크립터가 지시하는 페이지가 캐시 또는 로컬 스토어를 통하지 않고 직접 프로세서에 의해 접근됨을 나타낸다. 도 3에서, 로드 위치 결정 비트의 초기 디폴트 값은 11로 주어질 수 있다.Referring to FIG. 3, C bits and L bits may be designated in the rich bit area of the page descriptor. For example, load position determination bit 11 indicates that the load position of the page indicated by the page descriptor is L1 cache and L2 cache. The load position determination bit 10 indicates that the load position of the page indicated by the page descriptor is the L2 cache. The load position determination bit 01 indicates that the load position of the page indicated by the page descriptor is a local store. Load position determination bit 11 indicates that the page indicated by the page descriptor is accessed by the processor directly, rather than via a cache or local store. In FIG. 3, the initial default value of the load positioning bit may be given as 11.
도 4 내지 도 7은 본 발명의 일 실시예에 따른 멀티코어 시스템의 메모리 장치에 대한 동작을 도시한다.4 through 7 illustrate an operation of a memory device of a multicore system according to an exemplary embodiment of the present invention.
도 2 및 도 4에서, 프로세서 #1이 페이지 A(401)를 읽기 위하여 D-TLB(410)를 참조하였으나, TLB miss가 발생하여 예외 처리부(201)가 호출되었다. 예외 처리부(201)는 메모리 영역(130)에서 페이지 A(401)의 페이지 디스크립터(402)를 프로세서 #1의 D-TLB(410)로 복사한다. In FIG. 2 and FIG. 4, the
이때, 예외 처리부(201)는 페이지 디스크립터(402)가 D-TLB(410)로 복사되고 해당 페이지가 로드될 때까지 페이지 디스크립터(402)에 락(lock)을 설정하는 것이 가능하다. In this case, the
페이지 디스크립터(402)가 D-TLB(410)로 복사되면, 프로세서 #1은 캐시(420) 또는 로컬 스토어(430)를 통해 페이지 A(401)로 접근한다. 이때 페이지 디스크립터(402)의 로드 위치 결정 필드가 디폴트 값인 '1'이므로, 페이지 A(401)는 캐시(420)로 로드된다. Once the
페이지 A(401)가 로드되면, 예외 처리부(201)는 페이지 A(401)가 쓰기 공유 페이지(write-shared page)인지 여부를 판단한다. 예컨대, 예외 처리부(201)는 로드 위치 결정 필드가 '1'인 페이지 디스크립터(402)에 의해 지시되는 페이지에 대하여, 해당 페이지로 다수의 프로세서가 접근하였는지 여부 및 접근한 프로세서 중 적어도 하나의 프로세서가 쓰기 동작을 위해 접근하였는지 여부에 따라 페이지 A(401)가 쓰기 공유 페이지인지 여부를 판단할 수 있다. 페이지 A(401)로 프로세서 #1만 접근한 상태이므로 페이지 A(401)는 쓰기 공유 페이지가 아니다. When the
이어서 도 2 및 도 5에서, 프로세서 #2가 페이지 A(501)를 쓰기 위하여 D-TLB(510)를 참조하였으나, TLB miss가 발생하여 예외 처리부(201)가 호출되었다. 예외 처리부(201)는 메모리 영역(130)에서 페이지 A(501)의 페이지 디스크립터(502)를 프로세서 #2의 D-TLB(510)로 복사한다. Subsequently, in FIG. 2 and FIG. 5, the
페이지 디스크립터(502)가 D-TLB(510)로 복사되면, 프로세서 #2는 캐시(520) 또는 로컬 스토어(530)를 통해 페이지 A(501)로 접근한다. 이때 페이지 디스크립터(502)의 로드 위치 결정 필드가 디폴트 값인 '1'이므로, 페이지 A(501)는 캐시(520)로 로드된다. Once
페이지 A(501)가 로드되면, 예외 처리부(201)는 페이지 A(501)가 쓰기 공유 페이지(write-shared page)인지 여부를 판단한다. 예컨대, 도 4에서 프로세서 #1이 이미 페이지 A(401)에 접근하였고, 이후 도 5에서 프로세서 #2가 동일한 페이지 A(501)에 대해 쓰기 동작을 수행하였으므로, 예외 처리부(201)는 페이지 A(501)가 쓰기 공유 페이지인 것으로 판단할 수 있다. When the
페이지 A(501)가 쓰기 공유 페이지로 결정된 경우, 예외 처리부(201)는 페이지 A(501)에 접근했던 다른 프로세서, 즉 프로세서 #1로 인터럽트 메시지를 전송한다. 이 인터럽트 메시지를 수신한 프로세서 #1은, 도 4에서, 캐시(420)에 저장된 페이지 A를 무효화(invalidation) 및 플러시(flush)하고, TLB(410)에 저장된 페이지 디스크립터를 무효화한다. 그리고 프로세서 #1은 프로세서 #2로 응답 메시지를 보낸다. When page A 501 is determined to be a write shared page, the
또한 프로세서 #1의 응답 메시지에 따라, 예외 처리부(201)는, 도 5에서, 캐시(520)에 저장된 페이지 A를 무효화(invalidation) 및 플러시(flush)하고, 페이지 디스크립터(502)의 로드 위치 결정 필드를 '0'으로 변경한다.In addition, in response to the response message of the
이어서 도 2 및 도 6에서, 프로세서 #1이 다시 페이지 A(601)에 접근하려고 하면 도 4 및 도 5를 통해 TLB(610)가 무효화된 상태이기 때문에 다시 TLB miss가 발생된다. TLB miss에 따라 호출된 예외 처리부(201)는 페이지 A(601)의 페이지 디스크립터(602)를 프로세서 #1의 TLB(610)로 복사한다. Subsequently, in FIGS. 2 and 6, when
페이지 디스크립터(602)가 D-TLB(610)로 복사되면, 프로세서 #1은 캐시(620) 또는 로컬 스토어(630)를 통해 페이지 A(601)로 접근한다. 이때 페이지 디스크립터(602)의 로드 위치 결정 필드가 도 6을 통해 '0'으로 변경되었으므로, 페이지 A(601)는 로컬 스토어(630)로 로드된다.Once
또한 도 2 및 도 7에서, 프로세서 #3이 페이지 A(701)에 접근하는 경우, 도 6과 마찬가지로 페이지 A(701)의 페이지 디스크립터(702)가 프로세서 #3의 TLB(710)로 복사되고, 페이지 A(701)가 로컬 스토어(730)로 로드되는 것이 가능하다.2 and 7, when
도 6과 도 7을 참조하면, 동일한 페이지 A(601)(701)가 프로세서 #1의 로컬 스토어(630) 및 프로세서 #3의 로컬 스토어(730)에 동시에 로드되어 있으므로, 프로세서의 동작에 따라 페이지(601)(701)에 일관성(coherence)이 보장되지 아니할 수도 있다. 6 and 7, since the
도 2, 도 6 및 도 7에서, 일관성 보장부(202)는 프로세서 #1의 로컬 스토어(630) 및 프로세서 #3의 로컬 스토어(730)를 제어해서 페이지 일관성이 보장되도록 한다. 다시 말해, 일관성 보장부(202)는 정해진 일관성 정책(coherent protocol)에 따라 어느 하나의 프로세서가 변경한 내용을 특정한 시점에 다른 프로세서가 볼 수 있게 하는 것이 가능하다. 2, 6, and 7, the
예컨대, 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)는 그 밖에도 다른 일관성 정책에 따라 각 로컬 스토어 및 각 프로세서의 페이지 접근 순서를 제어할 수 있음은 물론이다. For example, according to the release consistency model, in FIG. 6, the local store (eg, FIG. 5 of FIG. 5) reflects the contents of the
도 5 내지 도 7과 같은 과정이 반복되면, 실제로 일관성이 보장되어야 하는 페이지에 대해서만 선택적으로 로컬 스토어를 통해 일관성 보장을 위한 동작이 수행되는 것을 알 수 있다. 즉 프로세서에 의해 접근되는 페이지를 그 페이지의 일관성 보장 필요성에 따라 일관성 정책이 지원되는 로컬 스토어와 일관성 정책이 지원되지 아니하는 캐시에 선택적으로 로드하여 관리하기 때문에 불필요한 네트워크 트래픽을 줄이고 시스템 구조를 단순화시킬 수 있다. When the process as shown in FIGS. 5 to 7 is repeated, it can be seen that an operation for guaranteeing consistency is selectively performed through the local store only for pages that need to be guaranteed. In other words, the pages accessed by the processor are selectively loaded and managed according to the necessity of ensuring the consistency of the pages in the local store with the consistency policy and the cache without the consistency policy, thereby reducing unnecessary network traffic and simplifying the system structure. Can be.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.Meanwhile, the embodiments of the present invention can be embodied as computer readable codes on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device and the like, and also a carrier wave (for example, transmission via the Internet) . In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present invention can be easily deduced by programmers skilled in the art to which the present invention belongs.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.Furthermore, the above-described embodiments are intended to illustrate the present invention by way of example and the scope of the present invention will not be limited to the specific embodiments.
Claims (10)
상기 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인 경우, 그 페이지에 접근했던 제 2 프로세서의 캐시가 플러시되고 제 2 프로세서의 TLB가 무효화되도록 인터럽트 메시지를 제 2 프로세서로 전달하고, 제 2 프로세서의 응답에 따라 제 1 프로세서의 캐시를 플러시하고 상기 로드 위치 결정 필드를 수정하는 제 2 TLB 예외 처리부; 를 포함하는 멀티코어 시스템의 메모리 관리 장치.
A TLB of the first processor with a page descriptor having a load positioning field indicating whether the first processor is to access the page and whether the page is to be loaded from the memory area into the cache of the first processor or into the local store of the first processor. a first TLB exception processing unit for copying to a translation lookaside buffer; And
If the page is a write-shared page where page coherence should be ensured, an interrupt message is issued to flush the cache of the second processor that accessed the page and invalidate the TLB of the second processor. A second TLB exception processing unit for transmitting to a second processor, flushing the cache of the first processor and modifying the load location determination field according to a response of the second processor; Memory management apparatus of a multicore system comprising a.
정해진 일관성 프로토콜에 따라 페이지 일관성이 보장될 수 있도록 상기 제 1 및 제 2 프로세서의 로컬 스토어를 제어하는 일관성 보장부; 를 더 포함하는 멀티코어 시스템의 메모리 관리 장치.
The method of claim 1,
A consistency guarantee unit controlling local stores of the first and second processors to ensure page consistency according to a predetermined consistency protocol; Memory management apparatus of the multi-core system further comprising.
상기 페이지 디스크립터를 상기 TLB에 복사하는 동안 상기 페이지 디스크립터에 락(lock)을 설정하는 멀티코어 시스템의 메모리 관리 장치.
The method of claim 1, wherein the first TLB exception processing unit
And setting a lock on the page descriptor while copying the page descriptor to the TLB.
상기 페이지를 적어도 2개의 프로세서가 접근하였고 그 중 적어도 하나의 프로세서가 쓰기 오퍼레이션을 위해 접근하였는지 여부에 따라 상기 페이지가 쓰기 공유 페이지인지 여부를 판단하는 멀티코어 시스템의 메모리 관리 장치.
The method of claim 1, wherein the second TLB exception processing unit
And determining whether the page is a write shared page according to whether at least two processors have accessed the page and at least one of the processors has accessed the write operation.
상기 제 2 프로세서의 응답에 따라, 제 1 또는 제 3 프로세서가 상기 페이지에 접근할 때 상기 페이지가 제 1 또는 제 3 프로세서의 로컬 스토어로 로드되도록 상기 로드 위치 결정 필드를 수정하는 멀티코어 시스템의 메모리 관리 장치.
The method of claim 1, wherein the second TLB exception processing unit
In response to the response of the second processor, a memory of a multicore system that modifies the load location determination field so that the page is loaded into the local store of the first or third processor when the first or third processor accesses the page. Management device.
적어도 하나의 비트 영역을 포함하는 멀티코어 시스템의 메모리 관리 장치.
The method of claim 1, wherein the load position determination field is
Memory management apparatus of a multicore system including at least one bit area.
어느 하나의 프로세서의 로컬 스토어에서 수정된 페이지를 다른 프로세서가 참조할 수 있도록 릴리스(release) 일관성 프로토콜에 따라 상기 수정된 페이지를 상기 메모리 영역에 반영하는 멀티코어 시스템의 메모리 관리 장치.
The method of claim 2, wherein the consistency guarantee unit
The memory management apparatus of the multi-core system reflects the modified page in the memory region according to the release coherence protocol so that the modified page in the local store of one processor can refer to.
제 2 프로세서, 메모리 일관성을 제공하지 아니하는 제 2 캐시, 및 메모리 일관성을 제공하는 제 2 로컬 스토어를 포함하는 제 2 코어;
제 1 또는 제 2 프로세서가 접근하려는 페이지에 관한 페이지 디스크립터의 로드 위치 결정 비트에 따라 상기 페이지를 제 1 또는 제 2 캐시에 복사하거나 제 1 또는 제 2 로컬 스토어에 복사하는 메모리 관리부; 를 포함하는 멀티코어 시스템.
A first core comprising a first processor, a first cache that does not provide memory coherency, and a first local store that provides memory coherency;
A second core comprising a second processor, a second cache not providing memory coherency, and a second local store providing memory coherency;
A memory manager configured to copy the page to the first or second cache or to the first or second local store according to the load position determination bits of the page descriptor regarding the page to be accessed by the first or second processor; Multicore system comprising a.
상기 페이지가 페이지 일관성(page coherence)이 보장되어야 하는 쓰기 공유 페이지(write-shared page)인 경우, 상기 로드 위치 결정 비트를 수정하는 멀티코어 시스템.
8. The memory device of claim 7, wherein the memory manager
And modifying the load location determination bits when the page is a write-shared page where page coherence should be guaranteed.
정해진 일관성 프로토콜에 따라 페이지 일관성이 보장될 수 있도록 상기 제 1 및 제 2 로컬 스토어를 제어하는 멀티코어 시스템.8. The memory device of claim 7, wherein the memory manager
And controlling the first and second local stores to ensure page consistency according to a given consistency protocol.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100134895A KR101192423B1 (en) | 2010-12-24 | 2010-12-24 | Multicore system and Memory management device for multicore system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100134895A KR101192423B1 (en) | 2010-12-24 | 2010-12-24 | Multicore system and Memory management device for multicore system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120072952A true KR20120072952A (en) | 2012-07-04 |
KR101192423B1 KR101192423B1 (en) | 2012-10-18 |
Family
ID=46707536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100134895A KR101192423B1 (en) | 2010-12-24 | 2010-12-24 | Multicore system and Memory management device for multicore system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101192423B1 (en) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216284A (en) | 1999-11-25 | 2001-08-10 | Denso Corp | Electronic control unit |
-
2010
- 2010-12-24 KR KR1020100134895A patent/KR101192423B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101192423B1 (en) | 2012-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9665486B2 (en) | Hierarchical cache structure and handling thereof | |
US7657710B2 (en) | Cache coherence protocol with write-only permission | |
US10552339B2 (en) | Dynamically adapting mechanism for translation lookaside buffer shootdowns | |
US9792210B2 (en) | Region probe filter for distributed memory system | |
JP2819982B2 (en) | Multiprocessor system with cache match guarantee function that can specify range | |
US8285969B2 (en) | Reducing broadcasts in multiprocessors | |
US9390012B2 (en) | Multi-core processor system, cache coherency control method, and computer product | |
US7539823B2 (en) | Multiprocessing apparatus having reduced cache miss occurrences | |
US7577794B2 (en) | Low latency coherency protocol for a multi-chip multiprocessor system | |
JP2010507160A (en) | Processing of write access request to shared memory of data processor | |
US6330643B1 (en) | Cache coherency protocols with global and local posted operations | |
US5692149A (en) | Block replacement method in cache only memory architecture multiprocessor | |
KR101677900B1 (en) | Apparatus and method for handling access operations issued to local cache structures within a data processing apparatus | |
US9372803B2 (en) | Method and system for shutting down active core based caches | |
US20050005074A1 (en) | Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes | |
JP2008525901A (en) | Early prediction of write-back of multiple owned cache blocks in a shared memory computer system | |
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 | |
US20120124297A1 (en) | Coherence domain support for multi-tenant environment | |
GB2427715A (en) | Managing snoop operations in a multiprocessor system | |
JP4577729B2 (en) | System and method for canceling write back processing when snoop push processing and snoop kill processing occur simultaneously in write back cache | |
JP2001282764A (en) | Multiprocessor system | |
US8332592B2 (en) | Graphics processor with snoop filter | |
JP2005141606A (en) | Multiprocessor system |
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 |