KR102275710B1 - 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 - Google Patents

오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 Download PDF

Info

Publication number
KR102275710B1
KR102275710B1 KR1020150016185A KR20150016185A KR102275710B1 KR 102275710 B1 KR102275710 B1 KR 102275710B1 KR 1020150016185 A KR1020150016185 A KR 1020150016185A KR 20150016185 A KR20150016185 A KR 20150016185A KR 102275710 B1 KR102275710 B1 KR 102275710B1
Authority
KR
South Korea
Prior art keywords
data
memory
write
host
memory system
Prior art date
Application number
KR1020150016185A
Other languages
English (en)
Other versions
KR20160094765A (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 KR1020150016185A priority Critical patent/KR102275710B1/ko
Priority to US14/994,172 priority patent/US9952766B2/en
Priority to CN201610073259.8A priority patent/CN105843553B/zh
Publication of KR20160094765A publication Critical patent/KR20160094765A/ko
Application granted granted Critical
Publication of KR102275710B1 publication Critical patent/KR102275710B1/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/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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
    • 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
    • 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/061Improving I/O performance
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0653Monitoring storage devices or systems
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/068Hybrid storage device
    • 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
    • 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/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법이 개시된다. 본 발명의 기술적 사상에 따른 메모리 시스템의 동작방법은, 하나 이상의 기록 요청과, 이에 대응하는 논리적 어드레스 및 데이터를 수신하는 단계와, 상기 수신된 기록 요청, 논리적 어드레스 및 데이터 중 적어도 하나를 분석한 결과를 임계값과 비교하는 단계 및 상기 비교 결과에 기반하여, 제1 업데이트 방식 또는 제2 업데이트 방식에 따라 데이터를 기록하는 단계를 구비하고, 상기 제1 업데이트 방식이 선택될 때, 기 저장된 어드레스 맵핑 정보에 따라 상기 논리적 어드레스에 대응하는 물리적 어드레스가 지시하는 영역에 상기 데이터가 기록되고, 상기 제2 업데이트 방식이 선택될 때, 상기 논리적 어드레스에 대응하는 물리적 어드레스의 정보가 변경되고, 상기 변경된 물리적 어드레스가 지시하는 영역에 상기 데이터가 기록되는 것을 특징으로 한다.

Description

오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법{Memory Device and Memory System capable of over-writing and Operating Method thereof}
본 발명의 기술적 사상은 메모리 장치에 관한 것으로서, 상세하게는 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법에 관한 것이다.
메모리 장치의 고용량화 및 저전력화의 요구에 따라 비휘발성인 동시에 리프레쉬가 필요 없는 차세대 메모리 장치들에 대한 연구가 진행되고 있다. 이러한 차세대 메모리 장치는 DRAM(Dynamic Random Access Memory)의 고집적성, 플래쉬 메모리의 비휘발성, SRAM(Static RAM)의 고속성 등을 갖출 것이 요구된다. 차세대 메모리 장치로서, PRAM(Phase change RAM), NFGM(Nano Floating Gate Memory), PoRAM(Polymer RAM), MRAM(Magnetic RAM), FeRAM(Ferroelectric RAM), RRAM(Resistive RAM) 등이 상술한 요구 사항에 부응하는 차세대 메모리 장치로 거론되고 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 데이터 기록 동작을 개선하여 메모리 동작의 성능을 향상한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법을 제공하는 데에 있다.
본 발명의 기술적 사상에 따른 메모리 시스템의 동작방법은, 하나 이상의 기록 요청과, 이에 대응하는 논리적 어드레스 및 데이터를 수신하는 단계와, 상기 수신된 기록 요청, 논리적 어드레스 및 데이터 중 적어도 하나를 분석한 결과를 임계값과 비교하는 단계 및 상기 비교 결과에 기반하여, 제1 업데이트 방식 또는 제2 업데이트 방식에 따라 데이터를 기록하는 단계를 구비하고, 상기 제1 업데이트 방식이 선택될 때, 기 저장된 어드레스 맵핑 정보에 따라 상기 논리적 어드레스에 대응하는 물리적 어드레스가 지시하는 영역에 상기 데이터가 기록되고, 상기 제2 업데이트 방식이 선택될 때, 상기 논리적 어드레스에 대응하는 물리적 어드레스의 정보가 변경되고, 상기 변경된 물리적 어드레스가 지시하는 영역에 상기 데이터가 기록되는 것을 특징으로 한다.
한편, 본 발명의 다른 기술적 사상에 따른 다수의 메모리 칩들을 포함하는 메모리 시스템의 동작방법은, 호스트로부터 기록 요청 및 적어도 하나의 제1 정보를 수신하는 단계와, 상기 호스트로부터 수신된 제1 정보 및 상기 메모리 시스템 내부의 제2 정보 중 적어도 하나에 기반하여 상기 기록 요청에 따른 업데이트 방식을 선택하는 단계 및 상기 선택 결과에 따라, 상기 기록 요청에 대응하는 데이터를 어느 하나의 메모리 칩에 기록하거나, 상기 기록 요청에 대응하는 데이터를 적어도 두 개의 메모리 칩들에 분산하여 기록하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 또 다른 기술적 사상에 따른 메모리 셀 어레이를 포함하는 메모리 시스템의 동작방법은, 기록 요청, 제1 논리적 어드레스 및 기록 데이터를 수신하는 단계와, 업데이트 정보를 수신하는 단계 및 상기 업데이트 정보를 검출한 결과에 따라, 기 저장된 어드레스 맵핑 정보에 따라 상기 제1 논리적 어드레스에 대응하는 상기 메모리 셀 어레이의 제1 영역에 상기 기록 데이터를 저장하거나, 상기 기록 데이터를 상기 제1 영역과 서로 다른 위치의 제2 영역에 기록하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 메모리 시스템에 있어서, 상기 메모리 시스템은 메모리 동작을 제어하는 메모리 콘트롤러를 구비하고, 상기 메모리 콘트롤러는, 논리적 어드레스를 물리적 어드레스로 변환하기 위한 어드레스 맵핑 정보가 로딩되는 워킹 메모리와, 외부로부터 수신된 기록 요청, 논리적 어드레스 및 데이터 중 적어도 하나를 분석한 결과를 임계값과 비교함에 기반하여, 상기 기록 요청에 대응하는 업데이트 방식을 선택하는 업데이트 관리부 및 상기 선택 결과에 따라, 기 저장된 어드레스 맵핑 정보에 따라 상기 논리적 어드레스에 대응하는 제1 물리적 어드레스를 출력하거나, 변경된 어드레스 맵핑 정보에 따라 상기 논리적 어드레스에 대응하는 제2 물리적 어드레스를 출력하는 메모리 인터페이스를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상에 따른 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법은, 외부로부터 제공된 각종 정보 및 메모리 시스템 내부의 각종 정보를 참조하여 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트를 선택적으로 수행하므로, 데이터 응답성 및 기록 속도의 증가 등 메모리 동작 성능을 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상에 따른 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법은, 메모리 시스템의 메모리 셀 상태 및 수명 등을 참조하여 기록 동작을 수행하므로, 데이터 안정성을 향상함과 함께 수명을 증가시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 3은 도 1의 본 발명의 실시예에 따른 메모리 콘트롤러의 일 구현 예를 나타내는 블록도이다.
도 4a,b는 메모리 셀 어레이의 일 구현 예를 나타내는 회로도 및 메모리 셀 어레이에 대한 셋/리셋 기록의 일 예를 나타내는 그래프이다.
도 5a 내지 도 5c는 도 4a의 메모리 셀의 변형 예들을 나타내는 회로도들이다.
도 6 및 도 7은 인-플레이스 업데이트 및 아웃-오브-플레이스 업데이트 동작의 일 예를 나타내는 블록도이다.
도 8은 도 3의 메모리 콘트롤러의 업데이트 관리부를 구현하는 일 예를 나타내는 블록도이다.
도 9 내지 도 13은 본 발명의 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 14a,b는 본 발명의 다른 실시예에 따른 메모리 시스템, 메모리 시스템에 구비되는 업데이트 관리부의 일 구현 예를 나타내는 블록도이다.
도 15 내지 도 17은 본 발명의 다른 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 18a,b는 본 발명의 또 다른 실시예에 따른 메모리 시스템을 나타내는 블록도 및 파형도이다.
도 19a,b,c는 본 발명의 실시예에 따라 호스트와 메모리 시스템 사이에 송수신되는 신호들을 나타내는 파형도이다.
도 20 및 도 21은 본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작 예를 나타내는 블록도이다.
도 22는 본 발명의 실시예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 나타내는 블록도이다.
도 23은 본 발명의 실시예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 24는 본 발명의 실시예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 25a,b는 도 1의 메모리 장치의 일 구현예를 나타내는 구조도 및 회로도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 메모리 시스템은 메모리 장치 및 메모리 콘트롤러를 포함할 수 있다. 본 발명의 실시예에서, 상기 메모리 장치는 저항성 메모리 셀들을 포함함에 따라 저항성 메모리 장치로 지칭될 수 있다. 또는, 본 발명의 실시예에서 상기 메모리 장치는 다양한 종류의 메모리 셀들을 포함할 수 있으며, 상기 메모리 셀들이 복수의 제1 신호 라인들 및 복수의 제2 신호 라인들이 교차하는 영역에 배치됨에 따라, 상기 메모리 장치는 크로스 포인트(cross-point) 메모리 장치로 지칭되어도 무방하다. 이하의 본 발명의 실시예들을 설명함에 있어서 상기 메모리 장치는 저항성 메모리 장치인 것으로 가정한다.
도 1을 참조하면, 메모리 시스템(100)은 메모리 콘트롤러(110) 및 메모리 장치(120)를 포함할 수 있다. 메모리 장치(120)는 메모리 셀 어레이(121), 기록/독출 회로(122) 및 제어 로직(123)을 포함할 수 있다. 메모리 셀 어레이(121)가 저항성 메모리 셀들을 포함하는 경우, 메모리 시스템(100)은 저항성 메모리 시스템으로 지칭될 수 있다.
메모리 콘트롤러(110)는 호스트(Host)로부터의 기록/독출 요청에 응답하여 메모리 장치(120)에 저장된 데이터를 독출하거나, 또는 메모리 장치(120)에 데이터를 기록하도록 메모리 장치(120)를 제어할 수 있다. 구체적으로, 메모리 콘트롤러(110)는 메모리 장치(120)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(120)에 대한 프로그램(program)(또는 기록), 독출(read) 및 소거(erase) 동작을 제어할 수 있다. 또한, 기록될 데이터(DATA)와 독출된 데이터(DATA)가 메모리 콘트롤러(110)와 메모리 장치(120) 사이에서 송수신될 수 있다.
메모리 셀 어레이(121)는 복수의 제1 신호 라인들과 복수의 제2 신호 라인들이 교차하는 영역들에 각각 배치되는 복수의 메모리 셀들(미도시)을 포함할 수 있다. 일 실시예에서, 복수의 제1 신호 라인들은 복수의 비트 라인들일 수 있고, 복수의 제2 신호 라인들은 복수의 워드 라인들일 수 있다. 다른 실시예에서, 복수의 제1 신호 라인들은 복수의 워드 라인들일 수 있고, 복수의 제2 신호 라인들은 복수의 비트 라인들일 수 있다.
또한, 복수의 메모리 셀들 각각은 하나의 비트를 저장하는 싱글 레벨 셀(SLC, single level cell)일 수 있으며, 또는 적어도 2 비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC, multi level cell)일 수 있다. 또는, 메모리 셀 어레이(121)는 싱글 레벨 셀과 멀티 레벨 셀을 함께 포함하여도 무방하다. 하나의 메모리 셀에 하나의 비트의 데이터가 기록되는 경우, 메모리 셀들은 기록된 데이터에 따라 두 개의 저항 레벨 산포를 가질 수 있다. 또는, 하나의 메모리 셀에 2 개의 비트의 데이터가 기록되는 경우, 메모리 셀들은 기록된 데이터에 따라 네 개의 저항 레벨 산포를 가질 수 있다. 또 다른 실시예에서, 하나의 메모리 셀에 3 비트의 데이터가 저장되는 트리플 레벨 셀(TLC, triple level cell)의 경우, 메모리 셀들은 기록된 데이터에 따라 여덟 개의 저항 레벨 산포를 가질 수 있다 그러나, 본 발명은 이에 한정되지 않고, 다른 실시예에서, 메모리 셀들은 4 비트 이상의 데이터를 각각 저장할 수 있는 메모리 셀들을 포함할 수 있다.
한편, 메모리 셀 어레이(121)는 가변 저항 소자(미도시)를 포함하는 저항성 메모리 셀들을 포함할 수 있다. 예를 들어, 가변 저항 소자가 상변화(phase change) 물질(GST, Ge-Sb-Te)로서 온도에 따라 저항이 변화하는 경우에는 저항성 메모리 장치는 PRAM이 될 수 있다. 다른 예를 들어, 가변 저항 소자가 상부 전극, 하부 전극 및 그 사이에 있는 전이금속 산화물(complex metal oxide)로 형성된 경우에는 저항성 메모리 장치는 RRAM이 될 수 있다. 또 다른 예를 들어, 가변 저항 소자가 자성체의 상부 전극, 자성체의 하부 전극 및 그 사이에 있는 유전체로 형성된 경우에는 저항성 메모리 장치는 MRAM이 될 수 있다.
기록/독출 회로(122)는 메모리 셀들에 대한 기록 및 독출 동작을 수행한다. 기록/독출 회로(122)는 다수의 비트 라인들을 통해 메모리 셀들에 연결될 수 있으며, 메모리 셀들에 데이터를 기록하기 위한 기록 드라이버와, 메모리 셀들의 저항 성분을 센싱하는 센스 앰프를 포함할 수 있다.
제어 로직(123)은 메모리 장치(120)의 전반적인 동작을 제어할 수 있으며, 또한 기록 및 독출 등의 메모리 동작을 수행하기 위하여 기록/독출 회로(122)를 제어할 수 있다. 일 예로서, 메모리 장치(120)는 기록 및 독출 동작에 이용되는 각종 기록 전압 및 독출 전압을 생성하는 전원 발생 수단(미도시)을 포함할 수 있으며, 상기 제어 로직(123)의 제어 하에서 기록 전압 및 독출 전압의 레벨이 조절될 수 있다. 또한, 일 예로서, 메모리 장치(120)는 독출 동작에 이용되는 각종 기준 신호를 생성하는 기준신호 발생 수단(미도시)을 포함할 수 있으며, 예컨대 기준신호 발생 수단은 기준 전류 및/또는 기준 전압을 생성할 수 있다.
메모리 장치(120)에 대한 기록 동작에 있어서, 기록 데이터에 따라 메모리 셀 어레이(121)의 메모리 셀의 가변 저항은 그 저항 값이 증가할 수 있으며, 또는 메모리 셀의 가변 저항은 그 저항 값이 감소할 수 있다. 예컨대, 메모리 셀 어레이(121)의 메모리 셀들 각각은 현재 저장된 데이터에 따른 저항 값을 가질 수 있으며, 각각의 메모리 셀들로 기록될 데이터에 따라 저항 값이 증가하거나 감소할 수 있다. 상기와 같은 기록 동작은 리셋(Reset) 기록 동작과 셋(Set) 기록 동작으로 분류될 수 있다. 저항성 메모리 셀에서 셋(Set) 상태는 상대적으로 낮은 저항 값을 가지며, 반면에 리셋(Reset) 상태는 상대적으로 높은 저항 값을 가질 수 있다.
본 발명의 일 실시예에 따르면, 메모리 셀 어레이(121)가 저항성 메모리 셀들을 포함함에 따라, 메모리 셀 어레이(121)에 대한 기록 동작시 데이터가 메모리 셀들에 오버-라이트(Over-write)될 수 있다. 데이터의 오버-라이트 동작은, 데이터가 기록될 메모리 셀들에 대해 별도의 소거 동작(예컨대, 저항성 메모리의 경우 리셋 기록 동작에 대응할 수 있음) 없이, 데이터를 기록 대상의 메모리 셀들에 직접 프로그램하는 동작으로 정의될 수 있다. 즉, 기록 동작을 위해 메모리 셀들의 저항을 소거하여 프리 블록(free block)을 생성한 후 프리 블록에 데이터를 기록할 필요가 없이, 기존의 데이터에 따른 저항 상태에서 현재 기록 요청된 데이터에 대응하는 저항 상태로 이동시킴에 의해 기록 동작이 수행될 수 있다.
본 발명의 일 실시예에 따르면, 메모리 시스템(100)은 호스트(HOST)로부터의 기록 요청에 응답하여 인-플레이스 업데이트(In-place Update) 및 아웃-오브-플레이스 업데이트(Out-of-place Update)를 선택적으로 적용하여 기록 동작을 수행할 수 있다. 상기 인-플레이스 업데이트 동작은 전술한 오버-라이트(Over-write) 동작에 기반하여 수행될 수 있으며, 예컨대 호스트(HOST)가 지시한 영역에 데이터를 오버-라이트함에 의해 수행될 수 있다. 반면에, 상기 아웃-오브-플레이스 업데이트 동작은 데이터가 호스트(HOST)가 지시한 영역에 기록되는 것이 아니라, 메모리 셀 어레이(121) 내의 다른 영역에 기록되는 동작을 나타낼 수 있다.
아웃-오브-플레이스 업데이트가 선택되는 경우, 기록 데이터는 호스트(HOST)에 의해 요청된 영역(호스트에 의해 제공된 로지컬 어드레스에 대응하는 영역) 이외의 다른 영역에 기록될 수 있다. 예컨대, 호스트로부터의 로지컬 어드레스는 하나 이상의 페이지를 지시하는 정보를 포함할 수 있으며, 아웃-오브-플레이스 업데이트 동작에 따라 기록 데이터는 호스트에 의해 지시되지 않은 다른 페이지에 기록될 수 있다. 일 예로서, 기록 데이터는 소거 상태(또는, 리셋 상태)를 갖는 프리 블록에 기록될 수 있다.
또한 다른 예로서, 아웃-오브-플레이스 업데이트 방식에 따라 데이터가 기록되는 경우, 호스트에 의해 요청된 영역 이외의 다른 영역에 기록 데이터를 오버-라이트함에 의해 수행될 수도 있다. 예컨대, 호스트에 의해 요청된 영역 이외의 다른 영역에 데이터가 기록되어 있으나, 상기 데이터가 무효한(Invalid) 데이터인 경우에는 호스트로부터의 기록 데이터가 상기 다른 영역에 오버-라이트되어도 무방하다.
메모리 시스템(100)은, 호스트(HOST)로부터의 기록 요청에 대응하여, 호스트(HOST)로부터 제공된 각종 정보 및 메모리 시스템(100) 내에 구비되는 각종 정보들 중 적어도 하나에 대한 분석 동작을 수행하고, 분석 결과에 기반하여 기록 요청에 대응하여 인-플레이스 업데이트 방식에 따라 데이터를 기록할 것인지 또는 아웃-오브-플레이스 업데이트 방식에 따라 데이터를 기록할 것인지를 선택할 수 있다.
이를 위하여, 메모리 콘트롤러(110)는 업데이트 관리부(111) 및 메모리 인터페이스(112)를 포함할 수 있다. 업데이트 관리부(111)는 호스트(HOST)로부터 제공되는 각종 정보들 및 메모리 시스템(100) 내에 구비되는 각종 정보들 중 적어도 하나의 정보를 참조하여, 호스트(HOST)로부터의 기록 요청에 대응하여 수행될 업데이트 방식을 결정할 수 있다. 상기 업데이트 방식을 결정한 결과에 따라, 메모리 콘트롤러(110)로부터 메모리 장치(120)로 제공되는 커맨드(CMD) 및 어드레스(ADDR) 중 적어도 하나가 변동될 수 있으며, 메모리 인터페이스(112)는 결정된 업데이트 방식에 따른 커맨드(CMD) 및 어드레스(ADDR)를 메모리 장치(120)로 제공할 수 있다.
기록 요청에 응답하여 인-플레이스 업데이트 방식에 따라 데이터가 기록되는 경우, 호스트(HOST)에 의해 지시되는 위치에 데이터가 업데이트되므로 별도의 소거 동작(Erase), 가비지 콜렉션(Garbage Collection), 메타 데이터 기록(Metadata write) 등의 동작이 발생되지 않으며, 이에 따라 응답성이 향상될 수 있으며 또한 메모리 시스템(100)의 수명 단축 가능성을 감소할 수 있다. 또한, 기록 요청에 응답하여 아웃-오브-플레이스 업데이트 방식에 따라 데이터가 기록되는 경우, 다수의 메모리 칩들이 메모리 시스템(100)에 구비될 때 기록 데이터가 다수의 메모리 칩들에 동시에 기록될 수 있으므로, 병렬성(Parallelism)을 활용함에 따라 많은 양(또는, 큰 사이즈)의 데이터의 기록 속도가 향상될 수 있다.
본 발명의 실시예에 따라, 메모리 시스템(100)의 수명 및 성능 등을 고려하여 인-플레이스 업데이트 방식 또는 아웃-오브-플레이스 업데이트 방식이 선택적으로 적용됨으로써, 메모리 시스템(100)의 수명 및 성능 등이 향상될 수 있다.
한편, 메모리 컨트롤러(110) 및 메모리 장치(120)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 메모리 컨트롤러(110) 및 메모리 장치(120)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들어, 메모리 컨트롤러(110) 및 메모리 장치(120)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM/SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD), 유니버설 플래시 기억장치(UFS) 등을 구성할 수 있다. 다른 예를 들면, 메모리 컨트롤러(110) 및 메모리 장치(120)는 하나의 반도체 장치로 집적되어 SSD(Solid State Disk/Drive)를 구성할 수 있다.
상기와 같이 구성될 수 있는 저항성 메모리 시스템(100)의 구체적인 동작 예를 설명한다. 도 2는 본 발명의 일 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 2를 참조하면, 메모리 장치(200)는 메모리 셀 어레이(210), 기록/독출 회로(220) 및 제어 로직(230)을 포함할 수 있다. 또한, 메모리 장치(200)는 기준 신호 발생부(240), 전원 발생부(250), 로우 디코더(260) 및 칼럼 디코더(270)를 더 포함할 수 있다. 또한, 기록/독출 회로(220)는 센스 앰프(221) 및 기록 드라이버(222)를 포함할 수 있다.
도 2에 도시된 메모리 장치(200)의 일 동작 예는 다음과 같다.
메모리 셀 어레이(210)에 구비되는 메모리 셀들은 복수의 제1 신호 라인들 및 복수의 제2 신호 라인들에 연결될 수 있다. 복수의 제1 신호 라인들은 비트 라인들(BL)이고, 복수의 제2 신호 라인들은 워드 라인들(WL)일 수 있다. 복수의 비트 라인들(BL) 및 워드 라인들(WL)을 통해 각종 전압 신호나 전류 신호가 제공됨에 따라, 선택된 메모리 셀들에 대해서는 데이터가 기록되거나 독출되며, 나머지 비선택된 메모리 셀들에 대해서는 기록이나 독출이 수행되는 것이 방지될 수 있다.
한편, 커맨드(CMD)에 수반하여 억세스할 메모리 셀을 지시하기 위한 어드레스(ADDR)가 수신될 수 있으며, 어드레스(ADDR)는 메모리 셀 어레이(210)의 워드 라인들(WL)을 선택하기 위한 로우 어드레스(X_ADDR)와 메모리 셀 어레이(210)의 비트 라인들(BL)을 선택하기 위한 칼럼 어드레스(Y_ADDR)를 포함할 수 있다. 메모리 장치(200)로 제공되는 어드레스(ADDR)는, 호스트로부터의 논리적 어드레스(Logical Address, LA)에 대응하여 메모리 시스템 내에서 변환된 물리적 어드레스(Physical Address, PA)에 상응할 수 있다. 로우 디코더(260)는 로우 어드레스(X_ADDR)에 응답하여 워드 라인 선택 동작을 수행하며, 칼럼 디코더(270)는 칼럼 어드레스(Y_ADDR)에 응답하여 비트 라인 선택 동작을 수행한다.
기록/독출 회로(220)는 메모리 셀 어레이(210)의 제1 신호 라인들 및/또는 제2 신호 라인들에 연결되어 메모리 셀에 데이터를 기록하거나, 메모리 셀로부터 데이터를 독출할 수 있다(도 2의 예에서는, 기록/독출 회로(220)가 비트 라인들(BL)에 연결되는 예가 도시됨). 일 실시예로서, 전원 발생부(250)는 기록 동작에 이용되는 기록 전압(Vwrite)을 생성할 수 있으며, 또한 독출 동작에 이용되는 독출 전압(Vread)을 생성할 수 있다. 기록 전압(Vwrite)은 기록 동작에 관련된 각종 전압으로서 셋 전압 및 리셋 전압 등을 포함할 수 있다. 기록 전압(Vwrite) 및 독출 전압(Vread)은 칼럼 디코더(270)를 통해 비트 라인들(BL)로 제공되거나, 로우 디코더(260)를 통해 워드 라인들(WL)로 제공될 수 있다.
한편, 기준 신호 발생부(240)는 데이터 독출 동작에 관련된 각종 기준 신호들로서, 기준 전압(Vref) 및 기준 전류(Iref)를 생성할 수 있다. 예컨대, 센스 앰프(221)는 데이터를 판별하기 위하여 비트 라인(BL)의 일 노드(예컨대, 센싱 노드)에 연결될 수 있으며, 센싱 노드의 전압과 기준 전압(Vref)에 대한 비교 동작을 통해 데이터 값이 판별될 수 있다. 또는, 전류 센싱 방법이 적용되는 경우, 기준 신호 발생부(250)는 기준 전류(Iref)를 생성하여 메모리 셀 어레이(210)로 제공할 수 있으며, 상기 기준 전류(Iref)에 기인한 센싱 노드의 전압과 기준 전압(Vref)을 비교함에 의해 데이터 값이 판별될 수 있다.
또한 기록/독출 회로(220)는 독출된 데이터에 대한 판별 결과에 따른 패스/페일 신호(P/F)를 제어 로직(230)으로 제공할 수 있다. 제어 로직(230)은 패스/페일 신호(P/F)를 참조함에 의하여 메모리 셀 어레이(210)의 기록 및 독출 동작을 제어할 수 있다.
제어 로직(230)은 메모리 컨트롤러(미도시)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(210)에 데이터를 기록하거나 메모리 셀 어레이(210)로부터 데이터를 독출하기 위한 각종 제어 신호(CTRL_RW)를 출력할 수 있다. 이로써, 제어 로직(230)은 메모리 장치(200) 내의 각종 동작을 전반적으로 제어할 수 있다.
본 발명의 실시예에 따르면, 데이터(DATA)는 인-플레이스 업데이트 방식 또는 아웃-오브-플레이스 업데이트 방식에 따라 메모리 셀 어레이(210)에 기록될 수 있다. 메모리 컨트롤러로부터의 어드레스(ADDR)는 데이터가 기록될 메모리 셀 어레이(210)의 물리적 위치를 나타내는 정보를 포함할 수 있다. 인-플레이스 업데이트 방식이 적용되는 경우, 호스트(미도시)로부터 수신된 논리적 어드레스에 대응하는 물리적 위치에 데이터가 업데이트될 수 있다. 반면에, 아웃-오브-플레이스 업데이트 방식이 적용되는 경우, 호스트(미도시)로부터 수신된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고, 변경된 물리적 어드레스에 대응하는 물리적 위치에 데이터가 업데이트될 수 있다.
한편, 아웃-오브-플레이스 업데이트 방식이 적용되는 경우, 호스트로부터의 기록 요청에 대응하여 데이터의 업데이트 동작과 함께, 데이터가 업데이트될 소거 상태의 블록을 확보하기 위하여 메모리 셀 어레이(210)의 일부 영역에 대한 소거 동작이 더 수행될 수 있다. 또한, 호스트로부터의 논리적 어드레스에 대응하는 물리적 위치가 변경되므로, 논리적 어드레스/물리적 어드레스의 맵핑 정보를 업데이트하기 위한 메타 데이터 기록 동작이 더 수행될 수 있다.
한편, 본 발명의 실시예에 따른 메모리 콘트롤러의 구체적인 동작 예를 나타내면 다음과 같다. 도 3은 도 1의 본 발명의 실시예에 따른 메모리 콘트롤러의 일 구현 예를 나타내는 블록도이다.
도 3을 참조하면, 메모리 콘트롤러(300)는 프로세싱 유닛(processing unit, 310), 호스트 인터페이스(320), 동작 메모리(working memroy, 330), 요청 큐(340), 데이터 큐(350), 업데이트 관리부(360) 및 메모리 인터페이스(370)를 포함할 수 있다. 또한, 동작 메모리(330)는 웨어-레벨링 모듈(331), 배드 블록 관리 모듈(332), 가비지 콜렉션 모듈(333) 및 어드레스 맵핑 테이블(334)을 포함할 수 있다. 도 3에 도시되지는 않았으나 메모리 콘트롤러(300)는 이외에도 다양한 구성들을 더 포함할 수 있으며, 예컨대 메모리 시스템이 채용된 장치의 초기 부팅에 필요한 코드 데이터(code)를 저장하는 ROM(read only memory)이나, 버퍼 메모리 장치를 제어하는 버퍼 메모리 콘트롤러 등을 더 포함할 수 있다. 또한, 메모리 콘트롤러(300)는 호스트로부터의 요청에 따른 메모리 동작을 제어하기 위한 커맨드(CMD)를 생성하는 커맨드 생성 모듈(미도시)을 더 포함할 수 있으며, 예컨대 커맨드 생성 모듈(미도시)은 메모리 인터페이스(370)에 구비될 수 있다.
프로세싱 유닛(310)은 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 메모리 콘트롤러(300)의 전반적인 동작을 제어할 수 있다. 프로세싱 유닛(310)은 메모리 콘트롤러(300)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성될 수 있으며, 상기 펌웨어(firmware)는 동작 메모리(330)에 로딩되어 구동될 수 있다. 메모리 콘트롤러(300)는 외부의 호스트와 다양한 표준 인터페이스들을 통해 통신할 수 있으며, 호스트 인터페이스(320)는 호스트와 메모리 콘트롤러(300) 사이의 인터페이스를 제공한다. 상기 표준 인터페이스는, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), 유니버설 플래시 기억장치(UFS), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함할 수 있다.
한편, 메모리 인터페이스(370)는 메모리 콘트롤러(300)와 메모리 장치 사이의 인터페이스를 제공할 수 있으며, 예컨대 기록 데이터 및 독출 데이터가 메모리 인터페이스(370)를 통해 메모리 장치와 송수신될 수 있다. 또한, 메모리 인터페이스(370)는 커맨드 및 어드레스를 메모리 장치로 제공할 수 있으며, 또한 메모리 장치로부터 각종 정보들을 수신하여 이를 메모리 콘트롤러(300) 내부로 제공할 수 있다.
한편, 동작 메모리(330)에는 메모리 콘트롤러(300)를 제어하기 위한 펌웨어와, 펌웨어 구동에 필요한 메타 데이터 등이 저장될 수 있다. 동작 메모리(330)는 각종 메모리로 구현될 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나로 구현될 수 있다.
동작 메모리(330)에 저장되는 펌웨어에 의해 다양한 기능 블록들이 구성될 수 있으며, 예컨대 동작 메모리(330)에 포함되는 기능 블록으로서 웨어-레벨링 모듈(331)은 메모리 장치의 메모리 셀들에 대한 마모도(wear-level)를 관리한다. 저항성 메모리 셀들은 기록 및 소거 동작 등에 의해 노화(aging)될 수 있으며, 노화된 메모리 셀(또는, 마모된 메모리 셀)은 결함을 야기할 수 있다. 웨어-레벨링 모듈(331)은 메모리 셀 어레이의 소정의 영역 단위로 수행되는 소거 횟수 및/또는 기록 횟수를 관리함으로써 특정 영역이 다른 영역보다 빨리 마모되는 것을 방지한다. 예컨대, 메모리 장치는 페이지(page) 단위로 기록되고, 블록(Block) 단위로 소거될 수 있으며, 상기 웨어-레벨링은 페이지 단위 또는 블록 단위로 관리될 수 있다. 일 예로서, 웨어-레벨링 모듈(331)은 메모리 셀 어레이의 영역들에 대해 균등하기 기록 횟수가 부여되도록 어드레스 맵핑 테이블을 관리할 수 있다.
한편, 배드 블록 관리 모듈(332)은 메모리 장치에 구비되는 다수의 블록들에 대해 결함이 발생된 블록을 관리한다. 예컨대, 전술한 바와 같이 저항성 메모리 셀들은 기록 횟수의 증가 및 소거 횟수의 증가 등에 기인하여 마모도가 증가할 수 있으며, 이에 따라 결함이 발생된 메모리 셀들을 포함하는 블록은 배드 블록으로 처리될 수 있다. 배드 블록 관리 모듈(332)은 배드 블록으로 처리된 블록에 데이터가 기록되는 것이 차단되도록 어드레스 맵핑 테이블을 관리할 수 있다.
한편, 가비지 콜렉션 모듈(333)은 조각난 데이터들이 저장된 블록들을 정리할 수 있다. 예컨대, 저항성 메모리 장치에서 기록 단위보다 소거 단위가 더 크게 설정된 경우, 기록 및 소거 동작이 반복되고 난 후에는 임의의 프리 블록을 이용하여 물리적으로 상이한 위치에 분산된 연속된 데이터들을 동일한 어드레스 영역으로 모으는 작업이 수행될 수 있다.
본 발명의 실시예에 따라 아웃-오브 플레이스 업데이트 방식에 의해 데이터를 기록하는 경우, 호스트로부터의 논리적 어드레스에 대한 데이터는 복수 개의 물리적 어드레스에 대응하는 위치에 기록될 수 있다. 최근에 업데이트된 물리적 위치에 기록된 데이터는 유효 데이터일 수 있는 반면에 다른 물리적 위치에 기록된 데이터는 무효 데이터일 수 있다. 아웃-오브 플레이스 업데이트 방식에서 데이터가 프리 블록에 기록되는 것으로 가정할 때, 데이터가 기록될 어느 하나의 블록(예컨대, 제1 블록)에 유효 데이터가 저장된 경우에는, 상기 유효 데이터를 다른 프리 블록에 복사하고 상기 제1 블록에 대한 소거 동작이 수행된 후, 데이터는 프리 블록에 해당하는 제1 블록에 기록될 수 있다. 가비지 콜렉션 모듈(333)은 상기와 같은 데이터의 복사 및 프리 블록 생성 동작을 관리할 수 있다.
한편, 어드레스 맵핑 테이블(334)은 호스트로부터의 논리적 어드레스와, 이에 대응하여 실제 데이터가 억세스될 물리적 위치를 나타내는 물리적 어드레스 사이의 어드레스 맵핑 정보를 저장할 수 있다. 어드레스 맵핑 정보를 참조함에 의해, 호스트로부터 제공된 논리적 어드레스는 실제 억세스될 메모리 셀의 물리적 위치를 나타내는 물리적 어드레스로 변환될 수 있다. 본 발명의 실시예에 따라, 호스트의 기록 요청에 대해 아웃-오브-업데이트 방식이 선택되어 데이터가 업데이트될 수 있으며, 이때 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경될 수 있다. 변경된 정보는 어드레스 맵핑 테이블(334)에 업데이트 될 수 있다.
또한, 어드레스 맵핑 테이블(334)에서, 전술한 각종 기능 블록들의 관리 결과에 따라 어드레스 맵핑 정보가 변경될 수 있다. 예컨대, 마모도가 증가된 메모리 셀들이나 배드 블록 처리된 메모리 셀들에 기록된 데이터들이 정상 메모리 셀들로 이동되고, 이에 대응하여 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보가 변경될 수 있다. 또한, 가비지 콜렉션 동작에 의해 데이터가 이동되고 난 후 논리적 어드레스와 물리적 어드레스 사이의 어드레스 맵핑 정보가 변경될 수 있다.
한편, 어드레스 맵핑 테이블(334)의 어드레스 맵핑 정보는 도 2의 메모리 셀 어레이(210)의 일정 영역(예컨대, 메타 영역)에 저장되고, 메모리 시스템 구동시 메모리 셀 어레이(210)에 저장된 어드레스 맵핑 정보가 어드레스 맵핑 테이블(334)에 로딩될 수 있다. 또한, 메모리 동작에 따라 어드레스 맵핑 정보가 변경되는 경우, 변경된 어드레스 맵핑 정보는 임의적으로, 또는 주기적으로 상기 메모리 셀 어레이(210)의 일정 영역에 업데이트될 수 있다.
한편, 요청 큐(340)는 호스트로부터 수신된 요청 및 어드레스를 저장할 수 있다. 호스트로부터 제공된 하나 이상의 요청들은 요청 큐(340)에 저장되고, 요청 큐(340)는 선입 선처리 제어 방식(First In First Out, FIFO)에 따라 동작할 수 있다. 또는, 각각의 요청에 대응하는 우선 순위 정보가 제공될 수 있으며, 메모리 시스템 내에 구비될 수 있는 별도의 기능 블록(예컨대 아비터, 미도시)에 의해 상기 우선 순위 정보가 모니터링되고, 모니터링 결과에 따라 요청들의 처리 순서가 결정될 수 있다. 한편, 데이터 큐(350)는 기록 요청에 대응하여 수신되는 데이터들을 저장할 수 있다.
업데이트 관리부(360)는 본 발명의 실시예에 따라, 호스트로부터의 하나 이상의 정보 및/또는 메모리 시스템 내의 하나 이상의 정보를 이용하여, 호스트로부터의 기록 요청에 대한 업데이트 방식을 선택할 수 있다. 호스트로부터의 정보가 이용될 때, 업데이트 관리부(360)는 호스트로부터 제공되는 요청, 데이터, 어드레스(또는, 요청 큐(340) 및 데이터 큐(350)에 저장된 요청, 데이터, 어드레스) 등을 참조하여 기록 요청 개수, 데이터 양 등을 판단하고 이로부터 업데이트 방식을 선택할 수 있다. 또는, 업데이트 관리부(360)는 호스트로부터의 어드레스(예컨대, 논리적 어드레스)와 메모리 시스템 내의 어드레스 맵핑 정보를 참조하고 이로부터 업데이트 방식을 선택할 수 있다. 업데이트 방식을 선택하는 구체적인 예들은 후술될 것이다.
도 4a,b는 메모리 셀 어레이의 일 구현 예를 나타내는 회로도 및 메모리 셀 어레이에 대한 셋/리셋 기록의 일 예를 나타내는 그래프이다.
도 2의 메모리 셀 어레이(210)는 다수의 메모리 셀 영역들을 포함할 수 있다. 메모리 셀들의 집합을 나타내는 메모리 셀 영역은 다양하게 정의가 가능하며, 예컨대, 도 4a에서는 블록(BLK) 단위의 영역에 구비되는 메모리 셀들이 도시된다. 하나의 블록(BLK)은 동일한 워드 라인에 연결되는 메모리 셀들(MC)을 포함하는 페이지(page)를 다수 개 구비할 수 있다.
도 4a를 참조하면, 블록(BLK)은 복수의 워드 라인들(WL0 ∼ WLn), 복수의 비트 라인들(BL0 ∼ BLm) 및 복수의 메모리 셀들(MC)을 포함할 수 있다. 여기서, 워드 라인들(WL)의 개수, 비트 라인들(BL)의 개수 및 메모리 셀들(MC)의 개수는 실시예에 따라 다양하게 변경될 수 있다.
복수의 메모리 셀들(MC)의 각각은 가변 저항(R) 및 선택 소자(D)를 포함할 수 있다. 여기서, 가변 저항(R)은 가변 저항 소자 또는 가변 저항 물질이라고 지칭할 수 있고, 선택 소자(D)는 스위칭 소자라고 지칭할 수 있다.
일 실시예에서, 선택 소자(D)가 복수의 비트 라인들(BL0 ∼ BLm) 중 하나와 가변 저항(R) 사이에 연결되고, 가변 저항(R)이 선택 소자(D)와 복수의 워드 라인들(WL0 ∼ WLn) 중 하나의 사이에 연결될 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 가변 저항(R)은 복수의 비트 라인들(BL0 ∼ BLm) 중 하나와 선택 소자(D)의 사이에 연결되며, 선택 소자(D)는 가변 저항(R)과 복수의 워드 라인들(WL0 ∼ WLn) 중 하나의 사이에 연결될 수 있다.
가변 저항(R)은 인가되는 전기적 펄스에 의해 복수 개의 저항 상태들 중 하나로 변동될 수 있다. 일 실시예에서, 가변 저항(R)은 전류 량에 따라 결정 상태가 변화하는 상변화 물질(phase-change material)을 포함할 수 있다. 상변화 물질은 2개의 원소를 화합한 GaSb, InSb, InSe. Sb2Te3, GeTe, 3개의 원소를 화합한 GeSbTe, GaSeTe, InSbTe, SnSb2Te4, InSbGe, 4개의 원소를 화합한 AgInSbTe, (GeSn)SbTe, GeSb(SeTe), Te81Ge15Sb2S2 등 다양한 종류의 물질을 사용할 수 있다.
이러한 상변화 물질은 비교적 저항이 높은 비정질 상태(amorphous state)와 비교적 저항이 낮은 결정 상태(crystal state)를 가질 수 있다. 이러한 상변화 물질은 전류의 양에 따라 발생되는 주울 열(Joule's heat) 의해 상(phase)이 변화될 수 있다. 그리고, 이와 같은 상변화를 이용하여 데이터를 기입할 수 있다.
한편, 다른 실시예에서, 가변 저항(R)은 상변화 물질 대신, 페로브스카이트(perovskite) 화합물들, 전이 금속 산화물(transition metal oxide), 자성체 물질(magnetic materials), 강자성(ferromagnetic) 물질들 또는 반강자성(antiferromagnetic) 물질들을 포함할 수도 있다.
한편, 도 4b에 도시된 바와 같이, 저항성 메모리 셀들에 대한 기록 동작은 셋 기록 동작과 리셋 기록 동작을 포함할 수 있다. 도 4b에서는 다수의 저항 레벨 산포들 중 가장 큰 산포가 리셋 상태(예컨대, 소거 상태 state 3)를 가지며, 상기 리셋 상태의 메모리 셀들에 대한 셋 기록 동작을 통해 메모리 셀이 셋 상태(state 0 ~ state 2)로 변동될 수 있다.
본 발명의 실시예에 따라, 데이터 기록이 인-플레이스 업데이트 방식에 의해 수행되는 경우, 다수의 메모리 셀들을 포함하는 영역에서 일부의 메모리 셀들에 대해서는 셋 기록이 수행될 수 있으며, 다른 일부의 메모리 셀들에 대해서는 리셋 기록이 수행될 수 있다. 한편, 아웃-오브-플레이스 업데이트 방식에서, 데이터가 리셋 상태의 메모리 셀들을 포함하는 프리 블록에 기록되는 것으로 가정할 때, 메모리 셀들에 대해 셋 기록을 수행함으로써 데이터가 기록될 수 있다. 또는, 아웃-오브-플레이스 업데이트 방식에서 무효 데이터가 저장된 위치에 데이터가 오버-라이트될 때, 셋 기록 및 리셋 기록을 수행함에 의해 데이터가 기록될 수도 있다.
도 5a 내지 도 5c는 도 4a의 메모리 셀(MC)의 변형 예들을 나타내는 회로도들이다.
도 5a를 참조하면, 메모리 셀(MCa)은 가변 저항(Ra)을 포함하고, 가변 저항(Ra)은 비트 라인(BL)과 워드 라인(WL) 사이에 연결될 수 있다. 메모리 셀(MCa)은 비트 라인(BL)과 워드 라인(WL)에 각각 인가되는 전압들에 의해서 데이터를 저장할 수 있다.
도 5b를 참조하면, 메모리 셀(MCb)은 가변 저항(Rb)과 양방향 다이오드(Db)를 포함할 수 있다. 가변 저항(Rb)은 데이터를 저장하기 위한 저항 물질을 포함할 수 있다. 가변 저항(Rb)과 양방향 다이오드(Db)는 워드 라인(WL)과 비트 라인(BL) 사이에 연결될 수 있다. 양방향 다이오드(Db)와 가변 저항(Rb)의 위치는 서로 바뀔 수도 있다. 양방향 다이오드(Db)를 통해서 비선택 저항 셀에 흐르게 되는 누설 전류를 차단할 수 있다.
도 5c를 참조하면, 메모리 셀(MCc)은 가변 저항(Rc)과 트랜지스터(TR)를 포함할 수 있다. 트랜지스터(TR)는 워드 라인(WL)의 전압에 따라 가변 저항(Rc)에 전류를 공급 또는 차단하는 선택 소자, 즉, 스위칭 소자일 수 있다. 도 5c의 실시예에서는, 워드 라인(WL) 이외에, 가변 저항(Rc)의 양 단의 전압 레벨을 조절하기 위한 소스 라인(SL)이 추가로 구비될 수 있다. 메모리 셀(MCc)은 워드 라인(WL)에 의해서 구동되는 트랜지스터(TR)의 온/오프 여부에 따라 선택 또는 비선택될 수 있다.
도 6 및 도 7은 인-플레이스 업데이트 및 아웃-오브-플레이스 업데이트 동작의 일 예를 나타내는 블록도이다. 도 6 및 도 7에서는 메모리 시스템이 다수 개의 채널들(Ch A, Ch B) 및 상기 채널들(Ch A, Ch B)에 연결되는 다수 개의 메모리 칩들을 포함하고, 각각의 메모리 칩은 다수 개의 셀 블록들을 포함하는 예가 도시된다. 예컨대, 8 개의 메모리 칩들 중 4 개의 메모리 칩들이 A 채널(Ch A)에 연결되고, 상기 A 채널(Ch A)에 연결된 메모리 칩들이 제1 내지 제4 뱅크들(Bank 0 ~ Bank 3)을 구성하는 예가 도시된다. 또한, 8 개의 메모리 칩들 중 다른 4 개의 메모리 칩들이 B 채널(Ch B)에 연결되고, 상기 B 채널(Ch B)에 연결된 메모리 칩들이 제1 내지 제4 뱅크들(Bank 0 ~ Bank 3)을 구성하는 예가 도시된다. 즉, 서로 다른 채널에 연결된 적어도 두 개의 메모리 칩들이 동일한 뱅크에 포함될 수 있다.
메모리 장치에서 뱅크(BANK)는 다양한 방식에 따라 정의될 수 있으며, 예컨대 서로 다른 뱅크(BANK)의 메모리 셀들은 개별적으로 억세스되거나, 서로 다른 뱅크(BANK)에 관련된 데이터는 서로 다른 별도의 포트를 통해 입출력될 수 있다. 또는, 서로 다른 뱅크(BANK)의 메모리 셀들에 대해서는 서로 다른 메모리 동작이 수행될 수 있으며, 예컨대 일부의 뱅크(BANK)에 대해서는 기록 동작이 수행되고, 이와 함께 다른 일부의 뱅크(BANK)에 대해서는 독출 동작이 수행될 수 있다.
호스트로부터 제공되는 논리적 어드레스는, 전술한 도 3에서의 어드레스 변환 테이블에 저장된 어드레스 맵핑 정보에 따라 물리적 어드레스로 변환될 수 있다. 기 저장된 어드레스 맵핑 정보에 따라, 호스트에 의해 제공되는 논리적 어드레스(LA 0 ~ LA 7)는 B 채널(Ch B)에 연결된 제1 뱅크(Bank 0)에 해당하는 메모리 칩(예컨대, 제5 메모리 칩, C5)이 포함하는 셀 블록(예컨대, 제1 셀 블록, BLK 1)을 지시하는 물리적 어드레스로 변환될 수 있다. 예컨대, 논리적 어드레스(LA 0 ~ LA 7)는 물리적 어드레스(PA 100 ~ PA 107)로 변환될 수 있다.
도 6에 도시된 바와 같이, 상기 논리적 어드레스(LA 0 ~ LA 7)에 대응하는 제5 메모리 칩(C5)의 물리적 어드레스(PA 100 ~ PA 107)에 데이터들(Data 0 ~ Data 7)이 기록되어 있으며, 상기 논리적 어드레스(LA 0 ~ LA 7)에 대응하는 영역에 새로운 데이터들(Data 0' ~ Data 7')을 기록할 것이 요청될 수 있다. 인-플레이스 업데이트 방식이 선택된 경우, 기 저장된 어드레스 맵핑 정보에 따라 상기 논리적 어드레스(LA 0 ~ LA 7)는 물리적 어드레스(PA 100 ~ PA 107)로 변환되며, 이에 따라 물리적 어드레스(PA 100 ~ PA 107)에 해당하는 영역에 새로운 데이터들(Data 0' ~ Data 7')이 업데이트 된다. 호스트에 의해 지시되는 영역에 데이터가 업데이트되었으므로, 논리적 어드레스(LA 0 ~ LA 7)와 물리적 어드레스(PA 100 ~ PA 107) 사이의 어드레스 맵핑 정보가 변동되지 않는다.
한편, 도 7에 도시된 바와 같이, 상기 논리적 어드레스(LA 0 ~ LA 7)에 대응하는 영역에 새로운 데이터들(Data 0' ~ Data 7')을 기록할 것이 요청될 수 있다. 아웃-오브-플레이스 업데이트 방식이 선택된 경우, 상기 논리적 어드레스(LA 0 ~ LA 7)에 대응하는 물리적 위치가 변경될 수 있으며, 예컨대 도 7에 도시된 바와 같이 상기 논리적 어드레스(LA 0 ~ LA 7)에 대응하여 다수 개의 메모리 칩들(C 1 ~ C 8)의 메모리 셀들이 선택될 수 있다. 또한, 새로운 데이터들(Data 0' ~ Data 7')은 다수 개의 메모리 칩들(C 1 ~ C 8)에 분산되어 업데이트 될 수 있으며, 이와 같은 논리적 어드레스와 물리적 어드레스 사이의 변경된 어드레스 맵핑 정보는 어드레스 맵핑 테이블에 업데이트될 수 있다.
한편, 아웃-오브-플레이스 업데이트 방식에서, 새로운 데이터들(Data 0' ~ Data 7')은 메모리 칩들(C 1 ~ C 8)의 새로운 블록에 업데이트될 수 있다. 어드레스 맵핑 정보가 변경됨에 따라, 호스트로부터의 논리적 어드레스(LA 0 ~ LA 7)에 대응하는 물리적 위치가 변동될 수 있으며, 예컨대 논리적 어드레스(LA 3)은 제4 메모리 칩(C4)에 포함되는 블록의 물리적 어드레스(PA 200)에 맵핑될 수 있으며, 또한 논리적 어드레스(LA 7)은 제8 메모리 칩(C8)에 포함되는 블록의 물리적 어드레스(PA 300)에 맵핑될 수 있다. 이에 따라, 기존에 논리적 어드레스(LA 0 ~ LA 7)에 맵핑되었던 물리적 어드레스(PA 100 ~ PA 107)에 저장된 데이터는 무효(Invalid) 데이터에 해당한다. 또한, 기록 요청된 새로운 데이터들(Data 0' ~ Data 7')은 변경된 어드레스 맵핑 정보에 대응하는 물리적 위치에 기록된다.
도 8은 도 3의 메모리 콘트롤러의 업데이트 관리부를 구현하는 일 예를 나타내는 블록도이다. 상기 업데이트 관리부의 동작 예를 도 3 및 도 8을 참조하여 설명하면 다음과 같다.
도 8에 도시된 바와 같이, 업데이트 관리부(360)는 외부 호스트로부터의 정보 및 메모리 시스템 내부의 정보 중 적어도 하나를 이용하여 호스트로부터의 기록 요청에 대응하는 업데이트 방식을 선택할 수 있다. 업데이트 관리부(360)는 호스트로부터의 요청에 관련된 제1 정보(Info_Req), 데이터에 관련된 제2 정보(Info_Data), 논리적 어드레스(ADDR_L)를 참조하여 그 선택 결과(Sel_Update)를 발생할 수 있다. 또한, 업데이트 관리부(360)는 메모리 시스템 내부의 정보로서 맵핑 정보(Info_Map) 및 기타 각종 정보들(예컨대, 배드 블록 정보, 수명 정보 등, Info_others)을 참조하여 그 판단 결과(Sel_Update)를 발생할 수 있다. 상기 제1 정보(Info_Req)는 요청의 종류를 나타내는 정보이고 제2 정보(Info_Data)는 하나의 기록 요청에 대응하는 데이터의 양을 나타내는 정보일 수 있으며, 상기 제1 및 제2 정보(Info_Req, Info_Data)는 호스트로부터 직접 제공되는 정보일 수 있으며, 또는 메모리 시스템 내에서 호스트로부터의 패킷을 디코딩하여 생성된 정보일 수 있다.
업데이트 관리부(360)는 상기와 같은 업데이트 방식 선택 동작을 위하여 각종 기능 블록들을 포함할 수 있다. 예컨대, 업데이트 관리부(360)는 요청 판단부(361), 데이터 판단부(362), 어드레스 판단부(363) 및 업데이트 선택부(364)를 포함할 수 있다. 요청 판단부(361)는 호스트로부터 제공된 기록 요청의 개수를 판단하고, 그 판단 결과를 제공할 수 있다. 예컨대, 호스트로부터 다수의 요청들이 수신됨에 따라 상기 다수의 요청들은 요청 큐(340)에 저장될 수 있다. 요청 판단부(361)는 호스트로부터 제공된 다수의 요청들 중 기록 요청을 모니터링하고, 기록 요청의 개수를 판단한 결과를 제공할 수 있다.
한편, 데이터 판단부(362)는 호스트로부터 기록 요청에 대응하여 수신된 데이터(예컨대, 기록 데이터)를 모니터링하고, 데이터의 양(또는, 사이즈)을 판단하여 그 판단 결과를 제공할 수 있다. 예컨대, 호스트로부터 기록 요청들에 대응하는 기록 데이터들이 데이터 큐(350)에 저장될 수 있다. 데이터 판단부(362)는 데이터 큐(350)에 저장된 기록 데이터를 모니터링하고, 데이터의 양을 판단한 결과를 제공할 수 있다.
어드레스 판단부(363)는 호스트로부터 제공된 논리적 어드레스(ADDR_L)에 대한 분석 동작을 수행할 수 있으며, 분석 결과에 따라 호스트에 의해 억세스 요청되는 메모리 셀들의 물리적 위치를 판단하고 그 판단 결과를 제공할 수 있다. 예컨대, 호스트로부터 제공되는 논리적 어드레스(ADDR_L)는 상기 요청 큐(340) 또는 데이터 큐(350)에 저장되거나, 또는 다른 별도의 큐에 저장될 수 있다. 어드레스 판단부(363)는 논리적 어드레스(ADDR_L)를 분석한 결과에 따라 억세스 요청되는 메모리 칩들의 개수를 판단하고, 그 판단 결과를 제공할 수 있다. 예컨대, 논리적 어드레스(ADDR_L)와 맵핑 정보(Info_Map)를 참조함에 의해 상기 논리적 어드레스(ADDR_L)에 대응하는 메모리 셀들의 물리적 위치가 판별될 수 있으며, 이에 따라 데이터가 기록될 메모리 칩들의 개수가 판단될 수 있다.
이외에도, 어드레스 판단부(363)는 각종 정보들(Info_others)을 참조하여 그 판단 결과를 발생할 수 있다. 예컨대, 각종 정보들(Info_others)로서 각각의 메모리 칩에 구비되는 마모도가 높은 메모리 셀들, 배드 블록, 수명이 얼마 남지 않은 블록 등의 어드레스에 관련된 정보들이 참조될 수 있다. 어드레스 판단부(363)는 논리적 어드레스(ADDR_L)와 각종 정보들(Info_others)을 참조한 결과에 따라, 논리적 어드레스(ADDR_L)에 의해 지시되는 메모리 셀들(또는, 메모리 셀들이 포함되는 블록들 또는 메모리 칩들)의 특성을 판단한 결과를 제공할 수 있다.
업데이트 선택부(364)는 상기 각종 판단 결과에 기반하여 호스트로부터의 기록 요청에 대응하는 업데이트 방식을 선택하고 이에 따른 선택 결과(Sel_Update)를 발생할 수 있다. 상기 선택 결과(Sel_Update), 호스트로부터의 기록 요청에 대해 아웃-오브-플레이스 업데이트 방식이 선택되는 경우, 논리적 어드레스(ADDR_L)에 대응하는 메모리 셀들의 물리적 위치가 변동되고, 변경된 어드레스 맵핑 정보가 동작 메모리(330)에 업데이트될 수 있다. 또한, 프로세싱 유닛(310)의 제어 하에서, 아웃-오브-플레이스 업데이트 방식에 따라 데이터가 기록되도록 커맨드 및 어드레스가 메모리 장치로 제공될 수 있다. 아웃-오브-플레이스 업데이트 방식에서 데이터가 프리 블록에 기록되는 경우, 프리 블록을 확보하기 위하여 프리 블록을 생성하기 위한 동작이 더 수행될 수 있다.
반면에, 상기 선택 결과(Sel_Update), 호스트로부터의 기록 요청에 대해 인-플레이스 업데이트 방식이 선택되는 경우, 논리적 어드레스(ADDR_L)는 동작 메모리(330)에 기 저장된 어드레스 맵핑 정보에 따라 물리적 어드레스로 변환되고, 데이터는 상기 물리적 어드레스가 지시하는 메모리 셀들(기존의 데이터가 저장된 메모리 셀들)에 업데이트 될 수 있다.
한편, 업데이트 선택부(364)는 호스트로부터의 하나의 기록 요청에 대응하여 인-플레이스 업데이트 및 아웃-오브-플레이스 업데이트 방식을 함께 선택할 수 있다. 예컨대, 기록 요청에 대응하는 데이터 중 일부는 인-플레이스 업데이트 방식에 따라 기록될 수 있으며, 다른 일부의 데이터는 아웃-오브-플레이스 업데이트 방식에 따라 기록될 수 있다.
이하에서는, 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식의 선택 기준과 관련된 다양한 예들이 설명된다.
전술한 바와 같이, 인-플레이스 업데이트 방식에 따라 데이터를 기록하는 경우, 소거 동작, 가비지 콜렉션 동작 및 메타 데이터 기록 등의 오버헤드 없이 기록 요청을 처리할 수 있다. 그러나, 호스트로부터 요청된 기록 요청이 특정한 메모리 칩에 집중되는 경우, 다수의 메모리 칩들로 구성된 스토리지의 성능을 최대화할 수 없다. 반면에, 아웃-오브-플레이스 업데이트 방식에 따라 데이터를 기록하는 경우, 추가적인 오버헤드가 발생될 수는 있으나 데이터가 다수의 메모리 칩들에 분산되어 기록될 수 있으므로 병렬성(Parallelism)을 최대화할 수 있다.
이하, 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택하는 실시예들을 도 9 내지 도 13을 참조하여 설명한다. 도 9 내지 도 13은 본 발명의 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 9에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S11). 상기 패킷은 메모리 동작에 관련된 각종 정보로서 요청, 어드레스 및 데이터를 포함할 수 있다. 이외에도, 상기 패킷은 메모리 동작에 관련된 각종 다른 정보들을 포함할 수 있다. 상기 패킷은 호스트에서 인코딩되어 생성되고, 호스트와 메모리 시스템 사이의 직렬 통신을 통해 전송될 수 있다. 그러나, 본 발명의 실시예는 이에 국한될 필요는 없으며, 호스트와 메모리 시스템은 서로 다른 전송 라인을 통해 요청, 어드레스, 데이터 및 각종 정보들을 송수신할 수 있다.
메모리 시스템은 호스트로부터 각종 신호들을 수신하고 저장할 수 있다. 예컨대, 메모리 시스템은 호스트로부터 순차적으로 또는 연속적으로 수신되는 요청들 및 데이터들을 큐에 저장할 수 있다. 호스트로부터 제공되는 요청들은 기록, 독출 및 소거 등 각종 종류의 요청을 포함할 수 있다. 메모리 시스템은 호스트로부터 제공되는 요청의 종류를 분석하고, 이로부터 기록 요청의 개수를 검출할 수 있다(S12).
검출된 기록 요청의 개수는 소정의 임계값(예컨대, 제1 임계값)과 비교될 수 있다(S13). 비교 결과, 검출된 기록 요청의 개수가 제1 임계값 이상인 경우, 기록될 데이터의 양이 상대적으로 많은 것으로 판단될 수 있으며, 이에 따라 메모리 시스템에 구비되는 다수의 메모리 칩들에 데이터가 병렬하게 기록될 수 있도록 아웃-오브-플레이스 업데이트 방식이 선택되어 기록 동작이 수행된다. 예컨대, 메모리 시스템 내에 포함되는 어드레스 맵핑 테이블의 맵핑 정보를 변경함으로써, 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스를 변경한다(S14). 또한, 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S15).
반면에, 검출된 기록 요청의 개수가 제1 임계값 미만인 경우, 기록될 데이터의 양이 상대적으로 적은 것으로 판단될 수 있으며, 이에 따라 데이터 기록의 응답성을 향상하고 메모리 시스템의 수명 단축을 감소하기 위해 인-플레이스 업데이트 방식이 선택되어 기록 동작이 수행된다. 예컨대, 메모리 시스템 내에 포함되는 어드레스 맵핑 테이블에 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 데이터가 업데이트될 수 있다(S16).
도 10은 데이터에 관련된 정보를 참조하여 업데이트 방식을 선택하는 예를 도시한다.
도 10에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S21). 메모리 시스템은 호스트로부터 순차적으로 또는 연속적으로 패킷들을 수신하고, 패킷들에 포함된 데이터들은 큐에 저장될 수 있다.
메모리 시스템은 호스트로부터 제공되는 데이터를 분석함으로써 기록 요청되는 데이터의 양을 검출할 수 있다(S22). 검출된 데이터의 양은 소정의 임계값(예컨대, 제2 임계값)과 비교될 수 있으며(S23), 비교 결과 검출된 데이터의 양이 소정의 임계값 이상인 경우에는 다수의 메모리 칩들에 데이터가 병렬하게 기록될 수 있도록 아웃-오브-플레이스 업데이트 방식이 선택되어 기록 동작이 수행된다. 이에 따라, 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고(S24), 또한, 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S25).
반면에, 검출된 데이터의 양이 소정의 임계값 미만인 경우에는 데이터 기록의 응답성을 향상하고 메모리 시스템의 수명 단축을 감소하기 위해 인-플레이스 업데이트 방식이 선택될 수 있으며, 이에 따라 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S26).
도 11a,b는 어드레스에 관련된 정보를 참조하여 업데이트 방식을 선택하는 예를 도시한다.
도 11a에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S311). 메모리 시스템은 호스트로부터 순차적으로 또는 연속적으로 패킷들을 수신하고, 패킷들에 포함된 어드레스(예컨대, 논리적 어드레스)를 추출하여 추출된 어드레스를 분석할 수 있다.
호스트로부터의 논리적 어드레스가 검출되고(S312), 또한 메모리 시스템 내에 저장되는 어드레스 맵핑 정보를 참조함에 의하여, 호스트로부터의 논리적 어드레스에 의해 업데이트될 메모리 칩의 개수가 검출될 수 있다(S313). 예컨대, 논리적 어드레스에 대응하여 실제 데이터가 기록될 위치를 나타내는 물리적 어드레스가 어드레스 맵핑 테이블로부터 독출될 수 있으며, 상기 독출된 물리적 어드레스를 분석함에 의해 억세스가 수행될 메모리 칩의 개수가 검출될 수 있다.
검출된 메모리 칩의 개수는 소정의 임계값(예컨대, 제3_1 임계값)과 비교될 수 있다(S314). 비교 결과, 억세스될 메모리 칩의 개수가 소정의 임계값 이상인 경우, 이는 호스트로부터 기록 요청되는 데이터들이 다수의 메모리 칩들에 분산되어 기록됨을 나타낼 수 있으며, 이 경우 데이터 기록의 응답성을 향상하고 메모리 시스템의 수명 단축을 감소하기 위해 인-플레이스 업데이트 방식이 선택될 수 있다. 이에 따라, 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S315).
반면에, 억세스될 메모리 칩의 개수가 소정의 임계값 미만인 경우, 이는 호스트로부터 기록 요청되는 데이터들이 소수의 메모리 칩들에 집중되게 기록됨을 나타낼 수 있으며, 이 경우 다수의 메모리 칩들에 데이터가 병렬하게 기록될 수 있도록 아웃-오브-플레이스 업데이트 방식이 선택될 수 있다. 이에 따라, 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고(S316), 또한, 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S317).
도 11b는 어드레스 검출을 이용하여 업데이트 방식을 선택하는 다른 예를 나타낸다. 도 11b에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S321). 메모리 시스템은 호스트로부터 순차적으로 또는 연속적으로 패킷들을 수신하고, 패킷들에 포함된 다수의 요청들 및 어드레스들(예컨대, 논리적 어드레스들)은 메모리 시스템 내부(예컨대, 메모리 콘트롤러 내부)의 큐에 저장될 수 있다. 상기 큐에 저장된 다수의 요청들 및 어드레스들을 검출할 수 있으며(S322), 이에 따라 상기 다수의 요청들 중 기록 요청들이 판단될 수 있으며, 또한 기록 요청이 수행될 메모리 장치(또는, 메모리 칩)이 판단될 수 있다.
한편, 메모리 시스템은 다수 개의 메모리 칩들을 포함할 수 있으며, 각각의 메모리 칩은 호스트로부터의 요청에 대응하는 커맨드 및 어드레스를 그 내부의 큐에 저장할 수 있다. 각각의 메모리 칩은 기록 커맨드에 대응하여 데이터 기록을 완료한 후 이를 나타내는 정보를 메모리 콘트롤러로 제공할 수 있다. 이에 따라, 메모리 콘트롤러는 다수의 메모리 칩들 각각에 대한 요청 처리 상태를 검출할 수 있다(S323).
상기와 같은 검출 결과에 따라, 각각의 메모리 칩에 수행될 기록 요청 개수가 판단될 수 있다(S324). 예컨대, 메모리 콘트롤러 내의 큐에 저장된 정보를 이용하여, 하나의 칩에서 수행될 기록 요청의 개수가 판별될 수 있다. 또는, 메모리 콘트롤러 내의 큐에 저장된 정보와 함께, 각각의 메모리 칩의 요청 처리 상태를 이용함으로써, 하나의 칩에서 수행될 기록 요청의 개수가 판별될 수 있다. 즉, 어느 하나의 메모리 칩에서 향후 수행될 기록 요청의 개수는, 호스트로부터 지시된 요청의 개수와 메모리 칩에서 아직 수행되지 않은 요청의 개수를 합한 값에 상응할 수 있다.
다수의 메모리 칩들 각각에 대한 기록 요청의 개수는 상이할 수 있다. 본 발명의 실시예에 따라, 상기 다수의 메모리 칩들 각각에 대한 기록 요청의 개수를 검출한 결과에 기반하여 업데이트 방식이 선택될 수 있다. 예컨대, 가장 많은 기록 요청이 수행될 메모리 칩과, 가장 적은 기록 요청이 수행될 메모리 칩이 선택되고, 그 요청 개수의 차이값(Max_chip - Min_chip)이 산출되고, 산출된 값이 임계값(예컨대, 제3_2 임계값)과 비교될 수 있다(S325). 요청 개수의 차이값(Max_chip - Min_chip)이 크다는 것은, 일부의 메모리 칩들에 기록 요청이 집중되고 있음을 나타낼 수 있다.
이에 따라, 요청 개수의 차이값(Max_chip - Min_chip)이 임계값 이상일 때 아웃-오브-플레이스 업데이트 방식이 선택될 수 있으며, 이에 따라, 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고(S326), 또한, 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S327). 예컨대, 다수의 기록 요청들 중 적어도 일부의 기록 요청을 다른 메모리 칩들(예컨대, 요청 개수가 적은 메모리 칩들)로 할당함으로써, 메모리 칩들에 할당된 요청의 개수가 고르게 분포될 수 있다. 반면에, 요청 개수의 차이값(Max_chip - Min_chip)이 임계값 미만인 경우에는, 전체적으로 모든 메모리 칩들에 기록 요청이 고르게 분포됨을 나타낼 수 있으며, 이 경우 인-플레이스 업데이트 방식이 선택될 수 있다. 이에 따라, 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S328).
전술한 실시예의 메모리 시스템의 동작에 따르면, 메모리 칩으로 요청들이 고르게 분포되었는지를 판별하고, 판별 결과에 따라 인-플레이스 업데이트와 아웃-오브-플레이스 업데이트 방식을 적절히 조절하여 이용할 수 있다. 예컨대, 기록 요청이 많이 할당된 메모리 칩에 대해서는, 상기 할당된 메모리 칩에 인-플레이스 업데이트 방식으로 데이터를 기록함으로써 일부의 기록 요청을 처리하고, 다른 일부의 기록 요청은 다른 메모리 칩들에 할당함으로써 아웃-오브-플레이스 업데이트 방식에 따라 데이터가 기록될 수 있다.
또한, 전술한 실시예의 메모리 시스템의 동작은 다양하게 변형이 가능하다. 예컨대, 메모리 콘트롤러 내에 저장된 요청 및 논리적 어드레스 정보를 검출함에 의해 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택할 수 있다. 이후, 요청을 다수의 메모리 칩들에 할당함에 있어서, 상기 메모리 칩들의 요청 처리 상태를 검출한 결과에 기반하여 요청의 할당 동작을 조절할 수도 있다.
도 12는 마모도, 수명 및 배드 블록 정보 등 각종 정보를 참조하여 업데이트 방식을 선택하는 예를 도시한다.
도 12에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S41). 메모리 시스템은 호스트로부터 순차적으로 또는 연속적으로 패킷들을 수신하고, 패킷들에 포함된 논리적 어드레스를 검출할 수 있다(S42). 또한, 메모리 시스템 내에 포함되는 각종 정보들을 검출함으로써, 메모리 시스템 내의 메모리 셀들에 대해 소정의 영역 별로 마모도, 배드 블록 및 수명에 관련된 정보를 확인할 수 있다(S43). 예컨대, 메모리 셀들의 마모도, 배드 블록, 수명 등을 관리하기 위하여, 페이지 또는 블록 별로 기록 횟수를 검출하고 그 정보가 저장되고, 또한 블록 별 소거 횟수를 검출하고 그 정보가 저장될 수 있다. 메모리 시스템은 호스트로부터의 논리적 어드레스에 대응하는 페이지/블록을 확인하고, 상기 마모도, 배드 블록, 수명 등에 관련된 정보를 확인함으로써 억세스 요청되는 페이지/블록의 상태, 그리고 메모리 시스템 내의 다른 페이지/블록의 상태 등을 분석할 수 있다.
상기와 같은 확인 결과에 따라 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식이 선택될 수 있다(S44). 일 예로서, 호스트로부터의 논리적 어드레스에 대응하는 위치의 페이지나 블록의 기록 횟수가 많을 때 상기 페이지/블록의 마모도가 높은 것으로 판별되고, 이 때 상기 페이지/블록에 데이터가 업데이트되는 경우 상기 마모도 증가에 따른 데이터 신뢰도가 저하될 수 있으므로, 이 경우 아웃-오브-플레이스 업데이트 방식을 선택함으로써 데이터가 호스트로부터 지시된 영역과 다른 영역에 기록될 수 있다.
또는, 호스트로부터의 논리적 어드레스에 대응하는 위치의 블록이 배드 블록에 해당할 때, 아웃-오브-플레이스 업데이트 방식을 선택함으로써 데이터가 배드 블록 이외의 다른 블록에 기록될 수 있다. 또는, 메모리 시스템의 수명이 저하된 것으로 판별된 경우, 블록에 대한 소거 동작 횟수가 증가되어 수명이 더 저하되는 것을 방지하기 위해, 때 호스트로부터 기록 요청에 대해 인-플레이스 업데이트 방식이 선택될 수 있다.
메모리 시스템의 마모도, 수명 및 배드 블록 정보를 기반으로 하여 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택하는 예는 전술한 실시예에 국한될 필요가 없다. 즉, 본 발명의 실시예들을 다양하게 변형될 수 있으며, 예컨대 기록 요청되는 블록의 수명이 저하된 것으로 판별된 경우에는 상기 블록에 대한 소거 횟수가 증가하지 않도록 데이터를 인-플레이스 업데이트 방식에 따라 상기 블록에 기록되도록 메모리 동작이 설정되어도 무방하다.
도 13은 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택함에 있어서, 선택을 위한 조건에 대해 우선 순위가 적용되는 예를 나타낸다. 도 13에서는 억세스될 메모리 칩의 개수에 대해 우선 순위가 적용되는 예가 도시되나 본 발명의 실시예는 이에 국한될 필요가 없다. 전술한 실시예들 중 다른 다양한 정보에 대해 우선 순위가 적용되어 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식이 선택되어도 무방하다.
도 13에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S51). 또한, 메모리 시스템은 호스트로부터 수신된 패킷들에 포함된 논리적 어드레스를 검출할 수 있다(S52).
검출된 논리적 어드레스와 메모리 시스템 내에 저장되는 어드레스 맵핑 정보를 참조함에 의하여 호스트로부터의 논리적 어드레스에 의해 업데이트될 메모리 칩의 개수가 검출될 수 있다(S53). 또한, 검출된 메모리 칩의 개수는 소정의 임계값(예컨대, 제4 임계값)과 비교될 수 있다(S54).
검출 결과, 억세스될 메모리 칩의 개수가 소정의 임계값 이상인 경우, 호스트로부터 기록 요청되는 데이터들이 다수의 메모리 칩들에 분산되어 기록될 수 있으므로 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S55). 즉, 억세스될 메모리 칩의 개수가 소정의 임계값 이상인 경우에는 다른 조건에 무관하게 인-플레이스 업데이트 방식이 선택될 수 있다.
반면에, 억세스될 메모리 칩의 개수가 소정의 임계값 미만인 경우, 억세스될 메모리 칩의 개수에 관련된 정보 이외의 다른 정보들을 더 참조하여 인-플레이스 업데이트 방식에 따라 데이터를 기록할 것인지를 판단할 수 있다. 예컨대, 전술한 실시예에서와 유사하게 호스트로부터 제공된 기록 요청의 개수, 호스트로부터 제공된 데이터의 양, 메모리 시스템 내의 메모리 셀들의 마모도/수명에 관련된 정보들 중 적어도 하나를 검출하고(S56), 상기 검출 결과에 따라 호스트로부터의 기록 요청에 대해 인-플레이스 업데이트 방식에 따라 데이터를 기록할 것인지를 판단한다(S57). 판단 결과, 기록 요청의 개수가 적거나 데이터 양이 적은 경우 인-플레이스 업데이트 방식이 선택될 수 있다. 또한 호스트로부터의 논리적 어드레스에 대응하는 물리적 위치의 메모리 셀들의 마모도가 작거나 메모리 시스템의 수명이 저하된 경우에는 인-플레이스 업데이트 방식이 선택될 수 있다. 이에 따라 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S55).
반면에, 상기와 같은 확인 결과에 따라 아웃-오브-플레이스 업데이트 방식이 선택되는 경우에는, 메모리 시스템 내에 저장되는 어드레스 맵핑 정보를 변경함으로써, 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고(S58), 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S59).
도 14a,b는 본 발명의 다른 실시예에 따른 메모리 시스템, 메모리 시스템에 구비되는 업데이트 관리부의 일 구현 예를 나타내는 블록도이다.
도 14a에 도시된 바와 같이, 메모리 시스템(400)은 호스트(401)와 통신함으로써, 호스트(401)로부터 요청(Request), 논리적 어드레스(ADDR_L) 및 기록 데이터(Data_W)를 수신할 수 있다. 또한, 메모리 시스템(400)은 호스트(401)로부터 각종 정보들을 수신할 수 있으며, 예컨대 메모리 시스템(400)은 우선 순위 정보(PR) 및 태그(TAG)를 수신할 수 있다. 도 14a에서는 상기 각종 정보들(PR, TAG)이 호스트(401)와 메모리 시스템(400) 사이의 별도의 통신 채널을 통해 제공되는 것으로 도시되었으나, 본 발명의 실시예는 이에 국한될 필요는 없다. 예컨대, 우선 순위 정보(PR)는 요청 채널을 통해 제공될 수 있으며 또한 태그(TAG)는 기록 데이터(Data_W) 채널을 통해 제공될 수 있다. 또는, 전술하였던 바와 같이, 호스트로부터의 각종 정보들이 패킷으로 인코딩되고, 패킷 단위의 정보가 호스트(401)와 메모리 시스템(400) 사이에서 송수신될 수 있다.
본 발명의 실시예에 따라, 메모리 시스템(400)이 호스트(401)로부터의 기록 요청에 응답하여 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택함에 있어서 상기 각종 정보들(PR, TAG)이 더 이용될 수 있다.
메모리 시스템(400)은 업데이트 관리부(410)를 포함할 수 있다. 도 14b를 참조하면, 업데이트 관리부(410)는 우선 순위 검출부(411), 태그 검출부(412), 데이터 분석부(413) 및 업데이트 선택부(414)를 포함할 수 있다. 본 발명의 실시예에 따라, 업데이트 관리부(410)는 호스트(401)로부터 제공된 각종 정보들(PR, TAG)과, 메모리 시스템(400) 내부로부터의 각종 정보들 중 적어도 하나를 참조하여 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택하고, 그 선택 결과(Sel_Update)를 출력할 수 있다.
업데이트 관리부(410)는 기록 데이터(Data_W), 호스트(401)로부터의 논리적 어드레스(ADDR_L)에 대응하는 영역으로부터 독출된 독출 데이터(Data_R), 호스트(401)로부터의 각종 정보들(PR, TAG), 메모리 시스템(400) 내의 상태 정보(Info_Idle) 중 적어도 하나를 참조하여 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택할 수 있다. 예컨대, 우선 순위 검출부(411)는 우선 순위 정보(PR)를 검출하고 그 검출 결과를 발생할 수 있다. 또한, 태그 검출부(412)는 또한 태그(TAG)를 검출하고 그 검출 결과를 발생할 수 있다.
또한, 데이터 분석부(413)는 기록 데이터(Data_W), 독출 데이터(Data_R), 기록 데이터(Data_W)와 독출 데이터(Data_R)를 비교한 결과(Res_COMP) 중 적어도 하나를 이용한 분석을 수행하고 그 결과를 발생할 수 있다. 예컨대, 데이터 분석부(413)는 기록 데이터(Data_W)와 독출 데이터(Data_R)의 비트 값을 비교하고, 실제 데이터 값이 변경될 비트의 개수를 분석하여 그 결과를 발생할 수 있다. 또는, 데이터 분석부(413)는 기록 데이터(Data_W)와 독출 데이터(Data_R)의 비트 값을 비교한 결과(Res_COMP)를 수신하고, 이로부터 실제 데이터 값이 변경될 비트의 개수를 분석하여 그 결과를 발생할 수 있다.
업데이트 선택부(414)는 우선 순위 검출부(411), 태그 검출부(412) 및 데이터 분석부(413)의 각종 검출 결과 및 분석 결과를 참조하여 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택할 수 있으며, 또한 업데이트 선택부(414)는 메모리 시스템(400) 내부의 상태로서 유휴 상태를 나타내는 정보(Info_Idle)를 더 참조하여 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택할 수 있다.
이하에서는, 도 14a,b에 도시된 실시예에 따라 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식이 선택적으로 적용되는 예들이 설명된다. 도 15 내지 도 17은 본 발명의 다른 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 15에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S61). 메모리 시스템은 호스트로부터 순차적으로 또는 연속적으로 패킷들을 수신하고, 패킷들에 포함된 우선 순위 정보 및/또는 태그를 검출할 수 있다(S62). 상기 우선 순위 정보 및/또는 태그를 검출한 결과에 따라, 호스트로부터의 기록 요청이 제1 조건에 해당하는지가 판별될 수 있다(S63).
우선 순위 정보 및 태그는 호스트로부터의 각각의 요청에 대응하여 메모리 시스템으로 제공될 수 있다. 상기 우선 순위 정보는 기록 요청 또는 독출 요청의 긴급도 또는 중요도 등에 따라 설정될 수 있으며, 예컨대 기록 요청이 빠른 응답을 요하는 경우에는 해당 기록 요청에 대응하는 우선 순위 정보가 높은 값을 갖도록 설정되어 메모리 시스템으로 제공될 수 있다. 또는, 태그는 기록 요청에 수반되어 제공되는 데이터의 종류 및 중요도 등에 따라 설정될 수 있으며, 예컨대 기록 요청되는 데이터가 메모리 장치의 특정 영역에 기록되는 기 설정된 종류의 데이터인 경우, 상기 태그는 해당 데이터의 종류를 나타내는 정보를 포함할 수 있다. 또는, 기록 요청되는 데이터의 특성으로서, 상기 데이터가 빈번하게 업데이트되는 특성을 갖는지 또는 한번 기록되고 난 후 업데이트가 발생되지 않는 특성을 갖는 지를 나타내는 태그가 제공될 수 있다.
검출 결과가 제1 조건에 해당하는 경우, 호스트로부터의 기록 요청에 대응하여 아웃-오브-플레이스 업데이트 방식이 선택되고, 이에 따라 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고(S64), 또한, 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S65). 예컨대, 기록 요청에 대응하는 우선 순위 정보가 낮거나 데이터가 메모리 장치의 다수의 영역들에 분산되어 기록될 수 있는 데이터인 경우, 상기 기록 요청에 대응하여 아웃-오브-플레이스 업데이트 방식이 선택될 수 있다.
반면에, 상기 검출 결과가 제2 조건에 해당하는 경우, 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S66). 예컨대, 기록 요청에 대응하는 우선 순위 정보가 높거나 데이터가 메모리 장치의 기 설정된 영역에 기록될 데이터인 경우, 상기 기록 요청에 대응하여 인-플레이스 업데이트 방식이 선택될 수 있다. 또는, 데이터의 특성(예컨대, 업데이트 빈도에 관련된 특성)을 판단한 결과에 따라 어느 하나의 업데이트 방식이 선택될 수 있다.
도 16은 기록 데이터와 독출 데이터를 비교한 결과에 따라 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택하는 예를 나타낸다.
도 16에 도시된 바와 같이, 메모리 시스템은 호스트로부터 패킷을 수신할 수 있다(S71). 메모리 시스템은 호스트로부터 순차적으로 또는 연속적으로 패킷들을 수신하고, 패킷들에 포함된 논리적 어드레스를 추출할 수 있다. 또한, 추출된 논리적 어드레스와 메모리 시스템 내에 포함되는 어드레스 맵핑 테이블의 맵핑 정보를 참조함에 의하여, 호스트로부터의 기록 요청에 따라 억세스될 영역이 판별될 수 있다.
상기 메모리 시스템이 저항성 메모리 셀들을 포함하는 저항성 메모리 시스템으로 구현되는 경우, 새로이 기록될 데이터는 이전 데이터가 기록된 메모리 셀들에 오버-라이트 될 수 있다. 이 때, 각각의 메모리 셀에 대해, 기존에 기록된 데이터와 새로이 기록될 데이터의 비트 값이 동일한 경우, 해당 메모리 셀에 대해서는 기록 동작이 스킵될 수 있다. 즉, 인-플레이스 업데이트 방식에 따라 새로운 데이터가 기존 데이터에 오버-라이트될 때, 데이터 업데이트 수행 전에 데이터의 비교 동작을 위해서 억세스될 영역의 데이터가 독출될 수 있다(S72).
기록 데이터와 독출 데이터가 비교될 수 있으며(S73), 상기 비교 동작에 따라 실제 변경될 비트의 개수가 검출될 수 있다. 변경될 비트의 개수는 소정의 임계값(예컨대, 제5 임계값)과 비교될 수 있다(S74). 비교 결과 변경될 비트의 개수가 소정의 임계값 이상인 경우, 실제 데이터가 기록될 메모리 셀들의 개수가 많음을 나타낼 수 있으며, 이 경우 기록될 데이터 양이 많으므로 아웃-오브-플레이스 업데이트 방식이 선택될 수 있다. 이에 따라, 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고(S75), 또한, 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S76).
반면에, 변경될 비트의 개수가 소정의 임계값 미만인 경우, 이는 실제 데이터가 기록될 메모리 셀들의 개수가 상대적으로 적음을 나타낼 수 있으며, 이 경우 기록될 데이터 양이 적으므로 인-플레이스 업데이트 방식이 선택될 수 있다. 이에 따라, 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S77).
도 17은 메모리 시스템의 내부 상태에 따라 업데이트 방식이 선택되는 예를 도시한다. 메모리 시스템의 내부 상태로서, 메모리 시스템이 유휴 상태로 진입하였는지가 판단될 수 있다(S81). 메모리 시스템의 유휴 상태는 다양하게 정의가 가능하며, 예컨대 유휴 상태에서 호스트와 메모리 시스템 사이의 통신이 중단될 수 있다. 또는, 유휴 상태는, 메모리 시스템이 호스트로부터 요청을 수신하더라도 이에 따른 메모리 동작을 수행하지 않는 상태를 나타낼 수 있다.
메모리 시스템이 유휴 상태로 진입함에 따라, 메모리 시스템은 유휴 상태에서 내부 기록 동작 모드로 진입할 수 있다(S82). 내부 기록 동작은 다양한 원인에 의해 수행될 수 있으며, 예컨대 유휴 상태에서 프리 블록을 확보하기 위한 가비지 콜렉션 동작이나 데이터 저장 특성이 저하된 메모리 셀들의 데이터를 재기록하는 등의 다양한 종류의 내부 기록 동작이 수행될 수 있다.
아웃-오브-플레이스 업데이트 방식에 따라 호스트로부터 제공된 데이터의 기록 위치가 변동되는 경우, 기존에 기록된 데이터는 무효한(invalid) 데이터에 해당하며, 이에 따라 어느 하나의 블록에서 유효한(valid) 데이터와 무효한(invalid) 데이터가 혼재될 수 있다. 가비지 콜렉션 동작 동안 어느 하나의 블록(예컨대, 제1 블록)에 존재하는 유효한(valid) 데이터는 다른 블록(예컨대, 제2 블록)에 기록될 수 있으며, 이에 따라 유효한(valid) 데이터가 존재하지 않는 제1 블록에 대해서는 소거 동작이 수행됨에 따라 제1 블록은 프리 블록이 될 수 있다.
또는, 유휴 상태에서 데이터 신뢰도가 저하된 메모리 셀들을 검출하고, 상기 검출된 메모리 셀들에 대해 데이터를 재기록함으로써 데이터의 충실도를 향상할 수 있다. 본 발명의 실시예에 따라, 유휴 상태에서 수행될 내부 기록 동작의 종류를 확인하기 위해 내부 기록 동작에 관련된 각종 정보를 검출하고(S83), 검출 결과가 소정의 조건(제2 조건)에 해당하는지가 판별될 수 있다(S84).
유휴 상태에서 수행되는 내부 기록 동작은 다양한 종류를 포함하고, 상기 다양한 종류의 내부 기록 동작은 서로 다른 업데이트 방식에 따라 수행될 수 있다. 예컨대, 가비지 콜렉션 동작과 같은 아웃-오브-플레이스 업데이트 방식이 적용될 필요가 있다고 판단되는 경우에는(또는, 제2 조건을 만족하는 경우에는) 논리적 어드레스와 물리적 어드레스 사이의 어드레스 맵핑 정보가 변경되고(S85), 또한, 내부 기록 동작을 위한 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S86). 반면에, 내부 기록 동작의 종류가 제2 조건을 만족하지 않는 경우에는 인-플레이스 업데이트 방식이 선택될 수 있으며, 이 경우 내부 기록 동작을 수행함에 있어서 기 저장된 어드레스 맵핑 정보에 따라 데이터가 기록될 수 있다(S87).
도 18a,b는 본 발명의 또 다른 실시예에 따른 메모리 시스템을 나타내는 블록도 및 플로우차트이다. 도 18a에는, 메모리 시스템(500)과 통신하는 호스트(501)가 더 도시된다. 호스트(501)는 각종 요청(Req), 논리적 어드레스(ADDR_L), 기록 데이터(Data_W)를 메모리 시스템(500)으로 제공할 수 있으며, 또한 기록 요청에 대응하여 선택된 업데이트 방식에 관련된 업데이트 정보(Info_Update)를 메모리 시스템(500)으로 제공할 수 있다. 또한, 업데이트 방식의 선택에 참조되기 위해, 어드레스 정보(Info_ADD)가 메모리 시스템(500)에서 호스트(501)로 제공될 수 있다.
본 발명의 실시예에 따라, 호스트가 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택하고, 메모리 시스템(500)은 호스트로부터의 업데이트 정보(Info_Update)에 따라 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식으로 데이터를 기록할 수 있다. 예컨대, 호스트(501)는 소프트웨어 계층에 해당하는 어플리케이션(5011) 및 파일 시스템(5012)을 포함하며, 또한 본 발명의 실시예에 따라 업데이트 관리 동작을 수행하기 위하여 데이터 특성 판별부(5013) 및 업데이트 관리부(5014)를 더 포함할 수 있다. 또한, 메모리 시스템(500)은 프로세싱 유닛(510), 어드레스 맵핑 테이블(520) 및 메모리 셀 어레이(530)를 포함할 수 있다.
호스트(501)는 전술한 실시예들 중 적어도 하나와 동일 또는 유사한 방식에 따라 인-플레이스 업데이트 방식에 따른 데이터 기록을 요청할 것인지 또는 아웃-오브-플레이스 업데이트 방식에 따른 데이터 기록을 요청할 것인지를 선택할 수 있다. 어플리케이션(5011)은 메모리 시스템(500)에 대한 기록 요청 또는 독출 요청을 발생하며, 파일 시스템(5012)은 상기 기록 요청 또는 독출 요청을 수신하고, 메모리 시스템(500)으로 제공될 커맨드 및 논리적 어드레스를 생성할 수 있다.
데이터 특성 판별부(5013)는 호스트(501)에서 메모리 시스템(500)으로 제공될 데이터에 대한 특성을 판별하는 동작을 수행하며, 전술한 실시예에서와 동일 또는 유사하게 상기 데이터의 중요도, 종류 및 긴급도 등을 판별하여 그 결과를 발생할 수 있다.
업데이트 관리부(5014)는 호스트(501) 내부의 각종 정보 및 메모리 시스템(500)으로부터 제공되는 어드레스 정보(Info_ADD) 중 적어도 하나를 이용하여, 호스트(501)에 의해 제공되는 기록 요청에 대응하는 업데이트 방식을 선택할 수 있다. 상기 어드레스 정보(Info_ADD)는 다양한 정보들을 포함할 수 있으며, 예컨대 어드레스 맵핑 정보, 마모도/배드 블록/수명 등에 관련된 정보를 포함할 수 있다. 예컨대, 메모리 시스템(500)으로 제공되는 기록 요청의 개수, 메모리 시스템(500)으로 제공되는 데이터의 양, 논리적 어드레스와 상기 어드레스 정보(Info_ADD)를 통해 판별된 억세스될 메모리 칩의 개수 등을 판단하여 인-플레이스 업데이트 방식 또는 아웃-오브-플레이스 업데이트 방식을 선택할 수 있다. 프로세싱 유닛(510)의 제어 하에서, 메모리 시스템(500)은 호스트(501)로부터의 기록 요청에 대해 호스트(501)로부터 제공된 업데이트 정보(Info_Update)를 참조하여 데이터를 인-플레이스 업데이트 방식 또는 아웃-오브-플레이스 업데이트 방식에 따라 메모리 셀 어레이(530)에 기록한다.
도 18b는 도 18a에 도시된 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 18b에 도시된 바와 같이, 메모리 시스템은 호스트로부터 기록 요청 및 이에 대응하는 논리적 어드레스를 수신한다(S91). 또한, 전술한 바와 같이 호스트는 그 내부 정보 및/또는 메모리 시스템으로부터 제공된 정보를 참조하여 업데이트 방식을 선택하고, 선택 결과에 따른 업데이트 정보를 제공할 수 있다. 메모리 시스템은 호스트로부터 업데이트 정보를 수신할 수 있다(S92).
메모리 시스템은 상기 업데이트 정보가 아웃-오브-플레이스 업데이트 방식을 나타내는 제1 값을 갖는지 판별할 수 있다(S93). 판별 결과, 상기 업데이트 정보가 제1 값에 해당하는 경우 호스트로부터의 기록 요청에 수반되는 데이터는 아웃-오브-플레이스 업데이트 방식에 따라 메모리 셀들에 기록된다. 예컨대, 호스트로부터 제공된 논리적 어드레스에 대응하는 물리적 어드레스가 변경되고(S94), 또한, 호스트로부터의 데이터는 변경된 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S95). 반면에, 상기 업데이트 정보가 제1 값에 해당하지 않는 경우, 호스트로부터의 기록 요청에 수반되는 데이터는 인-플레이스 업데이트 방식에 따라 메모리 셀들에 기록된다. 예컨대, 데이터는 기 저장된 어드레스 맵핑 정보에 따라 호스트로부터 제공된 논리적 어드레스에 맵핑된 기존 물리적 어드레스에 대응하는 영역에 업데이트될 수 있다(S96).
도 19a,b,c는 본 발명의 실시예에 따라 호스트와 메모리 시스템 사이에 송수신되는 신호들을 나타내는 파형도이다.
도 19a에 도시된 바와 같이, 호스트는 메모리 시스템으로 클록(CLK), 요청(REQ), 데이터(DATA) 및 어드레스(예컨대, 논리적 어드레스, ADDR)를 제공할 수 있다. 기록(Write) 요청이 메모리 시스템에서 수신됨에 따라, 이에 대응하는 기록 데이터가 메모리 시스템으로 제공되고, 또한 기록 요청되는 데이터가 저장될 논리적 위치를 나타내는 어드레스(ADDR)가 메모리 시스템으로 제공될 수 있다. 어드레스(ADDR)는 다양한 형태로 제공될 수 있으며, 예컨대 논리적 어드레스의 시작을 나타내는 정보(Start LA)와 함께, 기록될 데이터의 사이즈를 나타내는 사이즈 정보(Size Info)가 제공될 수 있다. 전술한 실시예들에 따라, 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택함에 있어서 호스트로부터의 어드레스(ADDR) 정보가 이용될 수 있다.
한편, 도 19b에 도시된 바와 같이, 호스트는 메모리 시스템으로 우선순위 정보(PR) 및 태그 정보(TAG)를 더 제공할 수 있다. 우선순위 정보(PR)는 다양한 형태로 제공될 수 있으며, 예컨대 하이(High) 또는 로우(Low) 정보에 따라 우선순위가 판별될 수 있다. 또한, 태그 정보(TAG)에 따라 데이터의 다양한 종류가 판별될 수 있으며, 하나 이상의 비트 값이 상기 태그 정보(TAG)를 구성할 수 있다. 태그 정보(TAG)의 값에 따라 데이터의 특성(예컨대, 데이터가 시스템 데이터인지 또는 유저 데이터인지, 예컨대 기록되는 데이터의 업데이트 빈도 특성)이 판별될 수 있다. 전술한 실시예들에 따라, 업데이트 방식이 선택됨에 있어서 상기 우선순위 정보(PR) 및/또는 태그 정보(TAG)가 더 이용될 수 있다.
한편, 도 19c에 도시된 바와 같이, 호스트는 메모리 시스템으로 업데이트 정보(Update_Info)를 더 제공할 수 있다. 전술한 실시예에 따라 호스트는 스스로 업데이트 방식을 선택하고 이를 나타내는 정보를 업데이트 정보(Update_Info)로서 메모리 시스템으로 제공할 수 있다. 메모리 시스템은 상기 업데이트 정보(Update_Info)의 상태에 따라, 기록 요청되는 데이터를 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식에 따라 기록할 수 있다. 또는, 메모리 시스템은 하나의 기록 요청에 대응하여 수신되는 데이터를 인-플레이스 업데이트 방식과 아웃-오브-플레이스 업데이트 방식을 함께 이용하여 기록할 수 있다.
도 20 및 도 21은 본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작 예를 나타내는 블록도이다.
도 20에서는 메모리 시스템의 메모리 셀 어레이의 특정 영역이 지정되고, 상기 특정 지정 영역에 대한 기록 동작은 어느 하나의 업데이트 방식이 고정되는 예가 도시된다. 도 20에 도시된 메모리 시스템의 구성은 도 6 및 도 7에 도시된 메모리 시스템의 구성과 동일 또는 유사하므로, 이에 대한 구체적인 설명은 생략된다.
호스트로부터의 특정 논리적 어드레스에 대응하는 메모리 시스템의 하나 이상의 영역(이하, 인-플레이스 영역으로 지칭됨)은 인-플레이스 업데이트 방식으로 데이터가 기록되도록 기 설정될 수 있다. 예컨대, 논리적 어드레스(LA 0 ~ LA 7)는 제5 메모리 칩(C5)에 구비되는 제1 셀 블록(BLK 1)의 물리적 어드레스(PA 100 ~ PA 107)에 맵핑되고, 상기 물리적 어드레스(PA 100 ~ PA 107)에 대응하는 영역은 인-플레이스 업데이트 방식에 의해 데이터가 기록될 수 있다. 이에 따라, 논리적 어드레스(LA 0 ~ LA 7)에 대응하여 새로운 데이터들(Data 0' ~ Data 7')의 기록이 요청되면, 기 저장된 어드레스 맵핑 정보에 따라 물리적 어드레스(PA 100 ~ PA 107)에 대응하는 영역의 데이터가 업데이트된다.
반면에, 다른 특정 논리적 어드레스에 대응하는 메모리 시스템의 하나 이상의 영역(이하, 아웃-오브-플레이스 영역으로 지칭됨)은 아웃-오브-플레이스 업데이트 방식으로 데이터가 기록되도록 기 설정될 수 있다. 예컨대, 현재 저장된 어드레스 맵핑 정보에 따르면 논리적 어드레스(LA 8 ~ LA 15)는 제8 메모리 칩(C8)에 구비되는 제2 셀 블록(BLK 2)의 물리적 어드레스(PA 300 ~ PA 307)에 맵핑되어 있으며, 논리적 어드레스(LA 8 ~ LA 15)에 대응하여 새로운 데이터들(Data 8' ~ Data 15')의 기록이 요청되면 논리적 어드레스(LA 8 ~ LA 15)에 대응하는 물리적 위치가 변동될 수 있다. 예컨대, 논리적 어드레스(LA 11)는 제4 메모리 칩(C4)에 구비되는 셀 블록의 물리적 어드레스(PA 200)에 맵핑되고, 새로운 데이터(Data 11')는 상기 물리적 어드레스(PA 200)에 대응하는 영역에 기록될 수 있다. 또한, 논리적 어드레스(LA 15)는 제8 메모리 칩(C8)에 구비되는 셀 블록의 물리적 어드레스(PA 400)에 맵핑되고, 새로운 데이터(Data 15')는 상기 물리적 어드레스(PA 400)에 대응하는 영역에 기록될 수 있다.
한편, 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식이 고정되지 않은 논리적 어드레스에 대해서는 전술한 다양한 실시예들에 따라 판단 동작이 수행되고, 그 결과로서 어느 하나의 업데이트 방식이 선택될 수 있다.
도 21에서는 하나의 기록 요청에 대응하는 데이터들 중 일부는 인-플레이스 업데이트 방식에 따라 기록되고, 다른 일부는 아웃-오브-플레이스 업데이트 방식에 따라 기록되는 예가 도시된다. 예컨대, 기록 요청과 함께, 논리적 어드레스(LA 1 ~ LA 7) 및 기록 데이터(Data 0' ~ Data 7')가 수신될 수 있으며, 기 저장된 맵핑 정보에 따라 논리적 어드레스(LA 0 ~ LA 7)는 제5 메모리 칩(C5)의 제3 셀 블록(BLK 3)의 물리적 어드레스(PA 100 ~ PA 107)에 맵핑될 수 있다. 업데이트 방식 선택 결과에 따라 일부의 기록 데이터(Data 0' ~ Data 3')는 인-플레이스 업데이트 방식에 따라 기록되고, 다른 일부의 기록 데이터(Data 4' ~ Data 7')는 아웃-오브-플레이스 업데이트 방식에 따라 기록될 수 있다.
이에 따라, 논리적 어드레스(LA 0 ~ LA 3)에 대응하는 데이터(Data 0' ~ Data 3')는 기 저장된 어드레스 맵핑 정보에 따라 제5 메모리 칩(C5)의 물리적 어드레스(PA 100 ~ PA 103)에 대응하는 영역에 기록될 수 있다. 반면에, 논리적 어드레스(LA 4 ~ LA 7)에 대응하는 데이터(Data 4' ~ Data 7')는 다른 메모리 블록들(예컨대, 제1 내지 제4 메모리 칩들의 블록들, C1 ~ C4)에 기록될 수 있다. 예컨대, 어드레스 맵핑 정보가 변경됨에 따라 논리적 어드레스(LA 4)는 물리적 어드레스(PA 201)에 맵핑될 수 있으며, 논리적 어드레스(LA 7)는 물리적 어드레스(PA 501)에 맵핑될 수 있다. 상기 데이터(Data 4' ~ Data 7')는 변경된 어드레스 맵핑 정보에 따른 물리적 어드레스(PA 201, PA 301, PA 401, PA 501)가 지시하는 영역에 기록될 수 있다.
도 22는 본 발명의 실시예에 따른 메모리 시스템을 메모리 카드 시스템(600)에 적용한 예를 나타내는 블록도이다. 상기 메모리 시스템은 저항성 메모리 시스템인 것으로 가정한다.
도 22를 참조하면, 메모리 카드 시스템(600)은 호스트(610) 및 메모리 카드(620)를 포함할 수 있다. 호스트(610)는 호스트 컨트롤러(611) 및 호스트 접속부(612)를 포함할 수 있다. 메모리 카드(620)는 카드 접속부(621), 카드 컨트롤러(622) 및 메모리 시스템(623)을 포함할 수 있다. 이 때, 메모리 시스템(623)은 도 1 내지 도 21에 도시된 실시예들을 이용하여 구현될 수 있다. 이에 따라 메모리 시스템(623)은 메모리 콘트롤러 및 저항성 메모리 장치를 포함할 수 있으며, 호스트(610)로부터의 기록 요청에 대해 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택하고, 선택 결과에 따라 호스트(610)로부터의 논리적 어드레스에 대응하는 기존의 위치에 데이터를 기록하거나, 호스트(610)로부터의 논리적 어드레스에 대응하는 물리적 어드레스를 변경하고 변경된 위치에 데이터를 기록할 수 있다.
호스트(610)는 메모리 카드(620)에 데이터를 기록하거나, 메모리 카드(620)에 저장된 데이터를 독출할 수 있다. 호스트 컨트롤러(611)는 커맨드(CMD), 호스트(610) 내의 클럭 발생기(미도시)에서 발생한 클럭 신호(CLK) 및 데이터(DATA)를 호스트 접속부(612)를 통해 메모리 카드(620)로 전송할 수 있다.
카드 컨트롤러(622)는 카드 접속부(621)를 통해 수신된 요청에 응답하여, 카드 컨트롤러(622) 내에 있는 클럭 발생기(미도시)에서 발생한 클럭 신호에 동기하여 데이터를 메모리 시스템(623)에 제공할 수 있다. 메모리 시스템(623)은 호스트(610)로부터 전송된 데이터를 저장할 수 있다.
메모리 카드(920)는 컴팩트 플래시 카드(CFC: Compact Flash Card), 마이크로 드라이브(Microdrive), 스마트 미디어 카드(SMC: Smart Media Card) 멀티미디어 카드(MMC: Multimedia Card), 보안 디지털 카드(SDC: Security Digital Card), 유니버설 플래시 기억장치(UFS), 메모리 스틱(Memory Stick), 및 USB 플래시 메모리 드라이버 등으로 구현될 수 있다.
도 23은 본 발명의 실시예들에 따른 메모리 시스템을 SSD 시스템(700)에 적용한 예를 나타내는 블록도이다.
도 23을 참조하면, SSD 시스템(700)은 호스트(710) 및 SSD(720)를 포함할 수 있다. SSD(720)는 신호 커넥터(signal connector)를 통해 호스트(710)와 신호를 주고 받으며, 전원 커넥터(power connector)를 통해 전원을 입력 받는다. SSD(720)는 SSD 컨트롤러(721), 보조 전원 장치(722) 및 복수의 메모리 시스템들(723, 724, 725)을 포함할 수 있다. 이에 따라 복수의 메모리 시스템들(723, 724, 725) 각각은 메모리 콘트롤러 및 저항성 메모리 장치를 포함할 수 있으며, 호스트(710)로부터의 기록 요청에 대해 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식을 선택하고, 선택 결과에 따라 호스트(710)로부터의 논리적 어드레스에 대응하는 기존의 위치에 데이터를 기록하거나, 호스트(710)로부터의 논리적 어드레스에 대응하는 물리적 어드레스를 변경하고 변경된 위치에 데이터를 기록할 수 있다.
도 24는 본 발명의 실시예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템(800)을 나타내는 블록도이다. 상기 메모리 시스템은 저항성 메모리 시스템인 것으로 가정한다.
도 24를 참조하면, 컴퓨팅 시스템(800)은 메모리 시스템(810), 프로세서(820), RAM(830), 입출력 장치(840) 및 전원 장치(850) 포함할 수 있다. 또한, 메모리 시스템(810)은 메모리 장치(811) 및 메모리 콘트롤러(812)를 포함할 수 있다. 한편, 도 24에는 도시되지 않았지만, 컴퓨팅 시스템(800)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다. 컴퓨팅 시스템(800)은 퍼스널 컴퓨터로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(personal digital assistant) 및 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
프로세서(820)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(820)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 프로세서(820)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(860)를 통하여 RAM(830), 입출력 장치(840) 및 메모리 시스템(810)과 통신을 수행할 수 있다. 이 때, 메모리 시스템(810) 및/또는 RAM(830)은 도 1 내지 도 21에 도시된 실시예들의 저항성 메모리를 이용하여 구현될 수 있다.
일 실시예에 따라, 프로세서(820)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
RAM(830)는 컴퓨팅 시스템(800)의 동작에 필요한 데이터를 저장할 수 있다. 전술한 바와 같이, RAM(830)는 본 발명의 실시예에 따른 저항성 메모리 장치(RRAM)가 적용될 수 있으며, 또는 다른 메모리로서 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 엠램(MRAM) 등이 RAM(830)으로 이용될 수 있다.
입출력 장치(840)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(850)는 컴퓨팅 시스템(800)의 동작에 필요한 동작 전압을 공급할 수 있다.
도 25a,b는 도 1의 메모리 장치의 일 구현예를 나타내는 구조도 및 회로도이다. 예컨대, 메모리 장치(120)의 메모리 셀 어레이(121)의 메모리 셀들이 3D 구조에 따라 배치되는 예가 도시된다.
도 25a,b를 참조하면, 메모리 셀 어레이(121)는 복수의 메모리 블록들(BLK1~BLKz)을 포함할 수 있다. 각각의 메모리 블록은 3차원 구조(또는 수직 구조)를 가질 수 있다. 또한, 각각의 메모리 블록은 기판과 수직한 방향을 따라 신장된 복수의 셀 스트링들을 포함할 수 있다. 하나의 메모리 블록의 셀 스트링들은 복수의 비트 라인들, 하나 이상의 스트링 선택 라인들 및 복수의 워드 라인들에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)의 셀 스트링들은 복수의 비트 라인들(BL)을 공유할 수 있다.
도 25b는 도 25a의 메모리 블록들을 구현하는 일 예를 나타내며, 설명의 편의상 도 25b에는 다이오드나 트랜지스터 등으로 구현될 수 있는 선택 소자의 도시는 생략된다.
도 25b을 참조하면, 메모리 셀 어레이(121)는 3차원 형태로 적층되는 복수의 메모리 블록들(BLK1 ~ BLK3)을 포함할 수 있다. 또한, 메모리 셀 어레이(121)는 z 축 방향으로 나란히 연장되는 복수의 로컬 비트 라인들(LBL1~LBL4) 및 z축 방향에 수직한 y 축 방향으로 나란히 연장되는 복수의 로컬 워드 라인들(LWL1~LWL4)을 포함할 수 있다. 또한, 로컬 비트 라인들(LBL1~LBL4)은 글로벌 비트 라인들(GBL1~GBL4)에 연결될 수 있다.
제1 메모리 블록(BLK1)을 참조하면, 메모리 셀 어레이(121)의 메모리 셀들은 로컬 워드 라인들(LWL1~LWL4) 및 로컬 비트 라인들(LBL1~LBL4) 사이에 연결된다. 메모리 셀들은 로컬 워드 라인들(LWL1~LWL4) 및/또는 로컬 비트 라인들(LBL1~LBL4)에 인가되는 전류(또는 전압)에 의해서 기록 또는 독출 동작이 수행될 수 있다. 또한, 3차원 형태로 적층되는 복수의 메모리 블록들(BLK1 ~ BLK3)에 대한 데이터 기록 동작에 있어서, 전술한 실시예들에 따른 각종 검출 및 분석 동작을 통해 인-플레이스 업데이트 또는 아웃-오브-플레이스 업데이트 방식에 따라 데이터가 기록될 수 있다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.

Claims (21)

  1. 메모리 시스템의 동작방법에 있어서,
    하나 이상의 기록 요청과, 이에 대응하는 논리적 어드레스 및 데이터를 수신하는 단계;
    상기 수신된 기록 요청, 논리적 어드레스 및 데이터 중 적어도 하나를 분석한 결과를 임계값과 비교하는 단계; 및
    상기 비교 결과에 기반하여, 제1 업데이트 방식 또는 제2 업데이트 방식에 따라 데이터를 기록하는 단계를 구비하고,
    상기 제1 업데이트 방식이 선택될 때, 기 저장된 어드레스 맵핑 정보에 따라 상기 논리적 어드레스에 대응하는 물리적 어드레스가 지시하는 영역에 상기 데이터가 기록되고,
    상기 제2 업데이트 방식이 선택될 때, 상기 논리적 어드레스에 대응하는 물리적 어드레스의 정보가 변경되고, 상기 변경된 물리적 어드레스가 지시하는 영역에 상기 데이터가 기록되며,
    상기 메모리 시스템은 다수 개의 메모리 칩들을 포함하며,
    상기 비교하는 단계는, 상기 수신된 논리적 어드레스에 의해 기록 요청되는 메모리 칩의 개수를 제1 임계값과 비교하거나, 각각의 메모리 칩에 할당된 기록 요청의 개수를 판단하고, 가장 많은 기록 요청이 할당된 메모리 칩의 기록 요청의 개수와 가장 적은 기록 요청이 할당된 메모리 칩의 기록 요청의 개수의 차이값을 제2 임계값과 비교하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  2. 제1항에 있어서,
    상기 하나 이상의 기록 요청이 상기 메모리 시스템의 요청 큐에 저장되고,
    상기 비교하는 단계는, 상기 저장된 기록 요청의 개수를 제3 임계값과 비교하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  3. 제2항에 있어서,
    상기 기록 요청의 개수가 상기 제3 임계값 미만일 때 상기 제1 업데이트 방식이 선택되고, 상기 기록 요청의 개수가 상기 제3 임계값 이상일 때 상기 제2 업데이트 방식이 선택되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  4. 제1항에 있어서,
    하나 이상의 기록 요청에 대응하는 데이터가 상기 메모리 시스템의 데이터 큐에 저장되며,
    상기 비교하는 단계는, 상기 저장된 데이터의 양을 제3 임계값과 비교하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 메모리 시스템에 구비되는 셀 영역들의 마모도, 배드 블록 및 수명 정보들 중 적어도 하나를 분석하는 단계를 더 구비하고,
    상기 비교 결과 및 상기 분석 결과에 기반하여, 상기 기록 요청에 대해 상기 제1 업데이트 방식 또는 제2 업데이트 방식이 선택되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  9. 제1항에 있어서,
    상기 메모리 시스템은, 상기 기록 요청에 대한 우선 순위 정보 및 상기 데이터의 특성을 나타내는 태그를 더 수신하고,
    상기 수신된 우선 순위 정보 및 태그 중 적어도 하나를 분석하는 단계를 더 구비하며,
    상기 비교 결과 및 상기 분석 결과에 기반하여, 상기 기록 요청에 대해 상기 제1 업데이트 방식 또는 제2 업데이트 방식이 선택되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  10. 제1항에 있어서,
    상기 수신된 논리적 어드레스에 대응하는 물리적 어드레스가 지시하는 영역의 데이터를 독출하는 단계; 및
    상기 독출된 데이터와 상기 수신된 데이터의 비트 값을 비교하는 단계를 더 구비하고,
    상기 비교 결과 및 상기 비트 값의 비교 결과에 기반하여, 상기 기록 요청에 대해 상기 제1 업데이트 방식 또는 제2 업데이트 방식이 선택되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  11. 제1항에 있어서,
    유휴 상태로 진입하는 단계; 및
    상기 유휴 상태에서 다수 종류들의 내부 기록 동작을 수행하는 단계를 더 구비하고,
    일부 종류의 내부 기록 동작은 상기 제1 업데이트 방식에 따라 수행되고, 다른 일부 종류의 내부 기록 동작은 상기 제2 업데이트 방식에 따라 수행되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  12. 다수의 메모리 칩들을 포함하는 메모리 시스템의 동작방법에 있어서, 각각의 메모리 칩은 오버라이트가 가능한 다수의 저항성 메모리 셀들을 포함하고,
    호스트로부터 하나 이상의 기록 요청, 대응하는 데이터 및 적어도 하나의 제1 정보를 수신하는 단계;
    상기 호스트로부터 수신된 논리적 어드레스에 의해 기록 요청되는 메모리 칩의 개수를 임계값과 비교하는 단계;
    상기 호스트로부터 수신된 제1 정보, 상기 메모리 시스템 내부의 제2 정보 및 상기 비교 결과 중 적어도 하나에 기반하여 상기 하나 이상의 기록 요청에 대한 업데이트 방식을 선택하는 단계; 및
    상기 선택 결과에 따라, 상기 데이터를 어느 하나의 메모리 칩에 기록하거나, 상기 데이터를 적어도 두 개의 메모리 칩들에 분산하여 기록하는 단계를 구비하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  13. 제12항에 있어서,
    상기 적어도 하나의 제1 정보는 상기 기록 요청에 수반되는 상기 논리적 어드레스를 포함하고,
    상기 수신된 기록 요청의 개수, 상기 수신된 데이터의 양 및 상기 논리적 어드레스에 의해 지시되는 메모리 칩의 개수 중 적어도 하나에 기반하여 상기 업데이트 방식이 선택되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  14. 제12항에 있어서,
    상기 제2 정보는 상기 메모리 시스템의 마모도, 수명 및 배드 블록에 관련된 정보들 중 적어도 하나를 포함하고,
    상기 제2 정보를 분석한 결과에 따라 상기 업데이트 방식이 선택되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  15. 제12항에 있어서,
    제1 기록 요청에 대응하는 제1 논리적 어드레스가 지시하는 제1 셀 영역의 저항성 메모리 셀들은 이전 데이터에 대응하는 제1 저항 레벨 산포를 가지고,
    상기 기록하는 단계는, 상기 선택 결과에 따라 상기 데이터를 상기 제1 셀 영역에 오버-라이트하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 다수의 저항성 메모리 장치들; 및
    메모리 컨트롤러를 구비하고,
    상기 저항성 메모리 장치들 각각은, 다수의 블록들을 포함하는 메모리 셀 어레이를 포함하고, 기존에 저장된 어드레스 맵핑 정보에 따라 논리적 어드레스에 대응하는 제1 영역에 데이터를 기록하거나, 상기 제1 영역과는 상이한 제2 영역에 데이터를 기록하고,
    상기 메모리 컨트롤러는,
    상기 메모리 컨트롤러의 전반적인 동작을 제어하는 프로세싱 유닛;
    호스트로부터 기록 요청, 이에 대응하는 기록 데이터 및 상기 논리적 어드레스를 수신하는 호스트 인터페이스;
    상기 수신된 논리적 어드레스에 의해 기록 요청되는 메모리 칩의 개수를 제1 임계값과 비교하고, 상기 호스트로부터의 기록 요청에 응답하여 인 플레이스 업데이트 동작 또는 아웃 오브 플레이스 업데이트 동작 중 어느 하나를 선택하는 업데이트 관리부; 및
    상기 인 플레이스 업데이트 동작이 선택될 때 상기 논리적 어드레스에 대응하여 상기 제1 영역을 지시하는 제1 물리적 어드레스를 상기 저항성 메모리 장치로 출력하고, 상기 아웃 오브 플레이스 업데이트 동작이 선택될 때 상기 논리적 어드레스에 대응하여 변경된 어드레스 맵핑 정보에 따라 상기 제2 영역을 지시하는 제2 물리적 어드레스를 출력하는 메모리 인터페이스를 구비하고,
    상기 인 플레이스 업데이트 동작은 상기 제1 영역의 데이터를 상기 기록 데이터로 오버라이팅하는 동작을 포함하고,
    상기 아웃 오브 플레이스 업데이트 동작은 상기 기록 요청, 상기 논리적 어드레스, 상기 기록 데이터 중 적어도 하나를 분석한 결과를 제2 임계값과 비교함에 기반하여 상기 기록 데이터를 상기 제2 영역에 기록하는 동작을 포함하는 것을 특징으로 하는 메모리 시스템.
KR1020150016185A 2015-02-02 2015-02-02 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 KR102275710B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150016185A KR102275710B1 (ko) 2015-02-02 2015-02-02 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US14/994,172 US9952766B2 (en) 2015-02-02 2016-01-13 Memory system, including memory device capable of overwrite operation, and method of operating the memory system
CN201610073259.8A CN105843553B (zh) 2015-02-02 2016-02-02 包括能够进行重写操作的存储装置的存储***的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150016185A KR102275710B1 (ko) 2015-02-02 2015-02-02 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법

Publications (2)

Publication Number Publication Date
KR20160094765A KR20160094765A (ko) 2016-08-10
KR102275710B1 true KR102275710B1 (ko) 2021-07-09

Family

ID=56553081

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150016185A KR102275710B1 (ko) 2015-02-02 2015-02-02 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법

Country Status (3)

Country Link
US (1) US9952766B2 (ko)
KR (1) KR102275710B1 (ko)
CN (1) CN105843553B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102358177B1 (ko) 2015-12-24 2022-02-07 에스케이하이닉스 주식회사 제어회로 및 제어회로를 포함하는 메모리 장치
KR102260369B1 (ko) 2014-10-28 2021-06-03 에스케이하이닉스 주식회사 보정 회로 및 이를 포함하는 보정 장치
US11755255B2 (en) 2014-10-28 2023-09-12 SK Hynix Inc. Memory device comprising a plurality of memories sharing a resistance for impedance matching
US10067903B2 (en) 2015-07-30 2018-09-04 SK Hynix Inc. Semiconductor device
KR102515924B1 (ko) * 2016-04-19 2023-03-30 에스케이하이닉스 주식회사 미디어 컨트롤러 및 이를 포함한 데이터 저장 장치
US11082043B2 (en) 2014-10-28 2021-08-03 SK Hynix Inc. Memory device
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
CN107506309B (zh) * 2017-06-30 2020-05-19 深圳市硅格半导体有限公司 终端及闪存数据写入方法和计算机可读存储介质
KR102398540B1 (ko) * 2018-02-19 2022-05-17 에스케이하이닉스 주식회사 메모리 장치, 반도체 장치 및 반도체 시스템
KR20190124015A (ko) * 2018-04-25 2019-11-04 에스케이하이닉스 주식회사 저항 변화 메모리 장치를 포함하는 메모리 시스템 및 그 동작 방법
KR102643067B1 (ko) * 2018-04-30 2024-03-06 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102567111B1 (ko) * 2018-08-02 2023-08-14 삼성전자주식회사 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
US11157202B2 (en) 2018-12-28 2021-10-26 Micron Technology, Inc. Memory management utilizing buffer reset commands
US11455402B2 (en) * 2019-01-30 2022-09-27 Seagate Technology Llc Non-volatile memory with precise write-once protection
CN110209597B (zh) 2019-05-24 2021-10-15 北京百度网讯科技有限公司 处理访问请求的方法、装置、设备和存储介质
CN110308876B (zh) * 2019-07-01 2024-05-17 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
KR20210017401A (ko) 2019-08-08 2021-02-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법과, 이를 위한 컨트롤러
KR20210077443A (ko) 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
CN111258925B (zh) * 2020-01-20 2022-05-27 中国科学院微电子研究所 非易失内存的访问方法、装置、内存控制器、设备及介质
KR20210111120A (ko) 2020-03-02 2021-09-10 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN113741812B (zh) * 2021-08-09 2024-04-12 浙江大华技术股份有限公司 存储器分区的更新方法、装置、电子装置和存储介质
CN115561622B (zh) * 2022-10-14 2023-10-03 安测半导体技术(江苏)有限公司 一种芯片测试中写入唯一id的方法及***
CN116027988B (zh) * 2023-03-22 2023-06-23 电子科技大学 用于存储器的损耗均衡方法及其芯片控制器的控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090282301A1 (en) 2008-04-05 2009-11-12 David Flynn Apparatus, system, and method for bad block remapping
US20110219174A1 (en) 2003-12-30 2011-09-08 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Phased Program Failure Handling
US20130073784A1 (en) 2011-09-15 2013-03-21 King Ying Ng Method and system for random write unalignment handling

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122708A (en) * 1997-08-15 2000-09-19 Hewlett-Packard Company Data cache for use with streaming data
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
US7418544B2 (en) 2005-10-05 2008-08-26 Oracle International Corporation Method and system for log structured relational database objects
US8364918B1 (en) * 2007-04-06 2013-01-29 Marvell International Ltd. Sensed opportunistic garbage collection in memory components
KR100874013B1 (ko) * 2007-05-11 2008-12-17 한국전자통신연구원 플래시 메모리의 데이터 관리 방법 및 장치
KR101447188B1 (ko) 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
KR101465789B1 (ko) 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
KR101086857B1 (ko) 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
KR101028929B1 (ko) 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
US8040713B2 (en) * 2009-01-13 2011-10-18 Seagate Technology Llc Bit set modes for a resistive sense memory cell array
KR101020781B1 (ko) 2009-03-04 2011-03-09 한국과학기술원 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR100929371B1 (ko) 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
KR101662827B1 (ko) 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
CN102262595B (zh) * 2011-07-29 2014-04-02 航天恒星科技有限公司 一种微处理器扩展寻址方法
CN102650972B (zh) * 2012-04-06 2016-12-14 国民技术股份有限公司 数据存储方法、装置及***
KR20140008702A (ko) 2012-07-11 2014-01-22 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 쓰기 방법
KR20140038110A (ko) 2012-09-20 2014-03-28 한국전자통신연구원 파일 시스템 관리 방법 및 이를 이용하는 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219174A1 (en) 2003-12-30 2011-09-08 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Phased Program Failure Handling
US20090282301A1 (en) 2008-04-05 2009-11-12 David Flynn Apparatus, system, and method for bad block remapping
US20130073784A1 (en) 2011-09-15 2013-03-21 King Ying Ng Method and system for random write unalignment handling

Also Published As

Publication number Publication date
CN105843553A (zh) 2016-08-10
US20160224247A1 (en) 2016-08-04
CN105843553B (zh) 2020-06-09
KR20160094765A (ko) 2016-08-10
US9952766B2 (en) 2018-04-24

Similar Documents

Publication Publication Date Title
KR102275710B1 (ko) 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
KR102131324B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법
KR102261817B1 (ko) 다수의 레이어들을 포함하는 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작방법
KR102140788B1 (ko) 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법
KR102217243B1 (ko) 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법
KR102188061B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
KR102151183B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법
KR102142590B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법
US20160005463A1 (en) Resistive memory device, resistive memory, and operating method of the resistive memory device
KR102251814B1 (ko) 메모리 장치, 그것의 동작 및 제어 방법
US9941016B2 (en) Flash memory device performing adaptive loop, memory system and method of operating the memory system
KR20170026831A (ko) 불휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치 그리고 데이터 저장 장치의 동작 방법.
US20210334000A1 (en) Memory system, memory controller and memory device for configuring super blocks
US11342013B2 (en) Memory system and operating method to set target command delay time to merge and process read commands
US11301174B2 (en) Memory system, memory controller and method for operating memory system
US11061815B2 (en) Memory system, memory controller and operating method
KR20200056872A (ko) 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US20230185471A1 (en) Temperature controlled zone creation and allocation
KR20210032222A (ko) 메모리 컨트롤러 및 그것의 동작 방법
KR20190124015A (ko) 저항 변화 메모리 장치를 포함하는 메모리 시스템 및 그 동작 방법
KR20170080759A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR20200073108A (ko) Pram 블록들 내 카피백 및 쓰기의 통합을 위한 방법
KR20210028335A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20200138894A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 장치
KR20210045029A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법

Legal Events

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