KR20210010690A - 메모리 컨트롤러 및 이를 포함하는 저장 장치 - Google Patents

메모리 컨트롤러 및 이를 포함하는 저장 장치 Download PDF

Info

Publication number
KR20210010690A
KR20210010690A KR1020190086349A KR20190086349A KR20210010690A KR 20210010690 A KR20210010690 A KR 20210010690A KR 1020190086349 A KR1020190086349 A KR 1020190086349A KR 20190086349 A KR20190086349 A KR 20190086349A KR 20210010690 A KR20210010690 A KR 20210010690A
Authority
KR
South Korea
Prior art keywords
command
memory
control
unit circuits
block
Prior art date
Application number
KR1020190086349A
Other languages
English (en)
Other versions
KR102678472B1 (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 KR1020190086349A priority Critical patent/KR102678472B1/ko
Priority claimed from KR1020190086349A external-priority patent/KR102678472B1/ko
Priority to US16/799,213 priority patent/US11200000B2/en
Priority to CN202010509850.XA priority patent/CN112241242A/zh
Publication of KR20210010690A publication Critical patent/KR20210010690A/ko
Application granted granted Critical
Publication of KR102678472B1 publication Critical patent/KR102678472B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • 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
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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/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
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명의 일 실시예에 따른 저장 장치는, 복수의 비트들을 갖는 데이터를 각각 저장하는 복수의 메모리 셀들을 포함하는 메모리 장치, 및 미리 정해진 기능을 실행하는 복수의 단위 회로들을 갖는 연산 블록, 및 호스트로부터의 명령에 응답하여 상기 메모리 셀들에 대한 제어 동작을 실행하는 코어 블록을 갖는 메모리 컨트롤러를 포함하고, 상기 코어 블록은, 상기 단위 회로들 중에서 적어도 일부를 선택하여 선택 단위 회로들을 결정하고, 상기 선택 단위 회로들의 동작 순서를 지정하는 제어 커맨드를 생성하며, 상기 연산 블록에서, 상기 선택 단위 회로들이 상기 동작 순서에 따라 동작하여 상기 제어 동작에 필요한 제어 전압을 결정하고, 상기 제어 전압을 상기 메모리 컨트롤러 및 상기 메모리 장치 중 적어도 하나에 기록한다.

Description

메모리 컨트롤러 및 이를 포함하는 저장 장치{MEMORY CONTROLLER AND STORAGE DEVICE INCLUDING THE SAME}
본 발명은 메모리 컨트롤러 및 이를 포함하는 저장 장치에 관한 것이다.
저장 장치는 비휘발성 특성을 갖는 플래시 메모리 등에 데이터를 저장할 수 있는 장치로서, SSD(Solid State Drive) 장치 등으로 구현될 수 있으며, 개인 사용자들은 물론 서버 등의 분야까지 다양하게 활용되는 추세이다. 저장 장치는 데이터를 저장하는 메모리 장치 외에 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 최근에는 저장 장치의 성능을 개선하기 위해 메모리 컨트롤러가 하드웨어 가속기를 포함할 수 있다. 다만, 하드웨어 가속기를 이용하는 경우, 메모리 장치가 변경되면, 가속기를 새로 설계해야 하는 문제가 발생할 수 있다.
본 발명의 기술적 사상이 이루고자 하는 과제 중 하나는, 미리 정해진 기능을 실행하는 단위 회로들을 하드웨어 레벨로 구현하고, 코어 블록이 상기 단위 회로들 중 적어도 일부를 선택하고 그 실행 순서를 조절함으로써 다양한 메모리 장치에 적용 가능한 메모리 컨트롤러 및 이를 포함하는 저장 장치를 제공하고자 하는 데에 있다.
본 발명의 일 실시예에 따른 저장 장치는, 복수의 비트들을 갖는 데이터를 각각 저장하는 복수의 메모리 셀들을 포함하는 메모리 장치, 및 미리 정해진 기능을 실행하는 복수의 단위 회로들을 갖는 연산 블록, 및 호스트로부터의 명령에 응답하여 상기 메모리 셀들에 대한 제어 동작을 실행하는 코어 블록을 갖는 메모리 컨트롤러를 포함하고, 상기 코어 블록은, 상기 단위 회로들 중에서 적어도 일부를 선택하여 선택 단위 회로들을 결정하고, 상기 선택 단위 회로들의 동작 순서를 지정하는 제어 커맨드를 생성하며, 상기 연산 블록에서, 상기 선택 단위 회로들이 상기 동작 순서에 따라 동작하여 상기 제어 동작에 필요한 제어 전압을 결정하고, 상기 제어 전압을 상기 메모리 컨트롤러 및 상기 메모리 장치 중 적어도 하나에 기록한다.
본 발명의 일 실시예에 따른 저장 장치는, 복수의 비트들을 갖는 데이터를 각각 저장하는 복수의 메모리 셀들 및 복수의 메모리 셀들에 연결되는 복수의 워드 라인들을 포함하며, 사용 횟수에 따른 제어 전압의 예측 값들이 저장되는 복수의 카운터 테이블들을 갖는 메모리 장치, 상기 워드 라인들 중에서 타겟 워드 라인에 대한 제어 전압의 초기 값들, 및 상기 메모리 장치의 실제 사용 횟수를 포함하는 제어 커맨드를 출력하는 코어 블록, 및 상기 제어 커맨드에 응답하여, 상기 실제 사용 횟수에 기초하여 상기 카운터 테이블들 중 하나에서 상기 예측 값들을 선택하고, 상기 초기 값들과 상기 예측 값들의 차이들을 기준 메모리 셀에 할당된 상기 제어 전압의 기준 값들에 더하여 상기 타겟 워드 라인에 대한 상기 제어 전압의 설정 값들을 결정하는 연산 블록을 포함한다.
본 발명의 일 실시예에 따른 메모리 컨트롤러는, 복수의 메모리 셀들 중에서 제1 선택 메모리 셀에 대한 제1 제어 전압을 조절하기 위한 제1 제어 커맨드, 및 상기 복수의 메모리 셀들 중에서 제2 선택 메모리 셀에 대한 제2 제어 전압을 조절하기 위한 제2 제어 커맨드를 순차적으로 출력하는 코어 블록, 및 제1 연산을 실행하는 제1 단위 회로, 및 상기 제1 연산과 다른 제2 연산을 실행하는 제2 단위 회로를 포함하며, 상기 제1 단위 회로가 상기 제1 제어 커맨드에 응답하여 상기 제1 연산을 실행하는 제1 동작 시간 동안 상기 제2 단위 회로는 상기 제2 제어 커맨드에 응답하여 상기 제2 연산을 실행하는 연산 블록을 포함한다.
본 발명의 일 실시예에 따르면, 미리 정해진 기능 또는 연산을 실행하는 복수의 단위 회로들이 연산 블록 내에 포함되며, 코어 블록은 단위 회로들 중 적어도 일부를 선택하고, 선택한 단위 회로들의 실행 순서를 지정하는 제어 커맨드를 연산 블록에 전송할 수 있다. 연산 블록에서는, 제어 커맨드에 의해 선택된 단위 회로들이 제어 커맨드의 실행 순서에 따라 데이터를 처리함으로써 가속기로 동작할 수 있다. 따라서, 다양한 메모리 장치에 적응적으로 동작하며 다양한 기능의 가속기를 제공할 수 있는 메모리 컨트롤러, 및 저장 장치를 구현할 수 있다.
본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시 형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 저장 장치의 외관을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 저장 장치를 간단하게 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 장치를 간단하게 나타낸 회로도이다.
도 4a 내지 도 4d는 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 장치의 동작을 설명하기 위해 제공되는 도면들이다.
도 5는 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 장치를 간단하게 나타낸 블록도이다.
도 6은 본 발명의 일 실시예에 따른 저장 장치를 간단하게 나타낸 블록도이다.
도 7은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 메모리 컨트롤러에서 생성되는 커맨드들을 설명하기 위해 제공되는 도면들이다.
도 9 내지 도 17은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위해 제공되는 도면들이다.
도 18 내지 도 21은 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 컨트롤러의 동작을 설명하기 위해 제공되는 도면들이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 다음과 같이 설명한다.
도 1은 본 발명의 일 실시예에 따른 저장 장치의 외관을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 저장 장치(1)는 호스트의 외부 인터페이스에 연결되는 외장 저장 장치로서, 비휘발성 메모리를 포함하는 SSD(Solid State Drive) 장치일 수 있다. 저장 장치(1)는 메모리 컨트롤러, 비휘발성 메모리 셀들을 포함하는 메모리 장치, 및 호스트와의 통신을 위한 인터페이스 등을 포함하며, 메모리 컨트롤러, 메모리 장치 등은 하우징(2) 내부에 탑재될 수 있다. 인터페이스(3)는 하우징(2)의 일측에 노출되도록 배치될 수 있다.
저장 장치(1)의 하우징(2)에는 입출력부(4)가 포함할 수 있다. 입출력부(4)는 적어도 하나의 버튼을 포함할 수 있으며, 버튼과 함께 패키징되는 LED 등의 발광 소자들을 구비할 수 있다. 사용자가 입출력부(4)에 포함되는 버튼을 누르면, 소정의 입력 커맨드가 생성될 수 있다. 일 실시예에서 상기 입력 커맨드에 의해, 저장 장치(1)에서 처리 중인 데이터를 메모리 장치에 저장하고 호스트로부터 공급되는 전원을 차단하는 등의 기능이 실행될 수 있다. 입출력부(4)는 LED의 점멸 여부 등을 이용하여 사용자에게 저장 장치(1)의 동작 상태를 알릴 수 있다. 다만, 상기 설명한 저장 장치(1)의 구성은 예시적인 것이며, 실시예들에 따라 저장 장치(1)의 구성은 다양하게 변형될 수 있다.
도 2는 본 발명의 일 실시예에 따른 저장 장치를 간단하게 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 저장 장치(10)는 메모리 컨트롤러(11), 메모리 장치(12) 및 인터페이스(13)를 포함할 수 있다. 저장 장치(10)는 호스트(20)에 연결되어 동작하며, 호스트(20)는 데스크톱 컴퓨터나 랩톱 컴퓨터 등과 같은 개인용 컴퓨터 장치, 서버, 및 기타 저장 장치(10)가 연결될 수 있는 다양한 전자 기기를 포함할 수 있다.
메모리 컨트롤러(11)는 저장 장치(10)의 동작 전반을 제어하며, 메모리 장치(12)에 데이터를 기록하거나 메모리 장치(12)의 데이터를 읽어올 수 있다. 또한 메모리 컨트롤러(11)는 인터페이스(13)를 통해 호스트(20)와 통신할 수 있으며, 호스트(20)가 요청하는 데이터를 메모리 장치(12)에 기록하거나 메모리 장치(12)로부터 읽어와서 호스트(20)에 전송할 수 있다.
메모리 장치(12)는 비휘발성 특성을 갖는 플래시 메모리를 포함할 수 있다. 실시예들에 따라, 저장 장치(10)는 인터페이스(13)와 메모리 컨트롤러(11) 사이에 연결되는 메인 메모리를 더 포함할 수 있으며, 메인 메모리는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory)로 구현될 수 있다.
메모리 컨트롤러(11)는 메모리 장치(12)의 성능을 개선하기 위해 다양한 가속기를 포함할 수 있다. 일반적으로 가속기는 하드웨어로 구현될 수 있으나, 하드웨어 가속기는 메모리 장치(12)의 스펙과 성능 등이 변경될 경우 새로 설계해야 할 수 있다. 다시 말해, 필요한 기능을 하드웨어 가속기로 구현할 경우, 다양한 스펙과 성능의 메모리 장치(12)에 대응하기 곤란할 수 있다. 또한, 필요한 기능마다 별도로 하드웨어 가속기를 구현해야 하므로 메모리 컨트롤러(11)의 제조 단가가 상승할 수 있다.
본 발명의 일 실시예에 따른 저장 장치(10)에서 메모리 컨트롤러(11)는, 미리 정해진 기능 및/또는 연산을 실행하는 복수의 단위 회로들을 갖는 연산 블록과, 메모리 장치(12)를 제어하는 코어 블록을 포함할 수 있다. 코어 블록은 연산 블록에 포함되는 단위 회로들 중에서 적어도 일부를 선택하여 선택 단위 회로들을 결정하고, 선택 단위 회로들의 동작 순서를 지정할 수 있다.
코어 블록이 선택 단위 회로들을 결정하고 그 동작 순서를 지정하는 제어 커맨드를 생성하여 연산 블록에 전달하면, 연산 블록에서 선택 단위 회로들이 동작 순서에 따라 동작할 수 있다. 일 실시예에서, 단위 회로들 각각은 시프트 연산, 마이너스 연산, 플러스 연산, 데이터 검색, 데이터 기록, 최대값 연산, 최소값 연산, 중간값 연산 등의 다양한 기능 및/또는 연산들을 실행할 수 있다. 연산 블록에서 실행되는 동작은 코어 블록이 전달하는 제어 커맨드에 저장된 선택 단위 회로들 및 그 동작 순서에 따라 결정되므로, 연산 블록이 메모리 장치(12)에 필요한 다양한 가속기를 제공할 수 있다. 따라서, 저장 장치(10)의 성능을 효과적으로 개선할 수 있다.
도 3은 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 장치의 메모리 셀 어레이를 간단하게 나타낸 회로도이다.
도 3을 참조하면, 메모리 장치의 메모리 셀 어레이(30)는, 서로 직렬로 연결되는 메모리 셀들(MC), 메모리 셀들(MC)의 양단에 직렬로 연결되는 접지 선택 트랜지스터(GST) 및 스트링 선택 트랜지스터(SST1, SST2)를 포함하는 복수의 메모리 셀 스트링들(S)을 포함할 수 있다. 복수의 메모리 셀 스트링들(S) 중 적어도 일부는 비트 라인들(BL0-BL2) 중 하나에 공통으로 연결될 수 있다. 복수의 메모리 셀 스트링들(S)은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다. 즉, 복수의 비트 라인들(BL0-BL2)과 하나의 공통 소스 라인(CSL) 사이에 복수의 메모리 셀 스트링들(S)이 배치될 수 있다. 예시적인 실시예에서, 공통 소스 라인(CSL)은 복수 개가 2차원적으로 배열될 수도 있다.
서로 직렬로 연결되는 메모리 셀들(MC)은, 메모리 셀들(MC)을 선택하기 위한 워드 라인들(WL1-WLn)에 의해 제어될 수 있다. 메모리 셀들(MC) 각각은 데이터 저장 요소를 포함할 수 있다. 공통 소스 라인(CSL)으로부터 실질적으로 동일한 거리에 배치되는 메모리 셀들(MC)은, 워드 라인들(WL1-WLn) 중 하나에 공통으로 연결될 수 있으며, 메모리 장치의 동작 중에 같은 전압을 입력받을 수 있다. 또는, 메모리 셀들(MC)이 공통 소스 라인들(CSL)으로부터 실질적으로 동일한 거리에 배치되더라도, 서로 다른 행 또는 열에 배치되는 적어도 일부의 메모리 셀들(MC)이 독립적으로 제어될 수도 있다.
접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)에 의해 제어되며, 공통 소스 라인(CSL)에 연결될 수 있다. 스트링 선택 트랜지스터(SST1, SST2)는 스트링 선택 라인(SSL1, SSL2)에 의해 제어되고, 비트 라인들(BL0-BL2)에 연결될 수 있다. 도 3에서는 서로 직렬로 연결되는 메모리 셀 스트링들(S) 각각이 각각 하나의 접지 선택 트랜지스터(GST)와 두 개의 스트링 선택 트랜지스터들(SST1, SST2)을 포함하는 구조를 도시하였으나, 반드시 이와 같은 형태로 한정되는 것은 아니다.
한편, 최상단 워드라인(WLn)과 제1 스트링 선택 라인(SSL1) 사이에 적어도 하나의 더미 라인(DWL) 또는 버퍼 라인이 배치될 수 있다. 일 실시예에서, 최하단 워드라인(WL1)과 접지 선택 라인(GSL) 사이에도 더미 라인(DWL) 또는 버퍼 라인이 배치될 수 있다.
스트링 선택 트랜지스터(SST1, SST2)에 스트링 선택 라인(SSL1, SSL2)을 통해 신호가 인가되면, 비트 라인(BL0-BL2)을 통해 인가되는 신호가 서로 직렬로 연결된 메모리 셀들(MC)에 전달됨으로써 데이터 읽기 동작 또는 데이터 프로그램 동작이 실행될 수 있다. 데이터 읽기 동작 또는 데이터 프로그램 동작을 실행하기 위해, 워드 라인들(WL1-WLn)에도 적절한 제어 전압이 입력될 수 있다. 또한, 기판을 통해 소정의 소거 전압을 인가함으로써, 메모리 셀들(MC)에 기록된 데이터를 지우는 소거 동작이 실행될 수도 있다. 예시적인 실시예에서, 메모리 셀 어레이(30)는 비트 라인(BL0-BL2)과 전기적으로 분리되는 적어도 하나의 더미 메모리 셀 스트링을 포함할 수도 있다.
일 실시예에서 메모리 셀들(MC) 각각에 저장되는 데이터는, 메모리 셀들(MC)의 문턱 전압 산포에 따라 구분될 수 있다. 메모리 장치와 함께 저장 장치에 포함되는 메모리 컨트롤러는, 메모리 셀들(MC) 중에서 선택 메모리 셀에 저장된 데이터를 읽어오는 데이터 읽기 동작에서, 선택 메모리 셀에 연결된 선택 워드라인에 입력하는 읽기 전압을 결정할 수 있다.
최근에는 메모리 장치의 저장 용량을 개선하기 위하여 메모리 셀들(MC) 각각에 2 비트 이상의 데이터가 저장될 수 있다. 메모리 셀들(MC) 각각에 2 비트 이상의 데이터가 저장되는 경우, 메모리 셀들(MC)의 데이터를 구분하기 위한 문턱 전압 산포가 좁아질 수 있다. 또한 메모리 셀들(MC)의 문턱 전압 산포는, 메모리 장치의 동작 조건과 메모리 셀들(MC)의 사용 횟수 등에 따라 변할 수 있다. 따라서 메모리 장치의 동작을 개선하기 위해서는, 메모리 컨트롤러가 문턱 전압 산포를 고려하여 워드 라인들(WL1-WLn)에 입력되는 제어 전압을 동적으로 조절할 필요가 있다.
본 발명의 일 실시예에서는, 메모리 컨트롤러가 소정의 기능 및/또는 연산을 실행하는 복수의 단위 회로들을 갖는 연산 블록을 포함할 수 있다. 연산 블록에서 단위 회로들 중에서 실제로 동작할 선택 단위 회로들과, 선택 단위 회로들의 동작 순서는, 메모리 컨트롤러의 코어 블록이 생성하는 제어 커맨드에 따라 결정될 수 있다. 코어 블록은 메모리 장치의 동작 조건과 메모리 셀들(MC)의 사용 횟수 등을 참조하여 제어 전압을 조절하는 제어 커맨드를 생성하여 연산 블록에 전송할 수 있으며, 연산 블록은 제어 커맨드에 따라 동작하여 제어 전압을 조절할 수 있다.
따라서 본 발명의 일 실시예에서는, 메모리 장치의 스펙과 성능 및 동작 조건 등에 최적화된 제어 전압을 메모리 컨트롤러가 적응적으로 생성할 수 있다. 또한 선택 단위 회로들, 및 그 동작 순서를 적절히 결정함으로써, 메모리 장치에 필요한 다양한 기능의 가속기를 구현할 수 있다.
도 4a 내지 도 4d는 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 장치의 동작을 설명하기 위해 제공되는 도면들이다.
도 4a 내지 도 4d는 메모리 장치에 포함되는 메모리 셀들 각각에 저장되는 데이터의 비트 수에 따른, 메모리 셀들의 문턱 전압 산포를 나타낸 도면들일 수 있다. 먼저 도 4a는 메모리 셀들 각각에 1 비트의 데이터가 저장되는 메모리 장치에서, 메모리 셀들의 문턱 전압 산포를 나타낸 도면일 수 있다.
도 4a를 참조하면, 메모리 셀들은 제1 상태(S1) 및 제2 상태(S2) 중 어느 하나를 가질 수 있다. 제1 상태(S1)는 제2 상태(S2)보다 낮은 전압을 가질 수 있다. 도 4a에 도시한 일 실시예에서, 읽기 동작을 위해 메모리 컨트롤러가 워드 라인들에 입력하는 읽기 전압(VRD)은, 제1 상태(S1)와 제2 상태(S2) 사이의 전압일 수 있다.
도 4b는 메모리 셀들 각각에 2 비트의 데이터가 저장될 수 있는 메모리 장치에서, 메모리 셀들의 문턱 전압 산포를 나타낸 도면일 수 있다. 도 4b에 도시한 일 실시예에서 메모리 셀들은 제1 내지 제4 상태들(S1-S4) 중 어느 하나를 가질 수 있다. 메모리 컨트롤러는 제1 내지 제4 상태들(S1-S4) 사이의 제1 내지 제3 읽기 전압들(VRD1-VRD3)을 워드 라인들에 입력하여 읽기 동작을 실행할 수 있다.
도 4c는 메모리 셀들 각각에 3 비트의 데이터가 저장될 수 있는 메모리 장치에서, 메모리 셀들의 문턱 전압 산포를 나타낸 도면일 수 있다. 도 4c에 도시한 일 실시예에서 메모리 셀들은 제1 내지 제8 상태들(S1-S8) 중 어느 하나를 가질 수 있다. 메모리 컨트롤러는 제1 내지 제8 상태들(S1-S8) 사이의 제1 내지 제7 읽기 전압들(VRD1-VRD7)을 워드 라인들에 입력하여 읽기 동작을 실행할 수 있다.
도 4d는 메모리 셀들 각각에 4 비트의 데이터가 저장될 수 있는 메모리 장치에서, 메모리 셀들의 문턱 전압 산포를 나타낸 도면일 수 있다. 도 4d에 도시한 일 실시예에서 메모리 셀들은 제1 내지 제16 상태들(S1-S16) 중 어느 하나를 가질 수 있다. 메모리 컨트롤러는 제1 내지 제16 상태들(S1-S16) 사이의 제1 내지 제15 읽기 전압들(VRD1-VRD15)을 워드 라인들에 입력하여 읽기 동작을 실행할 수 있다.
도 4a 내지 도 4d를 참조하면, 메모리 셀들 각각에 저장되는 데이터의 비트 수가 증가할수록, 문턱 전압 산포가 좁아질 수 있다. 따라서, 정확한 크기의 읽기 전압이 워드 라인들에 입력되지 않으면, 메모리 셀들의 데이터를 잘못 읽어올 수 있다. 또한 메모리 셀들의 문턱 전압 산포는, 메모리 장치의 동작 조건 및/또는 사용 횟수 등에 따라 달라지는 메모리 셀들의 특성에 따라서도 변할 수 있다. 따라서 메모리 장치의 동작 성능을 개선하기 위해서는, 메모리 셀들의 문턱 전압 산포 변화를 고려하여 읽기 전압을 결정해야 할 수 있다.
일례로 메모리 컨트롤러는 메모리 장치의 특성과 성능 등을 고려하여 읽기 전압을 조절하는 하드웨어 가속기를 포함할 수 있다. 다만 하드웨어 가속기는 메모리 장치의 교체 등으로 메모리 장치의 특성과 성능이 변할 경우, 새로운 메모리 장치에 적용되지 못할 수 있다.
본 발명의 일 실시예에서는, 미리 정해진 연산 및/또는 기능을 수행하는 복수의 단위 회로들을 하드웨어 레벨로 구현하여 메모리 컨트롤러 내에 탑재할 수 있다. 메모리 컨트롤러는 단위 회로들 중 적어도 일부를 선택 단위 회로들로 결정하고, 선택 단위 회로들의 동작 순서를 지정하는 제어 커맨드를 생성할 수 있다. 메모리 컨트롤러가 생성하는 제어 커맨드에 따라, 단위 회로들로 구현되는 가속기의 종류가 달라질 수 있다. 따라서, 메모리 장치의 특성과 성능에 맞춰 최적화된 가속기를 메모리 컨트롤러가 제공할 수 있다.
본 발명의 일 실시예에 따른 메모리 컨트롤러에서 제공하는 가속기는, 단위 회로들의 조합으로 구현되므로, 읽기 동작뿐만 아니라 다른 다양한 동작들도 지원할 수 있다. 일례로, 저장 장치가 연결된 호스트가 요청하는 다양한 기능들을 메모리 컨트롤러가 단위 회로들의 조합으로 구현할 수 있으며, 따라서 저장 장치의 동작 성능을 효과적으로 개선할 수 있다.
도 5는 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 장치를 간단하게 나타낸 블록도이다.
도 5를 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110) 및 주변 회로(120)를 포함할 수 있다. 주변 회로(120)는 로우 디코더(121), 전압 생성기(122), 페이지 버퍼(123), 입출력 회로(124), 및 컨트롤 로직(125) 등을 포함할 수 있다.
메모리 셀 어레이(120)는 복수의 메모리 셀들을 포함하며, 메모리 셀 어레이(120)는 복수의 메모리 블록들로 구분될 수 있다. 복수의 메모리 셀들은, 스트링 선택 라인(SSL), 워드 라인들(WL) 및 접지 선택 라인(GSL)을 통해 로우 디코더(121)와 연결될 수 있으며, 비트 라인들(BL)을 통해 페이지 버퍼(123)와 연결될 수 있다. 본 발명의 실시예들에서, 동일한 행을 따라 배열되는 복수의 메모리 셀들은 동일한 워드 라인(WL)에 연결되고, 동일한 열을 따라 배열되는 복수의 메모리 셀들은 동일한 비트 라인(BL)에 연결될 수 있다.
로우 디코더(121)는 입력된 어드레스 데이터(ADDR)를 디코딩하여, 워드 라인(WL)의 구동 신호들을 발생하고 전달할 수 있다. 로우 디코더(121)는 컨트롤 로직(125)의 제어에 응답하여 전압 발생기(122)가 생성한 워드 라인 전압을, 워드 라인들(WL)에 입력할 수 있다.
페이지 버퍼(123)는 비트 라인들(BL)을 통해 메모리 셀 어레이(110)와 연결되며, 메모리 셀들에 저장된 정보를 읽어오거나, 메모리 셀들에 데이터를 기록할 수 있다. 페이지 버퍼(123)는 칼럼 디코터 및 감지 증폭기를 포함할 수 있다. 칼럼 디코더는 메모리 셀 어레이(110)의 비트 라인들(BL)을 중 적어도 일부를 선택할 수 있으며, 감지 증폭기는 읽기 동작 시에 칼럼 디코더가 선택한 비트 라인에 연결된 메모리 셀의 데이터를 읽어올 수 있다.
입출력 회로(124)는 프로그램 동작 시 데이터(DATA)를 입력 받아 페이지 버퍼(123)에 전달할 수 있으며, 읽기 동작에서는 페이지 버퍼(123)가 메모리 셀 어레이(110)로부터 읽어 온 데이터(DATA)를 외부로 출력할 수 있다. 입출력 회로(124)는 외부의 메모리 컨트롤러로부터 입력받는 어드레스 또는 명령어를 컨트롤 로직(125)에 전달할 수 있다.
컨트롤 로직(125)은 로우 디코더(121), 전압 생성기(122), 및 페이지 버퍼(123) 등의 동작을 제어할 수 있다. 일 실시예에서 컨트롤 로직(125)은 외부의 메모리 컨트롤러 등으로부터 전달되는 제어 신호 및 외부 전압에 따라 동작할 수 있다.
전압 발생기(122)는 외부에서 입력되는 전원 전압을 이용하여 메모리 장치(100)의 동작에 필요한 제어 전압들, 예를 들어, 프로그램 전압, 읽기 전압, 소거 전압, 패스 전압 등을 생성할 수 있다. 전압 발생기(122)가 생성하는 전압은 주변 회로(120)에 공급되거나, 로우 디코더(121) 등을 통해 메모리 셀 어레이(110)에 입력될 수 있다.
일례로, 프로그램 동작에서 데이터를 기록하고자 하는 선택 메모리 셀에 연결되는 선택 워드 라인에는, 프로그램 전압이 입력될 수 있다. 또한, 선택 메모리 셀과 하나의 메모리 셀 스트링에 포함되어 채널 영역을 공유하는 비선택 메모리 셀들에 연결되는 비선택 워드 라인들에는 프로그램 전압보다 작은 패스 전압이 입력될 수 있다.
또한 일 실시예에서, 읽기 동작에서는 데이터를 읽어오고자 하는 선택 메모리 셀에 연결된 선택 워드 라인에 읽기 전압이 입력되고, 선택 메모리 셀과 채널 영역을 공유하는 비선택 메모리 셀들에 연결된 비선택 워드 라인들에는 패스 전압이 입력될 수 있다. 메모리 셀들 각각이 복수의 비트들을 갖는 데이터를 저장하는 일 실시예에서, 로우 디코더(121)는 서로 다른 크기를 갖는 복수의 읽기 전압들을 선택 워드 라인에 입력할 수 있다.
앞서 설명한 바와 같이 메모리 셀들에 기록되는 데이터는, 메모리 셀들의 문턱 전압에 따라 구분될 수 있다. 메모리 셀들의 문턱 전압은 메모리 셀들의 특성에 따라 달라질 수 있으며, 메모리 셀들의 특성은 메모리 장치(100)의 사용 횟수, 메모리 셀 어레이(110) 내에서 메모리 셀들의 위치 등에 따라 달라질 수 있다. 따라서, 메모리 장치(100)의 사용 횟수가 메모리 셀들의 위치 등을 고려하여, 프로그램 동작 및 읽기 동작 등과 같은 제어 동작 시에 로우 디코더(121)가 메모리 셀 어레이(110)에 입력하는 제어 전압을 조절해야 할 수 있다.
일반적으로, 메모리 장치(100)의 특성, 예를 들어 적층된 워드 라인들(WL)의 단 수, 하나의 메모리 블록 내에 포함되는 메모리 셀들의 개수, 메모리 셀들의 게이트 길이(gate length)를 결정하는 워드 라인들(WL) 각각의 두께 등을 고려한 하드웨어 가속기를, 메모리 장치(100)를 제어하는 메모리 컨트롤러에 탑재할 수 있다. 그러나 하드웨어 가속기는 메모리 장치(100)와 다른 특성을 갖는 메모리 장치에는 적용될 수 없으며, 결과적으로 메모리 장치(100)마다 메모리 컨트롤러를 새로 설계하는 문제가 발생할 수 있다.
본 발명의 일 실시예에서는, 메모리 컨트롤러가 코어 블록 및 연산 블록을 포함하며, 연산 블록은 미리 정해진 연산 및/또는 기능을 실행하는 복수의 단위 회로들을 포함할 수 있다. 일례로, 단위 회로들 각각은 서로 다른 기능 및/또는 연산을 실행하며, 시프트 연산, 최소값 알고리즘, 최대값 알고리즘, 마이너스 연산, 플러스 연산, 데이터 검색, 데이터 쓰기 등을 실행할 수 있다. 코어 블록가 연산 블록으로 제어 커맨드를 송신하면, 연산 블록은 제어 커맨드가 지시하는 작업을 처리하고 완료 커맨드를 코어 블록으로 리턴할 수 있다.
일 실시예에서, 제어 커맨드는 연산 블록에 포함되는 단위 회로들 중 적어도 일부인 선택 단위 회로들 및 선택 단위 회로들의 동작 순서를 지정할 수 있으며, 동작 순서에 따라 선택 단위 회로들이 동작함으로써 제어 커맨드가 지시하는 작업이 처리될 수 있다. 결과적으로, 본 발명의 일 실시예에서는 제어 커맨드에 포함되는 데이터에 따라 연산 블록이 다양한 기능을 제공하는 하드웨어 가속기를 구현할 수 있으므로, 서로 다른 특성들을 갖거나 서로 다른 동작 조건에서 동작하는 메모리 장치(100)에 범용적으로 적용 가능한 메모리 컨트롤러 및 이를 포함하는 저장 장치를 제공할 수 있다.
도 6은 본 발명의 일 실시예에 따른 저장 장치를 간단하게 나타낸 블록도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 저장 장치(200)는 메모리 컨트롤러(210)와 메모리 장치(220)를 포함할 수 있다. 메모리 장치(220)는 비휘발성 특성을 갖는 플래시 메모리를 포함할 수 있다.
메모리 컨트롤러(210)는 코어 블록(211)과 연산 블록(212)을 포함할 수 있다. 코어 블록(211)은 저장 장치(200)의 동작 전반을 제어하는 프로세서를 포함할 수 있으며, 저장 장치(200)가 연결되는 호스트로부터 전달되는 커맨드에 기초하여 메모리 장치(220)를 제어할 수 있다. 일례로 코어 블록(211)은 호스트로부터 수신한 데이터를 메모리 장치(220)에 기록하거나, 메모리 장치(220)에 저장된 데이터를 읽어와서 호스트에 전송할 수 있다.
연산 블록(212)은 미리 정해진 연산 및/또는 기능을 실행하는 복수의 단위 회로들을 포함할 수 있다. 연산 블록(212)에 포함되는 단위 회로들 각각은, 나머지 단위 회로들 전체와 연결될 수 있다. 일 실시예에서 단위 회로들 각각은 RTL 레벨 및 게이트 레벨에서 이용 가능한 하드웨어 형태로 표현된 코드에 기초하여 동작할 수 있다. 예를 들어 단위 회로들 각각은 서로 중복되지 않는 다른 기능 및/또는 연산을 실행하며, 플러스 연산, 마이너스 연산, 최대값 연산, 최소값 연산, 시프트 연산, 데이터 검색, 데이터 기록 등의 동작이 단위 회로들 각각에 의해 실행될 수 있다.
연산 블록(212)에 포함되는 단위 회로들은, 코어 블록(211)이 전송하는 제어 커맨드에 응답하여 동작할 수 있다. 일례로, 코어 블록(211)은 SQ(Submission Queue) 포맷으로 제어 커맨드를 생성하여 연산 블록(212)에 전송할 수 있다. 제어 커맨드는, 해당 제어 커맨드의 전송 차례, 연산 블록(212)이 처리해야 하는 작업에 필요한 데이터들, 선택 단위 회로들, 및 선택 단위 회로들의 동작 순서 등을 포함할 수 있다. 선택 단위 회로들은, 연산 블록(212)에 포함되는 단위 회로들 중에서, 제어 커맨드에 의해 연산 블록(212)이 처리해야 하는 작업에서 실제로 동작하는 단위 회로들일 수 있다.
본 발명의 일 실시예에서는, 연산 블록(212)이 처리할 수 있는 작업의 종류가 한정되지 않으며, 제어 커맨드에 포함된 선택 단위 회로들 및 그 동작 순서에 따라 연산 블록(212)이 처리하는 작업이 결정될 수 있다. 따라서, 복수의 단위 회로들을 갖는 하나의 연산 블록(212)으로 여러 작업들을 처리할 수 있는 가속기를 제공할 수 있으며, 저장 장치(200)의 성능을 개선하고 메모리 컨트롤러(210)의 범용성을 높일 수 있다.
도 7은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 저장 장치(300)는 메모리 컨트롤러(310)와 메모리 장치(340)를 포함할 수 있다. 메모리 컨트롤러(310)는 코어 블록(320) 및 연산 블록(330)을 포함할 수 있으며, 연산 블록(330)은 제1 내지 제9 단위 회로들(331-339)을 포함할 수 있다. 단위 회로들(331-339)의 개수는 실시예들에 따라 다양하게 변형될 수 있다.
제1 내지 제9 단위 회로들(331-339) 각각은 서로 다른 기능 및/또는 연산을 실행할 수 있다. 일 실시예에서 제1 내지 제9 단위 회로들(331-339) 각각이 실행하는 기능 및/또는 연산은 서로 중복되지 않을 수 있다. 또한 제1 내지 제9 단위 회로들(331-339) 각각은 나머지 단위 회로들 전부와 연결될 수 있다. 도 7을 참조하면, 일례로 제1 단위 회로(331)는 제2 내지 제9 단위 회로들(332-339) 전부와 연결될 수 있다. 유사하게, 제9 단위 회로(339)는 제1 내지 제8 단위 회로들(331-338) 전부와 연결될 수 있다.
코어 블록(320)은 제어 커맨드(SQ)를 생성하여 연산 블록(330)에 전송할 수 있다. 제어 커맨드(SQ)는 해당 제어 커맨드(SQ)의 전송 차례, 연산 블록(330)이 제어 커맨드(SQ)가 지시하는 작업을 실행하는 데에 필요한 데이터들, 제어 커맨드(SQ)가 지시하는 작업을 실행하는 데에 필요한 선택 단위 회로들 및 그 동작 순서 등을 포함할 수 있다.
선택 단위 회로들이 제어 커맨드(SQ)가 지시하는 작업을 완료하면, 연산 블록(330)은 코어 블록(320)에 완료 커맨드(CQ)를 전송할 수 있다. 완료 커맨드(CQ)는 CQ(Completion Queue) 포맷을 가질 수 있다. 일 실시예에서 완료 커맨드(CQ) 코어 블록(320)이 전송하는 제어 커맨드(SQ) 중 적어도 하나와 같은 데이터를 포함할 수 있다.
메모리 장치(340)는 데이터 테이블(350), 및 복수의 테이블 세트들(360-380)을 포함할 수 있다. 일례로 데이터 테이블(350)은 메모리 장치(340)를 제어하는 데에 필요한 데이터들, 예를 들어 메모리 장치(340)의 워드 라인들이나 비트 라인들에 입력되는 제어 전압들을 저장할 수 있다. 데이터 테이블(350)에 저장된 데이터들은, 제1 내지 제9 단위 회로들(331-339) 중에서 데이터를 기록할 수 있는 단위 회로에 의해 변경될 수 있다.
일 실시예에서, 메모리 장치(340)에 포함되는 메모리 셀들 각각은 복수의 비트들을 갖는 데이터를 저장할 수 있다. 일례로 메모리 셀들 각각이 4 비트의 데이터를 저장하는 메모리 장치(340)에서, 메모리 컨트롤러(320)는 복수의 읽기 전압들을 이용하여 선택 메모리 셀로부터 데이터를 읽어올 수 있다. 메모리 셀들에 저장된 데이터들에 따라, 메모리 셀들의 문턱 전압은 산포를 가질 수 있으며, 메모리 셀들의 문턱 전압 산포는 동작 조건과 사용 횟수 등에 따라 달라질 수 있다.
일 실시예에서 메모리 컨트롤러(320)는, 최초 설정된 읽기 전압들을 조절하며 문턱 전압 산포의 변화에 대응하여 메모리 셀로부터 데이터를 읽어올 수 있다. 일례로 데이터 테이블(350)에는, 메모리 셀들에 대해 메모리 컨트롤러(320)가 문턱 전압 산포의 변화를 고려하여 조절한 읽기 전압들이 저장될 수 있다. 다만, 데이터 테이블(350)에는 읽기 전압 외에 패스 전압, 프로그램 전압 등이 저장될 수도 있으며, 데이터 읽기 동작이나 데이터 프로그램 동작에서 비트 라인들에 입력되는 전압이 저장될 수도 있다.
일 실시예에서 복수의 테이블 세트들(360-380) 각각은, 메모리 장치(340)의 사용 횟수에 따른 제어 전압들을 저장할 수 있다. 일례로, 제1 테이블 세트(360)에서 제1 카운터 테이블(361)은 사용 횟수가 제1 기준 횟수 이하일 때 메모리 셀들의 제어 전압들을 저장할 수 있다. 제2 카운터 테이블(362)은 사용 횟수가 제1 기준 횟수보다 크고 제2 기준 횟수 이하일 때 메모리 셀들의 제어 전압을 저장할 수 있다. 제3 카운터 테이블(363)은 사용 횟수가 제2 기준 횟수보다 크고 제3 기준 횟수 이하일 때 메모리 셀들의 제어 전압을 저장할 수 있다. 제4 카운터 테이블(364)은 사용 횟수가 제3 기준 횟수보다 크고 제4 기준 횟수 이하일 때 메모리 셀들의 제어 전압을 저장할 수 있다.
제1 내지 제3 테이블 세트들(360-380) 각각은 같은 종류의 제어 전압들을 사용 횟수에 따라 분류하여 저장할 수 있으며, 제1 내지 제3 테이블 세트들(360-380) 각각에 저장되는 제어 전압들은 서로 다를 수 있다. 일례로 제1 내지 제3 테이블 세트들(360-380) 각각에 저장되는 제어 전압들은 읽기 동작에서 선택 워드 라인들에 입력되는 읽기 전압, 프로그램 동작에서 선택 워드 라인들에 입력되는 프로그램 전압, 읽기 동작이나 프로그램 동작에서 비선택 워드 라인들에 입력되는 패스 전압 등일 수 있다.
연산 블록(330)은 코어 블록(320)으로부터 수신한 제어 커맨드(SQ)의 종류에 따라, 데이터 테이블(350)과 제1 내지 제3 테이블 세트들(360-380)에 저장된 데이터들을 이용하여 제어 커맨드(SQ)가 지시하는 작업을 실행할 수 있다. 제1 내지 제9 단위 회로들(331-339) 중 하나는 제1 내지 제3 테이블 세트들(360-380)로부터 데이터를 읽어오는 데이터 검색 기능을 실행할 수 있다. 또한 제1 내지 제9 단위 회로들(331-339) 중 하나는, 데이터 테이블(350)에 저장된 데이터를 변경하는 데이터 기록 기능을 실행할 수 있다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 메모리 컨트롤러에서 생성되는 커맨드들을 설명하기 위해 제공되는 도면들이다.
먼저 도 8a는 메모리 컨트롤러의 코어 블록이 연산 블록으로 전송하는 제어 커맨드일 수 있다. 도 8a에 도시한 일 실시예에서, 제어 커맨드는 순차적으로 전송되는 제1 커맨드(SQ0)와 제2 커맨드(SQ1)를 포함할 수 있다.
제1 커맨드(SQ0)는 제어 커맨드의 전송 차례를 나타내는 순서 식별자(QID), 제어 커맨드가 지시하는 작업을 연산 블록이 실행하는 데에 필요한 데이터들이 기록되는 제1 데이터(DATA0)와 제2 데이터 필드(DATA1) 등을 포함할 수 있다. 제1 커맨드(SQ0)의 구성은 실시예들에 따라 다양하게 달라질 수 있다.
제2 커맨드(SQ1)는 제어 커맨드가 지시하는 작업을 연산 블록이 실행하는 데에 필요한 선택 단위 회로들 및 그 동작 순서를 포함할 수 있다. 도 8a에 도시한 일 실시예에서는 8개의 필드들에 선택 단위 회로들이 저장되는 것으로 가정하였으나, 제어 커맨드가 지시하는 작업에 따라 선택 단위 회로들의 개수는 증가 또는 감소할 수 있다.
도 8b는 제어 커맨드가 지시하는 작업을 완료한 연산 블록이, 코어 블록으로 전송하는 완료 커맨드(CQ0)일 수 있다. 완료 커맨드(CQ0)는 코어 블록이 연산 블록으로 전송한 제어 커맨드 중 일부와 같을 수 있다. 일례로 도 8b에 도시한 일 실시예에서 완료 커맨드(CQ0)는 제1 커맨드(SQ0)와 같을 수 있다. 코어 블록은 완료 커맨드(CQ0)의 순서 식별자(QID)에 기록된 전송 차례를 참조하여, 몇 번째 차례로 보낸 제어 커맨드가 지시하는 작업이 완료되었는지를 판단할 수 있다.
도 9 내지 도 17은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위해 제공되는 도면들이다.
도 9는 본 발명의 일 실시예에 따른 저장 장치의 메모리 컨트롤러에서, 코어 블록이 연산 블록으로 전송하는 제어 커맨드일 수 있다. 제어 커맨드는 연속적으로 전송되는 제1 커맨드(SQ0)와 제2 커맨드(SQ1)를 포함할 수 있다.
제1 커맨드(SQ0)는 제어 커맨드의 전송 차례를 나타내는 제1 필드(QID)를 포함할 수 있다. 연산 블록은 제어 커맨드가 지시하는 작업을 완료하고 코어 블록으로 완료 커맨드를 리턴할 때, 제1 커맨드(SQ0)에 포함된 순서 식별자(QID)의 값을 그대로 완료 커맨드에 기록하여 코어 블록에 전송할 수 있다. 도 9에 도시한 일 실시예에서 제1 커맨드(SQ0)는 코어 블록이 연산 블록에 처음 보내는 제어 커맨드일 수 있다.
또한 제1 커맨드(SQ0)는, 제어 커맨드가 지시하는 작업을 연산 블록이 실행하는 데에 필요한 제1 데이터(DATA0)와 제2 데이터(DATA1)를 포함할 수 있다. 도 9에 도시한 일 실시예에서 제1 데이터(DATA0)는 메모리 장치의 사용 횟수에 대응할 수 있다. 또한 제2 데이터(DATA1)는, 메모리 컨트롤러가 메모리 장치에 대한 제어 동작을 실행할 때 메모리 컨트롤러가 선택 메모리 셀에 연결된 선택 워드 라인에 입력하는 제어 전압의 초기 값들(INIT1-INIT15)에 대응할 수 있다. 도 9에 도시한 일 실시예에서 제1 데이터(DATA0)가 나타내는 메모리 장치의 사용 횟수는 0.8k 일 수 있으며, 제2 데이터(DATA1)은 읽기 동작에 필요한 읽기 전압의 초기 값들(INIT1-INIT15)을 나타낼 수 있다. 도 9에 도시한 일 실시예에 따른 제어 커맨드를 생성하는 메모리 컨트롤러는, 하나의 메모리 셀에 4 비트의 데이터가 저장되는 메모리 장치를 제어할 수 있다.
코어 블록으로부터 제어 커맨드를 수신하는 연산 블록은, 미리 정해진 기능 및/또는 연산을 실행하는 복수의 단위 회로들을 포함할 수 있다. 제2 커맨드(SQ1)는, 메모리 장치의 사용 횟수 등을 고려하여 읽기 전압을 조절하는 작업을 완료하는 데에 필요한 선택 단위 회로들 및 그 동작 순서를 저장할 수 있다. 도 9에 도시한 일 실시예에서는, 제5 단위 회로(F5), 제4 단위 회로(F4), 제1 단위 회로(F1), 제2 단위 회로(F2), 제6 단위 회로(F6)가 순서대로 동작하여 읽기 전압을 조절할 수 있다. 이하, 도 10 내지 도 17을 참조하여, 본 발명의 일 실시예에 따른 상기 선택 단위 회로들의 동작을 더욱 자세히 설명하기로 한다.
도 10 및 도 11은 선택 단위 회로들 중에서 가장 먼저 동작하는 제5 단위 회로(F5)의 동작을 설명하기 위한 도면들일 수 있다. 먼저 도 10을 참조하면, 본 발명의 일 실시예에 따른 저장 장치(400)는 메모리 컨트롤러(410)와 메모리 장치(440)를 포함할 수 있다. 메모리 컨트롤러(410)는 코어 블록(420)과 연산 블록(430)을 포함할 수 있으며, 연산 블록(430)은 제1 내지 제9 단위 회로들(431-439)을 포함할 수 있다. 연산 블록(430)은 코어 블록(420)으로부터 제1 커맨드(SQ0)와 제2 커맨드(SQ1)를 순차적으로 수신하며, 제2 커맨드(SQ1)를 참조하여 제1 내지 제9 단위 회로들(431-439) 중 선택 단위 회로들(431, 432, 434, 435, 436)을 결정할 수 있다. 또한, 제2 커맨드(SQ1)에 저장된 바와 같이 제5 단위 회로(435)가 가장 먼저 동작할 수 있다.
일 실시예에서, 제5 단위 회로(435)는 데이터 검색 기능을 실행할 수 있다. 제5 단위 회로는, 제1 커맨드(SQ0)에 포함된 제1 데이터(DATA0)를 참조하여, 메모리 장치의 사용 횟수인 0.8k에 대응하는 카운터 테이블을 제1 내지 제3 테이블 세트들(460-480) 각각에서 선택할 수 있다. 일례로, 제5 단위 회로(435)는 제1 내지 제3 테이블 세트들(460-480) 각각에서 제2 카운터 테이블(462, 472, 482)을 선택할 수 있다.
도 11을 참조하면, 복수의 테이블 세트들(460-480) 각각에서 선택된 제2 카운터 테이블(462, 472, 482)은, 메모리 장치(440)의 사용 횟수에 따른 제어 전압(V1-V15)의 예측 값들을 저장할 수 있다. 일례로 제2 카운터 테이블(462, 472, 482)에서 제어 전압(V1-V15)의 예측 값들은, 메모리 셀들에 연결되는 워드 라인들에 따라 다를 수 있다. 제어 전압(V1-V15)은, 읽기 동작에서 선택 워드 라인에 입력되는 읽기 전압일 수 있다.
제5 단위 회로(435)는, 제2 카운터 테이블(462, 472, 482)에서 읽기 전압을 조절하고자 하는 타겟 워드 라인(WL1)에 해당하는 제어 전압(V1-V15)의 예측 값들(B1-B15, I1-I15, P1-P15)을 읽어올 수 있다. 또한 제5 단위 회로(435)는 제2 카운터 테이블(462, 472, 482)에서, 미리 설정된 기준 워드 라인(WL93)에 할당된 제어 전압(V1-V15)의 기준 값들(E1-E15, L1-L15, S1-S15)을 읽어올 수 있다. 일례로 예측 값들은 제1 세트(SET1), 제2 세트(SET2), 제3 세트(SET3)를 포함하며, 기준 값들은 제1 기준 세트(REF1), 제2 기준 세트(REF2), 제3 기준 세트(REF3)를 포함할 수 있다.
도 12는, 제5 단위 회로(435)에 이어서 동작하는 제4 단위 회로(434)의 동작을 설명하기 위한 도면일 수 있다. 일 실시예에서, 제4 단위 회로(434)는 최소값 알고리즘을 실행하는 단위 회로일 수 있다. 제4 단위 회로(434)는 제5 단위 회로(435)로부터 제1 세트(SET1), 제2 세트(SET2), 제3 세트(SET3)를 입력받을 수 있으며, 최소값 알고리즘을 적용하여 하나의 세트를 선택할 수 있다. 도 12에 도시한 일 실시예에서는, 제4 단위 회로(434)가 제2 세트(SET2)를 선택할 수 있다.
도 13은, 제4 단위 회로(434)에 이어서 동작하는 제1 단위 회로(431)의 동작을 설명하기 위한 도면일 수 있다. 일 실시예에서, 제1 단위 회로(431)는 마이너스 연산을 실행하는 단위 회로일 수 있다. 제1 단위 회로(431)는 제4 단위 회로(434)로부터 제2 세트(SET2), 및 제1 커맨드(SQ0)에 포함된 읽기 전압의 초기 값들(INIT1-INIT15)을 입력받을 수 있다. 제1 단위 회로(431)는 제2 세트(SET2)에 포함된 읽기 전압의 예측 값들(I1-I15)과, 읽기 전압의 초기 값들(INIT1-INIT15)의 차이 값들(Δ1-Δ15)을 계산할 수 있다.
도 14는, 제1 단위 회로(431)에 이어서 동작하는 제2 단위 회로(432)의 동작을 설명하기 위한 도면일 수 있다. 일 실시예에서, 제2 단위 회로(432)는 플러스 연산을 실행하는 단위 회로일 수 있다. 제2 단위 회로(432)는 제1 단위 회로(431)로부터 읽기 전압의 차이 값들(Δ1-Δ15)을 수신할 수 있다. 또한 제2 단위 회로(432)는, 앞서 제4 단위 회로(434)가 선택한 제2 세트(SET2)와 같은 제2 카운터 테이블(472)에 포함되는 제2 기준 세트(REF2)를 수신할 수 있다.
일 실시예에서 제2 단위 회로(432)는, 제2 기준 세트(REF2)에 포함되는 읽기 전압의 기준 값들(L1-L15)에, 제1 단위 회로(431)가 계산한 읽기 전압의 차이 값들(Δ1-Δ15)을 각각 더하여, 읽기 전압의 설정 값들(L1+Δ1-L15+Δ15)을 획득할 수 있다. 제2 단위 회로(432)의 연산 결과는, 읽기 전압에 대한 결과 세트(RES)로 정의될 수 있다.
도 15를 참조하면, 메모리 장치(500)는 기판(501) 상에 적층되는 복수의 워드 라인들(WL0-WL95), 복수의 워드 라인들(WL0-WL95)을 관통하며 기판(501)의 상면에 수직하는 전하 저장층(502)과 채널 영역(503) 등을 포함할 수 있다. 워드 라인들(WL0-WL95)에는 읽기 전압 세트들(RD0-RD95)이 각각 할당될 수 있으며, 읽기 전압 세트들(RD0-RD95) 각각은 4 비트의 데이터를 구분하기 위한 복수의 읽기 전압들을 포함할 수 있다.
도 9 내지 도 14를 참조하여 설명한 일 실시예에서, 연산 블록(430)이 계산한 읽기 전압의 결과 세트(RES)는, 타겟 워드 라인(WL1)에 대한 읽기 전압 세트(RD1)로서, 메모리 장치(440)의 데이터 테이블(450)에 저장될 수 있다. 도 9 내지 도 14를 참조하여 설명한 바와 같이, 타겟 워드 라인(WL1)에 대한 읽기 전압 세트(RD1)는, 제1 커맨드(SQ0)에 포함된 초기 값들(INIT1-INIT15)과, 연산 블록(430)이 선택한 제2 카운터 테이블(472)에 저장된 예측 값들(I1-I15) 및 기준 값들(L1-L15)에 의해 결정될 수 있다. 기준 값들(L1-L15)은 미리 설정된 기준 워드 라인(WL93)에 할당된 읽기 전압 세트(RD93)에 포함된 읽기 전압의 값들일 수 있다.
도 16은, 제2 단위 회로(432)에 이어서 동작하는 제6 단위 회로(436)의 동작을 설명하기 위한 도면일 수 있다. 일 실시예에서, 제6 단위 회로(436)는 데이터 쓰기 기능을 실행하는 단위 회로일 수 있다. 제6 단위 회로(436)는 제2 단위 회로(432)가 출력하는 읽기 전압의 결과 세트(RES)를 메모리 장치(440)의 데이터 테이블(450)에 기록할 수 있다. 따라서 타겟 워드 라인(WL1)에 대한 읽기 전압 조절이 완료될 수 있으며, 이후 타겟 워드 라인(WL1)에 연결된 메모리 셀들로부터 데이터를 읽어오기 위한 읽기 전압은, 데이터 테이블(450)에 기록된 결과 값들(RES)로 선택될 수 있다.
제6 단위 회로가 읽기 전압의 결과 세트(RES)를 데이터 테이블(450)에 기록하면, 연산 블록(430)은 코어 블록(420)으로 완료 커맨드(CQ)를 출력할 수 있다. 완료 커맨드(CQ)는 도 17에 도시한 바와 같이, 코어 블록(420)이 연산 블록(430)에 전송한 제1 커맨드(SQO)와 같은 데이터를 포함할 수 있다. 코어 블록(420)은 완료 커맨드(CQ)에 포함된 순서 식별자(QID)를 참조하여, 연산 블록(430)에 요청한 타겟 워드 라인(WL1)에 대한 읽기 전압의 조절 작업이 완료되었음을 확인할 수 있다.
도 9 내지 도 17을 참조하여 설명한 일 실시예에서는, 코어 블록(420)이 전달하는 제어 커맨드에 응답하여 연산 블록(430)이 읽기 전압을 조절하는 작업을 실행하는 것으로 가정하였으나, 연산 블록(430)은 그 외에 다양한 작업들을 실행할 수 있다. 연산 블록(430)은 미리 정해진 기능 및/또는 연산을 실행하는 단위 회로들(431-439)을 포함하며, 단위 회로들(431-439) 중에서 실제로 동작하는 선택 단위 회로들과 그 동작 순서가 코어 블록(420)이 전달하는 제어 커맨드에 의해 결정될 수 있다.
따라서, 코어 블록(420)이 전달하는 제어 커맨드에 따라, 연산 블록(430)은 메모리 장치(440)의 동작에서 워드 라인들, 비트 라인들에 입력되는 다양한 제어 전압들을 조절할 수 있다. 또한, 제어 전압들의 크기뿐만 아니라, 제어 전압들의 입력 타이밍 등도 단위 회로들(431-439)의 조합으로 조절할 수 있다. 다시 말해, 본 발명의 일 실시예에서는, 단위 회로들(431-439)을 서로 다른 방식으로 조합하여 다양한 기능을 제공하는 가속기들을 하나의 연산 블록(430)으로 구현할 수 있다.
도 18 내지 도 21은 본 발명의 일 실시예에 따른 저장 장치에 포함되는 메모리 컨트롤러의 동작을 설명하기 위해 제공되는 도면들이다.
도 18 내지 도 21를 참조하여 설명하는 실시예에서, 메모리 컨트롤러(600)는 코어 블록(610)과 연산 블록(620)을 포함할 수 있다. 연산 블록(620)은 제1 내지 제9 단위 회로들(621-629)을 포함할 수 있다. 연산 블록(620)에 포함되는 단위 회로들(621-629)의 개수는 실시예들에 따라 다양하게 달라질 수 있으며, 단위 회로들(621-629) 각각은, 나머지 단위 회로들 전부와 연결될 수 있다.
도 18을 참조하면, 제1 내지 제9 단위 회로들(621-629)은 버퍼들(631-639)을 포함할 수 있다. 제1 내지 제9 단위 회로들(621-629)이 버퍼들(631-639)을 포함하므로, 코어 블록(610)이 순차적으로 전송하는 제어 커맨드들이 제1 내지 제9 단위 회로들(621-629)에서 병렬적으로 동시에 처리될 수 있다.
도 19를 참조하면, 코어 블록(610)이 연산 블록(620)으로 제1 제어 커맨드(640)를 전송할 수 있다. 일례로, 제1 제어 커맨드(640)에 응답하여 제2 단위 회로(622)가 가장 먼저 동작할 수 있으며, 제1 제어 커맨드(640)가 요구하는 작업을 처리하는 데에 필요한 데이터가 제2 단위 회로(622)의 버퍼(632)에 저장될 수 있다. 도 20을 참조하면, 제2 단위 회로(622)는 제1 제어 커맨드(640)가 요구하는 작업을 처리한 후, 다음으로 동작해야 하는 제1 단위 회로(621)에 제1 제어 커맨드(640)를 전달할 수 있다.
또한 도 20에 도시한 일 실시예에서, 코어 블록(610)은 제1 제어 커맨드(640)에 이어 제2 제어 커맨드(650)를 연산 블록(620)으로 전송할 수 있다. 일례로, 제1 제어 커맨드(640)와 제2 제어 커맨드(650)는 같은 작업을 연산 블록(620)에 요청하는 커맨드들일 수 있다. 제2 단위 회로(622)는 제1 제어 커맨드(640)가 요구하는 작업을 처리한 후, 제2 제어 커맨드(650)가 요구하는 작업을 처리할 수 있다. 도 20을 참조하면, 제2 단위 회로(622)의 버퍼(632)에 제2 제어 커맨드(650)가 요구하는 작업을 처리하는 데에 필요한 데이터가 저장되며 제2 단위 회로(622)가 동작할 수 있다. 또한 동시에, 제1 단위 회로(621)의 버퍼(631)에는 제1 제어 커맨드(640)가 요구하는 작업을 처리하는 데에 필요한 데이터가 저장되며, 제1 단위 회로(621)가 동작할 수 있다. 따라서, 코어 블록(610)으로부터 순차적으로 수신한 제1, 제2 제어 커맨드들(640, 650)이 동시에 병렬적으로 연산 블록(620) 내에서 처리될 수 있다.
도 21을 참조하면, 제2 제어 커맨드(650)에 이어 제3 제어 커맨드(660)가 코어 블록(610)으로부터 연산 블록(620)으로 전송될 수 있다. 제3 제어 커맨드(660)는 제1 제어 커맨드(640) 및 제2 제어 커맨드(650)와 같은 작업을 연산 블록(620)에 요청하는 커맨드일 수 있다.
도 20과 도 21을 함께 참조하면, 제1 단위 회로(621)는 제2 단위 회로(622)로부터 제2 제어 커맨드(650)를 수신하여 동작할 수 있으며, 제6 단위 회로(626)가 제1 단위 회로(621)로부터 제1 제어 커맨드(640)를 수신하여 동작할 수 있다. 또한, 제2 단위 회로(622)는 코어 블록(610)으로부터 수신한 제3 제어 커맨드(660)에 응답하여 동작할 수 있다.
도 18 내지 도 21을 참조하여 설명한 바와 달리, 버퍼들(631-639) 각각은 복수의 저장 공간들을 가질 수 있다. 버퍼들(631-639)이 복수의 저장 공간들을 가질 경우, 더 많은 개수의 제어 커맨드들이 연산 블록(620) 내에서 병렬 처리될 수 있다. 제어 커맨드들 각각은 순서 식별자를 가지며, 특정 제어 커맨드가 요청하는 작업이 연산 블록(620)에서 완료되면, 연산 블록(620)은 작업이 완료된 제어 커맨드와 같은 순서 식별자를 갖는 완료 커맨드(670)를 생성하여 코어 블록(610)에 리턴할 수 있다. 버퍼들(631-639) 각각에 복수의 저장 공간들을 마련함으로써, 제어 커맨드들이 요청하는 서로 다른 작업들이 연산 블록(620) 내에서 동시에 병렬 처리될 수 있다.
본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.
1, 10, 200, 300, 400: 저장 장치
11, 210, 310, 410, 600: 메모리 컨트롤러
211, 320, 420, 610: 코어 블록
212, 330, 430, 620: 연산 블록

