KR20220143450A - 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법 - Google Patents

시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20220143450A
KR20220143450A KR1020210049978A KR20210049978A KR20220143450A KR 20220143450 A KR20220143450 A KR 20220143450A KR 1020210049978 A KR1020210049978 A KR 1020210049978A KR 20210049978 A KR20210049978 A KR 20210049978A KR 20220143450 A KR20220143450 A KR 20220143450A
Authority
KR
South Korea
Prior art keywords
address
buffer
data
parity bit
bit
Prior art date
Application number
KR1020210049978A
Other languages
English (en)
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 KR1020210049978A priority Critical patent/KR20220143450A/ko
Priority to US17/506,931 priority patent/US20220334761A1/en
Priority to CN202111577029.2A priority patent/CN115220949A/zh
Publication of KR20220143450A publication Critical patent/KR20220143450A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1032Simple parity
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 기술은 어드레스들이 할당된 버퍼 영역들을 포함하고, 상기 버퍼 영역들에 데이터를 저장하도록 구성된 시스템 버퍼; 및 상기 시스템 버퍼에 입력되는 데이터에 대한 제1 패리티 비트와 상기 시스템 버퍼에 입력된 데이터에 대한 제2 패리티 비트를 사용하여, 상기 버퍼 영역들 중 결함이 발생한 버퍼 영역의 어드레스를 결함 어드레스로 지정하고, 상기 결함 어드레스로 지정된 버퍼 영역의 액세스(access)를 차단하도록 구성된 버퍼 매니저를 포함하는 메모리 시스템 및 이의 동작 방법을 포함한다.

Description

