KR101066519B1 - 캐시 메모리 장치 및 이를 이용한 에러 검출 방법 - Google Patents

캐시 메모리 장치 및 이를 이용한 에러 검출 방법 Download PDF

Info

Publication number
KR101066519B1
KR101066519B1 KR1020090051954A KR20090051954A KR101066519B1 KR 101066519 B1 KR101066519 B1 KR 101066519B1 KR 1020090051954 A KR1020090051954 A KR 1020090051954A KR 20090051954 A KR20090051954 A KR 20090051954A KR 101066519 B1 KR101066519 B1 KR 101066519B1
Authority
KR
South Korea
Prior art keywords
error detection
tag
detection code
cache memory
error
Prior art date
Application number
KR1020090051954A
Other languages
English (en)
Other versions
KR20100133194A (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 KR1020090051954A priority Critical patent/KR101066519B1/ko
Publication of KR20100133194A publication Critical patent/KR20100133194A/ko
Application granted granted Critical
Publication of KR101066519B1 publication Critical patent/KR101066519B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1064Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 캐시 메모리 장치의 에러 검출 기법에 관한 것으로, 입력된 요구 주소에 포함된 전체 태그 중에서 에러 검출 코드 생성 시간 및 우선 순위 주소에 따라 전체 태그 비트보다 상대적으로 작은 수의 태그 비트를 선택하여 에러 검출 코드를 생성하고, 생성된 에러 검출 코드 및 그에 대응하는 태그와 캐시 라인에 기 저장된 태그 및 기 저장된 에러 검출 코드를 비교한 결과 태그 일치 여부 및 에러 검출 코드 일치 여부를 판단한 후에, 그 결과가 태그 일치 및 에러 검출 코드 일치의 경우 기 저장된 태그에 대응하는 데이터를 선택 출력하고, 태그 불일치 또는 에러 검출 코드 불일치의 경우 히트 오류 발생 정보를 제공함으로써, 에러 검출에 소요되는 시간을 감소시켜 캐시 메모리 장치의 성능을 향상시킬 수 있는 것이다.
Figure R1020090051954
캐시 메모리 장치, 태그, 히트 오류

Description

캐시 메모리 장치 및 이를 이용한 에러 검출 방법{CACHE MEMORY APPARATUS AND ERROR DETECTION METHOD USED ON IT}
본 발명은 캐시 메모리 장치를 이용한 에러 검출 기법에 관한 것으로, 더욱 상세하게는 캐시 메모리 장치에서 히트 오류 발생을 방지하기 위한 캐시 태그 오류를 검출하는데 적합한 캐시 메모리 장치 및 이를 이용한 에러 검출 방법에 관한 것이다.
잘 알려진 바와 같이, 각종 시스템의 여러 부분에서 사용되는 캐시 소자의 크기는 공정의 발전으로 급격히 작아지고 있으며, 해당 시스템의 저전력화에 대한 요구로 캐시 소자의 소모 전력이 낮아지고, 소자의 상태를 유지하기 위한 한계 충전(critical charge)의 크기도 함께 낮아졌다.
이러한 상황은 캐시의 비트 역전(bit flip)이 일어날 확률 상승시키는데, 캐시 메모리 장치의 태그에 발생한 에러는 검출되지 않으면 미스 오류나 히트 오류를 발생시킨다. 여기에서, 미스 오류는 캐시에 요청된 주소의 데이터가 있음에도 불구하고, 어떤 캐시 라인의 태그에 발생한 에러로 인하여 미스로 오인되는 경우이며, 히트 오류는 캐시에 요청된 주소의 데이터가 없음에도 불구하고, 어떤 캐시 라인의 태그에 발생한 에러로 인하여 히트로 오인되는 경우이다.
이와 같은 미스 오류는 대부분의 경우 하위 메모리 구조에서 요구 주소에 해당하는 데이터를 복사해오기 때문에 문제를 발생하지 않지만, 요구 주소의 데이터가 유일하게 최신의 값을 가지고 있는 경우 데이터 손실이 발생하며, 히트 오류의 경우는 요구된 주소의 데이터가 아닌 다른 주소의 데이터를 데이터 요구자에 전달하기 때문에, 히트 오류는 모든 경우 문제를 발생시킨다.
도 1은 종래의 일반적인 캐시 메모리 장치의 구성도로서, 캐시 라인1-캐시 라인n(102/1-102/n), 디코더1-디코더n(104/1-104/n), 제 1 검출/증폭기1-제 1 검출/증폭기n(106/1-106/n), 제 2 검출/증폭기1-제 2 검출/증폭기n(108/1-108/n), 제 3 검출/증폭기1-제 3 검출/증폭기n(110/1-110/n), 비교기1-비교기n(112/1-112/n), 논리 회로(114), 선택기(116) 등을 포함할 수 있다.
도 1을 참조하면, 입력된 요구 주소(100)는 태그(100a), 인덱스(100b), 오프세트(100c)로 나뉘고, 입력된 요구 주소의 인덱스(100b)는 디코더1-디코더n(104/1-104/n)에 입력되어 같은 인덱스를 갖는 캐시 라인1-캐시 라인n(102/1-102/n)을 선택하며, 디코더1-디코더n(104/1-104/n)에 의해 선택된 캐시 라인1-캐시 라인n(102/1-102/n)은 요구 주소(100)의 태그(100a)와 저장하고 있는 태그1-태그n(102a/1-102a/n)을 비교(112/1-112/n)하여 캐시 라인1-캐시 라인n(102/1-102/n)의 히트 여부를 판별하는데, 도 1에 도시한 바와 같은 캐시 메모리 장치에서는 태그1-태그n(102a/1-102a/n)에 발생한 에러를 검출할 수 없고, 디코더1-디코더n(104/1-104/n)에 의해 입력된 요구 주소(100)와 같은 인덱스(100b)를 가지는 캐시 라인1- 캐시 라인n(102/1-102/n) 중에서 저장된 태그1-태그n(102a/1-102a/n)에 발생한 에러로 입력된 주소(100)의 태그(100a)와 에러가 발생한 태그1-태그n(102a/1-102a/n)이 일치하는 경우 캐시 메모리 장치는 해당 캐시 라인1-캐시 라인n(102/1-102/n)이 요구 주소(100)의 데이터를 가지고 있다고 판단하여, 주소가 일치하지 않는 데이터1-데이터n(102c/1-102c/n)을 출력하고, 이를 히트 오류라고 한다.
한편, 도 2는 종래에 에러 검출 모듈을 갖는 캐시 메모리 장치의 구성도로서, 에러 검출 코드 생성기(202), 캐시 라인1-캐시 라인n(204/1-204/n), 디코더1-디코더n(206/1-206/n), 제 1 검출/증폭기1-제 1 검출/증폭기n(208/1-208/n), 제 2 검출/증폭기1-제 2 검출/증폭기n(210/1-210/n), 제 3 검출/증폭기1-제 3 검출/증폭기n(212/1-212/n), 제 4 검출/증폭기1-제 4 검출/증폭기n(214/1-214/n), 비교기1-비교기n(216/1-216/n), 논리 회로(218), 선택기(220) 등을 포함할 수 있다.
도 1을 참조하면, 캐시 메모리 장치에서는 입력된 요구 주소(200)의 인덱스(200b)는 저장되지 않기 때문에 캐시 라인1-캐시라인n(204/1-204/n)의 에러 검출 코드1-에러 검출 코드n(204b/1-204b/n)은 기존에 입력된 요구 주소의 태그를 입력으로 생성 및 저장되고, 요구 주소(200)가 캐시 메모리 장치에 입력되면, 에러 검출 코드 생성기(202)에 요구 주소(200)의 태그(200a)를 입력하여 에러 검출 코드를 생성하며, 생성된 에러 검출 코드를 저장된 에러 검출 코드1-에러 검출 코드n(204b/1-204b/n)과 비교하고, 저장된 태그1-태그n(204a/1-204a/n)과 입력된 태그(200a)가 일치하며, 저장된 에러 검출 코드1-에러 검출 코드n(204b/1-204b/n)과 생성된 에러 검출 코드가 일치하는 경우 캐시 메모리 장치는 해당 캐시 라인1-캐시 라인n(204/1-204/n)이 요구 주소(200)의 데이터를 저장하고 있다고 판단한다.
이 때, 에러 검출 코드 생성에 소모되는 시간은 입력된 요구 주소(200)의 인덱스(200b)가 디코더1-디코더n(206/1-206/n)에 입력되어 비교기1-비교기n(214/1-214/n)을 통해 태그 비교를 수행할 캐시 라인1-캐시라인n(204/1-204/n)을 선택하고, 저장된 태그1-태그n(204a/1-204a/n)이 제 2 검출/증폭기(210/1-210/n)를 거쳐 비교기1-비교기n(216/1-216/n)에 입력되는 시간보다 상대적으로 더 소요되기 때문에, 에러 검출 코드 생성기(202)에서 에러 검출 코드 생성에 소모된 시간에서 입력된 요구 주소(200)가 캐시 라인1-캐시 라인n(204/1-204/n)을 선택하고 저장된 태그1-태그n(204a/1-204a/n)을 검출 및 증폭하는데 소모된 시간을 뺀 만큼 캐시 메모리 장치의 동작 시간은 증가한다.
이와 같이, 에러 검출 코드 생성에 소요되는 시간은 캐시 접근 성능을 상당히 하락시키는데, 일반적으로 가장 간단한 에러 검출 코드인 패리티 비트 방식을 사용하더라도 유사한 결과가 도출된다. 여기에서, 패리티 비트 방식은 입력된 모든 데이터의 값을 배타적 논리합 연산을 하여 패리티 비트를 계산하고, 이 패리티 비트를 에러 검출 코드로 사용하는 방식으로, 예를 들면, 250nm 공정에서, 16킬로바이트의 프로세서 캐시가 4-연관 사상, 32 바이트 캐시 라인의 조건으로 구성되었을 때, 패리티 비트 방식의 에러 검출 코드 생성기를 추가하면 캐시 접근 시간은 대략 20%정도 증가할 수 있다.
상술한 바와 같이, 종래의 캐시 메모리 장치의 히트 오류 발생으로 인해 발생하는 에러를 검출하기 위하여 캐시 메모리 장치의 데이터부와 태그부에 정보를 중복적으로 저장하여 에러를 검출하는 방법이 사용되었지만, 이는 필연적으로 캐시 접근 시간의 상승을 야기하는 문제점이 있고, 캐시 메모리 장치는 주소의 지역성(locality)을 이용하여 하위 메모리 구조로의 접근을 최소화하여 접근 시간을 줄이는 장치이므로, 캐시 접근 시간의 상승은 평균 메모리 접근 시간의 상승을 야기하며 최종적으로 캐시 메모리 장치를 갖는 각종 시스템의 성능이 저하되는 문제점이 있다.
이에 따라, 본 발명은 요구 주소에서 상대적으로 작은 에러율을 갖는 태그 비트를 선택하여 에러 검출 코드를 생성함으로써, 요구 주소의 에러 검출 코드 생성에 소모되는 시간을 감소시켜 캐시 메모리 장치의 성능을 향상시킬 수 있는 캐시 메모리 장치 및 이를 이용한 에러 검출 방법을 제공하고자 한다.
또한, 본 발명은 에러 검출 코드 생성을 위해 히트 오류 발생 확률이 상대적으로 높은 태그 비트를 선택하여 에러 검출 코드를 생성함으로써, 요구 주소의 에러 검출 코드 생성에 소모되는 시간을 감소시켜 캐시 메모리 장치의 성능을 향상시킬 수 있는 캐시 메모리 장치 및 이를 이용한 에러 검출 방법을 제공하고자 한다.
본 발명의 일 실시 예에 따르면, 입력된 요구 주소에 포함된 전체 태그 중에서 에러 검출 코드 생성 시간 및 우선 순위 주소에 따라 전체 태그 비트보다 상대적으로 작은 수의 태그 비트를 선택하여 에러 검출 코드를 생성하는 에러 검출 코 드 생성기와, 상기 생성된 에러 검출 코드 및 그에 대응하는 태그와 캐시 라인에 기 저장된 태그 및 기 저장된 에러 검출 코드를 비교하여 태그 일치 여부 및 에러 검출 코드 일치 여부를 비교 및 판단하는 비교기 및 논리 회로와, 상기 비교 및 판단에 따라 태그 일치 및 에러 검출 코드 일치의 경우 상기 기 저장된 태그에 대응하는 데이터를 선택 출력하는 선택기를 포함하는 캐시 메모리 장치가 제공된다.
본 발명의 다른 실시 예에 따르면, 입력된 요구 주소에 포함된 전체 태그 중에서 에러 검출 코드 생성 시간 및 우선 순위 주소에 따라 전체 태그 비트보다 상대적으로 작은 수의 태그 비트를 선택하는 단계와, 상기 선택된 태그 비트를 이용하여 에러 검출 코드를 생성하는 단계와, 상기 생성된 에러 검출 코드 및 그에 대응하는 태그와 캐시 라인에 기 저장된 태그 및 기 저장된 에러 검출 코드를 비교하는 단계와, 상기 비교하는 단계의 결과 태그 일치 여부 및 에러 검출 코드 일치 여부를 판단하는 단계와, 상기 판단하는 단계의 결과 태그 일치 및 에러 검출 코드 일치의 경우 상기 기 저장된 태그에 대응하는 데이터를 선택 출력하는 단계를 포함하는 캐시 메모리 장치를 이용한 에러 검출 방법이 제공된다.
본 발명은, 캐시 메모리 장치에서 에러 검출 코드 생성을 위해 입력되는 태그 비트 수를 제한하여 에러 검출 코드 생성에 소요되는 시간이 캐시 접근 시간을 증가시키는 현상을 방지함으로써, 캐시 메모리 장치의 성능을 향상시킬 수 있다.
또한, 본 발명은 히트 오류를 발생시킬 확률이 높은 하위 주소의 태그 비트를 우선 순위로 선택하여 에러 검출 코드를 생성함으로써, 에러 검출 코드 생성기 에 입력되는 태그 비트 수의 제한으로 발생하는 히트 오류를 최소화할 수 있다.
본 발명은, 입력된 요구 주소에 포함된 전체 태그 중에서 에러 검출 코드 생성 시간 및 우선 순위 주소에 따라 전체 태그 비트보다 상대적으로 작은 수의 태그 비트를 선택하여 에러 검출 코드를 생성하고, 생성된 에러 검출 코드 및 그에 대응하는 태그와 캐시 라인에 기 저장된 태그 및 기 저장된 에러 검출 코드를 비교한 결과 태그 일치 여부 및 에러 검출 코드 일치 여부를 판단한 후에, 그 결과가 태그 일치 및 에러 검출 코드 일치의 경우 기 저장된 태그에 대응하는 데이터를 선택 출력하고, 태그 불일치 또는 에러 검출 코드 불일치의 경우 히트 오류 발생 정보를 제공한다는 것이며, 이러한 기술적 수단을 통해 종래 기술에서의 문제점을 해결할 수 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상 세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계 에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.
도 3은 본 발명의 실시 예에 따라 에러 검출 코드를 이용하여 에러를 검출하는데 적합한 캐시 메모리 장치의 구성도로서, 에러 검출 코드 생성기(302), 캐시 라인1-캐시 라인n(304/1-304/n), 디코더1-디코더n(306/1-306/n), 제 1 검출/증폭기1-제 1 검출/증폭기n(308/1-308/n), 제 2 검출/증폭기1-제 2 검출/증폭기n(310/1-310/n), 제 3 검출/증폭기1-제 3 검출/증폭기n(312/1-312/n), 제 4 검출/증폭기1-제 4 검출/증폭기n(314/1-314/n), 비교기1-비교기n(316/1-316/n), 논리 회로(318), 선택기(320) 등을 포함할 수 있다. 이하에서는 캐시 메모리 장치 중 명령어 변환 참조 버퍼(Instruction TLB)를 참조로 하여 설명한다.
도 3을 참조하면, 에러 검출 코드 생성기(302)는 예를 들면, 패리티 비트 방식 등의 에러 검출 코드를 생성하는 것으로, 캐시 메모리 장치에 가상 주소 영역의 메모리 주소인 요구 주소(300)가 입력되면, 요구 주소(300)에 포함된 태그(300a)의 전체 태그 비트 중에서 에러 검출 코드 생성 시간, 우선 순위 주소 등에 따라 에러 검출 코드 생성을 위한 태그 비트를 선택 지정하여 에러 검출 코드(즉, 패리티 비트)를 생성한다.
여기에서, 에러 검출 코드 생성을 위해 태그 비트를 선택하는 과정에 대해 상세히 설명하면, 에러 검출 코드 생성에 소모되는 시간이 입력된 요구 주소(300)에 대해 캐시 라인1-캐시 라인n(304/1-304/n)을 선택하고 저장된 태그1-태그n(304a/1-304a/n)을 검출 및 증폭하는데 소모된 시간보다 상대적으로 더 작은 값을 갖도록 전체 태그 비트 수(N) 중에서 태그 비트 수(M)를 선택할 수 있다. 예를 들면, 2비트 배타적 논리합 연산으로 패리티 비트를 계산하여 에러 검출 코드로 사용하는 경우, 에러 검출 코드 생성기의 입력으로 쓰일 태그 비트의 수는 2n(n은 자연수) 개 중, 2비트 배타적 논리합 연산이 전체 캐시 접근 시간을 증가시키지 않는 최대값으로 지정할 수 있으며, 이러한 태그 비트 수(M)는 전체 태그 비트 수(N)보다 상대적으로 작은 값을 가지며, 예를 들면, 캐시 메모리 공정, 캐시 메모리 구조, 에러 검출 코드의 생성 방식 등에 따라 조정하여 선택될 수 있다.
또한, 캐시 메모리 장치는 전체 주소 영역의 데이터 중, 지역성에 따라 최근 사용되었거나 최근 사용된 주소 영역의 인근에 존재하는 데이터가 일부 선택되어 저장되기 때문에 캐시 메모리 장치에 저장되어 있는 데이터의 주소는 대체로 인접한 경향을 가지며, 이는 논리 주소 공간을 주소 영역으로 하는 캐시 메모리 구조에 서 더욱 명백하다. 예를 들어, 논리 주소 공간을 물리 주소 공간으로 변환하는 장치인 변환 주소 버퍼 등과 같은 캐시 구조의 경우에서 논리 주소들은 전체 주소 영역에 비균일적으로 분포하여, 특정 영역에 집중되는 성질이 있고, 변환 주소 버퍼에 저장된 태그 비트들의 상위 비트일수록 일치하는 경향을 가지며, 변환 주소 버퍼로 요구되는 주소들의 상위 태그 비트도 변환 주소 버퍼에 저장된 태그 비트들의 상위 비트와 일치하는 경향성이 있기 때문에, 변환 주소 버퍼에 저장된 태그 비트의 상위 비트에 에러가 발생하더라도 히트 오류를 발생시킬 주소가 요구될 확률은 극히 낮다.
그리고, 물리 주소 공간을 주소 영역으로 사용하는 경우에도 같은 경향성을 보이는데, 물리 주소 공간의 경우, 특정한 크기로 나누어 논리 주소 공간에 사상되어 사용되기 때문에 데이터가 논리 주소 공간의 경우에 비해 상대적으로 더 균일적으로 분포하지만, 물리 주소 공간의 경우에도 나누어진 크기를 단위로 데이터가 집중되는 현상을 보이며, 시간 단위로 데이터의 요구 주소를 분석하면, 물리 주소 영역의 근접한 주소를 비슷한 시간 내에서 요구되는 경향을 볼 수 있고, 근접한 주소, 다시 말해 태그의 상위 비트가 일치하는 주소로의 요구가 발생할 확률이 높기 때문에 상위 비트에 발생한 오류로 히트 오류가 발생할 확률은 낮다. 이러한 확률은 캐시 메모리에 요청되는 요구 주소(300)의 주소 패턴에 따라 다르게 나타날 수 있다.
따라서, 에러 검출 코드 생성기(302)는 에러 검출 코드의 생성 시 요구 주소(300)에 포함된 태그(300a)의 태그 비트들 중에 히트 오류 발생 확률이 낮은 하 위 비트를 우선 순위로 하여 선택 지정하여 그에 대한 에러 검출 코드를 생성할 수 있다.
그리고, 캐시 라인1-캐시 라인n(304/1-304/n)은 요구 주소(300)에 포함된 태그(300a)의 입력에 따라 에러 검출 코드1-에러 검출 코드n(304b/1-304b/n)을 각각 선택한다. 이와 함께, 캐시 라인1-캐시 라인n(304/1-304/n)은 요구 주소(300)에 포함된 태그(300a)의 입력에 따라 태그1-태그n(304a/1-304a/n)을 각각 선택하고, 유효 비트1-유효 비트n(304c/1-304c/n)을 각각 선택하며, 데이터1-데이터n(304d/1-304d/n)을 각각 선택할 수 있다.
한편, 디코더1-디코더n(306/1-306/n)은 에러 검출 코드 생성기(302)를 통해 생성된 에러 검출 코드를 기 저장된 에러 검출 코드와 비교할 수 있도록 디코딩하여 비교기1-비교기n(316/1-316/n)에 전달한다.
또한, 제 1 검출/증폭기1-제 1 검출/증폭기n(308/1-308/n)은 캐시 라인1-캐시 라인n(304/1-304/n)을 통해 각각 선택된 태그1-태그n(304a/1-304a/n)을 검출 및 증폭하여 비교기1-비교기n(316/1-316/n)으로 각각 전달한다.
그리고, 제 2 검출/증폭기1-제 2 검출/증폭기n(310/1-310/n)은 캐시 라인1-캐시 라인n(304/1-304/n)을 통해 각각 선택된 에러 검출 코드1-에러 검출 코드n(304b/1-304b/n)을 검출 및 증폭하여 비교기1-비교기n(316/1-316/n)으로 각각 전달한다.
다음에, 제 3 검출/증폭기1-제 3 검출/증폭기n(312/1-312/n)은 캐시 라인1-캐시 라인n(304/1-304/n)을 통해 각각 선택된 유효 비트1-유효 비트n(304c/1- 304c/n)을 검출 및 증폭하여 논리 회로(318)로 각각 전달한다.
또한, 제 4 검출/증폭기1-제 4 검출/증폭기n(314/1-314/n)은 캐시 라인1-캐시 라인n(304/1-304/n)을 통해 각각 선택된 데이터1-데이터n(304d/1-304d/n)을 검출 및 증폭하여 선택기(320)로 각각 전달한다.
한편, 비교기1-비교기n(316/1-316/n)은 에러 검출 코드 생성기(302)를 통해 생성된 에러 검출 코드 및 그에 대응하는 태그와 제 1 검출/증폭기1-제 1 검출/증폭기n(308/1-308/n)을 통해 전달되는 기 저장된 태그 및 제 2 검출/증폭기1-제 2 검출/증폭기n(310/1-310/n)을 통해 전달되는 기 저장된 에러 검출 코드를 비교하여 각각의 비교 결과를 논리 회로(318)로 전달한다.
그리고, 논리 회로(318)는 전달되는 각각의 비교 결과에 따라 생성된 에러 검출 코드에 대응하는 태그와 기 저장된 태그의 일치 여부 및 생성된 에러 검출 코드와 기 저장된 에러 검출 코드의 일치 여부에 따라 예를 들면, 배타적 논리합 연산 등을 수행하여 요구 주소(300)에 대응하는 데이터 선택 정보(예를 들면, 태그, 에러 검출 코드, 유효 비트, 데이터 등)를 선택기(320)에 제공한다.
또한, 선택기(320)는 논리 회로(318)로부터 제공되는 데이터 선택 정보에 따라 제 4 검출/증폭기1-제 4 검출/증폭기n(314/1-314/n)을 통해 전달되는 데이터1-데이터n(304d/1-304d/n) 중에서 해당 데이터를 선택하여 출력한다.
다음에, 상술한 바와 같은 구성을 갖는 캐시 메모리 장치에서 요구 주소가 입력되면, 요구 주소에 포함된 태그의 태그 비트를 에러 검출 코드, 우선 순위 주소 등에 따라 선택하여 그에 대응하는 에러 검출 코드를 생성하고, 기 저장된 에러 검출 코드와 비교한 후, 태그 일치 여부, 에러 검출 코드 일치 여부 등에 따라 해당 데이터를 선택하여 출력하는 과정에 대해 설명한다.
도 4는 본 발명의 일 실시 예에 따라 에러 검출 코드를 이용하여 에러를 검출하는 과정을 도시한 플로우차트이다.
도 4를 참조하면, 캐시 메모리 장치의 대기 모드에서(단계402), 캐시 메모리 장치에서는 요구 주소(300)가 입력되는지를 체크한다(단계404).
상기 단계(404)에서의 체크 결과, 요구 주소(300)가 입력될 경우 에러 검출 코드 생성기(302)에서는 요구 주소(300)에 포함된 태그(300a)의 전체 태그 비트 중에서 에러 검출 코드 생성 시간, 우선 순위 주소 등에 따라 에러 검출 코드를 생성할 태그 비트를 선택한다(단계406).
여기에서, 에러 검출 코드 생성 시간에 따른 태그 비트 수(M) 선택의 경우 에러 검출 코드 생성에 소모되는 시간이 입력된 요구 주소(300)에 대해 캐시 라인1-캐시 라인n(304/1-304/n)을 선택하고 저장된 태그1-태그n(304a/1-304a/n)을 검출 및 증폭하는데 소모된 시간보다 상대적으로 더 작은 값을 갖도록 태그 비트의 수(M)를 선택할 수 있으며, 이러한 태그 비트 수(M)는 전체 태그 비트 수(N)보다 상대적으로 작은 값을 가지며, 예를 들면, 캐시 메모리 공정, 캐시 메모리 구조, 에러 검출 코드의 생성 방식 등에 따라 조정될 수 있다.
또한, 에러 검출 코드 생성을 위한 태그 비트 선택의 경우 논리 주소 영역, 물리 주소 영역 등에 관계없이 히트 오류가 발생할 확률이 상위 주소보다 하위 주소에서 상대적으로 더 높기 때문에, 하위 주소에 우선 순위를 갖도록 우선 순위 주 소에 높은 우선 순위를 부여하여 태그 비트를 선택할 수 있다.
다음에, 에러 검출 코드 생성기(302)에서는 선택된 태그 비트를 이용하여 예를 들면, 패리티 비트 방식 등으로 에러 검출 코드(즉, 패리티 비트)를 생성한다(단계408).
한편, 캐시 라인1-캐시 라인n(304/1-304/n)에서는 요구 주소(300)에 포함된 태그(300a)의 입력에 따라 에러 검출 코드1-에러 검출 코드n(304b/1-304b/n)과 태그1-태그n(304a/1-304a/n)을 각각 선택하고, 제 1 검출/증폭기1-제 1 검출/증폭기n(308/1-308/n)에서는 선택된 태그1-태그n(304a/1-304a/n)을 검출 및 증폭하며, 제 2 검출/증폭기1-제 2 검출/증폭기n(310/1-310/n)에서는 에러 검출 코드1-에러 검출 코드n(304b/1-304b/n)을 검출 및 증폭하여 비교기1-비교기n(316/1-316/n)으로 각각 전달한다(단계410).
다음에, 비교기1-비교기n(316/1-316/n)에서는 에러 검출 코드 생성기(302)를 통해 생성된 에러 검출 코드 및 그에 대응하는 태그와 제 1 검출/증폭기1-제 1 검출/증폭기n(308/1-308/n)을 통해 전달되는 기 저장된 태그 및 제 2 검출/증폭기1-제 2 검출/증폭기n(310/1-310/n)을 통해 전달되는 기 저장된 에러 검출 코드를 비교하여 각각의 비교 결과를 논리 회로(318)로 전달하고, 논리 회로(318)에서는 전달되는 각각의 비교 결과에 따라 생성된 에러 검출 코드에 대응하는 태그와 기 저장된 태그가 일치하는지를 체크한다(단계412).
상기 단계(412)에서의 체크 결과, 생성된 에러 검출 코드에 대응하는 태그와 기 저장된 태그가 일치할 경우 논리 회로(318)에서는 생성된 에러 검출 코드와 기 저장된 에러 검출 코드가 일치하는지를 체크한다(단계416).
상기 단계(416)에서의 체크 결과, 생성된 에러 검출 코드와 기 저장된 에러 검출 코드가 일치할 경우 논리 회로(318)에서는 요구 주소(300)에 대응하는 데이터 선택 정보(예를 들면, 태그, 에러 검출 코드, 유효 비트, 데이터 등)를 선택기(320)에 제공하고, 이에 따라, 선택기(320)에서는 제 4 검출/증폭기1-제 4 검출/증폭기n(314/1-314/n)을 통해 전달되는 데이터1-데이터n(304d/1-304d/n) 중에서 해당 데이터를 선택하여 출력한다(단계418).
한편, 상기 단계(412)에서의 체크 결과, 생성된 에러 검출 코드에 대응하는 태그와 기 저장된 태그가 일치하지 않은 경우 또는 상기 단계(416)에서의 체크 결과, 생성된 에러 검출 코드와 기 저장된 에러 검출 코드가 일치하지 않은 경우 논리 회로(318)에서는 그에 대응하는 히트 오류 발생 정보(예를 들면, 태그 불일치, 에러 검출 코드 불일치 등)를 제공한다(단계414).
따라서, 캐시 메모리 장치에서 에러 검출 코드 생성을 위한 태그 비트를 선택함에 있어 에러 검출 코드 생성 시간과 우선 순위 주소에 따른 태그 비트를 선택함으로써, 데이터 추출 및 출력에 소요되는 시간을 감소시켜 캐시 메모리 장치가 구비된 각종 시스템 성능을 향상시킬 수 있다.
이상의 설명에서는 본 발명의 다양한 실시 예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.
도 1은 종래의 일반적인 캐시 메모리 장치의 구성도,
도 2는 종래에 에러 검출 모듈을 갖는 캐시 메모리 장치의 구성도,
도 3은 본 발명의 실시 예에 따라 에러 검출 코드를 이용하여 에러를 검출하는데 적합한 캐시 메모리 장치의 구성도,
도 4는 본 발명의 일 실시 예에 따라 에러 검출 코드를 이용하여 에러를 검출하는 과정을 도시한 플로우차트.
<도면의 주요부분에 대한 부호의 설명>
302 : 에러 검출 코드 생성기
304/1-304/n : 캐시 라인1-캐시 라인n
306/1-306/n : 디코더1-디코더n
308/1-308/n : 제 1 검출/증폭기1-제 1 검출/증폭기n
310/1-310/n : 제 2 검출/증폭기1-제 2 검출/증폭기n
312/1-312/n : 제 3 검출/증폭기1-제 3 검출/증폭기n
314/1-314/n : 제 4 검출/증폭기1-제 4 검출/증폭기n
316/1-316/n : 비교기1-비교기n
318 : 논리 회로
320 : 선택기

Claims (12)

  1. 입력된 요구 주소에 포함된 전체 태그 중에서 에러 검출 코드 생성 시간 및 우선 순위 주소에 따라 전체 태그 비트보다 상대적으로 작은 수의 태그 비트를 선택하여 에러 검출 코드를 생성하는 에러 검출 코드 생성기와,
    상기 생성된 에러 검출 코드 및 그에 대응하는 태그와 캐시 라인에 기 저장된 태그 및 기 저장된 에러 검출 코드를 비교하여 태그 일치 여부 및 에러 검출 코드 일치 여부를 비교 및 판단하는 비교기 및 논리 회로와,
    상기 비교 및 판단에 따라 태그 일치 및 에러 검출 코드 일치의 경우 상기 기 저장된 태그에 대응하는 데이터를 선택 출력하는 선택기
    를 포함하는 캐시 메모리 장치.
  2. 제 1 항에 있어서,
    상기 비교기 및 논리 회로는, 상기 비교 및 판단에 따라 태그 불일치 또는 에러 검출 코드 불일치의 경우 히트 오류 발생 정보를 제공하는 캐시 메모리 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 에러 검출 코드 생성기는, 상기 에러 검출 코드 생성 시간이 상기 요구 주소의 입력에 따라 상기 기 저장된 태그 및 기 저장된 에러 검출 코드를 검출 및 증폭하는 시간보다 상대적으로 더 작은 값을 갖도록 선택할 태그 비트 수를 지정하여 상기 태그 비트를 선택하는 캐시 메모리 장치.
  4. 제 3 항에 있어서,
    상기 에러 검출 코드 생성기는, 캐시 메모리 공정, 캐시 메모리 구조 및 에러 검출 코드 생성 방식에 따라 상기 태그 비트 수를 조정하는 캐시 메모리 장치.
  5. 제 4 항에 있어서,
    상기 에러 검출 코드 생성 방식은, 패리티 비트 생성 방식을 포함하는 캐시 메모리 장치.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 에러 검출 코드 생성기는, 상기 요구 주소의 상위 주소보다 하위 주소에 상대적으로 높은 우선 순위를 부여하여 상기 태그 비트를 선택하는 캐시 메모리 장치.
  7. 입력된 요구 주소에 포함된 전체 태그 중에서 에러 검출 코드 생성 시간 및 우선 순위 주소에 따라 전체 태그 비트보다 상대적으로 작은 수의 태그 비트를 선택하는 단계와,
    상기 선택된 태그 비트를 이용하여 에러 검출 코드를 생성하는 단계와,
    상기 생성된 에러 검출 코드 및 그에 대응하는 태그와 캐시 라인에 기 저장된 태그 및 기 저장된 에러 검출 코드를 비교하는 단계와,
    상기 비교하는 단계의 결과 태그 일치 여부 및 에러 검출 코드 일치 여부를 판단하는 단계와,
    상기 판단하는 단계의 결과 태그 일치 및 에러 검출 코드 일치의 경우 상기 기 저장된 태그에 대응하는 데이터를 선택 출력하는 단계
    를 포함하는 캐시 메모리 장치를 이용한 에러 검출 방법.
  8. 제 7 항에 있어서,
    상기 에러 검출 방법은,
    상기 판단하는 단계의 결과 태그 불일치 또는 에러 검출 코드 불일치의 경우 히트 오류 발생 정보를 제공하는 캐시 메모리 장치를 이용한 에러 검출 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 태그 비트를 선택하는 단계는, 상기 에러 검출 코드 생성 시간이 상기 요구 주소의 입력에 따라 상기 기 저장된 태그 및 기 저장된 에러 검출 코드를 검출 및 증폭하는 시간보다 상대적으로 더 작은 값을 갖도록 선택할 태그 비트 수를 지정하여 상기 태그 비트를 선택하는 캐시 메모리 장치를 이용한 에러 검출 방법.
  10. 제 9 항에 있어서,
    상기 태그 비트 수는, 캐시 메모리 공정, 캐시 메모리 구조 및 에러 검출 코드 생성 방식에 따라 조정되는 캐시 메모리 장치를 이용한 에러 검출 방법.
  11. 제 10 항에 있어서,
    상기 에러 검출 코드 생성 방식은, 패리티 비트 생성 방식을 포함하는 캐시 메모리 장치를 이용한 에러 검출 방법.
  12. 제 7 항 또는 제 8 항에 있어서,
    상기 태그 비트를 선택하는 단계는, 상기 요구 주소의 상위 주소보다 하위 주소에 상대적으로 높은 우선 순위를 부여하여 상기 태그 비트를 선택하는 캐시 메모리 장치를 이용한 에러 검출 방법.
KR1020090051954A 2009-06-11 2009-06-11 캐시 메모리 장치 및 이를 이용한 에러 검출 방법 KR101066519B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090051954A KR101066519B1 (ko) 2009-06-11 2009-06-11 캐시 메모리 장치 및 이를 이용한 에러 검출 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090051954A KR101066519B1 (ko) 2009-06-11 2009-06-11 캐시 메모리 장치 및 이를 이용한 에러 검출 방법

Publications (2)

Publication Number Publication Date
KR20100133194A KR20100133194A (ko) 2010-12-21
KR101066519B1 true KR101066519B1 (ko) 2011-09-21

Family

ID=43508613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090051954A KR101066519B1 (ko) 2009-06-11 2009-06-11 캐시 메모리 장치 및 이를 이용한 에러 검출 방법

Country Status (1)

Country Link
KR (1) KR101066519B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
WO2013157693A1 (ko) * 2012-04-19 2013-10-24 조선대학교산학협력단 자가치유형 오류 허용 에프피지에이 연산 유닛 및 구조
KR101279999B1 (ko) * 2012-04-19 2013-07-05 조선대학교산학협력단 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이
KR101400809B1 (ko) * 2012-04-20 2014-05-29 조선대학교산학협력단 자가 치유 생체 모사형 오류허용 에프피지에이
US9720766B2 (en) 2012-04-19 2017-08-01 Industry-Academic Cooperation Foundation Chosun University Self-healing, fault-tolerant FPGA computation and architecture

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161545A (ja) 1997-11-28 1999-06-18 Nec Corp 密結合マルチプロセッサシステムの制御方法、密結合マルチプロセッサシステム及びその記録媒体
JP2006023852A (ja) 2004-07-06 2006-01-26 Handotai Rikougaku Kenkyu Center:Kk ソフトウェア検証モデル生成方法
JP2007041932A (ja) 2005-08-04 2007-02-15 Fujitsu Ltd キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161545A (ja) 1997-11-28 1999-06-18 Nec Corp 密結合マルチプロセッサシステムの制御方法、密結合マルチプロセッサシステム及びその記録媒体
JP2006023852A (ja) 2004-07-06 2006-01-26 Handotai Rikougaku Kenkyu Center:Kk ソフトウェア検証モデル生成方法
JP2007041932A (ja) 2005-08-04 2007-02-15 Fujitsu Ltd キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法

Also Published As

Publication number Publication date
KR20100133194A (ko) 2010-12-21

Similar Documents

Publication Publication Date Title
KR101066519B1 (ko) 캐시 메모리 장치 및 이를 이용한 에러 검출 방법
JP6058245B2 (ja) 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム
US8051337B2 (en) System and method for fast cache-hit detection
KR101319670B1 (ko) 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법
US10091137B2 (en) Apparatus and method for scalable and flexible wildcard matching in a network switch
US20150039968A1 (en) Error code management in systems permitting partial writes
JP2018522457A (ja) ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム
US9575692B2 (en) Cache control device having fault-tolerant function and method of operating the same
KR102231294B1 (ko) 복수의 레벨의 오류 정정을 제공하는 정보 처리 장치 및 시스템, 및 그것의 동작 방법
CN112867992A (zh) 检测地址错误的系统、方法及设备
US10579522B2 (en) Method and device for accessing a cache memory
US20100049952A1 (en) Microprocessor that performs store forwarding based on comparison of hashed address bits
JP2007041932A (ja) キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法
JP6205966B2 (ja) 演算処理装置及び演算処理装置の制御方法
CN105630763A (zh) 用于提及检测中的消歧的方法和系统
JP2013196393A (ja) 演算処理装置及び演算処理装置の制御方法
GB2602405A (en) Plausability-driven fault detection in result logic and condition codes for fast exact substring match
US20070005895A1 (en) Cache memory device and microprocessor
US11121867B2 (en) Encryption methods based on plaintext length
JP6090489B1 (ja) エラー検知装置、記憶装置およびエラー訂正方法
US7376868B2 (en) Cache memory device and reference history bit error detection method
US6189083B1 (en) Method and apparatus for accessing a cache memory utilization distingushing bit RAMs
US10007522B2 (en) System and method for selectively allocating entries at a branch target buffer
US9575728B1 (en) Random number generation security
US9268715B2 (en) System and method for validation of cache memory locking

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150910

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160725

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee