KR20200135549A - 카운터 업데이트 동작을 위한 장치 및 방법 - Google Patents

카운터 업데이트 동작을 위한 장치 및 방법 Download PDF

Info

Publication number
KR20200135549A
KR20200135549A KR1020207033102A KR20207033102A KR20200135549A KR 20200135549 A KR20200135549 A KR 20200135549A KR 1020207033102 A KR1020207033102 A KR 1020207033102A KR 20207033102 A KR20207033102 A KR 20207033102A KR 20200135549 A KR20200135549 A KR 20200135549A
Authority
KR
South Korea
Prior art keywords
memory
counter
commands
memory cell
system controller
Prior art date
Application number
KR1020207033102A
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 마이크론 테크놀로지, 인크.
Publication of KR20200135549A publication Critical patent/KR20200135549A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 카운터 업데이트 동작을 위한 장치 및 방법을 포함한다. 예시적 장치는 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹을 포함하는 관리 유닛을 포함하는 메모리를 포함하며, 관리 유닛과 연관된 각자의 카운터가 제2 메모리 셀 그룹 상에 저장된다. 예시적 장치는 제어기를 더 포함한다. 제어기는 호스트로부터 수신된 메모리 동작 요청을 라우팅하도록 구성된 코어 및 상기 코어 및 메모리로 연결된 데이터경로를 포함한다. 데이터경로는, 코어로부터 라우팅된 메모리 동작 요청의 수신에 응답하여, 라우팅된 메모리 동작 요청과 연관된 복수의 커맨드를 메모리로 발행하여, 복수의 제1 메모리 셀 그룹에서 대응하는 메모리 동작을 수행하도록 구성될 수 있다. 각자의 카운터가 복수의 커맨드에 독립적으로 업데이트될 수 있다.

Description