시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법{Memory system having a system buffer and operating method of the memory system}
본 발명은 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 시스템 버퍼의 어드레스를 관리할 수 있는 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법에 관한 것이다.
메모리 시스템은 사용자 데이터가 저장되는 메모리 장치와, 메모리 장치를 제어할 수 있는 컨트롤러 및 시스템 버퍼를 포함할 수 있다.
메모리 장치는 휘발성 메모리 장치(Volatile Memory)와 비휘발성 메모리 장치(Non-volatile Memory)로 구분된다. 휘발성 메모리 장치는 각각 서로 다른 특성을 가지므로, 전자 장치에서 각각의 기능에 맞게 사용되고 있다. 예를 들면, 휘발성 메모리 장치는 프로그램 동작 및 리드 동작의 속도가 비휘발성 메모리 장치보다 빠르지만, 전원의 공급이 중단되면 저장된 데이터가 소멸되는 특성을 가진다. 비휘발성 메모리 장치는 프로그램 동작 및 리드 동작의 속도는 휘발성 메모리 장치보다 느리지만, 전원의 공급이 중단되더라도 저장된 데이터가 유지되는 특성을 가진다. 또한, 비휘발성 메모리 장치는 휘발성 메모리 장치보다 높은 집적도를 가질 수 있으므로, 대용량 데이터를 저장할 수 있다.
시스템 버퍼는 메모리 시스템에서 사용되는 시스템 데이터를 저장하도록 구성될 수 있다. 예를 들면, 시스템 데이터는 호스트 및 메모리 장치 사이에 사용되는 어드레스 맵 테이블 또는 사용자 데이터 등을 포함할 수 있다. 어드레스 맵 테이블에는 호스트에서 사용되는 논리 어드레스(logical address)와 메모리 장치에서 사용되는 물리 어드레스(physical address)의 맵핑된 어드레스들이 포함될 수 있다. 시스템 버퍼는 휘발성 메모리로 구성될 수 있으나, 비휘발성 메모리로 구성되거나 휘발성 메모리와 비휘발성 메모리가 혼합된 구조로 구성될 수도 있다.
컨트롤러는 호스트 또는 메모리 장치로부터 수신된 데이터를 시스템 메모리에 임시로 저장할 수 있고, 컨트롤러 내부에서 생성된 데이터를 시스템 버퍼에 임시로 저장할 수도 있다.
본 발명의 실시예는 시스템 버퍼에서 에러가 발생하는 어드레스를 관리할 수 있는 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 메모리 시스템은, 어드레스들이 할당된 버퍼 영역들을 포함하고, 상기 버퍼 영역들에 데이터를 저장하도록 구성된 시스템 버퍼; 및 상기 시스템 버퍼에 입력되는 데이터에 대한 제1 패리티 비트와 상기 시스템 버퍼에 입력된 데이터에 대한 제2 패리티 비트를 사용하여, 상기 버퍼 영역들 중 결함이 발생한 버퍼 영역의 어드레스를 결함 어드레스로 지정하고, 상기 결함 어드레스로 지정된 버퍼 영역의 액세스(access)를 차단하도록 구성된 버퍼 매니저를 포함한다.
본 발명의 실시예에 따른 메모리 시스템은, 어드레스들이 할당된 버퍼 영역들을 포함하고, 상기 버퍼 영역들에 데이터를 저장하도록 구성된 시스템 버퍼; 및 상기 시스템 버퍼에 입력되는 데이터에 대한 패리티 또는 해밍 코드를 사용하거나, 상기 패리티를 사용한 결과에 따라 상기 해밍 코드를 사용하여 결함이 발생한 어드레스를 검출하고, 검출된 어드레스의 액세스(access)를 차단하도록 구성된 버퍼 매니저를 포함한다.
본 발명의 실시예에 따른 메모리 시스템의 동작 방법은, 시스템 버퍼에 저장되기 이전의 데이터에 대한 제1 패리티 비트를 생성하는 단계; 상기 데이터를 상기 시스템 버퍼에 저장하는 단계; 상기 시스템 버퍼에 저장된 상기 데이터에 대한 제2 패리티 비트를 생성하는 단계; 및 상기 시스템 버퍼에 할당된 어드레스들 중에서, 상기 제2 패리티 비트의 값이 상기 제1 패리티 비트의 값과 상이한 어드레스가 검출되면, 검출된 상기 어드레스를 결함 어드레스로 지정하는 단계를 포함한다.
본 기술은 시스템 버퍼에서 결함이 발생하는 어드레스의 사용을 금지함으로써, 시스템 버퍼의 신뢰도를 개선할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 시스템 버퍼 및 버퍼 매니저를 설명하기 위한 도면이다.
도 3은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 제1 실시 예에 따라 데이터의 패리티 비트를 생성하는 방법을 설명하기 위한 도면이다.
도 5a 및 도 5b는 본 발명의 제1 실시 예에 따라 결함 어드레스를 검출하기 위한 실시 예들을 설명하기 위한 도면들이다.
도 6은 본 발명의 제1 실시 예에 따라 결함 어드레스를 설정하는 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 제1 실시 예에 따라 결함 어드레스가 설정된 시스템 버퍼에 데이터가 입력되는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 제2 실시 예에 따라 데이터의 패리티 비트를 생성하는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 제2 실시 예에 따라 결함 어드레스를 검출하기 위한 실시 예들을 설명하기 위한 도면들이다.
도 10은 본 발명의 제2 실시 예에 따라 결함 어드레스를 설정하는 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 제2 실시 예에 따라 결함 어드레스가 설정된 시스템 버퍼에 데이터가 입력되는 방법을 설명하기 위한 도면이다.
도 12는 본 발명의 제3 실시 예에 따라 결함 어드레스가 설정된 시스템 버퍼에 데이터가 입력되는 방법을 설명하기 위한 도면이다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 14는 본 발명의 실시 예에 따른 컨트롤러를 설명하기 위한 도면이다.
도 15는 본 발명의 실시 예에 따른 전자 시스템을 설명하기 위한 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(memory system; 2000)은 시스템 버퍼(system buffer; 100) 및 버퍼 매니저(buffer manager; 200)를 포함할 수 있다.
시스템 버퍼(100)는 메모리 시스템(2000)에서 사용되는 데이터(DATA)를 저장하고, 저장된 데이터(DATA)를 출력하도록 구성될 수 있다. 데이터는 호스트 및 메모리 장치 사이에서 사용되는 어드레스 맵 테이블 또는 사용자 데이터 등을 포함할 수 있다. 어드레스 맵 테이블에는 호스트에서 사용되는 논리 어드레스(logical address)와 메모리 장치에서 사용되는 물리 어드레스(physical address)가 맵핑된 어드레스들이 포함될 수 있다. 시스템 버퍼(100)는 휘발성 메모리 또는 비휘발성 메모리로 구성되거나, 휘발성 메모리와 비휘발성 메모리가 혼합된 구조로 구성될 수도 있다. 예를 들면, 시스템 버퍼(100)는 SRAM(static random access memory), DRAM(dynamic random access memory) 또는 NAND 메모리 중에서 일부로 구성되거나, 혼합된 구조로 구성될 수 있다.
버퍼 매니저(200)는 시스템 버퍼(100)에 입력되는 데이터(DATA)의 패리티를 생성하고, 패리티를 사용한 연산을 수행하여 시스템 버퍼(100)에서 발생할 수 있는 에러를 검출하도록 구성될 수 있다. 예를 들면, 버퍼 매니저(200)는 호스트 또는 메모리 장치로부터 출력된 데이터(DATA)의 패리티 비트(PT_B)를 생성한 후, 시스템 버퍼(100)에 데이터(DATA) 및 패리티 비트(PT_B)를 저장할 수 있다. 버퍼 매니저200)는 시스템 버퍼(100)에 저장된 데이터(DATA)의 패리티 비트를 다시 생성하고, 이전에 생성된 패리티 비트(PT_B)와 다시 생성된 패리티 비트를 서로 비교하여, 비교 결과로써 플래그 비트(FG_B)를 생성하고, 플래그 비트(FG_B)를 시스템 버퍼(100)에 저장할 수 있다. 버퍼 매니저(200)는 플래그 비트(FG_B) 중에서 설정된 비트에 대응되는 어드레스(ADD)를 시스템 버퍼(100)로부터 수신받고, 수신된 어드레스(ADD)의 검출 횟수를 카운트할 수 있다. 버퍼 매니저(200)는 검출 횟수가 기준 횟수와 같거나 큰 어드레스가 검출되면, 검출된 어드레스에 대응되는 결함 어드레스(D_ADD)를 출력할 수 있다. 즉, 결함 어드레스(D_ADD)는 시스템 또는 사용자가 원하는 데이터가 저장되지 않는 버퍼 영역의 어드레스일 수 있다. 예를 들면, 특정 영역에 동일한 데이터가 지속적으로 저장되는 버퍼 영역이 검출되는 경우, 해당 버퍼 영역에 할당된 어드레스가 결함 어드레스(D_ADD)로써 지정될 수 있다. 예를 들면, 특정 영역에 항상 1 데이터가 저장되거나 0 데이터가 저장되는 경우, 해당 영역을 포함하는 버퍼 영역의 어드레스가 결함 어드레스(D_ADD)로써 지정될 수 있다.
시스템 버퍼(100)의 어드레스들 중 결함 어드레스(D_ADD)로 지정된 어드레스는 결함이 있는 메모리 영역의 어드레스이므로, 이후 동작부터 데이터(DATA)의 액세스(access)가 차단될 수 있다.
즉, 버퍼 매니저(200)는 시스템 버퍼(100)의 메모리 영역들에 할당된 어드레스들 중에서, 에러가 발생하는 어드레스를 검출하고, 검출된 어드레스를 결함 어드레스(D_ADD)로 지정함으로써, 결함이 발생하는 메모리 영역에 데이터(DATA)가 저장되는 것을 방지할 수 있다. 버퍼 매니저(200)는 결함 어드레스(D_ADD)의 액세스를 차단한 후, 결함 어드레스(D_ADD)에 저장될 데이터가 결함이 발생하지 않은 정상 버퍼 영역에 저장될 수 있도록 결함 어드레스(D_ADD)를 정상 버퍼 영역의 어드레스로 대체할 수 있다.
시스템 버퍼(100)와 버퍼 매니저(200)의 구성을 더욱 구체적으로 설명하면 다음과 같다.
도 2는 본 발명의 실시 예에 따른 시스템 버퍼 및 버퍼 매니저를 설명하기 위한 도면이다.
도 2를 참조하면, 시스템 버퍼(100)는 메모리 시스템에서 사용되는 데이터(DATA)와, 어드레스(ADD) 별로 구분되는 데이터(DATA)의 패리티 비트(PT_B) 및 플래그 비트(FG_B)를 저장하도록 구성될 수 있다. 예를 들면, 시스템 버퍼(100)에 저장되는 데이터(DATA)는 논리 어드레스와 물리 어드레스의 맵핑 정보인 어드레스 맵 테이블을 포함할 수 있으며, 이 외에도 호스트 또는 메모리 장치에서 사용되는 다양한 데이터를 포함할 수 있다. 시스템 버퍼(100)에 저장되는 어드레스(ADD)는 시스템 버퍼(100)에 저장되는 데이터를 구분하기 위한 어드레스일 수 있다. 패리티 비트(PT_B)는 어드레스(ADD) 별로 구분되는 데이터(DATA)의 패리티로써, 데이터(DATA)에 포함되는 0 또는 1의 개수에 따라 0 또는 1 값을 가질 수 있다. 예를 들면, 동일한 어드레스(ADD)가 할당된 데이터(DATA)에 포함된 1의 개수가 홀수이면 패리티 비트(PT_B)는 0이 되고, 데이터(DATA)에 포함된 1의 개수가 0 이거나 짝수이면 패리티 비트(PT_B)는 1이 될 수 있다. 또는, 패리티 비트(PT_B)는 데이터(DATA)에 포함된 0의 개수를 기준으로 생성될 수도 있다. 패리티 비트(PT_B)는 패리티 생성부(parity generator; 210)에 저장된 알고리즘에 따라 다양한 방식으로 연산될 수 있다.
버퍼 매니저(200)는 패리티 생성부(210), 결함 검출부(defect detector; 220), 카운터(counter; 230) 및 결함 어드레스 저장부(D_ADD storage; 240)을 포함할 수 있다.
패리티 생성부(210)는 시스템 버퍼(100)에 입력되는 데이터(DATA)의 패리티를 연산하여 패리티 비트(PT_B)를 생성하도록 구성될 수 있다. 예를 들면, 패리티 생성부(210)는 시스템 버퍼(100)에 입력되는 데이터(DATA)에 포함된 0 또는 1의 개수에 따라 0 또는 1 값을 가지는 패리티 비트(PT_B)를 생성할 수 있다. 예를 들어, 패리티 생성부(210)가 데이터(DATA)에 포함된 1의 개수에 따라 패리티 비트(PT_B)를 생성하도록 설정되었다고 가정한다. 이 경우, 패리티 생성부(210)는 데이터(DATA)에 포함된 1의 개수가 홀수이면 0 값을 가지는 패리티 비트(PT_B)를 출력할 수 있고, 데이터(DATA)에 포함된 1의 개수가 0 이거나 짝수이면 1 값을 가지는 패리티 비트(PT_B)를 출력할 수 있다.
결함 검출부(220)는 시스템 버퍼(100)에 입력된 데이터(DATA)에 포함된 에러 비트를 검출하도록 구성될 수 있다. 결함 검출부(220)는 시스템 버퍼(100)에 입력된 데이터(DATA)의 패리티 비트를 다시 연산하고, 시스템 버퍼(100)에 저장된 패리티 비트(PT_B)와 다시 연산된 패리티 비트의 비교 결과에 따라 플래그 비트(flag bit; FG_B)를 생성하거나 해밍 코드(hamming code)를 사용한 연산 결과에 따라 플래그 비트(FG_B)를 생성하도록 구성될 수 있다. 예를 들면, 결함 검출부(220)는 패리티 생성부(210)에서 연산된 패리티 비트(PT_B)와 결함 검출부(220)에서 연산된 패리티 비트가 서로 동일하면 0 값을 가지는 플래그 비트(FG_B)를 출력할 수 있고, 패리티 비트들이 서로 다르면 1 값을 가지는 플래그 비트(FG_B)를 출력할 수 있다. 결함 검출부(220)에서 출력된 플래그 비트(FG_B)는 시스템 버퍼(100)에 저장될 수 있다. 패리티를 사용한 연산은 에러 비트가 홀수 개 발생한 어드레스(ADD)를 검출하는 데 사용될 수 있고, 해밍 코드를 사용한 연산은 에러 비트가 복수 개 발생한 어드레스(ADD를 검출하는 데 사용될 수 있다.
카운터(230)는 시스템 버퍼(100)에서 플래그 비트(FG_B)가 1인 어드레스(ADD)의 카운트 횟수를 카운트하도록 구성될 수 있다. 예를 들면, 카운터(230)는 플래그 비트(FG_B)가 1인 어드레스(ADD)를 저장하고, 저장된 어드레스(ADD)의 플래그 비트(FG_B)가 1이 될 때마다 카운트 횟수를 1씩 증가시킬 수 있다. 카운터(230)는 카운트 횟수가 기준 횟수 이상이 되는 어드레스가 검출되면, 검출된 어드레스(ADD)를 출력할 수 있다.
결함 어드레스 저장부(240)는 카운터(230)에서 출력된 어드레스(ADD)를 저장하고, 저장된 어드레스(ADD)를 결함 어드레스(D_ADD)로써 출력하도록 구성될 수 있다. 시스템 버퍼(100)에서 결함 어드레스(D_ADD)로 지정된 어드레스(ADD)는 액세스(access)가 차단될 수 있다. 따라서, 후속 동작에서 데이터(DATA)가 입력될 때, 결함 어드레스(D_ADD)로 지정된 어드레스(ADD)에는 데이터의 접근이 금지될 수 있다. 즉, 결함 어드레스(D_ADD)로 지정된 어드레스(ADD)에 대응되는 버퍼 영역은 사용이 금지되고, 결함 어드레스(D_ADD)는 결함이 없는 정상 버퍼 영역의 다른 어드레스로 대체될 수 있다.
도 3은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 2 및 도 3을 참조하면, 메모리 시스템에 데이터(DATA)가 수신되면(단계 S31), 수신된 데이터(DATA)에 대한 패리티 비트(PT_B)가 생성될 수 있다(단계 S32). 예를 들면, 패리티 생성부(210)는 메모리 시스템에 수신되는 데이터(DATA)에 대한 패리티를 연산하여 패리티 비트(PT_B)를 생성할 수 있다. 패리티 생성부(210)에 의해 생성된 패리티 비트(PT_B)는 시스템 버퍼(100)에 저장될 수 있다(단계 S33).
단계 S33 이후, 결함 검출부(220)는 시스템 버퍼(100)에서 결함이 발생한 데이터(DATA)를 검출하고, 해당 데이터(DATA)에 할당된 어드레스를 검출할 수 있다(단계 S34). 예를 들면, 결함 검출부(220)는 시스템 버퍼(100)에 저장된 데이터(DATA)에 대한 패리티 또는 해밍 코드를 사용하여 에러 비트가 포함된 어드레스(ADD)를 검출할 수 있다. 결함 어드레스를 빠르게 검출하기 위해서는 패리티만을 사용한 연산 동작이 수행될 수 있으나, 시스템 버퍼(100)의 결함 어드레스 더욱 정확하게 검출하기 위해서는 해밍 코드를 사용한 연산 동작이 수행될 수 있다. 결함 검출부(220)는 에러 비트가 발생한 어드레스(ADD)에 결함 플래그 비트를 저장할 수 있고, 에러 비트가 발생하지 않은 어드레스(ADD)에는 무결함 플래그 비트를 저장할 수 있다. 예를 들면, 결함 플래그 비트는 1로 설정될 수 있고, 무결함 플래그 비트는 0으로 설정될 수 있다.
이어서, 결함 어드레스의 카운트 횟수(CN)가 카운트될 수 있다(단계 S35). 예를 들면, 카운터(230)는 시스템 버퍼(100)에 저장된 플래그 비트에 따라 에러 비트가 포함된 어드레스를 저장하고, 저장된 어드레스의 카운트 횟수(CN)를 카운트할 수 있다.
카운터(230)는 카운트 횟수(CN)를 기준 횟수(Nref)와 비교할 수 있다(단계 S36). 예를 들면, 카운터(230)는 카운트 횟수(CN)가 기준 횟수(Nref) 이상인지 여부를 판단할 수 있다. 기준 횟수(Nref)는 1 이상의 자연수로 설정될 수 있다. 예를 들면, 시스템 버퍼(100)에서 에러 비트가 한 번이라도 검출된 어드레스를 다음 동작부터 사용하지 않을 경우, 기준 횟수(Nref)는 1로 설정될 수 있다. 예를 들면, 시스템 버퍼(100)에서 에러 비트가 다수 회 검출된 어드레스를 다음 동작부터 사용하지 않을 경우, 기준 횟수(Nref)는 1보다 큰 자연수로 설정될 수 있다. 즉, 기준 횟수(Nref)는 시스템 버퍼(100)의 에러 비트 허용률에 따라 설정될 수 있다.
단계 S36에서, 카운트 횟수(CN)가 기준 횟수(Nref)보다 작으면(NO), 결함 어드레스의 설정 없이 결함 어드레스 검출 동작은 종료될 수 있다.
단계 S36에서, 카운트 횟수(CN)가 기준 횟수(Nref) 이상인 어드레스(ADD)가 검출되면(YES), 결함 어드레스 저장부(240)는 검출된 어드레스(ADD)를 결함 어드레스(D_ADD)로 설정하고, 결함 어드레스(D_ADD)로 지정된 어드레스(ADD)의 액세스를 차단시킬 수 있다(S37). 결함 어드레스(D_ADD)는 시스템 버퍼(100)에서 에러 비트가 발생하는 어드레스(ADD) 이므로, 후속 동작 시 결함 어드레스(D_ADD)로 지정된 버퍼 영역으로의 액세스(access)를 차단함으로써, 시스템 버퍼(100)의 신뢰도는 개선될 수 있다.
도 3을 참조하여 설명된 결함 어드레스 검출 동작을 더욱 구체적으로 설명하면 다음과 같다.
도 4는 본 발명의 제1 실시 예에 따라 데이터의 패리티 비트를 생성하는 방법을 설명하기 위한 도면으로써, 도 3의 단계 S31 내지 S33에 대응될 수 있다.
도 4를 참조하면, 메모리 시스템에 데이터(DATA)가 수신되면, 패리티 생성부(210)는 데이터(DATA)가 시스템 버퍼(100)에 입력되기 이전에 데이터(DATA)의 제1 패리티 비트(1PT_B)를 생성할 수 있다. 예를 들면, 패리티 생성부(210)는 시스템 버퍼(100)의 각 어드레스 별로 구분된 버퍼 영역들에 수신되는 데이터(DATA)의 제1 패리티 비트(1PT_B)를 생성하고, 생성된 제1 패리티 비트(1PT_B)를 각각의 어드레스(ADD)에 대응되는 버퍼 영역에 저장할 수 있다.
예를 들면, 시스템 버퍼(100)의 제1 어드레스(A1)에 대응되는 버퍼 영역에 데이터(DATA) 10000100 이 수신되면, 패리티 생성부(210)는 수신된 데이터(DATA)에 포함된 1 비트의 개수를 카운트하여 제1 어드레스(A1)에 대응되는 제1 패리티 비트(1PT_B)를 생성할 수 있다. 데이터(DATA) 10000100 에 포함된 1 비트의 개수가 2 이므로, 제1 어드레스(A1)에 대응되는 제1 패리티 비트(1PT_B)는 0이 된다. 따라서, 제1 어드레스(A1)에 대응되는 버퍼 영역에는 데이터(DATA) 1000100 및 제1 패리티 비트(1PT_B) 0이 저장될 수 있다.
예를 들면, 시스템 버퍼(100)의 제2 어드레스(A2)에 대응되는 버퍼 영역에 데이터(DATA) 01111111이 수신되면, 패리티 생성부(210)는 수신된 데이터(DATA)에 포함된 1 비트의 개수를 카운트하여 제2 어드레스(A2)에 대응되는 제1 패리티 비트(1PT_B)를 생성할 수 있다. 데이터(DATA) 01111111에 포함된 1 비트의 개수가 7 이므로, 제2 어드레스(A2)에 대응되는 제1 패리티 비트(1PT_B)는 1이 된다. 따라서, 제2 어드레스(A2)에 대응되는 버퍼 영역에는 데이터(DATA) 01111111 및 제1 패리티 비트(1PT_B) 1이 저장될 수 있다. 다만, 제2 어드레스(A2)에 대응되는 버퍼 영역에 결함이 있는 경우, 수신된 데이터(DATA) 01111111 이 원본 그대로 저장되지 못하고 에러 비트(ER)가 포함된 데이터로 저장될 수 있다. 예를 들면, 제2 어드레스(A2)에 할당된 복수의 버퍼들 중에서 네 번째 버퍼에 결함이 발생한 경우, 결함이 발생한 버퍼에 원본 데이터인 1이 아닌 0 데이터가 저장될 수 있다. 다만, 제2 어드레스(A2)에 대응되는 데이터(DATA)가 시스템 버퍼(100)에 저장될 때에는 에러(ER) 여부를 알 수 없으므로 에러 비트(ER)를 포함한 데이터 01101111 이 버퍼 영역에 저장될 수 있고, 패리티 생성부(210)에서 생성된 제1 패리티 비트(1PT_B)의 값(1)이 그대로 저장될 수 있다.
제3 어드레스(A3)에 대응되는 버퍼 영역에 결함이 없으면, 제3 어드레스(A3)에 대응되는 버퍼 영역에는 시스템 버퍼(100)에 수신된 데이터(DATA) 00000000 이 그대로 저장될 수 있다. 데이터(DATA) 00000000 에는 1 비트의 데이터가 없으므로, 제1 패리티 비트(1PT_B)는 0이 된다.
제2 어드레스(A2)의 결함 비트(ER)를 찾는 동작은 도 5a 및 도 5b를 참조하여 설명된다.
도 5a 및 도 5b는 본 발명의 제1 실시 예에 따라 결함 어드레스를 검출하기 위한 실시 예들을 설명하기 위한 도면들로써, 도 3의 단계 S34에 대응될 수 있다.
도 5a를 참조하면, 결함 검출부(220)는 시스템 버퍼(100)에 저장된 데이터(DATA)에 대한 제2 패리티 비트(2PT_B)를 생성할 수 있다. 예를 들면, 결함 검출부(220)는 시스템 버퍼(100)에 저장된 데이터(DATA)의 제2 페리티 비트(2PT_B)를 어드레스 별로 산출하고, 산출된 제2 패리티 비트(2PT_B)와 시스템 버퍼(100)에 저장된 제1 패리티 비트(1PT_B)를 비교할 수 있다. 결함 검출부(220)는 제1 패리티 비트(1PT_B)와 제2 패리티 비트(2PT_B)가 서로 동일한 어드레스에는 무결함 플래그 비트(0)에 해당되는 플래그 비트(FG_B)를 저장하고, 제1 패리티 비트(1PT_B)와 제2 패리티 비트(2PT_B)가 서로 다른 어드레스에는 결함 플래그 비트(1)에 해당되는 플래그 비트(FG_B)를 저장할 수 있다. 도 5a를 참조하여 설명되는 실시 예에서는 제2 어드레스(A2)의 제1 패리티 비트(1PT_B)인 1이 제2 패리티 비트(2PT_B)인 0으로 변경되었으므로, 제2 어드레스(A2)의 플래그 비트(FG_B)는 결함 플래그 비트인 1이 된다.
도 5b를 참조하면, 시스템 버퍼(100)의 결함을 더욱 정확하게 검출하기 위하여, 결함 검출부(220)는 해밍 코드를 사용할 수 있다. 예를 들면, 제2 어드레스(A2)에 대응되는 버퍼 영역에서 2 비트 이상의 에러 비트들(ER)이 포함된 경우, 즉 에러 비트(ER)의 개수가 짝수인 경우에는 도 5a를 참조하여 설명된 바와 같이 패리티만 가지고 에러 비트(ER)를 검출할 수 없으므로, 해밍 코드가 사용될 수 있다. 예를 들면, 결함 검출부(220)는 도 5a를 참조하여 설명된 결함 어드레스 검출 동작에서 무결함 플래그 비트가 생성된 어드레스들에 대하여, 해밍 코드를 사용한 결함 어드레스 검출 동작을 추가로 수행할 수 있다. 또는, 결함 검출부(220)는 해밍 코드만을 사용하여 에러 비트(ER)를 검출하도록 구성될 수도 있다.
도 6은 본 발명의 제1 실시 예에 따라 결함 어드레스를 설정하는 방법을 설명하기 위한 도면으로써, 도 3의 단계 S35 내지 S37에 대응될 수 있다.
도 6을 참조하면, 카운터(230)는 시스템 버퍼(100)의 플래그 비트(FG_B)에 따라 어드레스(ADD) 및 카운트 횟수(CN)를 저장할 수 있다. 예를 들면, 카운터(230)는 시스템 버퍼(100)에 저장된 플래그 비트(FG_B)가 결함 플래그 비트인 어드레스(ADD)를 저장하고, 결함 어드레스 검출 동작에서 저장된 어드레스(ADD)가 검출될 때마다 카운트 횟수(CN)를 누적하여 증가시킬 수 있다. 예를 들면, 카운터(230)에 저장된 기준 횟수(Nref)가 5라고 가정하면, 결함 어드레스 검출 동작에서 제3 어드레스(A3)의 카운트 횟수가 1이고 제2 어드레스(A2)의 카운트 횟수가 5이면, 카운터(230)는 제2 어드레스(A2)를 출력할 수 있다.
결함 어드레스 저장부(240)는 카운터(230)로부터 출력된 어드레스(ADD)를 저장하고, 저장된 어드레스에 대응되는 결함 어드레스(D_ADD)를 출력할 수 있다. 예를 들면, 결함 어드레스 저장부(240)는 카운터(230)로부터 제2 어드레스(A2)가 출력되면, 제2 어드레스(A2)를 결함 어드레스(D_ADD)로써 저장하고, 제2 어드레스(A2)에 대응되는 결함 어드레스(D_ADD)를 시스템 버퍼(100)에게 출력할 수 있다. 시스템 버퍼(100)에 제2 어드레스(A2)에 대응되는 결함 어드레스(D_ADD)가 입력되면, 시스템 버퍼(100)의 제2 어드레스(A2)에 대응되는 버퍼 영역의 데이터 입출력이 금지될 수 있다.
도 7은 본 발명의 제1 실시 예에 따라 결함 어드레스가 설정된 시스템 버퍼에 데이터가 입력되는 방법을 설명하기 위한 도면이다.
도 6 및 도 7을 참조하면, 시스템 버퍼(100)의 제2 어드레스(A2)가 결함 어드레스(D_ADD)로 지정되면, 후속 동작에서 시스템 버퍼(100)에 수신된 데이터(DATA)는 제2 어드레스(A2)를 제외한 나머지 어드레스들에 순차적으로 입력될 수 있다. 예를 들면, 제1 어드레스(A1)에 대응되는 제1 데이터(1DATA)는 제1 어드레스(A1)가 할당된 버퍼 영역에 저장될 수 있고, 제1 데이터(1DATA) 다음으로 입력된 제2 데이터(2DATA)는 제2 어드레스(A2)가 아닌 제3 어드레스(A3)가 할당된 버퍼 영역에 저장될 수 있다. 즉, 시스템 버퍼(100)에서 제2 어드레스(A2)가 결함 어드레스(D_ADD)로 지정된 이후부터, 데이터의 입출력 시 제2 어드레스(A2)는 생략되고 나머지 어드레스들이 선택될 수 있다. 다시 말하면, 결함 어드레스(D_ADD)로 지정된 제2 어드레스(A2)는 정상 어드레스인 제3 어드레스(A3)로 대체될 수 있다.
결함 어드레스(D_ADD)로 지정된 어드레스(ADD)의 접근을 차단하는 방법으로 다양한 방식들이 사용될 수 있다. 예를 들면, 시스템 버퍼(100)에서 결함 어드레스(D_ADD)로 지정된 버퍼 영역의 어드레스 할당을 해제하거나, 결함 어드레스(D_ADD)에 대응되는 버퍼 영역을 제외한 나머지 버퍼 영역들의 어드레스들(ADD)을 순차적으로 재설정할 수도 있다. 예를 들면, 제2 어드레스(A2)가 결함 어드레스(D_ADD)로 지정되면, 제3 어드레스(A3)에 대응되는 버퍼 영역이 제2 어드레스(A2)로 재 지정될 수 있다. 이 외에도 다양한 방식들에 의해 결함 어드레스(D_ADD)의 접근이 차단될 수 있다.
도 8은 본 발명의 제2 실시 예에 따라 데이터의 패리티 비트를 생성하는 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 제2 실시 예에서는 시스템 버퍼(100)에 제2 패리티 비트(2PT_B)가 추가로 저장되는 버퍼 영역들(81)이 더 포함될 수 있다. 메모리 시스템에 데이터(DATA)가 수신되면, 패리티 생성부(210)는 데이터(DATA)가 시스템 버퍼(100)에 입력되기 이전에 데이터(DATA)의 제1 패리티 비트(1PT_B)를 생성할 수 있다. 예를 들면, 패리티 생성부(210)는 시스템 버퍼(100)의 각 어드레스 별로 구분된 버퍼 영역들에 수신되는 데이터(DATA)의 제1 패리티 비트(1PT_B)를 생성하고, 생성된 제1 패리티 비트(1PT_B)를 각각의 어드레스(ADD)에 대응되는 버퍼 영역에 저장할 수 있다.
예를 들면, 시스템 버퍼(100)의 제1 어드레스(A1)에 대응되는 버퍼 영역에 데이터(DATA) 11100100 이 수신되면, 패리티 생성부(210)는 수신된 데이터(DATA)에 포함된 1 비트의 개수를 카운트하여 제1 어드레스(A1)에 대응되는 제1 패리티 비트(1PT_B)를 생성할 수 있다. 데이터(DATA) 11100100 에 포함된 1 비트의 개수가 4 이므로, 제1 어드레스(A1)에 대응되는 제1 패리티 비트(1PT_B)는 0이 된다. 따라서, 제1 어드레스(A1)에 대응되는 버퍼 영역에는 데이터(DATA) 11100100 및 제1 패리티 비트(1PT_B) 0이 저장될 수 있다.
예를 들면, 시스템 버퍼(100)의 제2 어드레스(A2)에 대응되는 버퍼 영역에 데이터(DATA) 011111111 이 수신되면, 패리티 생성부(210)는 수신된 데이터(DATA)에 포함된 1 비트의 개수를 카운트하여 제2 어드레스(A2)에 대응되는 제1 패리티 비트(1PT_B)를 생성할 수 있다. 데이터(DATA) 01111111에 포함된 1 비트의 개수가 7 이므로, 제2 어드레스(A2)에 대응되는 제1 패리티 비트(1PT_B)는 1이 된다. 따라서, 제2 어드레스(A2)에 대응되는 버퍼 영역에는 데이터(DATA) 01111111 및 제1 패리티 비트(1PT_B) 1이 저장될 수 있다.
예를 들면, 시스템 버퍼(100)의 제3 어드레스(A3)에 대응되는 버퍼 영역에 데이터(DATA) 00011100 이 수신되면, 패리티 생성부(210)는 수신된 데이터(DATA)에 포함된 1 비트의 개수를 카운트하여 제3 어드레스(A3)에 대응되는 제1 패리티 비트(1PT_B)를 생성할 수 있다. 데이터(DATA) 00011100 에 포함된 1 비트의 개수가 3 이므로, 제3 어드레스(A3)에 대응되는 제1 패리티 비트(1PT_B)는 1이 된다. 따라서, 제3 어드레스(A3)에 대응되는 버퍼 영역에는 데이터(DATA) 00011100 및 제1 패리티 비트(1PT_B) 1이 저장될 수 있다. 다만, 제3 어드레스(A3)에 대응되는 버퍼 영역에 결함이 있는 경우, 수신된 데이터(DATA) 00011100 이 원본 그대로 저장되지 못하고 에러 비트(ER)가 포함된 데이터로 저장될 수 있다. 예를 들면, 제3 어드레스(A3)에 할당된 복수의 버퍼들 중에서 여섯 번째 버퍼에 결함이 발생한 경우, 결함이 발생한 버퍼에 원본 데이터인 1이 아닌 0 데이터가 저장될 수 있다. 제3 어드레스(A3)에 대응되는 데이터(DATA)가 시스템 버퍼(100)에 저장될 때에는 에러 여부를 알 수 없으므로 에러 비트(ER)를 포함한 데이터 00011000 이 버퍼 영역에 저장될 수 있고, 패리티 생성부(210)에서 생성된 제1 패리티 비트(1PT_B)의 값(1)이 그대로 저장될 수 있다.
제3 어드레스(A3)의 결함 비트(ER)를 찾는 동작은 도 9를 참조하여 설명된다.
도 9는 본 발명의 제2 실시 예에 따라 결함 어드레스를 검출하기 위한 실시 예들을 설명하기 위한 도면들이다.
도 9를 참조하면, 결함 검출부(220)는 시스템 버퍼(100)에 저장된 데이터(DATA)에 대한 제2 패리티 비트(2PT_B)를 생성하고, 생성된 제2 패리티 비트(2PT_B)를 시스템 버퍼(100)에 저장할 수 있다. 예를 들면, 결함 검출부(220)는 시스템 버퍼(100)에 저장된 데이터(DATA)의 제2 페리티 비트(2PT_B)를 어드레스 별로 생성하여 시스템 버퍼(100)에 저장하고, 시스템 버퍼(100)에 저장된 제1 및 제2 패리티 비트들(1PT_B, 2PT_B)을 비교할 수 있다. 결함 검출부(220)는 제1 패리티 비트(1PT_B)와 제2 패리티 비트(2PT_B)가 서로 동일한 어드레스에는 무결함 플래그 비트(0)에 해당되는 플래그 비트(FG_B)를 저장하고, 제1 패리티 비트(1PT_B)와 제2 패리티 비트(2PT_B)가 서로 다른 어드레스에는 결함 플래그 비트(1)에 해당되는 플래그 비트(FG_B)를 저장할 수 있다. 도 9를 참조하여 설명되는 실시 예에서는 제3 어드레스(A3)의 제1 패리티 비트(1PT_B) 1이 제2 패리티 비트(2PT_B)에서는 0으로 변경되었으므로, 제3 어드레스(A3)의 플래그 비트(FG_B)는 결함 플래그 비트인 1이 된다.
도 10은 본 발명의 제2 실시 예에 따라 결함 어드레스를 설정하는 방법을 설명하기 위한 도면이다.
도 10을 참조하면, 카운터(230)는 시스템 버퍼(100)의 플래그 비트(FG_B)에 따라 어드레스(ADD) 및 카운트 횟수(CN)를 저장할 수 있다. 예를 들면, 카운터(230)는 시스템 버퍼(100)에 저장된 플래그 비트(FG_B)가 결함 플래그 비트인 어드레스(ADD)를 저장하고, 결함 어드레스 검출 동작에서 저장된 어드레스(ADD)가 검출될 때마다 카운트 횟수(CN)를 누적하여 증가시킬 수 있다. 예를 들면, 카운터(230)에 저장된 기준 횟수(Nref)가 1이라고 가정하면, 결함 어드레스 검출 동작에서 제3 어드레스(A3)의 카운트 횟수가 1이면, 카운터(230)는 제3 어드레스(A3)를 출력할 수 있다. 즉, 기준 횟수(Nref)가 1로 설정되면, 에러 비트(ER)가 한 번이라도 검출된 어드레스들이 결함 어드레스(D_ADD)로 지정될 수 있다.
결함 어드레스 저장부(240)는 카운터(230)로부터 출력된 어드레스(ADD)를 저장하고, 저장된 어드레스에 대응되는 결함 어드레스(D_ADD)를 출력할 수 있다. 예를 들면, 결함 어드레스 저장부(240)는 카운터(230)로부터 제3 어드레스(A3)가 출력되면, 제3 어드레스(A3)를 결함 어드레스(D_ADD)로써 저장하고, 제3 어드레스(A3)에 대응되는 결함 어드레스(D_ADD)를 시스템 버퍼(100)에게 출력할 수 있다. 시스템 버퍼(100)에 제3 어드레스(A3)에 대응되는 결함 어드레스(ADD)가 입력되면, 시스템 버퍼(100)의 제3 어드레스(A3)에 대응되는 버퍼 영역의 데이터 입출력이 금지될 수 있다.
도 11은 본 발명의 제2 실시 예에 따라 결함 어드레스가 설정된 시스템 버퍼에 데이터가 입력되는 방법을 설명하기 위한 도면이다.
도 10 및 도 11을 참조하면, 시스템 버퍼(100)의 제3 어드레스(A3)가 결함 어드레스(D_ADD)로 지정되면, 후속 동작에서 시스템 버퍼(100)에 수신된 데이터(DATA)는 제3 어드레스(A3)를 제외한 나머지 어드레스들에 순차적으로 입력될 수 있다. 예를 들면, 제1 어드레스(A1)에 대응되는 제1 데이터(1DATA)는 제1 어드레스(A1)가 할당된 버퍼 영역에 저장될 수 있고, 제1 데이터(1DATA) 다음으로 입력된 제2 데이터(2DATA)는 제2 어드레스(A2)가 할당된 버퍼 영역에 저장될 수 있으며, 제2 데이터(2DATA) 다음으로 입력된 제3 데이터(3DATA)는 제3 어드레스(A3)가 아닌 제4 어드레스(A4)가 할당된 버퍼 영역에 저장될 수 있다. 즉, 시스템 버퍼(100)에서 제3 어드레스(A3)가 결함 어드레스(D_ADD)로 지정된 이후부터, 데이터의 입출력 시 제3 어드레스(A3)는 생략되고 나머지 어드레스들이 선택될 수 있다. 다시 말하면, 결함 어드레스(D_ADD)로 지정된 제3 어드레스(A3)는 정상 어드레스인 제4 어드레스(A4)로 대체될 수 있다.
도 12는 본 발명의 제3 실시 예에 따라 결함 어드레스가 설정된 시스템 버퍼에 데이터가 입력되는 방법을 설명하기 위한 도면이다.
도 12를 참조하면, 시스템 버퍼(100)에 할당된 어드레스들(ADD) 중에서 복수의 어드레스들(ADD)이 결함 어드레스(D_ADD)로 지정될 수도 있다. 복수의 어드레스들(ADD)이 결함 어드레스(D_ADD)로 지정되더라도, 데이터의 입출력은 결함 어드레스(D_ADD)가 지정된 버퍼 영역에서만 차단될 수 있다.
예를 들면, 제3 및 제4 어드레스들(A3, A4)이 결함 어드레스(D_ADD)로 지정된 이후에 데이터가 입력되면, 제1 및 제2 데이터(1DATA, 2DATA)는 제1 및 제2 어드레스들(A1, A2)이 할당된 버퍼 영역들에 저장되고, 제3 내지 제5 데이터(3~5DATA)는 제5 내지 제7 어드레스들(A5~A7)이 할당된 버퍼 영역들에 저장될 수 있다. 다시 말하면, 결함 어드레스(D_ADD)로 지정된 제3 어드레스(A3)는 정상 어드레스인 제5 어드레스(A5)로 대체될 수 있고, 결함 어드레스(D_ADD)로 지정된 제4 어드레스(A4)는 정상 어드레스인 제6 어드레스(A6)로 대체될 수 있다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 13을 참조하면, 메모리 시스템(2000)은 시스템 버퍼(100), 컨트롤러(300) 및 메모리 장치(400)를 포함할 수 있다.
시스템 버퍼(100)는 메모리 시스템(2000)에서 사용되는 시스템 데이터를 저장하기 위한 메모리로 구성될 수 있으며, 도 2를 참조하여 설명된 시스템 버퍼(100)와 동일하게 구성될 수 있다. 도 13에서는 시스템 버퍼(100)가 컨트롤러(300)의 외부에 배치된 것으로 도시되었으나, 메모리 시스템(2000)에 따라 시스템 버퍼(100)는 컨트롤러(300)의 내부에 배치될 수도 있다.
컨트롤러(300)는 호스트(host; 3000)와 메모리 장치(400) 사이에서 통신하도록 구성되며, 메모리 시스템(2000)의 전반적인 동작을 컨트롤하도록 구성될 수 있다. 컨트롤러(300)는 시스템 버퍼(100)에서 검출된 결함 어드레스를 관리하기 위한 버퍼 매니저(200)를 포함할 수 있다. 버퍼 매니저(200)는 도 2를 참조하여 설명된 버퍼 매니저(200)와 동일하게 구성될 수 있다.
메모리 장치(400)는 사용자 데이터를 저장하도록 구성될 수 있으며, 휘발성 또는 비휘발성 메모리로 구성될 수 있다.
도 14는 본 발명의 실시 예에 따른 컨트롤러를 설명하기 위한 도면이다.
도 13 및 도 14를 참조하면, 컨트롤러(300)는 호스트 인터페이스(host interface; 310), 중앙 처리 장치(central processing unit; 320), 에러 정정 회로(error correction circuit; 330), 메모리 인터페이스(memory interface; 340), 버퍼 인터페이스(buffer interface; 350) 및 버퍼 매니저(200)를 포함할 수 있다. 호스트 인터페이스(310), 중앙 처리 장치(320), 에러 정정 회로(330), 메모리 인터페이스(340), 버퍼 인터페이스(350) 및 버퍼 매니저(200)는 버스(bus)를 통해 서로 통신할 수 있다.
호스트 인터페이스(310)는 호스트(3000)로부터 출력된 요청(request)이 수신되면, 수신된 요청을 중앙 처리 장치(320)에게 전송할 수 있고, 호스트(3000)와 컨트롤러(300) 사이에서 데이터(DATA)를 전송하도록 구성될 수 있다.
중앙 처리 장치(320)는 컨트롤러(300)의 전반적인 동작을 컨트롤할 수 있는 소프트웨어(software) 및 하드웨어(hardware)를 포함할 수 있다. 또한, 중앙 처리 장치(320)는 호스트(3000)의 요청이 없더라도 메모리 시스템(2000)의 성능을 개선하거나 관리하기 위한 백그라운드 동작(background operation)을 수행할 수 있다. 중앙 처리 장치(320)는 호스트(3000)의 요청에 의한 프로그램 또는 리드 동작 또는 백그라운드 동작 시, 시스템 버퍼(100)를 통해 데이터를 입출력할 수 있다. 시스템 버퍼(100)에서 데이터가 입출력될 때, 시스템 버퍼(100)의 결함 여부를 판단하고, 결함이 발생된 어드레스의 접근을 차단하기 위하여 버퍼 매니저(200)를 활성화시킬 수 있다.
에러 정정 회로(330)는 프로그램 또는 리드 동작 시 버스(bus)를 통해 전달되는 데이터의 에러를 검출하고, 검출된 에러를 복구하도록 구성될 수 있다. 예를 들면, 에러 정정 회로(330)는 프로그램 동작 시 호스트(3000)로부터 수신된 데이터를 인코딩할 수 있고, 리드 동작 시 메모리 장치(400)로부터 수신된 데이터를 디코딩할 수 있다.
메모리 인터페이스(340)는 컨트롤러(1200)와 메모리 장치(400) 사이에서 커맨드, 어드레스 또는 데이터를 전송하도록 구성될 수 있다. 프로그램 동작을 예를 들어 설명하면, 메모리 인터페이스(340)는 프로그램 커맨드, 어드레스 및 데이터를 메모리 장치(400)에게 전송할 수 있다.
버퍼 인터페이스(350)는 시스템 버퍼(100)와 컨트롤러(300) 사이에서 데이터를 전송하도록 구성될 수 있다. 예를 들면, 호스트(3000) 또는 메모리 장치(400)로부터 출력된 데이터는 버스(bus) 및 버퍼 인터페이스(350)를 통해 시스템 버퍼(100)에 임시로 저장될 수 있고, 시스템 버퍼(100)에서 출력된 데이터는 버퍼 인터페이스(350)를 통해 버스로 출력될 수 있다.
버퍼 매니저(200)는 시스템 버퍼(100)의 결함 어드레스를 검출하고, 결함 어드레스의 접근을 차단하도록 구성될 수 있다. 버퍼 매니저(200)는 도 2에 도시된 버퍼 매니저(200)와 동일하게 구성될 수 있다.
도 15는 본 발명의 실시 예에 따른 전자 시스템을 설명하기 위한 도면이다.
도 15를 참조하면, 전자 시스템(500)은 컨트롤러(510), 파워 소스(520), 확장 카드(530), 네트워크 장치(540), 카메라 장치(550), 디스플레이 장치(560), 메모리 장치(570), 시스템 버퍼(580) 및 입출력 포트들(590)을 포함할 수 있다.
컨트롤러(510)는 구성 요소들(elements; 520~590) 각각의 동작을 제어할 수 있다. 파워 소스(520)는 구성 요소들(510, 530~580) 중에서 적어도 하나에게 전압을 공급할 수 있다.
확장 카드(530)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(530)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity Module) 카드일 수 있다. 네트워크 장치(540)는 전자 시스템(500)을 유선 네트워크 또는 무선 네트워크에 접속하도록 구성될 수 있다. 카메라 장치(550)는 광학 이미지를 전기적인 이미지로 변환하도록 구성될 수 있다. 카메라 장치(550)로부터 출력된 전기적인 이미지는 메모리 장치(570), 시스템 버퍼(580), 또는 확장 카드(530)에 저장될 수 있다. 또한, 카메라 장치(550)로부터 출력된 전기적인 이미지는 디스플레이 장치(560)를 통하여 디스플레이될 수 있다.
디스플레이 장치(560)는 확장 카드(530), 네트워크 장치(540), 메모리 장치(570), 시스템 버퍼(580) 또는 입출력 포트들(590)로부터 출력된 데이터를 디스플레이하도록 구성될 수 있다. 메모리 장치(570)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다. 입출력 포트들(590)은 전자 시스템(500)으로 데이터를 전송하거나 또는 전자 시스템으로부터 출력된 데이터를 외부 장치로 전송하도록 구성될 수 있다. 예컨대, 입출력 포트들(590)은 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
컨트롤러(510)는 도 14를 참조하여 설명된 컨트롤러(300)와 같이 버퍼 매니저(200)를 포함할 수 있으며, 버퍼 매니저(200)를 통해 시스템 버퍼(580) 또는 확장 카드(530)의 결함 어드레스를 관리할 수 있다.
2000: 메모리 시스템 100: 시스템 버퍼
200: 버퍼 매니저 210: 패리티 생성부
220: 결함 검출부 230: 카운터
240: 결함 어드레스 저장부 300: 컨트롤러
400: 메모리 장치 3000: 호스트

