KR102511459B1 - 비휘발성 메모리 장치 및 그 동작 방법 - Google Patents

비휘발성 메모리 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102511459B1
KR102511459B1 KR1020160031999A KR20160031999A KR102511459B1 KR 102511459 B1 KR102511459 B1 KR 102511459B1 KR 1020160031999 A KR1020160031999 A KR 1020160031999A KR 20160031999 A KR20160031999 A KR 20160031999A KR 102511459 B1 KR102511459 B1 KR 102511459B1
Authority
KR
South Korea
Prior art keywords
data
ecc
page
buffer circuit
page buffer
Prior art date
Application number
KR1020160031999A
Other languages
English (en)
Other versions
KR20170108307A (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 KR1020160031999A priority Critical patent/KR102511459B1/ko
Priority to US15/377,518 priority patent/US9928140B2/en
Priority to CN201710156724.9A priority patent/CN107203435B/zh
Publication of KR20170108307A publication Critical patent/KR20170108307A/ko
Application granted granted Critical
Publication of KR102511459B1 publication Critical patent/KR102511459B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/161Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • 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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리 장치의 동작 방법은, 메모리 셀 어레이의 소스 페이지에 저장된 데이터를 센싱하여 센싱된 데이터를 페이지 버퍼 회로에 저장하는 단계, 상기 페이지 버퍼 회로에 저장된 상기 센싱된 데이터에 대하여 에러 체크 및 정정(ECC: error check and correction) 디코딩을 수행하여 디코딩된 데이터를 상기 페이지 버퍼 회로에 저장하는 단계 및 상기 페이지 버퍼 회로에 저장된 상기 디코딩된 데이터에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 독출 데이터를 외부 장치에 제공하는 단계를 포함한다. ECC 디코딩을 수행하는 동안에 시드값들을 저장하고 저장된 시드값들을 이용하여 디-랜더마이징을 수행함으로써 독출 시간을 감소할 수 있다. 또한 ECC 디코딩의 결과에 따라서 정정 비트들만을 페이지 버퍼 회로에 저장하고 나머지 비트들은 그대로 유지함으로써 독출 시간 및 전력 소모를 감소할 수 있다.

Description

비휘발성 메모리 장치 및 그 동작 방법{Non-volatile memory device and method of operating the same}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 랜더마이징 및 디-랜더마이징을 효율적으로 수행할 수 있는 메모리 장치 및 그 동작 방법에 관한 것이다.
데이터를 저장하기 위한 반도체 메모리 장치는 크게 휘발성(volatile) 메모리 장치와 비휘발성(non-volatile) 메모리 장치로 대별될 수 있다. 셀 커패시터의 충전 또는 방전에 의해 데이터가 저장되는 디램(DRAM: Dynamic Random Access Memory) 등의 휘발성 메모리 장치는 전원이 인가되는 동안에는 저장된 데이터가 유지되지만 전원이 차단되면 저장된 데이터가 손실된다. 한편, 비휘발성 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 휘발성 메모리 장치는 주로 컴퓨터 등의 메인 메모리로 사용되고, 비휘발성 메모리 장치는 컴퓨터, 휴대용 통신기기 등 넓은 범위의 응용 기기에서 프로그램 및 데이터를 저장하는 대용량 메모리로 사용되고 있다.
반도체 메모리 장치의 메모리 용량은 제조 공정 기술의 발달로 증가하고 있다. 미세화 공정 기술이 진행됨에 따라서 불량이 있는 메모리 셀들의 개수가 증가하고 인접한 메모리 셀들 사이의 커플링에 의한 간섭이 증가하고 있다. 불량 메모리 셀들의 증가 및 커플링에 의한 간섭의 증가는 반도체 메모리 장치의 생산 수율을 감소시킨다. 불량 메모리 셀들을 구제하기 위하여 에러 체크 및 정정(ECC)을 수행할 수 있다. 한편 커플링에 의한 간섭을 감소하기 위하여 데이터의 랜덤화(randomization)가 수행될 수 있다. 이러한 ECC 및 랜덤화의 효율에 따라서 반도체 메모리 장치의 수율 및 성능이 결정될 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 ECC 및 랜덤화의 효율을 향상시킬 수 있는 비휘발성 메모리 장치를 제공하는 것이다.
또한 본 발명의 일 목적은 ECC 및 랜덤화의 효율을 향상시킬 수 있는 비휘발성 메모리 장치의 동작 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 동작 방법은, 메모리 셀 어레이의 소스 페이지에 저장된 데이터를 센싱하여 센싱된 데이터를 페이지 버퍼 회로에 저장하는 단계, 상기 페이지 버퍼 회로에 저장된 상기 센싱된 데이터에 대하여 에러 체크 및 정정(ECC: error check and correction) 디코딩을 수행하여 디코딩된 데이터를 상기 페이지 버퍼 회로에 저장하는 단계 및 상기 페이지 버퍼 회로에 저장된 상기 디코딩된 데이터에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 독출 데이터를 외부 장치에 제공하는 단계를 포함한다.
일 실시예에 있어서, 상기 ECC 디코딩은 ECC 섹터의 단위로 수행되고, 상기 디-랜더마이징은 상기 ECC 섹터에 관계없이 상기 ECC 디코딩과 서로 독립적으로 수행될 수 있다.
일 실시예에 있어서, 상기 디코딩된 데이터를 상기 페이지 버퍼 회로에 저장하는 단계는, 상기 페이지 버퍼 회로에 저장된 데이터 비트들 중에서 오류가 발생한 비트들만에 대하여 정정 비트들을 상기 페이지 버퍼 회로에 저장하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 오류가 발생한 비트들 이외의 나머지 비트들은 상기 페이지 버퍼 회로에 재저장하지 않고 저장된 상태를 그대로 유지할 수 있다.
일 실시예에 있어서, 상기 방법은, 상기 ECC 디코딩을 수행하는 동안에 시드 발생부로터 발생된 상기 시드값들을 시드 저장부에 저장하는 단계 및 상기 디-랜더마이징을 수행하는 동안에 상기 시드값들을 상기 시드 저장부로부터 출력하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 시드 저장부는 ECC 동작의 단위가 되는 ECC 섹터들에 각각 상응하는 복수의 저장 유닛들을 포함할 수 있다.
일 실시예에 있어서, 상기 시드값들을 상기 시드 저장부에 저장하는 단계는, 섹터 어드레스 신호에 기초하여 상기 ECC 섹터들에 상응하는 상기 시드값들을 상기 저장 유닛들에 각각 저장하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 시드값들을 상기 시드 저장부로부터 출력하는 단계는, 컬럼 어드레스 신호에 기초하여 상기 저장 유닛들 중 하나로부터 상기 시드값들 중 컬럼 어드레스에 상응하는 시드값을 선택하여 출력하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 방법은, 상기 외부 장치로부터 수신된 기입 데이터에 대하여 타겟 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터를 제공하는 단계, 상기 랜더마이징된 데이터에 대하여 ECC 인코딩을 수행하여 인코딩된 데이터를 프로그램 데이터로서 상기 페이지 버퍼 회로에 저장하는 단계 및 상기 페이지 버퍼 회로에 저장된 상기 프로그램 데이터를 상기 메모리 셀 어레이의 상기 타겟 페이지에 프로그램하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 하나의 ECC 섹터에 대하여 상기 랜더마이징을 수행하고 상기 하나의 ECC 섹터에 상응하는 상기 랜더마이징된 데이터에 대하여 상기 ECC 인코딩을 수행할 수 있다.
일 실시예에 있어서, 상기 방법은, 상기 메모리 셀 어레이의 제1 페이지에 저장된 데이터를 상기 메모리 셀 어레이의 제2 페이지에 이동하여 저장하는 카피-백 동작을 수행하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 카피-백 동작의 수행시, 상기 제1 페이지에 저장된 데이터 중 일부의 비트들을 상기 외부 장치로부터 제공된 갱신 비트들로 대체하여 상기 제2 페이지에 저장할 수 있다.
일 실시예에 있어서, 상기 제1 페이지에 저장된 데이터에 대하여 상기 ECC 디코딩을 수행하여 상기 페이지 버퍼 회로에 디코딩된 데이터가 저장된 상태에서, 상기 갱신 비트들에 대하여 상기 제1 페이지에 상응하는 상기 시드값들을 이용하여 상기 랜더마이징을 수행하여 랜더마이징된 갱신 비트들만을 상기 페이지 버퍼 회로에 저장할 수 있다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비휘발성 메모리 장치는, 복수의 페이지들을 구성하는 메모리 셀들을 포함하는 메모리 셀 어레이, 하나의 페이지에 대한 데이터를 저장하는 페이지 버퍼 회로, 에러 체크 및 정정(ECC: error check and correction) 인코딩을 수행하여 인코딩된 데이터를 제공하고 및 ECC 디코딩을 수행하여 디코딩된 데이터를 제공하는 온칩 ECC 엔진 및 타겟 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터를 제공하고, 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 디-랜더마이징된 데이터를 제공하는 온칩 램덤화 회로를 포함한다. 상기 비휘발성 메모리 장치는 상기 디코딩된 데이터를 상기 페이지 버퍼 회로에 저장하고 상기 페이지 버퍼 회로에 저장된 상기 디코딩된 데이터에 대하여 상기 디-랜더마이징을 수행하여 독출 데이터를 외부 장치에 제공한다.
일 실시예에 있어서, 상기 ECC 디코딩은 ECC 섹터의 단위로 수행되고, 상기 디-랜더마이징은 상기 ECC 섹터에 관계없이 상기 ECC 디코딩과 서로 독립적으로 수행될 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 장치 및 그 동작 방법은 ECC 디코딩과 디-랜더마이징을 분리하여 독립적으로 수행함으로써 비휘발성 메모리 장치의 성능을 향상시킬 수 있다. ECC 디코딩을 수행하는 동안에 시드값들을 저장하고 저장된 시드값들을 이용하여 디-랜더마이징을 수행함으로써 독출 시간을 감소할 수 있다. 또한 ECC 디코딩의 결과에 따라서 정정 비트들만을 페이지 버퍼 회로에 저장하고 나머지 비트들은 그대로 유지함으로써 독출 시간 및 전력 소모를 감소할 수 있다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 동작 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따라서 ECC 디코딩과 디-랜더마이징을 독립적으로 수행하는 경우의 데이터 흐름을 나타내는 도면이다.
도 5는 도 4의 경우에 디코딩된 데이터의 저장을 나타내는 도면이다.
도 6는 ECC 디코딩과 디-랜더마이징을 연동하여 수행하는 경우의 데이터 흐름을 나타내는 도면이다.
도 7은 도 6의 경우에 디코딩된 데이터의 저장을 나타내는 도면이다.
도 8은 페이지와 ECC 섹터의 일 예를 나타내는 도면이다.
도 9는 페이지 및 ECC 섹터에 각각 상응하는 시드값들을 나타내는 도면이다.
도 10은 도 3의 비휘발성 메모리 장치에 포함되는 온칩 랜덤화 회로의 일 실시예를 나타내는 블록도이다.
도 11은 도 10의 온칩 랜덤화 회로에 포함되는 시드 저장부의 일 실시예를 나타내는 도면이다.
도 12는 본 발명의 실시예들에 따라서 ECC 디코딩과 디-랜더마이징을 독립적으로 수행하는 경우의 독출 시간을 나타내는 도면이다.
도 13은 ECC 디코딩과 디-랜더마이징을 연동하여 수행하는 경우의 독출 시간을 나타내는 도면이다.
도 14는 본 발명의 실시예들에 따른 기입 동작을 나타내는 순서도이다.
도 15는 기입 동작을 수행하는 경우의 데이터 흐름을 나타내는 도면이다.
도 16은 본 발명의 실시예들에 따른 카피-백 동작을 나타내는 순서도이다.
도 17은 카피-백 동작을 수행하는 경우의 데이터 흐름을 나타내는 도면이다.
도 18은 카피-백 동작에서 갱신 비트들의 저장을 나타내는 도면이다.
도 19는 카피-백 동작에서 랜더마이징 및 디-랜더마이징을 나타내는 도면이다.
도 20, 21 및 22는 도 3의 비휘발성 메모리 장치에 포함되는 메모리 셀 어레이의 예들을 나타내는 도면들이다.
도 23 및 24는 메모리 셀 어레이에 포함되는 저항성 메모리 셀의 예들을 나타내는 도면들이다.
도 25는 도 23 및 도 24의 저항성 메모리 셀들에 포함되는 단극성 저항성 소자의 일 예를 나타내는 도면이다.
도 26은 도 24의 저항성 메모리 셀에 포함되는 양극성 저항성 소자의 일 예를 나타내는 도면이다.
도 27은 메모리 셀 어레이에 포함되는 STT-MRAM 셀의 일 예를 나타내는 입체도이다.
도 28은 본 발명의 실시예들에 따른 에스에스디(SSD: solid state disk or solid state drive)를 나타내는 블록도이다.
도 29는 본 발명의 실시예들에 따른 임베디드 멀티 미디어 카드(eMMC: embedded multi-media card)를 나타내는 블록도이다.
도 30은 본 발명의 실시예들에 따른 유니버셜 플래시 스토리지(UFS: universal flash storage)를 나타내는 블록도이다.
도 31는 본 발명의 실시예들에 따른 모바일 장치를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되지 않는다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 동작 방법을 나타내는 순서도이다.
도 1에는 비휘발성 메모리 장치의 독출 동작에 상응하는 동작 방법이 도시되어 있다. 도 1을 참조하면, 메모리 셀 어레이의 소스 페이지(source page)에 저장된 데이터를 센싱하여 센싱된 데이터를 페이지 버퍼 회로에 저장한다(S100). 상기 페이지 버퍼 회로에 저장된 상기 센싱된 데이터에 대하여 에러 체크 및 정정(ECC: error check and correction) 디코딩을 수행하여 디코딩된 데이터를 상기 페이지 버퍼 회로에 저장한다(S200). 상기 페이지 버퍼 회로에 저장된 상기 디코딩된 데이터에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 독출 데이터를 외부 장치에 제공한다(S300).
종래 기술에서는 온칩(on-chip) ECC 회로와 온칩 랜덤화 회로(randomizer circuit)가 구비된 비휘발성 메모리 장치에서 일반적으로 ECC 디코딩시 디-랜더마이징을 연동하여 수행하고, 페이지 사이즈만큼의 모든 데이터 비트들을 페이지 버퍼 회로에 연속적으로 로드 및 저장하는 것이 필요하다. 이런 동작을 수행하면 데이터 로드 및 저장에 필요한 시간이 증가하고 결과적으로 독출 시간의 증가를 초래한다. 또한 디코딩되고 디-랜더마이징된 데이터를 페이지 버퍼 회로에 저장하는 경우 동작 전류의 증가로 인해 파워 노이즈가 증가하고 데이터 페일(data fail)을 유발할 수 있다.
반면에, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 동작 방법에서는 ECC 디코딩과 디-랜더마이징을 분리하여 독립적으로 수행함으로써 비휘발성 메모리 장치의 성능을 향상시킬 수 있다. ECC 디코딩을 수행하는 동안에 시드값들을 저장하고 저장된 시드값들을 이용하여 디-랜더마이징을 수행함으로써 독출 시간을 감소할 수 있다. 또한 ECC 디코딩의 결과에 따라서 정정 비트들만을 페이지 버퍼 회로에 저장하고 나머지 비트들은 그대로 유지함으로써 독출 시간 및 전력 소모를 감소할 수 있다.
도 2는 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2를 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(20) 및 비휘발성메모리 장치(40)를 포함할 수 있다.
비휘발성 메모리 장치(40)는 메모리 컨트롤러(20)의 제어에 따라 독출, 기입 또는 소거 동작 등을 수행할 수 있다. 이를 위하여 비휘발성 메모리 장치(40)는 메모리 콘트롤러(20)로부터 제어 신호(CTRL), 커맨드(CMD), 어드레스(ADD) 및 기입 데이터(DATA)를 수신하고, 메모리 콘트롤러(300)로 독출 데이터(DATA)를 송신할 수 있다.
비휘발성 메모리 장치(40)는 온칩 ECC 엔진(600)을 포함할 수 있다. 온칩ECC 엔진(600)은 에러 비트 정정을 수행하고, 도 2에 도시된 바와 같이 온칩 ECC 엔진(600)은 ECC 인코더(610)와 ECC 디코더(620)를 포함할 수 있다. 온칩 ECC 엔진(600)은 ECC 섹터(sector)의 데이터 단위로 에러 비트 정정을 수행할 수 있다. 예를 들면, 페이지의 데이터 단위는 8KB~64KB이고, ECC 섹터의 데이터 단위는 1KB~4KB 일 수 있다.
ECC 인코더(610)는 비휘발성 메모리 장치(40)로 제공되는 데이터의 오류정정 인코딩을 하여, 패리티(parity) 비트가 부가된 코드워드(codeword)를 생성한다. 상기 코드워드는 메모리 셀 어레이에 전달되어 저장될 수 있다. ECC 인코더(610)는 ECC 섹터의 데이터 단위로 인코딩을 수행할 수 있다. ECC 디코더(620)는 메모리 셀 어레이로부터 독출된 데이터에 대하여 에러 정정 디코딩을 수행하고 수행 결과에 따라 상기 에러 정정 디코딩의 성공 여부를 판단한다. ECC 디코더(620)는 페리티(parity) 비트를 사용하여 데이터의 에러 비트를 정정 할 수 있다. ECC 인코더(610)와 ECC 디코더(620)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 할 수 있으며, 이에 한정되는 것은 아니다.
비휘발성 메모리 장치(40)는 온칩 랜덤화 회로(700)을 포함할 수 있다. 온칩 랜덤화 회로(700)는 기입 동작시 타겟 페이지에 상응하는 시드값 (seed value)들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터를 제공할 수 있다. 또한 온칩 랜덤화 회로(700)는 독출 동작시 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 디-랜더마이징된 데이터를 제공할 수 있다. 데이터의 패턴 의존성(pattern dependency)를 제거하기 위한 랜덤화(randomization)는 최근 널리 사용되고 있다. 예를 들어, 기입 동작시 랜덤화된 시드값들을 발생하고 상기 시드값들과 데이터를 연산(예를 들어, XOR 연산)하는 랜더마이징을 수행하여 랜더마이징된 데이터를 메모리 셀 어레이에 저장할 수 있다. 데이터의 독출 동작시에는 기입 동작에서 사용된 시드값들과 동일한 시드값들과 데이터를 연산하는 디-랜더마이징을 수행하여 본래의 데이터를 복원할 수 있다. 온칩 랜덤화 회로(700)의 실시예에 대해서는 도 10 및 11을 참조하여 후술한다.
도 3은 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 3을 참조하면, 비휘발성 메모리 장치(40)는 메모리 셀 어레이(100), 행 선택 회로(200), 페이지 버퍼 회로(300), 열 선택 회로(400), 데이터 처리부(500), 입출력 인터페이스(800) 및 제어 로직(900)을 포함할 수 있다. 데이터 처리부(500)는 온칩 ECC 엔진(ECC, 600) 및 온칩 랜덤화 회로(RND, 700)를 포함할 수 있다.
메모리 셀 어레이(100)는 복수의 워드 라인들(WL)과 복수의 비트 라인들(BL)에 각각 연결되는 복수의 메모리 셀들을 포함한다. 도 20 내지 22를 참조하여 후술하는 바와 같이, 상기 복수의 메모리 셀들은 각각 NAND 또는 NOR 플래시 메모리 셀들일 수 있으며, 2차원 어레이(array) 구조 또는 3차원 수직 어레이 구조로 배열될 수 있다. 또한 도 23 내지 27을 참조하여 후술하는 바와 같이, 상기 메모리 셀들은 다양한 타입의 저항성 메모리 셀들일 수 있다.
일 실시예에서, 상기 복수의 메모리 셀들은 각각 하나의 데이터 비트를 저장하는 싱글 레벨 메모리 셀(Single Level memory Cell; SLC)들 또는 복수의 데이터 비트들을 저장하는 멀티 레벨 메모리 셀(Multi Level memory Cell; MLC)들일 수 있다. 멀티 레벨 메모리 셀의 경우에 기입 모드에서의 프로그램 방식은 쉐도우 프로그램 방식, 리프로그램 방식 또는 온칩 버퍼드 프로그램 방식과 같은 다양한 프로그램 방식이 적용될 수 있다.
행 선택 회로(200)는 제어 로직(900)에 의하여 제어되며, 메모리 셀 어레이(100)의 행들에 대한 선택 및 구동 동작들을 수행하도록 구성된다. 제어 로직(900)은 비휘발성 메모리 장치(40)의 동작을 전반적으로 제어하도록 구성된다. 페이지 버퍼 회로(300)는 제어 로직(350)에 의하여 제어되며, 동작 모드에 따라 감지 증폭기로서 또는 기입 드라이버로서 동작한다. 예를 들어, 독출 동작 동안, 페이지 버퍼 회로(300)는 선택된 행 또는 소스 페이지의 메모리 셀들로부터 데이터를 감지하는 감지 증폭기로서 동작한다. 프로그램 동작 동안, 페이지 버퍼 회로(300)는 프로그램 데이터에 따라 선택된 행 또는 타겟 페이지의 메모리 셀들을 구동하는 기입 드라이버로서 동작할 수 있다. 페이지 버퍼 회로(300)는 비트 라인들에 또는 비트 라인쌍들에 각각 대응하는 복수의 페이지 버퍼들을 포함할 수 있다. 메모리 셀들 각각이 멀티-비트 데이터를 저장하는 경우, 페이지 버퍼 회로(300)의 각 페이지 버퍼는 두 개 이상의 래치들을 갖도록 구성될 수 있다.
열 선택 회로(400)는 제어 로직(900)에 의하여 제어되며, 독출/프로그램 동작시 열들(또는 페이지 버퍼들)을 정해진 단위로 순차적으로 선택한다.
온칩 ECC 엔진(600)은 ECC 인코딩을 수행하여 인코딩된 데이터를 제공하고 및 ECC 디코딩을 수행하여 디코딩된 데이터를 제공할 수 있다. 온칩 랜덤화 회로(700)는 타겟 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터를 제공하고, 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 디-랜더마이징된 데이터를 제공할 수 있다. 일 실시예에서, 온칩 랜덤화 회로(700)는 비트-와이즈 XOR 연산을 수행하도록 구현될 수 있다.
입출력 인터페이스(800)는 데이터 처리부(500)로부터 전달되는 데이터를 외부장치(예를 들어, 메모리 컨트롤러)로 출력한다. 또한 입출력 인터페이스(800)는 외부 장치로부터 제공되는 데이터를 데이터 처리부(500)로 전달한다.
도 4는 본 발명의 실시예들에 따라서 ECC 디코딩과 디-랜더마이징을 독립적으로 수행하는 경우의 데이터 흐름을 나타내는 도면이고, 도 5는 도 4의 경우에 디코딩된 데이터의 저장을 나타내는 도면이다. 도 4에 도시된 제1 내지 제5 경로들(P11~P15)은 데이터 흐름의 시간적인 순서를 나타낸다.
도 4를 참조하면, 메모리 셀 어레이(100)의 소스 페이지(source page)에 저장된 데이터를 센싱하여 센싱된 데이터(DSEN)가 페이지 버퍼 회로(300)에 저장된다(P11). 온칩 ECC 엔진(600)은 페이지 버퍼 회로(300)에 저장된 센싱된 데이터(DSEN)를 수신하고(P12) ECC 디코딩을 수행하여 디코딩된 데이터(DDEC)를 페이지 버퍼 회로(300)에 저장한다(P13). 도 8을 참조하여 후술하는 바와 같이, 하나의 페이지는 복수의 ECC 섹터들을 포함할 수 있다. 이 경우, 온칩 ECC 엔진(600)은 하나의 ECC 섹터에 대하여 센싱된 데이터(DSEN)의 수신(P12), ECC 디코딩 및 디코딩된 데이터(DDEC)의 저장(P13)이 완료된 후에 다음 ECC 섹터에 대하여 동일한 동작을 반복할 수 있다. 페이지 버퍼 회로(300)에 저장된 페이지의 모든 ECC 섹터들에 대하여 ECC 디코딩 및 저장이 완료된 후에, 온칩 랜덤화 회로(700)는 페이지 버퍼 회로(300)에 저장된 디코딩된 데이터(DDEC)를 수신하고(P14) 디코딩된 데이터(DDEC)에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하고 디-랜더마이징된 데이터(DDER)를 입출력 인터페이스(800)로 출력한다(P15). 디-랜더마이징된 데이터(DDER)는 독출 데이터(DRD)로서 메모리 콘트롤러와 같은 외부 장치에 제공된다.
도 5에는 도 4의 제3 경로(P13)를 따라서 페이지 버퍼 회로(PBC)에 디코딩된 데이터(DDEC)가 저장되는 방법이 도시되어 있다. T0는 디코딩된 데이터(DDEC)가 페이지 버퍼 회로(PBC)에 저장되기 전의 시점을 나타내고 T1은 디코딩된 데이터(DDEC)가 페이지 버퍼 회로(PBC)에 저장된 후의 시점을 나타낸다. 도 5에 도시된 바와 같이, 페이지 버퍼 회로(PBC)에 저장된 센싱된 데이터(DSEN)의 비트들 중에서 오류가 발생한 비트들만에 대하여 정정 비트들을 페이지 버퍼 회로(PBC)에 저장할 수 있다. 다시 말해, 센싱된 데이터(DSEN)의 상기 오류가 발생한 비트들 이외의 나머지 비트들은 페이지 버퍼 회로(PBC)에 재저장하지 않고 저장된 상태를 그대로 유지할 수 있다. 이와 같이, ECC 디코딩의 결과에 따라서 정정 비트들만을 페이지 버퍼 회로(PBC)에 저장하고 나머지 비트들은 그대로 유지함으로써 독출 시간 및 전력 소모를 감소할 수 있다.
도 6는 ECC 디코딩과 디-랜더마이징을 연동하여 수행하는 경우의 데이터 흐름을 나타내는 도면이고, 도 7은 도 6의 경우에 디코딩된 데이터의 저장을 나타내는 도면이다. 도 6에 도시된 제1 내지 제5 경로들(P21~P25)은 데이터 흐름의 시간적인 순서를 나타낸다.
도 6을 참조하면, 메모리 셀 어레이(100)의 소스 페이지(source page)에 저장된 데이터를 센싱하여 센싱된 데이터(DSEN)가 페이지 버퍼 회로(300)에 저장된다(P21). 온칩 ECC 엔진(600)은 페이지 버퍼 회로(300)에 저장된 센싱된 데이터(DSEN)를 수신하고(P22) ECC 디코딩을 수행하여 디코딩된 데이터(DDEC)를 온칩 랜덤화 회로(700)에 제공한다(P23). 온칩 랜덤화 회로(700)는 디코딩된 데이터(DDEC)에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하고 디-랜더마이징된 데이터(DDER)를 페이지 버퍼 회로(300)에 저장한다(P24). 페이지 버퍼 회로(300)에 저장된 디-랜더마이징된 데이터(DDER)는 입출력 인터페이스(800)로 출력되고(P25) 디-랜더마이징된 데이터(DDER)는 독출 데이터(DRD)로서 메모리 콘트롤러와 같은 외부 장치에 제공된다. 도 8을 참조하여 후술하는 바와 같이, 하나의 페이지는 복수의 ECC 섹터들을 포함할 수 있다. 이 경우, 온칩 ECC 엔진(600) 및 온칩 랜덤화 회로(700)는 하나의 ECC 섹터에 대하여 센싱된 데이터(DSEN)의 수신(P22), ECC 디코딩 및 디-랜더마이징 및 디-랜더마이징된 데이터(DDER)의 저장(P24)이 완료된 후에 다음 ECC 섹터에 대하여 동일한 동작을 반복할 수 있다.
도 7에는 도 6의 제4 경로(P24)를 따라서 페이지 버퍼 회로(PBC)에 디-랜더마이징된 데이터(DDER)가 저장되는 방법이 도시되어 있다. T0는 디-랜더마이징된 데이터(DDER)가 페이지 버퍼 회로(PBC)에 저장되기 전의 시점을 나타내고 T1은 디-랜더마이징된 데이터(DDER)가 페이지 버퍼 회로(PBC)에 저장된 후의 시점을 나타낸다. 도 5의 경우에는 페이지 버퍼 회로(PBC)에 저장된 센싱된 데이터(DSEN)의 비트들 중에서 오류가 발생한 비트들만에 대하여 정정 비트들을 페이지 버퍼 회로(PBC)에 저장하는 반면에, 도 7의 경우에는 페이지 버퍼 회로(PBC)에 저장된 센싱된 데이터(DSEN)의 모든 비트들에 대하여 디코딩되고 디-랜더마이징된 데이터 비트들이 페이지 버퍼 회로(PBC)에 재저장되어야 한다. 이 경우 모든 비트들이 페이지 버퍼 회로(PBC)에 재저장되어야 하므로 독출 시간 및 전력 소모가 증가한다. 도 4 및 5를 참조하여 전술한 바와 같이, ECC 디코딩의 결과에 따라서 정정 비트들만을 페이지 버퍼 회로(PBC)에 저장하고 나머지 비트들은 그대로 유지함으로써 독출 시간 및 전력 소모를 감소할 수 있다.
도 8은 페이지와 ECC 섹터의 일 예를 나타내는 도면이고, 도 9는 페이지 및 ECC 섹터에 각각 상응하는 시드값들을 나타내는 도면이다.
도 8을 참조하면, 하나의 페이지는 복수의 ECC 섹터들(SEC1~SECn)을 포함할 수 있다. 도 3의 메모리 셀 어레이(100)에는 복수의 페이지들에 상응하는 메모리 공간이 제공될 수 있고, 편의상 도 8에는 하나의 페이지에 상응하는 메모리 공간이 도시되어 있다. 도 3의 온칩 ECC 엔진(600)은 ECC 섹터(sector)의 데이터 단위로 에러 비트 정정을 수행할 수 있다. 예를 들면, 페이지의 데이터 단위는 8KB~64KB이고, ECC 섹터의 데이터 단위는 1KB~4KB 일 수 있다. ECC 섹터들(SEC1~SECn)의 위치는 섹터 오프셋 값들(OFS1~OFSn)로서 나타낼 수 있다. 후술하는 섹터 어드레스는 이와 같은 섹터 오프셋 값들(OFS1~OFSn)로서 표현될 수 있다.
도 9를 참조하면, 도 3의 메모리 셀 어레이(100)의 메모리 공간은 복수의 페이지들(P1, P2, P3)로 구분되고, 각 페이지는 복수의 ECC 섹터들(SEC1~SEC4)을 포함할 수 있다. 도 9에는 편의상 하나의 페이지가 네 개의 ECC 섹터들(SEC1~SEC4)을 포함하는 예를 도시하였으나, 하나의 페이지에 포함되는 ECC 섹터들의 개수는 다양하게 결정될 수 있다. 도 9에 도시된 바와 같이, 각각의 페이지마다, 그리고 각각의 ECC 섹터마다 각각의 시드값들(RSD11~RSD34)이 지정될 수 있다. 시드값들(RSD11~RSD34)의 각각은 1비트일 수도 있고 복수의 비트들의 시퀀스일 수도 있다. 시드값들(RSD11~RSD34)은 페이지 어드레스 및 섹터 어드레스에 기초하여 발생될 수도 있고 미리 결정된 값들이 룩업 테이블 형식으로 저장될 수도 있다.
도 10은 도 3의 비휘발성 메모리 장치에 포함되는 온칩 랜덤화 회로의 일 실시예를 나타내는 블록도이다.
도 10을 참조하면, 랜덤화 회로(700)는 시드 발생부(720), 시드 저장부(740) 및 변환부(760)를 포함할 수 있다.
시드 발생부(720)는 페이지 어드레스 신호(PGADD) 및 섹터 어드레스 신호(SECADD)에 기초하여 ECC 시드(SDECC)를 발생한다. 시드 발생부(720)는 페이지 어드레스 신호(PGADD) 및 섹터 어드레스 신호(SECADD)가 나타내는 현재의 어드레스들에 상응하는 시드값을 ECC 시드(SDECC)로서 출력한다. 따라서 페이지 어드레스 신호(PGADD) 및 섹터 어드레스 신호(SECADD)가 변화함에 따라서 ECC 시드(SDECC)는 변화하는 시드값들을 포함할 수 있다. 예를 들어, 페이지 어드레스 신호(PGADD)가 도 9의 제2 페이지(P2)를 나타내고, 섹터 어드레스 신호(SECADD)가 순차적으로 제1 섹터(SEC2) 내지 제4 섹터(SEC4)를 나타내는 경우, ECC 시드(SDECC)는 제2 페이지(P2)의 네 개의 시드값들(RSD21~RSD24)을 순차적으로 포함할 수 있다.
시드 저장부(740)는 ECC 시드(SDECC), 컬럼 어드레스 신호(COLADD) 및 섹터 어드레스 신호(SECADD)에 기초하여 입출력 시드(SDIO)를 발생한다. 시드 저장부(740)에 대해서는 도 11을 참조하여 후술한다.
변환부(760)는 입력 데이터(DRI)와 ECC 시드(SDECC) 또는 입출력 시드(SDIO)를 연산하여 출력 데이터(DRO)를 제공한다. 일 실시예에서, 변환부(760)는 비트-와이즈 XOR 연산을 수행하도록 구현될 수 있다. ECC 동작과 랜덤화 동작이 동시에 순차적으로 수행되는 경우에는 변환부(769)는 입력 데이터(DRI)와 ECC 시드(SDECC)를 연산하여 출력 데이터(DRO)를 제공할 수 있다. 반면에 ECC 동작과 랜덤화 동작이 독립적으로 수행되는 경우에는 변환부(769)는 입력 데이터(DRI)와 입출력 시드(SDIO)를 연산하여 출력 데이터(DRO)를 제공할 수 있다.
도 10에는 랜더마이징을 수행하는 부분과 디-랜더마이징을 수행하는 부분이 불가분적으로 구현된 온칩 랜덤화 회로(700)가 도시되어 있다. 기입 동작의 경우에는 입력 데이터(DRI)는 ECC 인코딩의 결과인 인코딩된 데이터이고 출력 데이터(DRO)는 랜더마이징된 데이터 일 수 있다. 독출 동작의 경우에는 입력 데이터(DRI)는 ECC 디코딩의 결과인 디코딩된 데이터이고 출력 데이터(DRO)는 디-랜더마이징된 데이터 일 수 있다. 다른 실시예에서, 랜덤화 회로(700)는 랜더마이징을 수행하는 부분과 디-랜더마이징을 수행하는 부분이 독립적으로 구비되도록 구현될 수도 있다.
도 11은 도 10의 온칩 랜덤화 회로에 포함되는 시드 저장부의 일 실시예를 나타내는 도면이다.
도 11을 참조하면, 시드 저장부(740)는 복수의 저장 유닛들(SU1~SU4), 선택부(MUX) 및 제어부(CONT)를 포함할 수 있다. 시드 저장부(740)는 ECC 디코딩을 수행하는 동안에 시드 발생부(720)로터 발생된 시드값들을 저장하고, 디-랜더마이징을 수행하는 동안에 저장된 시드값들을 변환부(760)로 출력한다.
제어부(CONT)는 컬럼 어드레스 신호(COLADD) 및 섹터 어드레스 신호(SECADD)에 기초하여 저장 제어 신호(STOCTR) 및 출력 제어 신호(OUTCTR)를 발생할 수 있다. 저장 제어 신호(STOCTR)는 섹터 어드레스 신호(SECADD)의 현재 값이 어떤 ECC 섹터에 상응하는지를 나타낼 수 있다. 출력 제어 신호(OUTCTR)는 컬럼 어드레스 신호(COLADD)의 현재 값이 어떤 ECC 섹터에 상응하는지를 나타낼 수 있다.
저장 유닛들(SU1~SU4)은 ECC 동작의 단위가 되는 ECC 섹터들에 각각 상응한다. 도 11에는 편의상 하나의 페이지에 네 개의 ECC 섹터들 포함되는 경우에 해당하는 4개의 저장 유닛들(SU1~SU4)이 도시되어 있으나, 저장 유닛들의 개수는 하나의 페이지에 포함되는 ECC 섹터들의 개수에 따라 다양하게 결정될 수 있다.
시드 저장부(740)는 섹터 어드레스 신호(SECADD)에 기초하여 ECC 섹터들(SEC1~SEC4)에 상응하는 시드값들(RSD1~RSD4)을 저장 유닛들(SU1~SU4)에 각각 저장할 수 있다. 즉, 제어부(CONT)는 섹터 어드레스 신호(SECADD)에 기초하여 저장 제어 신호(STOCTR)를 발생하고, ECC 시드에 포함되어 제공되는 시드값들(RSD1~RSD4)은 저장 제어 신호(STOCTR)에 응답하여 저장 유닛들(SU1~SU4)의 각각에 저장될 수 있다.
또한, 시드 저장부(740)는 컬럼 어드레스 신호(COLADD)에 기초하여 저장 유닛들(SU1~SU4) 중 하나로부터 시드값들(RSD1~RSD4) 중 컬럼 어드레스에 상응하는 시드값을 선택하여 출력할 수 있다. 즉, 제어부(CONT)는 컬럼 어드레스 신호(COLADD)에 기초하여 출력 제어 신호(OUTCTR)를 발생하고, 선택부(MUX)는 저장 유닛들(SU1~SU4)로부터 제공되는 시드값들(RSD1~RSD4) 중에서 출력 제어 신호(OUTCTR)에 상응하는 하나의 시드값을 입출력 시드(SDIO)로서 제공할 수 있다. 컬럼 어드레스 신호(COLADD)의 값이 변화함에 따라서 입출력 시드(SDIO)에 포함되는 시드값이 변화할 수 있다.
이와 같이, 시드 저장부(740)를 이용하여 시드값들을 미리 저장하고 컬럼 어드레스 신호(COLADD)에 따라서 입출력 시드(SDIO)의 출력 타이밍을 제어할 수 있다. 입출력 시드(SDIO)를 이용함으로써, 랜더마이징 또는 디-랜더마이징을 포함하는 랜덤화 동작을 ECC 동작과 분리하여 독립적으로 수행할 수 있다.
도 12는 본 발명의 실시예들에 따라서 ECC 디코딩과 디-랜더마이징을 독립적으로 수행하는 경우의 독출 시간을 나타내는 도면이고, 도 13은 ECC 디코딩과 디-랜더마이징을 연동하여 수행하는 경우의 독출 시간을 나타내는 도면이다.
도 4, 11 및 12를 참조하면, 메모리 셀 어레이에 저장된 데이터의 센싱이 완료되면 페이지 버퍼 회로(300)에 센싱된 데이터(DSEN)가 저장된다. 센싱된 데이터(DSEN)가 페이지 버퍼 회로(300)에 저장된 후 ECC 섹터들(SEC1~SEC4)의 각각에 대하여 ECC 디코딩이 수행되고 디코딩된 데이터(DDEC)가 페이지 버퍼 회로(300)에 순차적으로 저장된다. 한편, ECC 디코딩이 수행되는 동안에 소스 페이지의 ECC 섹터들(SEC1~SEC4)에 각각 상응하는 시드값들(RSD1~RSD4)이 시드 저장부(740)의 저장 유닛들(SU1~SU4)에 각각 저장된다. 저장 유닛들(SU1~SU4)에 저장된 시드값들(RSD1~RSD4)은 데이터 출력(DOUT)시 디-랜더마이징(DE-RAND)을 위해서 제공된다.
이와 같이, 본 발명의 실시예들에 따라서 ECC 디코딩과 디-랜더마이징을 독립적으로 수행하는 경우에, ECC 디코딩을 수행하는 동안에 시드값들을 저장하고 데이터 출력시 저장된 시드값들을 이용하여 디-랜더마이징을 수행함으로써 독출 시간(tRp)가 감소될 수 있다.
도 6 및 13을 참조하면, 메모리 셀 어레이에 저장된 데이터의 센싱이 완료되면 페이지 버퍼 회로(300)에 센싱된 데이터(DSEN)가 저장된다. 센싱된 데이터(DSEN)가 페이지 버퍼 회로(300)에 저장된 후 ECC 섹터들(SEC1~SEC4)의 각각에 대하여 순차적으로 ECC 디코딩 및 디코딩된 데이터(DDEC)에 대한 디-랜더마이징이 수행되고 디-랜더마이징된 데이터(DDER)가 페이지 버퍼 회로(300)에 순차적으로 저장된다.
이와 같이, 각각의 ECC 섹터에 대하여 ECC 디코딩 및 디-랜더마이징을 동시에 순차적으로 수행하는 경우에는 독출 시간(tRc)이 증가될 수 있다. 본 발명의 실시예들에 따른 도 12의 독출 시간(tRp)은 도 13의 독출 시간(tPc)보다 현저히 감소함을 알 수 있다.
도 14는 본 발명의 실시예들에 따른 기입 동작을 나타내는 순서도이다.
도 14에는 비휘발성 메모리 장치의 기입 동작에 상응하는 동작 방법이 도시되어 있다. 도 14를 참조하면, 외부 장치로부터 수신된 기입 데이터에 대하여 타겟 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터를 제공한다(S10). 상기 랜더마이징된 데이터에 대하여 ECC 인코딩을 수행하여 인코딩된 데이터를 페이지 버퍼 회로에 저장한다(S20). 페이지 버퍼 회로에 저장된 상기 인코딩된 데이터를 상기 타겟 페이지에 프로그램한다(S30).
이와 같이, ECC 디코딩과 디-랜더마이징이 분리하여 독립적으로 수행되는 독출 동작과는 다르게, 기입 동작의 경우에는 랜더마이징과 ECC 인코딩이 동시에 순차적으로 수행될 수 있다.
도 15는 기입 동작을 수행하는 경우의 데이터 흐름을 나타내는 도면이다. 도 15에 도시된 제1 내지 제4 경로들(P31~P34)은 데이터 흐름의 시간적인 순서를 나타낸다.
도 15를 참조하면, 기입 데이터(DWR)가 외부 장치로부터 입출력 인터페이스(800)를 통하여 온칩 랜덤화 회로(700)에 제공된다(P31). 온칩 랜덤화 회로(700)는 기입 데이터(DWR)에 대하여 타겟 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터(DRAN)를 제공한다. 온칩 ECC 엔진(600)은 랜더마이징된 데이터(DRAN)를 랜덤화 회로(700)로부터 수신하고(P32) 랜더마이징된 데이터(DRAN)에 대하여 ECC 인코딩을 수행하여 인코딩된 데이터(DENC)를 페이지 버퍼 회로(300)에 저장한다(P33). 도 8을 참조하여 전술한 바와 같이, 하나의 페이지는 복수의 ECC 섹터들을 포함할 수 있다. 이 경우, 온칩 랜덤화 회로(700) 및 온칩 ECC 엔진(600)은 하나의 ECC 섹터에 대하여 기입 데이터(DWR)의 수신(P31), 랜더마이징과 ECC 인코딩 및 인코딩된 데이터(DENC)의 저장(P33)이 완료된 후에 다음 ECC 섹터에 대하여 동일한 동작을 반복할 수 있다. 타겟 페이지의 모든 섹터들에 대하여 인코딩된 데이터(DENC)가 프로그램 데이터(DPGM)로서 페이지 버퍼 회로(300)에 저장된 후에, 프로그램 데이터(DPGM)는 메모리 셀 어레이(100)의 타겟 페이지에 프로그램된다(P34).
도 16은 본 발명의 실시예들에 따른 카피-백 동작을 나타내는 순서도이다.
도 16에는, 메모리 셀 어레이의 소스 페이지(예를 들어, 제1 페이지)에 저장된 데이터를 메모리 셀 어레이의 타겟 페이지(예를 들어, 제2 페이지)에 이동하여 저장하는 카피-백 동작이 도시되어 있다. 이때, 상기 제1 페이지에 저장된 데이터 중 일부의 비트들을 상기 외부 장치로부터 제공된 갱신 비트들로 대체하여 상기 제2 페이지에 저장할 수 있다.
도 16을 참조하면, 소스 페이지에 저장된 데이터를 센싱하여 센싱된 데이터를 페이지 버퍼 회로에 저장한다(S100). 상기 페이지 버퍼 회로에 저장된 상기 센싱된 데이터에 대하여 ECC 디코딩을 수행하여 디코딩된 데이터를 상기 페이지 버퍼 회로에 저장한다(S200). 외부 장치로부터 제공된 갱신 비트들에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 갱신 비트들을 상기 페이지 버퍼 회로에 저장한다(S400). 상기 페이지 버퍼 회로에 저장된 갱신되고 디코딩된 데이터에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 디-랜더마이징된 데이터를 제공한다(510). 상기 디-랜더마이징된 데이터에 대하여 타겟 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터를 제공한다(S520). 상기 랜더마이징된 데이터에 대하여 ECC 인코딩을 수행하여 인코딩된 데이터를 상기 페이지 버퍼 회로에 프로그램 데이터로서 저장한다(S600). 상기 페이지 버퍼 회로에 저장된 프로그램 데이터를 상기 타겟 페이지에 프로그램한다(S700).
도 17은 카피-백 동작을 수행하는 경우의 데이터 흐름을 나타내는 도면이고, 도 18은 카피-백 동작에서 갱신 비트들의 저장을 나타내는 도면이다. 도 17에 도시된 제1 내지 제9 경로들(P41~P49)은 데이터 흐름의 시간적인 순서를 나타낸다.
도 17을 참조하면, 메모리 셀 어레이(100)의 소스 페이지(source page)에 저장된 데이터를 센싱하여 센싱된 데이터(DSEN)가 페이지 버퍼 회로(300)에 저장된다(P41). 온칩 ECC 엔진(600)은 페이지 버퍼 회로(300)에 저장된 센싱된 데이터(DSEN)를 수신하고(P42) ECC 디코딩을 수행하여 디코딩된 데이터(DDEC)를 페이지 버퍼 회로(300)에 저장한다(P43). 도 8을 참조하여 전술한 바와 같이, 하나의 페이지는 복수의 ECC 섹터들을 포함할 수 있다. 이 경우, 온칩 ECC 엔진(600)은 하나의 ECC 섹터에 대하여 센싱된 데이터(DSEN)의 수신(P42), ECC 디코딩 및 디코딩된 데이터(DDEC)의 저장(P43)이 완료된 후에 다음 ECC 섹터에 대하여 동일한 동작을 반복할 수 있다. 한편, 갱신 데이터(DUP)가 외부 장치로부터 입출력 인터페이스(800)를 통하여 온칩 랜덤화 회로(700)에 제공된다(P44). 온칩 랜덤화 회로(700)는 갱신 데이터(DUP)에 대하여 소스 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 갱신 데이터(DURAN)를 페이지 버퍼 회로(300)에 저장한다(P45). 결과적으로 페이지 버퍼 회로(300)에는 갱신되고 디코딩된 데이터(DUDEC)가 저장된다. 온칩 랜덤화 회로(700)는 페이지 버퍼 회로(300)로부터 갱신되고 디코딩된 데이터(DUDEC)를 수신하고(P46) 갱신되고 디코딩된 데이터(DUDEC)에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 디-랜더마이징된 데이터(DDRAN)를 제공한다. 또한 온칩 랜덤화 회로(700)는 디-랜더마이징된 데이터(DDRAN)에 대하여 타겟 페이지에 상응하는 시드값들을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터(DRAN)를 제공한다. 온칩 ECC 회로(600)는 온칩 랜덤화 회로(700)로부터 랜더마이징된 데이터(DRAN)를 수신하고(P47) 랜더마이징된 데이터(DRAN)에 대하여 ECC 인코딩을 수행하여 인코딩된 데이터를 페이지 버퍼 회로(300)에 프로그램 데이터(DPGM)로서 저장한다(P48). 하나의 페이지에 복수의 ECC 섹터들이 포함되는 경우, 온칩 랜덤화 회로(700) 및 온칩 ECC 엔진(600)은 하나의 ECC 섹터에 대하여 갱신되고 디코딩된 데이터(DUDEC)의 수신(P46), 디-랜더마이징, 랜더마이징과 ECC 인코딩 및 인코딩된 데이터(DENC)의 저장(P48)이 완료된 후에 다음 ECC 섹터에 대하여 동일한 동작을 반복할 수 있다. 타겟 페이지의 모든 섹터들에 대하여 인코딩된 데이터(DENC)가 프로그램 데이터(DPGM)로서 페이지 버퍼 회로(300)에 저장된 후에, 프로그램 데이터(DPGM)는 메모리 셀 어레이(100)의 타겟 페이지에 프로그램된다(P49).
도 18에는 도 17의 제5 경로(P45)를 따라서 페이지 버퍼 회로(PBC)에 랜더마이징된 갱신 데이터(DURAN)를 저장되는 방법이 도시되어 있다. T0는 랜더마이징된 갱신 데이터(DURAN)가 페이지 버퍼 회로(PBC)에 저장되기 전의 시점을 나타내고 T1은 랜더마이징된 갱신 데이터(DURAN)가 페이지 버퍼 회로(PBC)에 저장된 후의 시점을 나타낸다. 도 18에 도시된 바와 같이, 페이지 버퍼 회로(PBC)에 저장된 디코딩된 데이터(DDEC)의 비트들 중에서 갱신 비트들만 페이지 버퍼 회로(PBC)에 저장할 수 있다. 다시 말해, 디코딩된 데이터(DDEC)의 갱신 대상이 되는 비트들 이외의 나머지 비트들은 페이지 버퍼 회로(PBC)에 재저장하지 않고 저장된 상태를 그대로 유지할 수 있다. 이와 같이, 갱신의 내용에 따라서 갱신 비트들만을 페이지 버퍼 회로(PBC)에 저장하고 나머지 비트들은 그대로 유지함으로써 카피-백 시간 및 전력 소모를 감소할 수 있다.
도 19는 카피-백 동작에서 랜더마이징 및 디-랜더마이징을 나타내는 도면이다.
도 17 및 19를 참조하면, 온칩 랜덤화 회로(700)는 제6 경로(P46)를 따라서 갱신되고 디코딩된 데이터(DUDEC)를 수신하고 소스페이지에 상응하는 시드값들(SDECCS)을 이용하여 디-랜더마이징을 수행하여 디-랜더마이징된 데이터(DDRAN)을 제공할 수 있다. 또한 온칩 랜덤화 회로(700)는 디-랜더마이징된 데이터(DDRAN)에 대하여 타겟 페이지에 상응하는 시드값들(SDECCT)을 이용하여 랜더마이징을 수행하여 랜더마이징된 데이터(DRAN)를 제공할 수 있다. 랜더마이징된 데이터(DRAN)는 온칩 ECC 회로(600)에 제공된다.
온칩 랜덤화 회로(700)는 이러한 디-랜더마이징 및 랜더마이징의 연속적인 수행을 위하여 도 10의 시드 발생부(720) 및/또는 변환부(760)를 2개씩 구비할 수도 있다. 카피-백 동작에서의 순차적으로 수행되는 디-랜더마이징 및 랜더마이징은 ECC 섹터별로 수행될 수 있다. 따라서 도 19의 소스페이지에 상응하는 시드값들(SDECCS) 및 타겟 페이지에 상응하는 시드값들(SDECCT)은 도 10의 입출력 시드(SDIO)가 아닌 ECC 시드(SDECC)에 해당할 수 있다.
도 20, 21 및 22는 도 3의 비휘발성 메모리 장치에 포함되는 메모리 셀 어레이의 예들을 나타내는 도면들이다.
도 20은 NOR형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이고, 도 21은 NAND형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이며, 도 22는 수직형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이다.
도 20을 참조하면, 메모리 셀 어레이(100a)는 복수의 메모리 셀(MC1)들을 포함할 수 있다. 동일한 열에 배열된 메모리 셀(MC1)들은 비트 라인들(BL(1), ..., BL(m)) 중 하나와 공통 소스 라인(CSL) 사이에 병렬로 배치될 수 있으며, 동일한 행에 배열된 메모리 셀(MC1)들은 워드 라인들(WL(1), WL(2), ..., WL(n)) 중 하나에 공통으로 연결될 수 있다. 예를 들어, 제1열에 배열된 메모리 셀들은 제1 비트 라인(WL(1))과 공통 소스 라인(CSL) 사이에 병렬로 배치될 수 있다. 제1행에 배열된 메모리 셀들의 게이트 전극들은 제1 워드 라인(WL(1))에 공통으로 연결될 수 있다. 메모리 셀(MC1)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
NOR형 플래시 메모리 장치는 바이트(byte) 단위 또는 워드(word) 단위로 기입 동작 및 독출 동작을 수행하며, 블록(block, 120a) 단위로 소거 동작을 수행한다. 기입 동작이 수행되는 경우에, 상기 NOR형 플래시 메모리 장치의 벌크 기판에는 약 -0.1V 내지 약 -0.7V의 벌크 전압이 인가될 수 있다.
도 21을 참조하면, 메모리 셀 어레이(100b)는 스트링 선택 트랜지스터(SST)들, 접지 선택 트랜지스터(GST)들 및 메모리 셀(MC2)들을 포함할 수 있다. 스트링 선택 트랜지스터(SST)들은 비트 라인들(BL(1), ..., BL(m))에 연결되고, 접지 선택 트랜지스터(GST)들은 공통 소스 라인(CSL)에 연결될 수 있다. 동일한 열에 배열된 메모리 셀(MC2)들은 비트 라인들(BL(1), ..., BL(m)) 중 하나와 공통 소스 라인(CSL) 사이에 직렬로 배치될 수 있으며, 동일한 행에 배열된 메모리 셀(MC2)들은 워드 라인들(WL(1), WL(2), WL(3), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 즉, 스트링 선택 트랜지스터(SST)들과 접지 선택 트랜지스터(GST)들 사이에 메모리 셀(MC2)들이 직렬로 연결될 수 있으며, 스트링 선택 라인(SSL)과 접지 선택 라인(GSL) 사이에는 16개, 32개 또는 64개의 복수의 워드 라인들이 배열될 수 있다.
스트링 선택 트랜지스터(SST)들은 스트링 선택 라인(SSL)에 연결되어, 스트링 선택 라인(SSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있고, 접지 선택 트랜지스터(GST)들은 접지 선택 라인(GSL)에 연결되어, 접지 선택 라인(GSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있다. 메모리 셀(MC2)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
NAND형 플래시 메모리 장치는 페이지(page, 110b) 단위로 기입 동작 및 독출 동작을 수행하며, 블록(120b) 단위로 소거 동작을 수행한다. 기입 동작이 수행되는 경우에, 상기 NAND형 플래시 메모리 장치의 벌크 기판에는 약 0V의 벌크 전압이 인가될 수 있다. 한편, 실시예에 따라서, 페이지 버퍼 회로(도 3의 300)들은 각각 짝수 비트 라인과 홀수 비트 라인이 하나씩 연결될 수 있다. 이 경우, 짝수 비트 라인들은 짝수 페이지를 형성하고, 홀수 비트 라인들은 홀수 페이지를 형성하며, 메모리 셀(MC2)들에 대한 기입 동작은 짝수 페이지와 홀수 페이지가 번갈아가며 순차적으로 수행될 수 있다.
도 22를 참조하면, 메모리 셀 어레이(100b)는 수직 구조를 가지는 복수의 스트링(130c)들을 포함할 수 있다. 스트링(130c)은 제2 방향(D2)을 따라 복수 개로 형성되어 스트링 열을 형성할 수 있으며, 상기 스트링 열은 제3 방향(D3)을 따라 복수 개로 형성되어 스트링 어레이를 형성할 수 있다. 복수의 스트링(130c)들은 비트 라인들(BL(1), ..., BL(m))과 공통 소스 라인(CSL) 사이에 제1 방향(D1)을 따라 직렬로 배치되는 접지 선택 트랜지스터(GSTV)들, 메모리 셀(MC3)들 및 스트링 선택 트랜지스터(SSTV)들을 각각 포함할 수 있다.
접지 선택 트랜지스터(GSTV)들은 접지 선택 라인들(GSL11, GSL12, ..., GSLi1, GSLi2)에 각각 연결되고, 스트링 선택 트랜지스터(SSTV)들은 스트링 선택 라인들(SSL11, SSL12, ..., SSLi1, SSLi2)에 각각 연결될 수 있다. 동일한 층에 배열되는 메모리 셀(MC3)들은 워드 라인들(WL(1), WL(2), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 접지 선택 라인들(GSL11, ..., GSLi2) 및 스트링 선택 라인들(SSL11, ..., SSLi2)은 상기 제2 방향(D2)으로 연장되며 상기 제3 방향(D3)을 따라 복수 개로 형성될 수 있다. 워드 라인들(WL(1), ..., WL(n))은 상기 제2 방향(D2)으로 연장되며 상기 제1 방향(D1) 및 상기 제3 방향(D3)을 따라 복수 개로 형성될 수 있다. 비트 라인들(BL(1), ..., BL(m))은 상기 제3 방향으로 연장되며 상기 제2 방향을 따라 복수 개로 형성될 수 있다. 메모리 셀(MC3)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
도 22의 메모리 셀 어레이(100c)를 포함하는 수직형 플래시 메모리 장치는 NAND 플래시 메모리 셀들을 포함하므로, NAND형 플래시 메모리 장치와 마찬가지로 페이지 단위로 기입 동작 및 독출 동작을 수행하며, 블록 단위로 소거 동작을 수행한다.
실시예에 따라서, 하나의 스트링(130c)에 포함되는 두 개의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 연결되고 하나의 스트링에 포함되는 두 개의 접지 선택 트랜지스터들은 하나의 접지 선택 라인에 연결되도록 구현될 수도 있다. 또한, 실시예에 따라서, 하나의 스트링은 하나의 스트링 선택 트랜지스터 및 하나의 접지 선택 트랜지스터를 포함하여 구현될 수도 있다.
도 23 및 24는 메모리 셀 어레이에 포함되는 저항성 메모리 셀의 예들을 나타내는 도면들이다.
도 23을 참조하면, 단위 메모리 셀은 비트라인(BL)과 워드라인(WL) 사이에 직렬로 연결된 저항성 소자(RE1) 및 다이오드(D1)를 포함하여 구현될 수 있다. 도 23에 도시된 메모리 셀은 워드라인(WL)과 비트라인(BL) 사이의 전압에 의해 저항성 소자(RE1)의 저항 산포를 제어한다. 도 23에 도시된 메모리 셀은 저항성 소자(RE1)가 단극성인 경우의 구조를 나타내며, 이 경우, 워드라인(WL)과 비트라인(BL) 사이에 일정한 전압들을 인가하여 저항성 소자(RE1)의 양단에 걸리는 전압의 크기를 조절하거나 저항성 소자(RE1)를 통하여 흐르는 전류의 크기를 조절하여 기입 동작이 수행된다.
도 24를 참조하면, 단위 메모리 셀은 비트라인(BL)과 소스 라인(SL) 사이에 직렬로 연결된 저항성 소자(RE2) 및 셀 트랜지스터(CT1)와 같은 스위칭 소자를 포함하여 구현될 수 있다. 셀 트랜지스터(CT1)의 게이트에는 워드라인(WL)이 연결된다. 도 24에 도시된 메모리 셀은 소스 라인(SL) 과 비트라인(BL) 사이의 전압에 의해 저항성 소자(RE2)의 저항 산포를 제어한다. 도 24에 도시된 메모리 셀은 저항성 소자(RE2)가 단극성인 경우뿐만 아니라 양극성인 경우에도 이용될 수 있는 구조를 갖는다.
저항성 소자(RE2)가 단극성인 경우에는 인가되는 전압 또는 전류의 크기에 의해 저항 값이 가변되지만, 양극성인 경우에는 전압 또는 전류의 크기 및 방향에 의해 저항 값이 가변될 수 있다. 도 24에 도시된 메모리 셀은 소스 라인(SL) 과 비트라인(BL) 사이에 일정한 전압들을 인가하여 저항성 소자(RE2)의 양단에 걸리는 전압의 크기를 조절하거나 저항성 소자(RE2)를 통하여 흐르는 전류의 크기를 조절하여 기입 동작이 수행될 수도 있다.
도 25는 도 23 및 도 24의 저항성 메모리 셀들에 포함되는 단극성 저항성 소자의 일 예를 나타내는 도면이다.
도 25를 참조하면, 저항성 소자(RE1, RE2)는 상부 전극(E1), 하부 전극(E2) 및 상부 전극(E1)과 하부 전극(E2) 사이에 저항성 물질을 포함한다. 전극(E1, E2)으로는 탄탈(Ta) 또는 백금(Pt) 등이 사용될 수 있다. 저항성 물질은 코발트 산화물 등의 전이금속 산화물(VR) 또는 GexSbyTez 등의 상변화 물질(phase change material)(GST)을 포함할 수 있다. 상변화 물질(GST)은 온도 및 가열 시간에 따라 결정질 상태(AMORPHOUS STATE) 또는 비정질 상태(CRYSTALLINE STATE)가 되며 저항 값이 변화한다.
일반적으로 상변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이금속 산화물 등의 가변저항 특성을 갖는 물질을 이용한 RRAM(Resistance Random Access Memory)과 강자성 물질을 이용한 MRAM(Magneto-resistive Random Access Memory)을 구분하기도 하지만, 이를 통틀어 저항성 메모리(Resistive Memory)라 칭하기로 한다. 본 발명의 실시예들에 따른 히든 프리차지 동작을 이용한 데이터 리드 방법은 PRAM, RRAM, MRAM을 포함하는 다양한 저항성 메모리 장치에 적용될 수 있다.
상부 전극(E1)과 하부 전극(E2) 사이에 존재하는 저항성 물질은 안정한 복수의 저항 상태들의 구현을 통한 메모리 특성을 가지며, 서로 다른 특성을 나타내는 여러 가지 물질들이 연구되고 있다.
예를 들어, NDR(Negative Differential Resistance) 특성을 보이는 이성분계 산화물의 경우, 소자에 가해진 전압이 증가하여 리셋 전압(Vreset)이 되는 시점에서 저항이 급격히 증가하는 NDR 특성을 나타낸다. 이후 일정 전압까지는 저항이 큰 상태를 유지하다가 셋 전압(Vset)이 되는 시점에서 다시 저항이 낮은 상태로 변화하게 된다. 이러한 NDR 특성을 보이는 이성분계 산화물의 경우에는 저항이 큰 상태를 기입하기 위한 리셋 전압(Vreset)보다 저항이 작은 상태를 기입하기 위한 셋 전압(Vset)이 더 크다.
한편 GeSbTe와 같은 Telluride 화합물을 이용한 Chalcogenide 물질은 낮은 전압상태에서는 높은 저항을 갖지만, 충분히 큰 전압을 인가하면 저항이 낮은 상태로 변화한다. 이러한 Chalcogenide 물질은 저항이 큰 상태를 기입하기 위한 리셋 전압(Vreset)보다 저항이 작은 상태를 기입하기 위한 셋 전압(Vset)이 더 작다. 이와 같은 각 물질의 특성에 맞는 셋 전압(Vset)과 리셋 전압(Vreset)을 인가하여 저항이 상대적으로 작은 온 상태(On-State) 및 저항이 상대적으로 큰 오프 상태(Off-State)를 메모리 셀에 기입할 수 있다.
도 26은 도 24의 저항성 메모리 셀에 포함되는 양극성 저항성 소자의 일 예를 나타내는 도면이다.
저항성 소자(RE1, RE2)는 상부 전극(E1), 하부 전극(E2) 및 상부 전극(E1)과 하부 전극(E2) 사이에 나노믹(NOM;non-ohmic) 물질 및 저항성 물질(RM)을 포함한다. 이 경우에는 상부 전극(E1)과 하부 전극(E2)에 서로 반대 방향의 전압을 인가함으로써, 즉 인가 전압의 극성에 따라서, 메모리 셀의 온 상태 또는 오프 상태를 구현할 수 있다.
도 27은 메모리 셀 어레이에 포함되는 STT-MRAM 셀의 일 예를 나타내는 입체도이다.
메모리 셀(MC)은 MTJ(Magnetic Tunnel Junction) 소자 및 셀 트랜지스터(CT)를 포함할 수 있다. 셀 트랜지스터(CT)의 게이트는 워드라인(예컨대, 제 1 워드라인 WL0)에 연결되고, 셀 트랜지스터(CT)의 일 전극은 MTJ 소자를 통해 비트라인(예컨대, 제 1 비트라인 BL0)에 연결된다. 또한 셀 트랜지스터(CT)의 다른 전극은 소스 라인(SL0)에 연결된다.
MTJ 소자는 고정 층(Pinned layer, 13)과 자유 층(free layer, 11) 및 이들 사이에 터널 층(Barrier layer, 12)을 포함할 수 있다. 고정 층(13)의 자화 방향은 고정되어 있으며, 자유 층(11)의 자화 방향은 조건에 따라 고정 층(13)의 자화 방향과 같거나 역 방향이 될 수 있다. 고정 층(13)의 자화 방향을 고정시켜 주기 위하여, 예컨대, 반강자성층(anti-ferromagnetic layer, 미도시)이 더 구비될 수 있다.
STT-MRAM의 라이트 동작을 위해서는, 워드라인(WL0)에 로직 하이의 전압을 주어 셀 트랜지스터(CT)를 턴온 시키고, 비트라인(BL0)과 소스 라인(SL) 사이에 라이트 전류(WC1, WC2)를 인가한다.
STT-MRAM의 리드 동작을 위해서는, 워드라인(WL0)에 로직 하이의 전압을 인가하여 셀 트랜지스터(CT)를 턴온 시키고, 비트라인(BL0)으로부터 소스 라인(SL) 방향으로 리드 전류를 인가하여, 측정되는 저항 값에 따라 MTJ 소자에 저장된 데이터를 판별할 수 있다.
도 28은 본 발명의 실시예들에 따른 에스에스디(SSD: solid state disk or solid state drive)를 나타내는 블록도이다.
도 28을 참조하면, SSD(1000)는 복수의 비휘발성 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다.
비휘발성 메모리 장치들(1100)은 옵션적으로 외부 고전압(VPP)을 제공받도록 구현될 수 있다. 비휘발성 메모리 장치들(1100)은 전술한 바와 같이 온칩 ECC 엔진 및 온칩 랜덤화 회로를 구비하고 ECC 디코딩과 디-랜더마이징을 분리하여 독립적으로 수행하여 비휘발성 메모리 장치의 성능을 향상시킬 수 있다.
SSD 제어기(1200)는 복수의 채널들(CH1~CH4)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다. SSD 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), 에러 정정 회로(1230), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다. 에러 정정 회로(1230)는 비휘발성 메모리 장치들(1100)에 포함되는 온칩 ECC 엔진과 유사한 동작을 수행할 수 있고 실시예에 따라서 생략될 수 있다.
버퍼 메모리(1220)는 메모리 제어기(1200)의 구동에 필요한 데이터를 임시로 저장할 수 있다. 또한, 버퍼 메모리(1220)는 쓰기 요청시 파인 프로그램 동작에 이용될 데이터를 버퍼링해 놓을 수 있다. 도 28에서 버퍼 메모리(1220)는 SSD 제어기(1200) 내부에 존재하지만, 반드시 여기에 제한되지 않을 것이다. 버퍼 메모리는 SSD 제어기(1200)의 외부에 별도로 존재할 수도 있다.
에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(1100)로부터 복구된 데이터의 에러를 정정할 수 있다. 도시되지 않았지만, 메모리 제어기(1200)를 구동하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.
호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다.
도 29는 본 발명의 실시예들에 따른 임베디드 멀티 미디어 카드(eMMC: embedded multimedia card)를 나타내는 블록도이다.
도 29를 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다.
낸드 플래시 메모리 장치(2100)는 전술한 바와 같이 온칩 ECC 엔진 및 온칩 랜덤화 회로를 구비하고 ECC 디코딩과 디-랜더마이징을 분리하여 독립적으로 수행하여 비휘발성 메모리 장치의 성능을 향상시킬 수 있다.
메모리 제어기(2200)는 복수의 채널들을 통하여 낸드 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2200)는 적어도 하나의 제어기 코어(2210), 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함한다. 적어도 하나의 제어기 코어(2210)는 eMMC(2000)의 전반적인 동작을 제어한다. 호스트 인터페이스(2250)는 제어기(2210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(2260)는 낸드 플래시 메모리 장치(2100)와 제어기(2200)의 인터페이싱을 수행한다.
일 실시 예에 있어서, 호스트 인터페이스(2250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(2000)의 호스트 인터페이스(2250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.
eMMC(2000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc, 예를 들어 3.3V)은 낸드 플래시 메모리 장치(2100) 및 낸드 인터페이스(2260)에 제공되고, 제 2 전원 전압(Vccq, 예를 들어 1.8V/3.3V)은 제어기(2200)에 제공된다. 실시 예에 있어서, eMMC(2000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
도 30은 본 발명의 실시예들에 따른 유니버셜 플래시 스토리지(UFS: universal flash storage)를 나타내는 블록도이다.
도 30을 참조하면, UFS 시스템(3000)은 UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 착탈형 UFS 카드(3400)를 포함할 수 있다. UFS 호스트(3100)는 모바일 장치의 어플리케이션 프로세서일 수 있다. UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 각각은 UFS 프로토콜에 의하여 외부의 장치들과 통신할 수 있다. UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 중 적어도 하나는 전술한 ECC 제어 방법을 수행하기 위한 구성을 가질 수 있다.
한편, 임베디드 UFS 장치(3300)와 착탈형 UFS 카드(3400)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3400)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC,SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
도 31은 본 발명의 실시예들에 따른 모바일 장치를 나타내는 블록도이다.
도 31을 참조하면, 모바일 장치(4000)는 어플리케이션 프로세서(4100), 통신 모듈(4200), 디스플레이/터치 모듈(4300), 저장 장치(4400), 및 모바일 램(4500)를 포함한다.
어플리케이션 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작을 제어한다. 통신 모듈(4200)은 외부와의 유선/무선 통신을 제어하도록 구현될 수 있다. 디스플레이/터치 모듈(4300)은 어플리케이션 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 수 있다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 수 있다.
저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 전술한 ECC 제어 방법을 수행하기 위한 구성을 가질 수 있다.
모바일 램(4500)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다.
본 발명의 실시 예에 따른 메모리 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따른 비휘발성 메모리 장치 및 그 동작 방법은 ECC 디코딩과 디-랜더마이징을 분리하여 독립적으로 수행함으로써 비휘발성 메모리 장치의 성능을 향상시킬 수 있다. ECC 디코딩을 수행하는 동안에 시드값들을 저장하고 저장된 시드값들을 이용하여 디-랜더마이징을 수행함으로써 독출 시간을 감소할 수 있다. 또한 ECC 디코딩의 결과에 따라서 정정 비트들만을 페이지 버퍼 회로에 저장하고 나머지 비트들은 그대로 유지함으로써 독출 시간 및 전력 소모를 감소할 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 장치 및 그 동작 방법은 다양한 장치 및 시스템에 유용하게 적용될 수 있다. 특히 고속으로 동작하고 전력 감소가 요구되는 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 메모리 셀 어레이의 소스 페이지에 저장된 데이터를 센싱하여 센싱된 데이터를 페이지 버퍼 회로에 저장하는 단계;
    상기 페이지 버퍼 회로에 저장된 상기 센싱된 데이터에 대하여 에러 체크 및 정정(ECC: error check and correction) 디코딩을 수행하여 디코딩된 데이터를 상기 페이지 버퍼 회로에 저장하는 단계; 및
    상기 페이지 버퍼 회로에 저장된 상기 디코딩된 데이터에 대하여 상기 소스 페이지에 상응하는 시드값들을 이용하여 디-랜더마이징을 수행하여 독출 데이터를 외부 장치에 제공하는 단계를 포함하고,
    상기 페이지 버퍼 회로에 저장된 데이터 비트들 중에서 오류가 발생한 비트들만에 대하여 정정 비트들을 상기 페이지 버퍼 회로에 저장하고, 상기 오류가 발생한 비트들 이외의 나머지 비트들은 상기 페이지 버퍼 회로에 재저장하지 않고 저장된 상태를 그대로 유지하는 비휘발성 메모리 장치의 동작 방법.
  2. 제1 항에 있어서,
    상기 ECC 디코딩은 ECC 섹터의 단위로 수행되고,
    상기 디-랜더마이징은 상기 ECC 섹터에 관계없이 상기 ECC 디코딩과 서로 독립적으로 수행되는 것을 특징으로 하는 비휘발성 메모리 장치의 동작 방법.
  3. 삭제
  4. 삭제
  5. 제1 항에 있어서,
    상기 ECC 디코딩을 수행하는 동안에 시드 발생부로터 발생된 상기 시드값들을 시드 저장부에 저장하는 단계; 및
    상기 디-랜더마이징을 수행하는 동안에 상기 시드값들을 상기 시드 저장부로부터 출력하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 동작 방법.
  6. 제5 항에 있어서,
    상기 시드 저장부는 ECC 동작의 단위가 되는 ECC 섹터들에 각각 상응하는 복수의 저장 유닛들을 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 동작 방법.
  7. 제6 항에 있어서,
    상기 시드값들을 상기 시드 저장부에 저장하는 단계는,
    섹터 어드레스 신호에 기초하여 상기 ECC 섹터들에 상응하는 상기 시드값들을 상기 저장 유닛들에 각각 저장하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 동작 방법.
  8. 제7 항에 있어서,
    상기 시드값들을 상기 시드 저장부로부터 출력하는 단계는,
    컬럼 어드레스 신호에 기초하여 상기 저장 유닛들 중 하나로부터 상기 시드값들 중 컬럼 어드레스에 상응하는 시드값을 선택하여 출력하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 동작 방법.
  9. 제1 항에 있어서,
    상기 메모리 셀 어레이의 제1 페이지에 저장된 데이터를 상기 메모리 셀 어레이의 제2 페이지에 이동하여 저장하는 카피-백 동작을 수행하는 단계를 더 포함하고,
    상기 카피-백 동작의 수행시, 상기 제1 페이지에 저장된 데이터 중 일부의 비트들을 상기 외부 장치로부터 제공된 갱신 비트들로 대체하여 상기 제2 페이지에 저장하는 것을 특징으로 하는 비휘발성 메모리 장치의 동작 방법.
  10. 제9 항에 있어서,
    상기 제1 페이지에 저장된 데이터에 대하여 상기 ECC 디코딩을 수행하여 상기 페이지 버퍼 회로에 디코딩된 데이터가 저장된 상태에서, 상기 갱신 비트들에 대하여 상기 제1 페이지에 상응하는 상기 시드값들을 이용하여 상기 디-랜더마이징을 수행하여 디-랜더마이징된 갱신 비트들만을 상기 페이지 버퍼 회로에 저장하는 것을 특징으로 하는 비휘발성 메모리 장치의 동작 방법.
KR1020160031999A 2016-03-17 2016-03-17 비휘발성 메모리 장치 및 그 동작 방법 KR102511459B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160031999A KR102511459B1 (ko) 2016-03-17 2016-03-17 비휘발성 메모리 장치 및 그 동작 방법
US15/377,518 US9928140B2 (en) 2016-03-17 2016-12-13 Non-volatile memory device and method of operating the same
CN201710156724.9A CN107203435B (zh) 2016-03-17 2017-03-16 非易失性存储器设备和所述非易失性存储器设备的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160031999A KR102511459B1 (ko) 2016-03-17 2016-03-17 비휘발성 메모리 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20170108307A KR20170108307A (ko) 2017-09-27
KR102511459B1 true KR102511459B1 (ko) 2023-03-17

Family

ID=59855676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160031999A KR102511459B1 (ko) 2016-03-17 2016-03-17 비휘발성 메모리 장치 및 그 동작 방법

Country Status (3)

Country Link
US (1) US9928140B2 (ko)
KR (1) KR102511459B1 (ko)
CN (1) CN107203435B (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336303B2 (en) 2010-06-04 2022-05-17 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
KR102648774B1 (ko) * 2016-11-10 2024-03-19 에스케이하이닉스 주식회사 랜더마이즈 동작을 수행하는 반도체 메모리 장치
US10706920B2 (en) * 2017-11-02 2020-07-07 Samsung Electronics Co., Ltd. Memory device
KR20190067669A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 전자장치
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
KR20190135746A (ko) * 2018-05-29 2019-12-09 삼성전자주식회사 쓰기 버퍼 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20190139082A (ko) 2018-06-07 2019-12-17 삼성전자주식회사 메모리 장치의 비트 에러율 균등화 방법
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10853170B2 (en) * 2018-09-06 2020-12-01 Texas Instruments Incorporated ECC protected storage
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US11169873B2 (en) * 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
KR20210079556A (ko) * 2019-12-20 2021-06-30 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
CN113468518A (zh) * 2020-03-30 2021-10-01 瑞昱半导体股份有限公司 用于针对非易失性存储器进行信息保护的方法和设备
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US11610640B1 (en) * 2021-08-30 2023-03-21 Taiwan Semiconductor Manufacturing Company Limited Method for error correction coding with multiple hash groupings and device for performing the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140269065A1 (en) * 2013-03-13 2014-09-18 Winbond Electronics Corporation NAND Flash Memory

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7079653B2 (en) 1998-02-13 2006-07-18 Tecsec, Inc. Cryptographic key split binding process and apparatus
KR100543447B1 (ko) * 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US8127200B2 (en) 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US8429330B2 (en) 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
KR20100099961A (ko) * 2009-03-04 2010-09-15 삼성전자주식회사 불휘발성 메모리 장치 및 그 동작 방법
KR101552210B1 (ko) 2009-03-10 2015-09-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
KR20100111990A (ko) * 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
KR101616100B1 (ko) * 2009-09-25 2016-04-28 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
KR20110055178A (ko) * 2009-11-19 2011-05-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
US8751729B2 (en) * 2010-12-23 2014-06-10 Samsung Electronics Co., Ltd. Flash memory device and memory system including the same
KR101818209B1 (ko) * 2011-04-15 2018-01-16 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
KR101818671B1 (ko) * 2011-04-19 2018-02-28 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
KR101767649B1 (ko) 2011-05-11 2017-08-14 삼성전자주식회사 시드 생성 방법과 그것을 이용한 플래시 메모리 장치 및 메모리 시스템
KR101818445B1 (ko) * 2011-07-08 2018-01-16 삼성전자주식회사 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들
KR20130052811A (ko) 2011-11-14 2013-05-23 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR101893145B1 (ko) * 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
KR20130080203A (ko) * 2012-01-04 2013-07-12 삼성전자주식회사 셀 상태들의 비대칭 특성을 고려한 프로그램 데이터를 생성하는 방법 및 그것을 이용한 메모리 시스템
US8788910B1 (en) * 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
KR101996004B1 (ko) * 2012-05-29 2019-07-03 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템
KR102244617B1 (ko) 2014-03-13 2021-04-26 삼성전자 주식회사 논리 정보와 물리 정보를 이용하여 데이터를 처리할 수 있는 장치와 방법
KR102636039B1 (ko) * 2016-05-12 2024-02-14 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140269065A1 (en) * 2013-03-13 2014-09-18 Winbond Electronics Corporation NAND Flash Memory

Also Published As

Publication number Publication date
KR20170108307A (ko) 2017-09-27
CN107203435B (zh) 2021-10-22
US9928140B2 (en) 2018-03-27
US20170269998A1 (en) 2017-09-21
CN107203435A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
KR102511459B1 (ko) 비휘발성 메모리 장치 및 그 동작 방법
JP6202972B2 (ja) メモリシステム及びそれの読み出し校正方法
TWI734882B (zh) 儲存裝置及其操作方法
US10007572B2 (en) Memory system and method of operating the memory system
US8644066B2 (en) Multi-level non-volatile memory device, system and method with state-converted data
KR101736337B1 (ko) 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법
JP6228446B2 (ja) メモリシステムの動作方法及びメモリシステム
KR101787612B1 (ko) 비휘발성 메모리 장치의 데이터 저장 방법 및 구동 방법
US9007839B2 (en) Nonvolatile memory device performing read operation with variable read voltage
US8432735B2 (en) Memory system and related method of programming
US8661317B2 (en) Memory device using error correcting code and system thereof
KR20130052971A (ko) 비휘발성 메모리 장치의 동작 방법
US10706944B2 (en) Memory controller for controlling memory device based on erase state information and method of operating the memory controller
US9164889B2 (en) Memory system to select program operation method and method thereof
US8589767B2 (en) Systems, devices and methods using redundant error correction code bit storage
US9257181B2 (en) Sense amplification circuits, output circuits, nonvolatile memory devices, memory systems, memory cards having the same, and data outputting methods thereof
US9741440B2 (en) Memory device and read method of memory device
KR20100050789A (ko) 메모리 장치 및 그것을 포함하는 메모리 시스템
US9672933B2 (en) Threshold based multi-level cell programming for a non-volatile memory device
US12015425B2 (en) Controller and operating method thereof for determining reliability data based on syndrome weight
US20230387941A1 (en) Controller and operating method thereof for determining reliability data based on syndrome weight

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