KR20080098613A - 에러 정정 디바이스 및 그 방법 - Google Patents

에러 정정 디바이스 및 그 방법 Download PDF

Info

Publication number
KR20080098613A
KR20080098613A KR1020087020334A KR20087020334A KR20080098613A KR 20080098613 A KR20080098613 A KR 20080098613A KR 1020087020334 A KR1020087020334 A KR 1020087020334A KR 20087020334 A KR20087020334 A KR 20087020334A KR 20080098613 A KR20080098613 A KR 20080098613A
Authority
KR
South Korea
Prior art keywords
memory
error correction
error
memory location
status indicator
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020087020334A
Other languages
English (en)
Other versions
KR101291525B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38475622&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20080098613(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 프리스케일 세미컨덕터, 인크. filed Critical 프리스케일 세미컨덕터, 인크.
Publication of KR20080098613A publication Critical patent/KR20080098613A/ko
Application granted granted Critical
Publication of KR101291525B1 publication Critical patent/KR101291525B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1052Bypassing or disabling error detection or correction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

에러 정정을 위한 디바이스 및 방법이 개시된다. 디바이스는 상태 표시자(304)의 상태에 의존하여 메모리 위치에 대한 에러 처리를 디스에이블하기 위해 메모리 제어 모듈(105)을 포함한다. 상태 표시자는 리셋 또는 파워-온 이벤트 후와 같이, 메모리 위치에 대한 유효한 에러 정정 및 검출 정보가 이용가능하지 않을 때 에러 처리가 디스에이블되도록 설정될 수 있다. 또한, 메모리 제어 모듈은 유효한 에러 검출 및 정정 데이터가 메모리 위치에 대해 산출됨을 보장하기 위해 에러 처리가 디스에이블될 때 부분 기록 요청들을 전체 기록 요청들로 촉진시킬 수 있다. 유효한 에러 검출 및 정정 정보가 이용가능할 때까지 에러 처리를 디스에이블함으로써, 불필요하거나 또는 유효하지 않은 에러 처리 동작들의 수가 감소되고, 그로 인해 디바이스 자원들이 보존된다.
에러 정정, 에러 검출, 메모리, 저전력

Description

에러 정정 디바이스 및 그 방법{Error correction device and method thereof}
본 발명은 에러 제어 방식들에 관한 것으로, 보다 상세하게는 메모리에 대한 에러 정정 방식들에 관한 것이다.
RAM, 플래쉬 메모리, 및 하드 디스크 드라이브들과 같은 메모리 디바이스들은 저장 에러들을 포함할 수 있다. 이들 에러들은 메모리 디바이스의 물리적 인자들 또는 다른 인자들로부터 기인할 수 있다. 메모리 에러들은 메모리 디바이스로부터 판독되는 잘못된 데이터를 야기할 수 있으며, 빈번하거나 또는 반복된 에러들은 나쁜 디바이스 동작을 야기할 수 있다.
메모리 저장 에러들의 영향을 감소시키기 위해, 디바이스는 에러 정정 기술들을 이용할 수 있다. 예를 들면, 메모리 디바이스는 메모리 디바이스에서의 메모리 위치들에 대한 에러 정정 코드(ECC) 데이터를 저장할 수 있다. ECC 데이터는 디바이스가 에러들을 검출할 수 있도록 패리티 또는 다른 데이터를 포함한다. 또한, ECC 데이터는 디바이스가 검출된 에러들을 정정할 수 있도록 하는 에러 정정 데이 터를 포함할 수 있다.
메모리 에러 정정 기술들은 메모리 신뢰도를 향상시킬 수 있지만, 기술들은 또한 디바이스의 응답 시간 및 전력과 같은 디바이스 자원들을 소비한다. 자원들의 소비는 휴대용 또는 다른 저전력 디바이스들과 같은 몇몇 애플리케이션들에서 바람직하지 않을 수 있다.
메모리 신뢰도를 향상시키기 위해, 몇몇 디바이스들은 리셋 이벤트(리셋, 파워-온 또는 다른 이벤트와 같은) 후, 메모리는 미리 결정된 데이터 시퀀스로 채워지고, ECC 데이터는 이러한 미리 결정된 시퀀스에 기초하여 메모리를 위해 산출되는 방식을 이용한다. 그러나, 이러한 방식은 리셋 이벤트 후 바람직하지 않은 지연을 야기할 뿐만 아니라 리셋 이벤트 후, 바람직하지 않은 전력 소비를 야기할 수 있다. 이러한 전력 소비는 리셋 이벤트를 빈번하게 겪는 디바이스들 또는 휴대용 디바이스들에 특히 바람직하지 않을 수 있다.
그러므로, 바람직하지 않은 양의 디바이스 자원들을 소비하지 않고 에러 정정을 수행하는 디바이스를 제공하는 것이 바람직하다.
본 개시는 더욱 양호하게 이해될 수 있으며, 그 다양한 특징들 및 이점들은 첨부한 도면들을 참조함으로써 이 기술분야의 숙련자들에게 명백해질 것이다.
에러 정정을 위한 디바이스 및 방법이 개시된다. 디바이스는 상태 표시자의 상태에 의존하여 메모리 위치에 대한 에러 처리를 디스에이블하기 위한 메모리 제어 모듈을 포함한다. 상태 표시자는 리셋 또는 파워-온 이벤트 이후와 같은, 메모리 위치에 대한 유효한 에러 정정 및 검출 정보가 이용가능하지 않을 때 에러 처리가 디스에이블되도록 설정될 수 있다. 또한, 메모리 제어 모듈은 유효한 에러 검출 및 정정 데이터가 메모리 위치에 대해 산출됨을 보장하기 위해 에러 처리가 디스에이블될 때 부분 기록 요청들을 전체 기록 요청들로 촉진시킬 수 있다(promote). 유효한 에러 검출 및 정정 정보가 이용가능할 때까지 에러 처리를 디스에이블함으로써, 불필요하거나 또는 유효하지 않은 에러 처리 동작들의 수가 감소되고, 그에 의해 디바이스 자원들을 보존한다.
도 1은 에러 정정 방식을 이용한 처리 디바이스의 특정 실시예를 예시한 도면.
도 2는 도 1의 메모리 제어 모듈의 특정 실시예를 예시한 도면.
도 3은 도 2의 메모리 상태 모듈의 특정 실시예를 예시한 도면.
도 4는 도 2의 기록 제어 모듈의 특정 실시예를 예시한 도면.
도 5는 메모리 기록 액세스 요청을 처리하는 방법에 대한 흐름도.
도 6은 메모리 판독 액세스 요청을 처리하는 방법에 대한 흐름도.
도 7은 도 1의 처리 디바이스의 대안적 실시예를 예시한 도면.
서로 다른 도면들에서 동일한 참조 심볼들의 사용은 유사하거나 또는 동일한 아이템들을 나타낸다.
도 1을 참조하면, 처리 디바이스(100)가 예시된다. 처리 디바이스(100)는 제 1 인터페이스(103)를 통해 메모리 제어 모듈(105)에 연결된 프로세서(102)를 포함한다. 디바이스(100)는 또한 제 2 인터페이스(107)를 통해 메모리 제어 모듈(105)에 연결된 휘발성 메모리(108)를 포함한다. 메모리(108)는 데이터 영역(110) 및 ECC 영역(112)을 포함한다. 처리 디바이스(100)는 ASIC, 시스템 온 칩(SOC), 집적 회로, 또는 다른 디바이스일 수 있다. 또한, 처리 디바이스(100)는 이동 또는 휴대용 디바이스들, 자동차 디바이스들, 또는 다른 적절한 디바이스들과 같은 다양한 애플리케이션들에 사용될 수 있다. 메모리(108)는 RAM 메모리(DRAM 또는 SRAM 또는 다른 RAM 메모리를 포함하는) 또는 임의의 다른 유형의 휘발성 메모리일 수 있다.
동작 동안, 프로세서(102)는 판독 및 기록 요청들과 같은 메모리 액세스 요청들을 메모리 제어 모듈(105)에 전송한다. 메모리 제어 모듈(105)은 에러 처리가 메모리 액세스 요청과 연관된 메모리 위치에 대해 인에이블되는지 여부를 결정하고 적절한 동작을 수행한다. 에러 처리가 인에이블되면, 메모리 제어 모듈(105)은 판독 요청을 위한 에러 검출 및 정정, 또는 기록 요청을 위한 신드롬 데이터(syndrome data) 및 패리티 데이터의 생성과 같은 적절한 에러 처리를 수행한다. 에러 처리가 디스에이블되면, 이들 함수들은 메모리 제어 모듈(105)에 의해 수행되지 않는다. 단지 그러한 처리가 인에이블될 때만 에러 처리를 수행함으로써, 디바이스(100)는 불필요한 에러 처리를 감소시킬 수 있고, 그에 의해 전력, 시간, 또는 다른 디바이스 자원들을 절약할 수 있다.
예를 들면, 디바이스(100)가 리셋되거나 또는 파워 온된 후, 메모리(108)의 데이터 영역(110)에서의 데이터는 미정이다. 따라서, ECC 영역(112)에 저장된 패리티 데이터 또는 신드롬 데이터와 같은, 메모리(108)와 연관된 임의의 ECC 데이터는 일반적으로 랜덤 데이터이며, 그러므로 유효하지 않을 가능성이 있다. 그러므로, 메모리(108) 상에서의 에러 정정 또는 검출 동작들은 유효한 데이터가 메모리(108)에 기록될 때까지 잘못된 결과들을 리턴할 가능성이 있을 것이다. 메모리 제어 모듈(105)은 유효한 데이터가 메모리(108)에 기록될 때까지, 에러 정정 또는 에러 검출 중 적어도 하나를 디스에이블함으로써 불필요하거나 또는 유효하지 않은 에러 처리 동작들의 수를 감소시킬 수 있다.
예시된 실시예에 있어서, 메모리 제어 모듈(105)은 판독 요청들 및 기록 요청들을 포함하여, 다양한 유형들의 메모리 액세스 요청들에 대한 에러 처리를 수행할 수 있다. 예를 들면, 판독 요청의 경우에, 메모리 제어 모듈(105)은 에러 검출, 및 필요하다면, 판독 요청과 연관된 메모리(108)의 일부에 대한 에러 처리가 인에이블되는 경우, 에러 정정을 수행한다.
기록 요청의 경우에, 요청은 전체 기록 요청 또는 부분 기록 요청일 수 있다. 전체 기록 요청은 ECC 데이터 유닛(단일 ECC 신드롬 값과 연관된 메모리의 양)의 전체 폭으로 데이터를 기록하기 위한 요청인 반면, 부분 기록 요청은 ECC 데이터 유닛의 전체 폭 미만으로 데이터를 기록하기 위한 요청이다. 예를 들면, 메모리 제어 모듈(105) 및 메모리(108)는 64 비트 ECC 데이터 유닛에 기초하여 에러 검출 및 정정을 수행하도록 구성될 수 있다. 따라서, 이러한 예에서, 전체 기록 동작은 64 비트 기록 동작인 반면, 32 비트(워드), 16 비트(반-워드), 및 8 비트(바이트) 기록 동작들은 부분 기록 동작들이다.
전체 기록 요청의 경우에, 메모리 제어 모듈(105)은 기록 동작과 연관된 데이터를 위해 패리티 데이터와 같은 에러 검출 정보, 및 신드롬 데이터와 같은 에러 정정 정보를 산출한다. 기록 제어 모듈(105)은 기록 요청과 연관된 데이터뿐만 아니라 에러 검출 정보 및 에러 정정 정보를 메모리(108)에 기록한다.
부분 기록 요청의 경우에, 에러 처리가 인에이블될 때 부분 기록 동작을 위한 ECC 데이터를 산출하기 위해, 기록 제어 모듈(108) 또는 프로세서(102)는 부분 기록 요청을 "판독-변경-기록 동작"으로 변환할 수 있다. 이러한 동작하에, 에러 처리가 인에이블되면, 부분 기록 요청과 연관된 메모리 어드레스에서 전체 데이터 유닛이 판독되고, 에러 검출 및 에러 정정은 전체 데이터 유닛 상에 메모리 제어 모듈(105)에 의해 수행된다. 예를 들면, 64 비트 ECC 데이터 유닛을 위해 구성된 메모리의 경우에, 64 비트 메모리 위치의 모두는 ECC 데이터를 산출하기 위해 사용된다. 전체 데이터 유닛의 적절한 부분이 그 후 부분 기록 동작과 연관된 데이터로 교체되고, 전체 데이터 유닛(교체된 데이터를 갖는)은 메모리(108)에 기록된다. 업데이트된 에러 검출 및 정정 값들은 새로운 부분 기록 데이터 값을 포함하는 업데이트된 전체 데이터 유닛에 기초하여 산출된다.
대안적으로, 에러 처리가 디스에이블되면, 메모리 제어 모듈(105)은 부분 기록 요청을 전체 기록 요청으로 촉진시킬 수 있다. 본 명세서에 사용된 바와 같이, 기록 요청을 촉진시키는 것은 부분 기록 요청을 전체 기록 요청으로 변환하는 것으로서 정의된다. 일 실시예에서, 8, 16, 또는 32 비트 부분 데이터 기록 요청은 64 비트 전체 데이터 기록 요청으로 촉진된다. 이것은 다양한 방법들로 행해질 수 있다. 예를 들면, 메모리 제어 모듈(105)은 변환된 데이터가 전체 ECC 데이터 유닛에 적합하도록 부분 기록 요청과 연관된 데이터에 미리 결정된 데이터 시퀀스를 부가 또는 삽입할 수 있다. 그 후, 변환된 데이터는 메모리(108)에 기록될 수 있다. 업데이트된 에러 검출 및 정정 값들은 변환된 기록 데이터 값을 포함하는 업데이트된 전체 데이터 유닛에 기초하여 산출된다.
부분 기록 요청들을 전체 기록 요청들로 촉진시킴으로써, 데이터에 대한 유효한 에러 정정 및 검출 값들은 추후 에러 처리 동작들을 위해 메모리(108)에 위치된다. 따라서, 부분 기록 요청이 전체 기록 요청으로 촉진되고 전체 기록 요청을 위한 에러 정정 및 검출 정보가 산출 및 저장되면, 기록 요청과 연관된 메모리 위치에 대한 에러 정정이 인에이블될 수 있고, 에러 처리는 메모리 위치와 연관된 다음의 메모리 액세스 요청들을 위해 수행될 수 있다.
또한, 에러 처리 동작들을 선택적으로 인에이블하는 것과 함께, 부분 기록 요청들을 전체 기록 요청들로 촉진시킴으로써, 메모리 제어 모듈(105)은 시스템 자원들을 보존할 수 있다. 예를 들면, 설명한 바와 같이, 디바이스 리셋 또는 파워-온 이벤트 후, 메모리(108)의 데이터는 미정이고 메모리(108) 상에서의 에러 처리는 특히 부분 기록 동작들의 경우에 판독 및 기록 액세스들에 대한 에러들을 쉽게 야기할 수 있는데, 이는 그 동작들이 판독 함수 및 기록 함수 모두를 포함하기 때 문이다. 더욱이, 각각의 메모리 위치는 전체 기록 또는 촉진된 부분 기록 동작 중 하나가 메모리 위치상에서 수행될 때 알려진 데이터로 채워지기 때문에, 메모리(108)는 리셋 또는 파워-온 이벤트 후 직접 알려진 데이터 시퀀스로 미리 채워지거나 또는 초기화될 필요가 없고, 그로 인해 시간 및 전력을 절약한다.
도 2를 참조하면, 도 1의 메모리 제어 모듈(105)의 특정 실시예가 설명된다. 예시되는 바와 같이, 메모리 제어 모듈(105)은 제 1 인터페이스(103) 및 제 2 인터페이스(107)에 연결된 통신 모듈(202)을 포함한다. 또한, 통신 모듈(202)은 제 3 인터페이스(210)를 통해 에러 처리 모듈(204)로, 제 4 인터페이스(212)를 통해 기록 제어 모듈(206)로, 및 제 5 인터페이스(214)를 통해 메모리 상태 모듈(208)로 연결된다. 모듈들(202, 204, 206, 및 208)은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로서 수행될 수 있다. 예시를 위해, 모듈들(202, 204, 및 206)의 일부 또는 모두는 그것들의 대응하는 함수들을 수행하기 위한 로직(logic)으로서 수행될 수 있다.
동작 동안, 메모리 제어 모듈(105)은 에러 처리 및 메모리 액세스 요청 처리를 수행한다. 에러 처리를 수행하기 위해, 통신 모듈(202)은 제 1 인터페이스(103)를 통해 프로세서로부터 메모리 액세스 요청을 수신한다. 메모리 액세스 요청은 일반적으로 요청과 연관된 메모리 위치의 메모리 어드레스, 및 기록 요청의 경우에 메모리에 기록될 페이로드 데이터를 포함한다. 통신 모듈(202)은 메모리 어드레스를 에러 처리가 메모리 어드레스와 연관된 특정 메모리 위치에 대해 인에이블될지 여부를 결정하는 메모리 상태 모듈(208)에 제공한다.
에러 처리가 메모리 액세스 요청과 연관된 특정 메모리 위치에 대해 디스에이블된다면, 메모리 상태 모듈(208)은 통신 모듈(202)을 통해, 메모리 액세스 요청에 대하여 에러 처리가 수행될 필요가 없음을 에러 처리 모듈(204)에 나타낸다. 그 후 메모리 액세스 요청은 통신 모듈(202)에 의해 제 2 인터페이스(107)를 통해 메모리(108)(도 1)에 전달된다.
에러 처리가 메모리 액세스 요청과 연관된 특정 메모리 위치에 대해 인에이블된다면, 메모리 상태 모듈(208)은 에러 처리가 진행되어야 한다는 것을 에러 처리 모듈(204)에 나타낸다. 응답으로, 에러 처리 모듈(204)은 메모리(108)의 ECC 영역(112)으로부터 ECC 정보 및 데이터 영역(110)으로부터의 데이터를 이용하여, 적절한 에러 처리를 수행한다.
예를 들면, 판독 요청의 경우에, 에러 처리 모듈(204)은 메모리(108)로부터 판독된 데이터의 에러들을 검출하고, 필요하다면, 에러 정정된 판독 데이터를 생성하기 위해 에러들을 정정한다. 기록 요청의 경우에, 에러 처리 모듈(204)은 기록 요청과 연관된 페이로드 데이터에 기초하여, 패리티 및 신드롬 데이터와 같은 ECC 데이터를 산출한다.
에러 처리가 완료된 후, 통신 모듈(202)은 메모리 액세스 요청을 완료하기 위해 프로세서(102)(도 1) 및 메모리(108)와 통신한다. 예를 들면, 판독 요청의 경우에, 통신 모듈(202)은 에러 정정된 판독 데이터를 프로세서에 전달한다. 기록 요청의 경우에, 통신 모듈(202)은 에러 처리 모듈(204)에 의해 산출된 페이로드 데이터 및 ECC 데이터를 메모리(108)에 전달한다.
에러 처리를 선택적으로 인에이블함으로써, 메모리 제어 모듈(105)은 불필요하거나 또는 바람직하지 않은 에러 처리의 양을 감소시킬 수 있다. 예를 들면, 에러 처리는 메모리 액세스 요청들에 대한 응답 시간을 개선하기 위해 프로세서에 의해 디스에이블될 수 있다. 이것은 빠른 메모리 응답을 요청하는 중요한 디바이스 동작들을 위해 바람직할 수 있다. 또 다른 실시예에서, 에러 처리는 전력 소비를 감소시키기 위해 디스에이블될 수 있다. 예를 들면, 메모리 제어 모듈(105)을 포함하는 디바이스는 저 전력 상태를 포함할 수 있고, 여기서 빈번한 에러 제어 동작들은 연관된 전력 소비로 인하여 바람직하지 않다.
또한, 특정 실시예에서, 메모리 제어 모듈(105)은 그러한 처리가 메모리의 특정 부분들을 위해 인에이블되고 다른 부분들을 위해 디스에이블되도록 에러 처리를 제어할 수 있다. 이것은 다양한 상황들에서 유용할 수 있다. 예를 들면, 메모리 제어 모듈(105)은 에러 처리가 중요한 디바이스 데이터를 포함하는 메모리의 부분들을 위해 인에이블되지만, 덜 중요한 데이터를 저장하는 메모리의 부분들을 위해 디스에이블되도록 구성될 수 있다. 또 다른 실시예에서, 에러 정정은 빈번한 에러들을 경험하거나 또는 바람직하지 않은 동작 상태들 하에서 동작하는 메모리의 부분들을 위해 인에이블될 수 있는 반면, 에러 처리는 보다 적은 동작 에러들을 경험하는 메모리의 다른 부분들을 위해 디스에이블된다. 또 다른 실시예에서, 에러 정정은 파워-온 이벤트가 발생한 이래, 그 콘텐트들이 초기화되는 메모리의 부분들을 위해 인에이블될 수 있는 반면, 에러 처리는 아직 초기화되지 않은 메모리의 다른 부분들을 위해 디스에이블될 수 있다.
또한, 메모리 상태 모듈(208)은 시간에 걸쳐 메모리 위치에 대한 에러 처리 상태를 변경할 수 있다. 예를 들면, 에러 처리는 기록 요청이 그 메모리 위치에 대해 달성되고, 유효한 ECC 데이터가 메모리 위치에 대해 산출될 때까지 특정 메모리 위치에 대해 디스에이블될 수 있다. 따라서, 메모리 제어 모듈(105)은 적절한 상황들에 의존하여 메모리에 대한 에러 처리 구성을 동적으로 변경할 수 있다.
또 다른 특정 실시예에서, 메모리 상태 모듈(208)은 통신 모듈(202)을 통해 프로세서(102)로부터 리셋 표시를 수신할 수 있다. 리셋 표시에 응답하여, 메모리 상태 모듈(208)은 메모리 위치들의 모두 또는 일부에 대한 에러 처리를 디스에이블할 수 있다. 이것은 시스템 리셋, 파워-온, 또는 다른 리셋 이벤트 후에 유효하지 않거나 또는 불필요한 에러 처리의 양을 감소시킬 수 있다.
에러 처리 이외에, 메모리 제어 모듈(105)은 기록 요청 처리를 수행한다. 통신 모듈(202)은 제 1 인터페이스(103)를 통해 프로세서로부터 기록 요청을 수신한다. 통신 모듈(202)은 기록 요청과 연관된 어드레스 데이터 또는 페이로드 데이터를, 기록 요청이 전체 기록 요청 또는 부분 기록 요청인지를 결정하는 기록 제어 모듈(206)에 제공한다. 이것은 다양한 방식들로 행해질 수 있다. 예를 들면, 기록 제어 모듈은 메모리(108)에 대한 ECC 데이터 유닛의 크기에 대한 페이로드 데이터 크기의 비교에 기초하여 결정할 수 있다. 또 다른 실시예에서, 결정은 메모리 액세스 요청과 연관된 어드레스에 기초할 수 있다. 대안적인 실시예들은 임의의 다른 관련 방식으로 결정할 수 있다.
기록 요청이 전체 기록 요청이라면, 기록 제어 모듈(206)은 전체 기록 요청 이 처리될 수 있고, 페이로드 데이터(그러한 데이터가 산출된다면, ECC 데이터와 함께)가 메모리에 기록될 수 있다는 것을 통신 모듈(202)에 나타낸다.
기록 요청이 부분 기록 요청이라면, 기록 제어 모듈(206)은 에러 처리가 요청과 연관된 메모리 위치에 대해 인에이블될지 여부를 결정하기 위해 메모리 상태 모듈(208)을 컨설팅한다. 에러 처리가 인에이블된다면, 기록 제어 모듈(206)은 부분 기록 요청을 촉진하지 않고 부분 기록 요청을 이행하기 위해 판독-변경-기록 동작(read-modify-write operation)을 수행할 수 있다. 부분 기록 데이터 값들은 "변경" 동작 동안, 판독-변경-기록 동작의 판독 동작으로부터 획득된 에러 정정된 판독 데이터와 병합되고, 메모리 위치는 이어서 판독-변경-기록 동작의 기록 부분 동안 변경된 값으로 업데이트된다. 변경된 데이터 값으로부터 산출된 업데이트된 ECC 데이터가 또한 저장된다. 에러 처리가 디스에이블된다면, 기록 제어 모듈(206)은 부분 기록 요청을 전체 기록 요청으로 촉진시킨다. 기록 제어 모듈(206)은 그 후 ECC 데이터 산출을 위한 에러 처리 모듈에 결과적인 전체 기록 요청을 제공하고, 그 결과적인 전체 기록 요청과 연관된 데이터를 메모리에 전달하기 위한 통신 모듈(202)에 제공한다.
부분 기록 요청들을 전체 기록 요청들로 선택적으로 촉진시킴으로써, 기록 제어 모듈(206)은 유효하거나 또는 알려진 데이터가 모든 유형들의 기록 요청들에 대한 특정 메모리 위치에 기록됨을 보장할 수 있다. 그 후, 메모리 상태 모듈(208)은 메모리 위치에 대한 에러 정정을 인에이블할 수 있다.
도 3을 참조하면, 도 2의 메모리 상태 모듈(208)의 특정 실시예가 예시된다. 메모리 상태 모듈(208)은 인터페이스(214)에 연결되고 인터페이스(306)를 통해 상태 표시자 저장 구성요소(304)에 연결된 메모리 상태 검출 모듈(302)을 포함한다. 상태 표시자 저장 구성요소(304)는 대응하는 메모리 위치들과 연관된 하나 이상의 상태 표시자들을 포함한다. 상태 표시자 저장 구성요소(304)는 데이터 파일, 상태 레지스터, 일련의 상태 플래그 비트들, 또는 다른 적절한 상태 표시자일 수 있다. 모듈들(302, 304)은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로서 구현될 수 있다. 예시를 위해, 모듈들(302, 304) 중 하나 또는 둘 모두는 그 대응하는 함수들을 수행하기 위해 로직으로서 구현될 수 있다.
동작 동안, 메모리 상태 검출 모듈(302)은 인터페이스(214)를 통해 메모리 상태 문의들을 수신한다. 메모리 상태 문의들은 메모리 어드레스 또는 메모리 어드레스에 기초한 표시와 같은 문의와 연관된 메모리 위치의 표시를 포함한다. 문의에 응답하여, 메모리 상태 검출 모듈(302)은 에러 처리가 메모리 위치에 대해 인에이블되는지 여부를 결정하기 위해 상태 표시자 저장 구성요소(304)를 액세스한다. 메모리 상태 검출 모듈은 그 후 에러 처리가 인에이블되는지 또는 디스에이블되는지 여부를 나타내는 문의에 대한 응답을 리턴할 수 있다.
또한, 메모리 상태 검출 모듈(302)은 인터페이스(214)를 통해 메모리 상태 변화 요청들을 수신할 수 있다. 메모리 상태 문의들과 유사하게, 메모리 상태 변화 요청들은 메모리 위치 표시자를 포함할 수 있다. 메모리 상태 변화 요청에 응답하여, 메모리 상태 검출 모듈(302)은 하나 이상의 메모리 위치들의 에러 처리 상태를 변경하기 위해 상태 표시자 저장 구성요소(304)를 액세스할 수 있다. 예를 들면, 상태 표시자 저장 구성요소(304)가 메모리 위치와 연관된 상태 플래그 비트를 포함한다면, 메모리 상태 검출 모듈은 메모리 위치에 대한 에러 처리를 인에이블 또는 디스에이블하기 위해 적절하게 비트를 설정 또는 클리어할 수 있다.
또한, 메모리 상태 변화 요청은 하나 이상의 메모리 위치와 또한 연관될 수 있다. 따라서, 메모리 상태 변화 요청에 응답하여, 메모리 상태 검출 모듈(302)은 메모리 영역 또는 전체 메모리 디바이스를 위한 에러 처리를 인에이블 또는 디스에이블할 수 있다.
도 4를 참조하면, 도 2의 기록 제어 모듈(206)의 특정 실시예가 예시된다. 기록 제어 모듈은 인터페이스(406)를 통해 기록 촉진 모듈(404)에 연결된 기록 크기 검출 모듈(402)을 포함한다. 기록 크기 검출 모듈(402) 및 기록 촉진 모듈(404)은 각각 인터페이스(212)에 연결된다. 모듈들(402, 404)은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로서 구현될 수 있다. 예시를 위해, 모듈들(402, 404)의 일부 또는 모두는 그 대응하는 함수들을 수행하기 위해 로직으로서 구현될 수 있다.
동작 동안, 기록 크기 검출 모듈(402)은 인터페이스(212)를 통해 기록 요청들을 수신한다. 기록 크기 검출 모듈(402)은 수신된 기록 요청이 전체 또는 부분 기록 요청인지 여부를 결정한다. 기록 요청이 부분 기록 요청이라면, 기록 크기 검출 모듈(402)은 기록 요청을 전체 기록 동작으로 촉진시키도록 기록 촉진 모듈(404)에 지시한다. 응답으로, 기록 촉진 모듈(404)은 인터페이스(212)를 통해 부분 기록 동작과 연관된 페이로드 데이터를 수신한다. 기록 촉진 모듈(404)은 그 후 부분 기록 동작을 전체 기록 동작으로 촉진시키고, 인터페이스(212)를 통해 그 결과적인 페이로드 데이터를 리턴한다.
도 5를 참조하면, 메모리에 대한 기록 요청을 처리하는 방법에 대한 특정 실시예의 흐름도가 예시된다. 블록 502에서, 리셋 표시가 프로세서 또는 메모리 제어 모듈에 의해 수신된다. 리셋 표시는 파워-온 이벤트, 저 전력 상태에서 활성 상태로의 디바이스의 전이, 리셋 이벤트 또는 다른 적절한 이벤트와 같은 다양한 이벤트들 이후에 수신될 수 있다.
블록 504로 진행하면, 복수의 상태 표시자들이 프로세서 또는 메모리 제어 모듈에 의해 설정된다. 이들 상태 표시자들은 복수의 메모리 위치들과 연관될 수 있으며, 메모리 위치들에 대한 에러 처리가 디스에이블되어야 함을 나타낸다. 리셋 표시 후 메모리 위치들에 대한 에러 처리를 디스에이블함으로써, 불필요하거나 또는 바람직하지 않은 에러 처리가 감소될 수 있다.
블록 506으로 이동하면, 특정 메모리 위치에 대한 기록 요청이 메모리 제어 모듈 또는 프로세서에서 수신된다. 기록 요청은 메모리 위치에 대한 어드레스, 및 메모리 위치에 기록될 데이터를 포함할 수 있다.
결정 블록(508)에서, 그것은 수신된 기록 요청이 부분 또는 전체 기록 요청인지 여부를 프로세서 또는 메모리 제어 모듈에 의해 결정된다. 요청이 전체 기록 요청이라면, 방법은 블록 522로 이동하고, 프로세서 또는 메모리 제어 모듈은 기록 요청에 대한 에러 정정 신드롬 및 패리티 데이터를 산출한다. 일반적으로, 에러 정정 신드롬 및 패리티 데이터는 기록 요청과 연관된 데이터에 기초한다. 그 후 방법 은 블록 524로 진행하고, 기록 요청과 연관된 데이터는 적절한 메모리 위치에 기록된다. 또한, 블록 526에서, 산출된 에러 정정 신드롬 및 패리티 데이터는 메모리 위치와 연관된 에러 정정 영역에 기록된다. 에러 정정 데이터는 기록 요청 데이터와 동일한 메모리 디바이스에 또는 상이한 디바이스에 기록될 수 있다. 그 후 방법은 블록 528로 진행하고 메모리 위치와 연관된 상태 표시자가 클리어된다. 이것은 메모리 위치로의 다음 기록 동작들에 대한 에러 정정을 인에이블한다.
결정 블록(508)으로 리턴하면, 기록 요청이 부분 기록 요청인 경우, 방법은 결정 블록(510)으로 진행하고, 프로세서 또는 메모리 제어 모듈은 기록 요청과 연관된 메모리 위치에 대한 상태 표시자가 설정되었는지 여부를 결정한다. 에러 처리가 디스에이블되어야 함을 나타내는, 상태 표시자가 설정된 경우, 방법은 블록 512로 이동하고 프로세서 또는 메모리 제어 모듈은 메모리 위치에 대한 에러 검출 및 정정을 디스에이블한다. 방법은 블록 514로 이동하고, 프로세서 또는 메모리 제어 모듈은 부분 기록 요청에서 전체 기록 요청으로 촉진시킨다. 부분 기록 요청에서 전체 기록 요청으로 촉진시킴으로써, 유효한 에러 처리 데이터가 연관된 메모리 위치에 대해 산출되어, 추후 메모리 액세스 요청들에 대한 유효한 에러 처리를 허용할 수 있다. 방법은 블록 522로 진행하며, 에러 정정 데이터는 부분 기록 요청의 촉진으로부터 기인되는 전체 기록 요청에 대해 산출된다.
블록 510으로 리턴하면, 에러 처리가 인에이블됨을 나타내는 상태 표시자가 설정되지 않았다고 결정되는 경우, 방법은 판독-변경-기록 동작을 시작하기 위해 블록 516으로 이동한다. 기록 요청과 연관된 메모리 위치에서의 데이터는 블록 516 에서 판독된다. 블록 518에서, 판독 데이터의 에러들이 검출되고 필요하다면 정정된다. 블록 520에서, 판독 데이터의 적절한 부분이 부분 기록 요청과 연관된 데이터로 교체된다. 방법은 판독-변경-기록 동작으로부터 기인하는 데이터에 대한 에러 정정 신드롬 및 패리티 데이터를 산출하기 위해 블록 522로 이동한다. 블록 522로부터, 방법은 블록 524로 진행하여, 이전에 설명된 동작들을 수행한다.
도 6을 참조하면, 판독 요청을 처리하는 방법에 대한 특정 실시예의 흐름도가 예시된다. 블록 602에서, 메모리 위치에 대한 판독 요청이 프로세서 또는 메모리 제어 모듈에서 수신된다. 판독 요청은 판독 요청이 부분 판독 요청인지 전체 판독 요청인지 여부에 대한 표시뿐만 아니라, 메모리 위치와 연관된 어드레스를 포함할 수 있다. 메모리 위치 데이터가 그 후 획득된다.
결정 블록(604)으로 이동하면, 프로세서 또는 메모리 제어 모듈은 메모리 위치와 연관된 상태 표시자가 설정되는지 여부를 결정한다. 상태 표시자는 메모리 위치에 대한 에러 처리가 인에이블되어야 하는지 여부를 결정하기 위해 사용된다.
상태 표시자가 설정되지 않음이 결정된 경우, 방법은 블록 606으로 이동하고, 에러 검출 및 정정이 수행된다. 에러 검출은 메모리 위치와 연관된 패리티 데이터에 기초할 수 있고, 에러 정정은 메모리 위치와 연관된 에러 신드롬 데이터를 이용하여 수행될 수 있거나, 또는 에러 검출 및 정정은 임의의 다른 대안적 방법으로 수행될 수 있다. 방법은 블록 610으로 진행하고, 에러 정정된 데이터는 판독 요청된 디바이스로 리턴된다.
결정 블록(606)으로 리턴하면, 상태 표시자가 메모리 위치에 대해 설정되지 않았다고 결정된 경우, 방법은 블록 608로 이동하고, 메모리 위치에 대한 에러 검출 및 정정이 디스에이블된다. 방법은 블록 610으로 이동하고 판독 데이터는 요청 디바이스로 리턴된다.
이 기술분야의 숙련자는 도 5 및 도 6에 대하여 논의된 상태 표시자들의 설정 상태가 임의의 특정 저장된 값에 제한되지 않음을 이해할 것이다. 예를 들면, 로직 "1" 또는 "0"을 포함하는, 임의의 값이 본 개시의 범위로부터 벗어나지 않고 설정 상태를 표시하기 위해 사용될 수 있다.
도 7을 참조하면, 도 1의 장치(100)에 대한 대안적 실시예가 예시된다. 예시된 바와 같이, 도 7에 예시된 메모리(108)는 상태 표시자 저장 구성요소(702)를 포함한다. 상태 표시자 저장 구성요소(702)는 에러 처리가 메모리(108)의 데이터 영역(110)에서의 대응하는 메모리 위치들에 대해 인에이블 또는 디스에이블되어야 하는지 여부를 나타내기 위해 복수의 상태 표시자들을 포함한다. 상태 표시자 저장 구성요소(702)는 프로세서(102)로부터 수신된 메모리 액세스 요청에 대한 에러 처리를 인에이블 또는 디스에이블할지 여부를 결정하기 위해 메모리 제어 모듈에 의해 액세스될 수 있다.
따라서, 도 5에 예시된 바와 같이, 메모리(108)에 대한 에러 처리를 인에이블 또는 디스에이블하기 위해 사용된 상태 표시자들은 메모리 제어 모듈(105)에서보다는 메모리 자체에 저장될 수 있다.
설명된 대로, 에러 정정을 위한 디바이스들 및 방법들이 본 명세서에 개시된다. 방법들 중 하나는 제 1 메모리 위치와 연관된 제 1 에러 정정 상태 표시자의 상태를 결정하는 단계, 제 1 에러 정정 상태 표시자가 제 1 상태에 있는지를 결정하는 것에 응답하여, 제 1 메모리 위치에 대한 액세스 요청을 위한 에러 정정, 에러 검출 또는 그것들의 임의의 조합 중 하나를 디스에이블하는 단계를 포함한다.
특정 양상에 있어서, 방법은 에러 정정 상태 표시자가 제 2 상태에 있음을 결정하는 것에 응답하여, 제 1 메모리 위치에 대한 액세스 요청을 위해 에러 검출 또는 에러 정정 중 적어도 하나를 인에이블하는 단계를 포함한다.
또 다른 특정 양상에 있어서, 액세스 요청은 부분 기록 동작이고, 방법은 부분 기록 동작에서 전체 기록 동작으로 촉진시키는 단계를 더 포함한다. 또 다른 특정 양상에 있어서, 방법은 제 1 전체 기록 동작에 대한 에러 정정 정보를 산출하는 단계를 포함한다. 또 다른 특정 양상에 있어서, 방법은 제 1 부분 기록 동작을 촉진시킨 후 제 1 에러 정정 상태 표시자를 제 2 상태로 변경하는 단계를 포함한다.
특정 양상에 있어서, 제 1 액세스 요청은 부분 기록 동작이며, 방법은 에러 정정 상태 표시자가 제 2 상태에 있음을 결정하는 것에 응답하여, 제 1 메모리 위치에 대한 에러 정정 및 에러 검출을 수행하는 단계 및 제 1 메모리 위치의 부분에 데이터를 기록함으로써 제 1 부분 기록 동작을 수행하는 단계를 포함한다.
또 다른 특정 양상에 있어서, 방법은 리셋 표시를 수신하는 단계 및 리셋 표시를 수신하는 것에 응답하여 에러 정정 상태 표시자를 제 1 상태에 위치시키는 단계를 포함한다. 또 다른 특정 양상에 있어서, 제 1 메모리 위치는 제 1 디바이스에 포함되며, 여기서, 리셋 표시는 저전력 모드에서 활성 모드로의 디바이스 전이에 응답하여 수신된다.
특정 양상에 있어서, 방법은 제 2 메모리 위치와 연관된 제 2 액세스 요청을 수신하는 단계, 제 2 메모리 위치와 연관된 제 2 에러 정정 상태 표시자의 상태를 결정하는 단계, 및 제 2 에러 정정 상태 표시자가 제 1 상태에 있음을 결정하는 것에 응답하여, 제 2 메모리 위치로의 액세스 요청에 대한 에러 정정, 에러 검출, 또는 그것들의 임의의 조합을 디스에이블하는 단계를 포함한다.
또 다른 특정 양상에 있어서, 제 1 전체 기록 동작은 제 1 메모리 위치와 연관된 에러 정정 데이터 유닛의 전체 폭 상에서 수행된다.
개시된 디바이스는 제 1 메모리 위치를 포함하는 메모리를 포함한다. 제 1 메모리 위치는 데이터 영역 및 에러 정정 영역을 포함한다. 디바이스는 또한 메모리에 결합된 에러 정정 모듈, 제 1 메모리 위치와 연관된 제 1 상태 표시자를 포함한다. 에러 정정 모듈은 제 1 메모리 위치와 연관된 에러 정정을 수행한다. 디바이스는 또한 제 1 상태 표시자에 결합된 제 1 입력 및 에러 정정 모듈에 결합된 출력을 포함하는 액세스 제어 모듈을 포함한다. 액세스 제어 모듈은 제 1 상태에 있는 제 1 상태 표시자에 응답하여, 제 1 메모리 위치에 대한 에러 정정, 에러 검출, 또는 그것들의 임의의 조합 중 하나를 디스에이블하게 한다.
특정 양상에 있어서, 제 1 상태에 있는 제 1 상태 표시자에 응답하여, 액세스 제어 모듈은 제 1 메모리 위치와 연관된 제 1 부분 기록 동작을 전체 기록 동작으로 촉진시킨다.
또 다른 특정 양상에 있어서, 액세스 제어 모듈은 리셋 신호를 수신하기 위해 제 2 입력을 더 포함하고, 여기서 액세스 제어 모듈은 제 1 상태 표시자가 리셋 신호의 수신에 응답하여 제 1 상태로 위치되게 한다.
또 다른 특정 양상에 있어서, 에러 정정 모듈은 전체 기록 동작과 연관된 에러 정정 데이터를 산출한다.
특정 양상에 있어서, 제 1 상태 표시자는 제 1 메모리 위치와 연관된 상태 플래그 비트이다.
또 다른 개시된 방법은 제 1 메모리 위치와 연관된 제 1 에러 정정 상태 표시자의 상태를 결정하는 단계, 및 에러 정정 상태 표시자가 제 1 상태에 있음을 결정하는 것에 응답하여, 제 1 메모리 위치와 연관된 제 1 부분 기록 동작을 제 1 전체 기록 동작으로 촉진시키는 단계를 포함한다.
특정 양상에 있어서, 방법은 제 1 부분 기록 동작의 처리 동안 에러 검출 또는 에러 정정 중 적어도 하나를 디스에이블하는 단계를 포함한다.
또 다른 특정 양상에 있어서, 방법은 리셋 표시를 수신하는 단계, 및 리셋 표시의 수신에 응답하여 에러 정정 상태 표시자를 제 1 상태에 두는 단계를 포함한다.
또 다른 특정 양상에 있어서, 방법은 제 1 전체 기록 동작에 대한 에러 정정 정보를 산출하는 단계를 포함한다.
특정 양상에 있어서, 방법은 제 1 부분 기록 동작을 활성화하는 것 외에 제 1 에러 정정 상태 표시자를 제 2 상태로 변경하는 단계를 포함한다.
본 발명의 원리들이 특정 장치와 함께 상술되었지만, 이 기술은 단지 예로서 이루어진 것이며 본 발명의 범위에 대한 제한으로서 이루어진 것이 아님을 분명하 게 이해해야 한다.

Claims (20)

  1. 방법에 있어서,
    제 1 메모리 위치와 연관된 제 1 에러 정정 상태 표시자의 상태를 결정하는 단계; 및
    상기 제 1 에러 정정 상태 표시자가 제 1 상태에 있음을 결정하는 것에 응답하여, 상기 제 1 메모리 위치에 대한 제 1 액세스 요청을 위한 에러 처리를 디스에이블하는 단계로서, 상기 에러 처리는 에러 검출 및 에러 정정으로 이루어진 그룹으로부터 선택되는, 상기 디스에이블 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 제 1 에러 정정 상태 표시자가 제 2 상태에 있음을 결정하는 것에 응답하여, 상기 제 1 메모리 위치에 대한 상기 제 1 액세스 요청을 위한 에러 처리를 인에이블하는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 제 1 액세스 요청은 부분 기록 동작이고,
    상기 방법은,
    상기 부분 기록 동작을 전체 기록 동작으로 촉진시키는(promoting) 단계를 더 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 전체 기록 동작을 위한 에러 정정 정보를 산출하는 단계를 더 포함하는, 방법.
  5. 제 3 항에 있어서,
    상기 전체 기록 동작은 상기 제 1 메모리 위치와 연관된 에러 정정 데이터 유닛의 전체폭 상에서 수행되는, 방법.
  6. 제 3 항에 있어서,
    상기 부분 기록 동작을 촉진시킨 후, 상기 제 1 에러 정정 상태 표시자를 제 2 상태로 변경하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 제 1 액세스 요청은 부분 기록 동작이고,
    상기 방법은,
    상기 제 1 에러 정정 상태 표시자가 제 2 상태에 있음을 결정하는 것에 응답하여,
    상기 제 1 메모리 위치에 대한 에러 정정 또는 에러 검출을 수행하는 단계; 및
    상기 제 1 메모리 위치의 부분에 데이터를 기록함으로써 상기 부분 기록 동작을 수행하는 단계를 더 포함하는, 방법.
  8. 제 1 항에 있어서,
    리셋 표시를 수신하는 단계; 및
    상기 리셋 표시 수신에 응답하여 상기 제 1 에러 정정 상태 표시자를 상기 제 1 상태에 위치시키는 단계를 더 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 제 1 메모리 위치는 디바이스에 포함되고, 상기 리셋 표시는 저전력 모드에서 활성 모드로 전이하는 상기 디바이스에 응답하여 수신되는, 방법.
  10. 제 1 항에 있어서,
    제 2 메모리 위치에 대한 제 2 액세스 요청을 수신하는 단계;
    상기 제 2 메모리 위치와 연관된 제 2 에러 정정 상태 표시자의 상태를 결정하는 단계;
    상기 제 2 에러 정정 상태 표시자가 상기 제 1 상태에 있음을 결정하는 것에 응답하여, 상기 제 2 메모리 위치에 대한 상기 제 2 액세스 요청을 위한 에러 처리를 디스에이블하는 단계를 더 포함하는, 방법.
  11. 디바이스에 있어서,
    메모리 위치를 포함하는 메모리로서, 상기 메모리 위치는,
    데이터 영역; 및
    에러 정정 영역을 포함하는, 상기 메모리;
    상기 메모리 위치와 연관된 상태 표시자;
    상기 메모리에 결합되고, 상기 메모리 위치와 연관된 에러 정정을 수행하기 위한 에러 정정 모듈; 및
    상기 상태 표시자에 결합된 제 1 입력 및 상기 에러 정정 모듈에 결합된 출력을 포함하고, 미리 결정된 상태에 있는 상기 상태 표시자에 응답하여, 상기 메모리 위치에 대한 에러 처리를 디스에이블하는 액세스 제어 모듈로서, 상기 에러 처리는 에러 검출 및 에러 정정으로 이루어진 그룹으로부터 선택되는, 상기 액세스 제어 모듈을 포함하는, 디바이스.
  12. 제 11 항에 있어서,
    상기 미리 결정된 상태에 있는 상기 상태 표시자에 응답하여, 상기 액세스 제어 모듈은 상기 메모리 위치와 연관된 부분 기록 동작을 전체 기록 동작으로 촉진시키는, 디바이스.
  13. 제 12 항에 있어서,
    상기 에러 정정 모듈은 상기 전체 기록 동작과 연관된 에러 정정 데이터를 산출하는, 디바이스.
  14. 제 11 항에 있어서,
    상기 액세스 제어 모듈은 리셋 신호를 수신하기 위해 제 2 입력을 더 포함하고, 상기 액세스 제어 모듈은 상기 상태 표시자가 상기 리셋 신호의 수신에 응답하여 상기 미리 결정된 상태에 위치되도록 하는, 디바이스.
  15. 제 11 항에 있어서,
    상기 상태 표시자는 상기 메모리 위치와 연관된 상태 플래그 비트인, 디바이스.
  16. 방법에 있어서,
    메모리 위치에 대한 부분 기록 동작을 수신하는 단계;
    상기 메모리 위치와 연관된 에러 정정 상태 표시자의 상태를 결정하는 단계; 및
    상기 에러 정정 상태 표시자가 제 1 상태에 있음을 결정하는 것에 응답하여, 상기 부분 기록 동작을 전체 기록 동작으로 촉진시키는 단계를 포함하는, 방법.
  17. 제 16 항에 있어서,
    상기 부분 기록 동작의 처리 동안, 에러 검출 또는 에러 정정 중 적어도 하 나를 디스에이블하는 단계를 더 포함하는, 방법.
  18. 제 16 항에 있어서,
    리셋 표시를 수신하는 단계;
    상기 리셋 표시의 수신에 응답하여 상기 에러 정정 상태 표시자를 상기 제 1 상태에 위치시키는 단계를 더 포함하는, 방법.
  19. 제 16 항에 있어서,
    상기 전체 기록 동작을 위한 에러 정정 정보를 산출하는 단계를 더 포함하는, 방법.
  20. 제 16 항에 있어서,
    상기 부분 기록 동작을 촉진시키는 단계 이외에 상기 에러 정정 상태 표시자를 제 2 상태로 변경하는 단계를 더 포함하는, 방법.
KR1020087020334A 2006-02-21 2007-01-18 에러 정정 디바이스 및 그 방법 Expired - Fee Related KR101291525B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/359,329 2006-02-21
US11/359,329 US7617437B2 (en) 2006-02-21 2006-02-21 Error correction device and method thereof
PCT/US2007/060659 WO2007103590A2 (en) 2006-02-21 2007-01-18 Error correction device and method thereof

Publications (2)

Publication Number Publication Date
KR20080098613A true KR20080098613A (ko) 2008-11-11
KR101291525B1 KR101291525B1 (ko) 2013-08-08

Family

ID=38475622

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087020334A Expired - Fee Related KR101291525B1 (ko) 2006-02-21 2007-01-18 에러 정정 디바이스 및 그 방법

Country Status (5)

Country Link
US (1) US7617437B2 (ko)
JP (1) JP5232018B2 (ko)
KR (1) KR101291525B1 (ko)
TW (1) TWI421679B (ko)
WO (1) WO2007103590A2 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783955B2 (en) * 2006-01-18 2010-08-24 Sandisk Il Ltd. Method for implementing error-correction codes in flash memory
CN101336418B (zh) * 2006-01-31 2011-02-09 富士通株式会社 纠错码生成方法以及存储器管理装置
US8725975B2 (en) * 2007-01-03 2014-05-13 Freescale Semiconductor, Inc. Progressive memory initialization with waitpoints
WO2008155850A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
US8239732B2 (en) * 2007-10-30 2012-08-07 Spansion Llc Error correction coding in flash memory devices
FR2928769B1 (fr) * 2008-03-14 2012-07-13 Airbus France Dispositif permettant l'utilisation d'un composant programmable dans un environnement radiatif naturel
US8122308B2 (en) * 2008-06-25 2012-02-21 Intel Corporation Securely clearing an error indicator
US8112649B2 (en) * 2009-03-17 2012-02-07 Empire Technology Development Llc Energy optimization through intentional errors
JP4905510B2 (ja) * 2009-06-29 2012-03-28 富士通株式会社 ストレージ制御装置及びストレージ装置のデータ回復方法
US8738995B2 (en) 2009-09-10 2014-05-27 Hewlett-Packard Development Company, L.P. Memory subsystem having a first portion to store data with error correction code information and a second portion to store data without error correction code information
JP4837121B1 (ja) * 2010-06-23 2011-12-14 株式会社東芝 データ記憶装置及びデータ書き込み方法
US8990660B2 (en) 2010-09-13 2015-03-24 Freescale Semiconductor, Inc. Data processing system having end-to-end error correction and method therefor
US8549379B2 (en) 2010-11-19 2013-10-01 Xilinx, Inc. Classifying a criticality of a soft error and mitigating the soft error based on the criticality
US8738993B2 (en) * 2010-12-06 2014-05-27 Intel Corporation Memory device on the fly CRC mode
US8560892B2 (en) * 2010-12-14 2013-10-15 Medtronic, Inc. Memory with selectively writable error correction codes and validity bits
US8566672B2 (en) 2011-03-22 2013-10-22 Freescale Semiconductor, Inc. Selective checkbit modification for error correction
US8607121B2 (en) * 2011-04-29 2013-12-10 Freescale Semiconductor, Inc. Selective error detection and error correction for a memory interface
US8990657B2 (en) 2011-06-14 2015-03-24 Freescale Semiconductor, Inc. Selective masking for error correction
US8522091B1 (en) 2011-11-18 2013-08-27 Xilinx, Inc. Prioritized detection of memory corruption
US9612901B2 (en) * 2012-03-30 2017-04-04 Intel Corporation Memories utilizing hybrid error correcting code techniques
US9411678B1 (en) * 2012-08-01 2016-08-09 Rambus Inc. DRAM retention monitoring method for dynamic error correction
MY180992A (en) * 2013-03-13 2020-12-15 Intel Corp Memory latency management
US9823864B2 (en) * 2014-06-02 2017-11-21 Micron Technology, Inc. Systems and methods for throttling packet transmission in a scalable memory system protocol
US9852811B2 (en) * 2014-11-13 2017-12-26 Macronix International Co., Ltd. Device and method for detecting controller signal errors in flash memory
US9423972B2 (en) * 2014-11-17 2016-08-23 Freescale Semiconductor, Inc. Error recovery in a data processing system which implements partial writes
CN105607726B (zh) * 2015-12-24 2018-11-23 浪潮(北京)电子信息产业有限公司 一种降低高性能计算集群内存功耗的方法及装置
US11990199B2 (en) * 2021-01-21 2024-05-21 Micron Technology, Inc. Centralized error correction circuit

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6384647U (ko) * 1986-11-21 1988-06-03
JPH04364552A (ja) * 1991-06-12 1992-12-16 Nec Corp パリティ監視回路付きメモリ回路
JPH10289164A (ja) * 1997-04-16 1998-10-27 Mitsubishi Electric Corp メモリ制御方法およびメモリ制御装置
US6119248A (en) * 1998-01-26 2000-09-12 Dell Usa L.P. Operating system notification of correctable error in computer information
TW200517836A (en) * 2003-11-18 2005-06-01 Jtek Technology Corp Buffer control framework and method between different memories
US6980873B2 (en) * 2004-04-23 2005-12-27 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for real-time fault detection, classification, and correction in a semiconductor manufacturing environment
US7334179B2 (en) * 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
TWI294126B (en) * 2004-06-30 2008-03-01 Hon Hai Prec Ind Co Ltd System and method for testing memory
US20060143551A1 (en) * 2004-12-29 2006-06-29 Intel Corporation Localizing error detection and recovery

Also Published As

Publication number Publication date
WO2007103590A2 (en) 2007-09-13
US20070220354A1 (en) 2007-09-20
JP5232018B2 (ja) 2013-07-10
TW200801932A (en) 2008-01-01
JP2009527820A (ja) 2009-07-30
US7617437B2 (en) 2009-11-10
TWI421679B (zh) 2014-01-01
KR101291525B1 (ko) 2013-08-08
WO2007103590A3 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
KR101291525B1 (ko) 에러 정정 디바이스 및 그 방법
US10838808B2 (en) Error-correcting code memory
US8266498B2 (en) Implementation of multiple error detection schemes for a cache
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US8627169B2 (en) Method and apparatus for dynamically configurable multi level error correction
US9003247B2 (en) Remapping data with pointer
US20070268905A1 (en) Non-volatile memory error correction system and method
US9251057B2 (en) Nonvolatile cache memory, processing method of nonvolatile cache memory, and computer system
US8589763B2 (en) Cache memory system
US8245109B2 (en) Error checking and correction (ECC) system and method
US20080177938A1 (en) Hybrid hard disk drive, computer system including the same, and flash memory DMA circuit for hybrid HDD
US20100250857A1 (en) Cache controlling apparatus, information processing apparatus and computer-readable recording medium on or in which cache controlling program is recorded
US20140026011A1 (en) Memory with Dynamic Error Detection and Correction
US20060117239A1 (en) Method and related apparatus for performing error checking-correcting
JPH0895856A (ja) キャッシュ・メモリ付きコンピュータ装置
US7739557B2 (en) Method, system and program product for autonomous error recovery for memory devices
JP2012509525A (ja) データ処理システム及び方法
KR20170102723A (ko) 캐시 메모리 장치 및 그것의 동작 방법
JP3922844B2 (ja) キャッシュtag制御方法及びこの制御方法を用いた情報処理装置
US6901551B1 (en) Method and apparatus for protection of data utilizing CRC
CN103593252B (zh) 具有动态错误侦测及更正的存储器
US7689895B2 (en) On-the fly error checking and correction CODEC system and method for supporting non-volatile memory
JP2023549630A (ja) 信頼性のある低電圧キャッシュ動作のためのマスクされた障害の検出
WO2007088597A1 (ja) エラー訂正コード生成方法及びメモリ管理装置
JPH05108496A (ja) パトロール制御方式

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

A201 Request for examination
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

FPAY Annual fee payment

Payment date: 20160713

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20170726

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20170726