KR20210082676A - 셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법 - Google Patents

셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법 Download PDF

Info

Publication number
KR20210082676A
KR20210082676A KR1020190174861A KR20190174861A KR20210082676A KR 20210082676 A KR20210082676 A KR 20210082676A KR 1020190174861 A KR1020190174861 A KR 1020190174861A KR 20190174861 A KR20190174861 A KR 20190174861A KR 20210082676 A KR20210082676 A KR 20210082676A
Authority
KR
South Korea
Prior art keywords
state
memory
data set
mapped
data
Prior art date
Application number
KR1020190174861A
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 KR1020190174861A priority Critical patent/KR20210082676A/ko
Priority to US16/988,909 priority patent/US11347436B2/en
Priority to CN202011543864.XA priority patent/CN113053444A/zh
Publication of KR20210082676A publication Critical patent/KR20210082676A/ko
Priority to US17/828,362 priority patent/US11861237B2/en

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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/345Circuits or methods to detect overerased nonvolatile memory cells, usually during erasure verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • 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
    • 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
    • G11C11/5635Erasing circuits
    • 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/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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching 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
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

스토리지 장치 및 비휘발성 메모리 장치의 동작방법이 제공된다. 스토리지 장치는 적어도 둘의 상태(state)를 포함하는 데이터 세트, 각각이 적어도 하나 이상의 데이터 세트를 포함하는 메모리 셀을 복수 개 포함하는 비휘발성 메모리 장치 및 비휘발성 메모리 장치에 액세스하는 스토리지 컨트롤러를 포함한다. 스토리지 컨트롤러는 어느 하나의 상기 메모리 셀에 저장된 데이터의 제1 상태에 액세스하고, 상기 제1 상태에 MAC(Multiplier-Accumulator) 연산을 수행하고, 상기 연산이 수행된 제2 상태를 상기 메모리 셀에 인플레이스(In-Place) 업데이트한다.

Description

셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법{STORAGE DEVICE ABLE TO ACCESS AS CELL UNIT AND OPERATING METHOD THEREOF}
본 발명은 스토리지 장치에 관한 것으로, 더 상세하게는 비휘발성 메모리를 포함하는 스토리지 장치의 동작방법에 관한 것이다.
뉴럴 네트워크 시스템에서, 학습되는 또는 기억되는 저장 데이터는 센서 등을 통한 외부 자극에 의해 업데이트가 필요하다. 데이터 업데이트는 콘볼루션 연산(Convolution)으로 주로 MAC 연산으로 진행된다. 뉴럴 네트워크 시스템에서 크로스-포인트 구조를 갖는 새로운 형태의 뉴로모픽(Neuromorphic) 메모리 장치가 각광받고 있다.
뉴로모픽 메모리는 셀 단위로 프로그램이 가능하나, 아직 양산 단계까지 도달하지는 못했다.
본 발명이 해결하고자 하는 기술적 과제는 메모리 셀 단위로 액세스 가능한 비휘발성 메모리의 동작 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 MAC 연산이 가능한 비휘발성 메모리의 동작 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 스토리지 장치는 적어도 둘의 상태(state)를 포함하는 데이터 세트, 각각이 적어도 하나 이상의 데이터 세트를 포함하는 메모리 셀을 복수 개 포함하는 비휘발성 메모리 장치 및 비휘발성 메모리 장치에 액세스하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는 어느 하나의 메모리 셀에 저장된 데이터의 제1 상태에 액세스하고, 제1 상태에 MAC(Multiplier-Accumulator) 연산을 수행하고, 연산이 수행된 제2 상태를 상기 메모리 셀에 인플레이스(In-Place) 업데이트할 수 있다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 비휘발성 메모리를 포함하는 스토리지 장치의 동작방법에 있어서, 비휘발성 메모리는 각각이 복수의 데이터 세트를 포함하는, 복수의 메모리 셀을 포함하고, 데이터 세트 각각은 기설정된 값이 각각 리니어 매핑된 복수의 상태를 포함하고, 동작방법은 연산 명령을 수신하고, 제1 상태에 매핑된 값에 연산을 수행하고, 수행 결과에 따라 산출된 값에 매핑되는 제2 상태의 위치 정보를 판단하고, 제2 상태의 위치 정보를 업데이트할 수 있다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 뉴럴 네트워크 장치는 각각이 복수의 데이터 세트를 포함하는 복수의 비휘발성 메모리 셀을 포함하며, 데이터를 저장하는 메모리, 적어도 하나의 프로그램을 저장하는 비휘발성 메모리 장치 및 상기 적어도 하나의 프로그램을 실행하여 뉴럴 네트워크를 구동함으로써 데이터에 대한 연산을 수행하는 프로세서를 포함하고, 프로세서는 어느 하나의 비휘발성 메모리 셀의 제1 상태에 매핑된 데이터에 대해 연산을 수행하고, 연산 결과 값에 매핑되는 제2 상태를 비휘발성 메모리 셀에 인플레이스 업데이트할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 장치를 보여주는 블록도이다.
도 2는 도 1에 도시된 스토리지 컨트롤러를 보여주는 블록도이다.
도 3은 도 1의 비휘발성 메모리 장치를 더욱 구체적으로 보여주는 블록도이다.
도 4는 메모리 셀의 셀 산포의 다양한 맵핑 방식을 나타낸 도면이고, 도 5 및 도 6은 몇몇 실시예에 따른 메모리 셀의 리니어 맵핑 값을 나타낸 도면이다.
도 7a 및 도 7b는 몇몇 실시예에 따른 스토리지 장치의 동작방법을 설명하기 위한 도면이다.
도 8은 몇몇 실시예에 따른 스토리지 장치의 메모리 셀 및 플래그 셀을 나타낸 도면이고, 도 9는 도 8에 도시된 스토리지 장치의 동작방법을 설명하기 위한 도면이다.
도 10 내지 도 12는 스토리지 장치의 동작방법을 설명하기 위한 흐름도이다.
도 13은 몇몇 실시예에 따라 비휘발성 메모리가 열화된 경우의 스토리지 장치의 동작방법을 설명하기 위한 도면이다.
도 14는 몇몇 실시예에 따른 스토리지 장치가 뉴럴 네트워크 장치에 응용된 예를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시예들에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 스토리지 장치를 보여주는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 스토리지 장치(20)은 스토리지 컨트롤러(100) 및 비휘발성 메모리 장치(200)를 포함한다.
스토리지 장치(20)와 연결된 호스트(1)는 몇몇 실시예에 따르면, 개인용/휴대용 컴퓨터, PDA, PMP, 스마트폰과 같은 휴대용 전자 장치들, HDTV, 그리고 그와 같은 것들을 포함할 수 있다.
몇몇 실시예에 따르면, 스토리지 장치(20)는 전자 장치에 내장되는 내부 메모리로 구현될 수 있고, 예를 들어, 임베디드 UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card), 또는 SSD(Solid State Drive)일 수 있다. 일부 실시 예들에서, 스토리지 장치(20)는 전자 장치에 착탈 가능한 외장 메모리로 구현될 수 있고, 예를 들어, UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
비휘발성 메모리 장치(200)는 낸드(NAND) 플래시 메모리 장치, 노어(NOR) 플래시 메모리 장치, 저항변화 메모리 장치(Resistive Random Access Memory, RRAM), 상변화 메모리 장치(Phase-change Memory, PRAM), 자기저항 메모리 장치(Magnetoresistive Random Access Memory, MRAM), 강유전체 메모리 장치(Ferroelectric Random Access Memory, FRAM) 등이 될 수 있다.
스토리지 컨트롤러(100)는 호스트(10) 및 비휘발성 메모리 장치(200)에 연결된다. 스토리지 컨트롤러(100)는 비휘발성 메모리 장치(200) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 예시적으로, 스토리지 컨트롤러(100)는 비휘발성 메모리 장치(200)에 제어 신호(CMD) 및 어드레스(ADD)를 제공한다. 그리고, 스토리지 컨트롤러(100)는 비휘발성 메모리 장치(200) 와 데이터(DATA)를 교환한다.
호스트(Host)로부터의 요청에 응답하여, 스토리지 컨트롤러(100)는 비휘발성 메모리 장치(200)를 액세스한다. 스토리지 컨트롤러(100)는 비휘발성 메모리 장치(200)의 읽기(Read), 쓰기(Write 또는 프로그램;Program), 이레이즈(Erase), 그리고 배경(background) 동작을 제어할 수 있다. 읽기 동작 제어의 경우를 예로 들면, 스토리지 컨트롤러(100)는 비휘발성 메모리 장치(200) 에 읽기 제어 신호(CMDread) 및 어드레스(ADD)를 전달할 것이다. 예를 들어 쓰기 동작 제어의 경우, 읽기 제어 신호(CMDwrite) 및 쓰기 할 데이터(Data)를 전달할 것이다. 예를 들어 이레이즈 동작 제어의 경우, 이레이즈 제어 신호(CMDerase) 및 어드레스(ADD)를 전달할 것이다. 또한, 스토리지 컨트롤러(100)는 비휘발성 메모리(200)에 대한 웨어 레벨링(wear leveling), 가비지 컬렉션(garbage collection) 및 배드 블록 관리(bad block managing) 등과 같은 배경 동작(background operation)들을 수행할 수 있다.
몇몇 실시예에서, 스토리지 컨트롤러(100)는 선택된 워드 라인에 동일한 읽기 전압을 인가하여 데이터를 읽도록 비휘발성 메모리 장치(200)를 제어할 수 있다. 비휘발성 메모리 장치(200)는 미리 정해진 문턱 전압을 갖는 읽기 전압을 이용하여 저장된 데이터를 읽고, 데이터가 리드 될 때마다 리드 데이터(read data)를 스토리지 컨트롤러(100)로 전달할 수 있다. 리드 데이터는 페이지(page) 단위로 스토리지 컨트롤러(100)로 전달될 수 있다.
몇몇 실시예에서, 스토리지 컨트롤러(100)는 메모리 셀에 저장된 데이터의 제1 상태에 액세스하고, 제1 상태에 매핑된 값을 연산하며, 제2 상태에 연산수행 결과를 인플레이스 업데이트(In-Place Update)할 수 있다. 본 명세서에서 인플레이스 업데이트라 함은 연산 전 데이터가 저장된 메모리 셀과 연산 후 데이터가 쓰기(Program 또는 Update)된 메모리 셀이 동일한 경우일 수 있다.
도 2는 도 1에 도시된 스토리지 컨트롤러를 보여주는 블록도이다.
도 2를 참고하면, 몇몇 실시예에 따른 스토리지 컨트롤러(100)는 호스트 인터페이스(110), 프로세싱 유닛(120), 메모리(130), 레지스터(140), 프로그래밍 가능한 로직(150) 및 비휘발성 메모리 인터페이스(160)를 포함할 수 있다.
스토리지 컨트롤러(100) 내 각 구성은 데이터 버스(101)를 통해 서로 연결된다. 데이터 버스(101)는 복수의 채널들을 포함할 수 있고, 예시적인 실시 예에서 복수의 채널들 각각은 서로 독립적으로 구동하는 통신 경로를 가리킬 수 있으며, 복수의 채널들 각각은 서로 동일한 통신 방식을 기반으로 각각에 연결된 장치들과 통신할 수 있다.
호스트 인터페이스(110)는 호스트(1)와 연결될 수 있고, 예시 적 실시예에 따라 호스트 인터페이스(110)는 DDR(Double Data Rate), LPDDR(Low-Power DDR), USB(Universal Serial Bus), MMC(multimedia card), PCI(peripheral component interconnection), PCI-E(PCI-express), ATA(Advanced Technology Attachment), SATA(Serial-ATA), PATA(Parallel-ATA), SCSI(small computer small interface), ESDI(enhanced small disk interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface), NVM-e(Nonvolatile Memory-express), UFS(Universal Flash Storage) 등과 같은 다양한 인터페이스들 중 적어도 하나에 기반 될 수 있다.
프로세서(120)는 호스트(1)에서 수신된 쓰기 명령, 읽기 명령, 삭제 명령 또는 스토리지 장치(1000)의 동작에 관련된 기타 명령에 대한 스토리지 컨트롤러(100) 내 각 구성요소에 대한 동작 제어 및 연산을 할 수 있다. 몇몇 실시예에 따라 프로세서(120)는 뉴럴 네트워크에 필요한 컨볼루션 연산을 위해 MAC (Multiplier-Accumulator) 연산을 수행할 수도 있다.
메모리(130)는 스토리지 컨트롤러(100)의 동작에 필요한 비휘발성 데이터들을 저장한다. 몇몇 실시예에 따라 메모리(130)는 캐시(Cache), ROM(Read Only Memory), PROM(Programmable Read Only Memory), EPROM(Erasable PROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PRAM(Phase-change RAM), 플래시(Flash) 메모리, SRAM(Static RAM), 또는 DRAM(Dynamic RAM)을 포함할 수 있다.
레지스터(140)는 호스트(1)로부터 수신된 쓰기 데이터 또는 비휘발성 메모리(200)로부터 수신된 읽기 데이터, 프로세싱 유닛(120)에서 제어 동작 중에 생성되는 연산 결과들을 임시 저장하는 동작 메모리일 수 있다. 레지스터(140)는 버퍼 메모리로 호칭될 수도 있다.
프로그래밍 가능한 로직(150)은 프로세싱 유닛(120)이 수행하는 연산 중 일부 연산을 수행할 수 있다. 몇몇 실시예에 따라 프로그래밍 가능한 로직(150)은 복수의 게이트 어레이를 포함하여, 특정 동작을 수행하는 디지털 회로를 설계하는데 널리 사용되는 PLD(Programmable Logic Device)일 수 있다.
비휘발성 메모리 인터페이스(160)는 비휘발성 메모리 컨트롤러로도 호칭될 수 있고 비휘발성 메모리(200)에 액세스하여 복수의 비휘발성 메모리 각각에 대한 동작을 제어한다. 예시적 실시예에 있어서, 비휘발성 메모리 인터페이스(160)는 적어도 하나의 채널을 통해 비휘발성 메모리(200)에 연결되어 데이터를 쓰거나 읽거나 삭제할 수 있다.
비휘발성 메모리 장치(200)는 스토리지 장치(1000)의 저장 매체(Storage Medium)로서 제공된다. 예를 들면, 비휘발성 메모리 장치(200)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 구성될 수 있다.
도 3은 도 1의 비휘발성 메모리 장치를 더욱 구체적으로 보여주는 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치(200) 는 메모리 셀 어레이(260), 제어 로직(210), 행 디코더(250), 페이지 버퍼(220) 및 입/출력 버퍼(230)를 포함한다.
메모리 셀 어레이(260)는 복수의 메모리 블록(BLK0~BLKn-1)으로 구성된다. 각각의 메모리 블록(BLK0~BLKn-1)은 복수의 페이지로 구성된다. 각각의 페이지는 복수의 메모리 셀을 포함한다. 각각의 메모리 셀은 워드 라인(WL) 및 비트 라인(BL)이 교차하는 영역에 배치된다.
메모리 셀 어레이(260)는 메인 메모리에 해당하는 메모리 셀 영역과 플래그 셀 영역을 포함할 수 있다.
데이터를 저장하는 메인 메모리에서, 각각의 메모리 셀은 2비트 이상의 데이터를 저장하는 멀티 레벨 셀일 수 있다. 메모리 셀은 복수의 비트 데이터를 저장할 수 있다. 메모리 셀은 적어도 하나이상의 데이터 세트를 포함할 수 있다. 각 데이터 세트 내에서 상기 상태는 매핑되는 적어도 둘 이상의 상태를 포함할 수 있다.
몇몇 실시예에 따라 스토리지 컨트롤러는 호스트로부터 연산 명령을 수신하면, 복수의 메모리 셀 중 어느 하나의 메모리 셀에 속한 제1 상태에 매핑된 값에 대해 연산을 수행하고, 연산 결과에 해당하는 제2 상태를 해당 메모리 셀에 인플레이스 업데이트할 수 있다. 이때 제2 상태는 제1 상태와 동일한 메모리 셀에 속하지만, 제1 상태가 속하는 데이터 세트와 동일한 데이터 세트에 속할 수도 있고, 제1 상태가 속하는 데이터 세트와 인접한 데이터 세트에 속할 수도 있다. 이에 대한 자세한 설명은 도 7a 및 도 7b에서 하기로 한다.
몇몇 실시예에 따라 메모리 셀 어레이(260)는 메모리 셀에 대한 다양한 정보를 저장하는 플래그 셀을 포함할 수 있다.
몇몇 실시예에 따라 플래그 셀은 메모리 셀에 포함되는 데이터 세트의 수에 상응하는 적어도 하나의 상태를 포함할 수 있다. 예를 들어 데이터 세트가 3개면, 플래그 셀은 이레이즈 상태를 포함한 4개의 상태를 포함하고, 4개 상태에 상응하는 2비트 플래그 데이터일 수 있다.
몇몇 실시예에 따라 플래그 셀은 메모리 셀에 포함되는 복수의 상태에 대한 열화정보를 포함할 수 있다. 열화 정보 플래그 셀은 1비트 이상의 플래그 데이터일 수 있다.
제어 로직(210)은 비휘발성 메모리 장치(200) 의 전반적인 동작을 제어한다. 제어 로직(210)은 고전압 발생기(High Voltage Generator, 240)를 포함하여 구성될 수 있다. 즉, 제어 로직(210)은 스토리지 컨트롤러(100, 도 1 참조)로부터의 제어 신호(CMD)에 응답하여 쓰기, 읽기 및 소거 동작에 필요한 고전압들을 생성할 수 있다. 예를 들어, 읽기 동작 시, 제어 로직(210)은 읽기 전압(Vrd) 및 읽기 패스 전압(Vread)을 행 디코더(250)를 통해 메모리 셀 어레이(260)에 인가한다. 또한, 제어 로직(210)은 스토리지 컨트롤러(100, 도 1 참조)로부터 전달되는 어드레스(ADD)를 행 디코더(250) 및 페이지 버퍼(220)에 각각 전달한다.
페이지 버퍼(220)는 동작 모드에 따라 쓰기 드라이버(write driver)로서 또는 감지 증폭기(Sense Amplifier)로서 동작한다. 예를 들어, 페이지 버퍼(220)는 읽기 동작시, 감지 증폭기로서 동작한다. 페이지 버퍼(220)는 읽기 동작시, 하나의 페이지 단위의 데이터를 메모리 셀 어레이(260)로부터 전달받는다. 구체적으로, 페이지 버퍼(220)는 메모리 셀 어레이(260)로부터 페이지 어드레스에 상응하는 하나의 페이지 단위의 최하위 비트(Least Significant Bit, LSB) 데이터 또는 최상위 비트(Most Significant Bit, MSB) 데이터를 전달받는다.
입/출력 버퍼(230)는 외부와 데이터를 교환하도록 구성된다. 외부로부터 수신되는 데이터는 데이터 라인들(DL)을 통해 페이지 버퍼(220)에 전달된다. 페이지 버퍼(220)로부터 전달되는 데이터는 외부(ex. 스토리지 컨트롤러)로 출력된다. 예를 들어, 입/출력 버퍼(230)는 리드 데이터를 스토리지 컨트롤러(100)로 전달할 것이다. 예시적으로, 입/출력 버퍼(230)는 데이터 버퍼 등과 같이 잘 알려진 구성 요소를 포함할 수 있다.
메모리 셀 어레이(260) 내 제 1 메모리 블록(BLK1)은 복수의 메모리 셀 그룹들(미도시)을 포함한다.
하나의 행에 배치되는 메모리 셀들은 하나의 메모리 셀 그룹(예를 들면, 페이지)을 형성할 것이다. 그리고 그 메모리 셀 그룹은 워드 라인들(WL) 중 하나에 연결될 것이다.
예시적으로, 제 1 메모리 블록(BLK1)은 제 1 내지 제 m 페이지들(Page 1 ~ Page M)로 구성될 수 있다. 각각의 페이지는 제 1 내지 제 k 섹터들(sector 1 ~ sector k)로 구성될 수 있다. 각각의 섹터는 하나의 워드 라인(미도시)을 공유하는 복수의 메모리 셀들로 구성된다. 각각의 메모리 셀은 복수의 비트가 저장되는 멀티 레벨 셀(Multi-Level Cell)일 수 있다.
도 3에서는 제 1 메모리 블록(BLK0)만 도시되나, 제 1 내지 제 n 메모리 블록들(BLK1~BLKn)은 모두 동일하게 구성될 것이다. 낸드 플래시 메모리의 경우에, 읽기 및 쓰기 동작은 인플레이스 업데이트 방식에서는 셀 단위로 수행된다.
도 4는 메모리 셀의 셀 산포의 다양한 맵핑 방식을 나타낸 도면이고, 도 5 및 도 6은 몇몇 실시예에 따른 메모리 셀의 리니어 맵핑 값을 나타낸 도면이다.
도시된 몇몇 실시예에서 하나의 메모리 셀은 4비트를 저장할 수 있는 쿼드러플 레벨 셀(Quadruple-Level Cell; 이하 QLC)이라고 가정하자. 다만, 이는 예시적 실시예에 불과하며, 이에 국한되지 않으며 2비트 이상의 데이터가 저장되는 멀티 레벨 셀이면 본 발명의 사상이 적용될 수 있다.
도 4를 참조하면, 메모리 셀이 4비트 멀티 레벨 셀인 경우에, 메모리 셀은 이레이즈 상태(E), 제1 내지 제15 상태(P1 내지 P15)를 포함하고, 이 중 어느 하나의 상태로 프로그램(쓰기)될 수 있다. 도 4의 가로축은 메모리 셀의 문턱전압을 나타내고, 각각의 상태는 문턱전압 RP 1 내지 RP15으로 구분할 수 있다. 즉, 프로그램 동작시 이레이즈 상태(E) 및 제1 내지 제15 상태들(P1 내지 P15)에 대한 프로그램 수행 결과는 RP1 내지 RP15의 문턱전압을 선택 워드라인에 순차적으로 인가함으로써 구분할 수 있다.
제1 읽기 전압(RP1)이 메모리 셀의 컨트롤 게이트에 인가되면, 이레이즈 상태(E)의 메모리 셀은 턴온되는 반면, 제1 상태(P1)의 메모리 셀은 턴오프된다. 메모리 셀은 턴온되면, 메모리 셀을 통해 전류가 흐르고, 턴오프되면 메모리 셀을 통해 전류가 흐르지 않는다. 따라서 메모리 셀의 턴온 여부에 따라 메모리 셀에 저장된 데이터가 구별될 수 있다.
데이터의 논리 레벨 할당은 실시예에 따라 변경될 수 있다. 몇몇 실시예에 따라 제1 읽기 전압(RP1)을 인가하여 메모리 셀이 턴온되면, 데이터 '1'이 저장되고, 메모리 셀이 턴오프되면 '0'이 저장된 것으로 구별할 수 있다. 또는 다른 실시예에 따라 메모리 셀이 턴온되면, 데이터 '0'이 저장되고, 메모리 셀이 턴오프되면 '1'이 저장된 것으로 구별할 수도 있다.
QLC의 경우 도시된 것과 같이, 각 상태마다 4개의 비트를 포함하는 데이터가 할당될 수 있다. 일 실시예에서 이레이즈 상태(E)는 데이터 '0000'이 할당되고, 제1 상태(P1)는 데이터 '1110'이 할당될 수 있다. 그러나 각 상태에 할당되는 데이터는 도시된 예에 한정되지 않고 변경되어 할당될 수도 있다.
멀티 레벨 셀에 대한 데이터 액세스를 위해 복수의 비트 페이지를 포함할 수 있다. QLC의 경우 4개의 비트 페이지(1P 내지 4P)로 나누어 출력할 수 있다. 각각의 비트 페이지는 각각의 페이지 버퍼(U, M, L, F)를 통해 데이터를 출력할 수 있다.
메모리 셀 하나의 상태(State)는 다양한 리니어 매핑 방식으로 표현할 수 있다. 각 상태에 매핑되는 값은 리니어(Linear)한 값이다. 즉, 이레이즈 상태 및 제1 상태(P1)와 제n번째 상태(Pn) 사이의 값은 순차적으로 일정하게 증가하는 값을 가질 수 있다. 또는 메모리 셀은 적어도 하나 이상의 데이터 세트(state)를 포함하는 방식으로 리니어 맵핑할 수 있다. 각각의 데이터 세트는 적어도 둘 이상의 상태(state)를 포함할 수 있다.
스토리지 컨트롤러(100)는 연산을 수행하는 경우, 문턱 전압이 낮은 쪽에서 높은 쪽으로 프로그램하므로 우측방향으로만 수행결과를 저장할 수 있다. 즉, 연산 전의 값을 제1 상태, 연산 후의 값을 제2 상태에 저장한다고 하면, 제2 상태는 제1 상태보다 높은 문턱 전압을 가질 수 있다. 다시 말하면 제2 상태는 제1 상태보다 우측으로 쉬프트된 위치에 배치될 수 있다. 비휘발성 메모리의 쓰기(프로그램) 동작 특성상 제2 상태가 좌측으로 쉬프트되지는 않는다.
메모리 셀의 복수의 상태 각각은 몇몇 실시예에 따라 10진수, 16진수 또는 다른 방식의 값으로도 매핑할 수 있다.
도 4에 도시된 메모리 셀의 각 상태는 몇몇 실시예에 따라 10진수(DEC)로는 값 0 내지 15로 리니어 맵핑(Linear Mapping)할 수도 있고, 몇몇 실시예에 따라 16진수(HEX)로는 값 0 내지 9, 그리고 A 내지 F로 리니어 맵핑(Linear Mapping)할 수도 있다. 이 경우 10진수로 매핑된 값(0 내지 15) 또는 16진수로 매핑된 값은 서로 중복되지 않으므로 하나의 데이터 세트일 수 있다.
또는 도 5에 도시된 몇몇 실시예를 구체적으로 설명하면, 메모리 셀은 각각이 0 및 1로 맵핑되는 2개의 상태(state)를 포함하는 8개의 데이터 세트로 리니어 맵핑할 수 있다. 데이터 세트 내 값 0과 1은 리니어한 값이고, 데이터 세트 0 내지 데이터 세트 7의 세트 넘버 0 내지 7도 서로 리니어하게 증가할 수 있다.
또는 도 6에 도시된 몇몇 실시예를 구체적으로 설명하면, 메모리 셀은 이레이즈 상태를 제외한 나머지 15개 상태에 대해, 각각이 5개의 리니어한 값들을 포함하는 3개의 데이터 세트(0 내지 2)로 매핑할 수 있다. 이경우 데이터 세트에 포함되지 않는 이레이즈 상태(E)는 메모리 셀이 프로그램 되기 전의 상태이므로 Invalid로 매핑할 수 있다.
각각의 데이터 세트는 5개의 값을 포함할 수 있다. 하나의 데이터 세트에 포함되는 상태 각각에 매핑되는 값은 다양하게 설정될 수 있다. 예를 들어 값이 -2,-1,0,1,2와 같이 설정될 수도 있고, 0,1,2,3,4로 설정될 수도 있으나, 이에 한정되는 것은 아니고 시스템 설계에 따라 필요한 리니어(Linear)한 다른 값으로 매핑될 수도 있다고 할 것이다.
본 개시의 몇몇 실시예에 따른 스토리지 장치는, 메모리 셀의 복수의 상태에 대해 복수의 값을 가진 복수의 데이터 세트를 매핑하고, 매핑된 값을 기초로 연산하면, 비휘발성 메모리에 대해서도 셀 단위로 쓰기가 가능할 수 있다.
도 7a 및 도 7b는 몇몇 실시예에 따른 스토리지 장치의 동작방법을 설명하기 위한 도면이다.
도 7a를 참조하면, 도시된 예에서 하나의 데이터 세트에는 값(V)이 -2, -1, 0, 1, 2와 같이 설정되고, 이레이즈 상태를 제외한 나머지 상태(P)에는 각각 값(V)이 리니어 매핑될 수 있다. 예를 들어 상태 P1에서 P15방향으로 데이터 세트가 순차적으로 데이터 세트 0, 데이터 세트 1, 데이터 세트 2이 매핑될 수 있다. 구체적으로 상태 P1 내지 P5에는 데이터 세트 0, 상태 P6 내지 P10에는 데이터 세트 1, 상태 P11 내지 P15에는 데이터 세트 2가 각각 매핑될 수 있다. 또한 각 데이터 세트에서 상태 P1 내지 P5, 상태 P6 내지 P10, 상태 P11 내지 P15에는 각각 값(V) -2, -1, 0, 1, 2이 매핑될 수 있다.
스토리지 장치는 먼저 상태 P1에서 연산을 시작한다. 상태 P1에 매핑된 현재 값(Current Value)는 -2이다. 상태 P1에서 4만큼 가산(+)하면 값 2가 되고, 값 2에 매핑된 상태 P5로 쉬프트 한다. 다음 연산으로 값 2에 대해 3만큼 감산(-)하면 값 -1이 된다. 스토리지 장치는 비휘발성 메모리의 프로그램 특성에 따라 값 -1에 매핑된 상태 P2로 쉬프트하지 아니하고, 인접한 다음 데이터 세트 1의 상태 P7로 쉬프트한다.
또 다음 연산으로 값 -1에 대해 2만큼 곱셈이 수행되면 현재 값은 -2가 된다. 스토리지 장치는 현재 값 -2에 매핑된 인접한 다음 데이터 세트 2의 상태 P11로 쉬프트한다. 다음 연산으로 값 -2에 대해 2만큼 나눗셈이 수행되면 현재 값은 -1이 되고, 증가하는 방향에서 동일 데이트 세트 내의 값이 매핑될 수 있으므로, 상태 P12로 쉬프트한다.
도 7b를 참조하면, 도시된 예에서 하나의 데이터 세트에는 값(V)이 0, 1, 2, 3, 4와 같이 설정되고, 이레이즈 상태를 제외한 나머지 상태(P)에는 각각 값(V)이 리니어 매핑될 수 있다. 예를 들어 상태 P1에서 P15방향으로 데이터 세트가 순차적으로 데이터 세트 0, 데이터 세트 1, 데이터 세트 2이 매핑될 수 있다. 구체적으로 상태 P1 내지 P5에는 데이터 세트 0, 상태 P6 내지 P10에는 데이터 세트 1, 상태 P11 내지 P15에는 데이터 세트 2가 각각 매핑될 수 있다. 또한 각 데이터 세트에서 상태 P1 내지 P5, 상태 P6 내지 P10, 상태 P11 내지 P15에는 각각 값(V) 0, 1, 2, 3, 4가 매핑될 수 있다.
스토리지 장치는 먼저 상태 P1에서 연산을 시작한다. 상태 P1에 매핑된 현재 값(Current Value)는 0이다. 상태 P1에서 4만큼 가산(+)하면 값 4가 되고, 값 4에 매핑된 상태 P5로 쉬프트 한다. 다음 연산으로 값 4에 대해 3만큼 감산(-)하면 값 1이 된다. 스토리지 장치는 비휘발성 메모리의 프로그램 특성에 따라 값 1에 매핑된 상태 P2로 쉬프트하지 아니하고, 인접한 다음 데이터 세트 1의 상태 P7로 쉬프트한다.
또 다음 연산으로 값 1에 대해 2만큼 곱셈이 수행되면 현재 값은 2가 된다. 스토리지 장치는 현재 값 2에 매핑된 상태 P8로 쉬프트한다. 다음 연산으로 값 2에 대해 2만큼 나눗셈이 수행되면 현재 값은 1이 되고, 증가하는 방향에서 동일 데이트 세트 내의 값이 매핑될 수 없으므로, 상태 P12로 쉬프트한다.
즉, 스토리지 장치는 각 상태에 매핑된 값에 대해 연산을 수행하고, 수행결과에 따라 산출된 값이 매핑되는 제2 상태의 위치정보를 확인하고, 제2 상태의 위치정보를 업데이트할 수 있다. 이때 산출된 값이 제1 상태의 값보다 증가하는 방향의 제2 상태인지 확인하여, 제2 상태에 산출된 값을 쓰기(update or overwrite)한다.
도 8은 몇몇 실시예에 따른 스토리지 장치의 메모리 셀 및 플래그 셀을 나타낸 도면이고, 도 9는 도 8에 도시된 스토리지 장치의 동작방법을 설명하기 위한 도면이다.
도 8을 참조하면, 비휘발성 메모리 장치는 메모리 셀 영역 및 플래그 셀 영역을 포함할 수 있다.
플래그 셀 영역은 메모리 셀 각각에 상응하는 상태 정보를 저장할 수 있다. 플래그 셀은 몇몇 실시예에 따라 멀티 레벨 셀일 수 있다. 몇몇 실시예에 따라 상태 정보로 메모리 셀에 대한 동작 정보, 열화 정보 등을 포함할 수 있다.
동작 정보는 메모리 셀에 속한 데이터 세트에 현재 값을 저장한 상태가 포함되었는지를 나타내는 정보이다. 보다 구체적으로는 현재 값이 해당 데이터 세트를 거쳐갔는지를 나타내는 정보이다.
동작 정보 플래그 셀은 메모리 셀에 포함되는 데이터 세트 수에 대응되는 비트 수를 포함할 수 있다. 도시된 쿼드러플 레벨 셀의 경우, 데이트 세트가 3개이므로, 동작 정보 플래그 셀은 2비트일 수 있다. 구체적으로 설명하면, 데이터 세트 0은 플래그 셀(Flag) 상태 P1, 데이터 세트 1은 플래그 셀 상태 P2, 데이터 세트 2는 플래그 셀 상태 P3에 각각 상응할 수 있다.
열화 정보는 메모리 셀 각각이 동작에 따라 열화(degradation)되는 정도를 나타내는 정보이다. 즉, 열화 진행 정도에 대한 로그(Log) 정보로서, 예를 들면, PE 사이클(Program/Erase cycle), 읽기 횟수(Read count), 리텐션 시간(Retention time), 프로그램 시간(Program Time), 프로그램/리드 온도(Program/Read Temperature) 등을 포함할 수 있으나, 본 실시예에 따른 열화 정보가 이에 한정되는 것은 아니다.
일 실시예로 PE 사이클에 대한 플래그 셀은 1이상의 비트일 수 있다. 메모리 셀 내에서 PE사이클이 소정의 값을 초과(>A)한 상태가 속한 데이터 세트에 대해 Invalid로 판정하고, 나머지 데이터 세트만 Valid하여 해당 메모리 셀을 구동시킬 수 있다.
도 8에서 연산을 수행하는 경우 플래그 셀 상태를 보다 구체적으로 설명하면, 먼저 현재 값 -2(P1)에 대해, 메모리 셀(QLC)의 상태 P1이 속한 데이터 세트 0에 상응하는 플래그 셀 상태 P1만 1로 업데이트하고, 플래그 셀 상태 P2, P3는 0으로 업데이트한다.
첫번째 연산으로 현재 값 -2(P1)에 대해, 4만큼 가산되면 현재 값은 2(P5)가 되고, 메모리 셀이 노화되는 경우를 고려하여 메모리 셀 상태 P5 전후의 데이터 세트 0과 데이터 세트 1에 상응하는 플래그 셀 상태 P1, P2를 1로 업데이트하고, 플래그 셀 상태 P3는 0으로 업데이트한다.
두번째 연산으로 현재 값 2(P5)에 대해 3만큼 감산되면 현재 값은 -1(P7)이되고 메모리 셀 상태 P7이 속한 데이터 세트 1에 상응하는 플래그 셀 상태 P1, P2를 1로 업데이트하고, 플래그 셀 상태 P3는 0으로 업데이트한다.
세번째 연산으로, 현재 값 -1(P7)에 대해 2만큼 곱셈이 되면, 현재 값은 -2(P11)가 되고 메모리 셀 상태 P11이 속한 데이터 세트 2에 상응하는 플래그 셀 상태 P1, P2, P3을 1로 업데이트한다.
네번째 연산으로, 현재 값 -2(P11)에 대해 2만큼 나눗셈이 되면, 현재 값은 -1(P12)가 되고 메모리 셀 상태 P12가 속한 데이터 세트 2에 상응하는 플래그 셀 상태 P1, P2, P3을 1로 업데이트한다.
도 8에 도시된 플래그 셀의 상태 정보는 데이터 세트가 활성화되는 경우를 1, 활성화되지 않는 경우를 0으로 설명하였으나, 다른 실시예에 따라 플래그 셀의 상태 정보는 다르게 매핑될 수도 있다 할 것이다.
즉, 플래그 셀은 비휘발성 메모리에 대한 읽기 동작시, 읽기 전압의 범위를 결정할 수 있다. 스토리지 장치는 연산 수행을 위해 현재 값에 액세스 할 때 플래그 셀을 확인한 후 플래그 셀 상태 P1에 해당하는 데이터 세트 1에 해당하는 문턱 전압값만 인가하면 되므로, 읽기 동작 효율이 향상될 수 있다.
도 10 내지 도 12는 스토리지 장치의 동작방법을 설명하기 위한 흐름도이다.
스토리지 장치는 메모리 셀의 각 상태에 매핑된 값을 기초로 연산을 수행하고, 수행결과를 해당 메모리 셀에 쓰기 (또는 오버라이트) 할 수 있다. 즉, 비휘발성 메모리 장치에 셀 단위로 쓰기, 다시 말하면, 해당 메모리 셀에 인플레이스(In-Place) 업데이트할 수 있다.
도 10을 참고하면, 쓰기 동작의 경우, 스토리지 장치는 어느 하나의 메모리 셀에서 제1 상태의 현재 값에 대해 연산을 수행하고, 연산결과에 대해 쓰기(Write, Program) 명령을 수신하면(S10), 연산결과 값의 상태에 매핑되는 제2 상태에 쓰기 동작을 수행한다(S11). 스토리지 장치는 플래그 셀에도 제2상태가 속하는 데이터 세트에 대해 상태를 업데이트한다(S12).
도 11을 참고하면, 읽기 동작의 경우, 스토리지 장치는 어느 하나의 메모리 셀에 저장된 제1 상태의 현재 값을 읽으려 할 때, 먼저 읽기 명령과 함께 수신된 주소의 메모리 셀에 상응하는 플래그 셀을 읽는다(S20). 플래그 셀에 데이터 세트에 대한 활성화 정보를 확인 후, 활성화된 데이터 세트의 문턱 전압 범위 내에서 읽기 전압을 인가하여 해당 메모리 셀에 액세스한다(S21 내지 S21n).
도 12를 참고하면, 이레이즈 동작의 경우, 스토리지 장치는 어느 하나의 메모리 셀을 이레이즈 상태(E)로 하는 것이므로, 메모리 셀을 이레이즈하면서(S31), 해당 메모리 셀에 상응하는 플래그 셀도 이레이즈 상태(E)로 리셋한다.
즉, 도 10 내지 도 12의 실시예에 따르면, 스토리지 장치는 메모리 셀에 읽기, 쓰기, 이레이즈 동작을 하는 경우 해당 플래그 셀에도 해당 동작에 대한 정보를 업데이트 할 수 있다.
도 13은 몇몇 실시예에 따라 비휘발성 메모리가 열화된 경우의 스토리지 장치의 동작방법을 설명하기 위한 도면이다.
도 13을 참고하면, 플래그 셀 영역에는 열화 정보가 저장될 수 있다.
몇몇 실시예에 따라 열화 정보는 단일 레벨 셀일 수도 있고 멀티 레벨 셀일 수도 있다.
열화 정보 중 일 실시예로 PE사이클을 보면, PE사이클에 해당하는 플래그 셀은 데이터 세트마다 상응하는 비트를 가질 수 있다. 메모리 셀에 대한 PE 사이클이 소정의 횟수(A) 미만이면 열화 정보 플래그 셀은 0으로 저장되고, 소정의 횟수를 초과하면 열화 정보 플래그 셀은 1로 쓰기될 수 있다.
도시된 실시예에서, 데이터 세트 2에 대해 PE 사이클이 소정의 횟수(A)를 초과한 경우, 스토리지 장치는 열화 정보 플래그 셀의 데이터 세트 2에 대해 1로 쓰기한다.
스토리지 장치는 열화 정보 플래그 셀을 먼저 읽기 한 후, 해당 메모리 셀에 액세스하여 읽기, 쓰기 또는 이레이즈 동작을 수행한다.
예를 들어 읽기 동작시, 스토리지 장치는 열화 정보 플래그 셀을 기초로 데이터 세트 2에 속한 상태 P11 내지 P15를 모두 디스에이블하고, 나머지 상태 E 및 P0 내지 P10에 대해 문턱전압 및 데이터 세트를 재매핑(Re-Mapping)할 수 있다. 멀티 레벨 셀의 경우 문턱 전압 간의 간격이 매우 조밀하므로, 디스에이블된 상태를 제외하고 나머지 상태에 대해 문턱 전압을 재매핑하면, 문턱전압 간의 간격이 넓어져서 읽기 신뢰성이 향상될 수 있다(W1<W2).
도 14는 몇몇 실시예에 따른 스토리지 장치가 뉴럴 네트워크 장치에 응용된 예를 나타내는 도면이다.
도 14를 참고하면, 뉴럴 네트워크 장치(1000)는 PC(personal computer), 서버 디바이스, 모바일 디바이스, 임베디드 디바이스 등의 다양한 종류의 디바이스들로 구현될 수 있고, 구체적인 예로서 뉴럴 네트워크를 이용한 음성 인식, 영상 인식, 영상 분류 등을 수행하는 스마트폰, 태블릿 디바이스, AR(Augmented Reality) 디바이스, IoT(Internet of Things) 디바이스, 자율주행 자동차, 로보틱스, 의료기기 등에 해당될 수 있으나, 이에 제한되지 않는다. 나아가서, 뉴럴 네트워크 장치(1000)는 위와 같은 디바이스에 탑재되는 전용 하드웨어 가속기(HW accelerator)에 해당될 수 있고, 뉴럴 네트워크 장치(1000)는 뉴럴 네트워크 구동을 위한 전용 모듈인 NPU(neural processing unit), TPU(Tensor Processing Unit), Neural Engine 등과 같은 하드웨어 가속기일 수 있으나, 이에 제한되지 않는다.
뉴럴 네트워크 장치(1000)는 프로세서(1120) 및 메모리(1110)를 포함한다. 뉴럴 네트워크 장치(1000)에는 본 실시 예들와 관련된 구성요소들만이 도시되어 있다. 따라서, 뉴럴 네트워크 장치(1000)에는 도 14에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
프로세서(1120)는 뉴럴 네트워크 장치(1000)를 실행하기 위한 전반적인 기능들을 제어하는 역할을 한다. 예를 들어, 프로세서(1120)는 뉴럴 네트워크 장치(1000) 내의 메모리(1110)에 저장된 프로그램들을 실행함으로써, 뉴럴 네트워크 장치(1000)를 전반적으로 제어한다. 프로세서(1120)는 뉴럴 네트워크 장치(1000) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
메모리(1110)는 뉴럴 네트워크 장치(1000) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 예를 들어, 메모리(1110)는 뉴럴 네트워크 장치(100)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(110)는 뉴럴 네트워크 장치(1000)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 몇몇 실시예에 따라 메모리(1110)는 도 1에 도시된 비휘발성 메모리 장치(200)일 수 있고, 다른 실시예에 따라 메모리(1110)는 비휘발성 메모리로서, DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
프로세서(1120)는 메모리(1110)로부터 뉴럴 네트워크 데이터, 예를 들어 이미지 데이터, 피처맵 데이터, 커널 데이터 등을 읽기/쓰기(read/write)하고, 읽기/쓰기된 데이터를 이용하여 뉴럴 네트워크를 실행할 수 있다. 뉴럴 네트워크가 실행될 때, 프로세서(1120)는 출력 피처맵에 관한 데이터를 생성하기 위하여, 입력 피처맵과 커널 간의 컨볼루션 연산을 반복적으로 수행할 수 있다. 프로세서(1120)는 도 1에 도시된 스토리지 컨트롤러와 유사한 동작을 수행할 수 있다. 프로세서(1120)는 수억에서 수백억에 다다를 정도로 매우 많은 연산량(operation count)의 컨볼루션 연산들을 수행하게 되고, 프로세서(1120)가 컨볼루션 연산을 위해 메모리(1110)에 액세스하는 빈도가 함께 비약적으로 증가될 수 있다.
일 실시 예에 따른 뉴럴 네트워크 장치(1000)는 뉴로모픽 하드웨어를 포함할 수 있다. 뉴로모픽 하드웨어는 몇몇 실시예에 따라 메모리(1110)와 별도로 배치되거나 또는 메모리(1110) 내에 일부일 수 있다. 뉴로모픽 하드웨어는 CNN매핑 등을 수행할 수 있다. 뉴로모픽 하드웨어는 외부 메모리를 이용하지 않고 온칩 메모리만을 이용하여 연산을 수행할 수 있다. 예를 들면, 뉴로모픽 하드웨어는 외부 메모리(예: 오프칩 메모리 등)를 이용하지 않고 온칩메모리만을 이용하여 CNN 매핑 등을 수행함으로써, 이미지 처리하는 동안 메모리 업데이트 없이 연산을 수행할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 호스트 20 : 스토리지 장치
100 : 스토리지 컨트롤러 200 : 비휘발성 메모리 장치
1000 : 뉴럴네트워크 장치 1110 : 메모리
1120 : 프로세서

Claims (20)

  1. 적어도 두 개의 상태(state)를 포함하는 데이터 세트;
    각각이 적어도 하나 이상의 데이터 세트를 포함하는 메모리 셀을 복수 개 포함하는, 비휘발성 메모리 장치; 및
    상기 비휘발성 메모리 장치에 액세스하는 스토리지 컨트롤러를 포함하고,
    상기 스토리지 컨트롤러는
    어느 하나의 상기 메모리 셀에 저장된 데이터의 제1 상태에 액세스하고,
    상기 제1 상태에 MAC(Multiplier-Accumulator) 연산을 수행하고,
    상기 연산이 수행된 제2 상태를 상기 메모리 셀에 인플레이스(In-Place) 업데이트하는, 스토리지 장치.
  2. 제1항에 있어서, 상기 데이터 세트 각각은
    상기 데이터 세트에 속한 상기 상태에 각각 매핑(Mapping)된 값을 복수 개 포함하는, 스토리지 장치.
  3. 제1항에 있어서, 상기 데이터 세트 각각은
    제1 상태 내지 M번째 상태에 리니어(Linear)하게 제1 값 내지 제M 값을 매핑하고,
    상기 제1 값 내지 제M 값 각각은 유리수(rational number)인, 스토리지 장치.
  4. 제1항에 있어서, 상기 데이터 세트가 둘 이상인 경우
    상기 메모리 셀 내에서 상기 데이터 세트는 리니어(Linear)하게 매핑되는, 스토리지 장치.
  5. 제4항에 있어서, 상기 제1 상태가 속한 현재 데이터 세트 내에서 연산 결과 값이 상기 제1 상태에 매핑된 값보다 우측에 있는 경우,
    상기 연산 결과 값이 매핑된 상기 제2 상태는 상기 현재 데이터 세트에 속하는, 스토리지 장치.
  6. 제4항에 있어서, 상기 제1 상태가 속한 현재 데이터 세트 내에서 연산 결과 값이 상기 제1 상태에 매핑된 값보다 좌측에 있는 경우,
    상기 연산 결과 값이 매핑된 상기 제2 상태는 상기 현재 데이터 세트에 인접한 다음 데이터 세트에 속하는, 스토리지 장치.
  7. 제1항에 있어서, 상기 제2 상태에 대한 문턱전압은
    상기 제1 상태의 문턱전압보다 큰, 스토리지 장치.
  8. 제1항에 있어서, 상기 비휘발성 메모리 장치는
    상기 메모리 셀 각각에 상응하여 상기 메모리 셀의 정보를 저장하는 복수의 플래그 셀을 포함하는, 스토리지 장치.
  9. 제8항에 있어서, 상기 플래그 셀은
    상기 데이터 세트의 활성화 정보를 포함하고,
    상기 스토리지 컨트롤러는
    상기 활성화 정보를 기초로 상기 데이터 세트 중 활성화된 데이터 세트만 액세스하는, 스토리지 장치.
  10. 제8항에 있어서, 상기 플래그 셀은
    상기 메모리 셀의 PE 사이클 정보를 포함하고,
    상기 스토리지 컨트롤러는
    상기 PE 사이클 정보에 기초하여 적어도 하나의 데이터 세트를 제외한 나머지 데이터 세트에 속한 상태들을 새로운 문턱 전압으로 재매핑(Re-Mapping)하는, 스토리지 장치.
  11. 제8항에 있어서, 상기 스토리지 컨트롤러는
    어느 하나의 상기 메모리 셀을 이레이즈(Erase)하는 경우, 상기 메모리 셀에 상응하는 상기 플래그 셀도 이레이즈하는, 스토리지 장치.
  12. 비휘발성 메모리를 포함하는 스토리지 장치의 동작방법에 있어서,
    상기 비휘발성 메모리는
    각각이 복수의 데이터 세트를 포함하는, 복수의 메모리 셀을 포함하고,
    상기 데이터 세트 각각은 기설정된 값이 각각 리니어 매핑된 복수의 상태를 포함하고,
    상기 동작방법은
    연산 명령을 수신하고,
    제1 상태에 매핑된 값에 상기 연산을 수행하고,
    수행 결과에 따라 산출된 값에 매핑되는 제2 상태의 위치 정보를 판단하고,
    상기 제2 상태에 상기 산출된 값을 오버라이트하는, 스토리지 장치의 동작방법.
  13. 제12항에 있어서, 상기 비휘발성 메모리는
    상기 복수의 메모리 셀 각각에 상응하는 정보를 저장하는 복수의 플래그 셀을 포함하고,
    상기 플래그 셀은 상기 복수의 데이터 세트 각각에 상응하는 적어도 하나의 상태를 포함하는, 스토리지 장치의 동작방법.
  14. 제13항에 있어서,
    상기 연산을 수행하기 전에, 상기 플래그 셀에 액세스하여 상기 각 데이터 세트의 활성화 여부를 확인하는, 스토리지 장치의 동작방법.
  15. 제13항에 있어서, 상기 플래그 셀은
    상기 연산 결과 상기 제1 상태 및 상기 제2 상태가 속한 데이터 세트의 활성화 정보를 상기 플래그 셀에 업데이트하는, 스토리지 장치의 동작방법.
  16. 각각이 복수의 데이터 세트를 포함하는 복수의 비휘발성 메모리 셀을 포함하며, 데이터를 저장하는 메모리;
    적어도 하나의 프로그램을 저장하는 비휘발성 메모리 장치; 및
    상기 적어도 하나의 프로그램을 실행하여 뉴럴 네트워크를 구동함으로써 상기 데이터에 대한 연산을 수행하는 프로세서를 포함하고,
    상기 프로세서는
    어느 하나의 비휘발성 메모리 셀의 제1 상태에 매핑된 데이터에 대해 연산을 수행하고,
    연산 결과 값에 매핑되는 제2 상태를 상기 비휘발성 메모리 셀에 쓰기하는, 뉴럴 네트워크 장치.
  17. 제16항에 있어서, 상기 데이터 세트 각각은
    기설정된 값이 각각 리니어 매핑된 복수의 상태를 포함하는, 뉴럴 네트워크 장치.
  18. 제16항에 있어서, 상기 연산은 콘볼루션 연산을 위한 가산, 감산, 곱셈 또는 나눗셈 연산인, 뉴럴 네트워크 장치.
  19. 제16항에 있어서, 상기 비휘발성 메모리 장치는 상기 메모리를 포함하는, 뉴럴 네트워크 장치.
  20. 제16항에 있어서, 상기 메모리는
    상기 복수의 메모리 셀 각각에 상응하는 정보를 저장하는 복수의 플래그 셀을 포함하고,
    상기 플래그 셀은 상기 복수의 데이터 세트 각각에 상응하는 플래그 정보를 저장하는, 적어도 하나의 상태를 포함하는, 뉴럴 네트워크 장치.
KR1020190174861A 2019-12-26 2019-12-26 셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법 KR20210082676A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190174861A KR20210082676A (ko) 2019-12-26 2019-12-26 셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법
US16/988,909 US11347436B2 (en) 2019-12-26 2020-08-10 Storage device accessible on a cell-by-cell basis and method of operating the same
CN202011543864.XA CN113053444A (zh) 2019-12-26 2020-12-24 存储装置和操作该存储装置的方法
US17/828,362 US11861237B2 (en) 2019-12-26 2022-05-31 Storage device accessible on a cell-by-cell basis and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190174861A KR20210082676A (ko) 2019-12-26 2019-12-26 셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법

Publications (1)

Publication Number Publication Date
KR20210082676A true KR20210082676A (ko) 2021-07-06

Family

ID=76508200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190174861A KR20210082676A (ko) 2019-12-26 2019-12-26 셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법

Country Status (3)

Country Link
US (2) US11347436B2 (ko)
KR (1) KR20210082676A (ko)
CN (1) CN113053444A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210082676A (ko) 2019-12-26 2021-07-06 삼성전자주식회사 셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003109B1 (en) 2014-05-29 2015-04-07 SanDisk Technologies, Inc. System and method for distributed computing in non-volatile memory
KR20170026831A (ko) * 2015-08-28 2017-03-09 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치 그리고 데이터 저장 장치의 동작 방법.
JP6151830B1 (ja) 2016-07-05 2017-06-21 ウィンボンド エレクトロニクス コーポレーション 不揮発性半導体記憶装置
KR102181177B1 (ko) 2016-07-29 2020-11-20 웨스턴 디지털 테크놀로지스, 인코포레이티드 비휘발성 메모리를 위한 비-바이너리 인코딩
KR102369715B1 (ko) 2017-06-12 2022-03-03 삼성전자주식회사 이차원 물질을 포함하는 비휘발성 메모리 소자 및 이를 포함하는 장치
JP2019057053A (ja) 2017-09-20 2019-04-11 東芝メモリ株式会社 半導体記憶装置
US10748630B2 (en) 2017-11-29 2020-08-18 Silicon Storage Technology, Inc. High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks
KR102408858B1 (ko) * 2017-12-19 2022-06-14 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법
KR102112393B1 (ko) 2018-02-28 2020-05-18 부산대학교 산학협력단 3차원 적층 시냅스 어레이 기반의 뉴로모픽 시스템과 그 동작 방법 및 제조 방법
US12020143B2 (en) 2018-04-09 2024-06-25 Flashsilicon Incorporation Digital neuromorphic code processor
KR20210082676A (ko) 2019-12-26 2021-07-06 삼성전자주식회사 셀 단위로 액세스 가능한 스토리지 장치 및 그 동작방법

Also Published As

Publication number Publication date
US20220291872A1 (en) 2022-09-15
US11347436B2 (en) 2022-05-31
CN113053444A (zh) 2021-06-29
US11861237B2 (en) 2024-01-02
US20210200471A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US9627072B2 (en) Variant operation sequences for multibit memory
CN110389720B (zh) 存储装置及其操作方法
CN111158579B (zh) 固态硬盘及其数据存取的方法
US11086540B2 (en) Memory system, memory controller and memory device for configuring super blocks
KR20210020689A (ko) 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법
KR102694952B1 (ko) 메모리 시스템 및 그것의 동작방법
US11507289B2 (en) Storage device, controller and method for operating storage device
US10290346B2 (en) Method and apparatus for low-latency read of flash storage devices using fractional bits per cell
US10846214B2 (en) Nonvolatile memory system and method of operating the same
US11861237B2 (en) Storage device accessible on a cell-by-cell basis and method of operating the same
US12001709B2 (en) Storage devices and operating methods of storage controllers
US9507706B2 (en) Memory system controller including a multi-resolution internal cache
US11586379B2 (en) Memory system and method of operating the same
CN112447234A (zh) 存储器控制器及其操作方法
US20240338123A1 (en) Storage device grouping a plurality of zones into zone cluster, system and operating method of the storage device
US20240143187A1 (en) Storage device, controller and method for performing global wear-leveling
US20240184486A1 (en) Storage device determining memory area to which data is written using write throughput and method of operation
US20240345740A1 (en) Storage device caching update target data unit while entering down-time mode and operating method of the storage device
US20240354019A1 (en) Storage device distibuting bad memory units in super memory block and operating method of the storage device
US20240143222A1 (en) Storage device controlling write buffer while processing power off request and method of operating the storage device
US20240202090A1 (en) Storage device for storing temperature log information according to temperature storage level and operating method thereof
US11709610B2 (en) Memory system, memory controller and operating method
US20240330181A1 (en) Storage device for caching data segment in hash-based data segment cache and operating method of the storage device
US20240143192A1 (en) Memory system and operating method thereof
US20240220143A1 (en) Method for managing virtual zone

Legal Events

Date Code Title Description
E902 Notification of reason for refusal