Claims (10)

  1. 복수의 비트들을 갖는 데이터를 각각 저장하는 복수의 메모리 셀들을 포함하는 메모리 장치; 및
    미리 정해진 기능을 실행하는 복수의 단위 회로들을 갖는 연산 블록, 및 호스트로부터의 명령에 응답하여 상기 메모리 셀들에 대한 제어 동작을 실행하는 코어 블록을 갖는 메모리 컨트롤러; 를 포함하고,
    상기 코어 블록은, 상기 단위 회로들 중에서 적어도 일부를 선택하여 선택 단위 회로들을 결정하고, 상기 선택 단위 회로들의 동작 순서를 지정하는 제어 커맨드를 생성하며,
    상기 연산 블록에서, 상기 선택 단위 회로들이 상기 동작 순서에 따라 동작하여 상기 제어 동작에 필요한 제어 전압을 결정하고, 상기 제어 전압을 상기 메모리 컨트롤러 및 상기 메모리 장치 중 적어도 하나에 기록하는 저장 장치.
  2. 제1항에 있어서,
    상기 제어 커맨드는 상기 코어 블록으로부터 상기 연산 블록에 순차적으로 전송되는 제1 커맨드와 제2 커맨드를 포함하고,
    상기 제1 커맨드와 상기 제2 커맨드는 서로 다른 데이터들을 포함하는 저장 장치.
  3. 제2항에 있어서,
    상기 제1 커맨드는, 상기 제어 커맨드의 전송 차례를 나타내는 순서 식별자, 상기 메모리 장치의 사용 횟수에 대응하는 카운터, 및 상기 제어 전압에 대한 초기 값 중 적어도 하나를 포함하는 저장 장치.
  4. 제2항에 있어서,
    상기 제2 커맨드는, 상기 선택 단위 회로들, 및 상기 선택 단위 회로들의 동작 순서를 포함하는 저장 장치.
  5. 제2항에 있어서,
    상기 선택 단위 회로들 중에서 상기 동작 순서가 마지막인 선택 단위 회로의 동작이 완료되면, 상기 연산 블록은 상기 코어 블록에 동작 완료를 알리는 완료 커맨드를 출력하는 저장 장치.
  6. 제5항에 있어서,
    상기 완료 커맨드는 상기 제1 커맨드와 동일한 데이터를 포함하는 저장 장치.
  7. 제1항에 있어서,
    상기 메모리 컨트롤러 및 상기 메모리 장치 중 적어도 하나는, 상기 메모리 장치의 사용 횟수에 따른 상기 제어 전압의 예측 값들을 저장하는 복수의 카운터 테이블들, 및 상기 복수의 메모리 셀들 중 적어도 일부에 대한 상기 제어 전압의 설정 값들을 저장하는 데이터 테이블을 포함하는 저장 장치.
  8. 제7항에 있어서,
    상기 연산 블록은, 상기 제어 커맨드에 응답하여 결정한 상기 제어 전압의 설정 값들을 이용하여 상기 데이터 테이블을 업데이트하는 저장 장치.
  9. 복수의 비트들을 갖는 데이터를 각각 저장하는 복수의 메모리 셀들 및 복수의 메모리 셀들에 연결되는 복수의 워드 라인들을 포함하며, 사용 횟수에 따른 제어 전압의 예측 값들이 저장되는 복수의 카운터 테이블들을 갖는 메모리 장치;
    상기 워드 라인들 중에서 타겟 워드 라인에 대한 제어 전압의 초기 값들, 및 상기 메모리 장치의 실제 사용 횟수를 포함하는 제어 커맨드를 출력하는 코어 블록; 및
    상기 제어 커맨드에 응답하여, 상기 실제 사용 횟수에 기초하여 상기 카운터 테이블들 중 하나에서 상기 예측 값들을 선택하고, 상기 초기 값들과 상기 예측 값들의 차이들을 기준 메모리 셀에 할당된 상기 제어 전압의 기준 값들에 더하여 상기 타겟 워드 라인에 대한 상기 제어 전압의 설정 값들을 결정하는 연산 블록; 을 포함하는 저장 장치.
  10. 복수의 메모리 셀들 중에서 제1 선택 메모리 셀에 대한 제1 제어 전압을 조절하기 위한 제1 제어 커맨드, 및 상기 복수의 메모리 셀들 중에서 제2 선택 메모리 셀에 대한 제2 제어 전압을 조절하기 위한 제2 제어 커맨드를 순차적으로 출력하는 코어 블록; 및
    제1 연산을 실행하는 제1 단위 회로, 및 상기 제1 연산과 다른 제2 연산을 실행하는 제2 단위 회로를 포함하며, 상기 제1 단위 회로가 상기 제1 제어 커맨드에 응답하여 상기 제1 연산을 실행하는 제1 동작 시간 동안 상기 제2 단위 회로는 상기 제2 제어 커맨드에 응답하여 상기 제2 연산을 실행하는 연산 블록; 을 포함하는 메모리 컨트롤러.
KR1020190086349A 2019-07-17 2019-07-17 메모리 컨트롤러 및 이를 포함하는 저장 장치 KR102678472B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190086349A KR102678472B1 (ko) 2019-07-17 메모리 컨트롤러 및 이를 포함하는 저장 장치
US16/799,213 US11200000B2 (en) 2019-07-17 2020-02-24 Memory controller and storage device including the same
CN202010509850.XA CN112241242A (zh) 2019-07-17 2020-06-05 存储器控制器和包括其的储存设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190086349A KR102678472B1 (ko) 2019-07-17 메모리 컨트롤러 및 이를 포함하는 저장 장치

Publications (2)

Publication Number Publication Date
KR20210010690A true KR20210010690A (ko) 2021-01-28
KR102678472B1 KR102678472B1 (ko) 2024-06-27

Family

ID=

Also Published As

Publication number Publication date
CN112241242A (zh) 2021-01-19
US11200000B2 (en) 2021-12-14
US20210019087A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
KR100874441B1 (ko) 멀티-비트 데이터를 저장할 수 있는 플래시 메모리 장치,그것을 제어하는 메모리 제어기, 그리고 그것을 포함한메모리 시스템
KR102656828B1 (ko) 메모리 장치 및 이의 동작 방법
KR102016041B1 (ko) 비휘발성 메모리 장치의 프로그램 방법
KR101391352B1 (ko) 메모리 시스템 및 그것의 프로그램 방법
KR102520540B1 (ko) 메모리 장치 및 이의 동작 방법
US11322206B2 (en) Storage device and operating method thereof
JP2014022031A (ja) 不揮発性メモリ装置とそれを含むメモリシステム及びそれらのメモリブロック管理、消去、及びプログラム方法
CN109215712B (zh) 存储器装置及其编程方法
KR20100107291A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 전압 생성방법
KR102180595B1 (ko) 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 시스템
CN111316360A (zh) 存储器装置上的可选修整设置
KR20210061174A (ko) 메모리 컨트롤러 및 그 동작 방법
US9940030B2 (en) Memory system and method of operating the same
JP2008165972A (ja) フラッシュメモリ装置を制御するメモリ制御器を含むメモリシステム、およびそのメモリシステムにおいてアドレスデータをスクランブルする方法
KR20190135746A (ko) 쓰기 버퍼 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US9570181B2 (en) Memory system
KR102678472B1 (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
CN111341370A (zh) 半导体存储器装置、控制器、存储装置及其操作方法
KR20210010690A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
KR20200019045A (ko) 메모리 장치 및 그것의 동작 방법
EP3910464A1 (en) Memory device, storage device including the same, and method of operating the storage device
CN110858501B (zh) 存储器系统以及存储器系统的操作方法
KR20230065090A (ko) 메모리 장치 및 그것의 동작 방법
KR20210018609A (ko) 메모리 장치
US20230307069A1 (en) Memory device and method of operating the same

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right