KR102556459B1 - 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법 - Google Patents

메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법 Download PDF

Info

Publication number
KR102556459B1
KR102556459B1 KR1020170176217A KR20170176217A KR102556459B1 KR 102556459 B1 KR102556459 B1 KR 102556459B1 KR 1020170176217 A KR1020170176217 A KR 1020170176217A KR 20170176217 A KR20170176217 A KR 20170176217A KR 102556459 B1 KR102556459 B1 KR 102556459B1
Authority
KR
South Korea
Prior art keywords
data
memory
abandoned
paid
nth
Prior art date
Application number
KR1020170176217A
Other languages
English (en)
Other versions
KR20190074680A (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 KR1020170176217A priority Critical patent/KR102556459B1/ko
Priority to US16/124,882 priority patent/US10607694B2/en
Publication of KR20190074680A publication Critical patent/KR20190074680A/ko
Application granted granted Critical
Publication of KR102556459B1 publication Critical patent/KR102556459B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0658Controller construction arrangements
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 기술은 메모리 시스템에 관한 것으로서, 제1 내지 제N(N은 2 이상의 자연수) 메모리 영역들을 포함하는 메모리 장치, 및 상기 메모리 장치에 라이트되는 제1 내지 제N 데이터 그룹들 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인하고, 상기 확인된 데이터 개수들에 따른 순서로 상기 데이터 그룹들을 상기 제1 내지 제N 메모리 영역들에 라이트하는 메모리 컨트롤러 제공한다.

Description

메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법{MEMORY SYSTEM INCLUDING MEMORY DEVICE AND MEMORY CONTROLLER, AND WRITING OPERATION METHOD THEREOF}
본 발명은 메모리 시스템에 관한 것으로서, 좀 더 구체적으로는 복수의 메모리 영역들을 포함하는 메모리 장치에 데이터를 라이트하는 메모리 시스템 및 및 그의 동작방법에 관한 것이다.
메모리 시스템은 소비자용 또는 산업용 여러 전자 장치들, 예를 들면, 컴퓨터, 휴대폰, PDA(Portable Digital Assistant), 디지털 카메라, 게임기, 항법 장치, 등에 적용되어 주 기억 장치 또는 보조 기억 장치로 사용된다. 메모리 시스템을 구현하는 메모리 장치들은 크게 DRAM(Dynamic Random Access Memory), SRAM(Static RAM), 등과 같은 휘발성 메모리 장치와 ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), FRAM(Ferroelectric RAM), PRAM(Phase-change RAM), MRAM(Magnetoresistive RAM), RRAM(Resistive RAM), 플래시 메모리 장치, 등과 같은 비휘발성 메모리 장치로 구분될 수 있다.
그 중에서도, 저항체(resistance material)를 이용한 메모리 장치에는 상변화 메모리 장치(PRAM), 자기 메모리 장치(MRAM), 저항 메모리 장치(RRAM), 등이 있다. DRAM이나 플래시 메모리 장치는 전하(charge)를 이용하여 데이터를 저장하는 반면, 저항체를 이용한 메모리 장치는 칼코게나이드 합금(chalcogenide alloy)과 같은 상변화 물질 상태의 변화(PRAM), 강자성체의 자화 상태에 따른 MJT(Magnetic Tunnel Junction) 박막의 저항 변화(MRAM), 가변 저항체의 저항 변화(RRAM), 등을 이용하여 데이터를 저장한다.
저항체를 이용한 메모리 장치는 비휘발성이면서도 랜덤하게 데이터 액세스가 가능하여 다양한 메모리 시스템 및 전자 장치에 적용되고 있다. 아래에서는 상변화 메모리 장치(PRAM)를 대표적으로 예를 들어 저항체를 이용한 메모리 장치의 동작에 대해서 설명하고자 한다.
상변화 메모리 장치(PRAM)의 단위 메모리 셀은 워드라인에 연결된 하나의 셀 트랜지스터와 비트라인에 연결된 하나의 가변 저항체로 구성된다. 가변 저항체는 상변화 물질로서, 칼고게나이드 합금이라는 특수한 얇은 박막 물질이다. 상변화 메모리 장치(PRAM)는 메모리 셀에 가해지는 전류에 따라 상변화 물질의 상태가 변하는 것을 이용해 데이터를 저장한다 즉, 상변화 물질은 가해지는 전류에 따라 결정 상태(crystalline phase) 또는 비결정 상태(amorphous phase)가 되고, 메모리 셀은 결정 상태와 비결정 상태의 저항이 다른 것을 이용하여 데이터를 저장한다.
도 1a 및 도 1b는 상변화 메모리 장치(PRAM)의 라이트 동작을 설명하기 위한 도면이다. 도 1a 및 1b는 상변화 메모리 장치(PRAM)의 하나의 메모리 셀에 데이터를 저장하는 라이트 동작을 나타내고 있다.
도 1a에서와 같이 상변화 저항 소자로 구성된 메모리 셀(100)에 임계값 이하의 저전류가 흐르면 상변화 저항 소자는 결정화가 되기에 적당한 온도가 된다. 이에 따라, 메모리 셀(100)이 결정 상태(crystalline phase)가 되어 저저항 상태의 물질이 된다.
반면에, 도 1b에서와 같이 메모리 셀(100)에 임계값 이상의 고전류가 흐르면 상변화 저항 소자가 녹는 점(melting point) 이상의 온도가 된다. 이에 따라, 메모리 셀(100)이 비결정 상태가(amorphous phase) 되어 고저항 상태의 물질이 된다.
이와 같이, 상변화 메모리 장치(PRAM)를 구성하는 메모리 셀(100)은 라이트 동작에 따라 결정 및 비결정의 두 가지 상태를 가지게 된다. 결정 상태는 저항이 크기가 상대적으로 낮기 때문에 데이터의 논리값 '0'(Logical 0)을 나타낼 수 있고, 비결정 상태는 저항의 크기가 상대적으로 높기 때문에 데이터의 논리값 '1'(Logical 1)을 나타낼 수 있다. 메모리 셀(100)의 데이터를 논리값 '0'에서 논리값 '1'로 바꾸는 라이트 동작을 RESET 동작이라고 할 수 있고, 논리값 '1'에서 논리값 '0'으로 바꾸는 라이트 동작을 SET 동작이라고 할 수 있다.
도 2는 도 1a 및 도 1b에 도시된 상변화 메모리 장치(PRAM)의 라이트 및 리드 동작을 위한 전류 펄스를 나타내는 그래프이다.
앞서 설명한 바와 같이, 라이트 동작에는 RESET 및 SET 동작들이 포함될 수 있으며, 이들은 모두 메모리 셀에 데이터를 쓰기 위한 동작으로 상변화 물질의 상태를 변화시키기 때문에, 도 2에 도시된 것과 같이 많은 전류가 필요하며 레이턴시(latency) 또한 길어질 수 있다(RESET 및 SET 펄스 참조). 반면, 리드 동작의 경우 상변화 물질의 현재 상태만을 감지하기 때문에 작은 전류와 적은 레이턴시로 값을 읽어올 수 있다(READ 펄스 참조).
따라서, 상변화 메모리 장치(PRAM)에 수행되는 리드 동작보다는 라이트 동작에 의해, 상변화 물질에 많은 전류가 흐르고 그 상태 역시 계속 변화하게 된다. 결국, 상변화 메모리 장치(PRAM)의 메모리 셀은 라이트 동작에 따라 마모될 수 있어, 상변화 메모리 장치(PRAM)의 라이트 동작 횟수가 제한될 수 있다. 예를 들면, 상변화 메모리 장치(PRAM)의 메모리 셀 당 최대 10만번까지 라이트 동작이 가능할 수 있다. 즉, 하나의 메모리 셀에 데이터를 10만번 쓰게 되면, 더 이상 사용할 수 없는 상태가 될 수 있다는 의미이다.
더구나. 같은 라이트 동작이라 하더라도, 도 2에 도시된 것과 같이, SET 펄스보다 상대적으로 크기가 큰 RESET 펄스에 의해 상변화 메모리 장치(PRAM)의 내구성(endurance)이 더 취약해 질 수 있다. 즉, 같은 횟수의 라이트 동작이라 하더라도 SET 동작 보단 RESET 동작이 더 많이 수행된 메모리 셀의 특성이 더 나빠질 수 있다. 따라서, 상변화 메모리 장치(PRAM)의 전체적인 수명을 안정적으로 유지하기 위해 라이트 동작뿐 아니라 SET 동작 및 RESET 동작을 효율적으로 관리할 수 있는 방법이 요구된다.
본 발명이 해결하려는 과제는, 데이터의 패턴이나 종류를 고려해 메모리 장치에 데이터를 라이트함으로서, 메모리 장치의 내구성을 관리할 수 있는 메모리 시스템 및 그의 동작방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 메모리 시스템은, 제1 내지 제N(N은 2 이상의 자연수) 메모리 영역들을 포함하는 메모리 장치; 및 상기 메모리 장치에 라이트되는 제1 내지 제N 데이터 그룹들 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인하고, 상기 확인된 데이터 개수들에 따른 순서로 상기 데이터 그룹들을 상기 제1 내지 제N 메모리 영역들에 라이트하는 메모리 컨트롤러;를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작방법은, 메모리 장치에 라이트되는 제1 내지 제N(N은 2 이상의 자연수) 데이터 그룹들 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인하는 단계; 및 상기 확인된 데이터 개수들에 따른 순서로 상기 데이터 그룹들을 상기 메모리 장치의 제1 내지 제N 메모리 영역들에 라이트하는 단계;를 포함할 수 있다.
본 기술은 라이트되는 데이터의 논리 레벨에 따라 메모리 셀에 미치는 영향이 다른 메모리 장치에 있어, 데이터의 논리 레벨을 확인하고 이를 바탕으로 메모리 장치의 복수의 메모리 영역들에 데이터를 구분해서 라이트할 수 있다. 따라서, 메모리 장치에 포함되는 복수의 메모리 영역들의 마모도를 최적화하여 관리할 수 있다. 또한, 메모리 영역들을 리페어하는 방법에 따라 마모도를 분산시키거나 집중시킬 수 있어, 메모리 장치의 내구성을 증가시킬 수 있다
더 나아가, 데이터 변화가 랜덤하게 발생하는지 그렇지 않은지를 확인하고, 이를 바탕으로 라이트 동작 방법을 선택할 수 있다. 그로 인해, 라이트 동작 시 레벨 변화가 일어나는 메모리 셀들의 수를 최소화하고, 메모리 장치의 전력 소모나 수명의 감소를 줄일 수 있다.
도 1a 및 도 1b는 상변화 메모리 장치의 라이트 동작을 설명하기 위한 도면.
도 2는 도 1a 및 도 1b에 도시된 상변화 메모리 장치의 라이트 및 리드 동작을 위한 전류 펄스를 나타내는 그래프.
도 3은 본 발명의 실시예에 따른 메모리 시스템을 나타내는 블록도.
도 4a 및 4b는 리맵핑 동작에 따라 도 3에 도시된 메모리 장치 저장되는 데이터 그룹들을 나타내는 도면이다.
도 5는 도 3에 도시된 리맵핑부를 나타내는 블록도.
도 6은 본 발명의 실시예에 따른 메모리 시스템의 동작을 나타내는 순서도.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 3은 본 발명의 실시예에 따른 메모리 시스템(300)을 나타내는 블록도이다. 도 3을 참조하면, 메모리 시스템(300)은 메모리 컨트롤러(310) 및 메모리 장치(320)를 포함할 수 있다.
메모리 장치(320)는 복수의 메모리 영역들, 예를 들면, 복수의 메모리 칩들을 포함하는 메모리 모듈(memory module)일 수 있다. 즉, 메모리 장치(320)는 제1 내지 제N(N은 2 이상의 자연수) 메모리 영역들을 포함할 수 있으며, 도 3은 메모리 장치(320)가 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)을 포함하는 것을 일례로 도시하고 있다.
메모리 컨트롤러(310)는 메모리 장치(320)의 복수의 메모리 영역들에 해당하는 단위로 데이터를 라이트/리드할 수 있다. 따라서, 메모리 컨트롤러(310)는 제1 내지 제N 메모리 영역들에 대응하는 제1 내지 제N 데이터 그룹들을 메모리 장치(320)에 라이트/리드할 수 있다. 일반적으로, 메모리 컨트롤러(310)는 512 비트의 데이터 그룹들(DATA(512b))을 메모리 장치(320)에 라이트/리드할 수 있다. 메모리 장치(320)가 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)을 포함하는 경우, 각각의 메모리 칩들(CHIP0 내지 CHIP7)은 64 비트의 하나의 데이터 그룹(DATA(64b))을 저장할 수 있다.
메모리 컨트롤러(310)는 제1 내지 제N 데이터 그룹들(DATA(64b))을 각각의 메모리 칩들(CHIP0 내지 CHIP7)에 할당하여 라이트 동작을 수행할 수 있다. 메모리 컨트롤러(310)는 데이터 그룹들(DATA(64b))과 할당된 메모리 칩들(CHIP0 내지 CHIP7) 사이의 관계를 나타내는 정보, 즉, 맵핑(mapping) 정보를 메모리 장치(320)의 패리티(parity) 영역(미도시)에 따로 저장하여 관리할 수 있다.
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(310)는 모드 결정부(312) 및 리맵핑부(314)를 포함할 수 있다. 모드 결정부(312)는 데이터 그룹들(DATA(512b))에 해당하는 어드레스(ADD) 또는 어드레스 정보를 바탕으로 동작 모드를 결정할 수 있다. 리맵핑부(314)는 모드 결정부(312)에 의해 결정된 동작 모드에 따라 리맵핑 동작을 선택적으로 수행할 수 있다.
즉, 모드 결정부(312)에 의해 결정된 동작 모드에 따라 리맵핑부(314)가 리맵핑 동작을 수행하면, 메모리 컨트롤러(310)는 제1 내지 제N 데이터 그룹들(DATA(64b)) 각각에 포함되는 제1 논리 레벨(논리값 '1')의 데이터 개수들을 확인하고, 확인된 데이터 개수들에 따른 순서로 데이터 그룹들(DATA(64b))을 제1 내지 제N 메모리 영역들에 라이트할 수 있다. 반면, 모드 결정부(312)에 의해 결정된 동작 모드에 따라 리맵핑부(314)가 리맵핑 동작을 수행하지 않으면, 메모리 컨트롤러(310) 제1 논리 레벨의 데이터 개수들에 상관없이 데이터 그룹들(DATA(64b))을 제1 내지 제N 메모리 영역들에 라이트할 수 있다.
메모리 시스템(300)은 호스트로부터 여러 종류의 데이터를 요청 받아 저장할 수 있다. 예를 들면, 연속되는 이미지 데이터와 같이 어드레스에 따른 데이터 변화가 심하지 않을 수도 있고, 시스템 데이터와 같이 어드레스와 상관없이 데이터가 랜덤하게 변할 수도 있다.
데이터 변화가 심하지 않은 경우, 동일한 데이터 그룹에서 제1 논리 레벨 데이터의 위치는 크게 바뀌지 않은 채 개수만 달라질 수 있다. 따라서, 달라진 데이터에 대해서만 라이트 동작을 수행하면, 데이터 그룹에 해당하는 메모리 셀들 중 레벨 변화(transition)가 일어나는 메모리 셀의 수를 줄일 수 있다. 이 경우, 제1 논리 레벨 데이터 개수들에 따라 제1 내지 제N 데이터 그룹들(DATA(64b))을 리맵핑한다면, 오히려 제1 논리 레벨 데이터 개수가 비슷한 데이터 그룹들에서 데이터의 위치가 달라져서 레벨 변화가 일어나는 메모리 셀의 수가 증가될 수 있다.
반면, 데이터가 램덤하게 변할 경우, 제1 논리 레벨 데이터 개수가 전혀 다른 데이터 그룹들 보다는 제1 논리 레벨 데이터 개수가 비슷한 데이터 그룹들 사이에 그나마 레벨 변화가 일어나는 메모리 셀의 수를 줄일 수 있다. 더 나아가, 제1 논리 레벨 데이터 개수가 비슷한 데이터 그룹들 사이에는 SET 동작 및 RESET 동작의 횟수를 효율적으로 관리할 수 있다. 이 같은 리맵핑 동작에 대해서는 도 4a 및 4b를 참조하여 보다 더 구체적으로 설명하고자 한다.
따라서, 메모리 컨트롤러(310)는 이 같은 데이터의 경향성을 판단하여 리맵핑 동작을 선택적으로 수행할 수 있다. 경향성을 판단하기 위해서는 어드레스(ADD)나 어드레스 정보, 등이 사용될 수 있다. 예를 들어, 이미지 데이터의 경우 코덱이나 디스플레이 같은 특정 모듈에 의해 사용되기 위해서, 호스트는 이미지 데이터에 해당하는 어드레스를 따로 지정하고 지정된 어드레스를 나타내는 어드레스 정보를 생성할 수 있다. 부트 코드 등의 시스템 데이터의 경우는, 예를 들어, 주로 하위 어드레스에 지정될 수 있다.
모드 결정부(312)는 이 같은 어드레스(ADD)나 어드레스 정보에 응답해, 인에이블 신호(EN)를 생성할 수 있다. 모드 결정부(312)는 어드레스 디코더(미도시)를 포함할 수 있다. 예를 들어, 어드레스(ADD)에 해당하는 데이터가 이미지 데이터일 경우, 모드 결정부(312)는 인에이블 신호(EN)를 비활성화할 수 있다. 반면, 어드레스(ADD)에 해당하는 데이터가 시스템 데이터일 경우, 모드 결정부(300)는 인에이블 신호(EN)를 활성화할 수 있다.
활성화된 인에이블 신호(EN)에 응답해, 리맵핑부(314)는 리맵핑 동작을 수행할 수 있다. 예를 들어, 시스템 데이터와 같이 랜덤하게 변화는 데이터에 대해, 리맵핑부(314)는 리맵핑 동작을 수행할 수 있다. 따라서, 본 발명의 실시예에 따른 메모리 컨트롤러(310)는 데이터의 경향성에 따라 데이터 리맵핑 여부를 결정할 수 있다.
도 4a 및 4b는 리맵핑 동작에 따라 도 3의 메모리 장치(320)에 저장되는 데이터 그룹들을 나타내는 도면이다. 도 3에 도시된 것처럼, 메모리 장치(320)가 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)을 포함하고, 제1 내지 제N 데이터 그룹들이 대응하여 8개인 것을 일례로 도시하고 있다.
앞서 설명한 것과 같이, 리맵핑부(314)는 데이터 그룹들(DATA(64b)) 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인하고, 확인된 데이터 개수들에 따른 순서로 데이터 그룹들(DATA(64b))을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트할 수 있다. 데이터 그룹들(DATA(64b))은 확인된 데이터 개수들이 크거나 또는 작은 순서로 라이트될 수 있다. 도 4a에서는 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)이 확인된 데이터 개수들이 작은 것에서 큰 순서이며, 각각 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트된 것을 일례로 도시하고 있다.
라이트 동작이 수행될 때마다, 리맵핑부(314)는 데이터 그룹들(DATA(64b)) 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인해 확인된 데이터 개수들에 따라 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)로 분류하고, 각각을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트할 수 있다. 결국, 제1 논리 레벨의 데이터 개수가 가장 큰 제8 데이터 그룹(DATA7)이 제8 메모리 칩(CHIP7)에 계속 할당되어 라이트될 수 있다. 상대적으로 메모리 셀의 특성을 더 악화시킬 수 있는 RESET 동작이 제8 메모리 칩(CHIP7)에 집중되어 수행될 수 있다.
본 발명의 실시예에 따르면, 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 랜덤하게 수행되던 RESET 동작을 제8 메모리 칩(CHIP7)에 집중시켜 수행할 수 있다. 따라서, 나머지 메모리 칩들(CHIP0 내지 CHIP6)에 포함되는 메모리 셀들의 수명이 감소하는 것을 방지할 수 있다. 대신, 제8 메모리 칩(CHIP7)에 포함되는 메모리 셀들의 수명이 감소하면서, RESET 동작이 메모리 셀의 특성을 악화시킬 수 있는 횟수(제1 임계값)만큼 수행되면, 제8 메모리 칩(CHIP7)을 리페어할 수 있다.
비록 도 4a에 도시되지는 않았지만, 메모리 장치(320)는 스페어 메모리 영역, 즉, 스페어 메모리 칩을 포함할 수 있다. 리맵핑부(314)는 확인된 제1 논리 레벨의 데이터 개수들을 바탕으로, 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트되는 제1 논리 레벨의 데이터 개수들, 즉, 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 수행되는 RESET 동작의 횟수를 카운트할 수 있다. 카운트된 데이터 개수가 제1 임계값 이상이 되면, 메모리 컨트롤러(310)는 제8 메모리 칩(CHIP7)을 스페어 메모리 칩으로 리페어할 수 있다.
하지만, 반도체 장치(320)가 스페어 메모리 칩을 포함하지 않을 수도 있고, 포함된 스페어 메모리 칩이 이미 다른 메모리 칩을 리페어하는데 사용된 경우가 발생할 수 있다. 도 4b는 이와 같은 경우에 각각의 메모리 칩들(CHIP0 내지 CHIP7)에 포함된 리던던시 영역을 이용하기 위한 리맵핑 동작을 나타내고 있다.
도 4a에서 설명한 것과 같이, 리맵핑부(314)는 우선 데이터 그룹들(DATA(64b)) 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인해 확인된 데이터 개수들에 따른 순서로 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)을 분류하고, 각각을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트할 수 있다. 그리고, 리맵핑부(314)는 확인된 제1 논리 레벨의 데이터 개수들을 바탕으로, 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트되는 제1 논리 레벨의 데이터 개수들을 카운트할 수 있다.
카운트된 데이터 개수가 제1 임계값보다 작은 제2 임계값 이상일 때, 리맵핑부(314)는 확인된 데이터 개수들에 따른 순서를 하나씩 시프트하여 데이터 그룹들(DATA0 내지 DATA7)을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트할 수 있다. 도 4b를 참조하면, 확인된 데이터 개수들이 작은 것에서 큰 순서로 분류된 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)이 하나씩 시프트되어, 제2 내지 제8 데이터 그룹들(DATA1 내지 DATA7) 및 제1 데이터 그룹(DATA0)이 각각 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트된 것을 확인할 수 있다.
도 4b는 제8 메모리 칩(CHIP7)의 카운트된 데이터 개수가 제2 임계값 이상이 될 때를 나타낸 것이다. 제8 메모리 칩(CHIP7)의 카운트된 데이터 개수가 가장 먼저 제2 임계값 이상이 될 수 있다. 그 이후로는, 제7 메모리 칩(CHIP6)에서 제1 메모리 칩(CHIP0)의 순서로 카운트된 데이터 개수가 제2 임계값에 다다를 수 있고, 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)의 순서가 화살표 방향으로 하나씩 시프트되어 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트될 수 있다.
메모리 장치(320)의 스페어 메모리 칩을 사용할 수 없을 때에는, 메모리 칩 자체를 리페어할 수 없기 때문에, RESET 동작을 하나의 메모리 칩(CHIP7)에 집중시켜는 것 보다 여러 메모리 칩들(CHIP0 내지 CHIP7)에 분산시키는 것이 바람직하다. 이 경우, 메모리 칩들(CHIP0 내지 CHIP7) 각각이 내부에 포함된 리던던시 메모리 셀을 이용해 특성이 악화된 메모리 셀을 리페어할 수 있다.
본 발명의 실시예에 따르면, 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 랜덤하게 수행되던 RESET 동작을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 최대한 골고루 분산시켜서 수행할 수 있다. 따라서, 메모리 칩들(CHIP0 내지 CHIP7)에 포함되는 메모리 셀들의 수명이 유사하게 감소하도록 할 수 있다.
도 5는 도 3에 도시된 리맵핑부(314)를 나타내는 블록도이다. 도 5를 참조하면, 리맵핑부(314)는 제1 카운팅부(510), 신호 생성부(520), 및 저장부(530)를 포함할 수 있다.
제1 카운팅부(510)는 데이터 그룹들(DATA(64b)) 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 카운트하여 카운트 값들(C0:C7)을 생성할 수 있다. 라이트 동작이 수행될 때마다, 제1 카운팅부(510)는 데이터 그룹들(DATA(64b))을 입력 받고, 카운트 값들(C0:C7)을 생성할 수 있다.
신호 생성부(520)는 카운트 값들(C0:C7)의 크기가 작은 것에서 큰 순서를 나타내는 제1 내지 제8 선택 신호들(S0:S7)을 생성할 수 있다. 예를 들어, 카운트 값들(C0:C7)의 크기가 각각 (28, 32, 16, 24, 20, 36, 40, 48)일 때, 신호 생성부(520)는 제1 내지 제8 선택 신호들(S3, S4, S0, S2, S1, S5, S6, S7)을 생성할 수 있다. 즉, 가장 작은 카운트 값(16)에 해당하는 제1 선택 신호(S0)부터 가장 큰 카운트 값(48)에 해당하는 제8 선택 신호(S7)까지 카운트 값들(C0:C7)에 대응하여 생성될 수 있다.
저장부(530)는 제1 내지 제8 저장 유닛들(532)을 포함할 수 있다. 제1 내지 제8 저장 유닛들(532)은 제1 내지 제8 선택 신호들(S0:S7)에 각각 응답해, 카운트 값들(C0:C7)을 선택해서 저장할 수 있다. 앞서 설명된 예에서, 제1 저장 유닛(532)이 제1 선택 신호(S0)에 응답해 대응하는 카운트 값(C2:16)을 저장할 수 있고, 제8 저장 유닛(532)이 제8 선택 신호(S7)에 응답해 대응하는 카운트 값(C7:48)을 저장할 수 있다. 따라서, 제1 내지 제8 저장 유닛들(532)은 각각 카운트 값들(16, 20, 24, 28, 32, 36, 40, 48)을 저장할 수 있다.
라이트 동작이 수행될 때마다, 제1 내지 제8 저장 유닛들(532) 각각은 선택된 카운트 값을 기존에 저장된 카운트 값에 더해서 저장할 수 있다. 즉, 제1 내지 제8 저장 유닛들(532)은 제1 내지 제8 선택 신호들(S0:S7)에 대응하는 카운트 값들을 계속 더해서 저장할 수 있다.
본 발명의 실시예예 따라, 저장부(530)는 리페어 정보(REPAIR_INFO)를 입력 받을 수 있다. 리페어 정보(REPAIR_INFO)는 BIRA(Built-In-Redundancy-Analysis) 정보 또는 BISR(Built-In-Self-Redundancy) 정보를 포함할 수 있다. 이때, BIRA 정보는 메모리 장치(320)의 리던던시 메모리 셀의 위치나 리페어 동작의 단위, 등을 분석한 정보를 포함할 수 있고, BISR 정보는 BIRA 정보를 바탕으로 불량이 발생한 메모리 셀을 리던던시 메모리 셀로 교체한 정보를 포함할 수 있다.
리페어 정보(REPAIR_INFO)는 메모리 장치(320)로부터 메모리 컨트롤러(310)로 입력될 수 있다. 리페어 정보(REPARI_INFO)는 메모리 장치(320)에 스페어 메모리 칩이 포함되는지 여부나 포함된 스페어 메모리 칩이 남아있는지 여부를 나타낼 수 있다. 따라서, 메모리 컨트롤러(310)는 리페어 정보(REPAIR_INFO)를 바탕으로 RESET 동작을 하나의 메모리 칩에 집중시킬지 여러 메모리 칩들에 분산시킬지 정할 수 있다.
본 발명의 또 다른 실시예예 따라, 저장부(530)는 ECC(Error Correction Code) 정보(ECC_INFO)를 입력 받을 수 있다. ECC 정보(ECC_INFO)는 메모리 컨트롤러(310)에서 수행되는 ECC 동작의 성능을 나타낼 수 있다. 예를 들어, 데이터 그룹들(DATA(512b)) 내에 몇 비트의 에러가 검출 및 보정 가능한지 여부 등을 나타낼 수 있다. 또한, ECC 정보(ECC_INFO)는 칩-킬(chip-kill) 알고리즘의 적용 여부도 나타낼 수 있다. 칩-킬(chip-kill) 알고리즘을 적용한다면, ECC 동작을 통해 검출 및 보정 가능한 에러 비트와는 별개로 하나의 메모리 칩을 통째로 복원할 수 있다. 따라서, 메모리 컨트롤러(310)는 ECC 정보(REPAIR_INFO)를 바탕으로 RESET 동작을 하나의 메모리 칩에 집중시킬지 여러 메모리 칩들에 분산시킬지 정할 수 있다.
리페어/ECC 정보(REPAIR/ECC_INFO)를 바탕으로, 저장부(530)는 제1 내지 제8 저장 유닛들(532)에 저장된 값이 제1 임계값 이상일 때 리페어 신호(REPAIR)를 생성할 수 있다. 또는, 리페어/ECC 정보(REPAIR/ECC_INFO)를 바탕으로, 저장부(530)는 제1 내지 제8 저장 유닛들(532)에 저장된 값이 제1 임계값보다 작은 제2 임계값 이상일 때 시프트 신호(SHIFT)를 생성할 수 있다.
예를 들어, 메모리 장치(320)의 하나의 메모리 셀이 RESET 펄스를 16K 이상 인가 받았을 때 웨어-아웃(wear-out)될 수 있다면, 제1 임계값은 16K로 설정될 수 있다. 이때, 제2 임계값은 2K(16K/8)로 설정될 수 있다. 즉, RESET 동작이 메모리 영역들 전체에 분산되어 수행되는 횟수만큼 제1 임계값을 나눠서 제2 임계값을 설정할 수 있다.
리페어 신호(REPAIR)가 생성되면, 도 4a의 리맵핑 동작과 같이 메모리 컨트롤러(310)는 제8 메모리 칩(CHIP7)을 스페어 메모리 칩으로 리페어할 수 있다. 즉, 메모리 장치(320)에 스페어 메모리 칩이 남아있다면, 메모리 컨트롤러(310)는 불량이 발생하는 메모리 셀들을 하나의 메모리 칩에 모으기 위해 제1 논리 레벨의 데이터를 하나의 메모리 칩에 집중적으로 라이트할 수 있다. 그리고, 메모리 컨트롤러(310)는 집중적으로 라이트된 메모리 칩을 스페어 메모리 칩으로 리페어할 수 있다.
시프트 신호(SHIFT)가 생성되면, 신호 생성부(520)는 카운트 값들(C0:C7)의 크기를 나타내는 제1 내지 제8 선택 신호들(S0:S7)을 하나씩 시프트하여 생성할 수 있다. 즉, 신호 생성부(520)는 카운트 값들(C0:C7)의 크기가 작은 것에서 큰 순서로 제8 선택 신호(S7) 및 제1 내지 제7 선택 신호(S0:S6)를 생성할 수 있다. 앞서 설명된 예에서, 카운트 값들(C0:C7)의 크기가 각각 (28, 32, 16, 24, 20, 36, 40, 48)일 경우, 신호 생성부(520)는 제1 내지 제8 선택 신호들(S2, S3, S7, S1, S0, S4, S5, S6)을 생성할 수 있다. 이에 따라, 제1 저장 유닛(532)이 제1 선택 신호(S0)에 응답해 대응하는 카운트 값(C4:20)을 저장할 수 있고, 제8 저장 유닛(532)이 제8 선택 신호(S7)에 응답해 대응하는 카운트 값(C3:16)을 저장할 수 있다.
결국, 제1 저장 유닛(532)은 제일 작은 카운트 값을 저장하다가 두 번째로 작은 카운트 값을 저장할 수 있고, 반면, 제8 저장 유닛(532)은 제일 큰 카운트 값을 저장하다가 제일 작은 카운트 값을 저장할 수 있다. 이는, 도 4b의 리맵핑 동작에서 제8 메모리 칩(CHIP7)이 제8 데이터 그룹(DATA7)을 저장하다가 시프트되어 제1 데이터 그룹(DATA0)을 저장하는 것을 나타낸다. 따라서, RESET 동작이 제8 메모리 칩(CHIP7)에 집중되다가 제2 임계값 이상 수행되면, 가장 적게 수행될 수 있다. 마찬가지로, 메모리 칩들(CHIP0 내지 CHIP7)에 수행되는 RESET 동작이 계속 카운트되어 제2 임계값 이상이 될 때마다, RESET 동작이 집중되는 메모리 칩이 하나씩 시프트되므로, 메모리 칩들(CHIP0 내지 CHIP7)의 수명을 고르게 증가시킬 수 있다.
본 발명의 또 다른 실시예에 따라, 리맵핑부(314)는 제2 카운팅부(540)를 더 포함할 수 있다. 제2 카운팅부(540)는 데이터 그룹들(DATA(64b))을 제1 내지 제N 메모리 영역들, 즉, 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트하는 횟수를 카운트할 수 있다.
도 4a의 리맵핑 동작을 참조하면, 상대적으로 제1 논리 레벨 또는 제2 논리 레벨(논리값 '0')의 데이터 개수가 많은 데이터 그룹들(DATA0 또는 DATA7)이 그 개수가 비슷한 데이터 그룹들(DATA3 또는 DATA4)에 비해, 라이트 동작으로 레벨 변화(transition)가 일어나는 메모리 셀의 수를 줄일 수 있다. 예를 들어, 제1 데이터 그룹(DATA0)에 제1 논리 레벨의 데이터 개수가 주로 1개 안팎이라면, 제1 메모리 칩(CHIP0)에 레벨 변화(transition)가 일어나는 메모리 셀의 수는 2~3개 수준이다. 마찬가지로, 제8 데이터 그룹(DATA7)에는 제2 논리 레벨의 데이터 개수가 적어, 제8 메모리 칩(CHIP7)의 레벨 변화(transition)가 일어나는 메모리 셀의 수는 적을 수 있다.
반대로 제1 논리 레벨 또는 제2 논리 레벨의 데이터 개수가 중간 즈음 되는 제4 및 제5 메모리 칩들(CHIP3 및 CHIP4)의 경우는, 레벨 변화(transition)가 일어나는 메모리 셀의 수가 상대적으로 많을 수 있다. 예를 들어, 제4 데이터 그룹(DATA3)에 제1 논리 레벨의 데이터 개수가 주로 30개 안팎이라면, 제4 메모리 칩(CHIP3)의 최대 64개의 메모리 셀들에서 레벨 변화(transition)가 일어날 수 있다.
따라서, 중간의 제4 및 제5 메모리 칩들(CHIP3 및 CHIP4)의 경우는 웨어-아웃이 심해지기 때문에, 라이트 동작 횟수를 바탕으로 RESET 동작을 분산시킬 수도 있다. 분산시키는 주기는 처음에 제4 및 제5 메모리 칩들(CHIP3 및 CHIP4)을 기준으로 전체 메모리 셀들에서 레벨 변화(transition)가 일어난다 가정하고, 메모리 장치(320)의 하나의 메모리 셀이 웨어-아웃되는 라이트 동작 횟수를 메모리 칩들의 개수로 나눠 설정할 수 있다.
이를 위해, 제2 카운팅부(540)는 라이트 커맨드(WT)에 응답해 라이트 동작 횟수를 카운트할 수 있다. 카운트된 라이트 동작 횟수가 분산 주기에 따라 설정되는 제3 임계값 이상이 되면, 제2 카운팅부(540)는 시프트 신호(SHIFT)를 생성하여 신호 생성부(520)로 출력할 수 있다. 앞서 설명한 바와 같이, 시프트 신호(SHIFT)에 응답해 신호 생성부(520)는 카운트 값들(C0:C7)의 크기를 나타내는 제1 내지 제8 선택 신호들(S0:S7)을 하나씩 시프트하여 생성할 수 있다.
도 6은 본 발명의 실시예에 따른 메모리 시스템(300)의 동작을 나타내는 순서도이다. 도 3에 도시된 것처럼, 메모리 시스템(300)이 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)을 포함하는 것을 일례로 설명하고 있다.
1) 제1 논리 레벨 데이터 확인(S610).
메모리 컨트롤러(310)는 메모리 장치(320)에 라이트되는 데이터 그룹들(DATA(64b)) 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인할 수 있다. 구체적으로, 리맵핑부(314)의 제1 카운팅부(510)가 데이터 그룹들(DATA(64b)) 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 카운트하여 카운트 값들(C0:C7)을 생성할 수 있다.
2) 제1 라이트 동작(S620).
메모리 컨트롤러(310)는 확인된 데이터 개수들에 따른 순서로 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트할 수 있다. 즉, 데이터 그룹들(DATA(64b))이 확인된 데이터 개수들에 따른 순서로 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)로 분류되고, 각각 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트될 수 있다. 이를 위해, 리맵핑부(314)의 신호 생성부(520)는 카운트 값들(C0:C7)의 크기가 작은 것에서 큰 순서를 나타내는 제1 내지 제8 선택 신호들(S0:S7)을 카운트 값들(C0:C7)에 대응하여 생성할 수 있다. 메모리 컨트롤러(310)는 제1 내지 제8 선택 신호들(S0:S7)에 따라 메모리 칩 선택 신호들을 생성하여 제1 내지 제8 데이터 그룹들(DATA0 내지 DATA7)을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트할 수 있다.
3) 제1 논리 레벨 데이터 카운트(S630).
확인된 데이터 개수들을 바탕으로, 리맵핑부(314)는 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트되는 제1 논리 레벨의 데이터 개수들을 카운트할 수 있다. 리맵핑부(314)의 저장부(530)는 제1 내지 제8 저장 유닛들(532)을 포함하고, 제1 내지 제8 선택 신호들(S0:S7)에 응답해 대응하는 카운트 값(C0:C7)을 선택해서 저장할 수 있다.
4) 스페어 메모리 칩 확인(S640).
이때, 메모리 컨트롤러(310)는 리페어 정보(REPAIR)에 따라 메모리 장치(320)에 사용 가능한 스페어 메모리 칩이 남아 있는지 확인할 수 있다. 확인 결과 메모리 장치(320)가 스페어 메모리 칩을 포함하면(YES, S640), 메모리 컨트롤러(310)는 카운트된 데이터 개수가 제1 임계값 이상인지 여부에 따라 리페어 동작(S650)을 추가로 수행할 수 있다. 즉, 저장부(530)는 제1 내지 제8 저장 유닛들(532)에 저장된 값이 제1 임계값 이상이면, 리페어 신호(REPAIR)를 출력할 수 있다. 리페어 신호(REPAIR)에 따라, 메모리 컨트롤러(310)는 스페어 메모리 칩을 이용하여 RESET 동작이 집중된 메모리 칩을 리페어할 수 있다.
확인 결과 메모리 장치(320)가 스페어 메모리 칩을 포함하지 않으면(NO, S640), 메모리 컨트롤러(310)는 카운트된 데이터 개수가 제2 임계값 이상인지 여부에 따라 시프트 동작(S660)을 추가로 수행할 수 있다. 즉, 저장부(530)는 제1 내지 제8 저장 유닛들(532)에 저장된 값이 제1 임계값보다 작은 제2 임계값 이상이면, 시프트 신호(SHIFT)를 출력할 수 있다. 시프트 신호(SHIFT)에 응답해, 신호 생성부(520)는 상기 제1 내지 제8 선택 신호들(S0:S7) 시프트하여 생성할 수 있다. 결국, 저장부(530)의 제1 내지 제8 저장 유닛들(532)은 시프트된 제1 내지 제8 선택 신호들(S0:S7)에 응답해, 카운트 값들(C0:C7)을 선택해서 저장할 수 있다.
5) 라이트 횟수 카운트(S670).
메모리 컨트롤러(310)는 데이터 그룹들(DATA(64b))이 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트되는 횟수를 카운트할 수 있다. 메모리 컨트롤러(310)는 라이트 동작의 횟수를 카운팅하고, 카운트된 라이트 동작 횟수가 제3 임계값 이상인지 여부에 따라 시프트 동작(S660)을 추가로 수행할 수 있다. 구체적으로, 리맵핑부(314)의 제2 카운팅부(540)가 라이트 커맨드(WT)에 응답해 카운팅 동작을 수행하고, 카운트된 라이트 동작 횟수가 제3 임계값 이상이 되면, 시프트 신호(SHIFT)를 생성할 수 있다.
6) 동작 모드 결정(S680)
본 발명의 실시예에 따라, 메모리 컨트롤러(310)는 추가로 데이터의 경향성을 확인하여 동작 모드를 결정할 수 있다. 즉, 메모리 컨트롤러(310)의 모드 결정부(312)는 데이터 그룹들(DATA(512b))에 해당하는 어드레스(ADD)를 바탕으로 데이터 그룹들(DATA(512b))이 시스템 데이터인지 이미지 데이터인지 확인할 수 있다. 데이터 그룹들(DATA(512b))이 시스템 데이터로 확인되면, 모드 결정부(312)는 제1 동작 모드(MODE1)로 설정하고, 인에이블 신호(EN)를 활성화할 수 있다. 활성화된 인에이블 신호(EN)에 응답해, 리맵핑부(314)는 리맵핑 동작을 수행할 수 있다.
7) 제2 라이트 동작(S690)
반면, 데이터 그룹들(DATA(512b))이 이미지 데이터로 확인되면, 모드 결정부(312)는 제2 동작 모드(MODE2)로 설정하고, 인에이블 신호(EN)를 비활성화할 수 있다. 인에이블 신호(EN)를 비활성화되면, 메모리 컨트롤러(310)는 제1 논리 레벨의 데이터 개수들에 상관없이 데이터 그룹들(DATA(512b))을 제1 내지 제8 메모리 칩들(CHIP0 내지 CHIP7)에 라이트할 수 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 이상에서 설명한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 여러 가지 치환, 변형 및 변경으로 다양한 실시예가 가능함을 이해할 수 있을 것이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 제1 내지 제N(N은 2 이상의 자연수) 메모리 영역들을 포함하는 메모리 장치; 및
    상기 메모리 장치에 라이트되는 제1 내지 제N 데이터 그룹들 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인하고, 상기 확인된 데이터 개수들에 따른 순서로 상기 데이터 그룹들을 상기 제1 내지 제N 메모리 영역들에 라이트하고, 라이트 동작 횟수에 기초하여 상기 확인된 데이터 개수들에 따른 순서를 시프트하여 상기 데이터 그룹들을 상기 제1 내지 제N 메모리 영역들에 라이트하는 메모리 컨트롤러;를 포함하는,
    메모리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 메모리 컨트롤러는 상기 확인된 데이터 개수들을 바탕으로, 상기 제1 내지 제N 메모리 영역들에 라이트되는 제1 논리 레벨의 데이터 개수들을 카운트하는 메모리 시스템.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제2항에 있어서,
    상기 메모리 장치가 스페어 메모리 영역을 포함할 경우, 상기 메모리 컨트롤러는 상기 카운트된 데이터 개수가 제1 임계값 이상일 때, 대응하는 메모리 영역을 상기 스페어 메모리 영역으로 리페어하는 메모리 시스템.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제2항에 있어서,
    상기 메모리 장치가 스페어 메모리 영역을 포함하지 않을 경우, 상기 메모리 컨트롤러는 상기 카운트된 데이터 개수가 제2 임계값 이상일 때, 상기 확인된 데이터 개수들에 따른 순서를 하나씩 시프트하여 상기 데이터 그룹들을 상기 제1 내지 제N 메모리 영역들에 라이트하는 메모리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 데이터 그룹들 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 카운트하여 카운트 값들을 생성하는 제1 카운팅부;
    상기 카운트 값들의 크기가 작은 것에서 큰 순서를 나타내는 제1 내지 제N 선택 신호들을 상기 카운트 값들에 대응하여 생성하는 신호 생성부; 및
    상기 제1 내지 제N 선택 신호들에 각각 응답해 대응하는 카운트된 값을 선택해서 저장하는 제1 내지 제N 저장 유닛들을 포함하는 저장부;를 포함하는 메모리 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제5항에 있어서,
    리페어 정보 또는 ECC(Error Correction Code) 정보에 따라, 상기 저장부는 상기 제1 내지 제N 저장 유닛들에 저장된 값이 제1 임계값 이상일 때 리페어 신호를 생성하거나, 상기 제1 내지 제N 저장 유닛들에 저장된 값이 상기 제1 임계값보다 작은 제2 임계값 이상일 때 시프트 신호를 생성하는 메모리 시스템.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 시프트 신호에 응답해, 상기 신호 생성부는 상기 제1 내지 제N 선택 신호들을 시프트하여 생성하는 메모리 시스템.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제5항에 있어서,
    상기 메모리 컨트롤러는,
    상기 라이트 동작 횟수를 카운트하는 제2 카운팅부를 더 포함하는 메모리 시스템.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 카운트된 라이트 동작 횟수가 제3 임계값 이상일 때, 상기 제2 카운팅부는 시프트 신호를 생성하여 상기 신호 생성부로 출력하는 메모리 시스템.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 메모리 컨트롤러는 상기 데이터 그룹들에 해당하는 어드레스를 바탕으로 동작 모드를 결정하는 모드 결정부를 포함하는 메모리 시스템.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 모드 결정부에 의해 결정된 동작 모드에 따라, 상기 메모리 컨트롤러는 상기 제1 논리 레벨의 데이터 개수들에 상관없이 상기 데이터 그룹들을 상기 제1 내지 제N 메모리 영역들에 라이트하는 메모리 시스템.
  12. 메모리 장치에 라이트되는 제1 내지 제N(N은 2 이상의 자연수) 데이터 그룹들 각각에 포함되는 제1 논리 레벨의 데이터 개수들을 확인하는 단계; 및
    상기 확인된 데이터 개수들에 따른 순서로 상기 데이터 그룹들을 상기 메모리 장치의 제1 내지 제N 메모리 영역들에 라이트하고, 라이트 동작 횟수에 기초하여 상기 확인된 데이터 개수들에 따른 순서를 시프트하여 상기 데이터 그룹들을 상기 제1 내지 제N 메모리 영역들에 라이트하는 단계;를 포함하는,
    메모리 시스템의 동작방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    확인된 데이터 개수들을 바탕으로, 상기 제1 내지 제N 메모리 영역들에 라이트되는 제1 논리 레벨의 데이터 개수들을 카운트하는 단계; 및
    리페어 정보를 바탕으로, 상기 메모리 장치가 스페어 메모리 영역을 포함하는지 여부를 확인하는 단계;를 더 포함하는 메모리 시스템의 동작방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서,
    상기 확인 결과 상기 메모리 장치가 스페어 메모리 영역을 포함하면,
    상기 카운트된 데이터 개수가 제1 임계값 이상일 때, 대응하는 메모리 영역을 상기 스페어 메모리 영역으로 리페어하는 단계를 더 포함하는 메모리 시스템의 동작방법.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서,
    상기 확인 결과 상기 메모리 장치가 스페어 메모리 영역을 포함하지 않으면,
    상기 카운트된 데이터 개수가 제2 임계값 이상일 때, 상기 확인된 데이터 개수들에 따른 순서를 하나씩 시프트하는 단계를 더 포함하는 메모리 시스템의 동작방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 데이터 그룹들을 상기 메모리 장치의 제1 내지 제N 메모리 영역들에 라이트하는 상기 라이트 동작 횟수를 카운트하는 단계를 더 포함하는 메모리 시스템의 동작방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서,
    상기 카운트된 라이트 동작 횟수가 제3 임계값 이상일 때, 상기 확인된 데이터 개수들에 따른 순서를 하나씩 시프트하는 단계를 더 포함하는 메모리 시스템의 동작방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 데이터 그룹들에 해당하는 어드레스를 바탕으로 동작 모드를 결정하는 단계를 더 포함하는 메모리 시스템의 동작방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제18항에 있어서,
    상기 동작 모드를 결정하는 단계는 상기 어드레스를 바탕으로 상기 데이터 그룹들이 시스템 데이터인지 이미지 데이터인지를 확인하는 단계를 포함하는 메모리 시스템의 동작방법.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제19항에 있어서,
    상기 확인 결과 상기 데이터 그룹들이 이미지 데이터이면,
    상기 제1 논리 레벨의 데이터 개수들에 상관없이 상기 데이터 그룹들이 상기 제1 내지 제N 메모리 영역들에 라이트되는 메모리 시스템의 동작방법.
KR1020170176217A 2017-12-20 2017-12-20 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법 KR102556459B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170176217A KR102556459B1 (ko) 2017-12-20 2017-12-20 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법
US16/124,882 US10607694B2 (en) 2017-12-20 2018-09-07 Memory system including memory device and memory controller, and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176217A KR102556459B1 (ko) 2017-12-20 2017-12-20 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법

Publications (2)

Publication Number Publication Date
KR20190074680A KR20190074680A (ko) 2019-06-28
KR102556459B1 true KR102556459B1 (ko) 2023-07-18

Family

ID=66813931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176217A KR102556459B1 (ko) 2017-12-20 2017-12-20 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법

Country Status (2)

Country Link
US (1) US10607694B2 (ko)
KR (1) KR102556459B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220023598A (ko) 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9170933B2 (en) 2010-06-28 2015-10-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
CN102881324B (zh) * 2011-07-11 2015-07-08 澜起科技(上海)有限公司 写入电路、读取电路、内存缓冲器及内存条
KR20150046974A (ko) * 2013-10-23 2015-05-04 에스케이하이닉스 주식회사 저항성 메모리 장치 및 동작 방법과 이를 포함하는 시스템
KR102422478B1 (ko) * 2016-05-10 2022-07-19 삼성전자주식회사 불휘발성 메모리 장치의 독출 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
한국공개특허 제10-2015-0046974호(2015.05.04.) 1부.*
한국공개특허 제10-2017-0126595호(2017.11.20.) 1부.*

Also Published As

Publication number Publication date
US10607694B2 (en) 2020-03-31
KR20190074680A (ko) 2019-06-28
US20190189204A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
KR102534631B1 (ko) 카운팅 회로 블록을 포함하는 반도체 시스템
US10629286B2 (en) Memory devices, memory systems and methods of operating memory devices
US9372790B2 (en) Nonvolatile memory device having wear-leveling control and method of operating the same
US9003224B2 (en) Managing unreliable memory in data storage systems
KR102120823B1 (ko) 비휘발성 메모리 장치의 독출 시퀀스 제어 방법 및 이를 수행하는 메모리 시스템
CN109767801B (zh) 存储器控制器、包括其的半导体存储***以及驱动方法
JP5792019B2 (ja) 半導体装置
US20140010017A1 (en) Nonvolatile memory device performing read operation with variable read voltage
JP6878650B2 (ja) ストレージシステムおよび制御方法
KR102049258B1 (ko) 레퍼런스 셀을 포함하는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 및
US9947380B2 (en) Adjustable read reference voltage to reduce errors in memory devices
US10338984B2 (en) Storage control apparatus, storage apparatus, and storage control method
KR102556459B1 (ko) 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 라이트 동작방법
US20210019254A1 (en) Wear leveling based on sub-group write counts in a memory sub-system
JP2014199705A (ja) 不揮発性半導体装置
US10783970B2 (en) Consolidation of copy-back and write in PRAM blocks
KR20160129418A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20200070686A (ko) 저장 장치 및 그 동작 방법
JP6145227B2 (ja) 半導体装置
US11789861B2 (en) Wear leveling based on sub-group write counts in a memory sub-system
KR20120119331A (ko) 메모리 및 이의 동작방법
KR20230048747A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant