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 PDF

Info

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
Application number
KR1020100006038A
Other languages
Korean (ko)
Inventor
박인철
김태환
김은찬
김봉진
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020100006038A priority Critical patent/KR101043199B1/en
Application granted granted Critical
Publication of KR101043199B1 publication Critical patent/KR101043199B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram 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

PURPOSE: A multi core cache circuit using a single core cache controller, a cache device and a semiconductor device including the same, and a cache memory control method are provided to simplify a structure and reduce traffic by minimizing a change of the structure and using the existing single core cache controller. CONSTITUTION: A cache memory unit(110) includes cache lines and stores data, tag information and status information of the cache lines. A single core cache controller(120) offers a data request signal based on a request signal of a core connected to a cache circuit and the data of the cache memory unit corresponding to the data request signal to the core connected to the cache circuit. A command processor(130) offers a state modification signal for modifying the status information of the cache lines and the data saved in the cache memory unit to outside.

Description

싱글 코어용 캐시 컨트롤러를 이용한 멀티 코어용 캐시 회로, 이를 포함하는 캐시 장치, 반도체 장치 및 캐시 메모리 제어 방법 {Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory}Multi-core cache circuit using single-core cache controller, cache device and semiconductor device including the same, and method for controlling the cache memory}

본 발명은 캐시 메모리 제어 기술에 관한 것으로, 보다 상세하게는 멀티 코어용 캐시 회로, 이를 포함하는 캐시 장치, 반도체 장치 및 캐시 메모리 제어 방법에 관한 것이다.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 cache circuit 100 includes a cache memory unit 110, a single core cache controller 120, a command processor 130, and a selector 140. The cache circuit 100 may further include an AND gate 122 for clock gating.

캐시 메모리부(110)는 복수의 캐시 라인들(110-1, 110-2, ..., 110-n)을 포함하고, 데이터(117), 태그 정보(115) 및 상기 캐시 라인들의 상태 정보(이하, 라인 상태 정보)를 저장한다. 일 실시예에서, 캐시 메모리부(110)는 SRAM과 같은 고속 동작이 가능한 메모리로 구현될 수 있다. 또한 캐시 메모리부(110)는 데이터(117)를 저장하는 캐시 메모리와 태그 정보(115) 및 상기 라인 상태 정보를 저장하는 태그 메모리로 분리되어 구현될 수도 있다. 상기와 같이 캐시 메모리부(110)가 분리되어 구현되는 구성은 도 2를 참조하여 후술한다.The cache memory unit 110 includes a plurality of cache lines 110-1, 110-2,..., 110-n and includes data 117, tag information 115, and state information of the cache lines. (Hereinafter, referred to as line status information). In one embodiment, the cache memory unit 110 may be implemented as a memory capable of high speed operation, such as SRAM. In addition, the cache memory unit 110 may be implemented by being divided into a cache memory for storing the data 117 and tag information 115 and a tag memory for storing the line state information. A configuration in which the cache memory unit 110 is separated and implemented as described above will be described later with reference to FIG. 2.

더티(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) flag 111 includes data whose cache lines 110-1, 110-2,..., 110-n are changed from data stored in main memory included in the multi-core semiconductor device. Valid (V) flag 113 is 1-bit information indicating whether cache lines 110-1, 110-2, ..., 110-n are activated. That is, the dirty flag 111 and the valid flag 113 represent the line state information and store it in the cache memory unit 110.

일 실시예에서, 상기 라인 상태 정보는 캐시 라인들(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 data 117 stored in the cache lines 110-1, 110-2,..., 110-n is shared. That is, the shared (S) flag may not be stored in the cache memory unit 110, and the cache circuit 100 may operate in the same manner as a conventional single core cache controller without considering whether to share the stored data. Can be. In the MESI protocol, cache lines 110-1, 110-2, ..., 110-n are modified state (Modified, M), exclusive state (Exclusive, E), shared state (Shared, S), and invalid state. It can have four states of (Invalid, I). The four states may be expressed according to the values of the dirty flag 111 and the valid flag 113. For example, in one embodiment of the present invention, any cache line has a value of D = 1, V = 1 when in a modified state, and has a value of D = 0, V = 1 when in an exclusive state, and a shared state. In the case of D = 0 and V = 1, D has an arbitrary value and V = 0. That is, the exclusive state and the shared state may be encoded in the same manner. In order to change line state information of respective cache memories in a cache controller of a multi-core environment, a separate communication is required, which is defined as traffic in the present specification. As described above, when the exclusive state and the shared state are encoded in the same manner, unnecessary traffic may be reduced in the multi-core semiconductor device. Detailed description thereof will be described later with reference to FIG. 3.

싱글 코어용 캐시 컨트롤러(120)는 상기 복수의 코어들 중 하나로부터 수신된 요청 신호(REQ)에 기초하여 데이터 요청 신호(DREQ)를 제공하고, 데이터 요청 신호(DREQ)에 대응하는 캐시 메모리부(110)의 데이터(RDAT)를 출력하여 상기 복수의 코어들 중 하나에 제공한다. 즉, 싱글 코어용 캐시 컨트롤러(120)는 상기 복수의 코어들 중 캐시 회로(100)와 연결된 코어로부터 요청된 데이터(RDAT)가 캐시 메모리부(110)에 있는지 확인하여 캐시 메모리부(110)에 요청된 데이터(RDAT)가 있으면 캐시 메모리부(110)로부터 요청된 데이터(RDAT)를 독출하고, 캐시 메모리부(110)에 요청된 데이터(RDAT)가 없으면 상기 메인 메모리로부터 상기 요청된 데이터(RDAT)를 독출하여 상기 캐시 회로(100)와 연결된 코어에 제공하는 종래의 캐시 컨트롤러와 동일한 동작을 수행한다. 일 실시예에서, 싱글 코어용 캐시 컨트롤러(120)는 트랜지스터 등의 복수의 반도체 소자와 비교기, 버퍼, 논리 게이트 등의 복수의 논리 소자를 포함하여 구현될 수 있다.The single core cache controller 120 may provide a data request signal DREQ based on a request signal REQ received from one of the plurality of cores, and may include a cache memory unit corresponding to the data request signal DREQ. Data RDAT of 110 is output and provided to one of the plurality of cores. That is, the single core cache controller 120 checks whether the data RDAT requested from the core connected to the cache circuit 100 among the plurality of cores is in the cache memory unit 110 to check the cache memory unit 110. If the requested data RDAT is present, the requested data RDAT is read from the cache memory unit 110, and if the requested data RDAT is not present in the cache memory unit 110, the requested data RDAT is read from the main memory. ) And performs the same operation as that of the conventional cache controller which provides the core to the core connected to the cache circuit 100. In an exemplary embodiment, the cache controller 120 for a single core may include a plurality of semiconductor devices such as transistors and a plurality of logic devices such as a comparator, a buffer, and a logic gate.

요청 신호(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 cache memory unit 110. In an exemplary embodiment, the operation of the single core cache controller 120 may be controlled according to an internal clock signal gCLK, which will be described later.

커맨드 처리부(130)는 외부로부터 입력된 변경 신호(CS)에 기초하여 캐시 라인들(110-1, 110-2, ..., 110-n) 중 일부의 라인 상태 정보를 변경하는 상태 정보 신호(SCS)를 제공한다. 캐시 메모리부(110)에서 데이터를 독출하거나 캐시 메모리부(110)에 데이터를 기입하는 경우, 캐시 라인들(110-1, 110-2, .., 110-n)의 라인 상태 정보가 변경될 수 있다. 예를 들어 무효 상태(I)인 캐시 라인의 데이터를 독출하는 경우, 상기 무효 상태(I)는 배타 상태(E) 또는 공유 상태(S)로 변경될 수 있다.The command processor 130 changes the state information of some of the cache lines 110-1, 110-2,..., 110-n based on the change signal CS input from the outside. Provide (SCS). When the data is read from or written to the cache memory 110 by the cache memory 110, the line state information of the cache lines 110-1, 110-2,..., 110-n may be changed. Can be. For example, when reading data of a cache line that is in an invalid state (I), the invalid state (I) may be changed into an exclusive state (E) or a shared state (S).

변경 신호(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 cache memory unit 110. The change signal CS and the state change signal SCS may be formed by a combination of a plurality of command signals and an address. In one embodiment, the change signal CS may be invalidated lines, read & clean lines, read & invalidate lines, etc. with respect to the cache memory unit 110. You can send a command.

커맨드 처리부(130)는 캐시 메모리부(110)에 저장된 데이터(117) 중 일부(DAT)를 수신하여 외부, 즉 상기 일관성 관리 회로로 제공한다. 상기 일관성 관리 회로에 제공된 데이터(DAT)는 상기 멀티 코어 반도체 장치에 포함된 다른 캐시 메모리 또는 메인 메모리에 전달될 수 있고, 상기 일관성 관리 회로에서 처리되어 상기 멀티 코어 반도체 장치에 포함된 캐시 메모리들이 데이터의 일관성을 유지하도록 할 수 있다.The command processor 130 receives a portion DAT of the data 117 stored in the cache memory 110 and provides it to the external, that is, the consistency management circuit. The data DAT provided to the consistency management circuit may be transferred to another cache memory or main memory included in the multi-core semiconductor device, and the cache memories included in the multi-core semiconductor device may be processed by the consistency management circuit. To ensure consistency.

선택부(140)는 데이터 요청 신호(DREQ) 및 상태 변경 신호(SCS) 중 하나를 선택하여 캐시 메모리부(110)에 제공한다. 즉, 선택부(140)는 상기 복수의 코어들 중 하나로부터의 데이터 요청과 상기 일관성 관리 회로로부터의 라인 상태 변경 요청을 중재하여 선택적으로 처리할 수 있다. 예를 들어, 선택부(140)는 데이터 요청 신호(DREQ)를 선택하고 캐시 메모리부(110)에 제공하여, 캐시 메모리부(110)에 저장되고 데이터 요청 신호(DREQ)에 대응되는 데이터(RDAT)를 상기 캐시 회로(100)와 연결된 코어에 제공할 수 있다. 또한, 선택부(140)는 상태 변경 신호(SCS)를 선택하여, 상기 데이터 제공 또는 기입으로 인해 상태 변경이 요구되는 캐시 라인의 상기 라인 상태 정보를 변경하고, 캐시 일관성 유지를 위해 메모리부(110)에 저장된 일부 데이터(DAT)를 상기 일관성 관리 회로로 제공하거나, 상기 메인 메모리에 저장된 데이터를 캐시 메모리부(110)에 기입할 수 있다.The selector 140 selects one of the data request signal DREQ and the state change signal SCS, and provides the selected memory 140 to the cache memory 110. That is, the selector 140 may arbitrate and selectively process data requests from one of the plurality of cores and line state change requests from the consistency management circuit. For example, the selector 140 selects the data request signal DREQ and provides the data to the cache memory 110 to store the data RDAT stored in the cache memory 110 and corresponding to the data request signal DREQ. ) May be provided to a core connected to the cache circuit 100. In addition, the selector 140 selects a state change signal SCS to change the line state information of a cache line requiring a state change due to the data provision or writing, and the memory unit 110 to maintain cache coherency. ) May provide some data DAT to the consistency management circuit or write data stored in the main memory to the cache memory unit 110.