Claims (20)

  1. 어드레스들이 할당된 버퍼 영역들을 포함하고, 상기 버퍼 영역들에 데이터를 저장하도록 구성된 시스템 버퍼; 및
    상기 시스템 버퍼에 입력되는 데이터에 대한 제1 패리티 비트와 상기 시스템 버퍼에 입력된 데이터에 대한 제2 패리티 비트를 사용하여, 상기 버퍼 영역들 중 결함이 발생한 버퍼 영역의 어드레스를 결함 어드레스로 지정하고, 상기 결함 어드레스로 지정된 버퍼 영역의 액세스(access)를 차단하도록 구성된 버퍼 매니저를 포함하는 메모리 시스템.
  2. 제1항에 있어서, 상기 시스템 버퍼는,
    SRAM(static random access memory), DRAM(dynamic random access memory) 또는 NAND 메모리로 구성되거나,
    상기 SRAM, 상기 DRAM 및 상기 NAND 메모리 중에서 일부가 혼합된 구조로 구성되는 메모리 시스템.
  3. 제1항에 있어서, 상기 버퍼 매니저는,
    상기 시스템 버퍼에 입력될 데이터의 제1 패리티 비트를 생성하고, 상기 제1 패리티 비트를 상기 시스템 버퍼에 저장하도록 구성되는 패리티 생성부;
    상기 시스템 버퍼에 저장된 상기 데이터의 제2 패리티 비트를 생성하고, 상기 제1 패리티 비트와 상기 제2 패리티 비트의 비교 결과에 따라 플래그 비트를 생성하고, 상기 플래그 비트를 상기 시스템 버퍼에 저장하도록 구성되는 결함 검출부;
    상기 플래그 비트 중에서 결함 플래그 비트에 대응되는 어드레스의 카운트 횟수를 저장하고, 상기 카운트 횟수가 기준 횟수 이상인 어드레스를 출력하도록 구성되는 카운터; 및
    상기 카운터에서 출력된 어드레스를 상기 결함 어드레스로써 저장하고, 상기 결함 어드레스로 지정된 상기 버퍼 영역의 액세스(access)를 차단하도록 구성된 결함 어드레스 매니저를 포함하는 메모리 시스템.
  4. 제3항에 있어서, 상기 패리티 생성부는,
    상기 시스템 버퍼에 입력될 상기 데이터의 선택된 비트의 개수를 카운트하고,
    카운트된 값에 따라 상기 제1 패리티 비트를 생성하도록 구성된 메모리 시스템.
  5. 제4항에 있어서, 상기 패리티 생성부는,
    상기 카운트된 값이 홀수이면 상기 제1 패리티 비트를 0으로 생성하고,
    상기 카운트된 값이 0 또는 짝수이면 상기 제1 패리티 비트를 1로 생성하도록 구성되는 메모리 시스템.
  6. 제3항에 있어서, 상기 결함 검출부는,
    상기 시스템 버퍼에 입력된 상기 데이터의 선택된 비트의 개수를 카운트하고,
    카운트된 값에 따라 상기 제2 패리티 비트를 생성하고,
    상기 제2 패리티 비트가 상기 제1 패리티 비트와 동일한지 여부를 판단하도록 구성되는 메모리 시스템.
  7. 제6항에 있어서, 상기 결함 검출부는,
    상기 제2 패리티 비트가 상기 제1 패리티 비트와 동일하면 무결함 플래그 비트를 상기 플래그 비트로써 생성하고,
    상기 제2 패리티 비트가 상기 제1 패리티 비트와 동일하지 아니하면 상기 결함 플래그 비트를 상기 플래그 비트로써 생성하도록 구성되는 메모리 시스템.
  8. 제3항에 있어서, 상기 결함 검출부는,
    상기 시스템 버퍼에 저장된 데이터에 대한 해밍 코드(hamming code)를 사용하여 에러 비트를 검출하고,
    상기 에러 비트가 검출된 상기 어드레스에 대응되는 버퍼 영역에, 상기 결함 플래그 비트에 대응되는 상기 플래그 비트를 저장하도록 구성되는 메모리 시스템.
  9. 제3항에 있어서, 상기 카운터는,
    1 이상의 자연수로 설정된 상기 기준 횟수를 저장하고,
    상기 결함 플래그 비트에 대응되는 상기 어드레스를 저장하고,
    상기 결함 플래그 비트에 대응되는 상기 어드레스가 검출될 때마다 상기 카운트 횟수를 카운트하도록 구성되는 메모리 시스템.
  10. 제3항에 있어서, 상기 결함 어드레스 매니저는,
    상기 카운터로부터 복수의 어드레스들이 출력되면, 상기 복수의 어드레스들을 복수의 결함 어드레스로들로써 저장하고,
    상기 시스템 버퍼에서 상기 복수의 결함 어드레스들에 대응되는 버퍼 영역들의 액세스를 차단하도록 구성되는 메모리 시스템.
  11. 제3항에 있어서, 상기 시스템 버퍼는,
    상기 결함 검출부에서 생성된 상기 제2 패리티 비트를 저장하도록 구성되는 버퍼 영역들을 더 포함하는 메모리 시스템.
  12. 제1항에 있어서, 상기 버퍼 매니저는,
    액세스가 차단된 상기 결함 어드레스를 결함이 발생하지 않은 버퍼 영역의 어드레스로 대체하는 메모리 시스템.
  13. 어드레스들이 할당된 버퍼 영역들을 포함하고, 상기 버퍼 영역들에 데이터를 저장하도록 구성된 시스템 버퍼; 및
    상기 시스템 버퍼에 입력되는 데이터에 대한 패리티 또는 해밍 코드를 사용하거나, 상기 패리티를 사용한 결과에 따라 상기 해밍 코드를 사용하여 결함이 발생한 어드레스를 검출하고, 검출된 어드레스의 액세스(access)를 차단하도록 구성된 버퍼 매니저를 포함하는 메모리 시스템.
  14. 제13항에 있어서, 상기 버퍼 매니저는,
    상기 패리티를 사용한 결과에서 상기 결함이 발생한 어드레스가 없으면 상기 해밍 코드를 사용한 결함 어드레스 검출 동작을 생략하고,
    상기 패리티를 사용한 결과에서 상기 결함이 발생한 어드레스가 있으면, 상기 결함이 발생하지 아니한 어드레스들에 대하여 상기 해밍 코드를 사용한 상기 결함 어드레스 검출 동작을 수행하도록 구성되는 메모리 시스템.
  15. 시스템 버퍼에 저장되기 이전의 데이터에 대한 제1 패리티 비트를 생성하는 단계;
    상기 데이터를 상기 시스템 버퍼에 저장하는 단계;
    상기 시스템 버퍼에 저장된 상기 데이터에 대한 제2 패리티 비트를 생성하는 단계; 및
    상기 시스템 버퍼에 할당된 어드레스들 중에서, 상기 제2 패리티 비트의 값이 상기 제1 패리티 비트의 값과 상이한 어드레스가 검출되면, 검출된 상기 어드레스를 결함 어드레스로 지정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  16. 제15항에 있어서, 상기 제1 패리티 비트는,
    상기 시스템 버퍼에 저장되기 이전의 데이터에 포함된 선택된 비트의 개수가 홀수이면 제1 값으로 생성되고, 0 또는 짝수이면 제2 값으로 생성되는 메모리 시스템의 동작 방법.
  17. 제16항에 있어서, 상기 제2 패리티 비트는,
    상기 시스템 버퍼에 저장된 데이터에 포함된 선택된 비트의 개수가 홀수이면 상기 제1 값으로 생성되고, 0 또는 짝수이면 상기 제2 값으로 생성되는 메모리 시스템의 동작 방법.
  18. 제15항에 있어서, 상기 어드레스를 결함 어드레스로 지정하는 단계는,
    기준 횟수를 설정하는 단계;
    상기 제1 및 제2 패리티 비트들의 값들이 서로 상이한 어드레스가 검출된 횟수가 상기 기준 횟수 이상인지를 판단하는 단계; 및
    상기 검출된 횟수가 상기 기준 횟수 이상이면, 상기 어드레스를 상기 결함 어드레스로 지정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  19. 제18항에 있어서,
    상기 기준 횟수는 1 이상의 자연수로 설정되는 메모리 시스템의 동작 방법.
  20. 제15항에 있어서, 상기 결함 어드레스가 지정된 후,
    상기 결함 어드레스의 액세스(access)를 차단하는 단계; 및
    상기 결함 어드레스를 정상 버퍼 영역의 어드레스로 대체하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
KR1020210049978A 2021-04-16 2021-04-16 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법 KR20220143450A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210049978A KR20220143450A (ko) 2021-04-16 2021-04-16 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법
US17/506,931 US20220334761A1 (en) 2021-04-16 2021-10-21 Memory system having system buffer and method of operating the memory system
CN202111577029.2A CN115220949A (zh) 2021-04-16 2021-12-22 具有***缓冲器的存储器***和操作存储器***的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210049978A KR20220143450A (ko) 2021-04-16 2021-04-16 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220143450A true KR20220143450A (ko) 2022-10-25

Family

ID=83602381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210049978A KR20220143450A (ko) 2021-04-16 2021-04-16 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US20220334761A1 (ko)
KR (1) KR20220143450A (ko)
CN (1) CN115220949A (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100546348B1 (ko) * 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
US7865805B1 (en) * 2007-02-26 2011-01-04 Lockheed Martin Corporation Multiple bit upset insensitive error detection and correction circuit for field programmable gate array based on static random access memory blocks
JP2010152542A (ja) * 2008-12-24 2010-07-08 Toshiba Corp メモリシステム
US10268541B2 (en) * 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface
KR20210081534A (ko) * 2019-12-24 2021-07-02 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템

Also Published As

Publication number Publication date
US20220334761A1 (en) 2022-10-20
CN115220949A (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
US20120005557A1 (en) Virtual copy and virtual write of data in a storage device
CN101615145B (zh) 一种提高存储器数据缓存可靠性的方法和装置
US20100318760A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
TWI720246B (zh) 資料儲存裝置以及其操作方法
JP2019504369A (ja) データチェック方法および記憶システム
US12008235B2 (en) Data storage device and method for rewriting parameters thereof
CN112667422A (zh) 内存故障处理方法及装置、计算设备、存储介质
US10489244B2 (en) Systems and methods for detecting and correcting memory corruptions in software
US11231990B2 (en) Device and method for generating error correction information
CN109154963B (zh) 一种防止内存数据泄露的设备及方法
KR20220143450A (ko) 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법
CN105354107A (zh) NOR Flash的数据传输方法及***
US20180373594A1 (en) Semiconductor device and error management method
WO2022252063A1 (zh) 数据存取方法、存储控制器和存储设备
CN110874285B (zh) 一种实现ext文件***的可还原写操作的方法
EP3955112A1 (en) Method and apparatus for memory error detection
US20210223983A1 (en) Continuous monotonic counter for memory devices
CN114203252A (zh) 非易失存储器的坏块检测方法、装置、设备及存储介质
US20230359523A1 (en) Memory integrity check
US12032860B2 (en) Data protection method for memory and storage device thereof
CN112463052B (zh) 减少固态硬盘中ddr容量需求的方法、***、设备及介质
US10754548B2 (en) Data storage device and method for rewriting parameters thereof
US10896133B2 (en) Combinational address repair in memory controller
KR20230022103A (ko) 데이터 검증 회로부를 갖는 데이터 저장 디바이스
CN115298654A (zh) 一种数据存储方法以及相关装置