KR102131337B1 - 고장 제어 기능을 구비한 캐시 메모리 - Google Patents
고장 제어 기능을 구비한 캐시 메모리 Download PDFInfo
- Publication number
- KR102131337B1 KR102131337B1 KR1020140142023A KR20140142023A KR102131337B1 KR 102131337 B1 KR102131337 B1 KR 102131337B1 KR 1020140142023 A KR1020140142023 A KR 1020140142023A KR 20140142023 A KR20140142023 A KR 20140142023A KR 102131337 B1 KR102131337 B1 KR 102131337B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- data
- cache
- memory
- tag
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
Abstract
본 발명은 캐시 메모리에서 발생하는 오류를 복구하거나 외부에 알리는 캐시 메모리의 고장 제어에 관한 것이다
본 발명에 따른 캐시 메모리는 프로세서로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위한 패리티 체크 비트를 추가적으로 저장하는 제1 계층 캐시; 상기 제1 계층 캐시로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위해 패리티 체크 비트 및ECC(Error Correction Code) 비트를 추가적으로 저장하는 제2 계층 캐시; 및 상기 제1 계층 캐시 및 상기 제2 계층 캐시중 적어도 하나에서 발생하는 오류의 복구 가능 여부를 나타내는 오류 신호를 생성하는 고장 제어부를 포함한다.
본 발명에 따른 캐시 메모리는 프로세서로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위한 패리티 체크 비트를 추가적으로 저장하는 제1 계층 캐시; 상기 제1 계층 캐시로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위해 패리티 체크 비트 및ECC(Error Correction Code) 비트를 추가적으로 저장하는 제2 계층 캐시; 및 상기 제1 계층 캐시 및 상기 제2 계층 캐시중 적어도 하나에서 발생하는 오류의 복구 가능 여부를 나타내는 오류 신호를 생성하는 고장 제어부를 포함한다.
Description
본 발명은 캐시 메모리의 고장 제어에 관한 것으로서, 구체적으로는 메인 메모리 및 캐시 메모리를 포함하는 구조에서 캐시 메모리에서 발생하는 오류를 복구하거나 외부에 알리는 캐시 메모리의 고장 제어에 관한 것이다.
캐시 메모리(이하, '캐시')는 프로세서와 메인 메모리 사이에 위치하며 메인 메모리에 비하여 신속한 응답이 가능한 메모리로서, 프로세서가 필요로 하는 명령어 및/데이터를 주소와 함께 일시적으로 저장하고 있다.
외부 요인으로 인해 캐시에 오류가 발생할 경우에, 프로세서가 캐시로부터 잘못된 명령어를 판독하여 명령어를 해석하지 못하거나 원하지 않는 동작을 수행할 수 있다. 또는, 프로세서가 잘못된 데이터를 판독하여 원하는 결과를 산출하지 못할 수도 있다.
따라서, 캐시에 오류가 발생한 경우에 이를 파악하여 복구하거나 외부에 알려 적절한 복구가 이루어지도록 할 필요성이 있다.
따라서, 본 발명은 캐시에 오류(예, 소프트 에러)가 발생한 경우에 이를 자체적으로 복구하고 자체적으로 복구가 어려울 경우에는 외부에 알려 복구될 수 있도록 하는 캐시 메모리에 관한 것이다.
전술한 목적을 달성하기 위해, 본 발명의 일특징에 따른 캐시 메모리는 프로세서로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위한 패리티 체크 비트를 추가적으로 저장하는 제1 계층 캐시; 상기 제1 계층 캐시로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위해 패리티 체크 비트 및ECC(Error Correction Code) 비트를 추가적으로 저장하는 제2 계층 캐시; 및 상기 제1 계층 캐시 및 상기 제2 계층 캐시 중 적어도 하나에서 발생하는 오류의 복구 가능 여부를 나타내는 오류 신호를 생성하는 고장 제어부를 포함한다.
일실시예에서, 상기 제1 계층 캐시는, 상기 태그 및 상기 태그의 오류를 검출하기 위한 패리티 체크 비트가 저장되는 태그 메모리, 상기 데이터 및 상기 데이터의 오류를 검출하기 위한 패리티 체크 비트가 저장되는 데이터 메모리; 상기 데이터 메모리에 저장된 데이터의 변경 여부를 나타내는 더티비트가 저장되는 더티비트 메모리; 및 상기 태그 메모리 및 상기 데이터 메모리 각각에 저장된 상기 패리티 체크 비트를 검사함으로써 태그 오류 및 데이터 오류 여부를 검사하고 검사 결과에 따라 태그오류신호 및 데이터오류 신호 중 적어도 하나를 출력하는 제1 계층 캐시 오류 검사부를 포함할 수 있다.
일실시예에서, 상기 제2 계층 캐시는, 상기 태그 및 상기 태그의 오류를 검출하기 위한 패리티 체크 비트가 저장되는 태그 메모리, 상기 데이터 및 상기 데이터의 오류를 검출하기 위한 ECC 비트가 저장되는 데이터 메모리; 상기 데이터 메모리에 저장된 데이터의 변경 여부를 나타내는 더티비트가 저장되는 더티비트 메모리; 및 상기 태그 메모리 및 상기 데이터 메모리 각각에 저장된 상기 패리티 체크 비트 및 ECC 비트를 검사함으로써 태그 오류 및 데이터 오류 여부를 검사하고 검사 결과에 따라 태그오류신호 및 데이터오류 신호 중 적어도 하나를 출력하는 제2 계층 캐시 오류 검사부를 포함할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 제1 계층 캐시에 저장된 태그 및 데이터 중 적어도 하나에 오류가 있음이 확인된 경우에 상기 태그 및 데이터에 연관된 더티비트를 검사함으로써 상기 오류의 복구가능 여부를 판단할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 오류가 복구가능한 것으로 판단되면 복구가능함을 나타내는 오류 신호를 출력하고, 오류를 복구하기 위해 제2 계층 캐시 읽기 요청 신호를 또한 출력할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 오류가 복구 불가능한 것으로 판단되면 상기 오류가 복구 불가능함을 나타내는 오류 신호를 출력할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 제2 계층 캐시에 저장된 태그에 오류가 있음이 확인된 경우에 상기 태그에 연관된 제2 계층 더티비트를 검사함으로써 상기 태그 오류의 복구가능 여부를 판단할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 태그 오류가 복구가능한 것으로 판단되면 상기 오류가 복구 가능함을 나타내는 오류 신호를 출력하고, 오류를 복구하기 위해 메인 메모리 캐시 읽기 요청 신호를 또한 출력할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 태그 오류가 복구 불가능한 것으로 판단되면 상기 오류가 복구 불가능함을 나타내는 오류 신호를 출력할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 제2 계층 캐시에 저장된 데이터에 오류가 있음이 확인된 경우에 상기 데이터 오류가 단일 비트 오류(single error) 인지 이중 비트 오류(double error)인 지 판단할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 데이터 오류가 단일 비트 오류인 경우에 상기 오류가 복구가능함을 나타내는 오류 신호를 출력하고 상기 ECC 비트를 이용하여 상기 오류를 복구할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 데이터 오류가 이중 비트 오류인 경우에 상기 데이터에 연관된 제2 계층 더티비트를 검사함으로써 상기 데이터 오류의 복구가능 여부를 판단할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 제2 계층 더티비트를 검사한 결과 상기 데이터 오류가 복구가능한 것으로 판단되면 복구가능함을 나타내는 오류 신호를 출력하고, 오류를 복구하기 위해 메인 메모리 캐시 읽기 요청 신호를 또한 출력할 수 있다.
일실시예에서, 상기 고장 제어부는 상기 제2 계층 더티비트를 검사한 결과 상기 데이터 오류가 복구 불가능한 것으로 판단되면 상기 오류가 복구 불가능함을 나타내는 오류 신호를 출력할 수 있다.
일실시예에서, 상기 제1 계층 캐시는, 상기 프로세서로부터 수신되는 데이터 및 상기 데이터의 주소를 저장하기 위한 프로세서 기록 버퍼; 및 상기 프로세서로부터 상기 프로세서 기록 버퍼에 저장된 데이터에 오류가 없음을 나타내는 신호가 수신되면 상기 프로세서 기록 버퍼에 저장된 상기 데이터 및 상기 데이터의 주소가 상기 데이터 메모리 및 상기 태그 메모리 각각에 기록되도록 제어하는 프로세서 오류 검사부를 더 포함할 수 있다.
일실시예에서, 상기 제1 계층 캐시는, 상기 제1 계층 캐시의 데이터 메모리 또는 태그 메모리에서 검출되는 오류 복구를 위해 상기 데이터 메모리 및 상기 태그 메모리에 저장되는 데이터 및 주소와 동일한 데이터 및 주소를 저장하기 위한 기록 버퍼를 더 포함할 수 있다.
일실시예에서, 상기 제2 계층 캐시는, 상기 제2계층 캐시의 데이터 메모리 또는 태그 메모리에서 검출되는 오류 복구를 위해 상기 데이터 메모리 및 상기 태그 메모리에 저장되는 데이터 및 주소와 동일한 데이터 및 주소를 저장하기 위한 기록 버퍼를 더 포함할 수 있다.
본 발명에 따르면, 캐시에서 발생하는 오류 유형에 따라 복구 가능 여부를 판단하여 복구할 수 있으며, 복구가 불가능한 경우에도 외부에 알려 다른 방식으로 복구가 이루어질 수 있도록 한다.
도 1은 본 발명의 일실시예에 따른 캐시 메모리 구조를 개념적으로 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 캐시 메모리의 고장 제어 동작을 도시한 흐름도이다
도 3은 본 발명의 다른 실시예에 따른 캐시 메모리 구조를 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 캐시 메모리의 고장 제어 동작을 도시한 흐름도이다
도 3은 본 발명의 다른 실시예에 따른 캐시 메모리 구조를 도시한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 용어들중 "모듈", "부", "인터페이스"등은 일반적으로 컴퓨터 관련 객체를 의미하며, 예를 들어, 하드웨어, 소프트웨어 및 이들의 조합을 의미할 수 있다.
이하, 도 1 및 2를 참조하여 본 발명의 실시예들을 설명하겠다.
도 1은 본 발명의 일실시예에 따른 캐시 메모리 구조를 개념적으로 도시한 블록도이다. 도시된 바와 같이, 캐시 메모리(1200)는 메인 메모리(1100, 예를 들어, SDRAM)와 프로세서(1300) 사이에 위치한다.
일실시예에서, 캐시 메모리(1200)는 프로세스 요청에 따라 데이터/명령어가 저장되는 L1 캐시(1210) 및 L2 캐시(1220)로 이루어진 2-계층 캐시 구조로 이루어져 있다. 그러나, 이는 본원발명의 이해를 돕기 위해 가장 단순한 계층 구조의 캐시를 도시한 것이며, 실시예에 따라서는 캐시 메모리(1200)가 3-계층, 4-계층 등의 다양한 계층 구조로 이루어질 수 있다. 또한, 각 캐시 계층은 물리적으로 하나의 캐시만으로 이루어지지 않고 복수의 캐시들로 구성되는 멀티-코어(multi-core) 구조로 이루어질 수 있으며, 본 발명은 특정 계층 구조의 캐시 메모리에 제한되지 않음은 본 기술분야의 당업자에게 자명하다.
일실시예에서, 캐시 메모리(1200)는 캐시 메모리(1200)의 오류를 처리하기 위해 고장 제어부(1230)를 포함한다. 본 발명에서 L1 캐시(1210) 및 L2 캐시(1220)에 저장되는 값의 유형이 데이터인지 명령어인지에 상관없으므로, 이하에서는 '데이터'라 총칭하겠다.
L1 캐시(1210)는 프로세서로부터 요청된 주소를 포함하는 일정 영역의 데이터를 요청된 주소와 함께 저장한다.
일실시예에서, L1 캐시(1210)는 태그 메모리(1211), 데이터 메모리(1212), 더티비트 메모리(1213) 및 L1 오류검사부(1214)를 포함할 수 있다.
태그 메모리(1211)는 데이터의 태그와 상기 태그의 오류를 검출하기 위한 패리티 체크 비트를 추가적으로 저장한다.
데이터 메모리(1212)는 데이터 및 상기 데이터의 오류를 검출하기 위한 패리티 체크 비트를 추가적으로 저장한다.
더티비트 메모리(1213)는 상기 데이터 메모리에 저장된 데이터의 변경 여부를 나타내는 더티비트가 저장된다. 일 예에서, 4개의 더티비트가 저장될 수 있다.
L1 오류검사부(1214)는 태그 메모리(1211) 및 데이터 메모리(1213) 각각에 저장된 태그 및 데이터의 패리티 체크 비트를 검사함으로써 태그 오류 및 데이터 오류 여부를 판단할 수 있다. L1 오류검사부(1214)는 검사 결과 태그 오류가 발생한 것으로 판단되면 L1 태그오류신호(L1tagerror)를 출력하고, 데이터 오류가 발생한 것으로 판단되면 L1 데이터오류신호(L1dataerror)를 출력한다.
L2 캐시(1220)는 L1 캐시(1210)로부터 요청된 주소를 포함하는 일정영역의 데이터를 요청된 주소와 함께 저장한다.
일실시예에서, L1 캐시(1210)과 유사하게, L2 캐시(1220)는 태그 메모리(1221), 데이터 메모리(1222), 더티비트 메모리(1223) 및 L2 오류검사부(1224)를 포함할 수 있다. 그러나, L2 캐시(1220)의 태그 메모리(1221)는 태그와 함께 태그 오류를 검출하는데 이용되는 패리티 체크 비트를 저장하지만, 데이터 메모리(1223)는 데이터와 함께 상기 데이터 오류를 검출하기 위해 2-비트 ECC(Error Correction Code)를 저장한다는 점에서 L1 캐시(1210)와 구분될 수 있다.
L2 오류검사부(1224)는 L1 캐시(1210)로부터 요청된 주소에 대응하여 태그 메모리(1221) 및 데이터 메모리(1223) 각각에 저장된 태그의 패리티 체크 비트 및 데이터의 2 비트 ECC 코드를 검사함으로써 태그 오류 및 데이터 오류 여부를 검사할 수 있다. L2 오류검사부(1224)는 검사 결과 태그 오류가 발생한 것으로 판단되면 L2 태그오류신호(L2tagerror)를 출력하고, 데이터 오류가 발생한 것으로 판단되면 L2 데이터오류신호(L2dataerror)를 출력한다. 이 때, L2 오류검사부(1224)는 단일 비트 오류(single error) 인 경우와 이중 비트 오류(double error)인 경우를 구분하여 L2 데이터오류신호를 상이한 값((예, dataerror[1]/dataerror[2])으로 출력할 수 있다.
일실시예에서, 고장 제어부(1230)는 L1 캐시(1210) 및/또는 L2 캐시(1220)에서 발생하는 오류 신호에 근거하여 캐시 메모리의 오류 유형을 판단하고 복구 가능한 오류인 경우에는 복구를 수행할 수 있다.
구체적으로, 고장 제어부(1230)는 L1 캐시(1210)로부터 L1 태그오류신호(L1tagerror) 및 L1 데이터오류신호(L1dataerror)와 요청된 주소에 의해 접근되는 더티비트 메모리(1212)내 4개의 L1 더티비트(L1dirtybit)를 입력으로 받고, L2 캐시(1220)로부터 L2 태그오류신호(L2tagerror) 및 L2 데이터오류신호(L2dataerror)와 요청된 주소에 의해 접근되는 더티비트 메모리(1222)내 4개의 L2 더티비트(L2dirtybit)를 입력으로 받을 수 있다.
고장 제어부(1230)는 L1 캐시(1210)로부터 입력되는 L1 태그오류신호(L1tagerror), L1 데이터오류신호(L1dataerror) 및 L1 더티비트와 L2 캐시(1220)로부터 입력되는 L2 태그오류신호(L2tagerror), L2 데이터오류신호(L2dataerror) 및 L2 더티비트(L2dirtybit)에 근거하여 오류 유형을 판단하고 오류 유형을 나타내는 오류유형신호(fterror)를 생성할 수 있다.
일실시예에서, 오류유형신호(fterror) 값은 4개의 비트로 구성되며 하기와 같은 의미를 가질 수 있다.
- 제1 유형 오류신호(fterror[0]): L1 캐시에서 복구 가능한 오류가 발생함
- 제2 유형 오류신호(fterror[1]): L1 캐시에서 복구 불가능한 오류가 발생함
- 제3 유형 오류신호(fterror[2]): L2 캐시에서 복구 가능한 오류가 발생함
- 제4 유형 오류신호(fterror[3]): L2 캐시에서 복구 불가능한 오류가 발생함
또한, 고장 제어부(1230)는 전술한 오류유형신호에 부가하여 오류 복구를 위한 읽기요청신호를 생성할 수 있다. 구체적으로, 고장 제어부(1230)는 L1 캐시에 발생한 오류를 복구하기 위해 L2 캐시에 읽기 요청하는 캐시 읽기 요청 신호 및/또는 L2 캐시에 발생한 오류를 복구하기 위해 메인 메모리에 읽기 요청하는 메모리 읽기 요청 신호를 생성할 수 있다.
도 2는 본 발명의 일실시예에 따른 캐시 메모리의 고장 제어 동작을 도시한 흐름도이다
단계(S210)에서, 프로세서로부터 L1 캐시에 데이터 요청시에 L1 캐시의 데이터 오류 및/또는 태그 오류를 확인한다.
L1 캐시내에 데이터 오류 또는 태그 오류가 하나라도 존재하는 것으로 확인되면, L1 캐시의 더티비트 값을 이용하여 L1 캐시에서 발생한 오류가 복구가능한지 여부를 판단한다. 판단결과에 따라, 복구 가능한 L1 캐시 오류가 발생함을 나타내는 제1 유형의 오류 신호 또는 복구 불가능한 L1 캐시 오류가 발생함을 나타내는 제2 유형의 오류 신호를 생성한다(단계 S220).
일실시예에서, L1 더티비트 값이 모두 '0'이라면 L1 캐시에서 복구 가능하므로 제1 유형 오류 신호를 생성한다. 또한, 오류 복구를 위해 L2 캐시 읽기 요청 신호가 생성될 수 있다. 그러나, 더티비트 값이 모두 '0'이 아닌 경우에는 L1 캐시의 데이터 메모리에 저장된 데이터의 대응 부분이 변경된 후에 아직 L2 캐시와 메인 메모리에 반영되지 않음을 나타내는 것이므로, 오류 복구가 불가능한 것으로 판단하여 제2 유형의 오류 신호를 생성할 것이다.
반면에, L1 캐시 내에 데이터 오류 또는 태그 오류가 존재하지 않는 경우에는 L2 캐시내에 태그 오류가 존재하는지 확인하는 단계(S230)로 진행한다.
L2 캐시 내에 태그 오류가 존재하는 것으로 확인된 경우에는 L2 더티비트값을 이용하여 L2 캐시에서 발생한 태그 오류가 복구 가능한 것인지 여부를 판단하고, 판단결과에 따라 복구 가능한 L2 캐시 오류가 발생함을 나타내는 제3 유형의 오류 신호 또는 복구 불가능한 L2 캐시 오류가 발생함을 나타내는 제4 유형의 오류 신호를 생성한다(단계 S240).
일실시예에서, L2 더티비트 값이 모두 '0'이라면 L2 캐시에서 복구 가능하므로 제3 유형 오류 신호를 생성한다. 또한, 오류 복구를 위해 메인 메모리(예, SDRAM) 읽기 요청 신호가 생성될 수 있다. 그러나, 더티비트 값이 모두 '0'이 아닌 경우에는 오류 복구가 불가능한 것으로 판단하여 제4 유형의 오류 신호를 생성할 것이다.
한편, L2 캐시내에 태그 오류가 존재하지 않는 것으로 확인된 경우에는 L2 캐시내에 데이터 오류가 존재하는지 확인하는 단계(S250)로 진행한다.
L2 캐시내에 데이터 오류가 존재하는 것으로 확인된 경우에는 L2 데이터 오류값 및 더티비트값을 이용하여 L2 캐시에서 발생한 데이터 오류가 복구 가능한 것인지 여부를 판단하고, 판단결과에 따라 복구 가능한 L2 캐시 오류가 발생함을 나타내는 제3 유형의 오류 신호 또는 복구 불가능한 L2 캐시 오류가 발생함을 나타내는 제4 유형의 오류 신호를 생성한다(단계 S260).
일실시예에서, L2 캐시에서 발생한 데이터 오류가 단일 비트 오류(single error) 인 지 이중 비트 오류(double error)인지를 판단하고, 단일 비트 오류인 경우에는 L2 캐시의 데이터 메모리에 저장된 ECC 비트를 이용하여 복구 가능하기 때문에 제3 유형의 오류 신호를 생성할 것이다.
그러나, L2 캐시에서 발생한 데이터 오류가 이중 비트 오류(double error)인 경우에는 L2 더티비트 값을 또한 확인하여 더티비트값이 모두 0인 경우에는 복구가 가능하므로 제3 유형의 오류 신호를 생성하고, 그렇지 않은 경우에는 복구가 불가능함을 나타내는 제4 유형의 오류 신호를 생성한다.
일실시예에서, 제3 유형의 오류 신호가 생성될 때 해당 오류 복구를 위해 메인 메모리(예, SDRAM) 읽기 요청 신호가 함께 생성될 수 있다.
전술한 고장 제어 동작은 프로세서로부터 L1 캐시에 데이터 요청이 있을 때마다 반복되며, 오류 유형에 따라 L2 또는 메인 메모리에 읽기 요청하여 오류를 복구하며, 복구가 불가능한 경우에는 외부에 알림으로써 좀더 복잡한 방식으로 처리되거나 전체 시스템 리셋과 같은 방식으로 처리될 수 있도록 할 수 있다. 캐시 메모리 외부에서의 오류 대응 방식은 본 발명에 의해 제한되지 않을 것이다.
도 3은 본 발명의 다른 실시예에 따른 캐시 메모리 구조를 도시한 블록도이다. 도 3에 도시된 바와 같이, L1 캐시(3210)는 도 1에 도시된 L1 캐시(1210)와 유사하게 태그 메모리(3211), 데이터 메모리(3212), 더티비트 메모리(3213) 및 L1 오류 검사부(3214)를 포함하는 것에 부가하여, 프로세서 기록 버퍼(3215), 프로세서 오류 검사부(3216) 및 L2 기록 버퍼(3217)중 적어도 하나를 더 포함할 수 있다. 또한, L2 캐시(3220)는 도 1에 도시된 L1 캐시(1210)와 유사하게 태그 메모리(3221), 데이터 메모리(3222), 더티비트 메모리(3223) 및 L1 오류 검사부(3224)를 포함하는 것에 부가하여, 메모리 기록 버퍼(3225)를 추가적으로 더 포함할 수 있다.
일실시예에서, 프로세서 기록 버퍼(3215)는 프로세서(3300)로부터 수신되는 기록 데이터(write data) 및 해당 데이터의 주소를 저장하기 위한 버퍼이다. 프로세서(3300)는 프로세서 기록 버퍼(3215)에 저장된 기록 데이터의 오류를 검사하고, 오류가 없다면 기록 데이터 미오류(write data fault-free) 신호를 프로세서 오류 검사부(3216)에 제공할 수 있다.
일실시예에서, 프로세서 오류 검사부(3216)는, 프로세서(3300)로부터 기록 데이터 미오류 신호가 수신되면, 프로세서 기록 버퍼(3215)에 저장된 주소 및 데이터가 L1 캐시(3210)의 태그 메모리(3211) 및 데이터 메모리(3212) 각각에 기록되도록 제어하고, 해당 태그 메모리(3211) 및 데이터 메모리(3212)의 더티비트를 '1'로 설정한다. 이에 따라, 데이터가 L1 캐시(3210)에 반영되기 전에 데이터의 오류 유무를 확인함으로써 L1 캐시의 오류를 줄일 수 있다.
또한, 프로세서 오류 검사부(320)는 프로세서 기록 버퍼(3215)에 저장된 데이터를 L1 캐시의 태그 메모리(3211) 및 데이터 메모리(3212)에 기록하는 것과 동시에 L2 기록 버퍼(3217)에도 기록할 수 있다.
한편, 프로세서(3300)로부터 읽기(read) 요청이 수신되면, 먼저 프로세서 기록 버퍼(3215)에 상기 읽기 요청된 주소에 일치하는 데이터가 존재하는지 판단하고, 상기 읽기 요청된 주소에 일치하는 데이터가 존재하는 경우에는 상기 프로세서 기록 버퍼(3215)에 저장된 해당 데이터를 프로세서(3300)에 전달할 수 있다. 반면에, 상기 읽기 요청된 주소에 일치하는 데이터가 프로세서 기록 버퍼(3215)에 존재하지 않는 경우에는 L1 캐시(3220)를 검색하여 검색된 데이터를 프로세서에 전달할 수 있다.
한편, 도 3에 도시된 캐시 메모리 구조에 따르면, L1 캐시(3210) 및 L2 캐시(3220)의 오류 복구를 위해, L1 캐시(3210) 및 L2 캐시(3220) 는 L2 기록 버퍼(3217) 및 메모리 기록 버퍼(3225)를 각각 포함할 수 있다.
L2 기록 버퍼(3217)는 L1 캐시(3210)의 태그 메모리(3211) 및 데이터 메모리(3212)에 기록되는 데이터 및 주소와 동일한 데이터 및 주소를 저장하는 버퍼로서 L1 캐시(3210)의 오류를 복구하기 위해 이용될 수 있다. L2 기록 버퍼(3217)에 저장된 데이터/주소가 L2 캐시(3220)에 순차적으로 기록되며, 이와 동시에 상기 데이터에 해당하는 더티비트는 '1'에서 '0'로 변경될 수 있다. 즉, 더티비트가 '0'이기에, L1 캐시의 태그 메모리(3211) 및/또는 데이터 메모리(3212)에 오류가 발생하더라도 L2 캐시(3220)에서 읽어와서 오류를 복구를 할 수 있다. 이 동작은 L1 캐시(3210)가 프로세서(3300)로부터 새로운 읽기 요청을 수신하는 경우에도 동시에 수행될 수 있다.
한편, L1 캐시(3210)에서 오류가 검출이 되고 더티비트가 '1'이어서, L2 캐시(3220)의 데이터/주소를 이용하여 오류 정정을 수행할 수 없는 경우에는 L2 기록 버퍼(3217)를 이용해서 복구할 수 있다. L1 캐시(3210)는 L2 캐시(3220)에 오류 복구를 위해 읽기 요청을 보내기 전에 L2 기록 버퍼(3217)를 먼저 검색할 수 있다. L2 기록 버퍼(3217)로부터 해당 데이터를 읽어 패리티 비트를 확인하고 오류가 없는 것으로 확인되면, L2 기록 버퍼(3217)로부터 판독된 해당 데이터를 프로세서(3300)에 전달할 수 있다. 또한, 해당 데이터를 L1 캐시(3210)에 다시 기록함으로써 오류를 복구할 수 있다. 반면에, L2 기록 버퍼(3217)에 저장된 데이터의 패리티 비트를 확인한 결과 오류가 발견되는 경우에는 오류 신호를 고장 제어부(3230)에 전송할 수 있다.
L2 캐시(3220)에 존재하는 메모리 기록 버퍼(3225)도 L2 기록 버퍼(3217)와 동일한 용도로 이용될 수 있다. 즉, 메모리 기록 버퍼(3225)는 L2 캐시(3220)의 태그 메모리(3221) 및 데이터 메모리(3222)에 기록되는 데이터 및 주소와 동일한 데이터 및 주소를 저장하기 위한 버퍼로서 L2 캐시의 오류 복구에 이용될 수 있다. 구체적인 동작은 L2 기록 버퍼(3217)와 유사하기에 생략하기로 한다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
Claims (17)
- 프로세서로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위한 패리티 체크 비트를 추가적으로 저장하는 제1 계층 캐시;
상기 제1 계층 캐시로부터 요청되는 데이터를 저장하되, 상기 데이터 및 상기 데이터에 연관된 태그 각각의 오류를 검출하기 위해 패리티 체크 비트 및ECC(Error Correction Code) 비트를 추가적으로 저장하는 제2 계층 캐시; 및
상기 제1 계층 캐시 및 상기 제2 계층 캐시 중 적어도 하나에서 발생하는 오류의 복구 가능 여부를 나타내는 오류 신호를 생성하는 고장 제어부
를 포함하는 캐시 메모리. - 제1항에 있어서, 상기 제1 계층 캐시는
상기 태그 및 상기 태그의 오류를 검출하기 위한 패리티 체크 비트가 저장되는 태그 메모리,
상기 데이터 및 상기 데이터의 오류를 검출하기 위한 패리티 체크 비트가 저장되는 데이터 메모리;
상기 데이터 메모리에 저장된 데이터의 변경 여부를 나타내는 더티비트가 저장되는 더티비트 메모리; 및
상기 태그 메모리 및 상기 데이터 메모리 각각에 저장된 상기 패리티 체크 비트를 검사함으로써 태그 오류 및 데이터 오류 여부를 검사하고 검사 결과에 따라 태그오류신호 및 데이터오류 신호 중 적어도 하나를 출력하는 제1 계층 캐시 오류 검사부
를 포함하는 캐시 메모리. - 제1항에 있어서, 상기 제2 계층 캐시는,
상기 태그 및 상기 태그의 오류를 검출하기 위한 패리티 체크 비트가 저장되는 태그 메모리,
상기 데이터 및 상기 데이터의 오류를 검출하기 위한 ECC 비트가 저장되는 데이터 메모리;
상기 데이터 메모리에 저장된 데이터의 변경 여부를 나타내는 더티비트가 저장되는 더티비트 메모리; 및
상기 태그 메모리 및 상기 데이터 메모리 각각에 저장된 상기 패리티 체크 비트 및 ECC 비트를 검사함으로써 태그 오류 및 데이터 오류 여부를 검사하고 검사 결과에 따라 태그오류신호 및 데이터오류 신호 중 적어도 하나를 출력하는 제2 계층 캐시 오류 검사부
를 포함하는 캐시 메모리. - 제1항에 있어서, 상기 고장 제어부는 상기 제1 계층 캐시에 저장된 태그 및 데이터중 적어도 하나에 오류가 있음이 확인된 경우에 상기 태그 및 데이터에 연관된 더티비트를 검사함으로써 상기 오류의 복구가능 여부를 판단하는 캐시 메모리.
- 제4항에 있어서, 상기 고장 제어부는 상기 오류가 복구가능한 것으로 판단되면 복구가능함을 나타내는 오류 신호를 출력하고, 오류를 복구하기 위해 제2 계층 캐시 읽기 요청 신호를 또한 출력하는 캐시 메모리.
- 제4항에 있어서, 상기 고장 제어부는 상기 오류가 복구 불가능한 것으로 판단되면 상기 오류가 복구 불가능함을 나타내는 오류 신호를 출력하는 캐시 메모리.
- 제1항에 있어서, 상기 고장 제어부는 상기 제2 계층 캐시에 저장된 태그 에 오류가 있음이 확인된 경우에 상기 태그에 연관된 제2 계층 더티비트를 검사함으로써 상기 태그 오류의 복구가능 여부를 판단하는 캐시 메모리.
- 제7항에 있어서, 상기 고장 제어부는 상기 태그 오류가 복구가능한 것으로 판단되면 상기 오류가 복구가능함을 나타내는 오류 신호를 출력하고, 오류를 복구하기 위해 메인 메모리 캐시 읽기 요청 신호를 또한 출력하는 캐시 메모리.
- 제7항에 있어서, 상기 고장 제어부는 상기 태그 오류가 복구 불가능한 것으로 판단되면 상기 오류가 복구 불가능함을 나타내는 오류 신호를 출력하는 캐시 메모리.
- 제1항에 있어서, 상기 고장 제어부는 상기 제2 계층 캐시에 저장된 데이터에 오류가 있음이 확인된 경우에 상기 데이터 오류가 단일 비트 오류(single error) 인지 이중 비트 오류(double error)인 지 판단하는 캐시 메모리.
- 제10항에 있어서, 상기 고장 제어부는 상기 데이터 오류가 단일 비트 오류인 경우에 상기 오류가 복구가능함을 나타내는 오류 신호를 출력하고 상기 ECC 비트를 이용하여 상기 오류를 복구하는 캐시 메모리.
- 제10항에 있어서, 상기 고장 제어부는 상기 데이터 오류가 이중 비트 오류인 경우에 상기 데이터에 연관된 제2 계층 더티비트를 검사함으로써 상기 데이터 오류의 복구가능 여부를 판단하는 캐시 메모리
- 제12항에 있어서, 상기 고장 제어부는 상기 제2 계층 더티비트를 검사한 결과 상기 데이터 오류가 복구가능한 것으로 판단되면 복구가능함을 나타내는 오류 신호를 출력하고, 오류를 복구하기 위해 메인 메모리 캐시 읽기 요청 신호를 또한 출력하는 캐시 메모리.
- 제12항에 있어서, 상기 고장 제어부는 상기 제2 계층 더티비트를 검사한 결과 상기 데이터 오류가 복구 불가능한 것으로 판단되면 상기 오류가 복구 불가능함을 나타내는 오류 신호를 출력하는 캐시 메모리.
- 제2항에 있어서, 상기 제1 계층 캐시는,
상기 프로세서로부터 수신되는 데이터 및 상기 데이터의 주소를 저장하기 위한 프로세서 기록 버퍼; 및
상기 프로세서로부터 상기 프로세서 기록 버퍼에 저장된 데이터에 오류가 없음을 나타내는 신호가 수신되면 상기 프로세서 기록 버퍼에 저장된 상기 데이터 및 상기 데이터의 주소가 상기 데이터 메모리 및 상기 태그 메모리 각각에 기록되도록 제어하는 프로세서 오류 검사부
를 더 포함하는 캐시 메모리. - 제2항에 있어서, 상기 제1 계층 캐시는,
상기 제1 계층 캐시의 데이터 메모리 또는 태그 메모리에서 검출되는 오류 복구를 위해 상기 데이터 메모리 및 상기 태그 메모리에 저장되는 데이터 및 주소와 동일한 데이터 및 주소를 저장하기 위한 기록 버퍼를 더 포함하는 캐시 메모리. - 제3항에 있어서, 상기 제2 계층 캐시는,
상기 제2계층 캐시의 데이터 메모리 또는 태그 메모리에서 검출되는 오류 복구를 위해 상기 데이터 메모리 및 상기 태그 메모리에 저장되는 데이터 및 주소와 동일한 데이터 및 주소를 저장하기 위한 기록 버퍼를 더 포함하는 캐시 메모리.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140142023A KR102131337B1 (ko) | 2014-10-20 | 2014-10-20 | 고장 제어 기능을 구비한 캐시 메모리 |
US14/858,448 US9830218B2 (en) | 2014-10-20 | 2015-09-18 | Cache memory with fault tolerance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140142023A KR102131337B1 (ko) | 2014-10-20 | 2014-10-20 | 고장 제어 기능을 구비한 캐시 메모리 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160046225A KR20160046225A (ko) | 2016-04-28 |
KR102131337B1 true KR102131337B1 (ko) | 2020-07-07 |
Family
ID=55749168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140142023A KR102131337B1 (ko) | 2014-10-20 | 2014-10-20 | 고장 제어 기능을 구비한 캐시 메모리 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9830218B2 (ko) |
KR (1) | KR102131337B1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642782B2 (en) | 2016-12-08 | 2020-05-05 | Electronics And Telecommunications Research Institute | Multi-core processor and operation method thereof |
US11036595B2 (en) | 2017-10-11 | 2021-06-15 | Electronics And Telecommunications Research Institute | Semiconductor system including fault manager |
US11176395B2 (en) | 2018-11-30 | 2021-11-16 | Electronics And Telecommunications Research Institute | Image recognition processor including functional safety processor core and operation method thereof |
US11341046B2 (en) * | 2019-08-05 | 2022-05-24 | Micron Technology, Inc. | Layer interleaving in multi-layered memory |
US11907572B2 (en) * | 2019-12-30 | 2024-02-20 | Micron Technology, Inc. | Interface read after write |
US11947841B2 (en) * | 2021-06-15 | 2024-04-02 | Micron Technology, Inc. | Managing address access information |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020397A (ja) | 1998-07-03 | 2000-01-21 | Pfu Ltd | キャッシュメモリ制御装置 |
JP2011257966A (ja) | 2010-06-09 | 2011-12-22 | Mitsubishi Electric Corp | キャッシュ装置及び情報処理装置 |
JP2013114441A (ja) | 2011-11-29 | 2013-06-10 | Sony Corp | 不揮発性キャッシュメモリ、不揮発性キャッシュメモリの処理方法、コンピュータシステム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2641819B2 (ja) * | 1990-11-05 | 1997-08-20 | 三菱電機株式会社 | キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式 |
CA2059143C (en) * | 1991-01-25 | 2000-05-16 | Takeshi Miyao | Processing unit for a computer and a computer system incorporating such a processing unit |
US6591335B1 (en) | 2000-09-29 | 2003-07-08 | Emc Corporation | Fault tolerant dual cache system |
US7206966B2 (en) | 2003-10-22 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Fault-tolerant multi-core microprocessing |
GB2409301B (en) | 2003-12-18 | 2006-12-06 | Advanced Risc Mach Ltd | Error correction within a cache memory |
US7636801B1 (en) * | 2005-06-20 | 2009-12-22 | Symantec Operating Corporation | Coordination of quality of service in a multi-layer virtualized storage environment |
US7386662B1 (en) * | 2005-06-20 | 2008-06-10 | Symantec Operating Corporation | Coordination of caching and I/O management in a multi-layer virtualized storage environment |
US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
WO2007035747A2 (en) | 2005-09-19 | 2007-03-29 | Millennium It (Usa) Inc. | Scalable fault tolerant system |
KR100957782B1 (ko) | 2007-11-19 | 2010-05-13 | 한국전자통신연구원 | 캐시 메모리 및 그 제어 방법 |
US8533424B2 (en) * | 2009-07-31 | 2013-09-10 | Cleversafe, Inc. | Computing system utilizing dispersed storage |
US8949695B2 (en) * | 2009-08-27 | 2015-02-03 | Cleversafe, Inc. | Method and apparatus for nested dispersed storage |
US8533572B2 (en) | 2010-09-24 | 2013-09-10 | Intel Corporation | Error correcting code logic for processor caches that uses a common set of check bits |
KR101789190B1 (ko) | 2012-03-06 | 2017-11-20 | 한국전자통신연구원 | 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서 |
WO2013180714A1 (en) * | 2012-05-31 | 2013-12-05 | Hewlett-Packard Development Company, L.P. | Local error detection and global error correction |
-
2014
- 2014-10-20 KR KR1020140142023A patent/KR102131337B1/ko active IP Right Grant
-
2015
- 2015-09-18 US US14/858,448 patent/US9830218B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020397A (ja) | 1998-07-03 | 2000-01-21 | Pfu Ltd | キャッシュメモリ制御装置 |
JP2011257966A (ja) | 2010-06-09 | 2011-12-22 | Mitsubishi Electric Corp | キャッシュ装置及び情報処理装置 |
JP2013114441A (ja) | 2011-11-29 | 2013-06-10 | Sony Corp | 不揮発性キャッシュメモリ、不揮発性キャッシュメモリの処理方法、コンピュータシステム |
Also Published As
Publication number | Publication date |
---|---|
US9830218B2 (en) | 2017-11-28 |
US20160110250A1 (en) | 2016-04-21 |
KR20160046225A (ko) | 2016-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102131337B1 (ko) | 고장 제어 기능을 구비한 캐시 메모리 | |
JP4907154B2 (ja) | メモリエラーを分類するための方法および装置 | |
JP5202130B2 (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
US9880896B2 (en) | Error feedback and logging with memory on-chip error checking and correcting (ECC) | |
US8140940B2 (en) | Method and apparatus for controlling memory | |
US9570197B2 (en) | Information processing device, computer-readable recording medium, and method | |
JP2007133986A (ja) | 半導体記憶装置 | |
CN109785893B (zh) | 用于验证存储器适当操作的错误纠正码校验位的冗余存储 | |
US8738989B2 (en) | Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page | |
JP2005302027A (ja) | 自律的エラー回復方法、システム、キャッシュ、およびプログラム・ストレージ装置(メモリ装置のための自律的エラー回復のための方法、システム、およびプログラム) | |
JP2008262325A (ja) | メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体 | |
JP2001249911A (ja) | データ転送方法及びデータ処理システム | |
TWI527049B (zh) | 操作記憶體之方法及記憶體裝置 | |
US9658919B2 (en) | Malfunction escalation | |
US8533560B2 (en) | Controller, data storage device and program product | |
JPH11102599A (ja) | 半導体記憶装置 | |
US20110107143A1 (en) | Cache system | |
JP5213061B2 (ja) | ミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラム | |
KR20130136341A (ko) | 반도체 장치 및 그 동작 방법 | |
JP2013061887A (ja) | 故障位置判定回路、記憶装置、および情報処理装置 | |
TW201606785A (zh) | 記憶體控制器 | |
JP5998561B2 (ja) | キャッシュ診断装置、キャッシュ診断方法、及びプログラム | |
JP2009116978A (ja) | 半導体記憶装置 | |
JPH07105102A (ja) | メモリ制御装置 | |
JP2008250462A (ja) | ディスクアレイ装置、ディスクアレイ制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |