KR20130060795A - 불휘발성 메모리 장치 및 그것의 동작 방법 - Google Patents

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

Info

Publication number
KR20130060795A
KR20130060795A KR1020110127049A KR20110127049A KR20130060795A KR 20130060795 A KR20130060795 A KR 20130060795A KR 1020110127049 A KR1020110127049 A KR 1020110127049A KR 20110127049 A KR20110127049 A KR 20110127049A KR 20130060795 A KR20130060795 A KR 20130060795A
Authority
KR
South Korea
Prior art keywords
pages
buffer
data
stored
memory
Prior art date
Application number
KR1020110127049A
Other languages
English (en)
Inventor
김승범
정재용
박기태
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110127049A priority Critical patent/KR20130060795A/ko
Priority to US13/599,773 priority patent/US20130135934A1/en
Publication of KR20130060795A publication Critical patent/KR20130060795A/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/10Programming or data input 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/08Address circuits; Decoders; Word-line control 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명의 실시 예에 따른 제 1 메모리 영역과 제 2 메모리 영역을 가지며, 상기 제 1 메모리 영역은 상기 제 2 메모리 영역에 기입되는 데이터를 버퍼링하도록 설정되는 불휘발성 메모리 장치의 동작 방법은, 상기 제 1 메모리 영역에 저장된 복수의 페이지를 센싱하여 페이지 버퍼에 저장하는 단계, 상기 페이지 버퍼에 저장된 복수의 페이지를 상기 제 2 메모리 영역에 저장하기 위한 어드레스를 제공받는 단계, 그리고 상기 어드레스를 참조하여 상기 복수의 페이지에 대한 랜덤화 연산을 수행하는 단계를 포함한다.

Description

불휘발성 메모리 장치 및 그것의 동작 방법{NONVOLATILE MEMORY DEVICE AND OPERATING METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치 및 그것의 동작 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다.
불휘발성 반도체 메모리 장치로는 마스크 롬(Mask read-only memory, MROM), 프로그램 가능한 롬(Programmable read-only memory, PROM), 소거 및 프로그램 가능한 롬(Erasable programmable read-only memory, EPROM), 전기적으로 소거 및 프로그램 가능한 롬(Electrically erasable programmable read-only memory, EEPROM) 등이 있다.
불휘발성 메모리 장치의 대표적인 예로 플래시 메모리 장치가 있다. 플래시 메모리 장치는 컴퓨터, 휴대폰, PDA, 디지털카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기, 팩스, 스캐너, 프린터 등(이하, '호스트'라 함)과 같은 정보기기들의 음성 및 영상 데이터 저장 매체로서 널리 사용되고 있다.
최근 들어 메모리 장치에 대한 고용량화 요구의 증가에 따라, 하나의 메모리 셀에 멀티 비트를 저장하는 멀티 레벨 셀(Multi-Level Cell: MLC) 또는 멀티-비트 메모리 장치들이 보편화되고 있다. 멀티 레벨 셀(MLC)의 신뢰도를 높이기 위해서는 메모리 셀들의 문턱 전압 산포 관리가 필수적이다.
본 발명의 목적은 내부에서 고속의 랜덤화 연산을 수행하여, 데이터의 신뢰성과 보안성을 높일 수 있는 불휘발성 메모리 장치 및 그것의 동작 방법을 제공하는 데 있다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 제 1 메모리 영역과 제 2 메모리 영역을 가지며, 상기 제 1 메모리 영역은 상기 제 2 메모리 영역에 기입되는 데이터를 버퍼링하도록 설정되는 불휘발성 메모리 장치의 동작 방법은, 상기 제 1 메모리 영역에 저장된 복수의 페이지를 센싱하여 페이지 버퍼에 저장하는 단계, 상기 페이지 버퍼에 저장된 복수의 페이지를 상기 제 2 메모리 영역에 저장하기 위한 어드레스를 제공받는 단계, 그리고 상기 어드레스를 참조하여 상기 복수의 페이지에 대한 랜덤화 연산을 수행하는 단계를 포함한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 불휘발성 메모리 장치는, 메인 영역과, 상기 메인 영역으로 저장될 복수의 페이지 데이터를 일시 저장하는 버퍼 영역을 포함하는 셀 어레이, 상기 메인 영역과 상기 버퍼 영역에 대한 데이터의 쓰기 동작이나 읽기 동작을 수행하는 페이지 버퍼, 그리고 상기 페이지 버퍼에 저장된 데이터에 대해서 외부로부터 제공되는 어드레스를 참조하여 랜덤화하는 온칩 랜더마이저를 포함한다.
본 발명의 불휘발성 메모리 장치 및 그것의 동작 방법에 따르면, 불휘발성 메모리 장치의 내부에서 효율적인 랜덤화 연산이 가능하다. 따라서, 불휘발성 메모리 장치의 성능과, 불휘발성 메모리 장치에 저장되는 데이터의 신뢰성(Integrity)을 높일 수 있다.
도 1은 본 발명의 실시 예에 따른 멀티-레벨 메모리 장치에 적용되는 어드레스 스크램블 방식의 일 예를 보여주는 도면이다.
도 2는 메모리 셀이 3-비트 데이터를 저장하고, 3 스텝 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 일 실시 예에 따른 불휘발성 메모리 장치의 구성을 보여주는 블록도이다.
도 4는 도 3의 페이지 버퍼의 구조를 예시적으로 보여주는 블록도이다.
도 5는 도 4의 온칩 랜더마이저의 구성을 간략히 보여주는 블록도이다.
도 6은 도 5의 랜덤열 발생기의 구성을 예시적으로 보여주는 블록도이다.
도 7은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 메인 프로그램 방법을 보여주는 블록도이다.
도 8은 도 7의 실시 예에 따른 동작 절차를 보여주는 순서도이다.
도 9는 본 발명의 다른 실시 예에 따른 불휘발성 메모리 장치의 메인 프로그램 방법을 간략히 보여주는 블록도이다.
도 10은 도 9의 실시 예에 따른 동작 절차를 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 12는 도 11의 메모리 시스템의 명령어 시퀀스를 보여주는 타이밍도이다.
도 13a 및 도 13b는 온칩 랜덤화 연산(OCR Operation)의 구체적인 실시 예들을 설명하기 위한 타이밍도들이다.
도 14는 도 3의 셀 어레이를 예시적으로 보여주는 블록도이다.
도 15는 도 14의 메모리 블록의 구조를 보여주는 평면도이다.
도 16은 도 15의 메모리 블록의 Ⅰ-Ⅰ' 선의 절단면과 측면을 동시에 보여주는 사시 단면도이다.
도 17은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 보여주는 블록도이다.
도 19는 본 발명의 실시 예에 따른 메모리 카드를 예시적으로 보여주는 블록도이다.
도 20은 본 발명에 따른 플래시 메모리 장치 및 그것을 포함하는 컴퓨팅 시스템의 개략적인 구성을 보여주는 도면이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. 동일한 구성 요소들은 동일한 참조번호를 이용하여 인용될 것이다. 유사한 구성 요소들은 유사한 참조번호들을 이용하여 인용될 것이다. 아래에서 설명될 본 발명에 따른 플래시 메모리 장치의 회로 구성과, 그것에 의해 수행되는 읽기 동작은 예를 들어 설명한 것에 불과하며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다.
도 1은 본 발명의 실시 예에 따른 멀티-레벨 불휘발성 메모리 장치에 적용되는 어드레스 스크램블 방식을 예시적으로 보여주는 도면이다. 메모리 셀에 저장되는 비트 수가 증가함에 따라, 멀티-레벨(또는, 멀티-비트) 데이터를 저장하는 메모리 장치의 신뢰성을 확보하는 것이 점차 어려워지고 있다. 신뢰성을 떨어뜨리는 요인들 중 하나가 인접 메모리 셀들 사이에 발생하는 커플링 문제이다. 커플링에 의하여 메모리 셀들의 문턱 전압은 의도하지 않은 방향으로 변화한다. 예를 들면, 이전에 프로그램된 메모리 셀의 문턱 전압은 인접한 메모리 셀이 프로그램될 때 발생하는 커플링으로 인해서 변화될 수 있다. 그러한 커플링을 효율적으로 관리하기 위해서 어드레스 스크램블 방식이 멀티-레벨 메모리 장치에 적용될 수 있다.
설명의 간략화를 위해서, 하나의 메모리 셀에 3-비트 데이터가 저장된다는 가정하에 어드레스 스크램블 방식이 설명될 것이다. 또한, 도시의 편의상, 도 1에는 단지 4개의 워드 라인들(WL0~WL3)이 도시되어 있다. 복수의 메모리 셀들(MC)이 워드 라인들(WL0~WL3) 각각에 연결될 것이다.
먼저, 하위 2-비트 데이터가 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들 각각에 저장되는 제 1 스텝(step_1) 프로그램 동작이 수행될 것이다. 즉, 제 1 스텝(step_1) 프로그램 동작 동안, 2개의 페이지 데이터가 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 저장될 것이다. 이는 도 1에서 ①로 표기되어 있다. 그 다음에, 두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 대해서 제 1 스텝(step_1) 프로그램 동작이 수행될 것이다. 이는 도 1에서 ②로 표기되어 있다.
두 번째 워드 라인(WL1)에 대한 제 1 스텝(step_1) 프로그램 동작이 수행된 후, 두 번째 워드 라인(WL1)의 아래에 위치하고 하위 2-비트 데이터가 프로그램된 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 하위 2-비트와 상위 1-비트 데이터가 저장되는 제 2 스텝(step_2) 프로그램 동작이 수행될 것이다. 이는 도 1에서 ③으로 표기되어 있다. 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 대해서 제 2 스텝(step_2) 프로그램 동작이 수행된 후, 세 번째 워드 라인(WL2)에 연결된 메모리 셀들에 대해서 제 1 스텝(step_1) 프로그램 동작이 수행될 것이다. 이는 도 1에서 ④로 표기되어 있다.
세 번째 워드 라인(WL2)에 연결된 메모리 셀들에 대해서 제 1 스텝(step_1) 프로그램 동작이 수행된 후, 하위 2-비트 데이터가 프로그램된 두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 하위 2-비트와 상위 1-비트 데이터가 저장되는 제 2 스텝(step_2) 프로그램 동작이 수행될 것이다. 이는 도 1에서 ⑤로 표기되어 있다.
두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 대해서 제 2 스텝(step_2) 프로그램 동작이 수행된 후, 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 대해서 제 3 스텝(step_3) 프로그램 동작이 수행될 것이다. 이는 도 1에서 ⑥으로 표기되어 있다. 이 후, 제 1 스텝(step_1) 프로그램 동작, 제 2 스텝(step_2) 프로그램 동작, 제 3 스텝(step_3) 프로그램 동작들이 앞서 설명된 순서(도 1 참조)에 따라 순차적으로 수행될 것이다. 이렇게, 도 1에서 설명된 프로그램 순서에 따라 워드 라인들(WL0~WL3)이 선택되는 방식을 어드레스 스크램블 방식이라 칭한다.
제 1 스텝(step_1) 프로그램 동작과 제 2 스텝(step_2) 프로그램 동작이 완료되면, N-비트 데이터(N은 2 또는 그 보다 큰 정수)에 대응하는 문턱 전압 분포들(예를 들면, 2N개의 문턱 전압 분포들)이 모두 형성될 것이다. 제 2 스텝(step_2) 프로그램 동작이 완료됨에 따라 모든 문턱 전압 분포들이 형성되더라도, 문턱 전압 분포들 사이의 마진(즉, 간격)은 문턱 전압 분포들을 명확하게 구분하기에 충분하지 않을 것이다. 문턱 전압 분포들을 명확하게 구분하기에 충분한 마진을 확보하기 위해서 제 3 스텝(step_3) 프로그램 동작이 수행될 것이다. 제 3 스텝(step_3) 프로그램 동작은 문턱 전압 분포들 각각의 폭을 좁히기 위해서 수행된다. 이를 위해서, 제 2 스텝(step_2) 프로그램 동작에서 사용되는 문턱 전압 분포들의 검증 전압들보다 소정의 전압만큼 각각 높은 검증 전압들이 제 3 스텝(step_3) 프로그램 동작에서 사용될 것이다. 이러한 프로그램 방식을 통해서 인접한 메모리 셀들 사이의 커플링을 줄이는 것이 가능하다. 이러한 프로그램 방법을 재프로그램 방법이라 칭한다.
예시적으로, 3-비트 데이터를 메모리 셀에 저장하기 위한 재프로그램 방법, 즉, 제 1 스텝 프로그램, 제 2 스텝 프로그램, 제 3 스텝 프로그램이 2-비트 데이터 또는 4-비트 데이터를 메모리 셀에 저장하기 위한 재프로그램 방법에도 모두 적용될 수 있음은 잘 이해될 것이다. 더불어, 하위 2-비트 데이터가 제 1 스텝(step_1)에서 프로그램되고, 제 2 내지 제 3 스텝(step_2 ~ step_3)에서 각각 3-비트 데이터가 프로그램되는 예시가 어드레스 스크램블 방식으로 설명되었다. 문턱 전압의 상태 수를 고려하면, 제 1 스텝(step_1)에서 4개 상태, 제 2 스텝(step_2)과 제 3 스텝(step_3)에서 각각 8개 상태가 프로그램될 수 있다(4-8-8 방식). 하지만, 이러한 프로그램 방식은 예시적인 것에 불과하다. 즉, 제 1 스텝(step_1)에서 3-비트 데이터가 모두 프로그램되거나(8-8-8 방식), 또는 제 1 스텝(step_1)에서 주변 셀들에 간섭을 가장 크게 미치는 프로그램 절차를 미리 실행하는 방식(5-8-8)이 이용될 수 있다.
앞서 설명된 재프로그램 방법을 통해 멀티-비트 데이터를 저장하기 위해서는, 선택된 메모리 셀들에 대한 제 3 스텝(step_3) 프로그램 동작이 종료될 때까지 해당 데이터를 다른 메모리 셀들에 유지할 필요가 있다. 예를 들면, 제 1 스텝(step_1) 프로그램 동작은 메모리 컨트롤러에서 멀티-레벨 메모리 장치에 제공되는 데이터에 의거해서 수행될 수 있다. 제 2 스텝(step_2) 프로그램 동작은 제 1 스텝(step_1) 프로그램 동작을 통해 메모리 셀에 저장된 데이터와 메모리 컨트롤러에서 후속하여 제공되는 데이터에 의거해서 수행될 것이다. 그리고 제 3 스텝(step_3) 프로그램 동작은 제 1 스텝(step_1) 프로그램 동작과 제 2 스텝(step_2) 프로그램 동작을 통해 메모리 셀에 저장된 데이터에 의거해서 수행될 것이다.
하지만, 앞서 설명된 바와 같이, 제 1 스텝(step_1) 프로그램 동작과 제 2 스텝(step_2) 프로그램 동작을 통해 메모리 셀에 저장된 데이터를 정확하게 읽는 것은 어려울 것이다. 이는 제 3 스텝(step_3) 프로그램 동작에 필요한 데이터는 메모리 컨트롤러에서 멀티-레벨 메모리 장치로 제공되어야 함을 의미한다. 그러한 까닭에, 임의의 워드 라인에 대한 제 3 스텝(step_3) 프로그램 동작이 종료될 때까지 임의의 워드 라인의 메모리 셀들에 저장된 데이터가 메모리 컨트롤러에 의해서 유지될 것이다. 이는 제 3 스텝(step_3) 프로그램 동작에 필요한 데이터를 유지하기 위한 큰 용량의 버퍼 메모리가 메모리 컨트롤러에 포함됨을 의미한다.
도 2는 메모리 셀이 3-비트 데이터를 저장하고, 제 3 스텝(step_3) 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포를 예시적으로 보여주는 도면이다.
먼저, 선택된 워드 라인(예를 들면, 도 1의 첫 번째 워드 라인(WL0))의 메모리 셀들에는 2개의 페이지 데이터(즉, 제 1 및 제 2 페이지 데이터)가 저장될 것이다. 이때, 도 2의 박스(11)에 도시된 바와 같이, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(Q1, Q2, Q3)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 선택된 워드 라인(WL0)에 속한 제 1 스텝(step_1) 프로그램된 메모리 셀들에 대한 제 2 스텝(step_2) 프로그램 동작은 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들에 대한 제 1 스텝(step_1) 프로그램 동작 이후에 수행될 것이다. 이때, 도 2의 박스(12)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 제 1 스텝(step_1) 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 것이다.
그 다음에, 선택된 워드 라인(WL0)의 메모리 셀들에는 상위 1개의 페이지 데이터(즉, 제 3 페이지 데이터)가 더 저장될 것이다. 이때, 도 2의 박스(13)에 도시된 바와 같이, 이전 상태에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 예를 들면, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태(P1')에 대응하는 문턱 전압 분포에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q1)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P2'~P3') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q2)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P4'~P5') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q3)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P6'~P7') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 선택 워드 라인(WL0)에 속한 제 2 스텝(step_2) 프로그램된 메모리 셀들에 대한 제 3 스텝(step_3) 프로그램 동작은 인접한 워드 라인들(예를 들면, WL1 및 WL2)에 대한 제 2 스텝(step_2) 프로그램 동작 및 제 1 스텝(step_1) 프로그램 동작 이후에 수행될 것이다. 이때, 도 2의 박스(14)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 제 2 스텝(step_2) 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인들(예를 들면, WL1 및 WL2)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해서 넓어질 것이다. 이러한 이유로, 제 2 스텝(step_2) 프로그램된 메모리 셀들에 저장된 데이터들을 정확하게 읽는 것이 어렵다.
도 2의 박스(15)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 메모리 셀들은 최종 문턱 전압 분포들(P1~P7)을 갖도록 프로그램될 것이다. 이러한 동작은 제 3 스텝(step_3) 프로그램 동작을 통해 수행된다. 앞서 설명된 바와 같이, 제 3 스텝(step_3) 프로그램 동작은 이전에 프로그램된 데이터(예를 들면, 제 1 내지 제 3 페이지 데이터)를 필요로 한다. 제 3 스텝(step_3) 프로그램 동작은 선택 워드 라인(WL0)에 속한 메모리 셀들에 저장된 이전에 프로그램된 데이터를 정확하게 읽는 것이 어렵기 때문에 메모리 컨트롤러로부터 제공되는 데이터(또는, 메모리 장치에 의해서 유지되는 데이터)에 의거해서 수행될 것이다.
도 2의 박스(16)에 도시된 바와 같이, 제 3 스텝(step_3) 프로그램된 메모리 셀들의 문턱 전압 분포들 역시 인접한 워드 라인들에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 수 있다. 이후, 각 워드 라인에 대한 제 1 스텝(step_1) 프로그램 동작, 제 2 스텝(step_2) 프로그램 동작, 제 3 스텝(step_3) 프로그램 동작이 도 1에서 설명된 프로그램 순서에 따라 수행되며, 이는 도 2에서 설명된 것과 동일한 방식으로 수행될 것이다.
여기서, 제 1 스텝(step_1) 및 제 2 스텝(step_2) 프로그램을 산포의 확장을 고려하여 개략적으로 프로그램하는 코어스 프로그램(Coarse program)이라고 한다. 반면, 제 3 스텝(step_3)에서 수행되는 프로그램의 목적은 메모리 셀들의 산포를 협소(Tight)하게 관리하기 위한 파인 프로그램(Fine program)이라고 한다. 코어스 프로그램 과정과 파인 프로그램과정에서 사용되는 프로그램 전압(예를 들면, 증가 전압 ΔV)이나 검증 전압의 레벨은 달라질 수 있다.
마찬가지로, 박스(11)에 도시된 제 2 스텝(step_1)에서 하위 2-비트 데이터가 프로그램되고, 제 2 내지 제 3 스텝(step_2 ~ step_3)에서 각각 3-비트 데이터가 프로그램되는 예시(4-8-8 방식)가 설명되었다. 하지만, 이러한 프로그램 방식은 예시적인 것에 불과하며, 제 1 스텝(step_1)에서 3-비트 데이터가 모두 프로그램되거나(8-8-8 방식), 또는 5개 상태가 프로그램되는 방식(5-8-8)이 적용될 수 있음을 잘 이해될 것이다.
도 3은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다. 도 3을 참조하면, 불휘발성 메모리 장치(100)는 셀 어레이(110), 행 디코더(120), 페이지 버퍼(130), 온칩 랜더마이저(140), 입출력 버퍼(150), 그리고 제어 로직(160)을 포함한다.
셀 어레이(110)는 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)을 통해 행 디코더(120)에 연결된다. 셀 어레이(110)는 비트 라인(BL)을 통해서 페이지 버퍼(130)에 연결된다. 셀 어레이(110)는 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함한다. 특히, 셀 어레이(110)를 구성하는 메모리 영역은 버퍼 영역(112)과 메인 영역(114)으로 크게 분류될 수 있다. 프로그램 동작시, 먼저 데이터는 버퍼 영역(112)에 기입된 후, 메인 영역(114)에 프로그램된다. 버퍼 영역(112)에 데이터를 프로그램하는 동작을 버퍼 프로그램 동작, 그리고 메인 영역(114)에 데이터를 프로그램하는 동작을 메인 프로그램 동작이라 칭하기로 한다.
메인 프로그램 동작은 버퍼 메모리 영역(112)에 저장된 데이터와 관련된 어드레스 정보에 따라 수행될 것이다. 예시적으로, 버퍼 영역(112)에 대한 최소 프로그램 단위와 메인 영역(114)에 대한 최소 프로그램 단위는 프로그램 방식, 셀 당 저장되는 데이터 비트 수 등에 따라 다양하게 결정될 수 있다. 본 발명의 실시 예에 따르면, 버퍼 영역(112)에 대한 최소 프로그램 단위와 메인 영역(114)에 대한 최소 프로그램 단위는 서로 다를 것이다.
본 발명의 실시 예에 따르면, 셀 어레이(110)의 메모리 블록들은 적어도 버퍼 영역(112)과 메인 영역(114)으로 구분될 것이다. 여기에서, 메모리 영역들(112 및 114)은 물리적인 것이 아니라 논리적으로 구분될 수 있음은 잘 이해될 것이다. 즉, 메모리 영역들(112 및 114)은 논리적으로 가변 가능할 것이다. 버퍼 영역(112)에 속한 메모리 블록들은 메인 영역(114)에 속한 메모리 블록들과 다른 방식으로 프로그램될 것이다. 예를 들면, 버퍼 영역(112)에 속한 메모리 블록들은 싱글-비트 프로그램 방식(이하, SLC 프로그램 방식이라 칭함)에 따라 프로그램되고, 메인 영역(114)에 속한 메모리 블록들은 멀티-비트 프로그램 방식(이하, MLC 프로그램 방식이라 칭함)에 따라 프로그램될 수 있을 것이다.
다른 예로써, 버퍼 영역(112)에 속한 메모리 블록들과 메인 영역(114)에 속한 메모리 블록들은 MLC 프로그램 방식에 따라 프로그램될 것이다. 예를 들면, 메인 영역(114)에 속한 메모리 블록들은 앞서 설명된 N-스텝 프로그램 방식에 따라 프로그램될 수 있다. 다시 말해서, 버퍼 영역(112)에 속한 메모리 셀들 각각은 1-비트 데이터를 저장하고, 메인 영역(114)에 속한 메모리 셀들 각각은 N-비트 데이터들(N은 3 또는 그보다 큰 정수)을 저장할 것이다. 또한, 버퍼 영역(112)에 속한 메모리 셀들 각각은 메인 영역(114)에 속한 메모리 셀들 각각에 저장되는 N-비트(N은 3 또는 그보다 큰 정수)보다 작은 수의 데이터 비트들을 저장할 것이다.
행 디코더(120)는 행 어드레스(ADDR)에 응답하여 셀 어레이(110)의 메모리 블록들 중 어느 하나를 선택할 수 있다. 행 디코더(120)는 선택된 메모리 블록의 워드 라인들 중 어느 하나를 선택할 수 있다. 행 디코더(120)는 선택된 메모리 블록의 워드 라인들에 워드 라인 전압(VWL)을 전달한다. 행 디코더(120)는 선택된 메모리 블록의 선택 라인들(예를 들면, SSL이나 GSL)에 선택 신호들을 전달한다. 행 디코더(120)는 선택 워드 라인(Selected WL)에 프로그램 전압(Vpgm)과 검증 전압(Vvfy)을, 비선택 워드 라인(Unselected WL)에는 패스 전압(Vpass)을 전달할 수 있다.
페이지 버퍼(130)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 프로그램 동작시, 페이지 버퍼(130)는 셀 어레이(110)의 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 전달한다. 읽기 동작시, 페이지 버퍼(130)는 선택된 메모리 셀에 저장된 데이터를 비트 라인을 통해서 감지한다. 페이지 버퍼(130)는 감지된 데이터를 래치하여 외부로 출력할 수 있다.
온칩 랜더마이저(140)는 셀 어레이(110)에 프로그램될 데이터에 대한 랜덤화 연산을 수행하도록 구성된다. 온칩 랜더마이저(140)는 셀 어레이(110)로부터 센싱되어 페이지 버퍼(130)에 저장된 데이터에 대한 디-랜덤화 연산을 수행할 수 있다. 특히, 본 발명의 실시 예에 따른 온칩 랜더마이저(140)는 버퍼 영역(112)으로부터 읽혀진 복수의 페이지들에 대한 랜덤화 연산을 수행할 수 있다. 메인 영역(114)으로의 프로그램 명령이 제공될 때, 타깃 어드레스가 외부로부터 제공될 것이다. 온칩 랜더마이저(140)는 외부로부터 제공되는 타깃 어드레스로부터 시드(Seed)를 획득할 수 있다. 온칩 랜더마이저(140)는 시드(Seed)를 참조하여 랜덤열(Random Sequence: RS)을 생성할 수 있다. 온칩 랜더마이저(140)는 생성된 랜덤열(RS)을 이용하여 타깃 영역에 저장될 복수의 페이지를 랜덤화한다. 랜덤화된 복수의 페이지들은 이후 타깃 영역에 프로그램될 것이다.
온칩 랜더마이저(140)는 읽기 동작시 디-랜덤화 연산을 수행할 수 있다. 메인 영역(114)으로부터의 독출 데이터는 페이지 버퍼(130)에 먼저 래치된다. 그리고 래치된 독출 데이터는 온칩 랜더마이저(140)에 의해서 랜덤화 연산시에 사용된 랜덤열(RS)에 의하여 디-랜덤화된다. 그리고 디-랜덤화된 독출 데이터는 입출력 버퍼(150)를 통해서 외부로 출력될 수 있다.
입출력 버퍼(150)는 프로그램 동작시에 입력받는 쓰기 데이터를 페이지 버퍼 (130)에 전달한다. 입출력 버퍼(150)는 읽기 동작시에 페이지 버퍼(130)로부터 제공되는 읽기 데이터를 외부로 출력한다. 입출력 버퍼(150)는 입력되는 어드레스 또는 명령어를 제어 로직(160)이나 행 디코더(120), 온칩 랜더마이저(140)에 전달한다.
제어 로직(160)은 입출력 버퍼(150)로부터 전달되는 명령어(CMD) 및 어드레스(ADDR)에 응답하여 페이지 버퍼(130) 및 온칩 랜더마이저(140)를 제어한다. 제어 로직(160)은 입출력 버퍼(150)를 통해서 제공되는 쓰기 명령어, 읽기 명령어, 소거 명령에 응답하여 선택된 메모리 영역에 대한 명령을 수행한다.
본 발명의 실시 예에 따르면, 불휘발성 메모리 장치(100)는 온칩 랜더마이저(140)를 포함한다. 특히, 메인 프로그램 동작시에는 입력되는 타깃 어드레스에 응답하여 프로그램 데이터에 대한 랜덤화 연산을 수행한다. 그리고 랜덤화된 데이터는 타깃 영역에 프로그램될 것이다. 본 발명의 랜덤화 연산에 따라 워드 라인 커플링으로 인해 생기는 메모리 셀들의 문턱 전압들의 변화를 줄이는 것이 가능하다. 다시 말해서, 메모리 셀들의 상태들이 균일하게 분포되기 때문에, 메모리 셀들 간에 생기는 워드 라인 커플링의 정도가 데이터 랜덤화 이전과 비교하여 볼 때 상대적으로 완화될 것이다. 즉, 메모리 셀들의 문턱 전압들의 변화가 억제될 것이다. 이는 읽기 마진의 향상 즉, 신뢰성의 향상을 의미한다.
도 4는 본 발명의 실시 예에 따른 페이지 버퍼(130)와 온칩 랜더마이저(140)의 구성을 간략히 보여주는 블록도이다. 도 4를 참조하면, 페이지 버퍼(130)는 비트 라인들(BL0~BLm-1) 각각에 연결되는 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)을 포함한다. 온칩 랜더마이저(140)는 페이지 버퍼 회로들(131, 132, 133, …, 134)에 저장된 데이터에 대한 랜덤화 연산 또는 디-랜덤화 연산을 수행한다.
페이지 버퍼 회로들(131, 132, 133, …, 134) 각각은 복수의 래치들(L1, L2, L3, L4, …)을 포함한다. 버퍼 프로그램 동작이나 메인 프로그램 동작시 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 래치들에는 프로그램될 데이터가 로드된다. 메인 프로그램 동작을 위해서, 버퍼 영역(112)에 저장된 복수의 페이지 데이터가 센싱되어 래치들에 순차적으로 저장될 것이다. 예를 들면, 버퍼 영역(112)에 저장된 제 1 페이지(1st page)가 센싱되어 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 제 1 래치(L1)에 저장될 것이다. 버퍼 영역(112)에 저장된 제 2 페이지(2nd page)가 센싱되어 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 제 2 래치(L2)에 저장될 것이다. 버퍼 영역(112)에 저장된 제 3 페이지(3rd page)가 센싱되어 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 제 3 래치(L1)에 저장될 것이다. 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 제 4 래치(L4)에는 랜덤화 연산을 위한 랜덤 정보(R_data)가 저장될 수 있다.
버퍼 영역(112)에 대한 읽기가 완료되면, 메인 영역(114)의 타깃 영역에 대한 복수의 페이지들에 대한 프로그램 명령을 수신한다. 타깃 영역에 대한 프로그램 명령에는 타깃 영역에 대한 타깃 어드레스가 포함된다. 타깃 어드레스가 입력되면, 온칩 랜더마이저(140)는 타깃 어드레스에 대응하는 시드(Seed)를 생성한다. 온칩 랜더마이저(140)는 생성된 시드(Seed)를 이용해서 랜덤열(RS)을 생성한다. 온칩 랜더마이저(140)는 시드(Seed) 또는 랜덤열을 랜덤 정보(R_data)로서 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 제 4 래치(L4)에 저장할 수 있다.
온칩 랜더마이저(140)는 생성된 랜덤열(RS)을 참조하여 복수의 페이지들 각각에 대한 랜덤화 연산을 수행한다. 랜덤화 연산에 따라, 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 래치들(L1, L2, L3)에는 랜덤화된 데이터가 셋팅된다. 이후에, 페이지 버퍼(130)는 복수의 페이지를 선택된 타깃 영역으로 앞서 도 1 및 도 2에서 설명한 방식에 따라 프로그램하게 될 것이다.
여기서, 버퍼 영역(112)에 저장된 복수의 페이지들은 버퍼 프로그램 동작시에 랜덤화된 데이터일 수 있다. 이 경우, 복수의 페이지가 센싱된 후에는 각각의 페이지에 대한 디-랜덤화 연산이 추가적으로 수행되어야 할 것이다.
도 5는 본 발명의 실시 예에 따른 온칩 랜더마이저(140)를 간략히 보여주는 블록도이다. 도 5를 참조하면, 온칩 랜더마이저(140)는 시드 발생기(142), 랜덤열 발생기, 그리고 믹서(Mixer, 146)를 포함할 수 있다.
시드 발생기(142)는 타깃 어드레스(ADDR)를 참조하여 복수의 페이지들 각각을 랜덤화하기 위한 시드(Seed)를 생성한다. 예를 들면, 타깃 영역에 기입될 페이지들 각각에 대한 시드(Seed)는 블록 내에서의 상대적인 위치에 따라 선택되도록 룩업 테이블로 제공될 수 있다. 이 경우, 시드 발생기(142)는 타깃 어드레스(ADDR)를 참조하여 복수의 페이지들 각각에 대한 시드를 룩업 테이블로부터 획득할 수 있다. 하나의 페이지에 대응하는 시드(Seed)가 생성되면, 시드 발생기(142)는 생성된 시드(Seed)를 랜덤열 발생기(144)로 전달한다.
랜덤열 발생기(144)는 시드 발생기(142)로부터 제공된 시드(Seed)를 이용하여 랜덤열(RS)을 생성한다. 랜덤열 발생기(144)는 입력되는 시드(Seed)를 초기값으로 하는 랜덤열(RS)을 생성한다. 예를 들면, 랜덤열 발생기(144)는 피보나치 방식(Fibonacci configuration)으로 동작하는 선형 피드백 시프트 레지스터(LSFR)로 구성될 수 있다.
랜덤화 연산을 위해서 랜덤열 발생기(144)에 의해서 생성된 랜덤열(RS)은 믹서(146)에 의해서 입력 데이터(Din)와 믹싱된다. 예를 들면, 랜덤열(RS) 각각의 비트들은 입력 데이터(Din) 각각의 비트들과 배타적 논리합(XOR) 연산에 따라 출력 데이터(Dout)를 생성하게 될 것이다. 여기서, 입력 데이터(Din)는 페이지 버퍼(130)에 저장된 복수의 페이지 데이터일 수 있다. 믹서(146)에 의해서 생성된 랜덤화된 데이터(Dout)에 의해서 페이지 버퍼(130)의 래치들(L1, L2, L3)이 재설정될 것이다.
도 6은 도 5의 랜덤열 발생기의 예를 보여주는 도면이다. 도 6을 참조하면, 4개의 플립플롭으로 구성되는 피보나치 방식의 랜덤 시퀀스를 생성하는 랜덤열 발생기(144)가 도시되어 있다. 이러한 랜덤열 발생기(144)를 구성하기 위한 생성 다항식 g(X)는 아래 수학식 1으로 나타낼 수 있다.
Figure pat00001
즉, 복수의 플립플롭으로 구성된 선형 피드백 시프트 레지스터(LFSR)로 랜덤열 발생기(144)가 구성될 수 있다. 여기서, 플립플롭들(D0, D1, D2, D3)에 저장되는 각각의 이진 값들이 시드에 해당한다. 그리고 클록 사이클의 증가에 따라 출력되는 비트열이 바로 랜덤 시퀀스(RS)가 될 것이다.
랜덤열 발생기(144)의 플립플롭들(D0, D1, D2, D3)의 초기값이 [1 0 0 0]으로 가정하자. 그러면, 클록 사이클의 증가에 따라 15 클록 이후에는 레지스터들(D0, D1, D2, D3)의 값은 초기와 동일하게 설정된다. 그 이후(T=15)에는 처음의 사이클 증가 때와 동일한 방식으로 레지스터들(D0, D1, D2, D3)의 데이터 상태가 설정될 것이다. 이때, 레지스터(D3)의 출력 측으로 전달되는 비트열이 랜덤 시퀀스로서 제공될 수 있다. 도시한 랜덤열 발생기(144)는 피보나치 방식(Fibonacci Configuration)의 랜덤열을 생성하는 일 예에 불과하다. 다양한 방식의 랜덤열 발생기(144)가 제공될 수 있음을 잘 이해될 것이다.
도 7은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 메인 프로그램 방법을 간략히 보여주는 블록도이다. 도 7을 참조하면, 불휘발성 메모리 장치(100)는 메인 프로그램 동작시에 타깃 어드레스에 응답하여 프로그램 데이터에 대한 랜덤화 연산을 수행한다. 좀더 자세히 설명하면 다음과 같다.
버퍼 영역(112)에 저장된 복수의 페이지를 메인 영역(114)의 타깃 영역으로 프로그램하기 위해서는 버퍼 영역(112)에 대한 읽기 동작이 우선되어야 한다. 따라서, 버퍼 영역(112)에 저장된 복수의 페이지들이 페이지 버퍼(130)에 의해서 센싱된다. 이러한 동작은 인용부호 (①)의 데이터 경로로 도시되어 있다. 센싱된 복수의 페이지 데이터는 페이지 버퍼(130)의 내부에 구비되는 래치들(L1, L2, L3)에 저장되어 유지될 것이다.
버퍼 영역(112)에 대한 읽기가 완료되면, 외부로부터 읽혀진 복수의 페이지에 대한 메인 영역(114)으로의 쓰기 명령을 제공받는다. 쓰기 명령에는 타깃 영역(Target area)에 대응하는 타깃 어드레스(Target address)가 포함될 것이다. 온칩 랜더마이저(140)는 래치에 저장된 복수의 페이지에 대한 랜덤화 연산을 수행하기 위한 타깃 어드레스를 제공받는다. 이러한 절차는 인용부호(②)로 표시되어 있다.
타깃 어드레스(Target address)가 제공되면, 온칩 랜더마이저(140)는 타깃 어드레스를 참조하여 페이지 버퍼(130)에 저장된 복수의 페이지에 대한 랜덤화 연산을 수행한다. 이러한 절차는 인용부호 (③)에 도시되어 있다. 랜덤화 연산을 위해서 온칩 랜더마이저(140)는 시드(Seed)를 생성한다. 온칩 랜더마이저(140)는 시드를 이용하여 랜덤열(RS)을 생성한다. 온칩 랜더마이저(140)는 랜덤열(RS)을 이용하여 복수의 페이지들 각각에 대한 랜덤화 연산을 수행한다.
복수의 페이지들에 대한 랜덤화 연산이 완료되면, 페이지 버퍼(130)는 타깃 영역에 복수의 페이지들을 프로그램한다. 타깃 영역에 프로그램되는 복수의 페이지들은 앞서 도 2에서 설명된 방식으로 타깃 영역의 메모리 셀들에 프로그램된다. 이러한 절차는 인용부호(④)로 도시되어 있다.
온칩 랜더마이저(140)는 메인 영역(114)에 대한 타깃 어드레스(Target address)를 참조하여 복수의 페이지들에 대한 랜덤화 연산을 수행한다. 따라서, 타깃 어드레스를 이용한 랜덤화 연산이 완료된 복수의 페이지들은 메인 영역(114)의 타깃 영역으로 프로그램될 것이다.
도 8은 도 7의 실시 예에 따른 동작 절차를 구체적으로 설명하는 순서도이다. 도 8을 참조하면, 본 발명의 예시적인 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
S110 단계에서, 버퍼 영역(112)에 저장된 복수의 페이지에 대한 버퍼 읽기 동작이 수행된다. 버퍼 영역(112)에 저장된 복수의 페이지를 읽기 위해서는 외부로부터의 읽기 명령이 제공될 것이다. 버퍼 읽기 동작시에, 페이지 버퍼(130)에 포함되는 페이지 버퍼 회로들 각각의 래치들(L1, L2, L3)에는 버퍼 영역(112)으로부터 센싱된 페이지들이 순차적으로 저장될 것이다. 즉, 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)의 제 1 래치(L1)에는 버퍼 영역(112)에 저장된 제 1 페이지(1st page)가 저장될 수 있다. 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)의 제 2 래치(L2)에는 버퍼 영역(112)에 저장된 제 2 페이지(2nd page)가 저장될 수 있다. 그리고 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)의 제 3 래치(L3)에는 버퍼 영역(112)에 저장된 제 3 페이지(3rd page)가 저장될 수 있다.
S120 단계에서, 불휘발성 메모리 장치(100)는 외부로부터 제공되는 타깃 어드레스(Target address)를 수신한다. 우선, 메인 프로그램 명령에 따라 수신된 타깃 어드레스(Target address)는 입출력 버퍼(150)에 저장되고, 제어 로직(160)에 의해서 디코딩 또는 선택적으로 추출되어 온칩 랜더마이저(140)에 제공될 수 있다.
S130 단계에서, 온칩 랜더마이저(140)는 제공되는 타깃 어드레스(Target address)로부터 시드(Seed)를 생성한다. 예를 들면, 시드 발생기(142, 도 5 참조)에 의해서 타깃 어드레스에 대응하는 시드(Seed)가 생성될 수 있다. 시드(Seed)는 룩업 테이블과 같은 수단을 통해서 제공될 수 있다. 시드(Seed)의 생성이 완료되면, 생성된 시드(Seed)는 랜덤열 발생기(144, 도 5 참조)로 제공된다. 여기서, 시드(Seed)는 페이지 버퍼(130)에 래치된 복수의 페이지들 각각에 대해 서로 다른 값으로 제공될 수 있다. 또는, 시드(Seed)는 페이지 버퍼(130)에 래치된 복수의 페이지들에 대해 하나의 값으로 제공될 수 있다. 시드(Seed)의 생성이 완료되면, 생성된 시드(Seed)는 페이지 버퍼(130)에 구비되는 여분의 래치들에 저장될 수 있을 것이다.
생성된 시드(Seed)를 참조하여 랜덤열 발생기(144)는 복수의 페이지들에 대한 랜덤화 연산을 수행하기 위한 랜덤열(RS)을 발생한다. 여기서, 랜덤열 발생기(144)는 앞서 설명한 피보나치 방식의 랜덤열 발생 회로일 수 있다.
S140 단계에서, 페이지 버퍼(130)에 저장된 복수의 페이지들에 대한 랜덤화 연산이 수행된다. 즉, 페이지 버퍼(130)의 래치들에 저장된 페이지들 각각이 순차적으로 랜덤열(RS)과 믹싱(Mixing)된다. 예를 들면, 페이지들 각각의 비트들은 랜덤열(RS)의 비트들과의 배타적 논리합(XOR) 연산에 의해서 랜덤화될 수 있다. 랜덤화 연산에 의해서 페이지 버퍼(130)의 래치들 각각에 저장된 복수의 페이지들 각각의 비트 값은 토글링될 수도 있고, 랜덤화 이전의 비트 값을 유지할 수도 있다.
S150 단계에서, 랜덤화된 복수의 페이지들은 메인 영역(114)에 프로그램된다. 페이지 버퍼(130)는 타깃 어드레스(Target address)에 의해서 선택된 타깃 영역으로 복수의 페이지를 프로그램한다. 타깃 영역에 프로그램되는 복수의 페이지들은 앞서 도 2에서 설명된 방식으로 타깃 영역의 메모리 셀들에 프로그램된다.
이상의 절차를 통해서, 버퍼 영역(112)으로부터 버퍼 읽기 동작에 의해서 페이지 버퍼(130)에 래치된 복수의 페이지는 온칩 랜더마이저(140)에 의해서 랜덤화된다. 특히, 랜덤화 연산은 타깃 어드레스(Target address)의 입력에 의해서 시작된다. 타깃 어드레스(Target address)에 응답하여 랜덤화 연산을 위한 시드가 선택 또는 생성되기 때문이다.
도 9는 본 발명의 다른 실시 예에 따른 불휘발성 메모리 장치의 메인 프로그램 방법을 간략히 보여주는 블록도이다. 도 9를 참조하면, 불휘발성 메모리 장치(100)는 버퍼 프로그램 동작에서도 랜덤화 연산을 수행하도록 구성된다. 따라서, 버퍼 읽기 동작에서 디-랜덤화 연산이 수행될 것이다. 그리고 메인 프로그램 동작시에 타깃 어드레스에 응답하여 프로그램 데이터에 대한 랜덤화 연산을 수행한다.
도시되지는 않았지만, 버퍼 영역(112)에는 복수의 페이지들이 랜덤화되어 저장될 수 있다. 따라서, 버퍼 프로그램 동작시에 각각의 페이지는 온칩 랜더마이저(130)에 의해서 생성된 랜덤열에 의해서 랜덤화된다. 이때, 랜덤열(RS)은 각각의 페이지는 버퍼 영역(112)에서의 페이지 어드레스에 따라 생성되는 시드를 통해서 생성될 수 있다.
복수의 페이지에 대한 메인 프로그램 동작을 위해서, 버퍼 영역(112)에 저장된 복수의 페이지들은 페이지 버퍼(130)에 의해서 센싱 및 래치되어야 한다. 이러한 동작을 위해서 외부에서 버퍼 읽기 명령어와 페이지 어드레스가 제공될 것이다. 그러면, 버퍼 영역(112)에 저장된 복수의 페이지들이 페이지 버퍼(130)에 의해서 센싱된다. 이러한 동작은 인용부호 (①)의 데이터 경로로 도시되어 있다. 센싱된 복수의 페이지 데이터는 페이지 버퍼(130)의 내부에 구비되는 래치들(L1, L2, L3)에 저장되어 유지될 것이다.
버퍼 영역(112)에 저장된 복수의 페이지들은 랜덤화 연산에 의해서 인코딩된 데이터이다. 따라서, 이러한 랜덤화된 데이터에 대한 디-랜덤화 연산이 수행될 필요가 있다. 이러한 복수의 페이지들에 대한 디-랜덤화 연산은 온칩 랜더마이저(140)에 의해서 수행된다. 랜덤화 연산을 위해서 제공된 복수의 페이지들에 대한 디-랜덤화 연산을 위해서는 복수의 페이지들 각각에 대한 시드(Seed)가 요구된다. 이러한 시드(Seed)는 버퍼 읽기 명령에 포함되는 페이지 어드레스로부터 생성할 수 있다. 그리고 복수의 페이지들 각각에 대한 시드(Seed)로부터 각각의 페이지들에 대응하는 랜덤열(RS)의 생성이 가능하다. 온칩 랜더마이저(140)는 랜덤열(RS)을 생성하여 페이지 버퍼(130)의 래치들(L1, L2, L3)에 저장된 복수의 페이지들에 대한 디-랜덤화 연산을 수행할 것이다. 이러한 동작은 인용부호(②)의 데이터 경로로 도시되어 있다.
버퍼 읽기 동작에 의해서 페이지 버퍼(130)에 래치된 복수의 페이지에 대한 디-랜덤화 연산이 완료되면, 외부로부터 복수의 페이지에 대한 메인 영역(114)으로의 프로그램 명령을 제공받는다. 프로그램 명령에는 타깃 영역(Target area)에 대응하는 타깃 어드레스(Target address)가 포함될 것이다. 온칩 랜더마이저(140)는 래치에 저장된 복수의 페이지들에 대한 랜덤화 연산을 수행하기 위한 타깃 어드레스를 제공받을 수 있다. 이러한 절차는 인용부호(③)로 표시되어 있다.
타깃 어드레스(Target address)가 제공되면, 온칩 랜더마이저(140)는 타깃 어드레스를 참조하여 페이지 버퍼(130)에 저장된 복수의 페이지들에 대한 랜덤화 연산을 수행한다. 이러한 절차는 인용부호(④)로 표시하였다. 랜덤화 연산을 위해서 온칩 랜더마이저(140)는 시드(Seed)를 생성한다. 온칩 랜더마이저(140)는 시드(Seed)를 이용하여 랜덤열(RS)을 생성한다. 온칩 랜더마이저(140)는 랜덤열(RS)을 이용하여 복수의 페이지들 각각에 대한 랜덤화 연산을 수행한다.
복수의 페이지에 대한 랜덤화 연산이 완료되면, 페이지 버퍼(130)는 타깃 영역으로 복수의 페이지들을 프로그램한다. 타깃 영역에 프로그램되는 복수의 페이지들은 앞서 도 2에서 설명된 방식으로 타깃 영역의 메모리 셀들에 프로그램된다. 이러한 절차는 인용부호(⑤)로 도시되어 있다.
온칩 랜더마이저(140)는 외부로부터의 메인 영역에 대한 타깃 어드레스(Target address)를 참조하여 복수의 페이지에 대한 랜덤화 연산을 수행한다. 따라서, 타깃 어드레스가 입력되고, 랜덤화 연산이 완료된 복수의 페이지가 메인 영역(114)의 타깃 영역으로 프로그램될 것이다.
도 10은 도 9의 실시 예에 따른 동작 절차를 보여주는 순서도이다. 도 10을 참조하면, 본 발명의 예시적인 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
S210 단계에서, 버퍼 영역(112)에 저장된 복수의 페이지들에 대한 버퍼 읽기 동작이 수행된다. 이때, 버퍼 영역(112)에 저장된 복수의 페이지들은 이미 버퍼 프로그램 동작시에 랜덤화된 데이터일 것이다. 버퍼 영역(112)에 저장된 복수의 페이지들을 읽기 위해서는 외부로부터의 읽기 명령이 제공될 것이다. 버퍼 읽기 동작시에, 페이지 버퍼(130)에 포함되는 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 래치들(L1, L2, L3)에는 버퍼 영역(112)으로부터 센싱된 페이지들이 순차적으로 저장될 것이다. 즉, 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)의 제 1 래치(L1)에는 버퍼 영역(112)에 저장된 제 1 페이지(1st page)가 저장될 수 있다. 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)의 제 2 래치(L2)에는 버퍼 영역(112)에 저장된 제 2 페이지(2nd page)가 저장될 수 있다. 그리고 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)의 제 3 래치(L3)에는 버퍼 영역(112)에 저장된 제 3 페이지(3rd page)가 저장될 수 있다.
S220 단계에서, 버퍼 읽기에 의해서 페이지 버퍼(130)에 래치된 복수의 페이지들에 대한 디-랜덤화 연산이 수행된다. 이러한 동작을 위해서 버퍼 읽기 동작시에 제공된 페이지 어드레스가 사용된다. 버퍼 읽기 동작시 제공된 페이지 어드레스를 참조하여, 온칩 랜더마이저(140)는 복수의 페이지들 각각에 대한 시드를 생성하게 될 것이다. 그리고 생성된 시드를 참조하여 온칩 랜더마이저(140)는 랜덤열(RS)을 생성한다. 온칩 랜더마이저(140)는 생성된 랜덤열(RS)을 이용하여 페이지 버퍼(130)의 래치들(L1, L2, L3)에 저장된 복수의 페이지들에 대한 디-랜덤화 연산을 수행할 것이다. 디-랜덤화 연산에 의해서 페이지 버퍼(130)의 래치들(L1, L2, L3) 각각에 저장된 복수의 페이지들 각각의 비트 값은 토글링될 수도 있고, 디-랜덤화 연산 이전의 비트 값을 유지할 수도 있을 것이다.
S230 단계에서, 불휘발성 메모리 장치(100)는 메인 프로그램 동작을 위해서 외부로부터 제공되는 타깃 어드레스(Target address)를 수신한다. 우선, 메인 프로그램 명령에 따라 수신된 타깃 어드레스(Target address)는 입출력 버퍼(150)에 저장되고, 제어 로직(160)에 의해서 디코딩 또는 선택적으로 추출된다. 그 이후, 타깃 어드레스(Target address)는 온칩 랜더마이저(140)에 제공될 수 있다.
S240 단계에서, 온칩 랜더마이저(140)는 제공되는 타깃 어드레스(Target address)로부터 시드(Seed)를 생성한다. 예를 들면, 시드 발생기(142, 도 5 참조)에 의해서 타깃 어드레스에 대응하는 시드(Seed)가 생성될 수 있다. 시드(Seed)는 룩업 테이블과 같은 수단을 통해서 제공될 수 있다. 시드(Seed)의 생성이 완료되면, 생성된 시드(Seed)는 랜덤열 발생기(144, 도 5 참조)로 제공된다. 여기서, 시드(Seed)는 페이지 버퍼(130)에 래치된 복수의 페이지들 각각에 대하여 서로 다른 값으로 제공될 수 있다. 또는, 시드(Seed)는 페이지 버퍼(130)에 래치된 복수의 페이지들에 대해서 하나의 값으로 제공될 수도 있다. 시드(Seed)의 생성이 완료되면, 생성된 시드(Seed)는 페이지 버퍼(130)에 구비되는 여분의 래치들에 저장될 수 있을 것이다. 생성된 시드(Seed)를 참조하여 랜덤열 발생기(144)는 복수의 페이지들을 랜덤화하기 위한 랜덤열(RS)을 발생한다.
S250 단계에서, 페이지 버퍼(130)에 저장된 복수의 페이지들에 대한 랜덤화 연산이 수행된다. 즉, 페이지 버퍼(130)의 래치들에 저장된 페이지들 각각이 순차적으로 랜덤열(RS)과 믹싱(Mixing)된다. 예를 들면, 페이지들 각각의 비트들은 랜덤열(RS)의 비트들과의 배타적 논리합(XOR) 연산에 의해서 랜덤화될 수 있다. 랜덤화 연산에 의해서 페이지 버퍼(130)의 래치들 각각에 저장된 복수의 페이지들 각각의 비트 값은 토글링될 수도 있고, 랜덤화 이전의 비트 값을 유지할 수도 있다.
S260 단계에서, 랜덤화된 복수의 페이지들은 메인 영역(114)에 프로그램된다. 페이지 버퍼(130)는 타깃 어드레스(Target address)에 의해서 선택된 타깃 영역으로 복수의 페이지들을 프로그램한다. 타깃 영역에 프로그램되는 복수의 페이지들은 앞서 도 2에서 설명된 방식으로 타깃 영역의 메모리 셀들에 프로그램된다.
이상의 절차를 통해서, 버퍼 영역(112)으로부터 버퍼 읽기 동작에 의해서 페이지 버퍼(130)에 래치된 복수의 페이지는 온칩 랜더마이저(140)에 의해서 랜덤화된다. 버퍼 읽기 동작시에는 버퍼 쓰기 동작시에 랜덤화된 복수의 페이지들에 대한 디-랜덤화 연산이 동반된다. 메인 프로그램 동작시에 수행되는 랜덤화 연산은 타깃 어드레스(Target address)의 입력에 의해서 촉발된다. 이것은 타깃 어드레스(Target address)에 응답하여 랜덤화 연산을 위한 시드가 선택 또는 생성되기 때문이다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 11을 참조하면, 메모리 시스템(200)은 메모리 컨트롤러(210) 및 불휘발성 메모리 장치(220)를 포함할 수 있다.
메모리 컨트롤러(210)는 호스트(Host)의 요청에 응답하여 불휘발성 메모리 장치(220)를 제어하도록 구성될 것이다. 호스트(Host)의 쓰기 요청에 응답하여 메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)에 쓰기 명령어 및 어드레스를 제공한다.
더불어, 메모리 컨트롤러(210)는 정적 스케쥴링 방식(Static Scheduling Manner)으로 불휘발성 메모리 장치(220)의 프로그램 동작을 제어할 수 있다. 예를 들면, 불휘발성 메모리 장치(220)의 버퍼 영역(222)에 대한 최소 프로그램 단위의 데이터(예를 들면, 페이지 데이터)가 버퍼 메모리(215)에 저장되면, 메모리 컨트롤러(210)는 최소 프로그램 단위의 데이터가 버퍼 영역(222)에 저장되도록 불휘발성 메모리 장치(220)를 제어할 것이다. 이러한 동작을 버퍼 프로그램(Buffer Program) 동작이라 한다.
버퍼 프로그램 동작은 어드레스 정보에 따라 수행될 것이다. 메인 영역(224)에 대한 최소 프로그램 단위의 데이터가 버퍼 영역(222)에 저장되면, 메모리 컨트롤러(210)는 메인 영역(224)에 대한 최소 프로그램 단위의 데이터가 메인 영역(224)에 저장되도록 불휘발성 메모리 장치(220)를 제어할 것이다. 이러한 동작을 메인 프로그램(Main Program) 동작이라 칭하기로 한다.
메인 프로그램 동작은 버퍼 영역(222)에 저장된 데이터와 관련된 어드레스 정보에 따라 수행될 것이다. 버퍼 프로그램 동작과 메인 프로그램 동작은 이후 상세히 설명될 것이다. 예시적으로, 버퍼 영역(222)에 대한 최소 프로그램 단위와 메인 영역(224)에 대한 최소 프로그램 단위는 프로그램 방식, 셀 당 저장되는 데이터 비트 수 등에 따라 다양하게 결정될 수 있다. 본 발명의 실시 예에 따르면, 버퍼 영역(222)에 대한 최소 프로그램 단위와 메인 영역(224)에 대한 최소 프로그램 단위는 서로 다를 것이다.
예시적으로, 버퍼 프로그램 동작을 통해 버퍼 영역(222)에 데이터를 저장하고, 메인 프로그램 동작을 통해 메인 영역(224)에 데이터를 저장함으로써 메모리 컨트롤러(210)의 버퍼 메모리(215)의 크기를 최소화시킬 수 있다. 다시 말해서, 버퍼 메모리(215)에 앞서 설명된 제 3 스텝(step_3) 프로그램 동작을 위한 데이터를 유지할 필요가 없다. 그러한 까닭에, 메모리 컨트롤러(210)의 버퍼 메모리(215)의 크기를 최소화시킬 수 있다.
불휘발성 메모리 장치(220)는 하나 또는 그보다 많은 메모리 장치들로 구성될 수 있다. 불휘발성 메모리 장치(220)와 메모리 컨트롤러(210)는, 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive: SSD), 메모리 스틱, 또는 그와 같은 것으로 구성될 수 있다. 불휘발성 메모리 장치(220)는 복수의 메모리 블록들을 포함하며, 메모리 블록들 각각은 행들과 열들로 배열된 복수의 메모리 셀들을 포함할 것이다. 메모리 셀들 각각은 멀티-레벨(또는, 멀티-비트) 데이터를 저장할 것이다. 메모리 셀들은 2차원 어레이 구조를 갖도록 또는 3차원(또는, 수직) 어레이 구조를 갖도록 배열될 수 있다.
불휘발성 메모리 장치(220)는 실질적으로 도 3에서 설명된 불휘발성 메모리 장치(100)와 동일한 구성일 수 있다. 불휘발성 메모리 장치(220)의 셀 어레이(225)에는 복수의 메모리 블록들이 포함된다. 복수의 블록들은 적어도 버퍼 영역(222)과 메인 영역(224)으로 구분될 것이다. 여기에서, 메모리 영역들(222, 224)은 물리적인 것이 아니라 논리적으로 구분될 수 있음은 잘 이해될 것이다. 즉, 메모리 영역들(222, 224)은 논리적으로 가변 가능할 것이다.
버퍼 영역(222)에 포함되는 메모리 블록의 수는 메인 영역(224)에 속한 메모리 셀들이 저장하는 데이터 비트 수에 따라 가변될 것이다. 예를 들면, 메인 영역(224)에 속한 메모리 셀들이 N-비트 데이터들(N은 3 또는 그보다 큰 정수)을 저장하는 경우, 버퍼 영역(222)은 적어도 N개의 메모리 블록들을 포함할 것이다. 그리고 메인 영역(224)에 속한 메모리 셀들에 저장될 N-비트 데이터들(N은 3 또는 그보다 큰 정수)은 대응되는 버퍼 영역(222)의 메모리 블록들에 각각 저장될 것이다.
불휘발성 메모리 장치(220)는 외부로부터 제공되는 어드레스를 참조하여 랜덤화 연산이나 디-랜덤화 연산을 수행하는 온칩 랜더마이저(228)를 포함한다. 온칩 랜더마이저(228)는 어드레스를 참조하여 시드(Seed) 및 랜덤열(RS)을 생성할 수 있다. 그리고 온칩 랜더마이저(228)는 생성된 랜덤열(RS)을 참조하여, 버퍼 영역(222) 또는 메인 영역(224)에 프로그램되는 데이터에 대한 랜덤화 연산을 수행할 수 있다. 페이지 버퍼(226)는 랜덤화 연산이 완료된 데이터를 버퍼 영역(222) 또는 메인 영역(224)에 프로그램할 것이다.
또한, 온칩 랜더마이저(228)는 버퍼 영역(222) 또는 메인 영역(224)으로부터 독출된 데이터에 대한 디-랜덤화 연산을 수행할 수 있다. 온칩 랜더마이저(228)는 읽기 명령어의 제공시에 동반되는 어드레스를 참조하여 시드와 랜덤열(RS)을 생성할 수 있다. 온칩 랜더마이저(228)는 생성된 랜덤열(RS)을 이용하여 페이지 버퍼(226)에 래치된 데이터에 대한 디-랜덤화 연산을 수행할 수 있다.
상술한 구성에서, 메모리 컨트롤러(210)는 쓰기 요청되는 데이터를 랜덤화 처리없이 불휘발성 메모리 장치(220)로 제공할 수 있다. 그리고 불휘발성 메모리 장치(220)는 구비되는 온칩 랜더마이저(228)를 사용하여 버퍼 영역(222) 또는 메인 영역(224)에 저장되는 데이터에 대한 랜덤화 연산을 수행할 수 있다. 독출 동작시, 불휘발성 메모리 장치(220)는 제공되는 어드레스를 참조하여 시드(Seed) 및 랜덤열(RS)을 생성할 것이다. 그리고 생성된 랜덤열(RS)을 이용하여 센싱된 데이터를 디-랜덤화하여 메모리 컨트롤러(210)에 제공할 것이다. 이러한 구성에 따라, 데이터의 신뢰성을 높이기 위한 랜덤화 연산에 대한 부담을 메모리 컨트롤러(210)로부터 덜어 줄 수 있다. 그리고 고속의 온칩 랜더마이저(228)의 구비를 통해서 불휘발성 메모리 장치(220)는 데이터에 대한 랜덤화 연산과 디-랜덤화 연산을 수행할 수 있다. 이러한 구성에 따라, 데이터의 신뢰성을 높이기 위한 랜덤화 연산을 효과적으로 수행할 수 있다.
도 12는 도 11의 메모리 컨트롤러(210)가 불휘발성 메모리 장치(220)에 제공하는 쓰기 명령어 시퀀스의 예를 간략히 보여주는 타이밍도이다. 도 12를 참조하면, 메모리 컨트롤러(210)는 버퍼 읽기 명령과 메인 프로그램 명령을 불휘발성 메모리 장치(220)에 제공한다.
버퍼 읽기 명령은 버퍼 영역(212, 도 11 참조)에 저장된 복수의 페이지들 각각에 대해서 제공된다. 여기서, 버퍼 읽기 동작시에는 읽혀진 데이터가 불휘발성 메모리 장치(220)의 외부로 출력될 필요는 없다. 따라서, 이런 읽기 모드를 지시하는 내부 읽기 명령어(DAh, DFh)가 버퍼 읽기 동작의 시작과 종료 지점에서 입력될 수 있다. 만일, 에러 정정(Error correction)과 같은 목적으로 또는 타깃 영역에 기입되기 이전에 버퍼 영역(222)에 저장된 데이터의 출력이 필요한 경우라면, 내부 읽기 명령어(DAh, DFh)는 생략될 수 있을 것이다.
내부 읽기 동작의 시작을 나타내는 코드(DAh)가 입력되고, 제 1 페이지(1st page)를 버퍼 영역(222)으로부터 읽기 위한 명령어 시퀀스(00h-ADDR1-39h)가 제공된다. 그러면, 불휘발성 메모리 장치(220)의 페이지 버퍼(226)는 버퍼 영역(222)으로부터 제 1 페이지(1st page)를 읽기 시간(tR) 동안 센싱하여 래치할 것이다. 페이지 버퍼(226)가 제 1 페이지(1st page)를 센싱하고 래치하는 구간 동안 불휘발성 메모리 장치(220)는 래디/비지 신호(R/B)를 비지 상태(논리 'L')로 유지할 것이다.
제 1 페이지(1st page)에 대한 내부 읽기 동작이 완료도면, 불휘발성 메모리 장치(220)는 래디/비지 신호(R/B)를 래디 상태(논리 'H')로 천이시킨다. 그러면, 메모리 컨트롤러(210)는 제 2 페이지(2nd page)를 버퍼 영역(222)으로부터 읽기 위한 명령어 시퀀스(00h-ADDR2-39h)를 제공한다. 그러면, 불휘발성 메모리 장치(220)의 페이지 버퍼(226)는 버퍼 영역(222)으로부터 제 2 페이지(2nd page)를 읽기 시간(tR) 동안 센싱하여 래치할 것이다. 페이지 버퍼(226)가 제 2 페이지(2nd page)를 센싱하고 래치하는 구간 동안 불휘발성 메모리 장치(220)는 래디/비지 신호(R/B)를 비지 상태(논리 'L')로 유지할 것이다.
제 2 페이지(2nd page)에 대한 내부 읽기가 완료되면, 불휘발성 메모리 장치(220)는 래디/비지 신호(R/B)를 래디 상태(논리 'H')로 천이시킨다. 그러면, 메모리 컨트롤러(210)는 제 3 페이지(3rd page)를 버퍼 영역(222)으로부터 읽기 위한 명령어 시퀀스(00h-ADDR3-39h)가 제공한다. 그러면, 불휘발성 메모리 장치(220)의 페이지 버퍼(226)는 버퍼 영역(222)으로부터 제 3 페이지(3rd page)를 읽기 시간(tR) 동안 센싱하여 래치할 것이다. 페이지 버퍼(226)가 제 3 페이지(3rd page)를 센싱하고 래치하는 구간 동안 불휘발성 메모리 장치(220)는 래디/비지 신호(R/B)를 비지 상태(논리 'L')로 유지할 것이다.
제 3 페이지(3rd page)에 대한 내부 읽기가 완료되면, 불휘발성 메모리 장치(220)는 래디/비지 신호(R/B)를 래디 상태(논리 'H')로 천이시킨다. 그러면, 메모리 컨트롤러(210)는 내부 읽기 동작의 종료를 지시하는 명령어 시퀀스(DFh)를 입력하고, 메인 프로그램 동작을 지시하는 명령어 시퀀스(8Bh-ADDR4-10h)를 제공하게 될 것이다. 명령어 시퀀스(8Bh-ADDR4-10h)에 응답하여 불휘발성 메모리 장치(220) 래디/비지 신호(R/B)를 프로그램 구간(tPROG) 동안 비지 상태(논리 'L')로 전환시키고, 페이지 버퍼(226)에 래치된 복수의 페이지를 타깃 영역에 프로그램할 것이다. 더불어, 불휘발성 메모리 장치(220)는 명령어 시퀀스(8Bh-ADDR4-10h)가 제공되면, 타깃 어드레스(ADDR4)로부터 랜덤열(RS)을 생성하고, 생성된 랜덤열(RS)을 사용하여 복수의 페이지에 대한 랜덤화 연산을 수행하는 온칩 랜덤화 연산(OCR Operation)을 수행한다. 온칩 랜덤화 연산(OCR Operation)에 대한 구체적인 설명은 후술하는 도 13a 및 도 13b에서 상세히 다룰 것이다.
도 13a 및 도 13b는 각각 온칩 랜덤화 연산(OCR Operation)의 구체적인 실시 예들을 설명하기 위한 타이밍도들이다. 도 13a는 명령어 시퀀스(8Bh-ADDR4-10h)에 의해서 래디/비지 신호(R/B)가 비지 상태(논리 'L')로 전환된 이후에 온칩 랜덤화 연산(OCR Operation)이 시작되는 실시 예를 보여준다. 반면, 도 13b는 명령어 시퀀스(8Bh-ADDR4-10h)에 의해서 래디/비지 신호(R/B)가 비지 상태(논리 'L')로 전환되기 전에 온칩 랜덤화 연산(OCR Operation)이 시작되는 실시 예를 보여준다. 도 13b에 도시된 실시 예는, 타깃 어드레스(ADDR4)가 입력되는 즉시 시드를 선택 또는 생성하고 랜덤열을 생성하여, 복수의 페이지들에 대한 랜덤화 연산을 수행할 수 있음을 보여준다.
도 14는 도 3의 셀 어레이(110)의 예시를 보여주는 블록도이다. 도 14를 참조하면, 셀 어레이(110)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 복수의 메모리 블록들(BLK1~BLKz)은 버퍼 영역(112) 또는 메인 영역(114)에 포함되는 대응할 수 있다. 각 메모리 블록(BLK)은 3차원 구조(또는, 수직 구조)를 갖는다. 예를 들면, 각 메모리 블록(BLK)은 제 1 내지 제 3 방향들을 따라 신장된 구조물들을 포함한다. 예를 들면, 각 메모리 블록(BLK)은 제 3 방향을 따라 신장된 복수의 낸드 셀 스트링들(NAND Cell Strings)을 포함할 수 있다.
각각의 낸드 셀 스트링들은 비트 라인(BL), 스트링 선택 라인(SSL), 접지 선택 라인(GSL), 워드 라인들(WL), 그리고 공통 소스 라인(CSL)에 연결된다. 즉, 각 메모리 블록은 복수의 비트 라인들(BL), 복수의 스트링 선택 라인들(SSL), 복수의 접지 선택 라인들(GSL), 복수의 워드 라인들(WL), 그리고 공통 소스 라인(CSL)에 연결될 것이다. 메모리 블록들(BLK1~BLKz)은 도 15를 참조하여 더 상세하게 설명된다.
도 15 내지 16은 도 14의 메모리 블록들(BLK1~BLKz) 중 하나의 메모리 블록(BLKa)의 구조를 보여주는 평면도 및 사시 단면도 들이다. 예시적으로, 메모리 블록(BLKa)의 도전층들의 평면도가 도 15에 도시되어 있다. 도 16은 도 14의 메모리 블록(BLKa)의 사시 단면도의 예를 보여준다.
도 15 내지 16을 참조하면, 메모리 블록(BLKa)은 제 1 내지 제 3 방향들을 따라 신장된 구조물들을 포함한다.
기판(311)이 제공된다. 예시적으로, 기판(311)은 제 1 도전형(Conductive type)을 갖는 웰(Well) 일 수 있다. 예를 들면, 기판(311)은 붕소(B, Boron)와 같은 3족 원소가 주입되어 형성된 P 웰 일 수 있다. 예를 들면, 기판(311)은 N 웰 내에 제공되는 포켓 P 웰 일 수 있다. 이하에서, 기판(311)은 P 웰(또는 포켓 P 웰)인 것으로 가정한다. 그러나 기판(311)은 P 도전형을 갖는 것으로 한정되지 않는다.
기판(311) 상에, 제 1 방향을 따라 신장된 복수의 도핑 영역들(411~413)이 제공된다. 복수의 도핑 영역들(411~413)은 기판(311) 상에서 제 3 방향을 따라 특정 거리만큼 이격되어 제공된다. 도 15 내지 도 16에 도시된 복수의 도핑 영역들(411~413)은 순차적으로 제 1 도핑 영역(411), 제 2 도핑 영역(412), 그리고 제 3 도핑 영역(413)으로 정의된다.
제 1 내지 제 3 도핑 영역들(411~413)은 기판(311)과 상이한 제 2 도전형(conductive type)을 갖는다. 예를 들면, 제 1 내지 제 3 도핑 영역들(411~413)은 N 도전형을 가질 수 있다. 이하에서, 제 1 내지 제 3 도핑 영역들(411~413)은 N 도전형을 갖는 것으로 가정한다. 그러나 제 1 내지 제 3 도핑 영역들(411~413)은 N 도전형을 갖는 것으로 한정되지 않는다.
제 1 내지 제 3 도핑 영역들(411~413) 중 인접한 두 개의 도핑 영역들 사이에서, 복수의 절연 물질들(312, 312a)이 제 2 방향(즉, 기판과 수직한 방향)을 따라 기판(311) 상에 순차적으로 제공된다. 복수의 절연 물질들(312, 312a)은 제 2 방향을 따라 특정 거리만큼 이격되어 제공된다. 복수의 절연 물질들(312, 312a)은 제 1 방향을 따라 신장된다. 예시적으로, 복수의 절연 물질들(312, 312a)은 실리콘 산화막과 같은 절연 물질을 포함할 수 있다. 예시적으로, 복수의 절연 물질들(312, 312a) 중 기판(311)과 접촉하는 절연 물질(312a)의 두께는 다른 절연 물질들(312)의 두께보다 얇을 수 있다.
제 1 내지 제 3 도핑 영역들(411~413) 중 인접한 두 개의 도핑 영역들 사이에서, 제 1 방향을 따라 순차적으로 배치되며 제 2 방향을 따라 복수의 절연 물질들(312, 312a)을 관통하는 복수의 필라들(PL11, PL12, PL21, PL22)이 제공된다. 예시적으로, 복수의 필라들(PL11, PL12, PL21, PL22)은 절연 물질들(312)을 관통하여 기판(311)과 접촉할 수 있다.
예시적으로, 복수의 필라들(PL11, PL12, PL21, PL22) 각각은 다층으로 구성될 수 있다. 복수의 필라들(PL11, PL12, PL21, PL22)은 채널막들(314) 및 내부 물질들(317)을 포함할 수 있다. 복수의 필라들(PL11, PL12, PL21, PL22) 각각에서, 내부 물질 및 내부 물질을 둘러싸는 채널막이 제공될 수 있다.
채널막들(314)은 제 1 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 예를 들면, 채널막들(314)은 기판(311)과 동일한 도전형 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 이하에서, 채널막들(314)은 P 타입 실리콘을 포함하는 것으로 가정한다. 그러나, 채널막들(314)은 P 타입 실리콘을 포함하는 것으로 한정되지 않는다. 예를 들면, 채널막들(314)은 도전형을 갖지 않는 진성 반도체(Intrinsic Semiconductor)를 포함할 수 있다.
내부 물질들(317)은 절연 물질을 포함한다. 예를 들면, 내부 물질들(317)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 수 있다. 예를 들면, 내부 물질들(317)은 에어 갭(Air gap)을 포함할 수 있다.
제 1 내지 제 3 도핑 영역들(411~413) 중 인접한 두 개의 도핑 영역들 사이에서, 복수의 절연 물질들(312, 312a) 및 복수의 필라들(PL11, PL12, PL21, PL22)의 노출된 표면들 상에 정보 저장막들(316)이 제공된다. 예시적으로, 정보 저장막들(316)의 두께는 절연 물질들(312, 312a) 사이의 거리보다 작을 수 있다.
제 1 내지 제 3 도핑 영역들(411~413) 중 인접한 두 개의 도핑 영역들 사이에서, 정보 저장막들(316)의 노출된 표면들 상에 도전 물질들(CM1~CM8)이 제공된다. 더 상세하게는, 절연 물질들(312, 312a) 중 상층의 절연 물질의 하부면에 제공된 정보 저장막과 하층의 절연 물질의 상부면에 제공된 정보 저장막 사이에, 제 1 방향을 따라 신장되는 도전 물질들(CM1~CM8)이 제공된다.
도핑 영역들(411~413) 상에서, 도전 물질들(CM1~CM8) 및 절연 물질들(312, 312a)은 워드 라인 컷(WL cut)에 의해 분리될 수 있다. 예시적으로, 도전 물질들(CM1~CM8)은 금속성 도전 물질을 포함 수 있다. 도전 물질들(CM1~CM8)은 폴리 실리콘 등과 같은 비금속성 도전 물질을 포함할 수 있다.
예시적으로, 절연 물질들(312, 312a) 중 최상부에 위치한 절연 물질의 상부면에 제공되는 정보 저장막은 제거될 수 있다. 예시적으로, 절연 물질들(312, 312a)의 측면들 중 필라들(PL11, PL12, PL21, PL22)과 대향하는 측면에 제공되는 정보 저장막은 제거될 수 있다.
복수의 필라들(PL11, PL12, PL21, PL22) 상에 복수의 드레인들(420)이 제공된다. 예시적으로, 드레인들(420)은 제 2 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 예를 들면, 드레인들(420)은 N 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 이하에서, 드레인들(420)은 N 타입 실리콘을 포함하는 것으로 가정한다. 그러나, 드레인들(420)은 N 타입 실리콘을 포함하는 것으로 한정되지 않는다. 예시적으로, 드레인들(420)은 필라들(PL11, PL12, PL21, PL22)의 채널막들(314)의 상부로 확장될 수 있다.
드레인들(420) 상에, 제 3 방향으로 신장되며, 제 1 방향을 따라 특정 거리만큼 이격된 비트 라인들(BL1, BL2)이 제공된다. 비트 라인들(BL1, BL2)은 드레인들(420)과 연결된다. 예시적으로, 드레인들(420) 및 비트 라인들(BL1, BL2)은 콘택 플러그들(미도시)을 통해 연결될 수 있다. 예시적으로, 비트 라인들(BL1, BL2)은 금속성 도전 물질들을 포함할 수 있다. 예시적으로, 비트 라인들(BL1, BL2)은 폴리 실리콘 등과 같은 비금속성 도전 물질들을 포함할 수 있다.
이하에서, 메모리 블록(BLKa)의 필라들(PL11, PL12, PL21, PL22)의 행들 및 열들이 정의된다. 예시적으로, 도전 물질들(CM1~CM8)의 분리 여부에 따라, 필라들(PL11, PL12, PL21, PL22)의 행들이 정의된다.
제 1 도핑 영역(411) 및 제 2 도핑 영역(412) 사이에 제공되는 도전 물질들(CM1~CM8)과 정보 저장막들(116)을 통해 결합된 필라들(PL11, PL12)이 제 1 행의 필라들로 정의된다. 제 2 도핑 영역(412) 및 제 3 도핑 영역(413) 사이에 제공되는 도전 물질들(CM1~CM8)과 정보 저장막들(116)을 통해 결합된 필라들(PL21, PL22)이 제 2 행의 필라들로 정의된다.
비트 라인들(BL1, BL2)에 따라, 필라들(PL11, PL12, PL21, PL22)의 열들이 정의된다. 제 1 비트 라인(BL1)과 드레인(420)을 통해 연결된 필라들(PL11, PL21)이 제 1 열의 필라들로 정의된다. 제 2 비트 라인(BL2)과 드레인(420)을 통해 연결된 필라들(PL12, PL22)이 제 2 열의 필라들로 정의된다.
이하에서, 도전 물질들(CM1~CM8)의 높이들이 정의된다. 도전 물질들(CM1~CM8)은 기판(311)으로부터의 순서에 따라, 제 1 내지 제 8 높이를 갖는 것으로 정의된다. 기판(311)과 가장 인접한 제 1 도전 물질들(CM1)은 제 1 높이를 갖는다. 비트 라인들(BL1, BL2)과 가장 인접한 제 8 도전 물질들(CM8)은 제 8 높이를 갖는다.
필라들(PL11, PL12, PL21, PL22) 각각은 인접한 정보 저장막들(316), 그리고 인접한 도전 물질들(CM1~CM8)과 함께 하나의 셀 스트링을 구성한다. 즉, 필라들(PL11, PL12, PL21, PL22)은 정보 저장막들(316) 및 복수의 도전 물질들(CM1~CM8)과 함께 복수의 셀 스트링들을 형성한다.
도 17은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다. 도 17을 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, SSD 컨트롤러(1210)는 불휘발성 메모리 장치(1230)를 액세스한다. 호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다.
불휘발성 메모리 장치(1230)는 내부에 온칩 랜더마이저(On-Chip Randomizer)를 구비한다. 따라서, SSD 컨트롤러(1210)의 랜덤화 또는 디-랜덤화 연산의 부담을 줄일 수 있다. 또한, 본 발명의 온칩 랜더마이저의 구성을 통해서 불휘발성 메모리 장치(1230)는 데이터에 대한 신뢰성과 램덤 연산의 효율성을 모두 충족시킬 수 있다.
도 18은 본 발명의 다른 실시 예에 따른 메모리 시스템(2000)을 예시적으로 보여주는 블록도이다. 도 18을 참조하면, 본 발명에 따른 메모리 시스템(2000)은 메모리 컨트롤러(2200)와 불휘발성 메모리 장치(2100)를 포함할 수 있다.
불휘발성 메모리 장치(2100)는 도 3의 불휘발성 메모리 장치(100)와 실질적으로 동일하게 구성될 수 있다. 따라서, 불휘발성 메모리 장치(2100)에 대한 구체적인 설명은 생략하기로 한다.
메모리 컨트롤러(2200)는 불휘발성 메모리 장치(2100)를 제어하도록 구성될 수 있다. SRAM(2230)은 CPU(2210)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(2220)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 메모리 컨트롤러(2200)에 구비된 에러 정정 회로(2240)는 불휘발성 메모리 장치(2100)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2260)는 본 발명의 불휘발성 메모리 장치(2100)와 인터페이싱 할 수 있다. CPU(2210)는 메모리 컨트롤러(2200)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있다.
메모리 컨트롤러(2200)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다.
상술한 구성을 통해서 불휘발성 메모리 장치(2200)는 내부에 온칩 랜더마이저(On-Chip Randomizer)를 구비한다. 따라서, 메모리 컨트롤러(2200)의 랜덤화 또는 디-랜덤화 연산의 부담을 줄일 수 있다. 또한, 본 발명의 온칩 랜더마이저의 구성을 통해서 불휘발성 메모리 장치(2200)는 데이터에 대한 신뢰성과 램덤 연산의 효율성을 모두 충족시킬 수 있다.
본 발명에 따른 메모리 시스템(2000)은, 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 사용자 장치들 중 하나에 적용될 수 있다.
도 19는 본 발명의 다른 실시 예에 따른 데이터 저장 장치(3000)를 예시적으로 보여주는 블록도이다. 도 19를 참조하면, 본 발명에 따른 데이터 저장 장치(3000)는 플래시 메모리(3100)와 플래시 컨트롤러(3200)를 포함할 수 있다. 플래시 컨트롤러(3200)는 데이터 저장 장치(3000) 외부로부터 수신된 제어 신호들에 기초하여 플래시 메모리(3100)를 제어할 수 있다.
또한, 플래시 메모리(3100)의 구성은 도 3에 도시된 불휘발성 메모리 장치(100)와 실질적으로 동일하며, 발명의 플래시 메모리는 어레이들이 다층으로 적층된 스택 플래시 구조, 소스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 및 3차원 플래시 구조 중 어느 하나로 구성될 수 있다.
본 발명의 데이터 저장 장치(3000)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 장치, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치를 구성할 수 있다. 예를 들면, 본 발명의 데이터 저장 장치(3000)는 디지털, 카메라, 개인 컴퓨터 등과 같은 사용자 장치를 사용하기 위한 산업 표준을 만족하는 카드를 구성할 수 있다.
플래시 메모리(3100)는 내부에 온칩 랜더마이저(On-Chip Randomizer)를 구비한다. 따라서, 플래시 컨트롤러(3200)의 랜덤화 또는 디-랜덤화 연산의 부담을 줄일 수 있다. 또한, 본 발명의 온칩 랜더마이저의 구성을 통해서 불휘발성 메모리 장치(3100)는 데이터에 대한 신뢰성과 램덤 연산의 효율성을 모두 충족시킬 수 있다.
도 20은 본 발명에 따른 플래시 메모리(4100) 및 그것을 포함하는 컴퓨팅 시스템(4000)의 개략적인 구성을 보여주는 도면이다. 도 20을 참조하면, 본 발명에 따른 컴퓨팅 시스템(4000)은 버스(4400)에 전기적으로 연결된 플래시 메모리(4100), 메모리 컨트롤러(4200), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(4300), 마이크로프로세서(4500), 그리고 사용자 인터페이스(4600)를 포함할 수 있다.
도 20에 도시된 플래시 메모리(4100)에 포함되는 불휘발성 메모리 장치(4120)의 구성은 도 3에 도시된 불휘발성 메모리 장치(100)와 실질적으로 동일하며, 본 발명의 플래시 메모리는 어레이들이 다층으로 적층된 스택 플래시 구조, 소스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 및 3차원 플래시 구조 중 어느 하나로 구성될 수 있다.
본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(4700)가 추가적으로 제공될 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 메모리 컨트롤러(4200)와 플래시 메모리 장치(4100)는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
불휘발성 메모리 장치(4120)는 내부에 온칩 랜더마이저(On-Chip Randomizer)를 구비한다. 따라서, 메모리 컨트롤러(4110)의 랜덤화 또는 디-랜덤화 연산의 부담을 줄일 수 있다. 또한, 본 발명의 온칩 랜더마이저의 구성을 통해서 불휘발성 메모리 장치(4100)는 데이터에 대한 신뢰성과 램덤 연산의 효율성을 모두 충족시킬 수 있다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
110, 225 : 셀 어레이 112, 222 : 버퍼 영역
114, 224 : 메인 영역 120 : 행 디코더
130, 226 : 페이지 버퍼 140, 228 : 온칩 랜더마이저
142 : 시드 발생기 144 : 랜덤열 발생기
146 : 믹서 150 : 입출력 버퍼
160 : 제어 로직 210 : 메모리 컨트롤러
215 : 버퍼 메모리 220 : 불휘발성 메모리 장치
1100 : 호스트 1200 : SSD
1210 : SSD 컨트롤러 1220 : 버퍼 메모리
1230 : 불휘발성 메모리 장치 2100 : 플래시 메모리
2200 : 메모리 컨트롤러 2210 : CPU
2220 : 호스트 인터페이스 2230 : SRAM
2240 : ECC 2260 : 메모리 인터페이스
3100 : 플래시 메모리 3200 : 플래시 인터페이스
4100 : 플래시 메모리 4200 : 메모리 컨트롤러
4300 : 모뎀 4400 : 시스템 버스
4500 : 마이크로 프로세서 4600 : 유저 인터페이스
4700 : 배터리