선택부(140)는 준비 신호(READY)를 생성하여 클럭 게이팅을 위한 AND 게이트(122)로 제공할 수 있다. 일 실시예에서, 싱글 코어용 캐시 컨트롤러(120)와 선택부(140)는 미리 정해진 주기 내에 응답을 주고 받도록 유한 상태 머신(Finite State Machine, FSM)으로 구현될 수 있으며, 준비 신호(READY)는 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주는 경우에는 활성화 상태, 즉 논리 하이 상태를 가지지만, 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주지 못하는 경우에는 비활성화 상태, 즉 논리 로우 상태를 가짐으로써 선택부(140)가 프로세스를 수행할 준비가 되지 않음을 나타낸다.The selector 140 may generate a ready signal READY and provide it to the AND gate 122 for clock gating. In one embodiment, the cache controller 120 and the selector 140 for a single core may be implemented as a finite state machine (FSM) to send and receive a response within a predetermined period, the ready signal (READY) is When the selector 140 responds to the request of the single core cache controller 120 within the predetermined period, the selector 140 has an active state, that is, a logic high state, If the selector 140 fails to respond within the predetermined period, the selector 140 has an inactive state, that is, a logic low state, indicating that the selector 140 is not ready to perform the process.

클럭 게이팅을 위한 AND 게이트(122)는 외부 클럭 신호(CLK), 클럭 인에이블 신호(CLKEN) 및 준비 신호(READY)를 AND 연산하여 내부 클럭 신호(gCLK)를 생성하여 싱글 코어용 캐시 컨트롤러(120)에 제공할 수 있다. 준비 신호(READY)가 논리 하이 상태인 경우, 즉 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주는 경우에는 일반적인 경우와 같이 외부 클럭 신호(CLK) 및 클럭 인에이블 신호(CLKEN)에 기초하여 싱글 코어용 캐시 컨트롤러(120)가 동작한다. 반면에 준비 신호(READY)가 논리 로우 상태인 경우, 즉 싱글 코어용 캐시 컨트롤러(120)의 요청에 대해 선택부(140)가 상기 미리 정해진 주기 내에 응답을 주지 않는 경우에는 선택부(140)가 프로세스를 수행할 준비가 되지 않았으므로, 선택부(140)가 프로세스를 수행할 준비가 될 때까지 내부 클럭 신호(gCLK)를 비활성화시켜 싱글 코어용 캐시 컨트롤러(120)의 동작을 지연시킬 수 있다.The AND gate 122 for clock gating performs an AND operation on an external clock signal CLK, a clock enable signal CLKEN, and a ready signal READY to generate an internal clock signal gCLK to generate a single core cache controller 120. ) Can be provided. When the ready signal READY is in a logic high state, that is, when the selector 140 responds to the request of the single core cache controller 120 within the predetermined period, the external clock signal CLK as in the general case. ) And the cache controller 120 for a single core are operated based on the clock enable signal CLKEN. On the other hand, when the ready signal READY is in a logic low state, that is, when the selector 140 does not respond to the request of the single core cache controller 120 within the predetermined period, the selector 140 Since it is not ready to perform the process, the internal clock signal gCLK may be inactivated to delay the operation of the single core cache controller 120 until the selector 140 is ready to perform the process.

도 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 cache circuit 200 includes a cache memory 210, a single core cache controller 220, a command processor 230, and a selector 240. The cache circuit 200 may further include an AND gate 222 for clock gating.

도 2의 캐시 회로(200)는 도 1의 캐시 회로(100)와 비교하여 캐시 메모리부(210) 및 선택부(240)의 구성과 이에 따른 신호의 흐름이 일부 상이하며, 전체적으로는 유사한 구조를 가진다. 따라서 도 1의 캐시 회로(100)에 대한 설명과 중복되는 설명은 생략하도록 한다.Compared to the cache circuit 100 of FIG. 1, the cache circuit 200 of FIG. 2 has a configuration different from that of the cache memory 210 and the selector 240, and a signal flow according thereto. Have Therefore, description overlapping with the description of the cache circuit 100 of FIG. 1 will be omitted.

캐시 메모리부(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 cache memory unit 210 includes a cache memory 211 and a tag memory 215. The cache memory 211 includes a plurality of cache lines 211-1, 211-2,..., 211-n and stores data 212. The tag memory 215 corresponds to the tag lines 215-1, 215-2, ..., 215-n respectively corresponding to the cache lines 211-1, 211-2, ..., 211-n. It includes, and stores the tag information 218 and the line state information. The line state information may be determined according to the values of the dirty flag 216 and the valid flag 217 of the tag memory 215.

싱글 코어용 캐시 컨트롤러(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 core cache controller 220 provides the first and second data request signals DREQ1 and DREQ2 based on the request signal REQ received from the core connected to the cache circuit 200 among the plurality of cores. do. The first data request signal DREQ1 requests a portion RDAT of the data 212 stored in the cache memory 211, and the second data request signal DREQ2 tags in response to the first data request signal DREQ1. The memory 215 can be controlled. The single core cache controller 220 may provide the data RDAT of the cache memory 211 corresponding to the first data request signal DREQ1 to the connected core. In one embodiment, the single core cache controller 220 may receive output from both the cache memory 211 and the tag memory 215.

커맨드 처리부(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 command processor 230 may determine a portion of the cache lines 211-1, 211-2,..., 211-n based on the change signal CS provided from the consistency management circuit included in the multi-core semiconductor device. First and second state change signals SCS1 and SCS2 are provided to change the line state information. The first state change signal SCS1 controls the cache memory 211 when the line state information is changed, and the second state change signal SCS2 controls the tag memory 215 when the state information is changed. . In addition, the command processor 230 receives a portion (DAT) of the data 212 stored in the cache memory 211 and provides it to the consistency management circuit. In one embodiment, the command processor 230 may receive an output from the cache memory 211.

선택부(240)는 상기 복수의 코어들 중 하나로부터의 데이터 요청과 상기 일관성 관리 회로로부터의 라인 상태 변경 요청을 중재하여 선택적으로 처리하며, 제1 선택기(242) 및 제2 선택기(244)를 포함한다. 제1 선택기(242)는 제1 데이터 요청 신호(DREQ1) 및 제1 상태 변경 신호(SCS1) 중 하나를 선택하여 캐시 메모리(211)에 제공한다. 제2 선택기(244)는 제2 데이터 요청 신호(DREQ2) 및 제2 상태 변경 신호(SCS2) 중 하나를 선택하여 태그 메모리(215)에 제공한다. The selector 240 arbitrates and selectively processes a data request from one of the plurality of cores and a line state change request from the consistency management circuit, and processes the first selector 242 and the second selector 244. Include. The first selector 242 selects one of the first data request signal DREQ1 and the first state change signal SCS1 and provides it to the cache memory 211. The second selector 244 selects one of the second data request signal DREQ2 and the second state change signal SCS2 and provides it to the tag memory 215.

제1 및 제2 선택기(242, 244)는 프로세스의 수행 가능 여부를 나타내는 제1 및 제2 준비 신호들(READY1, READY2)을 각각 생성하여 AND 게이트(222)로 제공할 수 있다. AND 게이트(222)는 외부 클럭 신호(CLK), 클럭 인에이블 신호(CLKEN) 및 준비 신호들(READY1, READY2)을 AND 연산하여 내부 클럭 신호(gCLK)를 생성하고, 내부 클럭 신호(gCLK)를 싱글 코어용 캐시 컨트롤러(220)에 제공하여 싱글 코어용 캐시 컨트롤러(220)를 제어할 수 있다.The first and second selectors 242 and 244 may generate first and second ready signals READY1 and READY2 indicating whether the process may be performed and provide them to the AND gate 222. The AND gate 222 generates an internal clock signal gCLK by performing an AND operation on the external clock signal CLK, the clock enable signal CLKEN, and the ready signals READY1 and READY2, and generates an internal clock signal gCLK. The single core cache controller 220 may be provided to control the single core cache controller 220.

종래의 멀티 코어용 캐시 회로에 포함된 멀티 코어용 캐시 컨트롤러는, 캐시 메모리로부터 데이터를 독출하는 기능 및 캐시 라인들의 상태 정보를 변경하고 상기 캐시 라인들 간의 라인 공유 정보를 제어하는 기능을 모두 수행하기 위해, 종래의 싱글 코어용 캐시 컨트롤러의 많은 부분을 수정하였으며, 따라서 회로의 복잡도 및 제조 비용이 증가하였다. 그에 비해 도 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 multi-core cache circuits 100 and 200 according to the embodiments of the present invention illustrated in FIGS. 1 and 2 use the conventional single core cache controllers 120 and 220 as they are, and are relatively simple. The command processor 130 and 230 and the selectors 140 and 240 that can be implemented are added to the present invention. That is, the conventional single core cache controllers 120 and 220 perform a function of reading data from the cache memory according to a request of one of the plurality of cores, and the command processor 130 or 230 of the consistency management circuit Change the state information of cache lines and control line sharing information between the cache lines according to a request, and selectors 140 and 240 selectively process the request of the core and the consistency management circuit. Is implemented. Therefore, the multi-core cache circuits 100 and 200 according to the embodiments of the present invention can solve the line sharing problem while reducing the complexity and manufacturing cost compared to the conventional multi-core cache circuit.

도 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 cache apparatus 300 includes a plurality of multi-core cache circuits 310, 320, 330, and 340 and a consistency management circuit 360.

복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)은 상기 복수의 코어들 중 하나와 각각 연결되고, 상기 연결된 코어로부터 수신된 요청 신호에 기초하여 저장된 데이터를 상기 연결된 코어에 제공한다. 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340) 각각은 도 1 또는 도 2의 멀티 코어용 캐시 회로(100, 200)일 수 있다. 예를 들어, 제1 멀티 코어용 캐시 회로(310)는 제1 캐시 메모리부, 제1 싱글 코어용 캐시 컨트롤러 및 제1 커맨드 처리부를 포함할 수 있고, 제1 선택부를 더 포함할 수 있다.A plurality of multi-core cache circuits 310, 320, 330, and 340 are respectively connected to one of the plurality of cores and provide stored data to the connected core based on a request signal received from the connected core. . Each of the plurality of multi-core cache circuits 310, 320, 330, and 340 may be the multi-core cache circuits 100 and 200 of FIG. 1 or 2. For example, the first multi-core cache circuit 310 may include a first cache memory unit, a first single core cache controller, and a first command processor, and may further include a first selector.

복수의 멀티 코어용 캐시 회로들(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 multi-core cache circuits 310, 320, 330, and 340 may be encoded regardless of whether the data stored in the cache lines is shared. That is, the state information of the cache lines in the plurality of multi-core cache circuits 310, 320, 330, and 340 may be encoded in the same manner as the conventional single core cache circuit.

도 3에서는 4개의 멀티 코어용 캐시 회로들(310, 320, 330, 340)을 포함하는 멀티 코어용 캐시 장치(300)를 도시하였지만, 실시예에 따라서 멀티 코어용 캐시 장치(300)는 임의의 개수의 멀티 코어용 캐시 회로들을 포함할 수 있다.Although FIG. 3 illustrates a multi-core cache device 300 that includes four multi-core cache circuits 310, 320, 330, and 340, the multi-core cache device 300 may be random in accordance with an embodiment. It may include a number of cache circuits for multi-core.

일관성 관리 회로(360)는 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)에 저장된 상기 데이터의 일관성을 유지한다. 일관성 관리 회로(360)는 상기 캐시 메모리부와 상기 멀티 코어 반도체 장치에 포함된 메인 메모리 사이의 데이터 송수신을 중재할 수 있다. 일관성 관리 회로(360)는 중재부(362), 일관성 관리부(366) 및 복수의 태그 메모리들(367, 368, 369, 370)을 포함할 수 있다.The consistency management circuit 360 maintains the consistency of the data stored in the plurality of multi-core cache circuits 310, 320, 330, and 340. The consistency management circuit 360 may arbitrate data transmission and reception between the cache memory unit and the main memory included in the multi-core semiconductor device. The consistency management circuit 360 may include an arbitration unit 362, a consistency management unit 366, and a plurality of tag memories 367, 368, 369, and 370.

중재부(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 arbitration unit 362 is configured based on the request signals REQ1, REQ2, REQ3, and REQ4 provided from the plurality of cores through the plurality of multi-core cache circuits 310, 320, 330, and 340, respectively. It arbitrates data transmission and reception between the multi-core cache circuits 310, 320, 330, and 340 and the main memory. That is, the arbitration unit 362 may provide data DAT1, DAT2, and DAT3 provided from the plurality of multi-core cache circuits 310, 320, 330, and 340 based on the request signals REQ1, REQ2, REQ3, and REQ4. , DAT4) may be provided to the consistency management unit 366, and data received from the main memory through the consistency management unit 366 may be stored in the plurality of multi-core cache circuits 310, 320, 330, and 340. Can be provided in one. In one embodiment, the arbitration unit 362 may be implemented including a multiplexer.

일관성 관리부(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 consistency management unit 366 maintains the consistency of data stored in the cache memory unit of the plurality of multi-core cache circuits 310, 320, 330, and 340. The consistency manager 366 may use a snooping protocol to maintain the consistency. In the multi-core system, responsibility for consistency management is distributed to all cache controllers connected to the multi-core, and the consistency management unit 366 includes a plurality of multi-core cache circuits 310, 320, 330, and 340. Snooping to access The consistency management unit 366 copies the tag information and the line state information stored in the cache memory unit to the plurality of multi-core cache circuits 310, 320, 330, and 340, respectively, so that the plurality of tag memories 367, 368, 369 and 370, and when the line state information of the cache memory unit needs to be changed, the plurality of multi-core cache circuits 310 corresponding to one of the change signals CS1, CS2, CS3, and CS4 are stored. It may be provided to one of the 320, 330, 340 to maintain the consistency of the data stored in the cache memory unit.

복수의 태그 메모리들(367, 368, 369, 370)은 상기 태그 정보들 및 상기 라인 상태 정보들의 복사본을 각각 저장한다. 상기와 같이 일관성 관리 회로(360) 내에 상기 태그 정보들 및 상기 라인 상태 정보들의 복사본을 저장하여, 상기 일관성 관리를 수행할 때마다 복수의 멀티 코어용 캐시 회로들(310, 320, 330, 340)의 상기 캐시 메모리부에 액세스할 필요가 없어짐으로써, 멀티 코어용 캐시 장치(300)의 성능 저하를 방지한다.The plurality of tag memories 367, 368, 369, and 370 store copies of the tag information and the line state information, respectively. As described above, a copy of the tag information and the line state information is stored in the consistency management circuit 360, so that the plurality of multi-core cache circuits 310, 320, 330, and 340 are performed each time the consistency management is performed. By eliminating the need to access the cache memory portion of the cache, the performance degradation of the multi-core cache device 300 is prevented.

복수의 태그 메모리들(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 tag memories 367, 368, 369, and 370 may include a dirty (D) flag and a valid (V) flag, and additionally include a shared (S) flag indicating a shared state of the cache line. have. In addition, a copy of the line state information stored in the plurality of tag memories 367, 368, 369, and 370 may be provided based on a MESI protocol. The copy of the line state information may be encoded in the consistency management unit 366, in which case the line state information stored in the cache memory unit of the plurality of multi-core cache circuits 310, 320, 330, and 340, respectively. And copies of the line state information stored in the plurality of tag memories 367, 368, 369, and 370 may be encoded differently. For example, the line state information stored in the cache memory units of the plurality of multi-core cache circuits 310, 320, 330, and 340, respectively, may be a combination of the dirty flag and the valid flag as described with reference to FIG. 1. Can be encoded, and the exclusive state and the shared state can be encoded equally. On the other hand, the copy of the line state information stored in the plurality of tag memories 367, 368, 369, and 370 has values of S = 0, D = 1, and V = 1 when any cache line is in a modified state. , In the exclusive state, S = 0, D = 0, V = 1, in the shared state S = 1, D = 0, V = 1, in the invalid state, S, D is random It can have a value of V = 0.

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

Figure 112010004509351-pat00001
Figure 112010004509351-pat00001

상기의 [표 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 multi-core cache circuits 310, 320, 330, and 340, consistency management is performed. The state of the cache line of the cache memory unit may be changed without waiting for the determination result of the circuit 360. In addition, the determination result of the consistency management circuit 360 may be stored in the plurality of tag memories 367, 368, 369, and 370 including the sharing flag to distinguish the exclusive (E) state from the shared (S) state. . That is, the final state of the cache line may be known regardless of the processing result of the consistency management circuit 360, and the traffic for synchronizing the state of the cache line with the consistency management circuit 360 may be reduced.

도 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 multi-core semiconductor device 400 includes a processor 410, a multi-core cache device 430, and a main memory 450.

메인 메모리(450)는 프로세서(410)가 데이터를 요청하면 상기 요청된 데이터를 멀티 코어용 캐시 장치(430)를 통해 제공한다.When the processor 410 requests data, the main memory 450 provides the requested data through the multi-core cache device 430.

프로세서(410)는 복수의 코어들(412, 414, 416, 418)을 포함한다. 프로세서(410)는 상기 요청된 데이터가 멀티 코어용 캐시 장치(430)의 캐시 메모리에 있으면 멀티 코어용 캐시 장치(430)로부터 데이터를 입력받고, 요청한 데이터가 상기 캐시 메모리에 없으면 메인 메모리(450)에 데이터를 요청하여 메인 메모리(450)로부터 멀티 코어용 캐시 장치(430)를 통해 데이터를 입력 받는다.Processor 410 includes a plurality of cores 412, 414, 416, 418. The processor 410 receives data from the multi-core cache device 430 when the requested data is in the cache memory of the multi-core cache device 430, and if the requested data is not in the cache memory, the main memory 450. Data is requested from the main memory 450 to receive data from the multi-core cache device 430.

멀티 코어용 캐시 장치(430)는 도 3의 멀티 코어용 캐시 장치(300)일 수 있다. 멀티 코어용 캐시 장치(430)는 복수의 멀티 코어용 캐시 회로들(432, 434, 436, 438) 및 일관성 관리 회로(440)를 포함한다.The multi-core cache device 430 may be the multi-core cache device 300 of FIG. 3. The multi core cache device 430 includes a plurality of multi core cache circuits 432, 434, 436, and 438 and a consistency management circuit 440.

복수의 멀티 코어용 캐시 회로들(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 core cache circuits 432, 434, 436, and 438 may be the multi core cache circuits 100 and 200 of FIG. 1 or 2, respectively. The plurality of multi-core cache circuits 432, 434, 436, 438 store some of the data in the main memory 450 and request received from one of the plurality of cores 412, 414, 416, 418. Provide the requested data based on the signal. For example, the first multi-core cache circuit 432 is connected to the first core 410, and based on the request signal received from the first core 410, the requested data to the first core 410 To provide.

일관성 관리 회로(440)는 복수의 멀티 코어용 캐시 회로들(432, 434, 436, 438)에 저장된 상기 데이터의 일관성을 유지한다.The consistency management circuit 440 maintains the consistency of the data stored in the plurality of multi-core cache circuits 432, 434, 436, and 438.

도 4에서는 4개의 코어들(412, 414, 416, 418)을 포함하는 멀티 코어 반도체 장치(400)를 도시하였지만, 실시예에 따라서 멀티 코어 반도체 장치(400)는 임의의 개수의 코어들을 포함할 수 있다.Although FIG. 4 illustrates a multi-core semiconductor device 400 including four cores 412, 414, 416, 418, the multi-core semiconductor device 400 may include any number of cores in accordance with an embodiment. Can be.

이하 도 1, 도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 복수의 코어들을 가지는 멀티 코어 반도체 장치(400)에 포함된 캐시 메모리(110)를 제어하는 방법을 설명한다.Hereinafter, a method of controlling the cache memory 110 included in the multi-core semiconductor device 400 having a plurality of cores according to an exemplary embodiment will be described with reference to FIGS. 1, 3, and 4.

싱글 코어용 캐시 컨트롤러(120)는 복수의 코어들(412, 414, 416, 418) 중 캐시 메모리(110)와 통신하는 코어로부터 수신된 요청 신호(REQ)에 기초하여 데이터 요청 신호(DREQ)를 제공한다. 요청 신호(REQ) 및 데이터 요청 신호(DREQ)는 복수의 어드레스, Din, Dout, CS, RW 및 BE 신호 등의 조합으로 이루어질 수 있다.The single core cache controller 120 may generate a data request signal DREQ based on a request signal REQ received from a core communicating with the cache memory 110 among the plurality of cores 412, 414, 416, and 418. to provide. The request signal REQ and the data request signal DREQ may be a combination of a plurality of addresses, Din, Dout, CS, RW, and BE signals.

캐시 메모리부(110)는 저장된 데이터(117) 중에서 데이터 요청 신호(DREQ)에 대응하는 데이터(RDAT)를 복수의 코어들(412, 414, 416, 418) 중 캐시 메모리(110)와 통신하는 상기 코어에 제공한다.The cache memory 110 communicates the data RDAT corresponding to the data request signal DREQ among the stored data 117 with the cache memory 110 among the plurality of cores 412, 414, 416, and 418. To the core.

커맨드 처리부(130)는 일관성 관리 회로(360)로부터 입력된 변경 신호(CS)에 기초하여 상태 변경 정보(SCS)를 제공한다. 변경 신호(CS) 및 상태 변경 신호(SCS)는 복수의 커맨드 신호 및 어드레스 등의 조합으로 이루어질 수 있다. 상기 상태 변경 정보(SCS)에 기초하여, 캐시 라인들(110-1, 110-2, ..., 110-n) 중 데이터(117)의 독출 또는 기입에 의해 상태 변경이 필요한 캐시 라인의 상기 라인 상태 정보가 변경된다. 상기 라인 상태 정보는 상기 캐시 라인에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩될 수 있다.The command processor 130 provides state change information SCS based on the change signal CS input from the consistency management circuit 360. The change signal CS and the state change signal SCS may be formed by a combination of a plurality of command signals and an address. On the basis of the state change information (SCS), the cache line of the cache line (110-1, 110-2, ..., 110-n) of the cache line that needs to change the state by reading or writing the data 117 Line status information is changed. The line state information may be encoded regardless of whether the data stored in the cache line is shared.

커맨드 처리부(130)는 캐시 메모리(110)에 저장된 데이터(117) 중 일부(DAT)를 일관성 관리 회로(360)로 제공한다. 일관성 관리 회로(360)는 데이터(DAT)를 다른 캐시 메모리 또는 메인 메모리에 제공하여 멀티 코어 반도체 장치(400)에 포함된 상기 캐시 메모리들의 데이터의 일관성을 유지하도록 한다.The command processor 130 provides a part DAT of the data 117 stored in the cache memory 110 to the consistency management circuit 360. The consistency management circuit 360 may provide data DAT to another cache memory or main memory to maintain consistency of data of the cache memories included in the multi-core semiconductor device 400.

본 발명에 따르면, 구조 변경을 최소화하면서 코어들 간의 자원 공유 문제를 해결할 수 있고 트래픽을 감소시킬 수 있는 멀티 코어용 캐시 회로를 제공하여 멀티 코어용 캐시 장치 및 반도체 장치의 성능 향상을 가져오며, 멀티 코어로 구현된 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.
제1항에 있어서, 상기 캐시 라인들의 상태 정보는 상기 캐시 메모리부에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩되는 것을 특징으로 하는 멀티 코어용 캐시 회로.The cache circuit of claim 1, wherein the state information of the cache lines is encoded regardless of whether the data stored in the cache memory unit is shared. 제1항에 있어서, 상기 데이터 요청 신호 및 상기 상태 변경 신호 중 하나를 선택하여 상기 캐시 메모리부에 제공하는 선택부를 더 포함하는 것을 특징으로 하는 멀티 코어용 캐시 회로.The cache circuit of claim 1, further comprising: 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. 제3항에 있어서, 상기 캐시 메모리부는,
상기 복수의 캐시 라인들을 포함하고 상기 데이터를 저장하는 캐시 메모리; 및
상기 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장하는 태그 메모리를 포함하는 것을 특징으로 하는 멀티 코어용 캐시 회로.
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.
제4항에 있어서, 상기 데이터 요청 신호는 상기 캐시 메모리에 저장된 상기 데이터를 요청하는 제1 데이터 요청 신호 및 상기 제1 데이터 요청 신호에 대응하여 상기 태그 메모리를 제어하는 제2 데이터 요청 신호를 포함하고, 상기 상태 변경 신호는 상기 캐시 라인들의 상태 정보를 변경하는 경우 상기 캐시 메모리를 제어하는 제1 상태 변경 신호 및 상기 태그 메모리를 제어하는 제2 상태 변경 신호를 포함하며, 상기 선택부는,
상기 제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.
제6항에 있어서, 상기 캐시 라인들의 상태 정보는 상기 캐시 메모리부에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩되는 것을 특징으로 하는 멀티 코어용 캐시 장치.The cache apparatus of claim 6, wherein the state information of the cache lines is encoded regardless of whether the data stored in the cache memory unit is shared. 제6항에 있어서, 상기 데이터 요청 신호 및 상기 상태 변경 신호 중 하나를 선택하여 상기 캐시 메모리부에 제공하는 선택부를 더 포함하는 것을 특징으로 하는 멀티 코어용 캐시 장치.The cache apparatus of claim 6, further comprising 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. 제6항에 있어서, 상기 일관성 관리 회로는,
상기 복수의 멀티 코어용 캐시 회로들의 상기 캐시 메모리부에 저장된 상기 태그 정보 및 상기 상태 정보의 복사본을 각각 저장하는 복수의 태그 메모리들을 포함하는 것을 특징으로 하는 멀티 코어용 캐시 장치.
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.
제9항에 있어서, 상기 복수의 멀티 코어용 캐시 회로들의 상기 캐시 메모리부에 각각 저장된 상기 캐시 라인들의 상태 정보와 상기 일관성 관리 회로의 상기 복수의 태그 메모리들에 각각 저장된 상기 캐시 라인들의 상태 정보의 복사본은 서로 다르게 인코딩된 것을 특징으로 하는 멀티 코어용 캐시 장치.The method of claim 9, wherein the state information of the cache lines respectively stored in the cache memory unit of the plurality of multi-core cache circuits and the state information of the cache lines stored in the plurality of tag memories of the consistency management circuit, respectively. And the copy is encoded differently. 복수의 코어들을 가지는 멀티 코어 반도체 장치로서,
메인 메모리;
상기 메인 메모리의 데이터 중에서 일부 데이터를 저장하고, 상기 복수의 코어들 중 하나와 각각 연결되며, 상기 연결된 코어로부터 수신된 요청 신호에 기초하여 상기 저장된 데이터를 상기 연결된 코어에 각각 제공하는 복수의 멀티 코어용 캐시 회로들; 및 상기 복수의 멀티 코어용 캐시 회로들에 저장된 상기 데이터의 일관성을 유지하는 일관성 관리 회로를 포함하는 멀티 코어용 캐시 장치; 및
상기 복수의 코어들을 포함하고, 상기 멀티 코어용 캐시 장치를 통해 상기 메인 메모리와 데이터를 주고받는 프로세서를 포함하고,
상기 복수의 멀티 코어용 캐시 회로들 각각은,
복수의 캐시 라인들을 포함하고, 데이터, 태그 정보 및 상기 캐시 라인들의 상태 정보를 저장하는 캐시 메모리부;
상기 요청 신호에 기초하여 데이터 요청 신호를 제공하고, 상기 데이터 요청 신호에 대응하는 상기 캐시 메모리부의 데이터를 상기 연결된 코어에 제공하는 싱글 코어용 캐시 컨트롤러; 및
상기 일관성 관리 회로로부터 입력된 변경 신호에 기초하여 상기 캐시 라인들 중 일부의 상태 정보를 변경하는 상태 변경 신호를 제공하고, 상기 캐시 메모리부에 저장된 상기 데이터 중 일부를 상기 일관성 관리 회로로 제공하는 커맨드 처리부를 포함하는 멀티 코어 반도체 장치.
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.
제12항에 있어서, 상기 캐시 라인들의 상태 정보는 상기 캐시 메모리에 저장된 상기 데이터의 공유 여부와 무관하게 인코딩되는 것을 특징으로 하는 캐시 메모리 제어 방법.The method of claim 12, wherein the state information of the cache lines is encoded regardless of whether the data stored in the cache memory is shared.
KR1020100006038A 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 KR101043199B1 (en)

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)

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

Patent Citations (4)

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