KR20200049506A - 호스트 dram을 이용함으로써 ssd 내구성을 향상시키기 위한 방법 - Google Patents

호스트 dram을 이용함으로써 ssd 내구성을 향상시키기 위한 방법 Download PDF

Info

Publication number
KR20200049506A
KR20200049506A KR1020190112112A KR20190112112A KR20200049506A KR 20200049506 A KR20200049506 A KR 20200049506A KR 1020190112112 A KR1020190112112 A KR 1020190112112A KR 20190112112 A KR20190112112 A KR 20190112112A KR 20200049506 A KR20200049506 A KR 20200049506A
Authority
KR
South Korea
Prior art keywords
solid state
state drive
memory
data
statistics
Prior art date
Application number
KR1020190112112A
Other languages
English (en)
Other versions
KR102324798B1 (ko
Inventor
아비차이 호데스
유다 감리엘 한
Original Assignee
웨스턴 디지털 테크놀로지스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 웨스턴 디지털 테크놀로지스, 인코포레이티드 filed Critical 웨스턴 디지털 테크놀로지스, 인코포레이티드
Publication of KR20200049506A publication Critical patent/KR20200049506A/ko
Application granted granted Critical
Publication of KR102324798B1 publication Critical patent/KR102324798B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

호스트 메모리를 이용하여 솔리드 스테이트 드라이브 내구성을 향상시키기 위한 방법 및 장치가 제공된다.

Description

호스트 DRAM을 이용함으로써 SSD 내구성을 향상시키기 위한 방법{METHOD FOR ENHANCING SSD ENDURANCE BY UTILIZING HOST DRAM}
본 발명의 실시예들은 대체로 솔리드 스테이트 드라이브들의 내구성을 증가시키기 위한 방법들 및 장치에 관한 것이다. 보다 구체적으로, 본 발명의 태양들은 호스트 메모리를 이용하여 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법들 및 장치에 관한 것이다.
컴퓨터 시스템들에서 솔리드 스테이트 드라이브들이 더 널리 퍼지고 있다. 솔리드 스테이트 드라이브 시장이 계속해서 성장함에 따라, 비용 효율적인 속도로 솔리드 스테이트 드라이브들을 제조하려고 하는 소망이 있다.
솔리드 스테이트 드라이브들에 대한 기술이 증진함에 따라, 제조업자들은 어떠한 수단이 필요하든 간에 솔리드 스테이트 드라이브들의 비용들을 줄이려고 한다. 솔리드 스테이트 드라이브들의 전체 비용을 줄이기 위한 방법들 중 하나는 그러한 드라이브들의 구성에서 더 저렴한(더 경제적인) 재료들뿐만 아니라 더 저렴한 NAND 부류를 사용하는 것이다. 솔리드 스테이트 드라이브들의 전체 비용을 줄이기 위한 다른 방법은 호스트 측 상의 메모리와 같은 리소스들을 공유하는 것이다.
상이한 유형의 메모리 기술을 사용하는 솔리드 스테이트 드라이브들에 대한 비용들은 상이하다. 종종, 솔리드 스테이트 드라이브의 설계에서 레이턴시(latency)와 사용 횟수 사이에 트레이드오프(trade-off)가 존재한다. 컴포넌트의 설계에서 매우 낮은 레이턴시가 요구되는 경우, 특정 유형의 메모리 디바이스가 사용될 수 있다. 그러나, 그러한 특정 유형의 메모리 디바이스들은, 기술이 비효과적이게 되기 전에 제한된 수의 가능한 사용들을 가질 수 있다. 다른 유형의 메모리 디바이스들은 많은 수의 잠재적인 사용들 및 낮은 상대적 비용을 갖지만, 시스템 내의 레이턴시는 훨씬 더 높을 수 있다. 따라서, 시스템 엔지니어들은 그러한 시스템들을 설계함에 있어서 행해져야 하는 상당한 트레이드오프를 갖는다.
컴퓨터 및 서버 제조업자들에 대한 현재의 기술 제공들은 컴퓨터 기능들을 위한 메모리 용량들을 제공하는 동적 랜덤 액세스 메모리("DRAM")를 제공한다. 그러나, 그러한 DRAM은 SSD 벌크 저장에서 사용되는 메모리 기술들과 비교하여 극히 고가이다.
솔리드 스테이트 드라이브 제조업자들이 DRAM을 SSD 시스템들 내에 포함시키려는 시도가 있었지만, 그러한 통합 기술들은 SSD 시스템의 비용을 급격히 증가시킬 수 있다.
낮은 레이턴시로 기능하는 SSD 벌크 저장 능력들을 제공할 필요가 있다.
낮은 비용을 갖는 SSD 벌크 저장 능력들을 제공할 필요가 있다.
현재의 종래의 제공들에 비해 우수한 SSD 벌크 저장 능력들을 제공할 필요가 있다.
본 발명은 대체로 호스트 DRAM 능력을 이용함으로써 솔리드 스테이트 드라이브 내구성을 향상시키기 위한 방법들에 관한 것이다. 호스트 DRAM 능력들의 그러한 사용은 솔리드 스테이트 드라이브 서비스 수명을 증가시키고, 시간 경과에 따라 발생할 수 있는 에러들을 제한한다. 제한적인 것으로 간주되어서는 안 되는 예시적인 실시예들이 개시된다.
일 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법이 기술되는데, 본 방법은, 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 메모리 유닛들에 대한 통계치들을 획득하는 단계, 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하는 단계, 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 복사하는 단계를 포함한다.
다른 예시적인 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 배열체가 개시되는데, 배열체는, 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 메모리 유닛들에 대한 통계치들을 획득하기 위한 수단, 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하기 위한 수단, 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하기 위한 수단을 포함한다.
다른 예시적인 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법이 개시되는데, 본 방법은, 시간 경과에 따른 데이터의 사용량에 관한, 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 통계치들을 획득하는 단계, 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하는 단계, 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계를 포함한다.
추가의 예시적인 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 배열체가 개시되는데, 배열체는, 시간 경과에 따른 데이터의 사용량에 관한, 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 통계치들을 획득하기 위한 수단, 솔리드 스테이트 드라이브의 메모리 유닛들의 통계치들을 임계 값들과 비교하기 위한 수단, 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브로부터의 데이터를 재배치하기 위한 수단, 및 솔리드 스테이트 드라이브로부터의 재배치된 데이터를 저장하기 위한 수단을 포함한다.
추가의 예시적인 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법이 개시되는데, 본 방법은, 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 메모리 유닛들에 대한 통계치들을 획득하는 단계; 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하는 단계; 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계 - 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 재배치하는 단계는 호스트 메모리 버퍼 비휘발성 메모리 동작을 통해 달성됨 - 를 포함한다.
본 발명의 상기에 언급된 특징이 상세히 이해될 수 있는 방식으로, 상기에 간략하게 요약된 본 발명의 보다 구체적인 설명이 실시예들을 참조하여 이루어질 수 있고, 이들 중 일부는 첨부 도면에 도시되어 있다. 그러나, 첨부 도면이 본 발명의 전형적인 실시예만을 도시하고, 그에 따라, 본 발명에 대해, 다른 동등하게 유효한 실시예로 인정될 수 있는 그의 범주의 제한사항으로 간주되어서는 안 된다는 것에 유의해야 한다.
도 1은 동작 중인 호스트 및 접속된 SSD의 도면이다.
도 2는 본 발명의 예시적인 실시예에 따른 방법을 위한 흐름도이다.
이해를 용이하게 하기 위해, 가능한 경우, 도면들에 공통인 동일한 요소들을 나타내기 위해 동일한 도면 부호들이 사용되었다. 일 실시예에서 개시된 요소들이 특정 설명 없이 다른 실시예들에서 유익하게 이용될 수 있다는 것이 고려된다.
하기에서는, 본 발명의 실시예를 참조한다. 그러나, 본 발명이 구체적인 기술된 실시예로 제한되지 않는다는 것이 이해되어야 한다. 그 대신, 하기의 특징들 및 요소들의 임의의 조합이, 상이한 실시예들과 관련되든 관련되지 않든, 본 발명을 구현하고 실시하기 위해 고려된다. 게다가, 본 발명의 실시예가 다른 가능한 해법 이상의 그리고/또는 종래 기술 이상의 이점을 달성할 수 있지만, 특정 이점이 주어진 실시예에 의해 달성되는지 여부는 본 발명의 제한사항이 아니다. 따라서, 하기의 태양, 특징, 실시예, 및 이점은 단지 예시적인 것이며, 청구항(들)에서 명시적으로 언급된 경우를 제외하면 첨부된 청구범위의 요소 또는 제한사항으로 간주되지 않는다. 마찬가지로, "본 발명"에 대한 언급은 본 명세서에서 개시되는 임의의 독창적 주제의 일반화로서 이해해서는 안 되며, 청구항(들)에서 명시적으로 언급된 경우를 제외하면 첨부된 청구범위의 요소 또는 제한사항으로 간주되어서는 안 된다.
일부 실시예들은 도면들을 참조하여 이제 기술될 것이다. 다양한 도면들에서의 동일한 요소들은 일관성을 위해 동일한 부호들로 참조될 것이다. 하기의 설명에서, 다양한 실시예들 및/또는 특징들의 이해를 제공하기 위해 많은 상세사항들이 기재된다. 그러나, 일부 실시예들이 이러한 상세사항들 중 많은 것 없이 실시될 수 있고 기술된 실시예들로부터의 다수의 변형들 또는 수정들이 가능하다는 것이 당업자들에 의해 이해될 것이다. 본 명세서에 사용되는 바와 같이, 용어 "위에" 및 "아래에", "위로" 및 "아래로", "상부" 및 "하부", "상향으로" 및 "하향으로", 그리고 주어진 지점 또는 요소 위 또는 아래의 상대 위치들을 나타내는 다른 유사한 용어들이 소정 실시예들을 더 명확하게 기술하기 위해 본 명세서에서 사용된다.
발명을 실시하기 위한 구체적인 내용의 태양들은 컴퓨터들에 적용되고, 보다 구체적으로는, 디바이스들이 최적의 동작 방법으로 수행하도록 컴퓨터들 또는 컴퓨터 접속된 디바이스들을 제어하는 태양들에 적용된다. 기술된 태양들은 데이터 저장 배열체와 같은 다른 디바이스들과 상호작용하는 호스트에 관한 것이다. 데이터 저장 배열체들은, 예를 들어 솔리드 스테이트 드라이브들 및 다른 유사한 배열체들일 수 있다.
기술된 실시예들에서, 데이터 저장 배열체가 인터페이스를 통해 호스트 시스템에 접속된다. 호스트 시스템은, 예시된 실시예에서, 컴퓨터가 데이터 저장 배열체로부터 데이터를 송신 및 수신할 수 있도록 하는 기업 컴퓨터 또는 서버이다. 데이터 저장 배열체의 기능은 데이터가 사용자 또는 호스트에 의해 필요할 때까지 데이터를 수용 및 저장하는 것이다. 데이터 저장 배열체는, 수행되는 컴퓨터 프로세스들에 따라, 빠른 속도로 데이터의 큰 버스트(burst)들을 수용해야 할 수 있으며, 따라서 데이터 저장 배열체는 사용량의 다양한 상태들을 제공하는, 어레이들로 형성되는 다수의 메모리 유닛들로 구성된다. 다이들은 메모리 저장 기능들을 완료하기 위해, 필요에 따라, 어레이들에 데이터를 기록할 수 있다.
데이터 저장 배열체의 소정 섹션들은 빠른 액션(낮은 레이턴시)을 제공하는 메모리 시스템들로 구성될 수 있어, 컴퓨터 프로세스들이 빠른 속도로 수행될 수 있게 한다. 그러한 낮은 레이턴시 액션은 단일 층 셀 메모리 구성들에 의해 달성될 수 있다. 다량의 데이터가 저장되도록 요구되는 경우, 삼중 레벨 셀 메모리 구성들과 같은 다중 층 셀 메모리 구성들이 또한 존재한다. 따라서, 특정 어레이들을 갖는 데이터 저장 배열체는 단일 레벨 또는 다중 레벨 셀 배열체들로 구성될 수 있다. 데이터 저장 배열체는 데이터 저장 배열체가 호스트와 접속하게 하는 인터페이스를 가질 수 있고, 호스트와 데이터 저장 배열체의 동기화를 허용할 수 있다. 인터페이스는 비제한적인 실시예로서 PCle/NVMe(non-volatile memory express) 호환가능 인터페이스일 수 있다. 메모리 저장소는 플러그 앤드 플레이(plug and play) 능력을 허용하는 구성을 가질 수 있다.
데이터 저장 배열체의 내부 소프트웨어는 또한 데이터 저장 배열체의 보안을 제공하도록 구성될 수 있다. 데이터 저장 배열체 상에 제공된 재료의 안전장치는 시스템 상에 포함된 민감한 정보에 대한 인가되지 않은 액세스를 방지한다. 이러한 보안은 Wi-Fi 패스워드 보호와 같은 패스워드 보호의 형태일 수 있다. 일부 실시예들에서, 데이터 저장 배열체는, 데이터 저장 배열체가 하드웨어 잠금을 야기하게 하는 소프트웨어로 구성될 수 있다. 그러한 하드웨어 잠금들은 USB 접속을 통한 액세스를 방지할 수 있다.
호스트에 의해 요구되는 바와 같이 솔리드 스테이트 드라이브의 액션들을 제어하기 위해 제어기가 제공된다. 제어기는 또한 효율적인 사용을 허용하기 위해 솔리드 스테이트 드라이브에 대한 유지보수 활동들을 수행하도록 구성될 수 있다. 제어기는, 제어기가 요구되는 다양한 기능들을 수행하게 하기 위해 솔리드 스테이트 드라이브의 내부 소프트웨어와 인터페이싱하는 코드를 구비할 수 있다. 제어기는, 예를 들어, 솔리드 스테이트 드라이브에 대한 데이터의 판독 또는 기록을 허용하기 위해 솔리드 스테이트 드라이브의 다이들과 상호작용할 수 있다.
본 발명의 태양들은 SSD NAND에 의해 수행되는 소정 기능들에 대한 호스트 시스템 메모리 또는 DRAM을 사용하는 것에 관한 것이다. 일부 응용예들에서, SSD NAND는 상당한 단점들을 갖는다. 하나의 그러한 단점은 NAND가 사용될 수 있는 횟수에 대한 것이다. NAND는 상이한 유형들이 있고, NAND의 동일한 섹션의 계속적인 사용은 그러한 NAND를 "마모(wear out)"시킬 수 있다. 이러한 영역들은 통상적으로, NAND 상에 존재하는 데이터가 프로세싱을 위해 계속해서 필요한 "핫 스폿(hot spot)들"로서 알려져 있다.
하나의 예시적인 실시예에서, 호스트 메모리 버퍼(host memory buffer, HMB) 비휘발성 메모리 익스프레스(NVMe) 특징부는 핫 스폿 위치들을 NAND로부터 다른 더 적합한 위치들로 재배치하는 데 사용되어, NAND가 허용가능하지 않은 레벨들로 마모되지 않게 할 수 있다.
그러한 핫 스폿들로부터 호스트 메모리 버퍼로 데이터를 전송함으로써, NAND 상의 특정 스폿에 계속해서 기록 및 소거할 필요가 없으며, 따라서 NAND의 전체 수명을 늘린다. 호스트 메모리 버퍼를 이용함으로써, 레이턴시가 또한 개선될 수 있어서, 정보의 더 빠르고 더 효율적인 프로세싱을 야기한다. 명확한 목적을 위해, 데이터의 전송은, 식별, 데이터를 제2 장소(시스템 메모리)로 복사하는 것, 및 이어서 NAND의 원래 섹션 상의 데이터를 소거하는 것을 의미하는 것으로 이해된다. NAND의 소거된 영역 대신에, 그 위치에 위치된 데이터에 액세스하려고 하는 프로그램들이 시스템 NAND 내의 새로운 위치로 재배치되도록 마커 또는 다른 유형의 표기가 만들어질 수 있다.
데이터가 핫 스폿으로부터 호스트 메모리 버퍼로 전송되게 하기 위하여 핫 스폿이 식별된다. 핫 스폿의 일례는, 호스트에 의해 빈번하게 어드레싱되는 논리적 블록 어드레스(LBA) 범위이다. 데이터의 유형은, 예를 들어, 빈번하게 업데이트되는 파일 시스템 또는 운영 체제 관리 데이터에 관련될 수 있다. 단위 시간당 임계치가 핫 스폿의 존재를 결정하는 데 사용될 수 있다. 비제한적인 예로서, NAND 내의 일정 위치가 하루당 100회 초과로 액세스되는 경우, NAND 내의 그 데이터(및 위치)는 핫 스폿과 연관되고, 따라서 시스템 메모리로의 전송을 위한 후보이다.
이해될 수 있는 바와 같이, 다수의 상이한 핫 스폿들이 NAND에서 식별될 수 있다. 이를 위해, 단위 시간당 임계 값에 따라, 더 많거나 더 적은 핫 스폿들이 정의될 수 있다. 하나의 예시적인 실시예에서, 상이한 수의 핫 스폿들이 표로 만들어지고 순위가 매겨질 수 있다. 순위 매김에 따르면, 핫 스폿들은 시스템 메모리로 전송될 수 있다. 하나의 예시적인 순위 매김에서, 순위 매김은 하나의 데이터가 액세스되는 횟수를 고려할 수 있고, 그 데이터가 다른 데이터보다 더 많이 액세스되는 경우, 데이터의 순위 매김은 다른 것들보다 더 높다.
다른 순위 매김 방식들에서, 순위 매김은 이동될 데이터의 크기에 의해 달성될 수 있다. 따라서, 핫 스폿의 식별 후에, 이동될 더 큰 크기의 데이터는 소량의 데이터 또는 핫 스폿들보다 우선하며, 따라서 NAND의 작은 개별 청크(chunk)들에 비해 NAND의 더 큰 영역들을 보존한다.
핫 스폿과 연관되는 데이터의 유형들은 또한 다양할 수 있다. 다른 예시적인 실시예에서, 내부 핫 스폿이 식별될 수 있다. 구체적으로 지정된 섹션들이 SSD 펌웨어 자체에 관련될 수 있는 내부 핫 스폿이 식별될 수 있다. 이러한 데이터는 SSD가 기능하기 위하여 반복적으로 액세스될 필요가 있을 수 있으며, 따라서 이 섹션에서의 NAND의 고장은 더 심각한 결과이다. 예를 들어, 저전력 상태에 진입하는 것은 많은 양의 기록된 데이터를 트리거할 수 있다. 전력 상태를 공격적인 방식으로 사용하는 일부 디바이스들에서, 심지어 NAND를 마모시키는 레벨로까지의 바로 그 내구성 소모라 할 수 있는 문제가 있을 수 있다.
일단 핫 스폿이 식별되었다면, 핫 스폿에 관련된 데이터는 SSD의 메모리 배열체들이 핫 스폿에서 계속해서 마모되지 않도록 재배치될 수 있다. 이 실시예에서, SSD는 호스트 메모리 버퍼(HMB) NVMe 특징부를 지원하고, 관련 데이터를 호스트 DRAM으로 재배치할 필요가 있다. 그 관점에서, 이 위치에 기인하는 임의의 기록은 호스트 DRAM 상에 로딩될 것이며, 이는 DRAM으로서 무제한 내구성 능력을 갖는다.
호스트 메모리의 선택은 NAND에 기초한 제어기에 의해 결정될 수 있다. 일부 예시적인 실시예들에서, 데이터의 전송을 위해 선택된 호스트 메모리는 비휘발성 메모리일 수 있으며, 따라서 호스트 시스템 및/또는 SSD에 대한 전력 손실이 데이터의 손실을 야기하지는 않을 것이다.
호스트 DRAM이 사용되는 경우에, 호스트 DRAM에 대한 전력을 비활성화시킬 필요가 있다면, 전력 안전 동작을 허용하기 위해 데이터가 다시 NAND로 전송될 수 있다. 일단 전력 안전 동작들이 복원되면, 데이터의 전송이 다시 달성될 수 있다.
핫 스폿들의 최적의 관리는, 호스트 DRAM 내구성 능력을 활용하고 내구성 병목현상(bottle-necks)을 해제시킴으로써, 디바이스 수명(내구성)을 상당히 연장시킬 수 있다. 호스트 DRAM이 SSD에 비해 과도한 내구성 능력들을 갖기 때문에, 이러한 능력을 이용하는 것은 시스템 전반에 더 양호한 전체 능력을 제공한다.
핫 스폿들의 최적의 관리는, NAND 내구성을 마모시킬 수 있는 호스트 또는 SSD 펌웨어에 의해 트리거되는 예상치 못한 문제를 해결할 수 있다. 그리고 이러한 방법을 적용함으로써, 그들은 즉시 완화될 수 있다.
도 1을 참조하면, 솔리드 스테이트 드라이브(100)의 개략도가 예시되어 있다. 솔리드 스테이트 드라이브(100)는 컴퓨터 또는 서버에서 사용될 수 있는 유닛이다. 솔리드 스테이트 드라이브(100)는 메모리를 이용하여 정보를 저장하여, 정보가 사용자의 요구로 검색될 수 있게 한다. 이 경우에, 솔리드 스테이트 드라이브(100)는 NAND 플래시 메모리(108)와 같은 플래시 메모리를 사용한다. NAND 플래시 메모리로서 기술되었지만, NAND 플래시 이외의 다른 유형의 메모리가 사용될 수 있고, NAND 플래시 메모리의 설명은 제한하는 것으로 간주되어서는 안 된다.
호스트(104)에 의해 필요한 기능적 동작들을 수행하기 위해 솔리드 스테이트 드라이브(100)에 제어기(102)가 제공된다. 호스트(104)는 데이터를 저장하라는 요청과 같은 정보를 제어기(102)로 전송하여, 명령어들이 제어기(102)에 의해 수신되고 프로세싱되게 한다. 제어기(102)는 호스트(104)와 통신하는 제어기(102)의 능력을 허용하도록 인터페이스(106)를 갖도록 구성될 수 있다. 제어기(102)와 호스트(104) 사이의 통신 프로토콜은 디바이스 버스 마스터링을 허용하고 PCIe/NVMe와 같은 호스트 메모리 버퍼를 지원하는 임의의 프로토콜일 수 있다. 이중 또는 다중 통신 프로토콜들이 또한 본 발명의 고려에 속한다.
제어기(102)는 솔리드 스테이트 드라이브(100) 내에 통합될 때 복잡한 설계 또는 간단한 설계일 수 있다. 제어기(102)의 복잡성을 감소시키려는 시도에서, 본 명세서에 제시된 태양들은 제어기(102)의 소정 태양들 또는 기능들을 최소화하려고 시도한다. 제어기(102)에 의해 수행되는 기능들을 제한함으로써, 제어기(102)의 대응하는 경제적 비용이 줄어들고, 제어기(102)는 제조하기에 더 비용 효율적이고 제어기(102)에 의한 잠재적 에러들이 최소화된다.
제어기(102)의 전형적인 기능은 NAND 플래시(108)로의 데이터의 수용 및 라우팅에 대한 명령어들 및/또는 통신을 제공하는 것이다. 예시된 실시예에서의 제어기(102)는 "온 칩(on chip)" 제어기(102)이며, 여기서 솔리드 스테이트 드라이브(100)의 다른 섹션들에 명령어들을 제공할 뿐만 아니라 호스트(104)와의 인터페이스를 제공할 목적으로 생성된 제어 메커니즘이 컴퓨터 칩 상에 배치된다. 제어기(102)는, 필요에 따라, 데이터를 NAND로부터 호스트 DRAM으로 그리고 되돌려 전송하는 데 사용될 수 있다.
본 명세서에 기술된 태양들은 데이터 래치들 및 NAND 플래시(108)를 사용함으로써 기록, 판독 및 에러 검사 책임들을 달성한다. 정의를 위해, 하나의 비제한적인 실시예에서, 2개의 안정된 상태들을 갖고 정보를 저장하는 데 사용되는 회로로서 래치가 정의된다. 래치는 작동을 통해 안정된 상태들 중 하나의 상태로부터 다른 상태로 스위칭 또는 플립플롭될 수 있다. 그러한 작동은 상이한 기능이 수행되게 하거나, 또는 구성에 따라, 데이터 세트(0 또는 1)가 저장되게 할 것이다.
호스트(104)는, 생성될 컴퓨터 기능들을 위한 메모리를 제공하는 DRAM(110)을 구비한다.
도 2를 참조하면, 본 발명의 하나의 예시적인 실시예에 따른 방법(200)이 예시되어 있다. 방법은 202에서 시작하고, 이어서 204로 진행한다. 204에서, NAND에 대해 내구성 검사가 트리거된다. NAND의 검토는 204에서 수행되고, 방법은 206으로 진행한다. 이어서, 디바이스는 내구성 핫 스폿들을 모니터링하고, 호스트 구동형 논리 기반 어드레스 핫 스폿이 검출되는지 여부를 결정하기 위해 질의를 수행한다. 206에서 질의에서 어떠한 핫 스폿도 검출되지 않는 경우, 방법은 이어서 204로 되돌아간다. 206에서 핫 스폿이 검출되는 경우, 210에서, 핫 스폿은 HMB NVMe 특징부에 의해 호스트 DRAM으로 재배치된다. 방법(200)은 이어서 204로 되돌아간다.
일 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법이 기술되는데, 본 방법은, 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 메모리 유닛들에 대한 통계치들을 획득하는 단계, 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하는 단계, 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 복사하는 단계를 포함한다.
다른 예시적인 실시예에서, 본 방법은 메모리 유닛들의 스캐닝 전에 임계 값들을 솔리드 스테이트 드라이브로 복사하는 단계를 추가로 포함할 수 있다.
다른 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 임계 값들은 단위 시간당 사용 횟수에 기초한다.
다른 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 솔리드 스테이트 드라이브는 NAND 기반이다.
다른 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 솔리드 스테이트 드라이브의 메모리 유닛들의 스캐닝은 호스트 내의 프로세서에 의해 수행된다.
다른 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 솔리드 스테이트 드라이브의 메모리 유닛들의 스캐닝은 솔리드 스테이트 드라이브 내의 프로세서에 의해 수행된다.
다른 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 재배치는 호스트 메모리 버퍼 비휘발성 메모리 특징부에 의해 수행된다.
다른 예시적인 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 배열체가 개시되는데, 배열체는, 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 메모리 유닛들에 대한 통계치들을 획득하기 위한 수단, 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하기 위한 수단, 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하기 위한 수단을 포함한다.
또 다른 실시예에서, 배열체는 메모리 유닛들의 스캐닝 전에 임계 값들을 솔리드 스테이트 드라이브로 복사하기 위한 수단을 추가로 포함할 수 있다.
또 다른 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법은, 시간 경과에 따른 데이터의 사용량에 관한, 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 통계치들을 획득하는 단계, 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하는 단계, 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계를 포함한다.
추가의 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 시간 경과에 따른 데이터의 사용량에 관한, 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 통계치들은 솔리드 스테이트 드라이브에 의한 데이터의 사용량에 관련된다.
추가의 예시적인 실시예에서, 본 방법이 달성될 수 있는데, 여기서 시간 경과에 따른 데이터의 사용량에 관한, 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 통계치들은 호스트에 의한 데이터의 사용량에 관련된다.
추가의 예시적인 실시예에서, 본 방법은 메모리 유닛들의 통계치들을 획득하는 단계 전에 임계 값들을 솔리드 스테이트 드라이브로 복사하는 단계를 추가로 포함할 수 있다.
추가의 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 임계 값들이 단위 시간당 사용 횟수에 기초한다.
추가의 예시적인 실시예에서, 본 방법이 수행될 수 있는데, 여기서 솔리드 스테이트 드라이브는 NAND 기반이다.
추가의 예시적인 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 배열체가 개시되는데, 배열체는, 시간 경과에 따른 데이터의 사용량에 관한, 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 통계치들을 획득하기 위한 수단, 솔리드 스테이트 드라이브의 메모리 유닛들의 통계치들을 임계 값들과 비교하기 위한 수단, 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브로부터의 데이터를 재배치하기 위한 수단, 및 솔리드 스테이트 드라이브로부터의 재배치된 데이터를 저장하기 위한 수단을 포함한다.
추가의 예시적인 실시예에서, 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법이 개시되는데, 본 방법은, 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 메모리 유닛들에 대한 통계치들을 획득하는 단계; 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛들의 통계치들을 임계 값들과 비교하는 단계; 및 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계 - 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 재배치하는 단계는 호스트 메모리 버퍼 비휘발성 메모리 동작을 통해 달성됨 - 를 포함한다.
또 다른 실시예에서, 본 방법이 달성될 수 있는데, 여기서 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계 - 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 재배치하는 단계는 호스트 메모리 버퍼 비휘발성 메모리 동작을 통해 달성됨 - 는 제어기에 의해 수행된다.
다른 비제한적인 실시예에서, 본 방법이 달성될 수 있는데, 여기서 임계 값들은 단위 시간당 기록 횟수이다.
또 다른 실시예에서, 본 방법이 달성될 수 있는데, 여기서 임계 값들은 단위 시간당 판독 횟수이다.
다른 실시예에서, 본 방법은, 방법 동안, 동작들 동안의 전력 차단을 모니터링하는 단계, 및 동작들 동안의 전력 차단이 발생할 때 호스트 메모리로부터 솔리드 스테이트 드라이브로 데이터를 전송하는 단계를 추가로 포함할 수 있고, 완전한 전력 차단 전에 데이터의 복사가 완료된다.
다른 비제한적인 실시예에서, 본 방법은 솔리드 스테이트 드라이브 및 호스트에 대해 전력이 재확립될 때 솔리드 스테이트 드라이브로부터 다시 호스트 메모리로 데이터를 전송하는 단계를 추가로 포함할 수 있다.
다른 비제한적인 실시예에서, 본 방법은 달성될 수 있는데, 여기서 메모리 유닛들에 대한 통계치들 중 하나가 임계 값들을 초과할 때 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계는 솔리드 스테이트 드라이브 내의 제어기에 의해 추적된다.
전술한 사항이 본 발명의 실시예에 관한 것이지만, 본 발명의 다른 및 추가의 실시예가 그의 기본 범주로부터 벗어나지 않고서 고안될 수 있고, 그의 범주는 하기의 청구범위에 의해 결정된다.

Claims (20)

  1. 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법으로서,
    상기 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 호스트에 의해 액세스되는 상기 메모리 유닛들에 대한 통계치들을 획득하는 단계;
    상기 솔리드 스테이트 드라이브의 상기 메모리 유닛들의 스캐닝 동안 획득되는 호스트 액세스 통계치들을 임계 값들과 비교하는 단계; 및
    상기 메모리 유닛들에 대한 상기 통계치들 중 하나가 상기 임계 값들을 초과할 때 상기 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 호스트 비휘발성 메모리로 재배치하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 메모리 유닛들의 스캐닝 전에 상기 임계 값들을 상기 솔리드 스테이트 드라이브로 복사하는 단계를 추가로 포함하는, 방법.
  3. 제1항에 있어서, 상기 임계 값들은 단위 시간당 사용 횟수에 기초하는, 방법.
  4. 제1항에 있어서, 상기 솔리드 스테이트 드라이브는 NAND 기반인, 방법.
  5. 제1항에 있어서, 상기 솔리드 스테이트 드라이브의 상기 메모리 유닛들의 스캐닝은 상기 솔리드 스테이트 드라이브 내의 프로세서에 의해 수행되는, 방법.
  6. 제1항에 있어서, 상기 재배치는 호스트 메모리 버퍼 특징부를 이용함으로써 수행되는, 방법.
  7. 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법으로서,
    시간 경과에 따른 데이터의 사용량에 관한, 상기 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터 액세스 빈도에 대한 통계치들을 획득하는 단계;
    상기 솔리드 스테이트 드라이브의 상기 메모리 유닛들의 상기 통계치들을 임계 값들과 비교하는 단계; 및
    상기 메모리 유닛들에 대한 상기 통계치들 중 하나가 상기 임계 값들을 초과할 때 솔리드 스테이트 드라이브로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계를 포함하는, 방법.
  8. 제7항에 있어서, 시간 경과에 따른 데이터의 사용량에 관한, 상기 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 상기 통계치들은 상기 솔리드 스테이트 드라이브에 의한 데이터의 사용량에 관련되는, 방법.
  9. 제7항에 있어서, 시간 경과에 따른 데이터의 사용량에 관한, 상기 솔리드 스테이트 드라이브의 메모리 유닛들 내의 데이터에 대한 상기 통계치들은 호스트에 의한 데이터의 사용량에 관련되는, 방법.
  10. 제7항에 있어서,
    상기 메모리 유닛들의 통계치들을 획득하기 전에 상기 임계 값들을 상기 솔리드 스테이트 드라이브로 복사하는 단계를 추가로 포함하는, 방법.
  11. 제7항에 있어서, 상기 임계 값들은 단위 시간당 사용 횟수에 기초하는, 방법.
  12. 제7항에 있어서, 상기 솔리드 스테이트 드라이브는 NAND 기반인, 방법.
  13. 솔리드 스테이트 드라이브의 내구성을 향상시키기 위한 방법으로서,
    상기 솔리드 스테이트 드라이브의 메모리 유닛들을 스캐닝하여 상기 메모리 유닛들에 대한 통계치들을 획득하는 단계;
    상기 솔리드 스테이트 드라이브의 상기 스캐닝된 메모리 유닛들의 상기 통계치들을 임계 값들과 비교하는 단계; 및
    상기 메모리 유닛들에 대한 상기 통계치들 중 하나가 상기 임계 값들을 초과할 때 상기 솔리드 스테이트 드라이브의 스캐닝된 메모리 유닛으로부터의 데이터를 컴퓨터 메모리로 재배치하는 단계 - 상기 솔리드 스테이트 드라이브의 상기 스캐닝된 메모리 유닛으로부터의 데이터를 재배치하는 단계는 호스트 메모리 버퍼 비휘발성 메모리 동작을 통해 달성됨 - 를 포함하는, 방법.
  14. 제13항에 있어서, 상기 메모리 유닛들에 대한 상기 통계치들 중 하나가 상기 임계 값들을 초과할 때 상기 솔리드 스테이트 드라이브의 상기 스캐닝된 메모리 유닛으로부터의 데이터를 상기 컴퓨터 메모리로 재배치하는 단계 - 상기 솔리드 스테이트 드라이브의 상기 스캐닝된 메모리 유닛으로부터의 데이터를 재배치하는 단계는 호스트 메모리 버퍼 비휘발성 메모리 동작을 통해 달성됨 - 는 제어기에 의해 수행되는, 방법.
  15. 제13항에 있어서, 상기 임계 값들은 단위 시간당 기록 횟수인, 방법.
  16. 제13항에 있어서, 상기 임계 값들은 단위 시간당 판독 횟수인, 방법.
  17. 제13항에 있어서,
    상기 방법 동안, 동작들 동안의 전력 차단을 모니터링하는 단계; 및
    동작들 동안의 전력 차단이 발생할 때 상기 호스트 메모리로부터 상기 솔리드 스테이트 드라이브로 데이터를 전송하는 단계를 추가로 포함하고, 완전한 전력 차단 전에 상기 데이터의 복사가 완료되는, 방법.
  18. 제17항에 있어서,
    상기 솔리드 스테이트 드라이브 및 상기 호스트에 대해 전력이 재확립될 때 상기 솔리드 스테이트 드라이브로부터 다시 상기 호스트 메모리로 데이터를 전송하는 단계를 추가로 포함하는, 방법.
  19. 제18항에 있어서, 상기 메모리 유닛들에 대한 상기 통계치들 중 하나가 상기 임계 값들을 초과할 때 상기 솔리드 스테이트 드라이브의 상기 스캐닝된 메모리 유닛으로부터의 데이터를 상기 컴퓨터 메모리로 재배치하는 단계는 상기 솔리드 스테이트 드라이브 내의 제어기에 의해 추적되는, 방법.
  20. 제13항에 있어서, 상기 컴퓨터 메모리는 비휘발성 메모리인, 방법.
KR1020190112112A 2018-10-30 2019-09-10 호스트 dram을 이용함으로써 ssd 내구성을 향상시키기 위한 방법 KR102324798B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/175,166 2018-10-30
US16/175,166 US10831379B2 (en) 2018-10-30 2018-10-30 Method for enhancing SSD endurance by utilizing host DRAM

Publications (2)

Publication Number Publication Date
KR20200049506A true KR20200049506A (ko) 2020-05-08
KR102324798B1 KR102324798B1 (ko) 2021-11-09

Family

ID=70327115

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190112112A KR102324798B1 (ko) 2018-10-30 2019-09-10 호스트 dram을 이용함으로써 ssd 내구성을 향상시키기 위한 방법

Country Status (4)

Country Link
US (1) US10831379B2 (ko)
KR (1) KR102324798B1 (ko)
CN (1) CN111124272B (ko)
DE (1) DE102019124413A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230037623A (ko) 2020-08-17 2023-03-16 가부시키가이샤 고베 세이코쇼 용접 전원, 용접 시스템, 용접 전원의 제어 방법 및 프로그램

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022089138A1 (en) * 2020-10-29 2022-05-05 Silicon Motion Inc. Methods for controlling data storage device, and associated flash memory controller

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020059012A (ko) * 2000-12-30 2002-07-12 엘지전자 주식회사 시스템 메모리자원의 통계정보 수집방법
KR20140039074A (ko) * 2011-08-19 2014-03-31 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
KR20140045269A (ko) * 2012-10-08 2014-04-16 에이취지에스티 네덜란드 비.브이. 저전력 저지연 고용량 스토리지 클래스 메모리용 장치 및 방법
KR20160016037A (ko) * 2014-08-01 2016-02-15 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
KR20160091471A (ko) * 2015-01-23 2016-08-03 주식회사 리얼타임테크 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법
KR20180054394A (ko) * 2016-11-15 2018-05-24 삼성전자주식회사 호스트 메모리 버퍼(Host Memory Buffer)를 관리하기 위한 NVMe(Non-Volatile Memory Express) 컨트롤러를 포함하는 솔리드 스테이트 저장 장치(solid state storage device), 이를 포함하는 시스템 및 호스트의 호스트 메모리 버퍼를 관리하는 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488578B (zh) * 2012-12-28 2016-05-25 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
US9710173B2 (en) * 2014-05-20 2017-07-18 Micron Technology, Inc. Read cache memory with DRAM class promotion
US9652164B2 (en) * 2015-05-14 2017-05-16 Toshiba Corporation Solid-state mass storage device and method for processing forced unit access write commands
US10866737B2 (en) * 2015-09-17 2020-12-15 Intel Corporation Apparatus, method and system to store information for a solid state drive
US20170131948A1 (en) * 2015-11-06 2017-05-11 Virtium Llc Visualization of usage impacts on solid state drive life acceleration
US10255177B2 (en) * 2016-10-10 2019-04-09 Dell Products, Lp System and method for adaptive optimization for performance in solid state drives based on read/write intensity
US10331584B2 (en) * 2017-03-09 2019-06-25 Toshiba Memory Corporation Internal system namespace exposed through use of two local processors and controller memory buffer with two reserved areas
US10175892B1 (en) * 2017-06-23 2019-01-08 Amazon Technologies, Inc. Adaptive read algorithm for a nonvolatile medium

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020059012A (ko) * 2000-12-30 2002-07-12 엘지전자 주식회사 시스템 메모리자원의 통계정보 수집방법
KR20140039074A (ko) * 2011-08-19 2014-03-31 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
KR101596606B1 (ko) * 2011-08-19 2016-03-07 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
KR20140045269A (ko) * 2012-10-08 2014-04-16 에이취지에스티 네덜란드 비.브이. 저전력 저지연 고용량 스토리지 클래스 메모리용 장치 및 방법
KR101629615B1 (ko) * 2012-10-08 2016-06-13 에이취지에스티 네덜란드 비.브이. 저전력 저지연 고용량 스토리지 클래스 메모리용 장치 및 방법
KR20160016037A (ko) * 2014-08-01 2016-02-15 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
KR20160091471A (ko) * 2015-01-23 2016-08-03 주식회사 리얼타임테크 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법
KR20180054394A (ko) * 2016-11-15 2018-05-24 삼성전자주식회사 호스트 메모리 버퍼(Host Memory Buffer)를 관리하기 위한 NVMe(Non-Volatile Memory Express) 컨트롤러를 포함하는 솔리드 스테이트 저장 장치(solid state storage device), 이를 포함하는 시스템 및 호스트의 호스트 메모리 버퍼를 관리하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230037623A (ko) 2020-08-17 2023-03-16 가부시키가이샤 고베 세이코쇼 용접 전원, 용접 시스템, 용접 전원의 제어 방법 및 프로그램

Also Published As

Publication number Publication date
DE102019124413A1 (de) 2020-04-30
KR102324798B1 (ko) 2021-11-09
US20200133512A1 (en) 2020-04-30
CN111124272B (zh) 2023-09-19
CN111124272A (zh) 2020-05-08
US10831379B2 (en) 2020-11-10

Similar Documents

Publication Publication Date Title
CN106909313B (zh) 存储器系统及控制方法
US10373695B2 (en) Methods and apparatus for read disturb detection and handling
US9582220B2 (en) Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system
US20080294814A1 (en) Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) Managing Housekeeping Operations in Flash Memory
US9946483B2 (en) Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
US9524105B2 (en) Process and apparatus to reduce declared capacity of a storage device by altering an encoding format
CN112309479A (zh) 用于数据完整性扫描的读取计数缩放因子
US9946473B2 (en) Efficiently managing unmapped blocks to extend life of solid state drive
US10254979B1 (en) Relocating or aborting a block of data by a host, based on media policies managed by a storage device
CN114303197A (zh) 读取干扰扫描合并
KR20090102192A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US11443811B2 (en) Data erase operations for a memory system
US9519427B2 (en) Triggering, at a host system, a process to reduce declared capacity of a storage device
KR102324798B1 (ko) 호스트 dram을 이용함으로써 ssd 내구성을 향상시키기 위한 방법
US20200081649A1 (en) Data storage device, operation method thereof and storage system including the same
EP3189438B1 (en) Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
WO2020131434A1 (en) Data integrity protection for relocating data in a memory system
KR20200114216A (ko) 데이터 저장 장치 및 동작 방법
US11543990B2 (en) Data storage apparatus with extended lifespan and operation method thereof
US9582202B2 (en) Process and apparatus to reduce declared capacity of a storage device by moving data
US9552166B2 (en) Process and apparatus to reduce declared capacity of a storage device by deleting data
US9582212B2 (en) Notification of trigger condition to reduce declared capacity of a storage device
US9563370B2 (en) Triggering a process to reduce declared capacity of a storage device
US11886741B2 (en) Method and storage device for improving NAND flash memory performance for intensive read workloads

Legal Events

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