KR20200124728A - 데이터 블록들에 관한 다른 동작의 수행율에 기초한 데이터 블록들에 관한 동작의 동시 수행 - Google Patents
데이터 블록들에 관한 다른 동작의 수행율에 기초한 데이터 블록들에 관한 동작의 동시 수행 Download PDFInfo
- Publication number
- KR20200124728A KR20200124728A KR1020207027778A KR20207027778A KR20200124728A KR 20200124728 A KR20200124728 A KR 20200124728A KR 1020207027778 A KR1020207027778 A KR 1020207027778A KR 20207027778 A KR20207027778 A KR 20207027778A KR 20200124728 A KR20200124728 A KR 20200124728A
- Authority
- KR
- South Korea
- Prior art keywords
- data blocks
- data
- performance rate
- rate
- processing device
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims description 71
- 238000000034 method Methods 0.000 claims description 30
- 230000009471 action Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 43
- 230000000875 corresponding effect Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
Abstract
복수의 데이터 블록의 제1 부분에 관해 제1 동작이 수행된다. 상기 복수의 데이터 블록과 연관된 제2 동작을 수행하라는 요청이 수신된다. 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 수행율이 결정된다. 상기 복수의 데이터 블록의 제2 부분에 관한 상기 제2 동작은 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초하여 수행된다.
Description
본 개시는 개괄적으로 저장 시스템, 보다 구체적으로는 데이터 블록들에 관한 다른 동작의 수행율에 기초한 데이터 블록들에 관한 동작의 동시 수행에 관한 것이다.
저장 시스템(예를 들어, 고체 상태 드라이브)은 데이터를 저장하는 하나 이상의 메모리 구성요소를 포함할 수 있다. 예를 들어, 저장 시스템은 비휘발성 메모리 디바이스들과 같은 메모리 디바이스들을 포함할 수 있다. 저장 시스템은 메모리 디바이스들 각각을 관리하고 메모리 디바이스들에 저장될 데이터를 할당할 수 있는 제어기를 더 포함할 수 있다. 호스트 시스템은 저장 시스템을 이용하고 저장 시스템으로부터 데이터를 요청할 수 있다. 제어기는 대응하는 메모리 디바이스들로부터 데이터를 검색하고 검색된 데이터를 호스트 시스템에 리턴하는데 사용될 수 있다.
본 개시는 아래에 제공되는 구체적인 내용 및 본 개시의 다양한 구현의 첨부 도면들로부터 보다 충분히 이해될 것이다.
도 1은 본 개시의 일부 실시 예에 따른 저장 시스템을 포함하는 예시적인 컴퓨팅 환경을 도시한다.
도 2는 본 개시의 일부 실시 예에 따른 소거 동작의 수행율에 기초하여 기록 동작을 수행하기 위한 예시적인 방법의 흐름도이다.
도 3은 본 개시의 일부 실시 예에 따른 소거 동작의 수행율에 기초하여 기록 동작의 수행율을 조정하기 위한 예시적인 방법의 흐름도이다.
도 4는 본 개시의 일부 실시 예에 따른 저장 시스템의 복수의 데이터 블록에 관한 동작들을 수행하는 일례를 도시한다.
도 5는 본 개시의 구현들이 동작할 수 있는 예시적인 컴퓨터 시스템의 블록도이다.
도 1은 본 개시의 일부 실시 예에 따른 저장 시스템을 포함하는 예시적인 컴퓨팅 환경을 도시한다.
도 2는 본 개시의 일부 실시 예에 따른 소거 동작의 수행율에 기초하여 기록 동작을 수행하기 위한 예시적인 방법의 흐름도이다.
도 3은 본 개시의 일부 실시 예에 따른 소거 동작의 수행율에 기초하여 기록 동작의 수행율을 조정하기 위한 예시적인 방법의 흐름도이다.
도 4는 본 개시의 일부 실시 예에 따른 저장 시스템의 복수의 데이터 블록에 관한 동작들을 수행하는 일례를 도시한다.
도 5는 본 개시의 구현들이 동작할 수 있는 예시적인 컴퓨터 시스템의 블록도이다.
본 개시의 양태들은 데이터 블록들에 관한 다른 동작의 수행율에 기초한 데이터 블록들에 관한 동작의 동시 수행에 관한 것이다. 일반적으로, 호스트 시스템은 하나 이상의 메모리 디바이스를 포함하는 저장 시스템을 이용할 수 있다. 저장 시스템의 일례는 고체 상태 드라이브(SSD)이다. 호스트 시스템은 저장 시스템에 저장될 데이터를 제공할 수 있다. 데이터는 저장되고 저장 시스템 내 메모리 디바이스들로부터 검색될 수 있다. 데이터는 또한 저장 시스템 내 메모리 디바이스들로부터 소거될 수 있다.
저장 시스템은 하나 이상의 메모리 디바이스(예를 들어, 비휘발성 메모리 디바이스들)를 포함할 수 있다. 호스트 시스템은 저장 시스템에 비휘발성 메모리에 관한 동작을 수행할 것을 지시할 수 있다. 예를 들어, 호스트 시스템은 저장 시스템에 저장 시스템에 데이터를 저장하기 위한 기록 동작을 수행하거나, 저장 시스템에 저장된 데이터를 검색하기 위한 판독 동작을 수행하거나, 또는 저장 시스템에 저장된 데이터를 제거하기 위한 소거 동작을 수행할 것을 지시할 수 있다. 그 다음 저장 시스템은 지정된 동작과 연관된 대응하는 데이터를 식별하고 대응하는 메모리 디바이스에서 지정된 동작을 수행할 수 있다.
일반적으로, 메모리 디바이스에 저장된 데이터에 관해 소거 동작이 수행될 때, 메모리 디바이스의 전체 메모리 셀에 관해 소거 동작이 수행될 수 있다. 반대로, 기록 동작 또는 판독 동작은 메모리 셀의 일 부분에 관해 수행될 수 있다. 그에 따라, SSD에 관해 소거 동작을 수행하는 것은 통상적으로 기록 동작보다 수행하는데 더 오랜 시간이 걸릴 수 있다. 또한, 메모리 디바이스에 관한 기록 동작의 수행은 판독 동작을 포함할 수 있다. 예를 들어, 데이터가 메모리 디바이스에 저장을 위해 제공되면, 데이터가 메모리 디바이스에 올바르게 저장되었음을 검증하기 위해 판독 동작이 수행될 수 있다.
저장 시스템이 동작(예를 들어, 기록, 판독, 소거)을 수행하고 있는 동안, 저장 시스템은 호스트 시스템으로부터 다른 동작(예를 들어, 기록, 판독, 소거)을 수행하기 위한 다른 명령을 수신할 수 있다. 기존 저장 시스템이 동작을 수행하고 있고 다른 동작을 수행하라는 다른 명령을 수신할 때, 기존 저장 시스템은 저장 시스템에 데이터를 저장하고 저장 시스템에 저장된 데이터를 검색하는 시간을 줄이기 위해 현재 동작을 중단하고 새로 요청된 동작을 수행할 수 있다. 예를 들어, 기존 저장 시스템은 저장 시스템의 데이터 블록 그룹에서 소거 동작을 수행하고 있고, 소거 동작에 사용되는 데이터 블록 그룹의 특정 데이터 블록에 기록 동작을 수행하라는 명령을 수신할 수 있다. 기존 저장 시스템은 데이터 블록 그룹에서 소거 동작을 중단하고, 특정 데이터 블록에 기록 동작을 수행한 다음, 데이터 블록 그룹에서 소거 동작을 재개할 수 있다. 유사하게, 기존 저장 시스템은 저장 시스템의 데이터 블록 그룹에 기록 동작을 수행하고 있을 수 있고, 기록 동작에 사용되는 데이터 블록 그룹에서 판독 동작을 수행하라는 명령을 수신할 수 있다. 기존 저장 시스템은 기록 동작을 중단하고, 데이터 블록 그룹에서 판독 동작을 수행한 다음, 데이터 블록 그룹에 기록 동작을 재개할 수 있다.
새로운 명령들이 수신됨에 따라, 기존 저장 시스템들은 계속해서 현재 동작을 중단하고, 새로 요청된 동작을 수행하며, 새로 요청된 동작이 완료될 때 현재 동작을 재개할 수 있으며, 이로 인해 여러 중첩 동작이 발생할 수 있다. 예를 들어, 소거 동작 및 기록 동작 양자가 중단되면 일반적으로 판독 동작을 수행하기 위해 여러 동작이 동시에 중단되는 중첩 중단 상황이 발생한다. 예를 들어, 저장 시스템이 소거 동작을 수행하고 있는 동안, 저장 시스템은 기록 동작을 수행하라는 명령을 수신할 수 있다. 그 다음 저장 시스템은 소거 동작을 중단하고 기록 동작을 수행하기 시작한다. 기록 동작을 수행하는 동안, 저장 시스템은 판독 동작을 수행하라는 제2 명령을 수신할 수 있고, 기록 동작을 중단하고 판독 동작을 수행할 수 있다. 그 다음, 판독 동작이 완료되면, 저장 시스템은 기록 동작을 재개하고, 기록 동작이 완료되면, 저장 시스템은 소거 동작을 재개할 수 있다. 그러한 상황은 저장 시스템 펌웨어에서 데이터 블록 그룹에 긴 명령 시퀀스를 수행하여, 저장 시스템의 레이턴시와 오버헤드를 증가시킬 수 있다.
본 개시의 양태들은 하나 이상의 데이터 블록에 관해 수행되는 소거 동작의 비율에 기초하여 기록 동작을 수행함으로써 상기한 그리고 다른 결점들을 해결한다. 본 개시는 저장 시스템의 데이터 블록들을 다중 부분으로 나누는 것을 설명한다. 기록 동작 및/또는 소거 동작과 연관된 데이터는 데이터 블록들의 하나 이상의 부분에 저장될 수 있다. 예를 들어, 저장 시스템은 데이터 블록들의 세 개의 상이한 부분에 현재 저장된 데이터를 소거하기 위한 소거 동작을 수행하라는 요청을 수신할 수 있다. 저장 시스템은 또한 데이터 블록들의 세 개의 상이한 부분에 데이터를 저장하기 위한 기록 동작을 수행하라는 요청을 수신할 수 있다.
본 개시는 데이터 블록들의 상이한 부분들을 사용하여 어떠한 동작들(예를 들어, 소거, 기록)도 중단할 필요없이 동시에 여러 동작(예를 들어, 소거, 기록)을 수행하는 것을 설명한다. 예를 들어, 저장 시스템이 복수의 데이터 블록의 제1 부분에 관해 소거 동작을 수행하고 있을 때 저장 시스템은 기록 동작을 수행하라는 명령을 수신할 수 있다. 저장 시스템은 데이터 블록들의 제1 부분에 관해 소거 동작을 수행하는 동안 데이터 블록들의 제2 부분에 관해 기록 동작을 수행할 수 있다. 따라서, 소거 동작의 수행을 중단하지 않고 데이터 블록 그룹의 다른 부분에 관해 소거 동작이 수행되는 동시에 데이터 블록 그룹의 상이한 부분에 관해 기록 동작이 수행될 수 있다.
동일한 수의 데이터 블록 또는 메모리 셀에 관해 각각의 동작을 수행할 때 소거 동작이 기록 동작보다 프로그래밍 시간이 더 길 수 있기 때문에, 제어기는 기록 동작의 속도를 소거 동작의 속도에 대응하도록 조정할 수 있다. 예를 들어, 소거 동작이 초당 50 메가바이트(MB/s)의 비율을 가지면, 저장 시스템은 기록 동작 비율을 50 MB/s로 조정할 수 있다. 제2 부분에 관한 기록 동작의 비율을 제1 부분에 관한 소거 동작에 대응하도록 조정하면 제2 부분에 관한 기록 동작의 완료되기 전에 소거 동작이 완료될 수 있다. 제1 부분에 관해 소거 동작이 완료되었을 때, 제2 부분에 데이터를 제공하는 기록 동작이 완료되면 제1 부분에 데이터를 제공하기 위한 기록 동작이 진행될 수 있다. 기록 동작의 비율을 소거 동작에 대응하도록 조정함으로써, 소거 동작을 중단하지 않고 제1 부분에 관한 소거 동작과 동시에 제2 부분에 관한 기록 동작이 수행될 수 있다.
그에 따라, 데이터 블록들에 관해 수행되는 소거 동작의 비율에 기초하여 기록 동작을 수행하면 중첩 중단 동작들의 발생을 방지함으로써 저장 시스템의 수행을 개선할 수 있다. 기록 동작의 수행율을 소거 동작의 수행율에 대응하도록 조정함으로써, 기록 동작 및 소거 동작은 메모리 디바이스의 상이한 부분들에 관해 동시에 수행될 수 있다. 이는 기록 동작 및 소거 동작이 순차적으로 수행되는 경우보다 더 짧은 시간량에 기록 동작 및 소거 동작 양자를 완료할 수 있다. 또한, 소거 동작의 비율에 기초하여 기록 동작을 수행하면 기록 동작에 대응하는 입력이 수신될 때 소거 동작이 중단되는 것을 방지할 수 있다. 결과적으로, 저장 시스템의 레이턴시를 줄이고 오버헤드를 줄임으로써 저장 시스템의 성능이 개선될 수 있다.
도 1은 본 개시의 일부 실시 예에 따른 저장 시스템(110)을 포함하는 예시적인 컴퓨팅 환경(100)을 도시한다. 저장 시스템(110)의 일례는 고체 상태 드라이브(SSD)이다. 일반적으로, 컴퓨팅 환경(100)은 저장 시스템(110)을 사용하는 호스트 시스템(120)을 포함할 수 있다. 예를 들어, 호스트 시스템(120)은 저장 시스템(110)에 데이터를 기록하고 저장 시스템(110)으로부터 데이터를 판독할 수 있다.
호스트 시스템(120)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 네트워크 서버, 모바일 디바이스와 같은 컴퓨팅 디바이스, 또는 메모리 및 프로세싱 디바이스를 포함하는 그러한 컴퓨팅 디바이스일 수 있다. 호스트 시스템(120)은 호스트 시스템(120)이 저장 시스템(110)으로부터 데이터를 판독하거나 이에 데이터를 기록할 수 있도록 저장 시스템(110)을 포함하거나 이에 연결될 수 있다. 호스트 시스템(120)은 물리적 호스트 인터페이스를 통해 저장 시스템(110)에 연결될 수 있다. 여기서 사용될 때, "~에 연결(coupled to)"은 일반적으로 유선이든 무선이든, 전기적, 광학적, 자기적 등을 비롯한 간접 통신 연결 또는 직접 통신 연결일 수 있는 구성요소들 간 연결을 지칭한다. 물리적 호트 인터페이스의 예들은 SATA(Serial Advanced Technology Attachment) 인터페이스, PCIe(Peripheral Component Interconnect Express) 인터페이스, USB(Universal Serial Bus) 인터페이스, 파이버 채널, 직렬 접속 SCSI(SAS) 등을 포함하나, 이에 제한되지는 않는다. 물리적 호스트 인터페이스는 호스트 시스템(120)과 저장 시스템(110) 간에 데이터를 전송하는데 사용될 수 있다. 호스트 시스템(120)은 또한 NVMe(NVM Express) 인터페이스를 더 이용하여 저장 시스템(110)이 PCIe 인터페이스에 의해 호스트 시스템(120)과 접속될 때 메모리 디바이스들(112A 내지 112N)에 액세스할 수 있다. 인터페이스는 저장 시스템(110)과 호스트 시스템(120) 간에 제어, 어드레스, 데이터 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다.
도 1에 도시된 바와 같이, 저장 시스템(110)은 제어기(111) 및 메모리 디바이스들(112A 내지 112N)을 포함할 수 있다. 일부 실시 예에서, 메모리 디바이스들(112A 내지 112N)은 비휘발성 메모리에 기초한다. 예를 들어, 메모리 디바이스들(112A 내지 112N)은 부정 곱(NAND) 타입 플래시 메모리일 수 있다. 메모리 디바이스들(112A 내지 112N) 각각은 단일 레벨 셀들(SLC들) 또는 다중 레벨 셀들(MLC들)(예를 들어, 삼중 레벨 셀들(TLC들) 또는 사중 레벨 셀들(QLC들))과 같은 메모리 셀들의 하나 이상의 메모리 셀 어레이를 포함할 수 있다. 일부 실시 예에서, 특정 메모리 디바이스는 SLC 메모리 셀들 및 MLC 메모리 셀들 양자를 포함한다. 메모리 셀들 각각은 호스트 시스템(120)에 의해 사용되는 하나 이상의 비트의 데이터(예를 들어, 데이터 블록)를 저장할 수 있다. NAND형 플래시 메모리와 같은 비휘발성 메모리 디바이스들이 설명되지만, 메모리 디바이스들(112A 내지 112N)은 임의의 다른 유형의 비휘발성 메모리 또는 휘발성 메모리에 기초할 수 있다. 예를 들어, 메모리 디바이스들(112A 내지 112N)은 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 상 변화 메모리(PCM), 마그네토 랜덤 액세스 메모리(MRAM, magneto random access memory), NOR(negative-or) 플래시 메모리, 전기 소거 가능 프로그램 가능한 판독 전용 메모리(EEPROM) 및 비휘발성 메모리 셀들의 교차점 어레이일 수 있으나, 이에 제한되지는 않는다. 메모리 디바이스들(112A 내지 112N)은 상이한 유형들의 비휘발성 메모리 또는 휘발성 메모리의 임의의 조합을 포함할 수 있다. 또한, 메모리 디바이스들(112A 내지 112N)의 메모리 셀들은 데이터를 저장하는 데 사용되는 메모리 디바이스의 단위를 지칭할 수 있는 메모리 페이지들 또는 데이터 블록들로 그룹화될 수 있다.
제어기(111)는 메모리 디바이스들(112A 내지 112N)과 통신하여 메모리 디바이스들(112A 내지 112N)에서의 데이터 판독, 데이터 기록 또는 데이터 소거와 같은 동작들 및 다른 그러한 동작들을 수행할 수 있다. 또한, 제어기(111)는 하드웨어 이를테면 하나 이상의 집적 회로 및/또는 이산 구성요소, 프로세싱 디바이스, 버퍼 메모리, 소프트웨어 이를테면 펌웨어 또는 다른 명령들, 또는 이들의 조합을 포함할 수 있다. 일반적으로, 제어기(111)는 호스트 시스템(120)으로부터 명령들 또는 동작들을 수신할 수 있고 명령들 또는 동작들을 지시들 또는 적절한 명령들로 변환하여 메모리 디바이스들(112A 내지 112N)에 대한 요구되는 액세스를 달성할 수 있다. 제어기(111)는 메모리 디바이스들(112A 내지 112N)과 연관된 웨어 레벨링 동작들, 가비지 수집 동작들, 오류 검출 및 오류 정정 코드(ECC, error-correcting code) 동작들, 암호화 동작들, 캐싱 동작들 및 논리 블록 어드레스와 물리 블록 어드레스 간의 어드레스 변환과 같은 다른 동작들을 담당할 수 있다. 제어기(111)는 물리적 호스트 인터페이스를 통해 호스트 시스템(120)과 통신하기 위한 호스트 인터페이스 회로를 더 포함할 수 있다. 호스트 인터페이스 회로는 호스트 시스템으로부터 수신된 명령들을 메모리 디바이스들(112A 내지 112N)에 액세스하기 위한 명령 지시들로 변환할뿐만 아니라 메모리 디바이스들(112A 내지 112N)과 연관된 응답들을 호스트 시스템(120)용 정보로 변환할 수도 있다.
저장 시스템(110)은 메모리 디바이스들(112A 내지 112N)에 관해 어떠한 동작들도 중단하지 않고 동시에 소거 동작 또는 기록 동작과 같은 동작들을 수행하는데 사용될 수 있는 동작 수행 구성요소(113)를 포함한다. 일부 실시 예에서, 제어기(111)는 동작 수행 구성요소(113)의 적어도 일 부분을 포함한다. 동작 수행 구성요소(113)는 저장 시스템(110)의 메모리 디바이스들(112A-N)의 데이터 블록 그룹을 데이터 블록들의 다수의 부분들로 나눌 수 있다. 일 부분은 제어기(111)에 의해 독립적으로 제어될 수 있는 메모리(112A-N)의 하나 이상의 메모리 페이지, 물리적 데이터 블록, 메모리 디바이스의 다이들 등일 수 있다. 동작 수행 구성요소(113)는 데이터 블록 그룹의 특정 부분에 관해 소거 동작을 수행할 수 있고, 소거 동작을 중단하지 않고 소거 동작과 동시에 상이한 부분에 관한 프로그래밍 동작(예를 들어, 기록 동작)을 수행할 수 있다.
동작 수행 구성요소(113)는 수행되고 있는 제1 동작(예를 들어, 소거 동작)의 비율에 기초한 비율로 제2 동작(예를 들어, 기록 동작)을 수행할 수 있다. 예를 들어, 동작 수행 구성요소(113)는 소거 동작의 비율이 50 MB/s라고 결정하고 50 MB/s의 비율로 기록 동작을 수행할 수 있다. 동작 수행 구성요소(113)의 동작들에 관한 추가 세부 사항들은 후술된다.
저장 시스템(110)은 도시되지 않은 추가 회로 또는 구성요소들을 포함할 수 있다. 예를 들어, 저장 시스템(110)은 제어기(111)로부터 어드레스를 수신하고 어드레스를 디코딩하여 메모리 디바이스들(112A 내지 112N)에 액세스할 수 있는 캐시 또는 버퍼(예를 들어, DRAM) 및 어드레스 회로(예를 들어, 로우 디코더 및 컬럼 디코더)를 포함할 수 있다.
도 2는 본 개시의 일부 실시 예에 따른 소거 동작의 수행율에 기초하여 기록 동작을 수행하기 위한 예시적인 방법(200)의 흐름도이다. 방법(200)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그램 가능한 로직, 마이크로 코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에 관해 운영 또는 실행되는 지시들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시 예에서, 방법(200)은 도 1의 동작 수행 구성요소(113)에 의해 수행된다.
블록(210)에서, 프로세싱 디바이스는 데이터 블록들의 제1 부분에 관한 제1 동작을 수행한다. 일례에서, 제1 동작은 데이터 블록들의 제1 부분에 저장된 데이터를 소거하기 위한 소거 동작일 수 있다. 데이터 블록들은 저장 시스템(예를 들어, SSD)의 하나 이상의 메모리 디바이스의 데이터 블록들이다. 데이터 블록들은 제1 부분에 관해 수행되는 제1 동작이 제2 부분에 관해 수행되는 제2 동작과 병렬로 수행될 수 있게 하기 위해 다수의 부분으로 나눠진다. 일 부분은 하나 이상의 메모리 페이지, 물리적 데이터 블록 및/또는 메모리 디바이스의 다이들일 수 있다. 일 구현에서, 프로세싱 디바이스는 저장 시스템에 관해 수행될 동작들의 최대 전력 한계에 기초하여 데이터 블록들을 각각이 데이터 블록 그룹을 형성하는 다수의 부분으로 나눈다. 예를 들어, 저장 시스템은 저장 시스템에 관해 수행될 동작들을 위해 총 20개의 전원 장치를 가질 수 있다. 프로세싱 디바이스는 전원 장치들의 절반(예를 들어, 10개)을 제1 부분에 관한 소거 동작의 수행을 위해 제1 부분(예를 들어, 제1 그룹)에 할당하고 전원 장치들의 절반을 제2 부분에 관한 기록 동작의 수행을 위해 제2 부분(예를 들어, 제2 그룹)에 할당할 수 있다. 그에 따라 전원 장치들은 소거 동작들 및/또는 기록 동작들을 수행할 수 있는 저장 시스템의 용량에 대응할 수 있다. 구현들에서, 프로세싱 디바이스는 데이터 블록들을 임의의 수의 부분(예를 들어, 그룹)으로 나눌 수 있고 그룹들 각각은 크기가 달라질 수 있다. 예를 들어, 프로세싱 디바이스는 데이터 블록들을 세 개의 그룹으로 나눌 수 있는데, 제1 그룹은 메모리 디바이스의 8개의 다이를 포함하고, 제2 그룹은 메모리 디바이스의 10개의 다이를 포함하며, 제3 그룹은 메모리 디바이스의 12개의 다이를 포함한다. 그룹들 중 하나에 관해 소거 및/또는 기록 동작이 수행되고 있을 때, 프로세싱 디바이스는 그에 따라 전원 장치들을 할당한다. 예를 들어, 기록 동작이 제1 그룹에 관해 수행되고 있고, 제2 그룹에 관해 소거 동작이 수행되고 있으며, 제3 그룹은 유휴 상태라면(예를 들어, 수행 중인 동작이 없음), 프로세싱 디바이스는 제1 그룹에 10개의 전원 장치를, 제2 그룹에 10개의 전원 장치를 그리고 제3 그룹에 0개의 전원 장치를 할당한다.
동작들의 예들은 소거 동작 및 기록 동작을 포함한다. 예를 들어, 제1 동작은 데이터 블록들의 부분들의 집합에 저장된 데이터를 소거하기 위한 소거 동작일 수 있다. 예를 들어, 데이터 블록들은 부분 A, 부분 B, 부분 C와 같은 세 개의 부분으로 나눠질 수 있고, 소거 동작은 부분 B 및 부분 C에 저장된 데이터를 소거하기 위한 것일 수 있다.
블록(220)에서, 프로세싱 디바이스는 데이터 블록들과 연관된 제2 동작을 수행하라는 요청을 수신한다. 요청은 호스트 시스템으로부터 수신될 수 있다. 요청은 제1 동작을 수행하는 동안 수신될 수 있다. 제1 동작 및 제2 동작은 상이한 유형들의 동작들일 수 있다. 예를 들어, 제1 동작은 소거 동작이고 제2 동작은 기록 동작일 수 있다. 요청은 제2 동작에 대한 데이터를 포함할 수 있다. 예를 들어, 요청은 데이터 블록들에 저장할 데이터를 포함할 수 있다. 제2 동작은 제1 동작에 사용되는 데이터 블록들과 관련될 수 있다. 예를 들어, 요청은 제1 동작에 사용되고 있는 하나 이상의 데이터 블록에 기록 동작을 위한 데이터를 저장하는 것일 수 있다.
블록(230)에서, 프로세싱 디바이스는 데이터 블록들의 제1 부분에 관한 제1 동작의 수행율을 결정한다. 일 실시 예에서, 수행율은 동작을 수행하기 위한 시간당 데이터의 양으로 표현된다. 예를 들어, 비율은 데이터 블록들의 데이터를 이용하는 동작들(예를 들어, 소거, 저장)에 대한 MB/s로 표현될 수 있다. 다른 실시 예에서, 수행율은 데이터 블록들의 부분들의 집합에서의 특정 부분 또는 모든 부분에 관한 동작이 완료될 때까지의 시간량이다.
블록(240)에서, 프로세싱 디바이스는 제1 동작의 수행율에 기초하여 데이터 블록들의 제2 부분에 관한 제2 동작을 수행한다. 예를 들어, 프로세싱 디바이스는 소거 동작의 수행율의 비율로 제2 동작을 수행할 수 있다. 예를 들어, 제2 동작이 기록 동작인 예에서, 저장 시스템은 기록 동작을 위해 호스트 시스템에 의해 제공된 데이터를 저장 시스템의 버퍼 메모리에 저장할 수 있다. 프로세싱 디바이스는 버퍼를 스로틀로 사용하여 버퍼로부터 데이터를 검색하고 데이터를 데이터 블록들의 제2 부분에 저장하는 비율을 제어하여 소거 동작의 수행율에 기초하여 기록 동작을 수행하는 비율을 조정할 수 있다.
동작은 데이터 블록들의 부분들의 집합에 관한 동작을 수행하는 것을 수반할 수 있다. 예를 들어, 기록 동작은 특정 데이터를 데이터 블록들의 부분들의 집합(예를 들어, 부분 A, 부분 B 및 부분 C)에 저장하기 위한 것일 수 있다. 다른 예에서, 소거 동작은 데이터 블록들의 부분들의 집합(예를 들어, 부분 B 및 부분 C)에 저장된 특정 데이터를 소거하기 위한 것일 수 있다. 일부 구현에서, 프로세싱 디바이스는 부분들의 집합의 특정 부분에 관한 동작이 완료되었다는 표시를 수신할 수 있다. 프로세싱 디바이스는 표시로서 메모리 디바이스로부터 신호 또는 메시지를 수신할 수 있다. 그러한 표시를 수신하는 것에 응답하여, 프로세싱 디바이스는 부분들의 집합에서의 상이한 부분에 관해 동작을 수행하기 시작할 수 있다.
예를 들어, 소거 동작들의 경우, 프로세싱 디바이스는 소거 동작을 위해 특정 부분(예를 들어, 부분 B)에 저장된 데이터가 소거되었다는 표시를 수신할 수 있고, 데이터 블록들의 부분의 집합에서의 다른 부분(예를 들어, 부분 C)에 관한 데이터 소거를 시작할 수 있다.
다른 예로, 기록 동작들의 경우, 프로세싱 디바이스는 특정 부분(예를 들어, 부분 A)에 데이터를 저장하기 위한 기록 동작이 완료되었다는 표시를 수신할 수 있고, 데이터 블록들의 부분들의 집합에서의 상이한 부분(예를 들어, 부분 B)에 관한 기록 동작을 수행하기 시작할 수 있다.
일부 구현에서, 프로세싱 디바이스는 부분들의 집합의 특정 부분에 관한 동작이 완료되었다는 표시를 수신하고, 그러한 표시를 수신하는 것에 응답하여, 프로세싱 디바이스는 동일한 특정 부분에 관한 상이한 동작을 수행하기 시작할 수 있다. 예를 들어, 프로세싱 디바이스는 특정 부분(예를 들어, 부분 A)에 저장된 데이터가 소거 동작으로 소거되었다는 표시를 수신할 수 있고, 기록 동작에 의해 지정된 바에 따라, 동일한 특정 부분(예를 들어, 부분 A)에 관해 데이터를 저장하기 위한 기록 동작을 수행하기 시작할 수 있다. 일부 구현에서, 프로세싱 디바이스는 대응하는 동작을 위한 부분들의 집합에서의 모든 부분에 관해 동작들이 형성될 때까지 표시들을 수신한다.
도 3은 본 개시의 일부 실시 예에 따른 데이터 블록들의 일 부분에 관한 동작의 수행율을 다른 동작의 수행율에 기초하여 조정하기 위한 예시적인 방법(300)의 흐름도이다. 방법(300)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그램 가능한 로직, 마이크로 코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에 관해 운영 또는 실행되는 지시들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시 예에서, 방법(300)은 도 1의 동작 수행 구성요소(113)에 의해 수행된다.
블록(310)에서, 프로세싱 디바이스는 데이터 블록들의 제1 부분에 관해 수행되는 소거 동작을 식별한다. 일 구현에서, 프로세싱 디바이스는 데이터 블록들에 저장될 데이터를 지정하는 기록 동작에 대응하는 입력을 수신하는 것에 응답하여 데이터 블록들의 제1 부분에 관해 수행되는 소거 동작을 식별한다. 블록(320)에서, 프로세싱 디바이스는 데이터 블록들의 제1 부분에 관한 소거 동작의 제1 수행율을 결정한다. 일 실시 예에서, 수행율은 동작을 수행하기 위한 시간당 데이터의 양으로 표현된다. 예를 들어, 프로세싱 디바이스는 소거 동작의 제1 수행율이 50 MB/s라고 결정할 수 있다. 일부 구현에서, 데이터 블록들의 제1 부분에 관한 소거 동작의 제1 수행율은 데이터 블록의 제1 부분에 관한 소거 동작이 완료될 때까지의 시간량이다. 예를 들어, 프로세싱 디바이스는 데이터 블록들의 제1 부분에 관한 소거 동작의 제1 수행율이 5초라고 결정할 수 있다.
블록(330)에서, 프로세싱 디바이스는 데이터 블록들의 제2 부분에 관해 수행되는 기록 동작을 식별한다. 블록(340)에서, 프로세싱 디바이스는 수행되는 기록 동작의 제2 수행율을 결정한다. 예를 들어, 프로세싱 디바이스는 기록 동작의 제2 수행율이 60 MB/s라고 결정할 수 있다. 일부 구현에서, 기록 동작의 제2 수행율은 데이터 블록들의 제2 부분에 관한 기록 동작이 완료될 때까지의 시간량이다. 예를 들어, 프로세싱 디바이스는 데이터 블록들의 제2 부분에 관한 기록 동작의 제2 수행율이 4초라고 결정할 수 있다.
블록(350)에서, 프로세싱 디바이스는 기록 동작의 제2 수행율이 소거 동작의 제1 수행율에 대응하지 않는다고 결정한다. 일 구현에서, 제2 수행율이 제1 수행율보다 크거나 작다면 제2 수행율은 제1 수행율에 대응하지 않는다. 다른 예에서, 프로세싱 디바이스는 기록 동작의 완료까지의 시간량(예를 들어, 4초)이 소거 동작의 완료까지의 시간량(예를 들어, 5초)보다 적다고 결정할 수 있다. 다른 구현들에서, 제2 수행율이 제1 수행율의 임계치 내에 있지 않다면 제2 수행율은 제1 수행율에 대응하지 않는다. 예를 들어, 제1 수행율이 50 MB/s이고 제2 수행율이 60 MB/s이며 임계치가 5 MB/s이면, 제2 수행율은 임계치 내에 있지 않다.
블록(360)에서, 프로세싱 디바이스는 기록 동작의 제2 수행율을 소거 동작의 제1 수행율에 대응하도록 조정한다. 일 구현에서, 프로세싱 디바이스는 기록 동작의 제2 수행율을 소거 동작의 제1 수행율보다 작거나 같게 조정할 수 있다. 예를 들어, 소거 동작의 제1 수행율이 50 MB/s이면, 프로세싱 디바이스는 기록 동작의 제2 수행율을 60 MB/s에서 50 MB/s 이하로 조정할 수 있다. 수행율이 완료까지의 시간량인 다른 구현에서, 프로세싱 디바이스는 기록 동작의 제2 수행율을 소거 동작의 제1 수행율보다 크거나 같게 조정할 수 있다. 예를 들어, 복수의 데이터 블록 중 제1 부분에 관한 소거 동작이 완료될 때까지 5초가 남아 있다면, 프로세싱 디바이스는 기록 동작이 5초 이상에 완료되도록 복수의 데이터 블록의 제2 부분에 관한 기록 동작의 제2 수행율을 조정할 수 있다. 일부 구현에서, 기록 동작의 제2 수행율이 조정될 때, 기록 동작과 연관되는 호스트 시스템으로부터 수신된 데이터는 기록 동작에 의해 데이터가 저장 시스템에 저장될 준비가 될 때까지 버퍼에 저장된다.
도 4는 본 개시의 일부 실시 예에 따른 저장 시스템의 복수의 데이터 블록에 관한 동작들을 수행하는 일례의 블록도(400)를 도시한다. 일부 구현에서, 동작들은 도 1의 동작 수행 구성요소(113)에 의해 수행된다.
저장 시스템의 데이터 블록들은 여러 부분으로 나뉜다. 이러한 예에서, 데이터 블록들은 세 개의 부분(예를 들어, A 부분, B 부분 및 C 부분)으로 나눠진다. 세 개의 부분 각각은 저장 시스템의 하나 이상의 데이터 블록을 포함한다. 예를 들어, 부분들 A-C는 각각 데이터 블록들의 10개의 데이터 블록을 포함할 수 있다. 일부 구현에서, 부분들 A-C는 상이한 양들의 데이터 블록들을 포함한다. 예를 들어, 부분 A는 10개의 데이터 블록을 포함할 수 있고, 부분 B는 8개의 데이터 블록을 포함할 수 있으며, 부분 C는 12개의 데이터 블록을 포함할 수 있다. 구현들에서, 부분들 A-C는 저장 시스템의 다수의 다이를 포함할 수 있다. 예를 들어, 32개의 다이를 포함하는 저장 시스템에서, 부분 A는 다이들 0-9를 포함할 수 있고, 부분 B는 다이들 10-19를 포함할 수 있으며, 부분 C는 다이들 20-31을 포함할 수 있다.
일 실시 예에서, 부분들은 동작들을 수행하기 위해 다이들에 할당될 수 있는 저장 시스템의 총 전원 장치 수에 기초하여 나눠질 수 있다. 부분들은 임의의 두 부분(예를 들어, 부분들 A-C)의 다이들의 수의 합이 이용 가능한 총 전원 장치를 초과하지 않도록 나눠질 수 있다. 예를 들어, 22개의 전원 장치가 저장 시스템의 22개 다이에 관해 수행될 동작들에 할당되도록 이용 가능하다면, 각각 또는 부분들 A-C는 11개 이하의 다이의 그룹들로 나눠질 수 있다. 그에 따라, 부분들 A-C 중 임의의 두 개의 부분의 다이들의 수의 합은 이용 가능한 총 전원 장치(예를 들어, 22개)를 초과하지 않는다.
시간 T1에서, 프로세싱 디바이스는 데이터 블록들의 부분 B에 관해 소거 동작을 수행한다. 본 예는 부분 B에서 시작하는 소거 동작으로 작성되었지만, 다른 구현들에서 소거 동작은 저장 시스템의 부분들 A-C 중 어느 하나에서 수행을 시작할 수 있다. 소거 동작은 저장 시스템의 각 부분에 관해 순차적으로 수행될 수 있다. 예를 들어, 소거 동작은 부분 B, 그 다음 부분 C, 그 다음 부분 A에 관해 수행될 수 있다. 시간 T1에서 소거 동작 수행이 시작된 후 완료되기 전에, 프로세싱 디바이스는 기록 동작에 대응하는 입력을 수신하고 이전에 논의된 바와 같이, 소거 동작의 수행율을 결정한다.
입력을 수신하고 수행율을 결정한 후, 시간 T2에서 프로세싱 디바이스는 부분 B에 관해 소거 동작이 수행되는 동안 부분 A에 관해 기록 동작을 수행하기 시작한다. 본 예는 부분 A에서 기록 동작이 시작하는 것으로 작성되었지만, 다른 구현들에서 기록 동작은 소거 동작이 현재 수행되고 있지 않은 임의의 부분에서 시작할 수 있다. 기록 동작은 저장 시스템의 각 부분에 관해 순차적으로 수행될 수 있다. 예를 들어, 기록 동작은 부분 A, 다음 부분 B, 그 다음 부분 C에 관해 수행될 수 있다. 전술된 바와 같이, 프로세싱 디바이스는 부분 A에 관한 기록 동작의 수행율을 부분 B에 관한 소거 동작의 수행율에 대응하도록 조정하여, 부분 B에 관해 소거 동작이 완료될 수 있는 충분한 시간을 허용한다. 부분 B에 관한 소거 동작이 완료되면, 시간 T3에서 프로세싱 디바이스는 저장 시스템의 부분 C에 관해 소거 동작을 수행하기 시작한다. 부분 A에 관한 기록 동작이 완료되면, 시간 T3에서, 프로세싱 디바이스는 소거 동작으로 더 이상 작동하지 않는 부분 B에 관해 기록 동작을 수행하기 시작한다. 이후 시간 T4에서, 부분 A에 저장된 데이터는 호스트 시스템에 의해 더 이상 사용되지 않거나 새로운 위치들로 복사되었을 수 있다. 부분 A의 데이터 블록들을 이용 가능하게 만들기 위해, 부분 A에 관해 소거 동작이 수행될 수 있다. 프로세싱 디바이스는 저장 시스템의 부분 A에 관해 소거 동작을 수행하기 시작할 수 있다. 부분 B에 관한 기록 동작이 완료되면, 시간 T4에서, 프로세싱 디바이스는 소거 동작으로 더 이상 작동하지 않는 부분 C에 관해 기록 동작을 수행하기 시작한다.
도 5는 기계가 여기서 논의된 방법들 중 임의의 하나 이상을 수행하게 하는 지시들의 세트가 실행될 수 있는 컴퓨터 시스템(500)의 예시적인 기계를 도시한다. 예를 들어, 컴퓨터 시스템(500)은 저장 시스템(예를 들어, 도 1의 저장 시스템(110))을 포함하거나 이용하는 호스트 시스템(예를 들어, 도 1의 호스트 시스템(120))에 대응할 수 있거나 제어기의 동작들을 수행하는데(예를 들어, 도 1의 동작 수행 구성요소(113)에 대응하는 동작들을 수행하기 위해 운영 체제를 실행하는데) 사용될 수 있다. 대안적인 구현 예들에서, 기계는 LAN, 인트라넷, 엑스트라넷 및/또는 인터넷의 다른 기계들에 연결(예를 들어, 네트워킹)될 수 있다. 기계는 클라이언트-서버 네트워크 환경에서의 서버 또는 클라이언트 기계로서, 피어 투 피어(또는 분산) 네트워크 환경에서의 피어 기계로서, 또는 클라우드컴퓨팅 인프라 또는 환경에서의 서버 또는 클라이언트 기계로서 작동할 수 있다.
기계는 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인용 정보 단말기(PDA), 모바일 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브릿지 또는 해당 기계에 의해 취해질 동작들을 특정하는 지시들의 세트를 실행할 수 있는(순차적 또는 그 외) 임의의 기계일 수 있다. 나아가, 단일 기계가 도시되어 있지만, "기계"라는 용어는 또한 여기서 논의된 임의의 하나 이상의 방법론을 수행하기 위한 명령들의 집합(또는 다수의 집합)을 개별적으로 또는 공동으로 실행하는 임의의 기계 집합을 포함하는 것으로 간주된다.
예시적인 컴퓨터 시스템(500)은 버스(530)를 통해 서로 통신하는 프로세싱 디바이스(502), 메인 메모리(504)(예를 들어, 판독 전용 메모리(ROM), 플래시 메모리, 동적 랜덤 액세스 메모리(DRAM) 이를테면 동기식 DRAM(SDRAM) 또는 램버스 DRAM(RDRAM) 등), 정적 메모리(506)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 데이터 저장 디바이스(518)를 포함한다.
프로세싱 디바이스(502)는 마이크로 프로세서, 중앙 프로세싱 유닛 등과 같은 하나 이상의 범용 프로세싱 디바이스를 나타낸다. 보다 구체적으로, 프로세싱 디바이스는 복합 명령 집합 컴퓨팅(CISC, complex instruction set computing) 마이크로 프로세서, 축소 명령 집합 컴퓨팅(RISC, reduced instruction set computing) 마이크로 프로세서, 훨신 긴 명령어(VLIW, very long instruction word) 마이크로 프로세서, 또는 다른 명령 집합들을 구현하는 프로세서, 또는 명령 집합들의 조합을 구현하는 프로세서일 수 있다. 프로세싱 디바이스(502)는 또한 특수 목적 집적 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 프로세싱 디바이스일 수 있다. 프로세싱 디바이스(502)는 여기서 논의된 동작들 및 단계들을 수행하기 위한 지시들(526)을 실행하도록 구성된다. 컴퓨터 시스템(500)은 네트워크(520)를 통해 통신하기 위한 네트워크 인터페이스 장치(508)를 더 포함할 수 있다.
데이터 저장디바이스(518)은 여기에 설명된 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 지시들 또는 소프트웨어의 하나 이상의 세트(526)가 저장되는 기계 판독 가능한 저장 매체(524)(컴퓨터 판독 가능한 매체라고도 함)를 포함할 수 있다. 지시들(526)은 또한 기계 판독 가능한 저장 매체를 구성하는 컴퓨터 시스템(500), 메인 메모리(504) 및 프로세싱 디바이스(502)에 의한 이들의 실행 동안 메인 메모리(504) 내에 그리고/또는 프로세싱 디바이스(502) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 기계 판독 가능한 저장 매체(524), 데이터 저장 디바이스(518) 및/또는 메인 메모리(504)는 도 1의 저장 시스템(110)에 대응할 수 있다.
일 구현 예에서, 지시들(526)은 동작 수행 구성요소(예를 들어, 도 1의 동작 수행 구성요소(113))에 대응하는 기능을 구현하기 위한 지시들을 포함한다. 기계 판독 가능한 저장 매체(524)가 예시적인 구현 예에서 단일 매체인 것으로 도시되어 있지만, "기계 판독 가능한 저장 매체"라는 용어는 지시들의 하나 이상의 세트를 저장하는 단일 매체 또는 다중 매체(예를 들어, 중앙 집중 또는 분산 데이터베이스, 및/또는 관련 캐시들 및 서버들)를 포함하는 것으로 취해져야 한다. "기계 판독 가능한 매체"라는 용어는 또한 기계에 의한 실행을 위한 지시들의 세트를 저장 또는 인코딩할 수 있고 기계가 본 개시의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 취해져야 한다. 그에 따라 "기계 판독 가능한 저장 매체"라는 용어는 고체 상태 메모리들, 광학 매체들 및 자기 매체들을 포함하지만 이에 제한되지는 않는 것으로 취해져야 한다.
전술한 구체적인 내용의 일부 부분은 컴퓨터 메모리 내의 데이터 비트들에 관한 동작들의 알고리즘들 및 상징적 표현들과 관련하여 제시되었다. 이러한 알고리즘적 설명 및 표현은 데이터 프로세싱 분야의 통상의 기술자가 그들의 작업 내용을 다른 통상의 기술자들게 가장 효과적으로 전달하는데 사용하는 방식들이다. 여기서 알고리즘은 일반적으로 요구되는 결과를 도출하는 자기-일관 동작 시퀀스인 것으로 생각된다. 동작들은 물리적 수량들을 물리적으로 조작해야 하는 것들이다. 반드시 그런 것은 아니지만, 일반적으로 이러한 양들은 저장, 조합, 비교 및 그 외 다르게 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 이러한 신호들을 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 나타내는 것이 주로 일반적인 용법의 이유로 때때로 편리한 것으로 입증되었다.
그러나, 이러한 그리고 유사한 용어들 모두는 적절한 물리량들과 연관되어야 하고 이러한 수량들에 적용되는 편리한 라벨들일 뿐임을 명심해야 한다. 상기 논의로부터 명백한 바와 같이 특별한 언급이 없는 한 본 명세서 전반에 걸쳐, 본 개시의 양태들은 컴퓨터 시스템의 레지스터들 및 메모리들 내 물리적(전자) 수량들로서 표현된 데이터를 조작하고 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장 시스템들 내 물리적 수량들로서 유사하게 표현되는 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 동작 및 프로세스들을 나타낼 수 있다는 것이 이해된다.
본 개시는 또한 여기서의 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 의도된 목적들을 위해 특별히 구성될 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은 이에 제한되지는 않지만, 각각 컴퓨터 시스템 버스에 접속되는 플로피 디스크, 광 디스크, CD-ROM 및 자기-광학 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), EPROM, EEPROM, 자기 또는 광학 카드, 또는 전자 지시들을 저장하기에 적합한 임의의 유형의 매체를 포함하는 임의의 유형의 디스크와 같은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다.
여기에 제시된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치와 관련이 없다. 다양한 범용 시스템이 여기서의 교시에 따른 프로그램들과 함께 사용될 수 있거나, 방법을 수행하기 위해 보다 특화된 장치를 구성하는 것이 편리함을 증명할 수 있다. 이러한 다양한 시스템의 구조는 아래의 설명에서 제시될 것이다. 또한, 본 개시는 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 여기서 설명된 바와 같이 본 개시의 교시를 구현하는데 다양한 프로그래밍 언어가 사용될 수 있다는 것이 이해될 것이다.
본 개시는 본 개시에 따라 프로세스를 수행하기 위해 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하는데 사용될 수 있는 지시들을 저장한 기계 판독 가능한 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 기계 판독 가능한 매체는 기계(예를 들어, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독 가능한(예를 들어, 컴퓨터 판독 가능한) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스들 등과 같은 기계(예를 들어, 컴퓨터) 판독 가능한 저장 매체를 포함한다.
전술한 명세서에서, 본 개시의 구현 예들은 그 특정 예시적인 구현 예들을 참조하여 설명되었다. 다음의 청구범위에 제시된 본 개시의 구현 예들의 보다 넓은 사상 및 범위를 벗어나지 않고 다양한 변경이 이루어질 수 있음이 명백할 것이다. 따라서, 본 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
Claims (20)
- 시스템으로서,
부분들로 나눠지는 복수의 데이터 블록을 포함하는 메모리 디바이스; 및
상기 메모리 디바이스와 작동 가능하게 연결되는 프로세싱 디바이스로서:
상기 복수의 데이터 블록의 제1 부분에 관한 제1 동작을 수행하고;
상기 복수의 데이터 블록과 연관된 제2 동작을 수행하라는 요청을 수신하고;
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 수행율을 결정하며;
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초하여 상기 복수의 데이터 블록의 제2 부분에 관한 상기 제2 동작을 수행하는, 프로세싱 디바이스를 포함하는, 시스템. - 청구항 1에 있어서, 상기 제2 동작을 수행하기 위한 상기 요청은 상기 제1 동작의 수행 동안 수신되는, 시스템.
- 청구항 1에 있어서, 상기 제1 동작은 상기 복수의 데이터 블록의 부분들의 집합에 저장된 데이터를 소거하기 위한 소거 동작인, 시스템.
- 청구항 3에 있어서, 상기 프로세싱 디바이스는 또한:
상기 복수의 데이터 블록의 상기 제1 부분에 저장된 상기 데이터가 소거된다는 표시를 수신하고;
상기 제1 부분에 저장된 상기 데이터가 소거된다는 상기 표시를 수신하는 것에 응답하여, 상기 복수의 데이터 블록의 제3 부분에 저장된 데이터를 소거하되, 상기 제3 부분은 상기 소거 동작에 대한 상기 부분들의 집합의 일부인, 시스템. - 청구항 4에 있어서, 상기 제2 동작은 상기 복수의 데이터 블록의 상기 부분들의 집합에 지정된 데이터를 기록하기 위한 기록 동작이고 상기 프로세싱 디바이스는 또한:
상기 소거 동작에 대해 상기 복수의 데이터 블록의 상기 제1 부분에 저장된 상기 데이터가 소거된다는 상기 표시를 수신하며;
상기 기록 동작에 의해 지정되는 바에 따라, 상기 복수의 데이터 블록의 상기 제1 부분에 관해 데이터를 기록하는, 시스템. - 청구항 1에 있어서, 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초하여 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작을 수행하는 것은 또한:
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초한 비율로 버퍼로부터 데이터를 수신하며;
상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작의 제2 수행율을 상기 버퍼로부터 수신된 상기 데이터의 상기 비율에 대응하도록 조정하는, 시스템. - 청구항 6에 있어서, 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작의 상기 제2 수행율은 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율 이하인, 시스템.
- 청구항 1에 있어서, 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작은 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작과 동일한 시간에 수행되는, 시스템.
- 청구항 1에 있어서, 상기 복수의 데이터 블록의 상기 부분들은 상기 제1 동작 및 상기 제2 동작을 수행하기 위해 상기 메모리 디바이스의 전력 레벨에 기초하여 나눠지는, 시스템.
- 방법으로서,
복수의 데이터 블록의 제1 부분에 관한 제1 동작을 수행하는 단계;
상기 복수의 데이터 블록과 연관된 제2 동작을 수행하라는 요청을 수신하는 단계;
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 수행율을 결정하는 단계; 및
프로세싱 디바이스에 의해, 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초하여 상기 복수의 데이터 블록의 제2 부분에 관한 상기 제2 동작을 수행하는 단계를 포함하는, 방법. - 청구항 10에 있어서,
상기 복수의 데이터 블록의 상기 제1 부분에 저장된 상기 데이터가 소거된다는 표시를 수신하는 단계; 및
상기 제1 부분에 저장된 상기 데이터가 소거된다는 상기 표시를 수신하는 것에 응답하여, 상기 복수의 데이터 블록의 제3 부분에 저장된 데이터를 소거하는 단계를 더 포함하되, 상기 제3 부분은 상기 소거 동작에 대한 부분들의 집합의 일부인, 방법. - 청구항 11에 있어서, 상기 제2 동작은 상기 복수의 데이터 블록의 부분들의 집합에 지정된 데이터를 기록하기 위한 기록 동작이며,
상기 소거 동작에 대해 상기 복수의 데이터 블록의 상기 제1 부분에 저장된 상기 데이터가 소거된다는 상기 표시를 수신하는 단계; 및
상기 기록 동작에 의해 지정되는 바에 따라, 상기 복수의 데이터 블록의 상기 제1 부분에 관해 데이터를 기록하는 단계를 더 포함하는, 방법. - 청구항 10에 있어서, 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초하여 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작을 수행하는 단계는:
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초한 비율로 버퍼로부터 데이터를 수신하는 단계; 및
상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작의 제2 수행율을 상기 버퍼로부터 수신된 상기 데이터의 상기 비율에 대응하도록 조정하는 단계를 포함하는, 방법. - 청구항 13에 있어서, 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작의 상기 제2 수행율은 상기 제2 부분에 관한 상기 제2 동작의 완료까지 시간량에 대응하고 상기 제2 수행율은 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율 이상인, 방법.
- 청구항 10에 있어서, 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작은 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작과 동일한 시간에 수행되는, 방법.
- 명령들을 포함하는 비일시적 컴퓨터 판독 가능한 저장 매체로서, 상기 명령들은 프로세싱 디바이스에 의해 실행될 때, 상기 프로세싱 디바이스로 하여금:
복수의 데이터 블록의 제1 부분에 관한 제1 동작을 수행하고;
상기 복수의 데이터 블록과 연관된 제2 동작을 수행하라는 요청을 수신하고;
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 수행율을 결정하며;
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초하여 상기 복수의 데이터 블록의 제2 부분에 관한 상기 제2 동작을 수행하게 하는, 비일시적 컴퓨터 판독 가능한 저장 매체. - 청구항 16에 있어서, 상기 프로세싱 디바이스는 또한:
상기 복수의 데이터 블록의 상기 제1 부분에 저장된 상기 데이터가 소거된다는 표시를 수신하고;
상기 제1 부분에 저장된 상기 데이터가 소거된다는 상기 표시를 수신하는 것에 응답하여, 상기 복수의 데이터 블록의 제3 부분에 저장된 데이터를 소거하되, 상기 제3 부분은 상기 소거 동작에 대한 상기 부분들의 집합의 일부인, 비일시적 컴퓨터 판독 가능한 저장 매체. - 청구항 17에 있어서, 상기 제2 동작은 상기 복수의 데이터 블록의 부분들의 집합에 지정된 데이터를 기록하기 위한 기록 동작이고 상기 프로세싱 디바이스는 또한:
상기 소거 동작에 대해 상기 복수의 데이터 블록의 상기 제1 부분에 저장된 상기 데이터가 소거된다는 상기 표시를 수신하며;
상기 기록 동작에 의해 지정되는 바에 따라, 상기 복수의 데이터 블록의 상기 제1 부분에 관해 데이터를 기록하는, 비일시적 컴퓨터 판독 가능한 저장 매체. - 청구항 16에 있어서, 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초하여 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작을 수행하는 것은 또한:
상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율에 기초한 비율로 버퍼로부터 데이터를 수신하며;
상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작의 제2 수행율을 상기 버퍼로부터 수신된 상기 데이터의 상기 비율에 대응하도록 조정하는, 비일시적 컴퓨터 판독 가능한 저장 매체. - 청구항 19에 있어서, 상기 복수의 데이터 블록의 상기 제2 부분에 관한 상기 제2 동작의 상기 제2 수행율은 상기 복수의 데이터 블록의 상기 제1 부분에 관한 상기 제1 동작의 상기 수행율 이하인, 비일시적 컴퓨터 판독 가능한 저장 매체.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/077751 WO2019165624A1 (en) | 2018-03-01 | 2018-03-01 | Performing operation on data blocks concurrently and based on performance rate of another operation on data blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200124728A true KR20200124728A (ko) | 2020-11-03 |
KR102448242B1 KR102448242B1 (ko) | 2022-09-28 |
Family
ID=67805646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207027778A KR102448242B1 (ko) | 2018-03-01 | 2018-03-01 | 데이터 블록들에 관한 다른 동작의 수행율에 기초한 데이터 블록들에 관한 동작의 동시 수행 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11334278B2 (ko) |
EP (2) | EP3759582B1 (ko) |
KR (1) | KR102448242B1 (ko) |
CN (1) | CN112400156B (ko) |
WO (1) | WO2019165624A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210106119A (ko) * | 2020-02-20 | 2021-08-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US20220283738A1 (en) * | 2021-03-04 | 2022-09-08 | Macronix International Co., Ltd. | Flash memory and writing method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130086309A (ko) * | 2012-01-24 | 2013-08-01 | 세이코 인스트루 가부시키가이샤 | 반도체 장치 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757800B1 (en) * | 1995-07-31 | 2004-06-29 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
JP3353602B2 (ja) * | 1996-04-22 | 2002-12-03 | 日本電気株式会社 | 半導体装置の試験方法 |
JP2002366421A (ja) * | 2001-06-07 | 2002-12-20 | Oki Electric Ind Co Ltd | メモリ制御回路とメモリ制御方法 |
US8874831B2 (en) * | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8533388B2 (en) | 2009-06-15 | 2013-09-10 | Broadcom Corporation | Scalable multi-bank memory architecture |
US8589625B2 (en) * | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of reconstructive I/O read operations in a storage environment |
US9146688B2 (en) * | 2012-12-05 | 2015-09-29 | SanDisk Technologies, Inc. | Advanced groomer for storage array |
CN104834478B (zh) * | 2015-03-25 | 2018-05-22 | 中国科学院计算技术研究所 | 一种基于异构混合存储设备的数据写入及读取方法 |
US9772777B2 (en) * | 2015-04-27 | 2017-09-26 | Southwest Research Institute | Systems and methods for improved access to flash memory devices |
US9679658B2 (en) * | 2015-06-26 | 2017-06-13 | Intel Corporation | Method and apparatus for reducing read latency for a block erasable non-volatile memory |
JP6517685B2 (ja) | 2015-12-22 | 2019-05-22 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
CN105808160B (zh) * | 2016-02-24 | 2019-02-05 | 鄞州浙江清华长三角研究院创新中心 | 基于SSD的mpCache混合存储系统 |
KR102593352B1 (ko) * | 2016-05-04 | 2023-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10528462B2 (en) * | 2016-09-26 | 2020-01-07 | Intel Corporation | Storage device having improved write uniformity stability |
US11899576B2 (en) * | 2019-06-11 | 2024-02-13 | Micron Technology, Inc. | Dynamically modifying garbage collection rates for a memory subsystem in a closed-loop system |
-
2018
- 2018-03-01 EP EP18907642.5A patent/EP3759582B1/en active Active
- 2018-03-01 KR KR1020207027778A patent/KR102448242B1/ko active IP Right Grant
- 2018-03-01 CN CN201880091649.5A patent/CN112400156B/zh active Active
- 2018-03-01 WO PCT/CN2018/077751 patent/WO2019165624A1/en active Application Filing
- 2018-03-01 US US16/636,303 patent/US11334278B2/en active Active
- 2018-03-01 EP EP24173487.0A patent/EP4386537A3/en active Pending
-
2022
- 2022-05-16 US US17/745,779 patent/US11995338B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130086309A (ko) * | 2012-01-24 | 2013-08-01 | 세이코 인스트루 가부시키가이샤 | 반도체 장치 |
Also Published As
Publication number | Publication date |
---|---|
US11995338B2 (en) | 2024-05-28 |
CN112400156A (zh) | 2021-02-23 |
CN112400156B (zh) | 2024-07-02 |
KR102448242B1 (ko) | 2022-09-28 |
WO2019165624A1 (en) | 2019-09-06 |
US11334278B2 (en) | 2022-05-17 |
EP3759582B1 (en) | 2024-05-01 |
EP3759582A1 (en) | 2021-01-06 |
EP3759582A4 (en) | 2021-11-17 |
EP4386537A3 (en) | 2024-08-21 |
US20210042053A1 (en) | 2021-02-11 |
US20220276801A1 (en) | 2022-09-01 |
EP4386537A2 (en) | 2024-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11204721B2 (en) | Input/output size control between a host system and a memory sub-system | |
US11609712B2 (en) | Write operations to mitigate write disturb | |
US11688475B2 (en) | Performing read operation prior to two-pass programming of storage system | |
US11995338B2 (en) | Performing operation on data blocks concurrently and based on performance rate of another operation on data blocks | |
US20240062820A1 (en) | Tracking operations performed at a memory device | |
US20220050772A1 (en) | Data block switching at a memory sub-system | |
US20210042236A1 (en) | Wear leveling across block pools | |
US12105970B2 (en) | Host defined zone group configuration at a memory sub-system | |
WO2019109030A1 (en) | Logical block mapping based on an offset | |
WO2022027578A1 (en) | Memory overlay using host memory buffer | |
US11526299B2 (en) | Elastic buffer for media management of a memory sub-system | |
US11669275B2 (en) | Controller with distributed sequencer components | |
US11934686B2 (en) | Data reordering at a memory subsystem | |
US12131041B2 (en) | Dynamic zone group configuration at a memory sub-system | |
US12019557B2 (en) | Padding cached data with valid data for memory flush commands | |
US20240241710A1 (en) | Intelligent over-the-air update performance management | |
US20230266897A1 (en) | Dynamic zone group configuration at a memory sub-system | |
US20240006001A1 (en) | Resumption of program or erase operations in memory | |
US20210248066A1 (en) | Multi state purgatory for media management for a memory subsystem | |
US20210191652A1 (en) | Linking access commands for a memory sub-system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |