KR101043199B1 - Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory - Google Patents
Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory Download PDFInfo
- Publication number
- KR101043199B1 KR101043199B1 KR1020100006038A KR20100006038A KR101043199B1 KR 101043199 B1 KR101043199 B1 KR 101043199B1 KR 1020100006038 A KR1020100006038 A KR 1020100006038A KR 20100006038 A KR20100006038 A KR 20100006038A KR 101043199 B1 KR101043199 B1 KR 101043199B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- core
- data
- request signal
- cache memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
본 발명은 캐시 메모리 제어 기술에 관한 것으로, 보다 상세하게는 멀티 코어용 캐시 회로, 이를 포함하는 캐시 장치, 반도체 장치 및 캐시 메모리 제어 방법에 관한 것이다.The present invention relates to a cache memory control technique, and more particularly, to a cache circuit for a multi-core, a cache device including the same, a semiconductor device and a cache memory control method.
기술이 발전함에 따라 프로세서의 동작속도가 메인 메모리의 동작속도에 비해 빠르게 되면서, 프로세서와 메인 메모리의 속도 차에 의한 문제를 해결하기 위해 용량은 작지만 고속인 캐시 메모리가 사용되고 있다. 또한 하나의 프로세서 내에 복수의 코어를 구비하여 복수의 코어들이 작업을 분담하여 처리하는 멀티 코어(multi-core) 프로세서들이 개발되었다. 멀티 코어 프로세서 시스템에서는 복수의 코어들이 상응하는 캐시 컨트롤러들에 각각 연결되고, 상기 상응하는 캐시 컨트롤러는 캐시 메모리들을 각각 제어한다. 또한 멀티 코어 환경에서의 캐시 컨트롤러는 각 코어들 사이의 공유 데이터에 대한 일관성(coherence)을 유지하기 위해 일관성 관리부(coherence management unit, CMU)를 포함할 수 있다.As technology advances, the operating speed of the processor is faster than that of the main memory, and a small but high speed cache memory is used to solve the problem caused by the speed difference between the processor and the main memory. In addition, multi-core processors have been developed in which a plurality of cores are provided in one processor and a plurality of cores share and process tasks. In a multi-core processor system a plurality of cores are each connected to corresponding cache controllers, the corresponding cache controllers respectively controlling cache memories. In addition, the cache controller in a multi-core environment may include a coherence management unit (CMU) to maintain coherence of shared data between cores.
일반적으로 일관성을 유지하기 위해 각 캐시 메모리들 간의 라인 상태 정보를 포함하는 MESI 프로토콜이 채택된다. MESI 프로토콜 하에서 캐시 메모리의 각 라인들은 수정 상태(Modified, M), 배타 상태(Exclusive, E), 공유 상태(Shared, S) 및 무효 상태(Invalid, I)의 네 가지 상태로 표현될 수 있다. 하지만, 상기와 같은 MESI 프로토콜을 적용하고 캐시 라인들 간의 라인 공유 정보를 나타내기 위해서는 복잡한 제어 과정이 추가되어야 하고, 따라서 캐시 컨트롤러의 구조가 복잡해지고 제조 비용이 증가한다.In general, MESI protocols are employed that include line state information between cache memories to maintain consistency. Under the MESI protocol, each line of the cache memory may be represented in four states: modified state (Modified, M), exclusive state (Exclusive, E), shared state (Shared, S), and invalid state (Invalid, I). However, in order to apply the MESI protocol and display line sharing information between cache lines, a complicated control process must be added, thus increasing the complexity of the structure of the cache controller and increasing the manufacturing cost.
또한 상기와 같은 MESI 프로토콜에 따라 캐시 메모리들 간의 라인 상태 정보를 나타내고 관리하기 위해서는, 복수의 코어들간의 일관성을 유지하기 위한 일관성 관리부와 각 캐시 컨트롤러들 사이의 라인 상태 정보에 대한 동기화를 유지하기 위한 트래픽이 추가적으로 요구된다.In addition, in order to represent and manage line state information between cache memories according to the MESI protocol as described above, a consistency management unit for maintaining consistency among a plurality of cores and a synchronization state for maintaining line state information between cache controllers may be provided. Additional traffic is required.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 싱글 코어용 캐시 컨트롤러를 이용하여 구조가 간단하고 트래픽을 감소시킬 수 있는 멀티 코어용 캐시 회로를 제공하는 것이다.One object of the present invention for solving the above problems is to provide a cache circuit for multi-core using a single-core cache controller is simple in structure and can reduce traffic.
본 발명의 다른 목적은 저렴하고 구조가 간단하고 트래픽을 감소시킬 수 있는 멀티 코어용 캐시 회로를 포함하는 캐시 장치 및 반도체 장치를 제공하는 것이다.Another object of the present invention is to provide a cache device and a semiconductor device including a cache circuit for multi-core which is inexpensive, simple in structure, and which can reduce traffic.
본 발명의 또 다른 목적은 구조가 간단하고 트래픽을 감소시킬 수 있는 멀티 코어용 캐시 메모리 제어 방법을 제공하는 것이다.It is still another object of the present invention to provide a cache memory control method for multi-cores that is simple in structure and can reduce traffic.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함되고, 상기 복수의 코어들 중 하나와 연결된 캐시 회로는 캐시 메모리부, 싱글 코어용 캐시 컨트롤러 및 커맨드 처리부를 포함한다. 상기 캐시 메모리부는 복수의 캐시 라인들을 포함하고, 데이터, 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장한다. 상기 싱글 코어용 캐시 컨트롤러는 상기 복수의 코어들 중 상기 캐시 회로와 연결된 코어로부터 수신된 요청 신호에 기초하여 데이터 요청 신호를 제공하고, 상기 데이터 요청 신호에 대응하는 상기 캐시 메모리부의 데이터를 상기 캐시 회로와 연결된 상기 코어에 제공한다. 상기 커맨드 처리부는 외부로부터 입력된 변경 신호에 기초하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 상태 변경 신호를 제공하고, 상기 캐시 메모리부에 저장된 상기 데이터 중 일부를 상기 외부로 제공한다.In order to achieve the above object of the present invention, it is included in a multi-core semiconductor device having a plurality of cores according to an embodiment of the present invention, the cache circuit connected to one of the plurality of cores is a cache memory unit, single It includes a core cache controller and a command processor. The cache memory unit includes a plurality of cache lines, and stores data, tag information, and state information of the cache lines. The cache controller for the single core provides a data request signal based on a request signal received from a core connected to the cache circuit among the plurality of cores, and stores the data in the cache memory unit corresponding to the data request signal in the cache circuit. To the core connected with. The command processor provides a state change signal for changing state information of some of the cache lines based on a change signal input from the outside, and provides a portion of the data stored in the cache memory unit to the outside.
실시예에 있어서, 상기 캐시 라인들의 상태 정보는 상기 캐시 메모리부에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩될 수 있다.In example embodiments, the state information of the cache lines may be encoded regardless of whether the data stored in the cache memory unit is shared.
실시예에 있어서, 상기 데이터 요청 신호 및 상기 상태 변경 신호 중 하나를 선택하여 상기 캐시 메모리부에 제공하는 선택부를 더 포함할 수 있다. 상기 캐시 메모리부는 상기 복수의 캐시 라인들을 포함하고 상기 데이터를 저장하는 캐시 메모리; 및 상기 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장하는 태그 메모리를 포함할 수 있다.The method may further include a selector configured to select one of the data request signal and the state change signal and provide the selected one to the cache memory unit. The cache memory unit includes a plurality of cache lines and cache memory for storing the data; And a tag memory configured to store the tag information and state information of the cache lines.
실시예에 있어서, 상기 데이터 요청 신호는 상기 캐시 메모리에 저장된 상기 데이터를 요청하는 제1 데이터 요청 신호 및 상기 제1 데이터 요청 신호에 대응하여 상기 태그 메모리를 제어하는 제2 데이터 요청 신호를 포함하고, 상기 상태 변경 신호는 상기 캐시 라인들의 상태 정보를 변경하는 경우 상기 캐시 메모리를 제어하는 제1 상태 변경 신호 및 상기 태그 메모리를 제어하는 제2 상태 변경 신호를 포함할 수 있다. 상기 선택부는 상기 제1 데이터 요청 신호 및 상기 제1 상태 변경 신호 중 하나를 선택하여 상기 캐시 메모리에 제공하는 제1 선택기; 및 상기 제2 데이터 요청 신호 및 상기 제2 상태 변경 신호 중 하나를 선택하여 상기 태그 메모리에 제공하는 제2 선택기를 포함할 수 있다.The data request signal may include a first data request signal for requesting the data stored in the cache memory and a second data request signal for controlling the tag memory in response to the first data request signal. The state change signal may include a first state change signal for controlling the cache memory and a second state change signal for controlling the tag memory when changing state information of the cache lines. The selector may include a first selector configured to select one of the first data request signal and the first state change signal to provide to the cache memory; And a second selector for selecting one of the second data request signal and the second state change signal to provide the tag memory.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함된 캐시 장치는 복수의 멀티 코어용 캐시 회로들 및 일관성 관리 회로를 포함한다. 상기 복수의 멀티 코어용 캐시 회로들은 상기 복수의 코어들 중 하나와 각각 연결되고, 상기 연결된 코어로부터 수신된 요청 신호에 기초하여 저장된 데이터를 상기 연결된 코어에 각각 제공한다. 상기 일관성 관리 회로는 상기 복수의 멀티 코어용 캐시 회로들에 저장된 상기 데이터의 일관성을 유지한다. 상기 복수의 멀티 코어용 캐시 회로들 각각은 캐시 메모리부, 싱글 코어용 캐시 컨트롤러 및 커맨드 처리부를 포함한다. 상기 캐시 메모리부는 복수의 캐시 라인들을 포함하고, 데이터, 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장한다. 상기 싱글 코어용 캐시 컨트롤러는 상기 요청 신호에 기초하여 데이터 요청 신호를 제공하고, 상기 데이터 요청 신호에 대응하는 상기 캐시 메모리부의 데이터를 상기 연결된 코어에 제공한다. 상기 커맨드 처리부는 상기 일관성 관리 회로로부터 입력된 변경 신호에 기초하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 상태 변경 신호를 제공하고, 상기 캐시 메모리부에 저장된 상기 데이터 중 일부를 상기 일관성 관리 회로로 제공한다.In order to achieve the above object of the present invention, a cache device included in a multi-core semiconductor device having a plurality of cores according to an embodiment of the present invention includes a plurality of multi-core cache circuits and a consistency management circuit. . The plurality of multi-core cache circuits are respectively connected to one of the plurality of cores and provide stored data to the connected cores based on a request signal received from the connected cores, respectively. The consistency management circuit maintains the consistency of the data stored in the plurality of multi-core cache circuits. Each of the plurality of multi-core cache circuits includes a cache memory unit, a single core cache controller, and a command processor. The cache memory unit includes a plurality of cache lines, and stores data, tag information, and state information of the cache lines. The single core cache controller provides a data request signal based on the request signal, and provides data to the connected core to the cache memory unit corresponding to the data request signal. The command processor provides a state change signal for changing state information of some of the cache lines based on a change signal input from the consistency management circuit, and converts some of the data stored in the cache memory unit into the consistency management circuit. To provide.
실시예에 있어서, 상기 캐시 라인들의 상태 정보는 상기 캐시 메모리부에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩될 수 있다.In example embodiments, the state information of the cache lines may be encoded regardless of whether the data stored in the cache memory unit is shared.
실시예에 있어서, 상기 데이터 요청 신호 및 상기 상태 변경 신호 중 하나를 선택하여 상기 캐시 메모리부에 제공하는 선택부를 더 포함할 수 있다.The method may further include a selector configured to select one of the data request signal and the state change signal and provide the selected one to the cache memory unit.
실시예에 있어서, 상기 일관성 관리 회로는 상기 복수의 멀티 코어용 캐시 회로들의 상기 캐시 메모리부에 저장된 상기 태그 정보 및 상기 상태 정보의 복사본을 각각 저장하는 복수의 태그 메모리들을 포함할 수 있다. 이 경우, 상기 복수의 멀티 코어용 캐시 회로들의 상기 캐시 메모리부에 각각 저장된 상기 캐시 라인들의 상태 정보와 상기 일관성 관리 회로의 상기 복수의 태그 메모리들에 각각 저장된 상기 캐시 라인들의 상태 정보의 복사본은 서로 다르게 인코딩될 수 있다.In an embodiment, the consistency management circuit may include a plurality of tag memories respectively storing copies of the tag information and the state information stored in the cache memory unit of the plurality of multi-core cache circuits. In this case, the state information of the cache lines stored in the cache memory section of the plurality of multi-core cache circuits and the copy of the state information of the cache lines stored in the plurality of tag memories of the consistency management circuit, respectively, are mutually different. It can be encoded differently.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치는 메인 메모리, 멀티 코어용 캐시 장치 및 프로세서를 포함한다. 상기 멀티 코어용 캐시 장치는 상기 메인 메모리의 데이터 중에서 일부 데이터를 저장하고, 상기 복수의 코어들 중 하나와 각각 연결되며, 상기 연결된 코어로부터 수신된 요청 신호에 기초하여 상기 저장된 데이터를 상기 연결된 코어에 각각 제공하는 복수의 멀티 코어용 캐시 회로들; 및 상기 복수의 멀티 코어용 캐시 회로들에 저장된 상기 데이터의 일관성을 유지하는 일관성 관리 회로를 포함한다. 상기 프로세서는 복수의 코어들을 포함하고, 상기 멀티 코어용 캐시 장치를 통해 상기 메인 메모리와 데이터를 주고받는다. 상기 복수의 멀티 코어용 캐시 회로들 각각은 캐시 메모리부, 싱글 코어용 캐시 컨트롤러 및 커맨드 처리부를 포함한다. 상기 캐시 메모리부는 복수의 캐시 라인들을 포함하고, 데이터, 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장한다. 상기 싱글 코어용 캐시 컨트롤러는 상기 요청 신호에 기초하여 데이터 요청 신호를 제공하고, 상기 데이터 요청 신호에 대응하는 상기 캐시 메모리부의 데이터를 상기 연결된 코어에 제공한다. 상기 커맨드 처리부는 상기 일관성 관리 회로로부터 입력된 변경 신호에 기초하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 상태 변경 신호를 제공하고, 상기 캐시 메모리부에 저장된 상기 데이터 중 일부를 상기 일관성 관리 회로로 제공한다.In order to achieve the above object of the present invention, a multi-core semiconductor device having a plurality of cores according to an embodiment of the present invention includes a main memory, a cache device for a multi-core, and a processor. The cache apparatus for the multi-core stores some data among the data of the main memory, and is connected to one of the plurality of cores, respectively, and stores the stored data to the connected core based on a request signal received from the connected core. A plurality of multi-core cache circuits each provided; And a consistency management circuit for maintaining the consistency of the data stored in the plurality of multi-core cache circuits. The processor includes a plurality of cores and exchanges data with the main memory through the cache device for the multi-cores. Each of the plurality of multi-core cache circuits includes a cache memory unit, a single core cache controller, and a command processor. The cache memory unit includes a plurality of cache lines, and stores data, tag information, and state information of the cache lines. The single core cache controller provides a data request signal based on the request signal, and provides data to the connected core to the cache memory unit corresponding to the data request signal. The command processor provides a state change signal for changing state information of some of the cache lines based on a change signal input from the consistency management circuit, and converts some of the data stored in the cache memory unit into the consistency management circuit. To provide.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에서, 싱글 코어용 캐시 컨트롤러를 이용하여 복수의 캐시 라인들을 포함하는 캐시 메모리를 제어하는 방법에서는, 상기 복수의 코어들 중 상기 캐시 메모리와 통신하는 코어로부터 수신된 요청 신호에 기초하여 데이터 요청 신호를 제공한다. 상기 캐시 메모리에 저장되고 상기 데이터 요청 신호에 대응하는 데이터를 상기 캐시 메모리와 통신하는 상기 코어에 제공한다. 외부로부터 입력된 변경 신호에 기초하여 상태 변경 신호를 제공하여 상기 캐시 라인들 중 일부의 상태 정보를 변경한다. 상기 캐시 메모리에 저장된 상기 데이터 중 일부를 상기 외부로 제공한다.In order to achieve the above object of the present invention, in a multi-core semiconductor device having a plurality of cores according to an embodiment of the present invention, a cache controller including a plurality of cache lines is controlled using a cache controller for a single core. The method provides a data request signal based on a request signal received from a core in communication with the cache memory among the plurality of cores. Provide data stored in the cache memory and corresponding to the data request signal to the core in communication with the cache memory. A state change signal is provided based on a change signal input from the outside to change state information of some of the cache lines. Some of the data stored in the cache memory are provided to the outside.
실시예에 있어서, 상기 캐시 라인들의 상태 정보는 상기 캐시 메모리에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩될 수 있다.In an embodiment, the state information of the cache lines may be encoded regardless of whether the data stored in the cache memory is shared.
상기와 같은 본 발명의 실시예들에 따른 멀티 코어용 캐시 회로는 기존의 싱글 코어용 캐시 컨트롤러를 이용하여 구조 변경을 최소화하면서 코어들 간의 데이터 공유 문제를 해결할 수 있다.The multi-core cache circuit according to the embodiments of the present invention as described above can solve the data sharing problem between cores while minimizing a structural change by using an existing single core cache controller.
또한 본 발명의 실시예들에 따른 멀티 코어용 캐시 장치는 일관성 관리부와 각 캐시 회로들 사이의 상태 동기화를 유지하기 위한 트래픽을 감소시킬 수 있다.In addition, the multi-core cache apparatus according to the embodiments of the present invention may reduce traffic for maintaining state synchronization between the consistency management unit and the respective cache circuits.
도 1은 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함된 캐시 회로를 나타내는 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함된 캐시 회로를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함된 캐시 장치를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어 반도체 장치를 나타내는 블록도이다.1 is a block diagram illustrating a cache circuit included in a multi-core semiconductor device having a plurality of cores according to an exemplary embodiment of the present invention.
2 is a block diagram illustrating a cache circuit included in a multi-core semiconductor device having a plurality of cores according to another exemplary embodiment of the present disclosure.
3 is a block diagram illustrating a cache device included in a multi-core semiconductor device having a plurality of cores according to an embodiment of the present invention.
4 is a block diagram illustrating a multi-core semiconductor device according to an embodiment of the present invention.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.With respect to the embodiments of the present invention disclosed in the text, specific structural to functional descriptions are merely illustrated for the purpose of describing embodiments of the present invention, embodiments of the present invention may be implemented in various forms and It should not be construed as limited to the embodiments described in.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.As the inventive concept allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to the specific disclosed form, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for the components.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between. Other expressions describing the relationship between components, such as "between" and "immediately between," or "neighboring to," and "directly neighboring to" should be interpreted as well.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof that is described, and that one or more other features or numbers are present. It should be understood that it does not exclude in advance the possibility of the presence or addition of steps, actions, components, parts or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.On the other hand, when an embodiment is otherwise implemented, a function or operation specified in a specific block may occur out of the order specified in the flowchart. For example, two consecutive blocks may actually be performed substantially simultaneously, and the blocks may be performed upside down depending on the function or operation involved.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.
도 1은 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함된 캐시 회로를 나타내는 블록도이다.1 is a block diagram illustrating a cache circuit included in a multi-core semiconductor device having a plurality of cores according to an exemplary embodiment of the present invention.
도 1을 참조하면, 캐시 회로(100)는 캐시 메모리부(110), 싱글 코어용 캐시 컨트롤러(120), 커맨드 처리부(130) 및 선택부(140)를 포함한다. 캐시 회로(100)는 클럭 게이팅을 위한 AND 게이트(122)를 더 포함할 수 있다.Referring to FIG. 1, the
캐시 메모리부(110)는 복수의 캐시 라인들(110-1, 110-2, ..., 110-n)을 포함하고, 데이터(117), 태그 정보(115) 및 상기 캐시 라인들의 상태 정보(이하, 라인 상태 정보)를 저장한다. 일 실시예에서, 캐시 메모리부(110)는 SRAM과 같은 고속 동작이 가능한 메모리로 구현될 수 있다. 또한 캐시 메모리부(110)는 데이터(117)를 저장하는 캐시 메모리와 태그 정보(115) 및 상기 라인 상태 정보를 저장하는 태그 메모리로 분리되어 구현될 수도 있다. 상기와 같이 캐시 메모리부(110)가 분리되어 구현되는 구성은 도 2를 참조하여 후술한다.The
더티(dirty, D) 플래그(111)는 캐시 라인들(110-1, 110-2, ..., 110-n)이 상기 멀티 코어 반도체 장치에 포함된 메인 메모리에 저장된 데이터에서 변경된 데이터를 포함하는지를 나타내고, 유효(valid, V) 플래그(113)는 캐시 라인들(110-1, 110-2, ..., 110-n)이 활성화되었는지를 나타내는 1비트의 정보이다. 즉, 더티 플래그(111) 및 유효 플래그(113)는 상기 라인 상태 정보를 나타내고, 이를 캐시 메모리부(110)에 저장한다.The dirty (D)
일 실시예에서, 상기 라인 상태 정보는 캐시 라인들(110-1, 110-2, ..., 110-n)에 저장된 데이터(117)의 공유 여부와 무관하게 인코딩될 수 있다. 즉 캐시 메모리부(110)에는 공유(shared, S) 플래그가 저장되지 않을 수 있으며, 캐시 회로(100)는 상기 저장된 데이터의 공유 여부를 고려하지 않고 종래의 싱글 코어용 캐시 컨트롤러와 동일하게 동작할 수 있다. MESI 프로토콜에서는 캐시 라인들(110-1, 110-2, ..., 110-n)이 수정 상태(Modified, M), 배타 상태(Exclusive, E), 공유 상태(Shared, S) 및 무효 상태(Invalid, I)의 네 가지 상태를 가질 수 있다. 상기의 네 가지 상태는 더티 플래그(111) 및 유효 플래그(113)의 값에 따라 표현될 수 있다. 예를 들어 본 발명의 일 실시예에서, 임의의 캐시 라인이 수정 상태인 경우 D=1, V=1의 값을 가지고, 배타 상태인 경우 D=0, V=1의 값을 가지고, 공유 상태인 경우 D=0, V=1의 값을 가지며, 무효 상태인 경우 D는 임의의 값을 가지고 V=0의 값을 가질 수 있다. 즉, 배타 상태와 공유 상태가 동일하게 인코딩될 수 있다. 멀티 코어 환경의 캐시 컨트롤러에서 각각의 캐시 메모리들의 라인 상태 정보를 변경하기 위해서는 별도의 통신이 필요하며, 이를 본 명세서에서는 트래픽이라 정의한다. 상기와 같이 배타 상태와 공유 상태가 동일하게 인코딩된 경우 상기 멀티 코어 반도체 장치에서 불필요한 트래픽을 줄일 수 있다. 이에 대한 상세한 설명은 도 3을 참조하여 후술한다.In one embodiment, the line state information may be encoded regardless of whether the
싱글 코어용 캐시 컨트롤러(120)는 상기 복수의 코어들 중 하나로부터 수신된 요청 신호(REQ)에 기초하여 데이터 요청 신호(DREQ)를 제공하고, 데이터 요청 신호(DREQ)에 대응하는 캐시 메모리부(110)의 데이터(RDAT)를 출력하여 상기 복수의 코어들 중 하나에 제공한다. 즉, 싱글 코어용 캐시 컨트롤러(120)는 상기 복수의 코어들 중 캐시 회로(100)와 연결된 코어로부터 요청된 데이터(RDAT)가 캐시 메모리부(110)에 있는지 확인하여 캐시 메모리부(110)에 요청된 데이터(RDAT)가 있으면 캐시 메모리부(110)로부터 요청된 데이터(RDAT)를 독출하고, 캐시 메모리부(110)에 요청된 데이터(RDAT)가 없으면 상기 메인 메모리로부터 상기 요청된 데이터(RDAT)를 독출하여 상기 캐시 회로(100)와 연결된 코어에 제공하는 종래의 캐시 컨트롤러와 동일한 동작을 수행한다. 일 실시예에서, 싱글 코어용 캐시 컨트롤러(120)는 트랜지스터 등의 복수의 반도체 소자와 비교기, 버퍼, 논리 게이트 등의 복수의 논리 소자를 포함하여 구현될 수 있다.The single
요청 신호(REQ) 및 데이터 요청 신호(DREQ)는 복수의 어드레스, Din(data in), Dout(data out), CS(chip select), RW(read/write) 및 BE(bit enable) 신호 등의 조합으로 이루어질 수 있으며 캐시 메모리부(110)에 요청된 데이터(RDAT)가 존재하는지 확인할 수 있다. 일 실시예에서, 싱글 코어용 캐시 컨트롤러(120)는 내부 클럭 신호(gCLK)에 따라 동작이 제어될 수 있으며, 이에 대해서는 후술하도록 한다.The request signal REQ and the data request signal DREQ include a plurality of addresses, data in (Din), data out (Dout), chip select (CS), read / write (RW), and bit enable (BE) signals. It may be made in a combination, and it may be checked whether the requested data RDT is present in the
커맨드 처리부(130)는 외부로부터 입력된 변경 신호(CS)에 기초하여 캐시 라인들(110-1, 110-2, ..., 110-n) 중 일부의 라인 상태 정보를 변경하는 상태 정보 신호(SCS)를 제공한다. 캐시 메모리부(110)에서 데이터를 독출하거나 캐시 메모리부(110)에 데이터를 기입하는 경우, 캐시 라인들(110-1, 110-2, .., 110-n)의 라인 상태 정보가 변경될 수 있다. 예를 들어 무효 상태(I)인 캐시 라인의 데이터를 독출하는 경우, 상기 무효 상태(I)는 배타 상태(E) 또는 공유 상태(S)로 변경될 수 있다.The
변경 신호(CS)는 상기 멀티 코어 반도체 장치에 포함된 캐시 메모리들의 일관성(coherence)을 보장하기 위해 상기 멀티 코어 반도체 장치에 포함된 일관성 관리 회로에서 제공되는 신호이다. 상태 변경 신호(SCS)는 변경 신호(CS)를 디코딩하여 생성된 신호이며, 캐시 메모리부(110)를 액세스하기 위한 신호들의 조합으로 구성될 수 있다. 변경 신호(CS) 및 상태 변경 신호(SCS)는 복수의 커맨드 신호 및 어드레스 등의 조합으로 이루어질 수 있다. 일 실시예에서, 변경 신호(CS)는 캐시 메모리부(110)에 대해 라인 무효화(invalidate line), 독출 및 라인 클린화(read & clean line) 및 독출 및 라인 무효화(read & invalidate line) 등의 명령을 전송할 수 있다.The change signal CS is a signal provided by the coherence management circuit included in the multi-core semiconductor device to ensure coherence of cache memories included in the multi-core semiconductor device. The state change signal SCS is a signal generated by decoding the change signal CS, and may be composed of a combination of signals for accessing the
커맨드 처리부(130)는 캐시 메모리부(110)에 저장된 데이터(117) 중 일부(DAT)를 수신하여 외부, 즉 상기 일관성 관리 회로로 제공한다. 상기 일관성 관리 회로에 제공된 데이터(DAT)는 상기 멀티 코어 반도체 장치에 포함된 다른 캐시 메모리 또는 메인 메모리에 전달될 수 있고, 상기 일관성 관리 회로에서 처리되어 상기 멀티 코어 반도체 장치에 포함된 캐시 메모리들이 데이터의 일관성을 유지하도록 할 수 있다.The
선택부(140)는 데이터 요청 신호(DREQ) 및 상태 변경 신호(SCS) 중 하나를 선택하여 캐시 메모리부(110)에 제공한다. 즉, 선택부(140)는 상기 복수의 코어들 중 하나로부터의 데이터 요청과 상기 일관성 관리 회로로부터의 라인 상태 변경 요청을 중재하여 선택적으로 처리할 수 있다. 예를 들어, 선택부(140)는 데이터 요청 신호(DREQ)를 선택하고 캐시 메모리부(110)에 제공하여, 캐시 메모리부(110)에 저장되고 데이터 요청 신호(DREQ)에 대응되는 데이터(RDAT)를 상기 캐시 회로(100)와 연결된 코어에 제공할 수 있다. 또한, 선택부(140)는 상태 변경 신호(SCS)를 선택하여, 상기 데이터 제공 또는 기입으로 인해 상태 변경이 요구되는 캐시 라인의 상기 라인 상태 정보를 변경하고, 캐시 일관성 유지를 위해 메모리부(110)에 저장된 일부 데이터(DAT)를 상기 일관성 관리 회로로 제공하거나, 상기 메인 메모리에 저장된 데이터를 캐시 메모리부(110)에 기입할 수 있다.The
선택부(140)는 준비 신호(READY)를 생성하여 클럭 게이팅을 위한 AND 게이트(122)로 제공할 수 있다. 일 실시예에서, 싱글 코어용 캐시 컨트롤러(120)와 선택부(140)는 미리 정해진 주기 내에 응답을 주고 받도록 유한 상태 머신(Finite State Machine, FSM)으로 구현될 수 있으며, 준비 신호(READY)는 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주는 경우에는 활성화 상태, 즉 논리 하이 상태를 가지지만, 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주지 못하는 경우에는 비활성화 상태, 즉 논리 로우 상태를 가짐으로써 선택부(140)가 프로세스를 수행할 준비가 되지 않음을 나타낸다.The
클럭 게이팅을 위한 AND 게이트(122)는 외부 클럭 신호(CLK), 클럭 인에이블 신호(CLKEN) 및 준비 신호(READY)를 AND 연산하여 내부 클럭 신호(gCLK)를 생성하여 싱글 코어용 캐시 컨트롤러(120)에 제공할 수 있다. 준비 신호(READY)가 논리 하이 상태인 경우, 즉 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주는 경우에는 일반적인 경우와 같이 외부 클럭 신호(CLK) 및 클럭 인에이블 신호(CLKEN)에 기초하여 싱글 코어용 캐시 컨트롤러(120)가 동작한다. 반면에 준비 신호(READY)가 논리 로우 상태인 경우, 즉 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주지 않는 경우에는 선택부(140)가 프로세스를 수행할 준비가 되지 않았으므로, 선택부(140)가 프로세스를 수행할 준비가 될 때까지 내부 클럭 신호(gCLK)를 비활성화시켜 싱글 코어용 캐시 컨트롤러(120)의 동작을 지연시킬 수 있다.The AND
도 2는 본 발명의 다른 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함된 캐시 회로를 나타내는 블록도이다.2 is a block diagram illustrating a cache circuit included in a multi-core semiconductor device having a plurality of cores according to another exemplary embodiment of the present disclosure.
도 2를 참조하면, 캐시 회로(200)는 캐시 메모리부(210), 싱글 코어용 캐시 컨트롤러(220), 커맨드 처리부(230) 및 선택부(240)를 포함한다. 캐시 회로(200)는 클럭 게이팅을 위한 AND 게이트(222)를 더 포함할 수 있다.Referring to FIG. 2, the
도 2의 캐시 회로(200)는 도 1의 캐시 회로(100)와 비교하여 캐시 메모리부(210) 및 선택부(240)의 구성과 이에 따른 신호의 흐름이 일부 상이하며, 전체적으로는 유사한 구조를 가진다. 따라서 도 1의 캐시 회로(100)에 대한 설명과 중복되는 설명은 생략하도록 한다.Compared to the
캐시 메모리부(210)는 캐시 메모리(211) 및 태그 메모리(215)를 포함한다. 캐시 메모리(211)는 복수의 캐시 라인들(211-1, 211-2, ..., 211-n)을 포함하고 데이터(212)를 저장한다. 태그 메모리(215)는 캐시 라인들(211-1, 211-2, ..., 211-n)에 각각 대응하는 태그 라인들(215-1, 215-2, ..., 215-n)을 포함하며, 태그 정보(218) 및 상기 라인 상태 정보를 저장한다. 상기 라인 상태 정보는 태그 메모리(215)의 더티 플래그(216) 및 유효 플래그(217)의 값에 따라 결정될 수 있다.The
싱글 코어용 캐시 컨트롤러(220)는 상기 복수의 코어들 중 캐시 회로(200)와 연결된 코어로부터 수신된 요청 신호(REQ)에 기초하여 제1 및 제2 데이터 요청 신호들(DREQ1, DREQ2)을 제공한다. 제1 데이터 요청 신호(DREQ1)는 캐시 메모리(211)에 저장된 데이터(212) 중 일부(RDAT)를 요청하고, 제2 데이터 요청 신호(DREQ2)는 제1 데이터 요청 신호(DREQ1)에 대응하여 태그 메모리(215)를 제어할 수 있다. 싱글 코어용 캐시 컨트롤러(220)는 제1 데이터 요청 신호(DREQ1)에 대응하는 캐시 메모리(211)의 데이터(RDAT)를 상기 연결된 코어에 제공할 수 있다. 일 실시예에서, 싱글 코어용 캐시 컨트롤러(220)는 캐시 메모리(211) 및 태그 메모리(215) 모두로부터 출력을 제공받을 수 있다.The single
커맨드 처리부(230)는 상기 멀티 코어 반도체 장치에 포함된 일관성 관리 회로로부터 제공된 변경 신호(CS)에 기초하여 캐시 라인들(211-1, 211-2, ..., 211-n) 중 일부의 상기 라인 상태 정보를 변경하는 제1 및 제2 상태 변경 신호들(SCS1, SCS2)을 제공한다. 제1 상태 변경 신호(SCS1)는 상기 라인 상태 정보를 변경하는 경우 캐시 메모리(211)를 제어하고, 제2 상태 변경 신호(SCS2)는 상기 상태 정보를 변경하는 경우 태그 메모리(215)를 제어한다. 또한 커맨드 처리부(230)는 캐시 메모리(211)에 저장된 데이터(212)의 일관성 유지를 위해 그 중 일부(DAT)를 수신하여 상기 일관성 관리 회로로 제공한다. 일 실시예에서, 커맨드 처리부(230)는 캐시 메모리(211)로부터 출력을 제공받을 수 있다.The
선택부(240)는 상기 복수의 코어들 중 하나로부터의 데이터 요청과 상기 일관성 관리 회로로부터의 라인 상태 변경 요청을 중재하여 선택적으로 처리하며, 제1 선택기(242) 및 제2 선택기(244)를 포함한다. 제1 선택기(242)는 제1 데이터 요청 신호(DREQ1) 및 제1 상태 변경 신호(SCS1) 중 하나를 선택하여 캐시 메모리(211)에 제공한다. 제2 선택기(244)는 제2 데이터 요청 신호(DREQ2) 및 제2 상태 변경 신호(SCS2) 중 하나를 선택하여 태그 메모리(215)에 제공한다. The
제1 및 제2 선택기(242, 244)는 프로세스의 수행 가능 여부를 나타내는 제1 및 제2 준비 신호들(READY1, READY2)을 각각 생성하여 AND 게이트(222)로 제공할 수 있다. AND 게이트(222)는 외부 클럭 신호(CLK), 클럭 인에이블 신호(CLKEN) 및 준비 신호들(READY1, READY2)을 AND 연산하여 내부 클럭 신호(gCLK)를 생성하고, 내부 클럭 신호(gCLK)를 싱글 코어용 캐시 컨트롤러(220)에 제공하여 싱글 코어용 캐시 컨트롤러(220)를 제어할 수 있다.The first and
종래의 멀티 코어용 캐시 회로에 포함된 멀티 코어용 캐시 컨트롤러는, 캐시 메모리로부터 데이터를 독출하는 기능 및 캐시 라인들의 상태 정보를 변경하고 상기 캐시 라인들 간의 라인 공유 정보를 제어하는 기능을 모두 수행하기 위해, 종래의 싱글 코어용 캐시 컨트롤러의 많은 부분을 수정하였으며, 따라서 회로의 복잡도 및 제조 비용이 증가하였다. 그에 비해 도 1 및 도 2에 도시된 본 발명의 실시예들에 따른 멀티 코어용 캐시 회로(100, 200)는, 종래의 싱글 코어용 캐시 컨트롤러(120, 220)를 그대로 이용하고, 비교적 간단하게 구현 가능한 커맨드 처리부(130, 230) 및 선택부(140, 240)를 추가하여 구현된다. 즉, 종래의 싱글 코어용 캐시 컨트롤러(120, 220)는 복수의 코어들 중 하나의 요청에 따라 캐시 메모리로부터 데이터를 독출하는 기능을 수행하고, 커맨드 처리부(130, 230)는 일관성 관리 회로의 요청에 따라 캐시 라인들의 상태 정보를 변경하고 상기 캐시 라인들 간의 라인 공유 정보를 제어하는 기능을 수행하며, 선택부(140, 240)는 상기 코어 및 상기 일관성 관리 회로의 요청을 중재하여 선택적으로 처리하도록 구현된다. 따라서 본 발명의 실시예들에 따른 멀티 코어용 캐시 회로(100, 200)는 종래의 멀티 코어용 캐시 회로에 비해 복잡도 및 제조 비용을 감소시키면서 라인 공유 문제를 해결할 수 있다.The multi-core cache controller included in the conventional multi-core cache circuit performs both a function of reading data from a cache memory and a function of changing state information of cache lines and controlling line sharing information between the cache lines. To this end, many modifications of the conventional single-core cache controller have been modified, thus increasing the complexity and manufacturing cost of the circuit. In contrast, the
도 3은 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치에 포함된 캐시 장치를 나타내는 블록도이다.3 is a block diagram illustrating a cache device included in a multi-core semiconductor device having a plurality of cores according to an embodiment of the present invention.
도 3을 참조하면, 캐시 장치(300)는 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340) 및 일관성 관리 회로(360)를 포함한다.Referring to FIG. 3, the
복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)은 상기 복수의 코어들 중 하나와 각각 연결되고, 상기 연결된 코어로부터 수신된 요청 신호에 기초하여 저장된 데이터를 상기 연결된 코어에 제공한다. 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340) 각각은 도 1 또는 도 2의 멀티 코어용 캐시 회로(100, 200)일 수 있다. 예를 들어, 제1 멀티 코어용 캐시 회로(310)는 제1 캐시 메모리부, 제1 싱글 코어용 캐시 컨트롤러 및 제1 커맨드 처리부를 포함할 수 있고, 제1 선택부를 더 포함할 수 있다.A plurality of
복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340) 내의 캐시 메모리부에 포함된 복수의 캐시 라인들의 상태 정보는 상기 캐시 라인에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩될 수 있다. 즉, 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340) 내의 상기 캐시 라인들의 상태 정보는 종래의 싱글 코어용 캐시 회로와 동일하게 인코딩될 수 있다.State information of a plurality of cache lines included in a cache memory unit in the plurality of
도 3에서는 4개의 멀티 코어용 캐시 회로들(310, 320, 330, 340)을 포함하는 멀티 코어용 캐시 장치(300)를 도시하였지만, 실시예에 따라서 멀티 코어용 캐시 장치(300)는 임의의 개수의 멀티 코어용 캐시 회로들을 포함할 수 있다.Although FIG. 3 illustrates a
일관성 관리 회로(360)는 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)에 저장된 상기 데이터의 일관성을 유지한다. 일관성 관리 회로(360)는 상기 캐시 메모리부와 상기 멀티 코어 반도체 장치에 포함된 메인 메모리 사이의 데이터 송수신을 중재할 수 있다. 일관성 관리 회로(360)는 중재부(362), 일관성 관리부(366) 및 복수의 태그 메모리들(367, 368, 369, 370)을 포함할 수 있다.The
중재부(362)는 상기 복수의 코어들로부터 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)을 통해 각각 제공된 요청 신호들(REQ1, REQ2, REQ3, REQ4)에 기초하여 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)과 상기 메인 메모리와의 데이터 송수신을 중재한다. 즉, 중재부(362)는 요청 신호들(REQ1, REQ2, REQ3, REQ4)에 기초하여, 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)로부터 제공된 데이터(DAT1, DAT2, DAT3, DAT4) 중 하나를 일관성 관리부(366)에 제공할 수 있고, 상기 메인 메모리로부터 일관성 관리부(366)를 통해 수신된 데이터를 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340) 중 하나에 제공할 수 있다. 일 실시예에서, 중재부(362)는 멀티플렉서를 포함하여 구현될 수 있다.The
일관성 관리부(366)는 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)의 상기 캐시 메모리부에 저장된 데이터의 일관성을 유지시킨다. 일관성 관리부(366)는 상기 일관성 유지를 위해 스누핑(snooping) 프로토콜을 이용할 수 있다. 멀티 코어 시스템에서는 일관성 관리에 대한 책임을 멀티 코어와 연결된 모든 캐시 컨트롤러들에게 분산하며, 일관성 관리부(366)는 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)이 상기 메인 메모리와 액세스하도록 스누핑한다. 일관성 관리부(366)는 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)에 상기 캐시 메모리부에 저장된 태그 정보 및 라인 상태 정보를 각각 복사하여 복수의 태그 메모리들(367, 368, 369, 370) 중 하나에 저장하고, 상기 캐시 메모리부의 라인 상태 정보의 변경이 필요한 경우 변경 신호들(CS1, CS2, CS3, CS4) 중 하나를 대응하는 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340) 중 하나에 제공하여 상기 캐시 메모리부에 저장된 데이터의 일관성을 유지할 수 있다.The
복수의 태그 메모리들(367, 368, 369, 370)은 상기 태그 정보들 및 상기 라인 상태 정보들의 복사본을 각각 저장한다. 상기와 같이 일관성 관리 회로(360) 내에 상기 태그 정보들 및 상기 라인 상태 정보들의 복사본을 저장하여, 상기 일관성 관리를 수행할 때마다 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)의 상기 캐시 메모리부에 액세스할 필요가 없어짐으로써, 멀티 코어용 캐시 장치(300)의 성능 저하를 방지한다.The plurality of
복수의 태그 메모리들(367, 368, 369, 370)은 더티(D) 플래그 및 유효(V) 플래그를 포함하고 추가적으로 상기 캐시 라인의 공유 상태를 나타내는 공유(Shared, S) 플래그를 각각 포함할 수 있다. 또한 복수의 태그 메모리들(367, 368, 369, 370)에 저장되는 상기 라인 상태 정보들의 복사본은 MESI 프로토콜에 기초하여 제공될 수 있다. 상기 라인 상태 정보들의 복사본은 일관성 관리부(366)에서 인코딩될 수 있으며, 이 경우 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)의 상기 캐시 메모리부에 각각 저장된 상기 라인 상태 정보들과 복수의 태그 메모리들(367, 368, 369, 370)에 저장되는 상기 라인 상태 정보들의 복사본은 서로 다르게 인코딩될 수 있다. 예를 들어, 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)의 상기 캐시 메모리부에 각각 저장된 상기 라인 상태 정보는 도 1을 참조하여 설명한 것처럼 상기 더티 플래그 및 상기 유효 플래그의 조합으로 인코딩될 수 있고, 배타 상태와 공유 상태가 동일하게 인코딩될 수 있다. 반면에 복수의 태그 메모리들(367, 368, 369, 370)에 저장되는 상기 라인 상태 정보들의 복사본은 임의의 캐시 라인이 수정 상태인 경우 S=0, D=1, V=1의 값을 가지고, 배타 상태인 경우 S=0, D=0, V=1의 값을 가지고, 공유 상태인 경우 S=1, D=0, V=1의 값을 가지며, 무효 상태인 경우 S, D는 임의의 값을 가지고 V=0의 값을 가질 수 있다.The plurality of
MESI 프로토콜 기반의 멀티 코어용 캐시 장치에서 데이터의 독출 및 기입 요청에 따른 캐시 라인들의 상태 변경은 하기의 [표 1]과 같이 나타난다.In the cache device for a multi-core based MESI protocol, a state change of cache lines according to data read and write requests is shown in Table 1 below.
[표 1]TABLE 1
상기의 [표 1]과 같이 무효(I) 상태의 캐시 라인을 독출하는 경우, 상기 무효(I) 상태의 캐시 라인은 상기 캐시 장치 내의 다른 캐시 메모리 내에 동일한 라인이 존재하는지에 따라 배타(E) 또는 공유(S) 상태로 변경된다. 즉, 상기 캐시 장치 내의 일관성 관리 회로에 의해 다른 캐시 메모리 내에 동일한 데이터가 저장된 라인이 존재한다고 판단된 경우 공유(S) 상태로 변경되며, 상기 동일한 데이터가 저장된 라인이 존재하지 않는다고 판단된 경우 배타(E) 상태로 변경된다. 따라서 상기 일관성 관리 회로의 처리 및 판단 결과를 기다린 후에 상기 무효(I) 상태의 캐시 라인이 배타(E) 또는 공유(S) 상태로 변경될 수 있다. 즉, 상기 일관성 관리 회로와 상기 캐시 라인의 상태 동기화를 위한 추가적인 트래픽이 필요하다.When a cache line in an invalid (I) state is read as shown in Table 1 above, the cache line in the invalid (I) state is exclusive depending on whether the same line exists in another cache memory in the cache device (E). ) Or shared (S) state. That is, if it is determined by the coherence management circuit in the cache device that there is a line in which the same data is stored in another cache memory, the state is changed to the shared (S) state. E) The state is changed. Therefore, after waiting for a result of the processing and determination of the consistency management circuit, the cache line in the invalid (I) state may be changed to an exclusive (E) or shared (S) state. In other words, additional traffic is required for state synchronization between the consistency management circuit and the cache line.
하지만 본 발명의 실시예와 같이, 멀티 코어용 캐시 회로들(310, 320, 330, 340) 내의 상기 캐시 메모리부에서 배타(E) 상태와 공유(S) 상태가 동일하게 인코딩된 경우에는 일관성 관리 회로(360)의 판단 결과를 기다릴 필요 없이 상기 캐시 메모리부의 캐시 라인의 상태를 변경할 수 있다. 또한 상기 일관성 관리 회로(360)의 판단 결과는 상기 공유 플래그를 포함하는 복수의 태그 메모리들(367, 368, 369, 370) 내에 저장되어 배타(E) 상태와 공유(S) 상태를 구분할 수 있다. 즉, 일관성 관리 회로(360)의 처리 결과에 무관하게 상기 캐시 라인의 최종 상태를 알 수 있으며, 일관성 관리 회로(360)와 상기 캐시 라인의 상태 동기화를 위한 트래픽을 감소시킬 수 있다.However, as in the embodiment of the present invention, when the exclusive (E) state and the shared (S) state are identically encoded in the cache memory unit in the
도 4는 본 발명의 일 실시예에 따른 멀티 코어 반도체 장치를 나타내는 블록도이다.4 is a block diagram illustrating a multi-core semiconductor device according to an embodiment of the present invention.
도 4를 참조하면, 멀티 코어 반도체 장치(400)는 프로세서(410), 멀티 코어용 캐시 장치(430) 및 메인 메모리(450)를 포함한다.Referring to FIG. 4, the
메인 메모리(450)는 프로세서(410)가 데이터를 요청하면 상기 요청된 데이터를 멀티 코어용 캐시 장치(430)를 통해 제공한다.When the
프로세서(410)는 복수의 코어들(412, 414, 416, 418)을 포함한다. 프로세서(410)는 상기 요청된 데이터가 멀티 코어용 캐시 장치(430)의 캐시 메모리에 있으면 멀티 코어용 캐시 장치(430)로부터 데이터를 입력받고, 요청한 데이터가 상기 캐시 메모리에 없으면 메인 메모리(450)에 데이터를 요청하여 메인 메모리(450)로부터 멀티 코어용 캐시 장치(430)를 통해 데이터를 입력 받는다.
멀티 코어용 캐시 장치(430)는 도 3의 멀티 코어용 캐시 장치(300)일 수 있다. 멀티 코어용 캐시 장치(430)는 복수의 멀티 코어용 캐시 회로들(432, 434, 436, 438) 및 일관성 관리 회로(440)를 포함한다.The
복수의 멀티 코어용 캐시 회로들(432, 434, 436, 438)은 각각 도 1 또는 도 2의 멀티 코어용 캐시 회로(100, 200)일 수 있다. 복수의 멀티 코어용 캐시 회로들(432, 434, 436, 438)은 메인 메모리(450)의 데이터 중에서 일부 데이터를 저장하고 복수의 코어들(412, 414, 416, 418) 중 하나로부터 수신된 요청 신호에 기초하여 상기 요청된 데이터를 제공한다. 예를 들어, 제1 멀티 코어용 캐시 회로(432)는 제1 코어(410)와 연결되고, 제1 코어(410)로부터 수신된 요청 신호에 기초하여 상기 요청된 데이터를 제1 코어(410)에 제공한다.The plurality of multi
일관성 관리 회로(440)는 복수의 멀티 코어용 캐시 회로들(432, 434, 436, 438)에 저장된 상기 데이터의 일관성을 유지한다.The
도 4에서는 4개의 코어들(412, 414, 416, 418)을 포함하는 멀티 코어 반도체 장치(400)를 도시하였지만, 실시예에 따라서 멀티 코어 반도체 장치(400)는 임의의 개수의 코어들을 포함할 수 있다.Although FIG. 4 illustrates a
이하 도 1, 도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치(400)에 포함된 캐시 메모리(110)를 제어하는 방법을 설명한다.Hereinafter, a method of controlling the
싱글 코어용 캐시 컨트롤러(120)는 복수의 코어들(412, 414, 416, 418) 중 캐시 메모리(110)와 통신하는 코어로부터 수신된 요청 신호(REQ)에 기초하여 데이터 요청 신호(DREQ)를 제공한다. 요청 신호(REQ) 및 데이터 요청 신호(DREQ)는 복수의 어드레스, Din, Dout, CS, RW 및 BE 신호 등의 조합으로 이루어질 수 있다.The single
캐시 메모리부(110)는 저장된 데이터(117) 중에서 데이터 요청 신호(DREQ)에 대응하는 데이터(RDAT)를 복수의 코어들(412, 414, 416, 418) 중 캐시 메모리(110)와 통신하는 상기 코어에 제공한다.The
커맨드 처리부(130)는 일관성 관리 회로(360)로부터 입력된 변경 신호(CS)에 기초하여 상태 변경 정보(SCS)를 제공한다. 변경 신호(CS) 및 상태 변경 신호(SCS)는 복수의 커맨드 신호 및 어드레스 등의 조합으로 이루어질 수 있다. 상기 상태 변경 정보(SCS)에 기초하여, 캐시 라인들(110-1, 110-2, ..., 110-n) 중 데이터(117)의 독출 또는 기입에 의해 상태 변경이 필요한 캐시 라인의 상기 라인 상태 정보가 변경된다. 상기 라인 상태 정보는 상기 캐시 라인에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩될 수 있다.The
커맨드 처리부(130)는 캐시 메모리(110)에 저장된 데이터(117) 중 일부(DAT)를 일관성 관리 회로(360)로 제공한다. 일관성 관리 회로(360)는 데이터(DAT)를 다른 캐시 메모리 또는 메인 메모리에 제공하여 멀티 코어 반도체 장치(400)에 포함된 상기 캐시 메모리들의 데이터의 일관성을 유지하도록 한다.The
본 발명에 따르면, 구조 변경을 최소화하면서 코어들 간의 자원 공유 문제를 해결할 수 있고 트래픽을 감소시킬 수 있는 멀티 코어용 캐시 회로를 제공하여 멀티 코어용 캐시 장치 및 반도체 장치의 성능 향상을 가져오며, 멀티 코어로 구현된 CPU, 프로세서 및 이를 포함하는 컴퓨터 등에 활용될 수 있다.According to the present invention, it is possible to solve the problem of resource sharing between cores while minimizing the structural change, and to provide the cache circuit for the multi-core which can reduce the traffic, thereby bringing the performance improvement of the multi-core cache device and the semiconductor device, The CPU may be implemented as a core, a processor, and a computer including the same.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.As described above, the present invention has been described with reference to a preferred embodiment of the present invention, but those skilled in the art may vary the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. It will be understood that modifications and changes can be made.
Claims (13)
복수의 캐시 라인들을 포함하고, 데이터, 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장하는 캐시 메모리부;
상기 복수의 코어들 중 상기 캐시 회로와 연결된 코어로부터 수신된 요청 신호에 기초하여 데이터 요청 신호를 제공하고, 상기 데이터 요청 신호에 대응하는 상기 캐시 메모리부의 데이터를 상기 캐시 회로와 연결된 상기 코어에 제공하는 싱글 코어용 캐시 컨트롤러; 및
외부로부터 입력된 변경 신호에 기초하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 상태 변경 신호를 제공하고, 상기 캐시 메모리부에 저장된 상기 데이터 중 일부를 상기 외부로 제공하는 커맨드 처리부를 포함하는 멀티 코어용 캐시 회로.A cache circuit included in a multi-core semiconductor device having a plurality of cores and connected to one of the plurality of cores,
A cache memory unit including a plurality of cache lines and storing data, tag information, and state information of the cache lines;
Providing a data request signal based on a request signal received from a core connected to the cache circuit among the plurality of cores, and providing data of the cache memory unit corresponding to the data request signal to the core connected to the cache circuit; Cache controller for single core; And
A multi-command processing unit configured to provide a state change signal for changing state information of some of the cache lines based on a change signal input from an external device, and provide a portion of the data stored in the cache memory unit to the outside; Cache circuit for the core.
상기 복수의 캐시 라인들을 포함하고 상기 데이터를 저장하는 캐시 메모리; 및
상기 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장하는 태그 메모리를 포함하는 것을 특징으로 하는 멀티 코어용 캐시 회로.The method of claim 3, wherein the cache memory unit,
A cache memory including the plurality of cache lines and storing the data; And
And a tag memory configured to store the tag information and the state information of the cache lines.
상기 제1 데이터 요청 신호 및 상기 제1 상태 변경 신호 중 하나를 선택하여 상기 캐시 메모리에 제공하는 제1 선택기; 및
상기 제2 데이터 요청 신호 및 상기 제2 상태 변경 신호 중 하나를 선택하여 상기 태그 메모리에 제공하는 제2 선택기를 포함하는 것을 특징으로 하는 멀티 코어용 캐시 회로.The data request signal of claim 4, wherein the data request signal includes a first data request signal for requesting the data stored in the cache memory and a second data request signal for controlling the tag memory in response to the first data request signal. The state change signal may include a first state change signal for controlling the cache memory and a second state change signal for controlling the tag memory when changing state information of the cache lines.
A first selector for selecting one of the first data request signal and the first state change signal to provide to the cache memory; And
And a second selector for selecting one of the second data request signal and the second state change signal to provide to the tag memory.
상기 복수의 코어들 중 하나와 각각 연결되고, 상기 연결된 코어로부터 수신된 요청 신호에 기초하여 저장된 데이터를 상기 연결된 코어에 각각 제공하는 복수의 멀티 코어용 캐시 회로들; 및
상기 복수의 멀티 코어용 캐시 회로들에 저장된 상기 데이터의 일관성을 유지하는 일관성 관리 회로를 포함하고,
상기 복수의 멀티 코어용 캐시 회로들 각각은,
복수의 캐시 라인들을 포함하고, 데이터, 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장하는 캐시 메모리부;
상기 요청 신호에 기초하여 데이터 요청 신호를 제공하고, 상기 데이터 요청 신호에 대응하는 상기 캐시 메모리부의 데이터를 상기 연결된 코어에 제공하는 싱글 코어용 캐시 컨트롤러; 및
상기 일관성 관리 회로로부터 입력된 변경 신호에 기초하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 상태 변경 신호를 제공하고, 상기 캐시 메모리부에 저장된 상기 데이터 중 일부를 상기 일관성 관리 회로로 제공하는 커맨드 처리부를 포함하는 멀티 코어용 캐시 장치.A cache device included in a multi-core semiconductor device having a plurality of cores, the cache device comprising:
A plurality of multi-core cache circuits, each connected to one of the plurality of cores, each of which provides stored data to the connected core based on a request signal received from the connected core; And
A consistency management circuit for maintaining consistency of the data stored in the plurality of multi-core cache circuits,
Each of the plurality of multi-core cache circuits,
A cache memory unit including a plurality of cache lines and storing data, tag information, and state information of the cache lines;
A cache controller for a single core that provides a data request signal based on the request signal, and provides data of the cache memory unit corresponding to the data request signal to the connected core; And
A command for providing a state change signal for changing state information of some of the cache lines based on a change signal input from the consistency management circuit, and providing a portion of the data stored in the cache memory section to the consistency management circuit. Cache device for multi-core including a processing unit.
상기 복수의 멀티 코어용 캐시 회로들의 상기 캐시 메모리부에 저장된 상기 태그 정보 및 상기 상태 정보의 복사본을 각각 저장하는 복수의 태그 메모리들을 포함하는 것을 특징으로 하는 멀티 코어용 캐시 장치.The method of claim 6, wherein the consistency management circuit,
And a plurality of tag memories respectively storing copies of the tag information and the state information stored in the cache memory unit of the plurality of multi-core cache circuits.
메인 메모리;
상기 메인 메모리의 데이터 중에서 일부 데이터를 저장하고, 상기 복수의 코어들 중 하나와 각각 연결되며, 상기 연결된 코어로부터 수신된 요청 신호에 기초하여 상기 저장된 데이터를 상기 연결된 코어에 각각 제공하는 복수의 멀티 코어용 캐시 회로들; 및 상기 복수의 멀티 코어용 캐시 회로들에 저장된 상기 데이터의 일관성을 유지하는 일관성 관리 회로를 포함하는 멀티 코어용 캐시 장치; 및
상기 복수의 코어들을 포함하고, 상기 멀티 코어용 캐시 장치를 통해 상기 메인 메모리와 데이터를 주고받는 프로세서를 포함하고,
상기 복수의 멀티 코어용 캐시 회로들 각각은,
복수의 캐시 라인들을 포함하고, 데이터, 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장하는 캐시 메모리부;
상기 요청 신호에 기초하여 데이터 요청 신호를 제공하고, 상기 데이터 요청 신호에 대응하는 상기 캐시 메모리부의 데이터를 상기 연결된 코어에 제공하는 싱글 코어용 캐시 컨트롤러; 및
상기 일관성 관리 회로로부터 입력된 변경 신호에 기초하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 상태 변경 신호를 제공하고, 상기 캐시 메모리부에 저장된 상기 데이터 중 일부를 상기 일관성 관리 회로로 제공하는 커맨드 처리부를 포함하는 멀티 코어 반도체 장치.A multi-core semiconductor device having a plurality of cores,
Main memory;
A plurality of multi-cores that store some data among the data of the main memory and are respectively connected to one of the plurality of cores, and respectively provide the stored data to the connected cores based on a request signal received from the connected cores Cache circuits; And a consistency management circuit for maintaining the consistency of the data stored in the plurality of multi-core cache circuits. And
A processor including the plurality of cores and exchanging data with the main memory through the multi-core cache device;
Each of the plurality of multi-core cache circuits,
A cache memory unit including a plurality of cache lines and storing data, tag information, and state information of the cache lines;
A cache controller for a single core that provides a data request signal based on the request signal, and provides data of the cache memory unit corresponding to the data request signal to the connected core; And
A command for providing a state change signal for changing state information of some of the cache lines based on a change signal input from the consistency management circuit, and providing a portion of the data stored in the cache memory section to the consistency management circuit. Multi-core semiconductor device comprising a processing unit.
상기 복수의 코어들 중 상기 캐시 메모리와 통신하는 코어로부터 수신된 요청 신호에 기초하여 데이터 요청 신호를 제공하는 단계;
상기 캐시 메모리에 저장되고 상기 데이터 요청 신호에 대응하는 데이터를 상기 캐시 메모리와 통신하는 상기 코어에 제공하는 단계;
외부로부터 입력된 변경 신호에 기초하여 상태 변경 신호를 제공하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 단계; 및
상기 캐시 메모리에 저장된 상기 데이터 중 일부를 상기 외부로 제공하는 단계를 포함하는 캐시 메모리 제어 방법.In a multi-core semiconductor device having a plurality of cores, a method for controlling a cache memory including a plurality of cache lines using a cache controller for a single core,
Providing a data request signal based on a request signal received from a core in communication with the cache memory of the plurality of cores;
Providing data stored in the cache memory and corresponding to the data request signal to the core in communication with the cache memory;
Changing state information of some of the cache lines by providing a state change signal based on an externally input change signal; And
And providing some of the data stored in the cache memory to the outside.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100006038A KR101043199B1 (en) | 2010-01-22 | 2010-01-22 | Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100006038A KR101043199B1 (en) | 2010-01-22 | 2010-01-22 | Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101043199B1 true KR101043199B1 (en) | 2011-06-21 |
Family
ID=44405875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100006038A KR101043199B1 (en) | 2010-01-22 | 2010-01-22 | Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101043199B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050013076A (en) * | 2003-07-25 | 2005-02-02 | 인터내셔널 비지네스 머신즈 코포레이션 | Self-contained processor subsystem as component for system-on-chip design |
US20080040555A1 (en) | 2006-08-14 | 2008-02-14 | Ravishankar Iyer | Selectively inclusive cache architecture |
US20090055826A1 (en) | 2007-08-21 | 2009-02-26 | Kerry Bernstein | Multicore Processor Having Storage for Core-Specific Operational Data |
KR20090119032A (en) * | 2008-05-15 | 2009-11-19 | 재단법인서울대학교산학협력재단 | Multi-processor system |
-
2010
- 2010-01-22 KR KR1020100006038A patent/KR101043199B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050013076A (en) * | 2003-07-25 | 2005-02-02 | 인터내셔널 비지네스 머신즈 코포레이션 | Self-contained processor subsystem as component for system-on-chip design |
US20080040555A1 (en) | 2006-08-14 | 2008-02-14 | Ravishankar Iyer | Selectively inclusive cache architecture |
US20090055826A1 (en) | 2007-08-21 | 2009-02-26 | Kerry Bernstein | Multicore Processor Having Storage for Core-Specific Operational Data |
KR20090119032A (en) * | 2008-05-15 | 2009-11-19 | 재단법인서울대학교산학협력재단 | Multi-processor system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3796179A1 (en) | System, apparatus and method for processing remote direct memory access operations with a device-attached memory | |
US10515030B2 (en) | Method and device for improved advanced microcontroller bus architecture (AMBA) and advanced extensible interface (AXI) operations | |
EP3140749B1 (en) | In-memory lightweight coherency | |
EP3896574B1 (en) | System and method for computing | |
JP4621604B2 (en) | Bus device, bus system, and information transfer method | |
US11947472B2 (en) | Composable infrastructure enabled by heterogeneous architecture, delivered by CXL based cached switch SoC | |
US11907814B2 (en) | Data path for GPU machine learning training with key value SSD | |
US20170123670A1 (en) | Method and systems of controlling memory-to-memory copy operations | |
US8359419B2 (en) | System LSI having plural buses | |
JP4112050B2 (en) | Method and system for maintaining strong ordering in a coherent memory system | |
KR101695845B1 (en) | Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method | |
KR101092929B1 (en) | Method for managing coherence, coherence management unit, cache device and semiconductor device including the same | |
KR101043199B1 (en) | Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory | |
US7904624B2 (en) | High bandwidth split bus | |
US20240069795A1 (en) | Access request reordering across a multiple-channel interface for memory-based communication queues | |
KR20240000773A (en) | Pim computing system and memory controller therof | |
CN109661650B (en) | Object consistency in a distributed shared memory system | |
US20140136796A1 (en) | Arithmetic processing device and method for controlling the same | |
CN113490915A (en) | Expanding memory operations | |
JP5218413B2 (en) | Information processing apparatus and control method thereof | |
KR101395025B1 (en) | Method for managing coherence, coherence management unit, cache device and semiconductor device including the same | |
WO2011030498A1 (en) | Data processing device and data processing method | |
KR101446924B1 (en) | Method for managing coherence, coherence management unit, cache device and semiconductor device including the same | |
KR20080046066A (en) | Synchronization control device, dual port memory having synchornization control device and method for controlling synchonization in dual port memory | |
JP6565729B2 (en) | Arithmetic processing device, control device, information processing device, and control method for information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140521 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150526 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180525 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190603 Year of fee payment: 9 |