Claims (10)

  1. 제 1 메모리 영역과 제 2 메모리 영역을 가지며, 상기 제 1 메모리 영역의 워드 라인당 저장 가능한 페이지의 수는 상기 제 2 모리 영역의 워드 라인당 저장 가능한 페이지 수보다 적고, 상기 제 1 메모리 영역은 상기 제 2 메모리 영역에 기입되는 데이터를 버퍼링하도록 설정되는 불휘발성 메모리 장치의 동작 방법에 있어서:
    상기 제 1 메모리 영역에 저장된 복수의 페이지들을 센싱하여 페이지 버퍼에 저장하는 단계;
    상기 페이지 버퍼에 저장된 복수의 페이지들을 상기 제 2 메모리 영역에 저장하기 위한 어드레스를 제공받는 단계; 그리고
    상기 어드레스를 참조하여 상기 복수의 페이지들에 대한 랜덤화 연산을 수행하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 랜덤화 연산은 상기 어드레스로부터 시드를 생성하는 단계;
    상기 시드를 참조하여 랜덤열을 생성하는 단계; 그리고
    상기 랜덤열을 이용하여 상기 복수의 페이지들을 랜덤화하는 단계를 포함하는 동작 방법.
  3. 제 2 항에 있어서,
    상기 시드를 생성하는 단계에서, 상기 복수의 페이지들 각각에 대응하는 시드들이 생성되는 동작 방법.
  4. 제 2 항에 있어서,
    상기 시드는 상기 어드레스에 따라 할당되는 비트값을 가지는 룩업 테이블 방식으로 생성되는 동작 방법.
  5. 제 1 항에 있어서,
    상기 랜덤화 연산에 의해서 생성된 랜덤화된 복수의 페이지들을 상기 제 2 메모리 영역의 타깃 영역으로 프로그램하는 단계를 더 포함하는 동작 방법.
  6. 제 1 항에 있어서,
    상기 타깃 영역으로 프로그램하는 단계에서, 상기 복수의 페이지들 중 적어도 2개의 페이지가 동시에 프로그램되는 동작이 포함되는 동작 방법.
  7. 제 1 항에 있어서,
    상기 제 1 메모리 영역으로부터 독출된 복수의 페이지들을 디-랜덤화하는 단계를 더 포함하는 동작 방법.
  8. 제 1 항에 있어서,
    상기 랜덤화 연산은 상기 어드레스가 입력되고, 상기 불휘발성 메모리 장치의 상태 신호가 비지를 지시하는 동안에 수행되는 동작 방법.
  9. 제 1 항에 있어서,
    상기 랜덤화 연산은 상기 어드레스의 입력에 응답하여 상기 불휘발성 메모리 장치의 상태 신호의 논리값에 관계없이 시작되는 동작 방법.
  10. 메인 영역과, 상기 메인 영역으로 저장될 복수의 페이지를 일시 저장하는 버퍼 영역을 포함하는 셀 어레이;
    상기 메인 영역과 상기 버퍼 영역에 대한 데이터의 쓰기 동작이나 읽기 동작을 수행하는 페이지 버퍼; 그리고
    상기 페이지 버퍼에 저장된 데이터에 대해서 외부로부터 제공되는 어드레스를 참조하여 랜덤화하는 온칩 랜더마이저를 포함하는 불휘발성 메모리 장치.

