KR20210070379A - 메모리 서브-시스템의 요구 시 리프레시 동작을 수행하는 방법 - Google Patents

메모리 서브-시스템의 요구 시 리프레시 동작을 수행하는 방법 Download PDF

Info

Publication number
KR20210070379A
KR20210070379A KR1020217016067A KR20217016067A KR20210070379A KR 20210070379 A KR20210070379 A KR 20210070379A KR 1020217016067 A KR1020217016067 A KR 1020217016067A KR 20217016067 A KR20217016067 A KR 20217016067A KR 20210070379 A KR20210070379 A KR 20210070379A
Authority
KR
South Korea
Prior art keywords
refresh operation
memory component
memory
user data
refresh
Prior art date
Application number
KR1020217016067A
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 KR20210070379A publication Critical patent/KR20210070379A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4061Calibration or ate or cycle tuning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 컴포넌트에 저장된 사용자 데이터의 시간적 속성이 식별된다. 식별된 시간적 속성이 시간 조건을 충족한다고 결정된다. 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하는지 여부의 표시가 제공된다. 메모리 컴포넌트의 리프레시 동작을 수행하도록 나타내는 사용자 입력이 수신된다. 메모리 컴포넌트의 리프레시 동작이 수행된다.

Description

메모리 서브-시스템의 요구 시 리프레시 동작을 수행하는 방법
본 개시의 실시예들은 일반적으로 메모리 서브-시스템들에 관한 것이며, 더 구체적으로 메모리 서브-시스템의 요구 시 리프레시 동작을 수행하는 것에 관한 것이다.
메모리 서브-시스템은 고체-상태 드라이브(SSD), 또는 하드 디스크 드라이브(HDD)와 같은, 저장 시스템일 수 있다. 메모리 서브-시스템은 이중 인-라인 메모리 모듈(DIMM), 소형 아웃라인 DIMM(SO-DIMM), 또는 비-휘발성 이중 인-라인 메모리 모듈(NVDIMM)과 같은, 메모리 모듈일 수 있다. 메모리 서브-시스템은 데이터를 저장하는 하나 이상의 메모리 컴포넌트들을 포함할 수 있다. 메모리 컴포넌트들은, 예를 들어, 비-휘발성 메모리 컴포넌트들 및 휘발성 메모리 컴포넌트들일 수 있다. 일반적으로, 호스트 시스템은 메모리 컴포넌트들에 데이터를 저장하기 위해 및 메모리 컴포넌트들로부터 데이터를 검색하기 위해 메모리 서브-시스템을 이용할 수 있다.
본 개시는 이하에서 주어진 상세한 설명으로부터 및 본 개시의 다양한 실시예들의 수반된 도면들로부터 더 완전하게 이해될 것이다.
도 1은 본 개시의 일부 실시예들에 따른 메모리 서브-시스템을 포함하는 예시적인 컴퓨팅 환경을 예시한다.
도 2는 본 개시의 일부 실시예들에 따른, 사용자 데이터의 시간적 속성에 기초하여 메모리 서브-시스템의 리프레시 동작을 수행하기 위한 예시적인 방법의 흐름도이다.
도 3은 본 개시의 일부 실시예들에 따른, 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간 차에 기초하여 메모리 서브-시스템의 리프레시 동작을 수행하기 위한 예시적인 방법의 흐름도이다.
도 4는 본 개시의 일부 실시예들에 따른, 수정된 변환 맵을 사용하여 리프레시 동작을 수행하기 위한 예시적인 방법의 흐름도이다.
도 5는 본 개시의 일부 실시예들에 따른 변환 맵을 수정하는 예를 예시한다.
도 6은 본 개시의 일부 실시예들에 따른, 설정 최적화의 유형에 기초하여 메모리 서브-시스템의 리프레시 동작을 수행하기 위한 예시적인 방법의 흐름도이다.
도 7은 본 개시의 실시예들이 동작할 수 있는 예시적인 컴퓨터 시스템의 블록도이다.
본 개시의 양상들은 메모리 서브-시스템의 리프레시 동작을 수행하는 것에 관한 것이다. 메모리 서브-시스템은 또한 이후 "메모리 디바이스"로서 불리운다. 메모리 서브-시스템의 예는 주변 상호연결(예컨대, 입력/출력 버스, 저장 영역 네트워크)을 통해 중앙 프로세싱 유닛(CPU)에 결합되는 저장 디바이스이다. 저장 디바이스의 예들은 고체-상태 드라이브(SSD), 플래시 드라이브, 범용 직렬 버스(USB) 플래시 드라이브, 및 하드 디스크 드라이브(HDD)를 포함한다. 메모리 서브-시스템의 또 다른 예는 메모리 버스를 통해 CPU에 결합되는 메모리 모듈이다. 메모리 모듈들의 예들은 이중 인-라인 메모리 모듈(DIMM), 소형 아웃라인 DIMM(SO-DIMM), 비-휘발성 이중 인-라인 메모리 모듈(NVDIMM) 등을 포함한다. 일부 실시예들에서, 메모리 서브-시스템은 하이브리드 메모리/저장 서브-시스템일 수 있다. 일반적으로, 호스트 시스템은 하나 이상의 메모리 컴포넌트들을 포함하는 메모리 서브-시스템을 이용할 수 있다. 호스트 시스템은 메모리 서브-시스템에 저장될 데이터를 제공할 수 있으며 메모리 서브-시스템으로부터 검색될 데이터를 요청할 수 있다.
메모리 서브-시스템은 호스트 시스템으로부터 데이터를 저장할 수 있는 다수의 메모리 컴포넌트들을 포함할 수 있다. 메모리 컴포넌트들은 데이터를 저장하기 위해 사용되는 메모리 셀들을 포함할 수 있다. 각각의 메모리 셀은 상기 특정한 메모리 셀에 대한 임계 전압으로서 데이터 값들을 저장할 수 있다. 각각의 별개의 임계 전압 범위는 메모리 셀에 저장된 데이터에 대한 미리 결정된 값을 나타낸다. 종래의 메모리 서브-시스템들은 메모리 셀의 상이한 임계 전압 범위들에 데이터의 비트들의 시퀀스들을 매핑함으로써 단일 메모리 셀에 다수의 비트들의 데이터를 저장할 수 있다. 데이터는 메모리 셀에 일련의 프로그래밍 펄스들을 인가하는 프로그래밍 동작을 사용함으로써 메모리 셀로 저장될 수 있다. 일련의 프로그래밍 펄스들은 대응하는 임계 전압 범위 내에서의 전압 레벨이 메모리 셀에 도달될 때까지 메모리 셀에 인가될 수 있다. 메모리 셀이 프로그램된 후, 데이터는 대응하는 임계 전압 범위에서 메모리 셀에 판독 임계 전압을 인가하고 메모리 셀에서의 관찰된 전압 레벨을 하나 이상의 이진 값들의 시퀀스로 변환함으로써 메모리 셀로부터 판독될 수 있다.
종래의 메모리 서브-시스템에서, 일단 데이터가 셀로 프로그램(예컨대, 기입)되면, 데이터의 나이는 증가하기 시작한다. 더 많은 시간이 지날수록, 일부 조건(예컨대, 전하 손실 등)은 데이터를 프로그램하기 위해 인가된 임계 전압과 데이터를 판독하기 위해 인가된 임계 전압 사이에 불일치들을 야기할 수 있다. 임계 전압에서의 변화는 데이터를 정확하게 판독하는 것을 어렵게 하거나, 또는 때때로 불가능하게 할 수 있다. 원하는 데이터의 복구가 어렵게 됨에 따라, 메모리 서브-시스템은 데이터를 복구하기 위해 에러 핸들링 흐름을 사용하려고 시도할 수 있다.
에러 핸들링 흐름에 있는 동안, 종래의 메모리 서브-시스템은 메모리 서브-시스템의 메모리 컴포넌트들에 저장되며 및/또는 그로부터 검색되는 데이터에 대한 에러 검출 및 정정(즉, 에러 제어) 동작을 구현할 수 있다. 에러는 에러 정정/핸들링 동작에 기초하여 검출되고 정정될 수 있다. 에러 정정/핸들링 동작은, 메모리 셀 상에서 수행된 초기 판독 동작으로서, 전압 임계치에서의 변화와 같은, 상이한 파라미터들을 사용한 하나 이상의 판독 재시도들을 포함할 수 있다. 에러 정정/핸들링 동작은 또한 메모리 셀로부터 판독된 비트 값들(예컨대, 0 또는 1)에 대응하는 하드(hard) 정보 및 메모리 셀에 저장된 비트 값들을 정정하기 위해 메모리 셀로부터 판독된 하드 정보가 정확하다는 확률에 대응하는 소프트(soft) 정보를 사용할 수 있다.
에러 핸들링 동작들은 시간 소모적이며 메모리 서브-시스템의 성능에 영향을 줄 수 있다. 에러 핸들링 동작들은 호스트 시스템에 의해 관찰된 바와 같이 증가된 판독 시간들 및/또는 저하된 성능을 야기할 수 있다. 더 빈번하게 에러 핸들링 동작이 트리거될수록, 더 적은 판독 동작들 및 기입 동작들이 수행될 수 있으므로 메모리 시스템의 성능은 더 느려진다. 또한, 에러 핸들링 흐름에 들어간 메모리 서브-시스템의 특정한 위치는 호스트로부터 다른 명령들을 취하는 것이 차단되어, 메모리 서브-시스템의 가용성에서의 감소를 야기한다. 사용자 또는 호스트 시스템이 메모리 셀들에 저장된 데이터의 나이가 증가할수록 증가된 에러 핸들링 동작들 또는 차단의 결과로서 이전에 기입된 데이터에 대한 상당히 감소된 판독 성능을 두드러지게 관찰할 수 있는 때가 있다.
종래의 메모리 서브-시스템에서, 배경 스캔은 메모리 서브-시스템으로 하여금 메모리 서브-시스템의 배경 리프레시를 수행하도록 허용하기 위해 주기적으로 수행될 수 있다. 배경 리프레시에서, 데이터는 메모리 서브-시스템의 성능을 개선하기 위해 메모리 서브-시스템상에서 재프로그램될 수 있다. 예를 들어, 하나 이상의 메모리 셀들에 저장되는 데이터는 또 다른 하나 이상의 메모리 셀들로 재프로그램될 수 있다. 그러나, 사용자는 배경 리프레시를 제어하기 위한 유연성을 갖지 않는다. 사용자는 사용자의 요구에 따라 배경 리프레시를 맞춤화하고, 리프레시 동작의 임의의 설정을 제어하거나 또는 배경 리프레시의 타이밍(예컨대, 리프레시 동작을 수행할 때)을 제어할 수 없다. 게다가, 배경 리프레시 동안, 메모리 서브-시스템은 배경 리프레시가 수행될 때 양호한 성능(예컨대, 특정한 판독 및/또는 기입 대기시간들)을 여전히 유지하려고 한다. 그 결과, 제한된 유형들의 알고리즘들이 배경 리프레시가 수행되고 있을 때 부가적인 성능 저하를 도입하지 않도록 배경 리프레시에서 사용될 수 있다. 일부 종래의 메모리 서브-시스템들에서, 백업 기술은 메모리 컴포넌트로 재기입될 사용자 데이터를 전송하도록 호스트 시스템에 요청할 수 있다. 그러나, 데이터를 전송하도록 호스트 시스템에 요구하는 것은 번거롭고, 불편하고, 방해적이며, 비현실적이다.
본 개시의 양상들은 호스트 시스템 또는 호스트 시스템의 사용자에 의해 구동되는 리프레시 동작을 요구-시 기반으로 제공할 수 있는 메모리 서브-시스템을 가짐으로써 상기 및 다른 결점들을 처리한다. 일부 구현들에서, 메모리 컴포넌트에 저장된 사용자 데이터의 시간적 속성(예컨대, 나이)이 식별될 수 있다. 메모리 서브-시스템은 시간적 속성이 시간 조건을 충족한다고(예컨대, 사용자 데이터의 나이가 임계 나이를 초과한다) 결정할 수 있다. 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하는지를 나타내기 위해 표시가 제공될 수 있다. 표시에 기초하여, 사용자는 메모리 컴포넌트의 리프레시 동작을 수행하도록 나타내기 위해 사용자 입력을 제공하도록 택할 수 있다. 사용자 입력을 수신하면, 리프레시 동작이 수행될 수 있다.
일부 구현들에서, 메커니즘은 호스트 시스템이 너무 빈번하게 리프레시를 개시하는 것을 막기 위해 이용될 수 있다. 예를 들어, 메모리 서브-시스템은 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간이 임계 시간을 초과하지 않는다고 결정할 수 있다. 이러한 시나리오에서, 메모리 서브-시스템은 리프레시 동작을 수행하지 않는 것으로 결정할 수 있다.
일부 구현들에서, 일단 사용자가 리프레시 동작을 수행하기 위해 사용자 입력을 제공하였다면, 메모리 서브-시스템은 다양한 기술들을 이용함으로써 리프레시 동작을 위한 사용자 데이터를 최적화할 수 있다. 보다 최적인 알고리즘들 또는 데이터 정렬들이 요구 시 리프레시 동작에서 가능하다. 배경 리프레시 동작에서, 데이터의 작은 서브세트가, 데이터를 재조직하기 위해 제한된 이용 가능한 메모리를 갖는 것과 같은, 제약들로 인해 재-조직될 수 있다. 본 개시를 사용하여, 메모리 서브-시스템은 초기 변환 맵(예컨대, 논리 대 물리 블록 어드레스 변환 맵)을 호스트 시스템으로 전송할 수 있다. 호스트 시스템은 요구 시 리프레시 동작 동안 사용될 블록 어드레스들의 최적의 패턴을 저장하고 나타내기 위해 그것의 메모리 및 컴퓨팅 리소스들을 사용할 수 있다. 그 결과, 메모리 서브-시스템은 호스트 시스템으로부터 수정된 변환 맵(예컨대, 재-조직된 논리 대 물리 블록 어드레스 변환 맵)을 수신하며 수정된 변환 맵을 사용하여 리프레시 동작을 수행할 수 있다.
일부 구현들에서, 메모리 서브-시스템은 리프레시 동작을 수행하기 위해 설정 최적화의 유형을 식별할 수 있다. 예를 들어, 설정 최적화의 유형은 성능 최적화, 데이터 보존성 최적화, 내구성 최적화, 판독 집중 최적화, 기입 집중 최적화 등을 포함할 수 있다. 메모리 서브-시스템은 그 후 결정된 설정 최적화의 유형에 기초하여 특정한 사용 설정(예컨대, 전압, 전류의 레벨, 강도, 지속기간, 인가할 펄스들의 수 등)과 같은, 리프레시 동작 파라미터를 결정할 수 있다. 메모리 서브-시스템은 특정한 설정을 사용하여 리프레시 동작을 수행할 수 있다.
본 개시는 메모리 서브-시스템을 그것의 원래 또는 개선된 성능 레벨로 이끌기 위해 메모리 서브-시스템의 요구 시 리프레시를 위한 리프레시 동작을 개시하기 위해 시스템 관리자들 및 다른 사용자들에 대한 메커니즘을 제공한다. 본 개시의 이점들은, 이에 제한되지 않지만, 동작들이 더 효율적으로 및 최적으로 수행되어, 대기시간을 최소화하며 에러 정정 동작들을 수행하는데 컴퓨팅 리소스들을 낭비하지 않으므로 메모리 서브-시스템의 증가된 성능을 포함한다. 그 결과, 메모리 서브-시스템에서의 에러 레이트는 감소되거나 또는 제거될 수 있다. 본 출원에서 제공된 요구 시 리프레시 메커니즘은 리프레시 동작의 최적화 및 최적화의 맞춤화한 속성들을 허용한다. 따라서, 메모리 서브-시스템의 전체 성능은 개선되며 호스트 시스템의 요구들을 처리할 수 있다.
도 1은 본 개시의 일부 실시예들에 따른 메모리 서브-시스템(110)을 포함하는 예시적인 컴퓨팅 환경(100)을 예시한다. 메모리 서브-시스템(110)은, 메모리 컴포넌트들(112A 내지 112N)과 같은, 미디어를 포함할 수 있다. 메모리 컴포넌트들(112A 내지 112N)은 휘발성 메모리 컴포넌트들, 비-휘발성 메모리 컴포넌트들, 또는 그것의 조합일 수 있다. 일부 실시예들에서, 메모리 서브-시스템은 저장 시스템이다. 저장 시스템의 예는 SSD이다. 일부 실시예들에서, 메모리 서브-시스템(110)은 하이브리드 메모리/저장 서브-시스템이다. 일반적으로, 컴퓨팅 환경(100)은 메모리 서브-시스템(110)을 사용하는 호스트 시스템(120)을 포함할 수 있다. 예를 들어, 호스트 시스템(120)은 메모리 서브-시스템(110)으로 데이터를 기입하며 메모리 서브-시스템(110)으로부터 데이터를 판독할 수 있다.
호스트 시스템(120)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 네트워크 서버, 이동 디바이스, 또는 메모리 및 처리 장치를 포함하는 이러한 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스일 수 있다. 호스트 시스템(120)은 호스트 시스템(120)이 메모리 서브-시스템(110)으로부터 데이터를 판독하거나 또는 그것으로 데이터를 기입할 수 있도록 메모리 서브-시스템(110)을 포함하거나 또는 그것에 결합될 수 있다. 호스트 시스템(120)은 물리적 호스트 인터페이스를 통해 메모리 서브-시스템(110)에 결합될 수 있다. 본 출원에서 사용되는 바와 같이, "~에 결합된"은 일반적으로 유선 또는 무선에 관계없이, 전기, 광학, 자기 등과 같은 연결들을 포함하는, 간접적 통신 연결 또는 직접적 통신 연결(예컨대, 매개 컴포넌트들이 없는)일 수 있는, 컴포넌트들 간의 연결을 나타낸다. 물리적 호스트 인터페이스의 예들은, 이에 제한되지 않지만, 직렬 고급 기술 접속(SATA) 인터페이스, 주변 컴포넌트 상호연결 고속(PCIe) 인터페이스, 범용 직렬 버스(USB) 인터페이스, 파이버 채널, 직렬 접속 SCSI(SAS) 등을 포함한다. 물리적 호스트 인터페이스는 호스트 시스템(120)과 메모리 서브-시스템(110) 사이에서 데이터를 송신하기 위해 사용될 수 있다. 호스트 시스템(120)은 또한 메모리 서브-시스템(110)이 PCIe 인터페이스에 의해 호스트 시스템(120)과 결합될 때 메모리 컴포넌트들(112A 내지 112N)을 액세스하기 위해 NVM 고속(NVMe) 인터페이스를 이용할 수 있다. 물리적 호스트 인터페이스는 메모리 서브-시스템(110)과 호스트 시스템(120) 사이에서 제어, 어드레스, 데이터, 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다.
메모리 컴포넌트들(112A 내지 112N)은 상이한 유형들의 비-휘발성 메모리 컴포넌트들 및/또는 휘발성 메모리 컴포넌트들의 임의의 조합을 포함할 수 있다. 비-휘발성 메모리 컴포넌트들의 예는 네거티브-앤드(NAND) 형 플래시 메모리를 포함한다. 메모리 컴포넌트들(112A 내지 112N)의 각각은 단일 레벨 셀들(SLC들) 또는 다중-레벨 셀들(MLC들)(예컨대, 삼중 레벨 셀들(TLC들) 또는 사중-레벨 셀들(QLC들))과 같은 메모리 셀들의 하나 이상의 어레이들을 포함할 수 있다. 일부 실시예들에서, 특정한 메모리 컴포넌트는 메모리 셀들의 SLC 부분 및 MLC 부분 모두를 포함할 수 있다. 메모리 셀들의 각각은 호스트 시스템(120)에 의해 사용된 하나 이상의 비트들의 데이터(예컨대, 데이터 블록들)를 저장할 수 있다. NAND 형 플래시 메모리와 같은 비-휘발성 메모리 컴포넌트들이 설명되지만, 메모리 컴포넌트들(112A 내지 112N)은 휘발성 메모리와 같은 임의의 다른 유형의 메모리에 기초할 수 있다. 일부 실시예들에서, 메모리 컴포넌트들(112A 내지 112N)은, 이제 제한되지 않지만, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 상 변화 메모리(PCM), 자기 랜덤 액세스 메모리(MRAM), 부정-or(NOR) 플래시 메모리, 전기적으로 삭제 가능한 프로그램 가능 판독-전용 메모리(EEPROM), 및 비-휘발성 메모리 셀들의 교차-점 어레이일 수 있다. 비-휘발성 메모리의 교차-점 어레이는 적층 가능한 교차-그리드형 데이터 액세스 어레이와 함께, 벌크 저항의 변화에 기초하여 비트 저장을 수행할 수 있다. 부가적으로, 많은 플래시-기반 메모리들과 대조적으로, 교차-점 비-휘발성 메모리는 제자리 기입(write in-place) 동작을 수행할 수 있으며, 여기에서 비-휘발성 메모리 셀은 비-휘발성 메모리 셀이 이전에 삭제되지 않고 프로그램될 수 있다. 더욱이, 메모리 컴포넌트들(112A 내지 112N)의 메모리 셀들은 데이터를 저장하기 위해 사용된 메모리 컴포넌트의 단위를 나타낼 수 있는 메모리 페이지들 또는 데이터 블록들로서 그룹핑될 수 있다.
메모리 시스템 제어기(115)(이후 "제어기"로서 불리움)는 메모리 컴포넌트들(112A 내지 112N)에서 데이터를 판독하는 것, 데이터를 기입하는 것, 또는 데이터를 삭제하는 것과 같은 동작들 및 다른 이러한 동작들을 수행하기 위해 메모리 컴포넌트들(112A 내지 112N)과 통신할 수 있다. 제어기(115)는 하나 이상의 집적 회로들 및/또는 이산 컴포넌트들, 버퍼 메모리, 또는 그 조합과 같은 하드웨어를 포함할 수 있다. 제어기(115)는 마이크로제어기, 특수 목적 논리 회로부(예컨대, 필드 프로그램 가능한 게이트 어레이(FPGA), 애플리케이션 특정 집적 회로(ASIC) 등), 또는 다른 적절한 프로세서일 수 있다. 제어기(115)는 로컬 메모리(119)에 저장된 지시들을 실행하도록 구성된 프로세서(처리 장치)(117)를 포함할 수 있다. 예시된 예에서, 제어기(115)의 로컬 메모리(119)는 메모리 서브-시스템(110)과 호스트 시스템(120) 사이에서 통신들을 핸들링하는 것을 포함하여, 메모리 서브-시스템(110)의 동작을 제어하는 다양한 프로세스들, 동작들, 논리 흐름들, 및 루틴들을 수행하기 위한 지시들을 저장하도록 구성된 내장형 메모리를 포함한다. 일부 실시예들에서, 로컬 메모리(119)는 메모리 포인터들, 인출 데이터 등을 저장한 메모리 레지스터들을 포함할 수 있다. 로컬 메모리(119)는 또한 마이크로-코드를 저장하기 위한 판독-전용 메모리(ROM)를 포함할 수 있다. 도 1에서의 예시적인 메모리 서브-시스템(110)은 제어기(115)를 포함하는 것으로 예시되었지만, 본 개시의 또 다른 실시예에서, 메모리 서브-시스템(110)은 제어기(115)를 포함하지 않을 수 있으며, 대신에 외부 제어(예컨대, 외부 호스트에 의해, 또는 메모리 서브-시스템으로부터 분리된 프로세서 또는 제어기에 의해 제공되는)에 의존할 수 있다.
일반적으로, 제어기(115)는 호스트 시스템(120)으로부터 명령들 또는 동작들을 수신할 수 있으며 메모리 컴포넌트들(112A 내지 112N)로의 원하는 액세스를 달성하기 위해 명령들 또는 동작들을 지시들 또는 적절한 명령들로 변환할 수 있다. 제어기(115)는 마모 레벨링 동작들, 가비지 컬렉션 동작들, 에러 검출 및 에러-정정 코드(ECC) 동작들, 암호화 동작들, 캐싱 동작들, 및 메모리 컴포넌트들(112A 내지 112N)과 연관되는 논리 블록 어드레스와 물리 블록 어드레스 간의 어드레스 변환들과 같은 다른 동작들을 책임질 수 있다. 제어기(115)는 물리적 호스트 인터페이스를 통해 호스트 시스템(120)과 통신하기 위해 호스트 인터페이스 회로부를 추가로 포함할 수 있다. 호스트 인터페이스 회로부는 메모리 컴포넌트들(112A 내지 112N)을 액세스하기 위해 호스트 시스템으로부터 수신된 명령들을 명령 지시들로 변환할 뿐만 아니라 메모리 컴포넌트들(112A 내지 112N)과 연관된 응답들을 호스트 시스템(120)을 위한 정보로 변환할 수 있다.
메모리 서브-시스템(110)은 또한 예시되지 않은 부가적인 회로부 또는 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 메모리 서브-시스템(110)은 제어기(115)로부터 어드레스를 수신하며 메모리 컴포넌트들(112A 내지 112N)을 액세스하기 위해 어드레스를 디코딩할 수 있는 캐시 또는 버퍼(예컨대, DRAM) 및 어드레스 회로부(예컨대, 행 디코더 및 열 디코더)를 포함할 수 있다.
메모리 서브-시스템(110)은 메모리 서브-시스템의 요구 시 리프레시 동작을 수행하기 위해 사용될 수 있는 메모리 리프레시 컴포넌트(113)를 포함한다. 일부 실시예들에서, 제어기(115)는 메모리 리프레시 컴포넌트(113)의 적어도 일 부분을 포함한다. 예를 들어, 제어기(115)는 본 출원에서 설명된 동작들을 수행하기 위해 로컬 메모리(119)에 저장된 지시들을 실행하도록 구성된 프로세서(117)(처리 장치)를 포함할 수 있다. 일부 실시예들에서, 메모리 리프레시 컴포넌트(113)는 호스트 시스템(120), 애플리케이션, 또는 운영 시스템의 부분이다.
메모리 리프레시 컴포넌트(113)는 메모리 컴포넌트에 저장된 사용자 데이터의 시간적 속성을 식별할 수 있다. 메모리 리프레시 컴포넌트(113)는 시간적 속성이 시간 조건을 충족한다고 결정할 수 있다. 메모리 리프레시 컴포넌트(113)는 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하는지 여부의 표시를 제공할 수 있다. 메모리 리프레시 컴포넌트(113)는 메모리 컴포넌트의 리프레시 동작을 수행하도록 나타내기 위해 사용자 입력을 수신할 수 있다. 메모리 리프레시 컴포넌트(113)는 메모리 컴포넌트의 리프레시 동작을 수행할 수 있다.
도 2는 본 개시의 일부 실시예들에 따른 사용자 데이터의 시간적 속성에 기초하여 메모리 서브-시스템의 리프레시 동작을 수행하기 위한 예시적인 방법(200)의 흐름도이다. 방법(200)은 하드웨어(예컨대, 처리 장치, 회로부, 전용 로직, 프로그램 가능한 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예컨대, 처리 장치 상에서 구동되거나 또는 실행된 지시들), 또는 그것의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(200)은 도 1의 메모리 리프레시 컴포넌트(113)에 의해 수행된다. 특정한 시퀀스 또는 순서로 도시되지만, 달리 특정되지 않는다면, 프로세스들의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 동시에 수행될 수 있다. 부가적으로, 하나 이상의 프로세스들은 다양한 실시예들에서 생략될 수 있다. 따라서, 모든 프로세스들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
동작 202에서, 처리 장치는 메모리 컴포넌트에 저장된 사용자 데이터의 시간적 속성을 식별한다. 예에서, 시간적 속성은 사용자 데이터의 나이일 수 있다. 일부 실시예들에서, 사용자 데이터의 나이는 사용자 데이터가 메모리 컴포넌트에 마지막으로 기입된 이래 경과한 시간의 양일 수 있다. 일부 실시예들에서, 시간적 속성은 메모리 서브-시스템이 파워 온된 시간의 양(즉, 파워 온 시간들) 또는 메모리 서브-시스템에 의해 수행되었거나 또는 메모리 컴포넌트를 위해 수행된 프로그램-삭제 사이클들의 평균 수와 같은 내구성 특성일 수 있다. 시간적 속성은 사용자 데이터와 함께 메타데이터로서 저장되며 처리 장치에 의해 획득될 수 있다.
동작 204에서, 처리 장치는 식별된 시간적 속성이 시간 조건을 충족한다고 결정한다. 사용자 데이터가 나이가 증가할수록, 호스트 시스템은 메모리 컴포넌트의 메모리 셀에 기입된 사용자 데이터에 대한 상당히 감소된 판독 성능을 관찰할 수 있다. 성능에서의 현저한 감소는 데이터가 메모리 셀에 기입된 후 특정한 양의 시간이 지난 뒤 보여 질 수 있다. 시간 조건은 판독 동작의 성능이 상당히 저하되었는지를 평가하기 위해 특정될 수 있다. 처리 장치는 시간적 속성이 지정된 시간 조건을 충족하는지를 결정할 수 있다. 일부 예들에서, 메모리 서브-시스템은 시간 조건이 충족되는지를 평가하기 위해 시간적 속성에 대한 임계치를 설정할 수 있다. 일부 예들에서, 처리 장치는 식별된 시간적 속성이 임계 시간 속성을 초과한다고 결정할 수 있다. 임계 시간 속성은 이전 실험들, 사용된 메모리 컴포넌트의 유형 등에 기초하여 설정(예컨대, 미리 정의)될 수 있다. 임계 시간 속성은 데이터 판독 성능 저하가 통상적으로 현저할 때의 포인트일 수 있다.
동작 206에서, 처리 장치는 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하는지 여부의 표시를 제공한다. 일부 예들에서, 표시는 시간적 속성이 시간 조건을 충족하는 것에 기초할 수 있다. 예를 들어, 처리 장치는 요구 시 리프레시 동작의 이익을 결정하기 위해 사용자 데이터의 나이를 사용하는 알고리즘을 사용할 수 있다. 이러한 알고리즘은 사용자 데이터의 다수의 판독 동작들에 기초할 수 있다. 예를 들어, 다수의 판독 동작들이 메모리 서브-시스템에 의해 사용자 데이터의 데이터 블록에 대해 수행될 수 있다. 판독 동작들의 각각은 사용자 데이터의 데이터 블록에 인가되는 상이한 판독 임계 전압에 기초할 수 있다. 예를 들어, 판독 임계 전압들의 각각은 이전 판독 임계 전압으로부터 증분될 수 있다. 사용자 데이터에서 가장 적은 수의 에러들을 야기하는 판독 임계 전압은 최적의 판독 임계 전압인 것으로 고려될 수 있다. 더욱이, 원래 판독 임계 전압과 최적의 판독 임계 전압 간의 차이는 사용자 데이터의 수명의 양을 나타낼 수 있다. 일부 실시예들에서, 원래 판독 임계 전압과 최적의 판독 임계 전압 간의 차이가 임계 전압을 초과하면, 메모리 서브-시스템은 리프레시 동작이 메모리 컴포넌트의 성능을 개선할 수 있다고 결정할 수 있다. 처리 장치는 두 개의 다음의 표시들 중 적어도 하나를 제공할 수 있다: 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선한다고 식별하는 표시, 또는 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하지 않는다고 식별하는 표시. 일부 예들에서, 처리 장치는 메모리 컴포넌트의 성능을 개선하기 위해 사용자 데이터의 리프레시 동작의 성공 확률을 제공한다. 일부 예들에서, 처리 장치는 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하는지 여부의 표시를 메모리 컴포넌트에 결합된 호스트 디바이스에 제공한다. 일부 구현들에서, 표시는, 사용자가 요구 시 리프레시 동작의 이익들에 대해 문의하지 않고, 처리 장치에 의해 사전에 제공될 수 있다. 일부 구현들에서, 사용자는 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하는지 여부의 표시를 수신하기 위해 명령을 개시할 수 있다. 처리 장치는 표시를 수신하기 위해 사용자 명령에 기초하여 표시를 제공할 수 있다.
동작 208에서, 처리 장치는 메모리 컴포넌트의 리프레시 동작을 수행하도록 나타내는 사용자 입력을 수신한다. 일부 예들에서, 사용자 입력은 호스트 시스템의 시스템 관리자 또는 사용자와 같은, 인간 사용자로부터 수신될 수 있다. 일부 예에서, 사용자 입력은 시스템 사용자로부터 수신될 수 있다. 시스템 사용자의 예는, 이에 제한되지 않지만, 재발생 시간에 실행되는 호스트 시스템, 연속 값 스트림 시스템, 연속 통합 시스템, 또는 연속 배치 시스템의 자동화 프로세스를 포함한다. 일부 실시예들에서, 시스템 사용자는 메모리 서브-시스템을 모니터링하는 건강 모니터링 시스템에 의해 개시된 프로세스일 수 있다. 일부 예들에서, 사용자 입력은 사용자가 실행할 수 있는 명령일 수 있다. 일부 예들에서, 사용자 입력은 사용자에 의해 지정된 파라미터들 및 파라미터들의 값들을 포함할 수 있다. 예를 들어, 사용자는 판독 집중 또는 기입 집중 리프레시 동작을 사용하도록 나타낼 수 있다. 판독 집중 리프레시 동작에서, 사용자 데이터는 사용자 데이터가 덜 빈번하게 및/또는 느리게 기입되고, 더 빈번하게 및/또는 빠르게 판독될 수 있도록 하는 방식으로 기입된다. 기입 집중 리프레시 동작에서, 사용자 데이터는 사용자 데이터가 더 빈번하게 및/또는 빠르게 기입되며, 덜 빈번하게 및/또는 느리게 판독될 수 있도록 하는 방식으로 기입된다. 다른 예들에서, 사용자는 성능, 데이터 보존성, 및/또는 내구성에 대해 최적화함으로써 리프레시 동작을 수행하도록 나타낼 수 있다. 성능은 얼마나 빠르게 데이터가 판독되는지에 대한 척도이다. 예를 들어, 성능에 대해 최적화될 때, 판독 동작의 성능은 증가되며, 즉 판독 동작들은 더 빠르게 및/또는 더 빈번하게 수행될 수 있다. 데이터 보존성은 메모리 서브-시스템에서 데이터가 얼마나 오래 보유될 수 있는지의 척도이다. 예를 들어, 데이터 보존성에 대해 최적화될 때, 사용자 데이터는 긴 시간 동안 메모리 서브-시스템에 보유될 수 있다. 내구성은 메모리 서브-시스템이 닳아서 못쓰게 되기 전에 메모리 서브-시스템이 얼마나 오래 지속되는지의 척도이다. 예를 들어, 내구성에 대해 최적화될 때, 메모리 서브-시스템은 메모리 서브-시스템이 닳아서 못쓰게 되기 전에 긴 시간 지속될 수 있다. 일부 예들에서, 사용자는 요구 시 리프레시 동작이 지원되는지 및/또는 리프레시 동작이 현재 허용되는지 여부의 표시를 제공받을 수 있다. 일부 예들에서, 사용자는 요구 시 리프레시가 현재 지원되는지 또는 허용되는지 여부의 표시를 수신하기 위해 명령을 개시할 수 있다.
일부 구현들에서, 처리 장치는 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간이 임계 시간을 초과하는지를 결정한다. 현재 리프레시 동작과 이전 리프레시 동작 간의 시간의 결정은 너무 빈번하게 요구 시 리프레시 동작을 수행하는 것 및 메모리 서브-시스템을 너무 이르게 저하시키는 것을 방지하기 위해 사용될 수 있다. 처리 장치가 시간이 임계 시간을 초과한다고 결정하면, 처리 장치는 리프레시 동작을 수행한다. 처리 장치가 시간이 임계 시간을 초과하지 않는다고 결정하면, 처리 장치는 리프레시 동작을 수행하지 않도록 결정한다. 처리 장치는 이전 리프레시 동작 이래 또 다른 리프레시 동작을 수행하는 것이 너무 이르다는 표시를 제공할 수 있다. 처리 장치는 또 다른 리프레시 동작이 수행될 수 있기 전에 대기 시간을 제공할 수 있다. 일부 예들에서, 처리 장치는 이전 리프레시 동작이 수행되거나 또는 시도된 이래 시간의 길이를 포함한 표시를 제공할 수 있다. 일부 예들에서, 사용자는 이전 리프레시 동작이 수행되거나 또는 시도된 이래 시간의 길이를 포함한 표시를 수신하기 위한 명령을 개시할 수 있다.
동작 210에서, 처리 장치는 메모리 컴포넌트의 리프레시 동작을 수행한다. 메모리 컴포넌트의 리프레시 동작을 수행하기 위해, 처리 장치는 메모리 컴포넌트의 제 1 위치로부터 사용자 데이터를 삭제하며 사용자 데이터를 사용하여 메모리 컴포넌트의 제 2 위치상에서 기입 동작을 수행할 수 있다. 일부 예들에서, 제 1 위치 및 제 2 위치는 상이한 위치들이다. 일부 예들에서, 제 1 위치는 제 2 위치와 동일하다.
게다가, 처리 장치는 리프레시 동작과 연관된 부가적인 정보를 제공할 수 있다. 부가적인 정보는, 메모리 서브-시스템에 의해 시도된 총 리프레시 동작들의 수, 메모리 서브-시스템에 의해 시도된 성공적인 리프레시 동작들의 수, 메모리 서브-시스템에 의해 시도된 성공적이지 못한 리프레시 동작들의 수, 메모리 서브-시스템에 의해 시도된 리프레시 동작들을 완료하기 위한 평균 시간, 메모리 서브-시스템에 의해 시도된 리프레시 동작들을 완료하기 위한 시간의 표준 편차, 리프레시 동작의 제 1 상태, 또는 메모리 서브-시스템에 의해 시도된 이전 리프레시 동작의 제 2 상태 중 하나 또는 조합을 포함할 수 있다. 일부 예들에서, 이전 리프레시 동작의 상태는, 이전 리프레시 동작이 여전히 진행 중인지, 성공적으로 완료되었는지, 완료하는데 실패하였는지 등 중 하나 이상을 포함할 수 있다. 이전 리프레시 동작이 여전히 진행 중이면, 표시는 이전 리프레시 동작의 구동 시간, 완료 퍼센트 등을 포함할 수 있다. 이전 리프레시 동작이 완료되었다면, 표시는 이전 리프레시 동작이 성공적인지 또는 실패하였는지를 포함할 수 있다. 이전 동작이 실패하였다면, 표시는 실패에 대한 이유, 실패한 특정한 블록들 등을 포함한, 실패의 세부사항들을 포함할 수 있다.
일부 예들에서, 처리 장치는 리프레시 동작이 시작하였는지 여부를 확인응답하기 위한 표시를 제공할 수 있다. 리프레시 동작이 시작되었고, 리프레시 동작이 진행 중이고, 리프레시 동작이 진행 중인 이래 시간, 리프레시 동작이 완료하기까지 남아있는 시간, 완료 퍼센트, 리프레시가 성공적으로 완료되었는지, 리프레시 동작이 중단되었는지, 리프레시 동작이 성공적이지 않았는지, 리프레시 동작이 이때 허용되지 않았는지 등 하나 이상의 표시들이 제공될 수 있다. 실패의 경우에, 실패가 왜 발생하였는지에 대한 설명이 제공될 수 있다. 설명은 디바이스가 바쁘다, 리프레시 동작을 위한 명령이 지원되지 않는다, 리프레시 동작을 위한 명령이 이때 지원되지 않는다, 리프레시 동작이 이전 수행된 이래 너무 이르다 등과 같은 정보를 포함할 수 있다.
일부 예들에서, 메모리 서브-시스템의 성능은 리프레시 동작이 수행되고 있을 때 일시적으로 저하될 수 있다. 성능에서의 일시적 저하는 데이터를 재배열할 때 유연성, 선호된 유형의 최적화 설정들을 사용하여 리프레시를 최적화하는 것, 리프레시 동작 동안 사용할 알고리즘들에 대한 더 많은 유연성 등과 같은, 성능에서의 장기 개선을 허용할 수 있다. 그 결과, 일시적 성능 저하는 일시적 저하가 발생할 것으로 예상하는 동안 사용자가 편리한 시간에 리프레시 동작을 의도적으로 개시함에 따라 수용 가능할 수 있다. 사용자는 사용자가 일시적 성능 저하를 야기하는 리프레시 동작을 예상할 수 있을 때 메모리 서브-시스템을 사용하여 다른 태스크들을 개시하는 것을 피할 수 있다. 그러므로, 리프레시 동작의 하나의 이점은 사용자가 리프레시 동작의 타이밍을 제어하고 그에 따라 계획할 수 있다는 것이다.
도 3은 본 개시의 일부 실시예들에 따른, 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간 차에 기초하여 메모리 서브-시스템의 리프레시 동작을 수행하기 위한 예시적인 방법(300)의 흐름도이다. 방법(300)은 하드웨어(예컨대, 처리 장치, 회로부, 전용 로직, 프로그램 가능한 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예컨대, 처리 장치 상에서 구동된 또는 실행된 지시들), 또는 그것의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(300)은 도 1의 메모리 리프레시 컴포넌트(113)에 의해 수행된다. 특정한 시퀀스 또는 순서로 도시되지만, 달리 특정되지 않는다면, 프로세스들의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 동시에 수행될 수 있다. 부가적으로, 하나 이상의 프로세스들은 다양한 실시예들에서 생략될 수 있다. 따라서, 모든 프로세스들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
동작 302에서, 처리 장치는 메모리 컴포넌트에 저장된 사용자 데이터의 시간적 속성을 식별한다. 예에서, 시간적 속성은 사용자 데이터의 나이, 파워 온 시간들, 또는 내구성 특성일 수 있다. 시간적 속성은 사용자 데이터와 함께 메타데이터로서 저장되며 처리 장치에 의해 획득될 수 있다. 동작 302는 동작 202에 비교 가능하다. 동작 304에서, 처리 장치는 식별된 시간적 속성이 시간 조건을 충족한다고 결정한다. 동작 304은 동작 204에 비교 가능하다. 동작 306에서, 처리 장치는 사용자 데이터의 리프레시 동작이 메모리 컴포넌트의 성능을 개선하는지 여부의 표시를 제공한다. 동작 306은 동작 206에 비교 가능하다. 동작 308에서, 처리 장치는 메모리 컴포넌트의 리프레시 동작을 수행하도록 나타내는 사용자 입력을 수신한다. 동작 308은 동작 208에 비교 가능하다.
동작 310에서, 처리 장치는 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간이 임계 시간을 초과하지 않는다고 결정한다. 현재 리프레시 및 이전 리프레시 간의 시간의 결정은 요구 시 리프레시 동작을 너무 빈번하게 수행하고 메모리 서브-시스템을 너무 이르게 저하시키는 것을 방지하기 위해 사용될 수 있다. 이와 같이, 임계 시간은 임계 시간을 초과하는 것이 리프레시 동작이 너무 빈번하게 수행되지 않음을 나타낼 수 있도록 설정될 수 있다. 시간이 임계 시간을 초과하지 않는다고 결정되면, 처리 장치는 리프레시 동작이 너무 빈번하게 수행되고 있다고 결정한다. 처리 장치는 이전 리프레시 동작 이래 또 다른 리프레시 동작을 수행하기에 너무 이르다는 표시를 제공할 수 있다. 처리 장치는 또 다른 리프레시 동작이 수행될 수 있기 전에 대기 시간을 제공할 수 있다. 일부 예들에서, 처리 장치는 이전 리프레시 동작이 수행되거나 또는 시도된 이래 시간의 길이를 포함한 표시를 제공할 수 있다. 일부 예들에서, 사용자는 이전 리프레시 동작이 수행되거나 또는 시도된 이래 시간의 길이를 포함한 표시를 수신하기 위한 명령을 개시할 수 있다.
동작 312에서, 처리 장치는 메모리 컴포넌트의 리프레시 동작을 수행하지 않도록 결정한다. 리프레시 동작을 수행하지 않는다는 결정은 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간이 임계 시간을 초과하지 않는다는 것에 기초할 수 있다. 이러한 시나리오에서, 사용자 입력이 리프레시 동작을 수행하도록 나타낼지라도, 처리 장치는 리프레시 동작을 수행하지 않는다.
도 4는 본 개시의 일부 실시예들에 따른, 수정된 변환 맵을 사용하여 리프레시 동작을 수행하기 위한 예시적인 방법(400)의 흐름도이다. 방법(400)은 하드웨어(예컨대, 처리 장치, 회로부, 전용 로직, 프로그램 가능한 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예컨대, 처리 장치 상에서 구동되거나 또는 실행된 지시들), 또는 그것의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(400)은 도 1의 메모리 리프레시 컴포넌트(113)에 의해 수행된다. 특정한 시퀀스 또는 순서로 도시되지만, 달리 특정되지 않는다면, 프로세스들의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 동시에 수행될 수 있다. 부가적으로, 하나 이상의 프로세스들은 다양한 실시예들에서 생략될 수 있다. 따라서, 모든 프로세스들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
동작 402에서, 처리 장치는 메모리 컴포넌트의 리프레시 동작을 수행하기 위해 사용자로부터 사용자 입력을 수신한다. 일부 예들에서, 사용자 입력은 호스트 시스템의 시스템 관리자 또는 사용자와 같은, 인간 사용자로부터 수신될 수 있다. 일부 예에서, 사용자 입력은 시스템 사용자로부터 수신될 수 있다. 일부 예에서, 사용자 입력은 사용자가 실행할 수 있는 명령일 수 있다. 일부 예에서, 사용자 입력은 사용자에 의해 지정된 파라미터들 및 파라미터들의 값들을 포함할 수 있다. 예를 들어, 사용자 입력은 사용자 데이터로의 순차적인 액세스를 위한 사용자 데이터를 최적화하기 위해 사용자 데이터를 재조직하도록 나타낼 수 있다.
동작 404에서, 처리 장치는 메모리 컴포넌트에 결합된 호스트 시스템으로 초기 변환 맵을 전송한다. 일부 예들에서, 초기 변환 맵은 제 1 순서를 사용하여 물리 블록 어드레스들의 수에 논리 블록 어드레스들(LBA들)의 수를 매핑하도록 구성된다. 일부 예에서, 초기 변환 맵에서 물리 블록 어드레스들에 LBA들을 제 1 순서 매핑하는 것은 비-순차적 순서에 있을 수 있다. 예를 들어, LBA들은 비-순차적 물리 블록 어드레스들에 매핑될 수 있다. 초기 변환 맵은 호스트 시스템이 잠재적으로 변환 맵의 재조직을 프로세싱하기 위해 더 많은 메모리 용량을 갖기 때문에 호스트 시스템으로 전송된다. 예를 들어, 배경 리프레시 동작에서, 재조직은 메모리 서브-시스템의 메모리 용량 제약으로 인해 변환 맵의 큰 부분에 대해 수행될 수 없다. 메모리 서브-시스템은 통상적으로 배경 리프레시 동작 동안 데이터의 작은 부분을 재조직할 수 있으며, 이것은 변환 맵을 사용할 때 판독되는 사용자 데이터의 성능을 상당히 개선하지는 않는다. 더 많은 양의 캐시 메모리로의 액세스를 갖는, 호스트 시스템은 초기 변환 맵의 큰 부분, 또는 심지어 전체 초기 변환 맵을 수신할 수 있다. 호스트 시스템은 순차적인 논리 블록 순서에 따라 전체 초기 변환 맵을 재조직할 수 있다. 사용자 데이터로의 순차적인 액세스가 랜덤 액세스보다 빠른 경우들에서, 데이터가 순차적인 논리 블록 순서에서 메모리 컴포넌트로 다시 기입될 수 있도록 변환 맵을 재조직하는 것은 성능을 상당히 개선할 수 있다. 호스트 시스템이 초기 변환 맵을 재조직한 후, 호스트 시스템은 재조직된 변환 맵을 다시 메모리 서브-시스템으로 전송할 수 있다.
동작 406에서, 처리 장치는 수정된 변환 맵을 호스트 시스템으로부터 수신한다. 일부 예들에서, 수정된 변환 맵은 제 1 순서와 상이한 제 2 순서를 사용하여 물리 블록 어드레스들의 수에 LBA들의 수를 매핑하도록 구성된다. 일부 예들에서, 수정된 변환 맵은 호스트 시스템에 의해 재조직되었던 재조직된 초기 변환 맵이다. 일부 예들에서, 호스트 시스템은, 전역적 또는 슈퍼-블록 최적화에 기초하여 사용될 블록들의 새로운, 더 최적인 패턴을 제안할 수 있다. 예를 들어, 블록들의 최적의 패턴은 워드 라인 그룹들, 평면 선택, 상이한 유형들의 메모리 셀들(예컨대, 단일-레벨 셀들(SLC들), 다중-레벨 셀들(MLC들), 삼중-레벨 셀들(TLC들), 및 사중-레벨 셀들(QLC들))의 가용성에 기초할 수 있다. 수정된 변환 맵은 순차적인 논리 블록 순서에 있을 수 있다.
동작 408에서, 처리 장치는 수정된 변환 맵을 사용하여 메모리 컴포넌트의 리프레시 동작을 수행한다. 일부 예들에서, 처리 장치는 제 2 순서에서 물리 블록 어드레스들을 사용하여 메모리 컴포넌트의 리프레시 동작을 수행한다. 일부 예들에서, 리프레시 동작을 수행하기 위해, 처리 장치는 메모리 컴포넌트의 제 1 위치로부터 사용자 데이터를 삭제하며 사용자 데이터를 사용하여 메모리 컴포넌트의 제 2 위치상에서 기입 동작을 수행한다. 일부 예들에서, 제 1 및 제 2 위치들은 동일한 위치들이지만, 다른 예들에서, 제 1 및 제 2 위치들은 상이한 위치들이다. 기입 동작은 수정된 변환 맵에 의해 표시된 제 2 순서를 사용하여 수행될 수 있다.
일부 예들에서, 제 2 위치상에서 기입 동작을 수행하기 위해, 처리 장치는 사용자 데이터를 저장하기 위해 사용자 데이터를 호스트 시스템으로 제공한다. 예를 들어, 메모리 서브-시스템은 제 2 순서로 기입될 사용자 데이터의 전체 슈퍼블록의 수신을 방지하는 캐시 메모리의 제한된 용량을 가질 수 있다. 호스트 시스템은 슈퍼블록의 콘텐트들을 일시적으로 저장하기 위해 사용될 수 있다. 일시적 저장의 프로세스 동안, 슈퍼블록의 콘텐트들은 전체 슈퍼블록 상에서의 리프레시 동작이 완료될 때까지 유효하지 않다. 처리 장치는 다수의 스테이지들에서 증분적으로 메모리 컴포넌트의 제 2 위치상에서 기입 동작을 수행한다. 사용자 데이터의 일 부분은 다수의 스테이지들의 각각의 스테이지에서 제 2 위치로 기입된다. 다수의 스테이지들을 사용하여 기입 동작을 수행하는 것의 완료 시, 처리 장치는 호스트 시스템으로부터 사용자 데이터를 삭제하도록 호스트 시스템에 나타낸다.
도 5는 본 개시의 일부 실시예들에 따른 변환 맵을 수정하는 예를 예시한다. 초기 변한 맵(510)은 도 5에서 다수의 물리 블록 어드레스들(514)에 다수의 LBA(512)를 매핑하여 도시된다. 초기 변환 맵은 물리 블록 어드레스들에 대한 제 1 순서(516)를 사용한다. LBA들(512)은 순차적인 순서로 나타나는 논리 블록 어드레스들을 포함한다. 제 1 순서(516)에서 대응하는 물리 블록 어드레스들(514)은 비-순차적인 순서에 있는 것으로 묘사된다.
도 5는 또한 배경 리프레시 동작에서 사용된 최적화 노력을 위한 수정된 변환 맵(520)을 묘사한다. 수정된 변환 맵(520)은 초기 변환 맵(510)에서 사용된 제 1 순서(516)와 상이한 순서를 사용하여 다수의 물리 블록 어드레스들(514)에 다수의 LBA(512)를 매핑한다. 변환 맵(520)의 작은 서브세트들은 배경 리프레시 동작 동안 개별적으로 재조직된다. 도시된 바와 같이, 변환 맵의 서브세트(525) 내에서, 물리 블록 어드레스들(514)은 순차적인 순서(526)로 재조직되는 것으로 묘사된다. 즉, 서브세트(525)에 대해, 값들 1, 2, 3, 및 4를 가진 LBA들은 초기 변환 맵(510)에서, 각각 11, 12, 3, 및 4의 대응하는 물리 블록 어드레스 값들을 갖는다. 배경 리프레시 동작은 데이터를 재조직하기 위해 작은 서브세트들을 사용할 수 있으므로, 서브세트(525)에 대해, 값들 1, 2, 3, 및 4를 가진 LBA들은 서브세트(525) 내에서 순차적인 순서(526)로 수정된 변환 맵(520)에서, 각각 3, 4, 11, 및 12의 대응하는 물리 블록 어드레스 값들에 매핑된다. 서브세트(527)는 528의 순차적인 순서를 가지며 서브세트(529)는 물리 블록 어드레스들에 대해 530의 순차적인 순서를 가진다. 그러나, 전체 수정된 변환 맵은 물리 블록 어드레스들(514)에 대한 순차적인 순서를 갖지 않는다. 따라서, 사용자 데이터는 순차적인 판독을 위해 전체적으로 최적화되지 않으며, 성능 개선은 크지 않다.
도 5는 요구 시 리프레시 동작을 사용한 수정된 변환 맵(540)을 묘사한다. 전체 초기 변환 맵(510)은 재조직을 위해 호스트 시스템으로 전송된다. 전체 수정된 변환 맵의 물리 블록 어드레스들(514)은 물리 블록 어드레스들 모두를 커버하는 제 2 순서(546)를 사용하여 LBA들(512)에 재-매핑되었다. 제 2 순서(546)는 제 1 순서(516)와 상이하다. 전체 제 2 순서(546)는 물리 블록 어드레스들의 순차적인 순서에 있다. 수정된 변환 맵(540)은 수정된 변환 맵(540)의 순차적인 순서를 사용하여 리프레시 동작을 위해 사용하는 데이터의 재기입 시 사용을 위해 메모리 서브-시스템으로 전송될 수 있다. 전체 변환 맵이 순차적으로 순서화되므로, 데이터는 순차적인 판독을 위해 전체적으로 최적화되며, 성능 개선은 최대화된다.
도 6은 본 개시의 일부 실시예들에 따른, 설정 최적화의 유형에 기초하여 메모리 서브-시스템의 리프레시 동작을 수행하기 위한 예시적인 방법(600)의 흐름도이다. 방법(600)은 하드웨어(예컨대, 처리 장치, 회로부, 전용 로직, 프로그램 가능한 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예컨대, 처리 장치 상에서 구동되거나 또는 실행된 지시들), 또는 그것의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(600)은 도 1의 메모리 리프레시 컴포넌트(113)에 의해 수행된다. 특정한 시퀀스 또는 순서로 도시되지만, 달리 특정되지 않는다면, 프로세스들의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 동시에 수행될 수 있다. 부가적으로, 하나 이상의 프로세스들은 다양한 실시예들에서 생략될 수 있다. 따라서, 모든 프로세스들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
동작 602에서, 처리 장치는 메모리 컴포넌트의 리프레시 동작을 수행하기 위해 설정 최적화의 유형을 결정한다. 설정 최적화의 유형은, 성능 최적화, 데이터 보존성 최적화, 내구성 최적화, 판독 집중 최적화, 기입 집중 최적화 중 하나 또는 조합을 포함할 수 있다.
일부 구현들에서, 처리 장치는 메모리 컴포넌트에 의해 수행된 워크로드를 식별하며 식별된 워크로드에 기초하여 설정 최적화의 유형을 결정한다. 일부 예들에서, 식별된 워크로드는 워크로드 패턴을 나타낸다. 워크로드 패턴은 기입 집중 워크로드 패턴, 또는 판독 집중 워크로드 패턴으로서 식별될 수 있다. 예를 들어, 처리 장치는 메모리 서브-시스템이 경과된 시간 기간 동안 판독 집중 워크로드를 실행하였음을 식별할 수 있다. 그 결과, 처리 장치는 다음 리프레시 동작을 위해 기입 집중 워크로드로 스위칭하도록 결정할 수 있다. 일부 구현들에서, 처리 장치는 설정 최적화의 유형을 나타내는 사용자 입력을 수신한다. 처리 장치는 그 후 사용자 입력에 기초하여 설정 최적화의 유형을 결정한다.
예를 들어, 사용자가 빈번한 간격으로(예컨대, 2주마다) 리프레시 동작을 개시할 것으로 예상한다면, 사용자는 데이터가 긴 기간 동안 보유될 필요가 없으므로 최적화의 데이터 보존성 양상의 우선순위를 낮출 수 있다. 이와 같이, 사용자는 데이터의 성능을 우선화하며 데이터 판독의 성능에 대한 리프레시 동작 동안 데이터의 기입을 최적화하도록 나타낼 수 있다. 사용자는 성능 최적화이도록 설정 최적화의 유형을 나타내는 사용자 입력을 제공할 수 있다. 또 다른 예에서, 데이터베이스 시스템의 사용자는 데이터베이스 시스템이 판독 집중인 것으로 워크로드를 예상할 수 있다. 사용자는 판독 집중 최적화이도록 설정 최적화의 유형을 나타내는 사용자 입력을 제공할 수 있다.
동작 604에서, 처리 장치는 결정된 설정 최적화의 유형에 기초하여 사용할 리프레시 동작 파라미터를 결정한다. 일부 예들에서, 리프레시 동작 파라미터는 특정한 설정일 수 있다. 특정한 설정은 메모리 서브-시스템의 "TRIM" 설정일 수 있다. TRIM 설정들은 메모리 서브-시스템이 상이하게 거동하게 하는 메모리 서브-시스템에서 레지스터들에서의 값들이다. 예를 들어, TRIM 설정은 표준 기입 동작에서 사용할 워드-라인 전류의 디폴트 양을 포함할 수 있다. 또 다른 예에서, 판독 동작을 위한 디폴트 임계 전압은 TRIM 설정에서 지정된다. 일부 예들에서, 저정된 설정은, 리프레시 동작을 위해 사용할 임계 전압, 리프레시 동작을 위해 사용할 지정된 레벨의 전류, 리프레시 동작을 위해 사용할 지정된 레벨의 강도(예컨대, 특정한 전압 레벨), 리프레시 동작을 위해 사용할 시간의 지속기간, 또는 리프레시 동작을 위해 사용된 기입 동작의 펄스들의 수 중 하나 또는 그것의 조합을 포함할 수 있다. 메모리 서브-시스템은 결정된 설정 최적화의 유형을 달성할 수 있는 특정한 설정의 값을 수정할 수 있다. 사용된 특정한 설정에 기초하여, 메모리 서브-시스템은 상이하게 거동한다(예컨대, 더 빠르게 기입하고, 더 느리게 기입하는 등).
다른 예들에서, 특정한 설정은 또한 데이터가 기입되는 곳을 식별할 수 있다. 통상적으로, 더 적은 비트들을 가진 셀로 데이터를 기입하는 것이 더 빠르다. 더 적은 비트들을 가진 셀은 데이터를 독출하기 위한 더 많은 마진 및 그러므로 더 양호한 데이터 보존성을 가진다. 셀 당 더 많은 비트들이 있다면, 기입 성능은 일반적으로 데이터를 기입하는 것이 더 긴 시간의 양이 걸릴 수 있으므로 더 느리며 데이터가 나이가 듦에 따라 데이터를 성공적으로 독출하는 감소된 확률이 있다. 이와 같이, 예를 들어, 성능 전용 최적화에서, 빈번하게 액세스된 데이터는 셀 당 더 적은 비트들을 위해 구성된 셀들로 기입될 수 있지만, 덜 빈번하게 액세스된 데이터는 셀 위치들마다 더 높은 비트들로 기입될 수 있다. 보존성 전용 최적화에서, 일부 셀들은 일부 블록들 상에서 셀 당 비트들의 수를 감소시키며 디바이스의 용량을 여전히 유지하면서 셀을 판독하는데 더 많은 마진들을 허용하도록 재구성될 수 있다.
이전에 논의된 바와 같이, 시간의 경과에 따라, 데이터를 판독하기 위해 인가된 임계 전압은 특정한 유형의 메모리 컴포넌트, 전하 손실 조건이 발생하였는지 등과 같은, 다양한 인자들에 기초하여 자연스럽게 시프트할 수 있다. TRIM 값들은 판독 동작 동안 사용할 판독 임계 전압을 설정할 수 있다. 예에서, 설정 최적화의 유형이 성능 최적화로서 결정된다면, 판독 임계 전압은 제 1 지정된 범위 내에 있는 것으로 설정될 수 있으며, 따라서, 성공적인 판독 동작이 달성될 수 있으며 에러 핸들링 흐름이 회피될 수 있다. 또 다른 예에서, 설정 최적화의 유형이 내구성 최적화로서 결정된다면, 판독 임계 전압은 원하는 내구성을 달성하기 위해 제 2 지정된 범위 내에 있도록 설정될 수 있다.
예를 들어, 설정 최적화의 유형이 기입 집중 최적화인 것으로 결정되면, 리프레시 동작에 대한 기입 동작을 위해 사용할 지정된 레벨의 전류 또는 사용할 임계 전압은 임계 전압이 판독 집중 최적화를 위한 것보다 더 높은 레벨에 있도록 선택될 수 있다. 더 높은 레벨의 전류 또는 임계 전압은 기입 동작을 더 빠르게 할 수 있다.
또 다른 예에서, 설정 최적화의 유형이 판독 집중 최적화인 것으로 결정되면, 기입 동작은 데이터의 성공적인 제 1 판독의 확률이 증가되며 그 결과 전체 판독 속도가 증가되도록 더 느린 기입을 사용하여 수행될 수 있다. 통상적으로, 기입 동작을 수행할 때, 다수의 패스들이 기입 동작을 완료하기 위해 사용된다. 그렇게 할 때, 기입 동작의 품질은 기입 동작의 성능에 대해 균형을 이룬다. 품질은 데이터가 얼마나 정확한지를 나타내며 성능은 동작이 얼마나 빠르게 수행되는지를 나타낸다. 일반적으로 품질과 성능 사이에 트레이드-오프가 있으며, 따라서 품질이 증가되면, 성능은 감소할 수 있다. 정상 동작 조건들하에서, 동작은 양호한 품질의 데이터를 제공하기 위해 최소의 양의 전하를 유지하면서 빠르도록 요구된다. 요구 시 리프레시 시나리오에서, 성능(예컨대, 속도)은 일시적 성능 저하가 수용 가능할 수 있으므로 감소되도록 허용될 수 있다. 기입 동작은 더 높은 정확도를 갖고 및 느린 방식으로 수행될 수 있으며, 따라서 필요한 양의 전하가 각각의 메모리 셀에 들어갈 수 있다. 그 결과, 판독 성능은 기입 동작 동안 달성된 정확도로 인해 개선된다. 더 양호한 기입 정확도는 또한 더 많은 패스들이 기입 동작을 완료하도록 허용함으로써 달성될 수 있다. 부가적으로, 기입 동작을 수행하기 위한 시간을 증가시킬 수 있는 더 적은 전류가 사용될 수 있다.
동작 606에서, 처리 장치는 리프레시 동작 파라미터(예컨대, 특정한 설정)를 사용하여 메모리 컴포넌트의 리프레시 동작을 수행한다. 일부 예들에서, 처리 장치는 메모리 컴포넌트의 제 1 위치로부터 사용자 데이터를 삭제하며 사용자 데이터를 사용하여 메모리 컴포넌트의 제 2 위치상에서 기입 동작을 수행할 수 있다. 일부 예들에서, 제 1 위치 및 제 2 위치는 서로 상이한 위치들이다. 일부 예들에서, 제 1 위치는 제 2 위치와 동일하다.
도 7은 기계로 하여금 본 출원에서 논의된 방법들 중 임의의 하나 이상을 수행하게 하기 위해, 지시들의 세트가 실행될 수 있는 컴퓨터 시스템(700)의 예시적인 기계를 예시한다. 일부 예들에서, 컴퓨터 시스템(700)은 메모리 서브-시스템(예컨대, 도 1의 메모리 서브-시스템(110))을 포함하고, 그것에 결합되거나, 또는 그것을 이용하는 호스트 시스템(예컨대, 도 1의 호스트 시스템(120))에 대응할 수 있거나 또는 제어기의 동작들을 수행하기 위해(예컨대, 도 1의 메모리 리프레시 컴포넌트(113)에 대응하는 동작들을 수행하도록 운영 시스템을 실행하기 위해) 사용될 수 있다. 대안적인 실시예들에서, 기계는 LAN, 인트라넷, 엑스트라넷, 및/또는 인터넷에서 다른 기계들에 연결(예컨대, 네트워크화)될 수 있다. 기계는 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 기계의 용량에서, 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 기계로서, 또는 클라우드 컴퓨팅 기반시설 또는 환경에서 서버 또는 클라이언트 기계로서 동작할 수 있다.
기계는 개인용 컴퓨터(PC), 태블릿 PC, 셋-탑 박스(STB), 개인용 디지털 보조기(PDA), 휴대 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 상기 기계에 의해 취해질 동작들을 특정하는 지시들의 세트를 실행할 수 있는(순차적 또는 그 외) 임의의 기계일 수 있다. 뿐만 아니라, 단일 기계가 예시되지만, 용어 "기계"는 또한 본 출원에서 논의된 방법들 중 임의의 하나 이상을 수행하기 위해 지시들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 기계들의 임의의 모음을 포함하도록 취해질 수 있다.
예시적인 컴퓨터 시스템(700)은 버스(730)를 통해 서로 통신하는, 처리 장치(702), 메인 메모리(704)(예컨대, 판독-전용 메모리(ROM), 플래시 메모리, 동기식 DRAM(SDRAM) 또는 램버스 DRAM(RDRAM)과 같은 동적 랜덤 액세스 메모리(DRAM) 등), 정적 메모리(706)(예컨대, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 데이터 저장 시스템(718)을 포함한다.
처리 장치(702)는 마이크로프로세서, 중앙 프로세싱 유닛 등과 같은, 하나 이상의 범용 처리 장치들을 나타낸다. 보다 특히, 처리 장치는 복합 지시 세트 컴퓨팅(CISC) 마이크로프로세서, 축소 지시 세트 컴퓨팅(RISC) 마이크로프로세서, 매우 긴 지시 워드(VLIW) 마이크로프로세서, 또는 다른 지시 세트들을 구현한 프로세서, 또는 지시 세트들의 조합을 구현한 프로세서들일 수 있다. 처리 장치(702)는 또한 애플리케이션 특정 집적 회로(ASIC), 필드 프로그램 가능한 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수-목적 처리 장치들일 수 있다. 처리 장치(702)는 본 출원에서 논의된 동작들 및 단계들을 수행하기 위한 지시들(726)을 실행하도록 구성된다. 컴퓨터 시스템(700)은 네트워크(720)를 통해 통신하기 위해 네트워크 인터페이스 디바이스(708)를 추가로 포함할 수 있다.
데이터 저장 시스템(718)은 본 출원에서 논의된 방법들 또는 기능들 중 임의의 하나 이상을 구체화한 하나 이상의 세트들의 지시들(726) 또는 소프트웨어가 저장되는 기계-판독 가능한 저장 매체(724)(또한, 컴퓨터-판독 가능한 매체로서 알려짐)를 포함할 수 있다. 지시들(726)은 또한 컴퓨터 시스템(700)에 의한 실행 동안 메인 메모리(704) 내에 및/또는 처리 장치(702) 내에, 완전히 또는 적어도 부분적으로 존재할 수 있으며, 메인 메모리(704) 및 처리 장치(702)는 또한 기계-판독 가능한 저장 미디어를 구성한다. 기계-판독 가능한 저장 매체(724), 데이터 저장 시스템(718), 및/또는 메인 메모리(704)는 도 1의 메모리 서브-시스템(110)에 대응할 수 있다.
일 실시예에서, 지시들(726)은 메모리 리프레시 컴포넌트(예컨대, 도 1의 메모리 리프레시 컴포넌트(113))에 대응하는 기능을 구현하기 위한 지시들을 포함한다. 기계-판독 가능한 저장 매체(724)는 예시적인 실시예에서 단일 매체인 것으로 도시되지만, 용어 "기계-판독 가능한 저장 매체"는 하나 이상의 세트들의 지시들을 저장하는 단일 매체 또는 다수의 미디어를 포함하는 것으로 취해져야 한다. 용어 "기계-판독 가능한 저장 매체"는 또한 기계에 의한 실행 동안 지시들의 세트를 저장하거나 또는 인코딩할 수 있으며 기계로 하여금 본 개시의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 취해질 것이다. 용어 "기계-판독 가능한 저장 매체"는 따라서 이에 제한되지 않지만, 고체-상태 메모리들, 광학 미디어, 및 자기 미디어를 포함하는 것으로 취해질 것이다.
앞서 말한 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내에서 데이터 비트들에 대한 동작들의 알고리즘들 및 심볼 표현들에 대하여 제공되었다. 이들 알고리즘적 설명들 및 표현들은 그들의 작업의 본질을 이 기술분야의 다른 숙련자들에게 가장 효과적으로 전달하기 위해 데이터 프로세싱 기술들에서의 숙련자들에 의해 사용되는 방식들이다. 알고리즘은 여기에서, 및 일반적으로 원하는 결과를 이끄는 동작들의 일관성 있는 시퀀스인 것으로 인지된다. 동작들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 반드시는 아니지만, 보통, 이들 양들은 저장되고, 조합되고, 비교되며, 그 외 조작될 수 있는 전기적 또는 자기적 신호들의 형태를 취한다. 때로는, 주로 일반적인 사용의 이유들로, 이들 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등으로 나타내는 것이 편리하다는 것이 증명되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되며 단지 이들 양들에 적용된 편리한 라벨들이라는 것을 명심해야 한다. 본 개시는 컴퓨터 시스템의 레지스터들 및 메모리들 내에서 물리적 (전자) 양들로서 표현된 데이터를 조작하며 이를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장 시스템들 내에서의 물리적 양들로서 유사하게 표현된 다른 데이터로 변환하는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 동작 및 프로세스들을 나타낼 수 있다.
본 개시는 또한 본 출원에서 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 의도된 목적들을 위해 특수하게 구성될 수 있거나, 또는 그것은 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 또는 재구성된 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 이에 제한되지 않지만, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기-광학 디스크들을 포함한 임의의 유형의 디스크, 판독-전용 메모리들(ROM들), 랜덤 액세스 메모리들(RAM들), EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 지시들을 저장하는데 적합한 임의의 유형의 미디어와 같은, 컴퓨터 판독 가능한 저장 매체에 저장될 수 있으며, 각각은 컴퓨터 시스템 버스에 결합된다.
본 출원에서 제공된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정한 컴퓨터 또는 다른 장치에 관련되지 않는다. 다양한 범용 시스템들은 본 출원에서의 교시들에 따른 프로그램들과 함께 사용될 수 있거나, 또는 방법을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리하다는 것을 증명할 수 있다. 다양한 이들 시스템들을 위한 구조는 이하의 설명에서 제시된 것으로 나타날 것이다. 또한, 본 개시는 임의의 특정한 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어들은 본 출원에서 설명된 바와 같이 본 개시의 교시들을 구현하기 위해 사용될 수 있다는 것이 이해될 것이다.
본 개시는 본 개시에 따른 프로세스를 수행하도록 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그램하기 위해 사용될 수 있는, 그것 상에 지시들을 저장한 기계-판독 가능한 매체를 포함할 수 있는, 컴퓨터 프로그램 제품, 또는 소프트웨어로서 제공될 수 있다. 기계-판독 가능한 매체는 기계(예컨대, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 일부 실시예들에서, 기계-판독 가능한(예컨대, 컴퓨터-판독 가능한) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 미디어, 광학 저장 미디어, 플래시 메모리 컴포넌트들 등과 같은 기계(예컨대, 컴퓨터) 판독 가능한 저장 매체를 포함한다.
앞서 말한 명세서에서, 본 개시의 실시예들은 그것의 특정 예시적인 실시예들을 참조하여 설명되었다. 다양한 수정들이 다음의 청구항들에서 제시된 바와 같이 본 개시의 실시예들의 더 넓은 사상 및 범위로부터 벗어나지 않고 그것에 대해 이루어질 수 있다는 것이 명백할 것이다. 명세서 및 도면들은, 따라서, 제한적인 의미보다는 예시적인 의미로 간주될 것이다.

Claims (22)

  1. 시스템에 있어서,
    메모리 컴포넌트; 및
    상기 메모리 컴포넌트에 동작 가능하게 결합되는 처리 장치로서,
    상기 메모리 컴포넌트에 저장된 사용자 데이터의 시간적 속성을 식별하고;
    상기 식별된 시간적 속성이 시간 조건을 충족한다고 결정하고;
    상기 식별된 시간적 속성이 상기 시간 조건을 충족한다고 결정할 때, 상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선하는지 여부의 표시를 제공하고;
    상기 메모리 컴포넌트의 리프레시 동작을 수행하도록 나타내는 사용자 입력을 수신하고;
    상기 메모리 컴포넌트의 리프레시 동작을 수행하는, 상기 처리 장치를 포함하는, 시스템.
  2. 청구항 1에 있어서, 상기 시간적 속성은 상기 사용자 데이터가 상기 메모리 컴포넌트에 저장된 이래 경과한 시간의 양을 나타내고, 상기 식별된 시간적 속성이 제 1 시간 조건을 충족한다고 결정하기 위해, 상기 처리 장치는,
    상기 경과한 시간의 양이 임계 시간의 양을 초과한다고 결정하는, 시스템.
  3. 청구항 1에 있어서, 상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선하는지 여부의 상기 표시를 제공하기 위해, 상기 처리 장치는,
    상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선한다고 식별하는 표시; 또는
    상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선하지 않는다고 식별하는 표시, 중 적어도 하나를 제공하는, 시스템.
  4. 청구항 1에 있어서, 상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선하는지 여부의 상기 표시를 제공하기 위해, 상기 처리 장치는 상기 메모리 컴포넌트의 성능을 개선하기 위해 상기 사용자 데이터의 리프레시 동작의 성공 확률을 제공하는, 시스템.
  5. 청구항 1에 있어서, 상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선하는지 여부의 상기 표시를 제공하기 위해, 상기 처리 장치는,
    상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선하는지를 식별하기 위해 상기 표시를 상기 메모리 컴포넌트에 결합된 호스트 시스템에 제공하는, 시스템.
  6. 청구항 1에 있어서, 상기 메모리 컴포넌트의 리프레시 동작을 수행하기 위해, 상기 처리 장치는,
    상기 메모리 컴포넌트의 제 1 위치로부터 상기 사용자 데이터를 삭제하며;
    상기 사용자 데이터를 사용하여 상기 메모리 컴포넌트의 제 2 위치상에서 기입 동작을 수행하는, 시스템.
  7. 청구항 6에 있어서, 상기 제 1 위치는 상기 제 2 위치와 동일한, 시스템.
  8. 청구항 1에 있어서, 상기 처리 장치는,
    상기 리프레시 동작과 연관된 하나 이상의 정보를 더 제공하며, 상기 하나 이상의 정보는,
    상기 메모리 컴포넌트와 연관되어 시도된 총 리프레시 동작들의 수;
    상기 메모리 컴포넌트와 연관되어 시도된 성공적인 리프레시 동작들의 수;
    상기 메모리 컴포넌트와 연관되어 시도된 성공적이지 않은 리프레시 동작들의 수;
    상기 메모리 컴포넌트와 연관되어 시도된 리프레시 동작들을 완료하기 위한 평균 시간;
    상기 메모리 컴포넌트와 연관되어 시도된 리프레시 동작들을 완료하기 위한 시간의 표준 편차;
    상기 리프레시 동작의 제 1 상태; 또는
    상기 메모리 컴포넌트와 연관되어 시도된 이전 리프레시 동작의 제 2 상태 중 하나 이상을 포함하는, 시스템.
  9. 청구항 1에 있어서, 상기 메모리 컴포넌트의 리프레시 동작을 수행하기 전에, 상기 처리 장치는,
    상기 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간이 임계 시간을 초과한다고 결정하는, 시스템.
  10. 시스템에 있어서,
    메모리 컴포넌트; 및
    상기 메모리 컴포넌트에 동작 가능하게 결합된 처리 장치로서,
    상기 메모리 컴포넌트에 저장된 사용자 데이터의 시간적 속성을 식별하고;
    상기 식별된 시간적 속성이 시간 조건을 충족한다고 결정하고;
    상기 식별된 시간적 속성이 상기 시간 조건을 충족한다고 결정할 때, 상기 사용자 데이터의 리프레시 동작이 상기 메모리 컴포넌트의 성능을 개선하는지 여부의 표시를 제공하고;
    상기 메모리 컴포넌트의 리프레시 동작을 수행하도록 나타내는 사용자 입력을 수신하고;
    상기 리프레시 동작과 이전 수행된 리프레시 동작 간의 시간이 임계 시간을 초과하지 않는다고 결정하고;
    상기 메모리 컴포넌트의 리프레시 동작을 수행하지 않도록 결정하는, 상기 처리 장치를 포함하는, 시스템.
  11. 방법에 있어서,
    메모리 컴포넌트의 리프레시 동작을 수행하기 위해 사용자로부터 사용자 입력을 수신하는 단계;
    상기 메모리 컴포넌트의 리프레시 동작을 수행하기 위해 상기 사용자로부터 사용자 입력을 수신할 때, 초기 변환 맵을 상기 메모리 컴포넌트에 결합된 호스트 시스템으로 전송하는 단계;
    상기 호스트 시스템으로부터, 수정된 변환 맵을 수신하는 단계; 및
    처리 장치에 의해, 상기 수정된 변환 맵을 사용하여 상기 메모리 컴포넌트의 리프레시 동작을 수행하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서, 상기 초기 변환 맵은 제 1 순서를 사용하여 복수의 물리 블록 어드레스들에 복수의 논리 블록 어드레스들(LBA들)을 매핑하도록 구성되며, 상기 수정된 변환 맵은 상기 제 1 순서와 상이한 제 2 순서를 사용하여 상기 복수의 물리 블록 어드레스들에 상기 복수의 LBA들을 매핑하도록 구성되는, 방법.
  13. 청구항 12에 있어서, 상기 수정된 변환 맵을 사용하여 상기 메모리 컴포넌트의 리프레시 동작을 수행하는 단계는,
    상기 제 2 순서로 상기 물리 블록 어드레스들을 사용하여 상기 메모리 컴포넌트의 리프레시 동작을 수행하는 단계를 포함하는, 방법.
  14. 청구항 11에 있어서, 상기 메모리 컴포넌트의 리프레시 동작을 수행하는 단계는,
    상기 메모리 컴포넌트의 제 1 위치로부터 사용자 데이터를 삭제하는 단계; 및
    상기 사용자 데이터를 사용하여 상기 메모리 컴포넌트의 제 2 위치상에서 기입 동작을 수행하는 단계를 포함하는, 방법.
  15. 청구항 14에 있어서, 상기 메모리 컴포넌트의 상기 제 2 위치상에서 기입 동작을 수행하는 단계는,
    상기 사용자 데이터를 저장하기 위해 상기 사용자 데이터를 상기 호스트 시스템으로 제공하는 단계;
    복수의 스테이지들에서 증분적으로 상기 메모리 컴포넌트의 상기 제 2 위치상에서 상기 기입 동작을 수행하는 단계로서, 상기 사용자 데이터의 일 부분은 상기 복수의 스테이지들의 각각의 스테이지에서 상기 제 2 위치로 기입되는, 상기 수행하는 단계; 및
    상기 복수의 스테이지들을 사용하여 상기 기입 동작을 수행하는 것의 완료 시, 상기 호스트 시스템으로부터 상기 사용자 데이터를 삭제하도록 상기 호스트 시스템에 나타내는 단계를 포함하는, 방법.
  16. 비일시적 컴퓨터-판독 가능 저장 매체로서, 처리 장치에 의해 실행 시, 상기 처리 장치가,
    메모리 컴포넌트의 리프레시 동작을 수행하기 위해 설정 최적화의 유형을 결정하고;
    상기 결정된 설정 최적화의 유형에 기초하여 사용할 리프레시 동작 파라미터를 결정하고;
    상기 리프레시 동작 파라미터를 사용하여 상기 메모리 컴포넌트의 리프레시 동작을 수행하도록 하는 인스트럭션을 포함하는, 비일시적 컴퓨터-판독 가능 저장 매체.
  17. 청구항 16에 있어서, 상기 설정 최적화의 유형을 결정하기 위해, 상기 처리 장치는,
    상기 메모리 컴포넌트와 연관된 수행된 워크로드를 식별하고;
    상기 식별된 워크로드에 기초하여 상기 설정 최적화의 유형을 결정하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  18. 청구항 17에 있어서, 상기 식별된 워크로드는,
    기입 집중 워크로드 패턴, 또는
    판독 집중 워크로드 패턴 중 하나에 대응하는 워크로드 패턴을 나타내는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  19. 청구항 16에 있어서, 상기 설정 최적화의 유형을 결정하기 위해, 상기 처리 장치는,
    상기 설정 최적화의 유형을 나타내는 사용자 입력을 수신하고;
    상기 사용자 입력에 기초하여 상기 설정 최적화의 유형을 결정하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  20. 청구항 16에 있어서, 상기 설정 최적화의 유형은,
    성능 최적화;
    데이터 보존성 최적화;
    내구성 최적화;
    판독 집중 최적화; 또는
    기입 집중 최적화 중 하나 이상에 대응하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  21. 청구항 16에 있어서, 상기 리프레시 동작 파라미터는,
    상기 리프레시 동작을 위해 사용할 임계 전압;
    상기 리프레시 동작을 위해 사용할 지정된 레벨의 전류;
    상기 리프레시 동작을 위해 사용할 지정된 레벨의 강도;
    상기 리프레시 동작을 위해 사용할 시간의 지속기간; 또는
    상기 리프레시 동작을 위해 사용할 패스들의 수, 중 하나 이상을 포함하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  22. 청구항 16에 있어서, 상기 메모리 컴포넌트의 리프레시 동작을 수행하기 위해, 상기 처리 장치는,
    상기 메모리 컴포넌트의 제 1 위치로부터 사용자 데이터를 삭제하고;
    상기 리프레시 동작 파라미터를 사용하여 상기 사용자 데이터에 기초하여 상기 메모리 컴포넌트의 제 2 위치상에서 기입 동작을 수행하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
KR1020217016067A 2018-10-31 2019-10-30 메모리 서브-시스템의 요구 시 리프레시 동작을 수행하는 방법 KR20210070379A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/177,216 2018-10-31
US16/177,216 US10692559B2 (en) 2018-10-31 2018-10-31 Performing an on demand refresh operation of a memory sub-system
PCT/US2019/058957 WO2020092642A1 (en) 2018-10-31 2019-10-30 Performing an on demand refresh operation of a memory sub-system

Publications (1)

Publication Number Publication Date
KR20210070379A true KR20210070379A (ko) 2021-06-14

Family

ID=70327274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217016067A KR20210070379A (ko) 2018-10-31 2019-10-30 메모리 서브-시스템의 요구 시 리프레시 동작을 수행하는 방법

Country Status (5)

Country Link
US (3) US10692559B2 (ko)
EP (1) EP3874503A4 (ko)
KR (1) KR20210070379A (ko)
CN (1) CN113168862A (ko)
WO (1) WO2020092642A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10440153B1 (en) 2016-02-08 2019-10-08 Microstrategy Incorporated Enterprise health score and data migration
US11637748B2 (en) * 2019-08-28 2023-04-25 Microstrategy Incorporated Self-optimization of computing environments
US11210189B2 (en) 2019-08-30 2021-12-28 Microstrategy Incorporated Monitoring performance of computing systems
US11354216B2 (en) 2019-09-18 2022-06-07 Microstrategy Incorporated Monitoring performance deviations
US11360881B2 (en) 2019-09-23 2022-06-14 Microstrategy Incorporated Customizing computer performance tests
US11438231B2 (en) 2019-09-25 2022-09-06 Microstrategy Incorporated Centralized platform management for computing environments
US11081189B1 (en) 2020-02-25 2021-08-03 Micron Technology, Inc. Charge loss compensation
US20220413761A1 (en) * 2021-06-25 2022-12-29 Western Digital Technologies, Inc. Data Retention-Specific Refresh Read
US11989539B2 (en) * 2022-06-21 2024-05-21 Red Hat, Inc. Continuous integration and deployment system time-based management
US20240103737A1 (en) * 2022-09-23 2024-03-28 Micron Technology, Inc. Refreshing a memory block on power up based on an age and/or temperature condition

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638529A (en) 1992-08-24 1997-06-10 Intel Corporation Variable refresh intervals for system devices including setting the refresh interval to zero
JP3599541B2 (ja) 1997-11-27 2004-12-08 シャープ株式会社 不揮発性半導体記憶装置
US20050144372A1 (en) 2003-12-31 2005-06-30 Robert Walker Memory device controlled with user-defined commands
JP4263645B2 (ja) 2004-03-17 2009-05-13 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ 磁気ディスク装置及びリフレッシュ方法
KR20040034660A (ko) 2004-03-31 2004-04-28 강남수 메모리 반도체 장치의 구조 및 그 구동 방식
US8938655B2 (en) 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
CN103392181B (zh) 2010-07-27 2018-04-27 梅索磅秤技术有限公司 消耗品数据管理
US8650353B2 (en) 2011-07-01 2014-02-11 Intel Corporation Apparatus, system, and method for refreshing non-volatile memory
US9165668B1 (en) 2013-07-29 2015-10-20 Western Digital Technologies, Inc. Data retention monitoring using temperature history in solid state drives
US8908443B1 (en) * 2014-05-27 2014-12-09 Sandisk Technologies Inc. Storage device and method for performing a self-refresh operation
US9952802B2 (en) 2015-02-20 2018-04-24 Khalifa University of Science and Technology Volatile memory erasure by controlling refreshment of stored data
US10579471B2 (en) * 2017-03-02 2020-03-03 Toshiba Memory Corporation Storage device and error correction method for storage device

Also Published As

Publication number Publication date
EP3874503A1 (en) 2021-09-08
US11605414B2 (en) 2023-03-14
EP3874503A4 (en) 2022-08-03
US20220238152A1 (en) 2022-07-28
US11302375B2 (en) 2022-04-12
WO2020092642A1 (en) 2020-05-07
CN113168862A (zh) 2021-07-23
US20200335153A1 (en) 2020-10-22
US20200135264A1 (en) 2020-04-30
US10692559B2 (en) 2020-06-23

Similar Documents

Publication Publication Date Title
US11302375B2 (en) Performing an on demand refresh operation of a memory sub-system
KR20220104240A (ko) 사전 판독 및 판독 임계 전압 최적화
US11749373B2 (en) Bad block management for memory sub-systems
US11640262B2 (en) Implementing variable number of bits per cell on storage devices
US11410734B1 (en) Voltage bin selection for blocks of a memory device after power up of the memory device
US11726869B2 (en) Performing error control operation on memory component for garbage collection
US11688475B2 (en) Performing read operation prior to two-pass programming of storage system
US20230005548A1 (en) Data erase operations for a memory system
CN112136178A (zh) 非易失性双列直插式存储器模块中的交叉点阵列存储器
US20220139481A1 (en) Adjusting a reliability scan threshold in a memory sub-system
US11119697B2 (en) Read voltage management based on write-to-read time difference
CN113039515B (zh) 用于基于存储器组件耐久性估计执行耗损均衡调整的存储器子系统
US12009042B2 (en) Executing a refresh operation in a memory sub-system
US11966289B2 (en) Cross-temperature compensation in non-volatile memory devices
US20240176496A1 (en) Optimizing data reliability using erase retention
US20230062995A1 (en) Write performance optimization for erase on demand
CN114981786A (zh) 高速缓存媒体管理

Legal Events

Date Code Title Description
E902 Notification of reason for refusal