카운터 업데이트 동작을 위한 장치 및 방법
본 개시는 일반적으로 반도체 메모리 및 방법과 관련되며, 더 구체적으로, 카운터 업데이트 동작을 위한 장치 및 방법과 관련된다.
일반적으로 메모리 디바이스는 컴퓨터 또는 그 밖의 다른 전자 디바이스에서 내부, 반도체, 집적 회로 및/또는 외부 이동식 디바이스로서 제공된다. 휘발성 및 비휘발성 메모리를 포함해 많은 상이한 유형의 메모리가 존재한다. 휘발성 메모리는 자신의 데이터를 유지하기 위해 전력을 필요로 하고 랜덤-액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM) 등을 포함할 수 있다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영속 데이터를 제공할 수 있고 NAND 플래시 메모리, NOR 플래시 메모리, 리드 온리 메모리(ROM), 저항 가변 메모리, 가령, 상 변화 랜덤 액세스 메모리(PCRAM), 저항 랜덤 액세스 메모리(RRAM), 및 자기 랜덤 액세스 메모리(MRAM) 등을 포함할 수 있다.
메모리 디바이스는 고 메모리 밀도, 고 신뢰성, 및 저 전력 소비가 필요한 다양한 전자 응용분야에서 휘발성 및 비휘발성 메모리로서 사용될 수 있다. 비휘발성 메모리는 예를 들어, 개인 컴퓨터, 휴대용 메모리 스틱, 솔리드 스테이트 드라이브(SSD), 개인 디지털 어시스턴트(PDA), 디지털 카메라, 셀방식 전화기, 휴대용 음악 재생기, 가령, MP3 플레이어, 및 영화 플레이어, 그 밖의 다른 전자 디바이스에서 사용될 수 있다. 데이터, 가령, 프로그램 코드, 사용자 데이터, 및/또는 시스템 데이터, 가령, 기본 입/출력 시스템(BIOS)이 일반적으로 비휘발성 메모리 디바이스에서 저장된다.
다수의 상태(가령, 저항 상태) 중 하나가 저항 가변 메모리 셀에 대해 설정될 수 있다. 예를 들어, 단일 레벨 셀(SLC: single level cell)이 셀이 특정 레벨보다 높은 저항 또는 낮은 저항으로 프로그램되는지에 따라 달라질 수 있는 두 개의 상태(가령, 논리 1 또는 0) 중 하나로 프로그램(가령, 쓰기)될 수 있다. 추가 예를 들면, 다양한 저항 가변 메모리 셀이 각자의 디지트 패턴(가령, 10, 01, 00, 11, 111, 101, 100, 1010, 1111, 0101, 0001 등)에 대응하는 다수의 상이한 상태 중 하나로 프로그램될 수 있다. 이러한 셀은 다중 상태 셀, 다중-디지트 셀, 및/또는 다중레벨 셀(MLC)이라고 지칭될 수 있다.
예를 들어, 인가된 문의 전압(interrogation voltage)에 응답하여 셀을 통과하는 전류를 감지함으로써, 메모리 셀의 상태가 예를 들어 결정(가령, 읽기)될 수 있다. 셀의 전압 레벨에 기초하여 변하는 감지된 전류가 셀의 상태(가령, 셀에 의해 저장된 이진 데이터)를 가리킬 수 있다. 그러나 셀의 전압 레벨이 다양한 이유로 바람직하지 않게 변할 수 있고, 이는 메모리 셀의 잘못된 감지를 초래할 수 있다.
도 1은 본 개시의 다수의 실시예에 따르는 카운터 업데이트 동작을 수행할 수 있는 메모리 시스템을 포함하는 컴퓨팅 시스템의 형태로 된 장치의 블록도이다.
도 2는 본 개시의 다수의 실시예에 따라 다수의 물리 페이지를 갖는 예시적 물리 블록의 다이어그램을 도시한다.
도 3a는 쓰기 동작과 연관된 카운터를 업데이트하는 것과 연관된 타이밍도이다.
도 3b는 읽기 동작과 연관된 카운터를 업데이트하는 것과 연관된 타이밍도이다.
도 3c는 본 개시의 다수의 실시예에 따르는 카운터 업데이트 동작을 수행하는 것과 연관된 타이밍도이다.
도 4는 본 개시의 다수의 실시예에 따르는 읽기 동작 동안의 예시적 카운터 동작을 수행하는 것과 연관된 다이어그램이다.
도 5는 본 개시의 다수의 실시예에 따르는 쓰기 동작 동안의 예시적 카운터 업데이트 동작을 수행하는 것과 연관된 다이어그램이다.
본 개시는 카운터 업데이트 동작을 수행하기 위한 장치 및 방법을 포함한다. 예시적 장치는 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹을 포함하는 관리 유닛을 포함하는 메모리를 포함하며, 관리 유닛과 연관된 각자의 카운터가 제2 메모리 셀 그룹 상에 저장된다. 예시적 장치는 제어기를 더 포함한다. 제어기는 호스트로부터 수신된 메모리 동작 요청을 라우팅하도록 구성된 코어 및 상기 코어 및 메모리로 연결된 데이터경로를 포함한다. 데이터경로는, 코어로부터 라우팅된 메모리 동작 요청의 수신에 응답하여, 라우팅된 메모리 동작 요청과 연관된 복수의 커맨드를 메모리로 발행하여, 복수의 제1 메모리 셀 그룹에서 대응하는 메모리 동작을 수행하도록 구성될 수 있다. 각자의 카운터가 복수의 커맨드에 독립적으로 업데이트될 수 있다.
다수의 카운터(가령, 읽기/쓰기 카운터)는 셀을 "리프레시"(가령, 셀을 이들의 목표 상태로 다시 설정)할 때를 결정하는 데 사용될 수 있다. 예를 들어, 셀에 인가되는 읽기 신호 및/또는 쓰기 신호가 (가령, 신호가 인가되는) 특정 셀뿐 아니라 이들의 이웃 셀(가령, 특정 셀에 인접한 셀)의 상태를 바람직하지 않게 변경(가령, 읽기/쓰기 교란)할 수 있으며, 이는 셀의 논리 상태의 잘못된 결정을 초래할 수 있다. 따라서, 다수의 카운터가 예를 들어 이웃하는 셀에 미치는 신호의 영향의 정도를 식별하는 데 사용될 수 있고, 이들 이웃하는 셀을 리프레시할 때를 결정하여, 셀의 논리 상태를 올바르게 감지할 수 있다.
본 개시의 실시예는 다양한 이점, 가령, 이전 방식에 비교하여, 카운터(가령, 읽기/쓰기 카운터)를 업데이트할 수 있는 메모리 디바이스와 연관된 감소된 레이턴시를 제공한다. 예를 들어, 카운터를 업데이트하는 것과 연관된 다양한 이전 방식이 메모리 셀의 어레이로부터 카운터를 불러오는 것, 메모리 셀의 어레이를 포함하는 디바이스와 상이한 디바이스에서 불러온 카운터를 업데이트하는 것, 및/또는 불러온 카운터를 타운터가 이전에 저장됐던 메모리 셀의 어레이에 다시 저장하는 것을 포함한다. 이러한 방식은 정보를 통신하는 것과 연관된 바람직하지 않은 레이턴시를 도출할 수 있는 연관된 디바이스 간에 정보를 지속적으로 통신하는 것(가령, 데이터를 전송하는 것)을 필요로 하거나, 및/또는 (감소된 데이터 신뢰도 및/또는 데이터 무결성 또한 야기할) 셀의 다수의 바람직하지 않은 감지/프로그래밍을 필요로 함으로써, 에너지 소비 측면에서 비쌀 수 있다. 이와 달리, 본 개시의 다수의 실시예가 종래 방식과 비교해서 정보(가령, 읽기/쓰기 카운터)를 통신하고 에너지 소비를 감소시키는 것과 연관된 레이턴시를 감소시키는 방식으로 카운터 업데이트 동작을 제공할 수 있다.
본 발명의 다음의 상세한 설명에서, 본 명세서의 일부인 첨부된 도면이 참조되며 여기서 본 발명의 하나 이상의 실시예가 실시될 수 있는 방식이 예시로 나타난다. 이들 실시예는 해당 분야의 통상의 기술자가 본 발명의 실시예를 실시하기에 충분히 상세히 기재되고, 그 밖의 다른 실시예가 사용될 수 있으며 프로세스, 전기적 및 구조적 변경이 본 발명의 범위 내에서 이뤄질 수 있음이 이해될 것이다.
본 명세서에서 사용될 때, 도면의 참조 번호와 관련하여 지시자, 가령, "N" 및 "M" 등은 이렇게 지시되는 특정 특징부가 다수 개 포함될 수 있음을 가리킨다. 본 명세서에서 사용되는 용어가 특정 실시예를 기재하기 위한 목적에 불과하며 한정을 의도한 것이 아니다. 본 명세서에서 사용될 때, 맥락상 달리 언급되지 않는 한, 단수 형 "a", "an", 및 "the"가 단수형과 복수형 개시를 모두 포함할 수 있다. 덧붙여, "다수의(a number of)" 무엇(가령, 다수의 메모리 셀)은 이러한 것의 하나 이상을 지칭할 수 있고, "복수의(plurality of)" 무엇은 이러한 것의 둘 이상(가령, 둘 이상의 메모리 셀)을 지칭하려는 의도를 가진다. 덧붙여, 단어 "할 수 있다(can)" 및 "할 수 있다(may)"는 본 출원 전체에서 허용의 의미로 사용되며(가령, ~ 할 가능성이 있음, ~ 할 수 있음), 의무의 의미(가령, ~해야 한다)가 아니다.
본 명세서의 도면은 첫 번째 숫자는 도면 번호에 대응하며, 나머지 숫자는 도면 내 요소 또는 구성요소를 식별하는 넘버링 규칙을 따른다. 상이한 도면들 간 유사한 요소 또는 구성요소가 유사한 숫자의 사용에 의해 식별될 수 있다. 예를 들어, 110은 도 1의 요소 "10"을 지칭할 수 있고, 유사한 요소가 도 3의 310로 지칭될 수 있다.
서수, 가령, 제1 및 제2는 유사한 및/또는 선택적으로 연결된 구성요소(가령, 메모리 셀, 물질의 그룹 등)를 상관 및/또는 구별하는 것을 보조하도록 사용되며, 가령, 용어, 가령 형용사 등을 이용함으로써, 문맥상 명백히 지시되지 않는 한 구성요소들 간 특정 순서 및/또는 관계를 지시하도록 사용되지 않는다.
도 1은 본 개시의 다수의 실시예에 따르는 카운터 업데이트 동작을 수행할 수 있는 메모리 시스템(104)을 포함하는 컴퓨팅 시스템(100)의 형태로 된 장치의 블록도이다. 본 명세서에서 사용될 때, 메모리 시스템(104), 시스템 제어기(110), 또는 메모리 디바이스(116)는 또한 개별적으로 "장치(apparatus)"라고 간주될 수 있다. 메모리 시스템(104)은 가령 솔리드 스테이트 드라이브(SSD)일 수 있고, 호스트 인터페이스(106), 시스템 제어기(110), 및 시스템(104)에 대한 메모리로서 역할할 수 있는 메모리 디바이스(116)를 포함할 수 있다.
시스템 제어기(110)는 호스트 인터페이스(106)를 통해 호스트(102)에 연결될 수 있고 메모리 인터페이스(108)를 통해 메모리 디바이스(116)에 연결될 수 있으며, 메모리 시스템(104)과 호스트(102) 간 데이터를 전송하는 데 사용될 수 있다. 호스트 인터페이스(106)는 표준화된 인터페이스의 형태를 가질 수 있다. 예를 들어, 메모리 시스템(104)이 컴퓨팅 시스템(100) 내 데이터 저장소용으로 사용될 때, 호스트 인터페이스(106)는 직렬 고급 기술 결합(serial advanced technology attachment)(SATA), 병렬 컴포넌트 인터커넥트 익스프레스(peripheral component interconnect express)(PCIe), 또는 전역 직렬 버스(USB), 그 밖의 다른 커넥터 및 인터페이스일 수 있다. 일반적으로, 호스트 인터페이스(106)를 통해 서로 연결된 메모리 시스템(104) 및 호스트(102) 각각은 호스트 인터페이스(106)를 통해 제어, 어드레스, 데이터, 및 그 밖의 다른 신호를 전달하기 위한 호환 리셉터를 가질 수 있다. 마찬가지로, 시스템 제어기(110) 및 메모리 디바이스(116) 각각은 메모리 인터페이스(108)와 호환되는 리셉터를 가질 수 있다. 메모리 인터페이스(108)는 다양한 표준을 지원 및/또는 다양한 인터페이스 유형(가령, DDR, ONFI 등)을 준수할 수 있다.
호스트(102)는 시스템 마더보드 및/또는 백플레인(backplane)을 포함하고 복수의 메모리 액세스 소자(가령, 다수의 프로세서)를 포함할 수 있다. 호스트(102)는 또한 메모리 제어기일 수 있으며, 예를 들어, 메모리 시스템(104)이 메모리 디바이스((가령, 온-다이 제어기(on-die controller)를 갖는 메모리 디바이스)이다. 예를 들어, 컴퓨팅 시스템(100)이 셀방식 전화기(가령, 스마트폰)라고 가정하면, 호스트(102)는 시스템 온 칩(SoC)일 수 있고 메모리 시스템(104)은 eMMC(Multi-Media Controller) 및/또는 UFS(Universal Flash Storage)일 수 있다.
시스템 제어기(110)는 메모리 디바이스(116)(일부 실시예에서 단일 다이 및/또는 다수의 다이 상에 있는 다수의 메모리 어레이일 수 있음)와 통신하여, 데이터 읽기, 쓰기, 및 소거 동작 등을 제어할 수 있다. 시스템 제어기(110)는 시스템 제어기(110)를 메모리 디바이스(116)로 연결하는 메모리 인터페이스(108)에 연결될 수 있다. 시스템 제어기(110)는 예를 들어 하드웨어 및/또는 펌웨어(가령, 하나 이상의 집적 회로) 및/또는 메모리 디바이스(116)로의 액세스를 제어하고 및/또는 호스트(102)와 메모리 디바이스(116) 간 데이터 전송을 촉진시키기 위한 소프트웨어의 형태로 된 다수의 구성요소를 포함할 수 있다.
일부 실시예에서, 시스템 제어기(110)는 비휘발성 메모리 익스프레스(NVMe) 제어기일 수 있다. 예를 들어, 시스템 제어기(110)는 논리적 디바이스 인터페이스 규격(가령, 프로토콜), 가령, VNMe 규격 또는 비휘발성 메모리 호스트 제어기 인터페이스 규격에 따라 동작하도록 구성될 수 있다. 따라서 일부 실시예에서, 시스템 제어기(110)는 NVMe 프로토콜에 따라 커맨드를 처리하도록 구성될 수 있다.
시스템 제어기(110)는 코어 구성요소(112) 및 데이터경로 구성요소(114)를 포함할 수 있다. 코어 구성요소(112)는 호스트(102)로부터 다양한 기능, 가령, 메모리 동작 요청(가령, 메모리 디바이스(116) 상에서 동작을 수행하기 위한 요청)을 수신하고 상기 요청을 데이터경로 구성요소(114)로 라우팅하도록 구성될 수 있다. 데이터경로 구성요소(114)는, 라우팅된 요청의 수신에 응답하여, 라우팅된 요청과 연관된 커맨드를 생성하고 커맨드를 메모리 디바이스(116)로 발행하도록 구성될 수 있다.
일부 실시예에서, 데이터경로 구성요소(114)는 다양한 기능, 가령, 메모리 디바이스(116) 상에서 수행되는 커맨드의 조화를 수행하도록 구성될 수 있는 중재 구성요소(arbiter component)로서 역할 할 수 있다. 일부 실시예에서, 데이터경로 구성요소(114)는 커맨드에 대응하는 동작이 데이터경로 구성요소(114)에 의해 시퀀싱될 때 메모리 디바이스(116) 내에서 수행될 수 있도록 다양한 기능, 가령, 메모리 디바이스(116)로 발행될 커맨드 시퀀싱을 수행하도록 구성될 수 있는 시퀀서 구성요소로서 역할 할 수 있다.
메모리 디바이스(116)는 다수의 메모리 어레이(도시되지 않음) 및 제어 로직(118)(가령, 메모리 제어기)을 포함할 수 있다. 제어 로직(118)은 메모리 디바이스(116) 내부에 위치할 수 있고 메모리 인터페이스(108)를 통해 시스템제어기(110)로부터 커맨드(가령, 쓰기 커맨드, 읽기 커맨드, 리프레시 커맨드 등)를 수신할 수 있다. 본 명세서에서 기재된 바와 같이, 제어 로직(118)은 호스트(102)에 독립적으로(가령, 외부 제어기, 가령, 호스트(102)로부터의 보조 없이) 메모리 디바이스(116)에 저장된 카운터를 관리(가령, 업데이트)하도록 구성될 수 있다. 달리 말하면, 시스템 제어기(110)가 제어기 로직(118)이 카운터 업데이트 동작을 수행하게 하지 않음에도 불구하고, 제어 로직(118)은 카운터 업데이트 동작을 수행하도록 구성될 수 있다. 따라서 제어 로직(118)은 시스템 제어기(110)로 카운터를 다시 전송하지 않고 카운터를 업데이트하도록 구성될 수 있다.
일부 실시예에서, 시스템 제어기(110)는 제어 로직(118)으로부터 요청되지 않는 한 제어 로직(118)이 카운터 업데이트 동작을 수행하게 하지 않을 수 있다. 예를 들어, 제어 로직(118)은 예를 들어 임계치에 도달할 때까지 각자의 카운터 값을 증분/감분시킴으로써 시스템 제어기(110)에 독립적으로(가령, 시스템 제어기(110)로부터 발행되는 지시 없이) 카운터 업데이트 동작을 수행할 수 있다. 임계치에 도달할 때, 제어 로직(118)은 시스템 제어기(110)로부터의 지시를 요청할 수 있다. 이 이벤트에서, 제어 로직(118)으로부터의 요청에 응답하여, 시스템 제어기(110)는 임계치에 도달할 때 해야 할 일(가령, 증분, 감분 및/또는 리셋)과 연관된 지시를 발행할 수 있다. 따라서 일부 실시예에서, 시스템 제어기(110)는 부담 중 일부를 제어 로직(118)으로 배정함으로써 카운터 업데이트 동작을 수행하는 부담으로부터 벗어날 수 있다.
다수의 실시예에서, (가령, 제어 로직(118)에 의해) 카운터를 업데이트하는 것이 예를 들어 임계 값에 도달할 때까지 카운터의 값을 증분하는 것, 예를 들어, 메모리 셀의 상태가 리프레시될 때 카운터의 값을 감분/리셋하는 것, 및/또는 카운터들 중 임의의 하나가 임계 값에 도달할 때 호스트(102)에게 알림(가령, 인터럽트 신호) 및/또는 시스템 제어기(110)에게 알림하는 것을 포함할 수 있다. 일부 실시예에서, 읽기 카운터는 대응하는 메모리 셀이 읽힐 때마다 증분될 수 있다. 마찬가지로, 쓰기 카운터는 대응하는 메모리 셀이 프로그램(가령, 쓰기)될 때마가 증분될 수 있다. 용어 "프로그램"과 "쓰기"는 본 명세서에서 상호 교환 가능하게 사용되며 문맥에 따라 동일한 의미를 가질 수 있다.
일부 실시예에서, 카운터(가령, 카운터의 적어도 일부분)가 복수의 임계치를 가질 수 있다. 예를 들어, 특정 카운터(가령, 읽기 및/또는 쓰기)가 두 개의 상이한 임계치를 포함할 수 있으며, 두 개의 상이한 임계치 각각이 사용되어, 예를 들어 각각의 임계치에 도달할 때 메모리 디바이스(116)가 취할 일련의 조치를 더 정의할 수 있다. 예를 들어, 메모리 디바이스(116)는 특정 카운터에 대한 하나의 임계치(가령, 더 낮은 것)가 충족될 때 알림을 호스트로 전송하도록 구성되고, 또 다른 임계치(가령, 더 높은 것)가 충족될 때 특정 카운터를 리셋(가령, 포화)하도록 더 구성될 수 있다. 용어 "리셋"과 "포화"는 본 명세서에서 상호 교환 가능하게 사용되며 문맥에 따라 동일한 의미를 가질 수 있다.
일부 실시예에서, 값을 리셋하는 것은 값을 초기 값(가령, 0 및/또는 지정 값, 가령, X)으로 조절하는 것을 포함할 수 있다. 예를 들어, 특정 값이 임계치에 도달할 때, 임계 값을 초과하지 않고 특정 값이 다시 증분/감분될 수 있도록 특정 값이 초기 값으로 조절(가령, 리셋)될 수 있다. 임계 값이 충족될 때마다 값은 리셋될 수 있다(가령, 재초기화).
일부 실시예에서, 상이한 유형의 카운터가 컴퓨팅 시스템(100)에 대해 채용될 수 있다. 상이한 유형의 카운터는, 예를 들어, 특히 캐시 메모리를 위해 이용 가능한 읽기 카운터를 포함하여, 메인 메모리(가령, 메모리 디바이스(116))를 위해 이용되는 읽기 카운터를 가졌을 경우보다 더 자주 리셋되도록 할 수 있다. 상이한 유형의 카운터는, 예를 들어, 두 개의 상이한 쓰기 카운터를 포함하여, 두 개의 상이한 쓰기 카운터 중 하나가 메모리 동작(가령, 읽기/쓰기 동작)에 대해 사용될 수 있고 두 개의 상이한 쓰기 카운터 중 또 다른 하나가 마모 레벨링 동작을 위해 사용될 수 있도록 할 수 있다.
다수의 실시예에서, 메모리 디바이스(116)의 메모리 어레이(들)는 비휘발성 메모리 셀을 포함할 수 있다. 예를 들어, 메모리 어레이의 메모리 셀은 저항 가변 메모리 셀, 가령, PCRAM 및/또는 RRAM일 수 있다. 예를 들어, 메모리 셀은 셀에 대해 저장 요소와 스위치 요소 모두로서 기능하는 단일 칼코게나이드 물질 및/또는 스위치 요소로서 기능하는 제1 칼코게나이드 물질과 셀의 저장 요소로서 기능하는 제2 칼코게나이드를 포함하는 물질의 스택을 포함하는 칼코게나이드계 메모리 셀일 수 있는 PCM(phase change memory) 셀일 수 있다. 그러나 실시예는 이에 한정되지 않는다. 예를 들어, 메모리 디바이스(116)의 메모리 어레이는 NAND 플래시 메모리 셀 및/또는 NOR 플래시 메모리 셀 등을 포함할 수 있다.
메모리 셀(가령, 저항 가변 메모리 셀)은 다시 쓰기 가능할 수 있다. 예를 들어, 그룹에 이전에 저장된 데이터를 반드시 소거할 필요 없이 특정 데이터 패턴이 저항 가변 메모리 셀 그룹에 프로그램될 수 있다.
동작 중에, 데이터는, 예를 들어, 데이터 블록으로서, 메모리 디바이스(116)로 써지거나 및/또는 읽힐 수 있다. 따라서 데이터의 블록은 메모리 시스템(104)의 데이터 전송 크기라고 지칭될 수 있다. 데이터는 섹터(가령, 호스트 섹터)라고 지칭되는 데이터 세그먼트 단위로 호스트(가령, 호스트(102))로 전송/호스트로부터 전송될 수 있다. 따라서 데이터의 섹터가 호스트의 데이터 전송 크기로 지칭될 수 있다. 다수의 실시예에서, 메모리 디바이스(116)는 메모리 셀(가령, 저항 가변 메모리 셀)의 각자의 블록에 관리 유닛을 저장할 수 있다. 본 명세서에서 사용될 때, 관리 유닛은 함께 프로그램 및/또는 읽히는 다수의 메모리 셀로 또는 기능 그룹으로 지칭될 수 있다.
관리 유닛은 예를 들어 4KB일 수 있는 논리 블록 크기(가령, 호스트, 가령, 호스트(102)의 데이터 전송 크기) 및/또는 메모리 시스템(가령, 메모리 시스템(104))의 데이터 관리 크기에 대응할 수 있다. 예를 들어, 관리 유닛이 (가령, 시스템 제어기(110)를 통해) 메모리 셀의 물리 블록에 매핑될 수 있다. 그러나 실시예는 이에 한정되지 않는다. 예를 들어, 사용자 데이터 및 오버헤드 데이터(가령, 메모리 셀 그룹 내 저장된 다른 데이터를 알리는 데이터)를 저장하는 메모리 셀 그룹이 하나의 논리 블록 크기보다 큰 것에 대응할 때 관리 유닛은 하나의 논리 블록 크기보다 큰 것에 대응할 수 있다. 예를 들어, 오버헤드 데이터는 데이터, 가령, 메타데이터, ECC(error correction code) 데이터, LBA(logical block address) 데이터뿐 아니라 관리 유닛(가령, 물리 블록(220)) 상에서 수행되는 메모리 동작과 연관된 카운터(가령, 읽기/쓰기 카운터)까지 포함할 수 있다.
다수의 실시예에서, 관리 유닛은 상이한 유형의 메모리 셀 그룹을 포함할 수 있다. 예를 들어, 관리 유닛은 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹을 포함할 수 있고, 관리 유닛과 연관된 카운터가 제2 메모리 셀 그룹 상에 저장될 수 있다. 본 명세서에서 기재될 때, "메모리 셀 그룹"은 메모리 셀의 페이지에 대응할 수 있다.
도 2는 본 개시의 다수의 실시예에 따라 다수의 물리 페이지(222-0 (PAGE 0), 222-1 (PAGE 1), ..., 222-N (PAGE N))를 갖는 예시적 물리 블록(220)의 다이어그램을 도시한다. 다수의 실시예에서, 예시적 물리 블록(220)은 도 1과 관련하여 기재된 바와 같이 관리 유닛일 수 있다. 예를 들어, 셀의 물리 블록은 함께 프로그램 및/또는 읽히는 다수의 메모리 셀 또는 기능 그룹을 지칭할 수 있다.
블록(220)은 다수의 페이지(222-0 (PAGE 0), 222-1 (PAGE 1), ..., 222-N (PAGE N))(가령, 집합적으로 페이지(222)라고 지칭됨)를 포함할 수 있다. 예를 들어, 다수의 물리 페이지(222)는 각각의 페이지가 32 바이트 페이지 크기에 대응하는 128 페이지일 수 있다. 따라서, 블록(220)은 4KB 바이트 블록 크기에 대응할 수 있다. 그러나 실시예는 이에 한정되지 않는다. 예를 들어, 다수의 물리 페이지(222)는 516 페이지, 1024 페이지 등일 수 있고 블록(220)의 블록 크기는 각각의 페이지의 페이지 크기(가령, 페이지(220)) 및 블록(220)이 포함하는 페이지의 수에 기초하여 달라질 수 있다.
일부 실시예에서, 물리 페이지(222-0,..., 222-(N-1))는 사용자 데이터를 저장하는 데 사용될 수 있으며, 물리 페이지(222-N)는 오버헤드 데이터, 가령, 메타데이터, ECC(error correction code) 데이터, LBA(logical block address) 데이터뿐 아니라 관리 유닛(가령, 물리 블록(220)) 상에서 수행되는 메모리 동작과 연관된 카운터(가령, 읽기/쓰기 카운터)를 저장하는 데 사용될 수 있다. 일부 실시예에서, 하나보다 많은 물리 페이지(가령, 물리 페이지(222-N))가 오버헤드 데이터를 저장하는 데 할당될 수 있다.
물리 페이지(222-N)는 도 2에 더 자세히 도시되어 있다. 도 2에 도시된 바와 같이, 물리 페이지(222-N)는 상이한 유형의 데이터를 저장하는 데 사용될 수 있는 제1 부분(224) 및 제2 부분(226)을 포함한다. 일부 실시예에서, 제1 부분(224) 상에 저장된 데이터는 무결성 데이터, 가령, 에러 데이터(예를 들어, 에러 검출 및/또는 정정 코드 데이터)를 포함하는 메타데이터일 수 있다. 일부 실시예에서, 제1 부분(224) 상에 저장된 데이터는 시스템 제어기(110)에 의해 사용될 수 있는 특정 물리 블록(예를 들어, 특정 물리 블록에 대응하는 논리 블록 주소)과 관련된 정보 일 수 있다.
물리 페이지(222-N)의 제2 부분(226)은 카운터, 가령, 읽기 카운터 및/또는 쓰기 카운터를 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, 읽기 카운터는, 예를 들어, 관리 유닛 상에서 수행되는 읽기 동작의 양에 대한, 관리 유닛(가령, 물리 블록(220)) 상에서 수행되는 읽기 동작의 양을 가리키는 값으로 지칭될 수 있다. 본 명세서에서 사용되는 바와 같이, 쓰기 카운터는, 예를 들어, 관리 유닛 상에서 수행되는 쓰기 동작의 양에 대한, 관리 유닛(가령, 물리 블록(220)) 상에서 수행되는 쓰기 동작의 양을 가리키는 값으로 지칭될 수 있다.
물리 페이지(222)가 32 바이트의 페이지 크기에 대응하는 예시에서, 사용자 데이터를 저장하는 제1 부분(224)은 30 바이트에 대응할 수 있고, 카운터(가령, 읽기/쓰기 카운터)를 저장하는 제2 부분(226)은 2 바이트(가령, 각각의 카운터에 대해 1바이트씩)에 대응할 수 있다. 그러나 실시예는 이에 한정되지 않는다. 예를 들어, 카운터의 크기는 일부 실시예에서 읽기 및 쓰기 카운터가 각각 8비트일 수 있도록 변하거나, 및/또는 일부 실시예에서, 읽기 카운터의 크기는 16비트에 대응하고 쓰기 카운터의 크기는 32비트에 대응할 수 있다.
관리 유닛(예를 들어, 4KB의 블록 크기에 대응하는 물리 블록(220))에 대해 상대적으로 작은 크기를 갖는 것은, 512KB, 1.024MB 등의 블록 크기에 대응하는 블록을 갖는 방식에 비교해서, 이점, 가령, 제어 유닛(118)이 관리 유닛에 저장된 카운터를 관리할 수 있게 한다는 점을 제공할 수 있다. 예를 들어, 일부 실시예에서, 제어 로직(118)의 회로 설계가 시스템 제어기(110)에 비교해서 단순화될 필요가 있을 수 있도록 제어 로직(118)은 메모리 디바이스(116)의 크기/설계로 인해 회로 설계 측면에서 제한될 수 있다. 따라서, 단순화된 회로 설계를 갖는 제어 로직(118)은 비교적 큰 블록 크기, 가령, 512KB, 1.024MB 등에 대응하는 블록에 대한 카운터를 관리할 수 있지 않을 수 있다. 이와 달리, 본 개시의 실시예는 제어 유닛(118)에 의해 관리되는 각각의 관리 유닛의 크기를 감소시키며, 이는 시스템 제어기(110)에 독립적으로 카운터 관리를 가능하게 하는 이점을 제공한다.
도 3a는 쓰기 동작(336)과 연관된 카운터를 업데이트하는 것과 연관된 타이밍도(330)를 도시한다. 카운터는, 도 1과 관련하여 기재된 바와 같이, 제어기, 가령, (가령, 코어 구성요소(312)와 유사한) 코어 구성요소(112) 및 (가령, 데이터경로 구성요소(314)와 유사한) 데이터경로 구성요소(114)를 포함하는 시스템 제어기(110)일 수 있는 시스템 제어기(310)에 의해 업데이트(가령, 관리)될 수 있다. 이 예에서, 쓰기 동작(336)은 메모리 디바이스(316) 상에서 수행될 호스트(가령, 호스트(102))에 의해 요청된 동작이다. 읽기 동작(332)은 카운터 업데이트 동작(334)을 통해 업데이트될 카운터를 획득(예를 들어, 불러오기)하기 위해 수행되는 동작이다.
이 예에서, 시간 t1에서, 코어(312)는 데이터 경로(314)에 카운터 요청을 전송한다. 예를 들어, 카운터 요청은 쓰기 동작(336)이 수행될 PBA(physical block address)와 연관된 카운터(가령, 쓰기 카운터)를 불러오기(가령, 읽기) 위한 요청일 수 있다. 데이터 경로(314)는 수신된 카운터 요청에 대응하는 커맨드(예를 들어, "read cmd")을 생성하고, 시간 t2에서, 생성된 커맨드를 메모리 디바이스(316)로 전송한다. 시간 t3에서, 메모리 디바이스(316)로부터 불러와진 카운터는 데이터경로(314)에서 수신되고, 상기 데이터경로는 시간 t4에서 불러와진 카운터를 코어(312)로 라우팅한다. 따라서, t4 이후의 어떤 시점에서 카운터는 카운터 업데이트 동작(334)을 통해 코어(312)에 의해 업데이트될 수 있다. 업데이트된 카운터는 쓰기 동작(336)을 통해 메모리 디바이스(316)로 다시 저장될 수 있다. 예를 들어, 시간 t5에서, 코어(312)는 (가령, 쓰기 동작(336)을 수행하기 위한) 쓰기 요청을 데이터경로(314)로 전송하며, 상기 데이터경로는 쓰기 요청에 대응하는 쓰기 커맨드(가령, "write cmd")를 생성하고, 시간 t6에서부터 시작해서, 생성된 쓰기 커맨드를 메모리 디바이스(316)로 전송한다. 예를 들어, 쓰기 동작(336)이 메모리 디바이스(316)의 관리 유닛(가령, 블록(220)) 중 하나 상에서 수행될 때, 각각의 생성된 쓰기 커맨드는 관리 유닛의 대응하는 페이지로 지향될 수 있다.
도 3a에 도시된 바와 같이, 쓰기 동작(336)과 연관된 카운터가 시스템 제어기(310)에 의해 관리(예를 들어, 업데이트)될 때, 시스템 제어기(310)는 업데이트된 카운터를 메모리 디바이스(316)로 다시 쓰기 전에 카운터와 연관된 정보를 획득할 필요가 있을 수 있다. 따라서, 쓰기 동작(336)과 별개인 읽기 동작(332)이 카운터를 획득하도록 수행될 필요가 있다.
도 3b는 읽기 동작(342)과 연관된 카운터를 업데이트하는 것과 연관된 타이밍도(340)를 도시한다. 카운터는, 도 1에 기재된 바와 같이, 제어기, 가령, (가령, 코어 구성요소(312)와 유사한) 코어 구성요소(112) 및 (가령, 데이터경로 구성요소(314)와 유사한) 데이터경로 구성요소(114)를 포함하는 시스템 제어기(110)일 수 있는 시스템 제어기(310)에 의해 업데이트(가령, 관리)될 수 있다. 이 예에서, 읽기 동작(342)은 메모리 디바이스(316) 상에서 수행될 호스트(가령, 호스트(102))에 의해 요청된 동작이다. 쓰기 동작(346)은 카운터 업데이트 동작(344)을 통해 업데이트될 카운터를 획득(예를 들어, 불러오기)하기 위해 수행되는 동작이다.
이 예에서, 시간 t1에서, 코어(312)는 메모리 디바이스(316)(예를 들어, 메모리 디바이스(316)의 블록) 상에서 읽기 동작(342)을 수행하기 위한 요청(예를 들어, 읽기 요청)을 전송한다. 데이터경로(314)는 요청에 대응하는 커맨드(예를 들어, 도 3b에 도시된 읽기 커맨드)를 생성하고, 시간 t2부터 시작하여, 생성된 커맨드를 메모리 디바이스(316)로 전송한다.
(가령, 읽기 커맨드에 의해 특정된 바와 같이) 읽히도록 요청된 데이터가 시간 t3에서 데이터경로(314)로 불러와질 수 있다(가령, 반환될 수 있다). 코어(312)가 호스트(가령, 호스트(102))로 불러와진 데이터를 더 반환하도록 데이터 경로(314)는, 시간 t4에서, 수신된 데이터를 코어(312)로 라우팅한다. 불러와진 데이터(가령, 호스트로 불러와진 데이터)가 카운터(가령, 쓰기 동작(346)이 수행될 물리 블록 어드레스와 연관된 읽기 카운터)를 포함할 수 있다. 이와 같이, 카운터를 (예를 들어, 시스템 제어기(310)에서) 수신하면, 카운터는 t4(예를 들어, 코어(312)에서 카운터를 수신한 후)와 t5(예를 들어, 업데이트된 카운터를 메모리 디바이스(316)로 다시 쓰기 위한 요청을 전송하기 전) 사이 일부 시간에서 시스템 제어기(310)에 의해 업데이트될 수 있다.
업데이트 된 카운터를 메모리 디바이스(316)에 다시 쓰기 위해, 읽기 동작(342)과 별개인 또 다른 동작(가령, 쓰기 동작(346))이 수행될 필요가 있다. 예를 들어, 시간 t5에서, 코어(312)는 (가령, 메모리 디바이스(316)로 업데이트된 카운터를 다시 쓰기 위한) 카운터 요청을 데이터경로(314)로 전송하며, 상기 데이터경로는 카운터 요청에 대응하는 쓰기 커맨드(가령, "write cmd")를 생성하고, 시간 t6에서, 생성된 쓰기 커맨드를 메모리 디바이스(316)의 특정 위치(가령, 카운터가 이전에 불러와진 곳)로 생성한다.
제어기, 가령, 시스템 제어기(110)에 의해, 카운터가 관리(가령, 업데이트)될 때, 쓰기 동작(가령, 도 3a에 도시된 것) 및 읽기 동작(가령, 도 3b에 도시된 것)과 연관된 카운터를 업데이트하는 것은 연관된 쓰기 및 읽기 동작(336, 342)과 별개인 동작을 필요로 할 수 있다. 예를 들어, 시스템 제어기(310)는 메모리 디바이스(316)를 업데이트 및 다시 쓰기 전에 카운터에 대응하는 값을 식별할 필요가 있기 때문에, 도 3a의 쓰기 동작(336)과 연관된 카운터가 개별 읽기 동작(332) 없이 업데이트되지 않을 수 있다. 마찬가지로, 카운터가 읽기 동작(342)에 의해 읽힐 수 있더라도, 업데이트된 카운터는 메모리 디바이스(316)로 다시 써질 필요가 있고, 이는 읽기 동작(342)에 의해 수행되지 않을 수 있기 때문에 도 3b의 읽기 동작과 연관된 카운터가 개별 쓰기 동작(346) 없이 업데이트되지 않을 수 있다.
도 3c는 본 개시의 다수의 실시예에 따른 카운터 업데이트 동작을 수행하는 것과 연관된 타이밍도(350)를 도시한다. 도 3c에 도시된 쓰기 동작(352) 및 읽기 동작(354)은 호스트(가령, 호스트(102))에 의해 요청된 동작일 수 있다. 카운터는, 예를 들어, 메모리 디바이스(316)의 제어 로직(가령, 도 1의 제어 로직(118))에 의해 업데이트(관리)될 수 있다.
이 예에서, 시간 t1에서, 코어(312)는 메모리 디바이스(316)(예를 들어, 메모리 디바이스(316)의 블록) 상에서의 쓰기 동작(352)을 수행하기 위한 요청을 전송한다. 예를 들어, 쓰기 동작을 수행하기 위한 요청은 호스트(예를 들어, 호스트(102))로부터 수신된 요청일 수 있다. 코어(312)로부터의 요청을 수신하는 것에 응답하여, 데이터경로(314)는 요청에 대응하는 커맨드(가령, "write cmd")를 생성하고, 시간 t2로부터 시작하여, 메모리 디바이스(316)로 생성된 커맨드를 전송한다. 예를 들어, 쓰기 동작(352)이 메모리 디바이스(316)의 관리 유닛들 중 하나(예를 들어, 블록 220) 상에서 수행될 때, 생성된 쓰기 커맨드 각각은 관리 유닛의 대응하는 페이지로 지향될 수 있다.
이 예에서, 시간 t3에서, 코어(312)는 메모리 디바이스(316)(예를 들어, 메모리 디바이스(316)의 블록) 상에서의 읽기 동작을 수행하기 위한 요청을 전송한다. 예를 들어, 읽기 동작(354)을 수행하기 위한 요청은 호스트(예를 들어, 호스트(102))로부터 수신된 요청일 수 있다. 코어(312)로부터의 요청을 수신하는 것에 응답하여, 데이터경로(314)는 요청에 대응하는 커맨드(가령, "read cmd")를 생성하고, 시간 t4로부터 시작하여, 메모리 디바이스(316)로 생성된 커맨드를 전송한다. 예를 들어, 읽기 동작(354)이 메모리 디바이스(316)의 관리 유닛들 중 하나(예를 들어, 블록 220) 상에서 수행될 때, 생성된 읽기 커맨드 각각은 관리 유닛의 대응하는 페이지로 지향될 수 있다. 시간 t5에서 (가령, 읽기 커맨드에 의해 특정될 때) 읽히도록 요청된 데이터가 데이터경로(314)로 불러와질 수 있다(가령, 반환될 수 있다). 코어(312)가 호스트(가령, 호스트(102))로 불러와진 데이터를 더 반환하도록 데이터 경로(314)는, 시간 t6에서, 수신된 데이터를 코어(312)로 라우팅한다. 다수의 실시예에서, 메모리 디바이스(316)로부터 시간 t6에 불러와진 데이터는 카운터(예를 들어, 카운터 값)와 연관된 정보가 없을 수 있다(예를 들어, 포함하지 않을 수 있다).
다수의 실시예에서, 데이터경로(314)에 의해 생성되고 메모리 디바이스(316)로 발행된 커맨드는 메모리 디바이스(316)(가령, 제어 로직(118))가 카운터를 업데이트하게 하는 명령이 없을 수 있다. 달리 말하면, 시간 t2 및 t4에서 시작하여 발행된 커맨드는 제어 로직(118)이 대응하는 메모리 동작(가령, 읽기/쓰기 동작(352, 354))을 수행하게 하는 명령을 포함할 수 있고, 반면에 동일한 커맨드는 제어 로직(118)이 카운터 업데이트 동작을 수행하게 하는 명령이 없을 수 있다(가령, 포함하지 않을 수 있다). 따라서, 제어 로직(118)은 수신된 커맨드에 종속적으로 (가령, 호스트(102)에 의해 요청된) 메모리 동작을 수행하도록 구성되는 동안 시스템 제어기(110) 및/또는 호스트(102)에 독립적으로 카운터 업데이트 동작을 수행하도록 구성될 수 있다.
또한, 도 3c에 도시 된 바와 같이 수행된 카운터 업데이트 동작은, 개별 읽기 동작(가령, 쓰기 동작(336)에 대한 읽기 동작(332)) 및/또는 개별 쓰기 동작(가령, 읽기 동작(342)에 대한 쓰기 동작(344)) 없이 수행될 수 있다는 점에서, 쓰기 동작(352) 및/또는 읽기 동작(354) 내에 임베드된다. 또한, 읽기 동작(336) 및/또는 쓰기 동작(342)을 수행하기 위한 요청과는 별 인 코어(312)로부터의 요청에 응답하여 수행되는 도 3a 및 3b에 설명된 카운터 업데이트 동작과 달리, 대응하는 메모리 동작 내에 임베드되는 카운터 동작이 대응하는 메모리 동작을 수행하는 것을 트리거할 개별 요청에 응답하여 수행될 수 있다.
도 4는 본 개시의 다수의 실시예들에 따른 읽기 동작 동안 카운터 업데이트 동작을 수행하는 것과 연관된 다이어그램(450)을 예시한다. 도 4에 도시된 이 예에서, 읽기 동작은 블록(420)(예를 들어, 블록(220)) 상에서 수행되도록 호스트(예를 들어, 호스트(102))에 의해 요청된 동작일 수 있다. 예를 들어, 읽기 동작을 수행하기 위한 요청이, (가령, 데이터경로 구성요소(114)에 의해) 대응하는 커맨드를 생성하고 대응하는 커맨드를 제어 로직(가령, 제어 로직(118))으로 전송하는 시스템 제어기(예를 들어, 시스템 제어기(110))에서 수신될 수 있다.
도 4에 도시된 바와 같이, 두 개의 상이한 블록(420-1 및 420-2)(가령, 집합적으로 블록(420)으로 지칭됨)이 도 4에 나타나 있다. 각각의 블록은 관리 유닛일 수 있고, 다수의 어드레스 공간의 각각의 어드레스 공간이 타 어드레스 공간과 독립적으로 제어될 수 있도록, 다수의 어드레스 공간으로 파티셔닝될 수 있다. 예를 들어, 다수의 동작이 동일한 블록의 페이지들 중에서 동시에 수행될 수 있도록 블록의 각각의 파티셔닝된 어드레스 공간이 (가령, 각각의 블록의) 다수의 페이지의 일부분을 포함할 수 있다. 예를 들어, 커맨드(452-(N-1))에 대응하는 읽기 동작이 수행되는 동안 제어 로직(118)은 커맨드(452-N)에 대응하는 읽기 동작을 (가령, 카운터 업데이트 동작과 함께) 개시할 수 있다. 예를 들어, (가령, 블록(420-1)의) 페이지(454-(N-2), 454-(N-1), 454-N)가 파티션 1, 2, 3에 각각 할당될 수 있고, 페이지(458-0, 458-1, 458-2 및 458-3)는 각각 파티션 0, 1, 2 및 3에 할당 될 수 있다.
블록(420-1)은 페이지(452-(N-1)) 및 페이지(452-N)를 포함하는 다수의 페이지(예를 들어, N + 1 페이지)를 포함할 수 있다. 예를 들어, 페이지(452-(N-1))(예를 들어, 복수의 제1 메모리 셀 그룹 중 하나)는 읽기 커맨드(452-(N-1))를 통해 읽힐 수 있는(가령, 호스트(102)로 불러와질 수 있는) 사용자 데이터를 포함할 수 있다. 예를 들어, 페이지(452-N)(예를 들어, 제2 메모리 셀 그룹)는 블록(420-1)과 연관된 카운터와 함께 오버헤드 데이터를 포함할 수 있다. 이에 따라, 페이지(452-N) 상에서 카운터 업데이트 동작이 수행될 수 있다.
도 4에 도시된 이 예에서, 커맨드(452-(N-1) 및 452-N)를 포함하는 읽기 커맨드(452)는 시간 t1 이전에 순차적으로 수신될 수 있다. 따라서, 읽기 커맨드(452)의 수신에 응답하여 페이지(454-(N-2), 454-(N-1) 및 454-N)를 포함하는 페이지(454)에 대한 읽기 동작이 순차적으로 개시될 수 있다.
페이지(454-(N-1))로 향하는 커맨드(452-(N-1))는 시간 t1 이전뿐 아니라 커맨드(452-N) 이전의 어떤 시간에서 (예를 들어, 제어 로직(118)에서) 수신된다. 이와 같이, 페이지(454-(N-1))가 사용자 데이터를 포함한다는 결정에 응답하여, 제어 로직(118)은 사용자 데이터를 시스템 제어기(110)로 다시 불러오고, 시스템 제어기가 상기 불러온 사용자 데이터를 호스트(102)로 다시 반환함으로써, 페이지(454-(N-1))에 대한 읽기 동작을 수행할 수 있다.
페이지(454-N)로 향하는 커맨드(452-N)는 시간 t1에서 (예를 들어, 제어 로직(118)에서) 수신된다. 따라서, 페이지(454-N)가 카운터를 포함한다는 결정에 응답하여, 제어 로직(118)은 호스트(102)에 의해 요청되고 커맨드(452-N)에 의해 명령된 읽기 동작을 수행하는 것에 추가로, 카운터(가령, 읽기 카운터)를 업데이트(가령, 카운터 업데이트 동작을 수행)할 수 있다. 예를 들어, 페이지(454-N) 상에 저장된 데이터는 t1에서 t2까지(가령, "tRead") 읽힐 수 있고 카운터는 t2에서 t3까지(가령, "tCounterUpdate") 업데이트될 수 있다. 불러와진 데이터(예를 들어, "454-N"로 표시됨)는 데이터 버스, 가령, DQ 버스를 통해 시스템 제어기(110)로 다시 전송될 수 있다.
다수의 실시예에서, 카운터는 시스템 제어기(110)로 다시 전송되지 않고 업데이트될 수 있다. 따라서, 이 예에서, 오버헤드 데이터(예를 들어, 메타데이터) 및 페이지(454-N)로부터 불러와진 카운터가 시스템 제어기(110)에 의해 다시 전송될 수 있는 동안 페이지(454-N) 상에 저장된 카운터가 동시에 업데이트될 수 있다. 예를 들어, 페이지(454-N)로부터 불러와진 메타데이터는 시간 t2에 시스템 제어기(110)로 다시 전송될 수 있고, 카운터는 시간 t2에서도 업데이트될 수 있다. 따라서, 메모리 디바이스(116)와 시스템 제어기(110) 간 카운터 전송과 연관된 레이턴시가 카운터를 업데이트할 때 제거될 수 있다.
일부 실시예에서, 카운터는 나중에(예를 들어, 시간 t2 이후에) 업데이트되도록 버퍼링될 수 있다. t2에서 업데이트되는 대신, 다른 동작(가령, 읽기/쓰기 동작)이 카운터를 업데이트하는 것과 연관된 레이턴시에 의해 부정적인 영향을 받지 않도록 카운터를 업데이트하기 위해 내부 자원이 쉽게 이용 가능해질 때까지 카운터는 예를 들어 (가령, 업데이트되지 않도록) 버퍼링될 수 있다.
도 4에 도시된 이 예에서, 커맨드(456-0, 456-1, 456-2 및 456-3)를 포함하는 쓰기 커맨드(456)는 시간 t1 이후에 순차적으로 수신될 수 있으며, 페이지(458-0, 458-1, 458-2 및 458-3)를 포함하는 페이지(458)에 대한 쓰기 동작이 쓰기 커맨드(566)의 수신에 응답하여 순차적으로 개시될 수 있다. 카운터가 업데이트되는 동안 또 다른 동작(가령, 읽기 동작)이 또 다른 블록(420-2)에 대해 개시될 수 있다. 예를 들어, 페이지(454-N)와 상이한 파티션(가령, 어드레스 공간)에 할당된 페이지(458-0, 458-2 및 458-3)는 페이지(454-N) 상에서 수행되는 카운터 업데이트 동작과 동시에 읽힐 수 있다.
일부 실시예에서, 페이지(454-N)에 저장된 데이터는 시스템 제어기(110)로 불러와지지 않을 수 있다. 이 예에서, 페이지(454-N) 상에 저장된 데이터를 시스템 제어기(110)에 제공하는 대신, 로직(118)은 시간 t2에서 데이터 버스를 통해 페이지(458-1) 상에 저장되고 이로부터 불러와지는 데이터를 제공할 수 있다. 이와 같이, 페이지(454-N) 상에 저장되는 데이터(예를 들어, 카운터 포함)를 전송하는 것과 연관된 레이턴시가 메모리 디바이스(116)(가령, 블록(420-1 및 420-2)을 포함) 에서의 다수의 메모리 동작을 수행할 때 제거될 수 있다.
도 5는 본 개시의 다수의 실시예에 따른 쓰기 동작 동안 카운터 업데이트 동작을 수행하는 것과 연관된 다이어그램(560)을 도시한다. 도 5에 도시된 이 예에서, 쓰기 동작은 블록(520)(가령, 블록(220)) 상에서 수행되도록 호스트(가령, 호스트(102))에 의해 요청된 동작일 수 있다. 예를 들어, 쓰기 동작을 수행하기 위한 요청이 시스템 제어기(예를 들어, 시스템 제어기(110))에서 수신될 수 있으며, 시스템 제어기는 (가령, 데이터경로 구성요소(114)에 의해) 대응하는 명령을 생성하고 대응하는 커맨드를 제어 로직(가령, 제어 로직(118))으로 전송한다.
도 5에 도시된 바와 같이, 2개의 상이한 블록(520-1 및 520-2)(예를 들어, 블록(520)으로 총칭함)이 도 5에 도시되어 있다. 각각의 블록은 관리 유닛일 수 있고, 다수의 어드레스 공간의 각각의 어드레스 공간이 타 어드레스 공간과 독립적으로 제어될 수 있도록, 다수의 어드레스 공간으로 파티셔닝될 수 있다. 예를 들어, 다수의 동작이 동일한 블록의 페이지들 중에서 동시에 수행될 수 있도록 블록의 각각의 파티셔닝된 어드레스 공간이 (가령, 각각의 블록의) 다수의 페이지의 일부분을 포함할 수 있다. 예를 들어, 커맨드(562-(N-1))에 대응하는 쓰기 동작이 수행되는 동안 제어 로직(118)은 커맨드(562-N)에 대응하는 쓰기 동작을 (가령, 카운터 업데이트 동작과 함께) 개시할 수 있다. 예를 들어, (가령, 블록(420-1)의) 페이지(564-(N-3), 564-(N-2), 564-(N-1) 및 564-N)는 각각 파티션 0, 1, 2 및 3에 할당될 수 있고, 페이지(568-0, 568-1, 568-2 및 568-3)는 각각 파티션 0, 1, 2 및 3에 각각 할당될 수 있다.
블록(520-1)은 페이지(562-(N-1)) 및 페이지(562-N)를 포함하는 다수의 페이지(예를 들어, N+1 페이지)를 포함할 수 있다. 예를 들어, 페이지(562-(N-1))(예를 들어, 복수의 제1 메모리 셀 그룹 중 하나)는 쓰기 커맨드(562-(N-1))를 통해 써질 수 있는(가령, 호스트(102)로 불러와질 수 있는) 사용자 데이터를 포함할 수 있다. 예를 들어, 페이지(562-N)(예를 들어, 제2 메모리 셀 그룹)는 쓰기 커맨드(562-N)를 통해 써질 수 있는 블록(520-1)과 연관된 오버헤드 데이터 및 카운터를 포함할 수 있다. 따라서 카운터 업데이트 동작이 페이지(562-N)에 대해 수행될 수 있다.
도 5에 도시된 이 예에서, 커맨드(562-(N-1) 및 562-N)을 포함하는 쓰기 커맨드(562)간 시간 t3부터 순차적으로 수신될 수 있다. 따라서, 쓰기 커맨드(562)의 수신에 응답하여 시간 t3 이전에 페이지(564-(N-1) 및 564-N)를 포함하는 페이지(564)에 대한 쓰기 동작이 순차적으로 개시될 수 있다.
페이지(564-(N-1))로 향하는 커맨드(562-(N-1))가 시간 t1 이전 뿐 아니라 커맨드(562-N) 이전 어떤 시간에서 (예를 들어, 제어 로직(118)에서) 수신된다. 예를 들어, 커맨드(562-(N-1))는 데이터 패턴(가령, 호스트(102)로부터 수신된 사용자 데이터)뿐 아니라 페이지(562-(N-1)) 상에 저장될 데이터 패턴을 쓰기 위한 명령을 포함할 수 있다. 이와 같이, 제어 로직(118)은 시스템 제어기(110)로부터 (가령, 호스트(102)로부터와 같은) 수신된 데이터 패턴을 페이지(564-(N-1)) 상에 저장함으로써 페이지(564-(N-1)) 상에서의 쓰기 동작을 수행할 수 있다.
페이지(564-N)로 향하는 커맨드(562-N)가 시간 t1에서 (예를 들어, 제어 로직(118)에서) 수신된다. 예를 들어, 커맨드(562-N)는 데이터 패턴(가령, 호스트(102)로부터 수신된 데이터 오버헤드)뿐 아니라 페이지(562-N) 상에 저장될 데이터 패턴까지 쓰기 위한 명령을 포함할 수 있다. 시간 t2의 데이터 패턴 수신에 응답하여, 제어 로직(118)은 시간 t2에서 시간 t4까지, 페이지(562-N)로 수신된 데이터 패턴을 쓰는 것에 추가로(가령, 이와 함께) 페이지(562-N) 상에 저장된 카운터를 업데이트할 수 있다.
이와 같이, 제어 로직(118)은 개별적인 쓰기 동작에 의해(예를 들어, 시간 t2에서 시간 t4까지 수행되는 쓰기 동작에 의해) 카운터를 업데이트하고 데이터를 쓸 수 있다. 따라서 쓰기 동작 동안 카운터를 업데이트하기 위해 개별 동작, 가령, 카운터 업데이트 동작이 필요하지 않을 수 있다. 달리 말하면, 카운터 업데이트 동작은 페이지(564-N) 상에서 수행되는 쓰기 동작 내에 임베드될 수 있다.
도 5에 도시된 이 예에서, 커맨드(566-0, ..., 566-5)를 포함하는 쓰기 커맨드(566)는 시간 t3부터 순차적으로 수신될 수 있으며, 페이지(568-0, ..., 568-3)를 포함하는 페이지(568) 상의 쓰기 동작이 쓰기 커맨드(566)의 수신에 응답하여 시간 t3에서부터 순차적으로 개시될 수 있다. 쓰기 동작이 페이지(564-N) 상에서 수행되는 동안 다른 동작(가령, 쓰기 작업)이 또 다른 블록(520-2) 상에서 개시될 수 있다. 예를 들어, 쓰기 동작이 페이지(564-N) 상에서 수행되는 동안, (예를 들어, 블록(520-2)으로 써지도록 요청된) 데이터 패턴이 페이지(564-N)(가령, 파티션 3)와 상이한 파티션(가령, 파티션 0 및 파티션 1)으로 할당되는 페이지(568-0 및 568-1)로 써질 수 있다. 데이터 패턴은 각각 쓰기 커맨드(566-2 및 566-3)의 수신에 응답하여 페이지(568-2)로(예를 들어, 시간 t4에서) 그리고 페이지(568-3)로(예를 들어, 시간 t5에서) 써지도록 개시될 수 있다.
일부 실시예에서, 쓰기 동작은 읽기-수정-쓰기(RMW) 동작으로 지칭될 수 있는 동작을 포함할 수 있다. 예를 들어, 데이터 패턴을 페이지에 쓰는 것은 메모리 셀의 어레이로부터 데이터의 전체 페이지를 읽는 것, 상기 페이지를 새로운 데이터 패턴으로 업데이트하는 것, 및 그런 다음 업데이트된 페이지를 메모리 셀의 어레이로 다시 쓰는 것을 포함할 수 있다. 이와 같이 RMW 동작의 일부로 수행될 수 있는 읽기 동작은, 동일한 읽기-수정-쓰기 동작의 읽기 동작과 쓰기 동작이 개별 동작에 의해 수행되도록 하는 RMW 동작의 고유 동작이다. 따라서, 도 5에 도시된 쓰기 동작은 쓰기 동작이 RMW 동작인 경우 쓰기 동작과 별개인 읽기 동작을 필요로 하지 않을 수 있다. 일부 실시예에서, 카운터를 업데이트하는 것은 쓰기 동작 동안 변경될 상태를 갖는 페이지의 셀에만 쓰기 신호를 인가하는 것을 포함할 수 있다.
특정 실시예가 본 명세서에서 도시되고 기재되었지만, 해당 분야의 통상의 기술자라면, 동일한 결과를 얻도록 계산된 배열이 도시된 특정 실시예를 대체할 수 있음을 알 것이다. 본 발명은 본 명세서의 복수의 실시예의 각색 또는 변형을 포함한다. 상기 기재는 한정이 아닌 예시로서 기재되었음이 이해되어야 한다. 상기 실시예 및 본 명세서에 특정하게 기재되지 않은 그 밖의 다른 실시예의 조합이, 상기의 기재를 읽은 해당 분야의 통상의 기술자에게 자명할 것이다. 본 발명의 복수의 실시예의 범위가 상기의 구조 및 방법이 사용되는 그 밖의 다른 적용예를 포함한다. 따라서 본 발명의 복수의 실시예의 범위는 이하의 청구항 및 이러한 청구항의 균등물의 전체 범위까지 참조하여 결정되어야 한다.
지금까지의 상세한 설명에서, 어떤 특징들은 본 발명을 간략화하는 목적으로 단일 실시예로 함께 그룹지어진다. 이 개시 방법은 본 발명의 개시된 실시예가 각각의 청구항에서 명시적으로 언급된 것보다 더 많은 특징을 이용해야 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 이하의 청구항이 반영하듯이, 본 발명의 주제 사항은 단일 개시된 실시예의 모든 특징들보다 적게 이뤄진다. 따라서 이하의 청구항은 발명의 상세한 설명에 포함되며, 각각의 청구항는 그 차체가 개별 실시예로서 나타난다.

Claims (23)

  1. 장치로서,
    관리 유닛을 포함하는 메모리 - 상기 관리 유닛은 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹을 포함하며, 관리 유닛과 연관된 각자의 카운터는 제2 메모리 셀 그룹 상에 저장됨 - , 및
    호스트로부터 수신된 메모리 동작 요청을 라우팅하도록 구성된 코어, 및
    상기 코어 및 메모리에 연결된 데이터경로 - 상기 데이터경로는, 코어로부터 라우팅된 메모리 동작 요청의 수신에 응답하여, 라우팅된 메모리 동작 요청과 연관된 복수의 커맨드를 메모리로 발행하여 복수의 제1 메모리 셀 그룹 상에서 대응하는 메모리 동작을 수행하게 하고, 각자의 카운터는 복수의 커맨드에 독립적으로 업데이트됨 -
    를 포함하는 제어기
    를 포함하는, 장치.
  2. 제1항에 있어서, 상기 데이터경로로부터 발행된 복수의 커맨드는 메모리가 각자의 카운터를 업데이트하게 하는 명령(instruction)이 없는, 장치.
  3. 제1항에 있어서, 데이터경로는 데이터 버스를 통해 메모리로 연결되며, 각자의 카운터는 각자의 카운터가 데이터 버스를 통해 데이터경로로 다시 전송되지 않고 업데이트되는, 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 논리-물리 어드레스 테이블(logical to physical address table)이 각자의 카운터와 함께 제2 메모리 셀 그룹 상에 저장되는, 장치.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 메타데이터가 각자의 카운터와 함께 제2 메모리 셀 그룹 상에 저장되는, 장치.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서, 각자의 카운터는
    복수의 제1 메모리 셀 그룹이 읽힐 때마다 증분되는 값을 갖는 읽기 카운터, 및
    복수의 제1 메모리 셀 그룹이 프로그램될 때마다 증분되는 값을 갖는 쓰기 카운터
    중 적어도 하나를 포함하는, 장치.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 복수의 제1 메모리 셀 그룹 및 상기 제2 메모리 셀 그룹은 비휘발성 메모리 셀인, 장치.
  8. 장치로서,
    호스트로 연결되고 상기 호스트로부터 수신된 메모리 동작 요청에 대응하는 복수의 커맨드를 발행하도록 구성된 시스템 제어기, 및
    상기 시스템 제어기에 연결되며 관리 유닛을 포함하는 메모리 디바이스 - 상기 관리 유닛은 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹을 포함하고, 상기 관리 유닛과 연관된 각자의 카운터가 제2 메모리 셀 그룹 상에 저장됨 -
    를 포함하며,
    상기 메모리 디바이스는, 제어 로직을 통해,
    시스템 제어기로부터 복수의 커맨드를 수신하고,
    복수의 커맨드의 수신에 응답하여, 관리 유닛 상에서 대응하는 메모리 동작을 수행하고,
    제2 메모리 셀 그룹 상에 저장된 각자의 카운터가 복수의 제1 메모리 셀 그룹 상에서 수행되는 대응하는 메모리 동작에 따라 업데이트되도록, 복수의 커맨드에 독립적으로, 제2 메모리 셀 그룹 상에서 카운터 업데이트 동작을 수행하도록 구성되는, 장치.
  9. 제8항에 있어서, 복수의 커맨드는 제어 로직이 복수의 제1 메모리 셀 그룹 상에서 대응하는 메모리 동작을 수행하게 하는 명령을 포함하는 반면에, 복수의 커맨드는 제어 로직이 제2 메모리 셀 그룹 상에서 카운터 업데이트 동작을 수행하게 하는 명령이 없는, 장치.
  10. 제8항에 있어서, 제어 로직은 시스템 제어기가 제어 로직이 카운터 업데이트 동작을 수행하게 하지 않음에도 불구하고 카운터 업데이트 동작을 수행하도록 구성되는, 장치.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서, 시스템 제어기는 물리 PCIe(Peripheral Component Interconnect Express) 커맨드 경로를 통해 호스트로 연결되는, 장치.
  12. 제8항 내지 제10항 중 어느 한 항에 있어서, 시스템 제어기는 NVMe(Non-Volatile Memory Express) 제어기를 포함하는, 장치.
  13. 제8항 내지 제10항 중 어느 한 항에 있어서, 제어 로직은 메모리 디바이스 내부에 있고, 복수의 커맨드는 메모리 인터페이스를 통해 시스템 제어기로부터 수신되는, 장치.
  14. 장치로서,
    시스템 제어기 - 상기 시스템 제어기는
    관리 유닛을 포함하는 메모리 디바이스 상에서 메모리 동작을 수행하기 위한 요청을 호스트로부터 수신하도록 구성된 코어 -
    상기 관리 유닛은 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹을 포함하고,
    제2 메모리 셀 그룹은 관리 유닛과 연관된 각자의 카운터를 포함함 - , 및
    상기 코어로부터, 메모리 동작을 수행하기 위한 라우팅된 요청을 수신하고,
    메모리로 발행되도록, 라우팅된 요청 중 대응하는 것과 각각 연관된 복수의 커맨드를 시퀀싱하도록
    구성된 데이터경로
    를 포함하며,
    상기 데이터경로는, 코어로부터 수신된 특정 라우팅된 요청에 응답하여, 메모리 디바이스로 특정 라우팅된 요청에 대응하는 복수의 커맨드를 발행하도록 더 구성되며,
    상기 메모리 디바이스는, 제어 로직을 통해,
    수신된 복수의 커맨드에 의해 명령될 때 관리 유닛 상에서 메모리 동작을 수행하며,
    수신된 복수의 커맨드와 독립적으로, 제2 메모리 셀 그룹 상에 저장된 각자의 카운터에 대해 카운터 업데이트 동작을 수행하도록 구성되는, 장치.
  15. 제14항에 있어서, 메모리 동작 및 카운터 업데이트 동작은, 데이터경로로부터 라운팅된 요청인, 개별 요청에 응답하여 함께 수행되는, 장치.
  16. 제14항에 있어서, 업데이트된 각자의 카운터는 데이터경로로 다시 전송되지 않는, 장치.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서, 메모리 동작은 읽기-수정-쓰기 동작이며, 동일한 읽기-수정-쓰기 동작의 읽기 동작 및 쓰기 동작은 개별 동작에 의해 수행되도록 관리 유닛 상에서 수행되는 읽기 동작은 읽기-수정-쓰기 동작의 고유 동작인, 장치.
  18. 방법으로서,
    호스트에 연결된 시스템 제어기로부터, 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹을 포함하는 관리 유닛으로 향하는 복수의 커맨드를 수신하는 단계 - 상기 시스템은 호스트로부터 메모리 동작 요청을 수신하고 상기 메모리 동작 요청에 대응하는 커맨드를 발행함 - ,
    복수의 커맨드의 수신에 응답하여, 복수의 제1 메모리 셀 그룹 및 제2 메모리 셀 그룹 상에서 복수의 커맨드에 대응하는 메모리 동작을 수행하는 단계, 및
    복수의 커맨드에 독립적으로, 제2 메모리 셀 그룹 상에서 카운터 업데이트 동작을 수행하는 단계
    를 포함하는, 방법.
  19. 제18항에 있어서, 복수의 커맨드에 독립적으로, 카운터 동작을 수행하는 단계는 임계 값에 도달될 때까지, 각자의 카운터의 값을 증분시키는 단계를 포함하는, 방법.
  20. 제18항에 있어서, 복수의 커맨드에 독립적으로, 카운터 업데이트 동작을 수행하는 단계는 각자의 카운터의 값을 감분시키는 단계를 포함하는, 방법.
  21. 제18항에 있어서, 복수의 커맨드에 독립적으로, 카운터 업데이트 동작을 수행하는 단계는 각자의 카운터의 값이 임계 값에 도달함을 결정한 것에 응답하여, 재설정된 값이 초기 값으로 조절되도록 각자의 카운터의 값을 재설정하는 단계를 포함하는, 방법.
  22. 제18항에 있어서, 복수의 커맨드에 독립적으로, 카운터 업데이트 동작을 수행하는 단계는 각자의 카운터 중 하나가 임계 값에 도달했을 때 시스템 제어기에게 알리는 단계를 포함하는, 방법.
  23. 제18항에 있어서, 복수의 커맨드에 독립적으로, 카운터 업데이트 동작을 수행하는 단계는 카운터 업데이트 동작에 의해 변경될 상태를 갖는 제2 그룹의 셀들에게만 쓰기 신호를 적용하는 단계를 포함하는, 방법.
KR1020207033102A 2018-04-20 2019-03-27 카운터 업데이트 동작을 위한 장치 및 방법 KR20200135549A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/958,614 2018-04-20
US15/958,614 US10719248B2 (en) 2018-04-20 2018-04-20 Apparatuses and methods for counter update operations
PCT/US2019/024201 WO2019203995A1 (en) 2018-04-20 2019-03-27 Apparatuses and methods for counter update operations

Publications (1)

Publication Number Publication Date
KR20200135549A true KR20200135549A (ko) 2020-12-02

Family

ID=68235969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207033102A KR20200135549A (ko) 2018-04-20 2019-03-27 카운터 업데이트 동작을 위한 장치 및 방법

Country Status (7)

Country Link
US (3) US10719248B2 (ko)
EP (1) EP3782016A4 (ko)
JP (1) JP2021522567A (ko)
KR (1) KR20200135549A (ko)
CN (1) CN111989646A (ko)
TW (1) TWI709074B (ko)
WO (1) WO2019203995A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366763B2 (en) * 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
US11194503B2 (en) 2020-03-11 2021-12-07 Samsung Electronics Co., Ltd. Storage device having a configurable command response trigger
US20230342314A1 (en) * 2020-09-14 2023-10-26 Google Llc Memory Request Timeouts Using a Common Counter
KR102253362B1 (ko) 2020-09-22 2021-05-20 쿠팡 주식회사 전자 장치 및 이를 이용한 정보 제공 방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559975A (en) 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
JPH11259370A (ja) * 1998-03-06 1999-09-24 Mitsubishi Electric Corp データ書込装置及びデータ書込方法
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7304942B1 (en) 2002-11-15 2007-12-04 Cisco Technology, Inc. Methods and apparatus for maintaining statistic counters and updating a secondary counter storage via a queue for reducing or eliminating overflow of the counters
US7089349B2 (en) * 2003-10-28 2006-08-08 Sandisk Corporation Internal maintenance schedule request for non-volatile memory system
KR100606242B1 (ko) 2004-01-30 2006-07-31 삼성전자주식회사 불휘발성 메모리와 호스트간에 버퍼링 동작을 수행하는멀티 포트 휘발성 메모리 장치, 이를 이용한 멀티-칩패키지 반도체 장치 및 이를 이용한 데이터 처리장치
US7391721B1 (en) 2004-07-08 2008-06-24 Cisco Technology, Inc. Maintaining counters and updating a secondary counter storage
US20070150644A1 (en) 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US20070150664A1 (en) * 2005-12-28 2007-06-28 Chris Dombrowski System and method for default data forwarding coherent caching agent
US7467253B2 (en) 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems
JP2009003880A (ja) * 2007-06-25 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及びその制御方法及び記憶装置
US7937521B2 (en) * 2008-01-29 2011-05-03 Cadence Design Systems, Inc. Read disturbance management in a non-volatile memory system
JP5528011B2 (ja) * 2008-10-30 2014-06-25 京セラ株式会社 電子機器及び電子機器の制御方法
KR101033465B1 (ko) * 2008-12-30 2011-05-09 주식회사 하이닉스반도체 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법
JP2011186553A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
US9257169B2 (en) * 2012-05-14 2016-02-09 Samsung Electronics Co., Ltd. Memory device, memory system, and operating methods thereof
CN102799392B (zh) * 2012-06-16 2015-12-16 北京忆恒创源科技有限公司 存储设备及其中断控制方法
WO2014065774A1 (en) * 2012-10-22 2014-05-01 Hewlett-Packard Development Company, L.P. Refreshing a group of memory cells in response to presence of potential disturbance
KR102200489B1 (ko) 2014-05-30 2021-01-11 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치
JP6423282B2 (ja) * 2015-02-18 2018-11-14 ラピスセミコンダクタ株式会社 メモリ制御装置及びメモリ制御方法
US9804795B2 (en) * 2015-09-09 2017-10-31 Toshiba Memory Corporation Memory system and controller
US10019360B2 (en) 2015-09-26 2018-07-10 Intel Corporation Hardware predictor using a cache line demotion instruction to reduce performance inversion in core-to-core data transfers
US10078588B2 (en) * 2016-03-25 2018-09-18 Advanced Micro Devices, Inc. Using leases for entries in a translation lookaside buffer
US10019198B2 (en) * 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10402314B2 (en) * 2016-05-16 2019-09-03 SK Hynix Inc. Self-management memory system and operating method thereof
US10566048B2 (en) * 2017-11-13 2020-02-18 Western Digital Technologies, Inc. Managing refresh operations for a memory device

Also Published As

Publication number Publication date
EP3782016A1 (en) 2021-02-24
US20200319809A1 (en) 2020-10-08
TWI709074B (zh) 2020-11-01
US10719248B2 (en) 2020-07-21
CN111989646A (zh) 2020-11-24
TW202006530A (zh) 2020-02-01
US20210263661A1 (en) 2021-08-26
JP2021522567A (ja) 2021-08-30
US11055000B2 (en) 2021-07-06
WO2019203995A1 (en) 2019-10-24
EP3782016A4 (en) 2022-04-06
US20190324672A1 (en) 2019-10-24

Similar Documents

Publication Publication Date Title
US20200233585A1 (en) Data relocation in hybrid memory
KR102569783B1 (ko) 비순차적 구역 네임스페이스들
US10430330B2 (en) Handling of unaligned sequential writes
US11055000B2 (en) Apparatuses and methods for counter update operations
US20210019052A1 (en) Data relocation in memory
CN114442915A (zh) 存储器系统以及操作其中所包括的存储器控制器的方法
KR20200139913A (ko) 메모리 시스템, 메모리 컨트롤러 및 메타 정보 저장 장치
US20230221895A1 (en) Memory system and operating method of memory system storing doorbell information in the buffer memory
CN114115708A (zh) 存储装置及其操作方法
KR20210128780A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11194708B2 (en) Data relocation in memory having two portions of data
KR20220130526A (ko) 메모리 시스템 및 그 동작 방법
KR20210054396A (ko) 저장 장치 및 그 동작 방법
US20240069782A1 (en) Storage device including nonvolatile memory device and operating method of storage device
US20240004566A1 (en) Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system
US20240078027A1 (en) Storage device including nonvolatile memory device and operating method of storage device
US20230103515A1 (en) Memory system and operating method of memory system
US20230152996A1 (en) Memory system executing background operation using external device and operation method thereof
KR20230018873A (ko) 메모리 시스템 및 그 동작 방법
KR20220117998A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)