KR1020110127049A 2011-11-30 2011-11-30 불휘발성 메모리 장치 및 그것의 동작 방법 KR20130060795A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110127049A KR20130060795A (ko) 2011-11-30 2011-11-30 불휘발성 메모리 장치 및 그것의 동작 방법
US13/599,773 US20130135934A1 (en) 2011-11-30 2012-08-30 Nonvolatile memory device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110127049A KR20130060795A (ko) 2011-11-30 2011-11-30 불휘발성 메모리 장치 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20130060795A true KR20130060795A (ko) 2013-06-10

Family

ID=48466775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110127049A KR20130060795A (ko) 2011-11-30 2011-11-30 불휘발성 메모리 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US20130135934A1 (ko)
KR (1) KR20130060795A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074836A (ko) * 2014-12-18 2016-06-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170017036A (ko) * 2015-08-04 2017-02-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9823853B2 (en) 2016-03-21 2017-11-21 SK Hynix Inc. Data storage device including controller for controlling nonvolatile memory devices
KR20170128686A (ko) * 2016-05-12 2017-11-23 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법
US9841916B2 (en) 2015-06-30 2017-12-12 SK Hynix Inc. Memory system for controlling semiconductor memory devices through plurality of channels
US10353625B2 (en) 2015-11-17 2019-07-16 SK Hynix Inc. Memory system and operating method of memory system
US11693771B2 (en) 2019-05-27 2023-07-04 SK Hynix Inc. Storage device for storing randomized data and operating method of the same

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101572830B1 (ko) * 2009-06-22 2015-11-30 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법, 비휘발성 메모리 장치 및 비휘발성 메모리 시스템
KR102053958B1 (ko) * 2013-05-27 2019-12-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 재프로그램 방법
KR102180595B1 (ko) * 2014-02-06 2020-11-19 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 시스템
US9576624B2 (en) * 2014-06-30 2017-02-21 Seagate Technology Llc Multi-dimentional data randomization
KR102248207B1 (ko) 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
KR20160149463A (ko) * 2015-06-18 2016-12-28 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
KR102353058B1 (ko) * 2016-02-02 2022-01-20 삼성전자주식회사 시스템 온 칩 및 그것의 동작 방법
KR102684983B1 (ko) * 2016-08-02 2024-07-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
JP6645940B2 (ja) 2016-09-20 2020-02-14 キオクシア株式会社 不揮発性半導体記憶装置
KR102653139B1 (ko) * 2016-10-28 2024-04-02 삼성전자주식회사 복수의 입출력 유닛들을 포함하는 불휘발성 메모리 장치 및 그것의 동작 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251783A (ja) * 2006-03-17 2007-09-27 Nec Electronics Corp 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
JP4498370B2 (ja) * 2007-02-14 2010-07-07 株式会社東芝 データ書き込み方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074836A (ko) * 2014-12-18 2016-06-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9841916B2 (en) 2015-06-30 2017-12-12 SK Hynix Inc. Memory system for controlling semiconductor memory devices through plurality of channels
KR20170017036A (ko) * 2015-08-04 2017-02-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10353625B2 (en) 2015-11-17 2019-07-16 SK Hynix Inc. Memory system and operating method of memory system
US9823853B2 (en) 2016-03-21 2017-11-21 SK Hynix Inc. Data storage device including controller for controlling nonvolatile memory devices
KR20170128686A (ko) * 2016-05-12 2017-11-23 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법
US11693771B2 (en) 2019-05-27 2023-07-04 SK Hynix Inc. Storage device for storing randomized data and operating method of the same

Also Published As

Publication number Publication date
US20130135934A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
KR20130060795A (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
CN107093465B (zh) 包括电压搜索单元的数据存储器装置
US9256530B2 (en) Nonvolatile memory device and sub-block managing method thereof
US10467133B2 (en) Storage device including nonvolatile memory device and garbage collection method thereof
US9747997B2 (en) Non-volatile memory devices and methods of operating the same
TWI587131B (zh) 包含非揮發性記憶體元件之記憶體系統及其程式化方法
KR101903091B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
KR101832934B1 (ko) 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법
KR102245822B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
US8990483B2 (en) Nonvolatile memory device, memory system, and program method therof
KR101792870B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
US8804422B2 (en) Nonvolatile memory device and related method of operation
US8942046B2 (en) Method of programming a 3-dimensional nonvolatile memory device based on a program order of a selected page and a location of a string selection line
US20130039130A1 (en) Program method of nonvolatile memory device
KR20140008705A (ko) 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
US8861276B2 (en) Nonvolatile memory device, memory system comprising same, and method of operating same
KR20140060809A (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 읽기 방법
US9147475B2 (en) Data storage device comprising nonvolatile memory chips and control method thereof
US9524781B2 (en) Nonvolatile memory device and operating method thereof
KR20130117422A (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR20170076883A (ko) 메모리 시스템 및 그의 동작방법
KR20160052277A (ko) 반도체 장치 및 이의 동작 방법
KR20150072517A (ko) 불휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
KR20130079853A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid