KR20200067227A - 메모리 채널 상호연결의 정보에 근거하여 스토리지 장치 타스크들을 개시하기 위한 시스템 및 방법 - Google Patents

메모리 채널 상호연결의 정보에 근거하여 스토리지 장치 타스크들을 개시하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200067227A
KR20200067227A KR1020160074705A KR20160074705A KR20200067227A KR 20200067227 A KR20200067227 A KR 20200067227A KR 1020160074705 A KR1020160074705 A KR 1020160074705A KR 20160074705 A KR20160074705 A KR 20160074705A KR 20200067227 A KR20200067227 A KR 20200067227A
Authority
KR
South Korea
Prior art keywords
memory
ssd
memory controller
memory module
commands
Prior art date
Application number
KR1020160074705A
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 KR20200067227A publication Critical patent/KR20200067227A/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • 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/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

메모리 모듈은 솔리드 스테이트 드라이브(SSD) 및 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는 동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 정보를 수신하고, 메모리 커맨드들 및 메모리 모듈의 상태에 근거하여 SSD의 배경 타스크들을 개시하는 것을 결정한다. 본 발명의 일 실시 예에 따라, 동기 메모리 채널은 동기 다이나믹 랜덤 억세스 메모리(DRAM) 채널이고, SSD는 플래시 메모리를 포함한다. 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비 등과 같은 SSD의 상기 배경 타스크들은 메모리 모듈의 아이들 상태 동안에 수행된다.

Description

메모리 채널 상호연결의 정보에 근거하여 스토리지 장치 타스크들을 개시하기 위한 시스템 및 방법{A system and method for initiating storage device tasks based upon information from the memory channel interconnect}
본 발명은 컴퓨터용 메모리 시스템들에 관한 것으로, 보다 상세하게는 동기 메모리 채널 상의 정보에 근거하여 솔리트 스테이트 드라이브(SSD)의 배경 타스크들을 수행하기 위한 장치 및 방법에 관한 것이다.
솔리드 스테이트 드라이브(SSD)는 다이나믹 랜덤 억세스 메모리(DRAM) 및 플래시 메모리와 같은 비 회전 저장 매체 내에 데이터를 저장한다. DRAM들은 빠르고 저 레이턴시(low latency)를 가진다. DRAM들은 반복적인 읽기/쓰기 사이클들에 대한 높은 내구성을 가진다. 플래시 메모리들은 통상적으로 저렴하며 리프레쉬를 요하지 않는다. 플래시 메모리들은 더 적은 전력을 소모한다. 메모리들의 구별적인 특징들에 기인하여, DRAMs은 통상적으로 운영 명령들과 과도적인 데이터를 저장하는데 사용되는 반면, 플래시 메모리들은 응용(application) 데이터 및 사용자 데이터를 저장하는데 사용된다.
DRAM 및 플래시 메모리는 다양한 컴퓨팅 환경들 내에 함께 사용될 수 있다. 예를 들면, 데이터 센터들은 고 용량, 고 성능, 저전력, 및 저 비용 메모리 해결책을 요구한다. 오늘 날의 데이터 센터들용 메모리 해결책들은 주로 DRAMs에 기반되어 있다. DRAMs은 고성능을 제공한다. 그러나 플래시 메모리들은 DRAMs에 비해 더 밀도 있고, 더 적은 전력을 소모하며, 더 값싸다.
SSD용 배경 타스크들(background tasks)의 스케쥴링은 최적화하기에 어렵다. 왜냐하면, SSD 장치는 종점(endpoint) 장치이고, SSD의 비휘발성 메모리 컨트롤러는 다가올 활동(forthcoming activities)에 대해 모르기 때문이다. 또한, 호스트 컴퓨터와 SSD 간의 메모리 버스 프로토콜은 특별한 적절 타임을 나타내지 않는다. 특별한 적절 타임은 SSD의 웨어 레벨링(wear leveling: 마모도 관리) 및 가비지 컬렉션(garbage collection) 등과 같은 배경 타스크들을 스케쥴링 하는 타임에 대한 것이다. SSD 장치들은 전형적으로 입/출력(I/O) 인터페이스들에 연결된다. 입출력 인터페이스들은 Serial AT Attachment (SATA), Serial Attached SCSI (SAS), 또는 Peripheral Component Interconnect Express (PCIE) 일 수 있다. 그러한 I/O 인터페이스들(interfaces) 어느 것도 배경 타스크들을 스케쥴링하는 특별한 적절 타임들을 나타내지 않는다.
본 발명이 해결하고자 하는 기술적 과제는, 동기 메모리 채널 상의 정보에 근거하여 솔리트 스테이트 드라이브(SSD)의 배경 타스크들을 수행하기 위한 장치 및 방법을 제공함에 있다.
메모리 모듈은 솔리드 스테이트 드라이브(SSD) 및 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는 동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 정보를 수신하고, SSD의 배경 타스크들을 개시하는 것을 결정한다. 본 발명의 일 실시 예에 따라, 동기 메모리 채널은 동기 다이나믹 랜덤 억세스 메모리(DRAM) 채널이고, SSD는 플래시 메모리를 포함한다. 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비 등과 같은 SSD의 상기 배경 타스크들은 메모리 모듈의 아이들 상태 동안에 수행된다.
본 발명의 일 실시 예에 따라, 방법은, 동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 메모리 커맨드들을 수신하고, 상기 메모리 커맨드들에 근거하여 솔리드 스테이트 드라이브(SSD)를 포함하는 메모리 모듈의 장치 상태를 결정하고, 및 상기 장치 상태에 근거하여 상기 SSD의 배경 타스크들을 개시하는 것을 포함한다.
이벤트들의 구현 및 조합의 다양한 신규한 상세들을 포함하는, 상기 및 다른 바람직한 특징들은 첨부 도면들을 참조로 보다 더 상세히 설명될 것이며 청구범위들에서 언급될 것이다. 여기에 개시된 특별한 시스템들 및 방법들은 도시의 목적으로만 나타낸 것이고 본 발명은 이에 한정되지 않는다. 본 분야에 통상의 지식을 가진 자에 의해 이해될 수 있는 바로서, 여기에 개시된 기본적인 원리나 특징들은 본 발명의 개시의 범위를 벗어남이 없이 다양하고 많은 실시 예들로 적용될 수 있다.
본 발명의 실시 예에 따르면, 동기 메모리 채널 상의 정보에 근거하여 솔리트 스테이트 드라이브(SSD)의 배경 타스크들을 수행하기 위한 장치 및 방법이 구현된다.
도 1은 본 발명의 일 실시 예에 따라 예시적 메모리 모듈의 구조를 보여준다.
도 2는 본 발명의 일 실시 예에 따라 SSD용 오버헤드 활동들을 수행하기 위한 예시적 플로우챠트이다.
도 3은 본 발명의 일 실시 예에 따라 비활성화 타이머에 근거하여 배경 타스크들을 개시하는 예를 보여준다.
도 4는 본 발명의 일 실시 예에 따라 리프레쉬의 프로그래머블 드레쉬홀들에 근거하여 SSD 배경 타스크들을 개시하는 예를 보여준다.
도 5는 본 발명의 일 실시 예에 따라 파워 다운 진입 커맨드에 근거하여 SSD 배경 타스크들을 개시하는 예를 보여준다.
도 6은 본 발명의 일 실시 예에 따라 셀프 리프레시 진입 커맨드에 근거하여 SSD 배경 타스크들을 개시하는 예를 보여준다.
메모리 컨트롤러는 동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 정보를 수신하고, 메모리 커맨드들에 근거하여 그리고 메모리 모듈의 상태에 대한 정보를 유지함으로써 SSD의 배경 타스크들을 개시하는 것을 결정한다. 여기에 개시된 메모리 커맨드들은 Joint Electron Device Engineering Council (JEDEC)에 의해 규정된 표준 DRAM 메모리들에 대한 커맨드들을 나타낼 수 있다. 본 발명의 메모리 모듈은 플래시 메모리를 포함하는 표준 DRAM 메모리가 아닐 수 있으며, 호스트 메모리 컨트롤러는 본 발명의 메모리 모듈을 표준 DRAMs과 구별하지 않을 수 있다. 일 실시 예에 따라, 동기 메모리 채널은 DRAM 메모리 채널이고, SSD는 플래시 메모리를 포함한다. 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비 등과 같은 SSD의 상기 배경 타스크들은 메모리 모듈의 추정된 아이들(idle) 상태 동안에 수행된다.
여기에 개시된 특징들 및 사상은 각기, 동기 메모리 채널 상의 정보에 근거하여 SSD의 배경 타스크들을 수행하는 시스템 및 방법을 제공하기 위해, 다른 특징들 및 사상과 분리적으로 혹은 함께하여 활용될 수 있다. 많은 이러한 부가적 특징들 및 사상을 활용하는 대표적 예들은, 분리적으로 및 조합적으로 모두, 첨부 도면들을 참조하여 더 상세히 설명된다. 상세한 설명은 본 발명의 사상의 양상을 실시하는 상세한 사항들을 본 분야의 숙련된 지식을 가진 자에게 제공하기 위해서만 의도되었을 뿐이고, 청구범위들의 범위에 한정되는 것은 아니다. 그러므로 상세한 설명에서 개시된 특징들의 조합들은 최 광의의 의미에서 사상을 실시하는데 필요하지 않을 수 있으며, 대신에 본 발명의 사상의 대표적인 예들을 단지 특별히 설명하기 위해서 제공된다.
이하의 설명에서, 설명만을 위한 의도로, 특정한 명명법(nomenclature)이 본 발명의 개시에 대한 철저한 이해를 제공하기 위해 언급된다. 그렇지만, 본 분야의 숙련된 지식을 가진 자에게 있어 이들 특정한 상세 사항들이 본 발명의 개시의 사상을 실시하기 위해 요구되지 않는다는 것이 명백할 것이다.
여기에 개시된 상세한 설명들의 일부는 컴퓨터 메모리 내 데이터 비트들에 대한 동작들의 알고리즘들과 상징적 표현들의 측면에서 표현된다. 이들 알고리즘적 설명들 및 표현들은, 다른 당업자들에게 그 일의 본질이 효과적으로 전달되도록 하기 위해, 데이터 처리 분야의 당업자들에 의해 사용된다. 여기서 알고리즘은 일반적으로 원하는 결과를 가져오는 자체적으로 일관성 있는 시퀀스(self-consistent sequence) 단계들인 것으로 여겨진다. 상기 단계들은 물리적 양들에 대한 물리적 조작들을 요구하는 것들이다. 대개, 반드시 그렇지는 않지만, 이들 양들은 전기적 혹은 자기적인 신호들의 형태를 취한다. 상기 신호들은 저장, 전송, 결합, 비교, 및 그렇지 않다면 조작될 수 있다. 주로, 공통적인 사용의 이유로 인해, 비트들, 값들, 구성요소들, 심볼들, 특성들, 용어들, 숫자들, 기타 등으로 이들 신호들을 칭하는 것이 때로는 편리하다.
이들의 모두와 유사한 용어들이 적절한 물리적인 양들과 관련되어 있고, 그리고 이들 양들에 적용되는 단지 편리한 라벨들이라는 것에 유의하여야 한다. 이하의 논의로부터 명백한 바로서, 달리 특별히 언급되지 않는 한, 설명의 전반에 걸쳐, "처리", "컴퓨팅", "계산", "결정", "디스플레이", 또는 기타 등등과 같은 용어들을 활용하는 논의들은 컴퓨터 시스템이나 유사한 전자적 컴퓨팅 장치의 활동 및 처리를 칭하는 것을 의미한다. 시스템이나 유사한 전자적 컴퓨팅 장치는 데이터를 조작하고 변환한다. 데이터는 컴퓨터 시스템의 레지스터들 및 메모리들 내에 물리적(전자적)양들로서 표현된다. 데이터는 상기 컴퓨터 시스템 메모리들, 레지스터들, 다른 정보 저장 장치, 전송 장치, 또는 디스플레이 장치들 내에서 유사하게 표현된 다른 데이터로 변환된다.
이들 시스템들의 다양성에 대해 요구되는 구조가 이하의 설명으로부터 나타날 것이다. 프로그래밍 언어들의 다양성이 여기에 설명된 바로서의 발명의 사상을 구현하는데 사용될 수 있는 것이 이해될 것이다.
또한, 대표적인 예시들 및 종속항들의 다양한 특징들은, 본 발명의 사상에 따른 부가적인 유용한 실시 예들을 제공하기 위하여, 특별히 그리고 명시적으로 열거되지 않는 방법으로, 결합될 수 있다.
개체들의 그룹들에 대한 모든 값의 범위나 표시는, 원 발명의 목적을 위한 것뿐만 아니라 권리 범위화된 주제를 명확히 하기 위해, 모든 가능한 중간 값 또는 중간 개체를 나타내고 있음이 또한 특별히 언급된다. 도면들 내에 보여지는 구성 성분들의 치수들 및 형상들은 본 발명의 사상이 어떻게 실시되는 지에 대한 이해를 돕기 위해서 이며 본 발명이 그러한 치수들과 형상들에 제한되는 것은 아니라는 것이 또한 특별히 언급된다.
본 발명의 개시는 메모리 시스템 및 방법을 제공한다. 상기 메모리 시스템 및 방법은 SSD용 배경 관련 타스크들을 개시하기 위해 DRAM 장치 상태와 함께 DRAM 파워 모드 및 리프레시 커맨드들을 활용한다. 본 발명의 시스템 및 방법은 증가된 효율성 및 개선된 성능을 얻기 위해 SSD의 동작을 최적화할 수 있다. 배경 타스크들은 상당한 시간을 필요로할 수 있으며 임의의 플래시 자원들을 사용하지 못하게 할 수 있다(성능을 줄임). 따라서, 아이들 I/O 구간 동안에 이들 배경 타스크들을 스케쥴링 하는 것은 동작의 효율성을 개선한다. SSD용 배경 타스크들은 한정되는 것은 아니지만, 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비(erase block preparation)를 포함할 수 있다. 웨어 레벨링은 플래시 메모리의 서비스 수명을 연장하기 위한 기법으로 칭해진다. 예를 들면, 플래시 메모리 컨트롤러는 플래시 메모리 내에 저장된 데이터를 배열한다. 배열의 이유는 소거 및 재쓰기가 플래시 메모리의 저장 매체 전반에 걸쳐 분포되도록 하기 위해서이다. 이 방법으로, 단일 소거 블록은 쓰기 사이클들의 높은 집중에 기인하여 너무 이르게 불량이 되지 않게 된다. 플래시 메모리 시스템들 내에서 이용되는 다양한 웨어 레벨링 메커니즘이 있으며, 각기 다양한 플래시 메모리 수명 증가의 레벨들을 갖고 있다., 가비지 컬렉션은 쓰기 가능한 상태로의 변환을 위해 플래시 메모리의 무효 및/또는 진부한 데이터(invalid and/or stale data)를 갖는 가비지 블록들을 소거하는 과정을 의미한다.
배경 타스크들은 SSD의 파워다운 모드, 셀프 리프레쉬 모드, 또는 오토 리프레쉬 모드에서 자동으로 개시될 수 있다. SSD의 배경 타스크들은 부하 (workload) 및 상기 메모리 시스템의 현재 상태에 기초하여 동적 최적화 지표들 (dynamic optimization metrics)을 활용할 수 있다.
여기에 개시된 본 발명의 시스템 및 방법은 DRAM 및 플래시 구성 요소들을 가지는 메모리 채널 저장 장치를 참조로 일반적으로 설명된다. 그렇지만, 다른 종류의 메모리, 스토리지, 및 프로토콜들이 본 발명의 개시의 범위를 벗어나지 않는 범위 내에서 동일하게 적용될 수 있다. 한정되는 것은 아니지만, 적용 가능한 메모리의 종류들의 예들은 동기(synchronous) DRAM (SDRAM), 싱글 데이터 레이트(single data rate: SDR) SDRAM, 더블 데이터 레이트(double data rate: DDR) SDRAM (예를 들면, DDR, DDR1, DDR2, DDR3, 및 DDR4), 플래시 메모리(flash memory), 상변화 메모리(phase-change memory: PCM), 스핀 전달 토크 자기(spin-transfer torque magnetic) RAM (STT-MRAM), 및 기타 유사한 메모리를 포함한다. Joint Electron Device Engineering Council (JEDEC) 솔리드 스테이트 테크놀러지 협회(Solid State Technology Association)는 DDR SDRAMs 에 대한 표준을 규정한다. 상기 협회는 메모리 컨트롤러와 DDR SDRAM간의 데이터 교환에 대한 신호 프로토콜을 정의한다. 본 발명의 시스템 및 방법은 JEDEC에 의해 정의된 데이터 교환에 대한 신호 프로토콜을 활용할 수 있다. 또한, 본 발명의 시스템 및 방법은 다른 모드들의 데이터 교환에 대한 다른 표준 신호 프로토콜들도 활용할 수 있다. 메모리 모듈은 호스트 컴퓨터 시스템 상에서 DRAM 메모리 채널에 연결된 하나 이상의 SSDs을 포함할 수 있다.
도 1은 본 발명의 일 실시 예에 따라 예시적 메모리 모듈의 구조를 보여준다. 메모리 모듈(100)은 프론트-엔드 DRAM 캐시(110), 백-엔드 플래시 스토리지(120), 및 메인 컨트롤러(150)를 포함할 수 있다. 상기 프론트-엔드 DRAM 캐시(110)는 하나이상의 DRAM 장치들(131)을 포함할 수 있다. 상기 백-엔드 플래시 스토리지(120)는 하나이상의 플래시 장치들(141)을 포함할 수 있다. 상기 메인 컨트롤러(150)는 DRAM 캐시(110)를 제어하도록 구성된 DRAM 컨트롤러(130)와 인터페이스할 수 있다. 상기 메인 컨트롤러(150)는 플래시 스토리지(120)를 제어하도록 구성된 플래시 컨트롤러(140)와 인터페이스할 수 있다. 메모리 모듈(100)는 DRAM 메모리 채널(155)을 통해 호스트 메모리 컨트롤러(160)와 인터페이스할 수 있다. .
상기 메인 컨트롤러(150)는 캐시 태그(151) 및 상기 캐시의 임시 저장을 위한 버퍼(152)를 포함할 수 있다. 상기 메인 컨트롤러(150)는 캐시 관리(cache management) 및 플로우 제어(flow control)를 담당한다. DRAM 컨트롤러(130)는 DRAM 장치(131)의 메모리 처리 동작(transactions) 및 커맨드 스케쥴링을 관리할 수 있다. DRAM 컨트롤러(130)의 상기 관리는 메모리 리프레시 등과 같은 DRAM의 유지 보수 활동을 포함한다. 상기 플래시 컨트롤러(140)는 플래시 장치(141)를 위한 솔리드 스테이트 드라이브(SSD) 컨트롤러일 수 있다. 상기 플래시 컨트롤러(140)는 어드레스 변환, 가비지 컬렉션, 웨어 레벨링, 및 스케쥴 타스크들을 관리한다.
DRAM 메모리 채널(155)을 통해, 호스트 메모리 컨트롤러(160)는 메모리 커맨드들을 메모리 모듈(100)로 제공한다. 메모리 커맨드들은 파워 및 셀프 리프레시 커맨드들과 같은 전형적인 DRAM 커맨드들을 포함할 수 있다. DRAM 메모리 채널(155)을 통해 수신된 메모리 커맨드들을 메모리 모듈(100)의 상태의 표시로서 이용하여, 메인 컨트롤러(150)는 플래시 장치들(141)의 성능 및 장치 웨어 특성들을 최적화할 수 있다. 일 실시 예에서, 상기 메인 컨트롤러(150)는 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비(erase block preparation)등과 같은 장치 내부 유지보수 기능들(device-internal maintenance functions)을 스케쥴링할 수 있다. 다른 실시 예에서, 상기 플래시 컨트롤러(140)가 장치 내부 유지보수 기능을 스케쥴링할 수 있다.
일 실시 예에 따라, DRAM 메모리 채널(155)을 통해 수신된 메모리 커맨드들은 다른 것들 중에서도, 파워 다운 커맨드, 파워 세이빙 모드 커맨드, 및 셀프 리프레시 커맨드를 포함한다. 이들 커맨드들은 메인 컨트롤러(150)가 플래시 장치들(141)에 대한 내부 유지보수 기능들(device-internal maintenance functions)을 수행하고 플래시 특정 오버헤드 관련 절차들(flash-specific overhead-related procedures)을 호출(invoke)하는 것을 나타낼 수 있다.
메인 컨트롤러(150)가 DRAM 메모리 채널(155)을 통해 수신된 메모리 커맨드들에 근거하여 비활성화의 구간을 검출할 때, 상기 메인 컨트롤러(150) 또는 플래시 컨트롤러(140)는 다양한 플래시 특정 오버헤드 활동들을 수행할 수 있다. 비록 새로운 DRAM 버스 활동이 이전에 개시된 SSD 배경 타스크들의 완료에 앞서 재개되었다 하더라도, DRAM 메모리 채널(155)로부터 수신된 메모리 커맨드들은 SSD의 배경 타스크들을 수행하는데 활용될 수 있는 비활성화의 잠재적 구간에 대한 유용한 지표들(useful indicators)이 될 수 있다.
도 2는 본 발명의 일 실시 예에 따라 SSD용 오버헤드 활동들을 수행하기 위한 예시적 플로우챠트이다. 도 1 및 도 2를 참조하면, 메모리 컨트롤러(150)는 단계 201에서, DRAM 메모리 채널(155)를 통해 호스트 메모리 컨트롤러(160)로부터 메모리 커맨드들을 수신한다. 상기 메모리 커맨들에 근거하여, 메모리 컨트롤러(150)는 단계 202에서, 메모리 모듈(100)이 저 사용 상태로 진입할 것이라는 것을 결정할 수 있다. 예를 들어, 메모리 컨트롤러(150)는 DRAM 메모리 채널(155)상의 메모리 커맨드들의 부재에 근거하여 비활성화의 구간이나 저 사용 구간을 결정한다. 또는 메모리 컨트롤러(150)는 로우 파워 상태 커맨드와 같은 비활성화의 향후 구간을 나타내는 메모리 커맨드의 수신에 근거하여 비활성화의 구간이나 저 사용 구간을 결정한다. 메모리 컨트롤러(150)가 메모리 읽기나 쓰기와 같은 메모리 모듈(100)상에서 수행해야 할 즉각적인 활동들이나 타스크들이 없다는 것을 결정할 때, 메모리 컨트롤러(150)는 단계 203에서, 플래시 컨트롤러(140)가 플래시 특정 오버헤드 활동들을 수행하도록 명령할 수 있다. 메모리 컨트롤러(150)는 통상적으로 DRAM 메모리 채널(155)을 통해 메모리 커맨드들을 수신할 수 있고, 수신된 메모리 커맨드들을 수행하기 위한 준비가 통상적으로 되어 있음을 이해하여야 한다. DRAM 커맨드들이 단계 201에서 메모리 컨트롤러(150)에 의해 수신되면, DRAM 비활성화 상태가 연달아 결정되고, 이어서 SSD 배경 타스크들의 초기화 허용이 유지되거나 SSD 배경 타스크들의 개시에 대한 우선순위를 줄이는 SSD 성능 모드로 동작이 되돌아간다.
본 발명의 일 실시 예에 따라, 메모리 모듈(100)은 클럭 사이클 당 하나 이상의 메모리 커맨드들을 수용할 수 있다. DRAM 메모리 채널(155)의 데이터 버스 사이즈는 메모리 시스템과 메모리 모듈(100)의 메모리 칩들의 제조사에 의존하여 변할 수 있다. 예를 들면, 본 발명의 메모리 모듈(100)은 한번에 64비트들(비 ECC)혹은 72비트들(ECC)을 읽거나 쓰는 168핀 듀얼 인 라인 메모리 모듈(DIMM)이 될 수 있다.
호스트 메모리 컨트롤러(160)에서 메모리 모듈(100)로 전송된 메모리 컨트롤 신호들은 다양한 메모리 동작 커맨드들을 나타낼 수 있다. 메모리 컨트롤 신호들의 예들은 클럭 인에이블(clock enable: CKE or CE), 칩 선택(chip select: CS), 데이터 마스크(data mask: DQM), 로우 어드레스 스트로브(row address strobe: RAS), 컬럼 억세스 스트로브(column access strobe: CAS), 및 라이트 인에이블(write enable:WE)을 포함한다. 메모리 커맨드들은 클럭 인에이블 신호(CKE)의 상승 에지(rising edge)에 관련하여 맞춰질 수 있다. 클럭 인에이블 신호(CKE)가 로우(low)일 때, 메모리 모듈(100)의 메인 컨트롤러(150)는 이후의 메모리 커맨드들을 무시하고, 클럭 인에이블 신호(CKE)가 하이(high)로 변하는 지의 여부만을 단지 체크한다. 메인 컨트롤러(150)는 클럭 인에이블 신호(CKE)의 상승 에지 상에서 일반 메모리 동작들을 재개한다.
일 실시 예에 따라, 메모리 모듈(100)의 메인 컨트롤러(150)는 플래시 특정 오버헤드 활동들(flash-specific overhead activities)을 개시하기 위해 상기 클럭 인에이블 신호(CKE)를 사용한다. 메인 컨트롤러(150)는 상기 클럭의 상승 에지 마다 상기 클럭 인에이블 신호(CKE)를 샘플링할 수 있다. 상기 메인 컨트롤러(150)는 클럭 인에이블 신호(CKE)가 로우인 것을 검출한 후에, 플래시 컨트롤러(140)가 플래시 특정 오버헤드 활동들을 수행하도록 트리거(trigger)할 수 있다.
상기 메인 컨트롤러(150)가 메모리 모듈(100)이 예를 들어, 메모리 모듈(100)의 모든 뱅크들은 프리차아지(prechare)되고 어떠한 메모리 커맨드들도 진행되지 않는 아이들 상태(idle state)에 있다는 것을 결정하면, 메모리 모듈(100)은 호스트 메모리 컨트롤러(160)에 의해 명령된 경우, 파워-다운 모드로 진입할 수 있다. 일 실시 예에 따라, 메모리 컨트롤러(150)는 상기 파워-다운 모드에서 플래시 특정 오버헤드 활동들을 수행할 수 있다.
오토 리프레시 커맨드가 메모리 모듈(100)로 전송되는 타임과 같은 타임에서 클럭 인에이블 신호(CKE)가 로우로 되면, 메모리 모듈(100)은 셀프 리프레시 모드로 진입할 수 있다. 셀프 리프레시 모드에서 메인 컨트롤러는 리프레시 타이머를 이용하여 내부 리프레시 사이클들을 생성할 수 있다. 일 실시 예에 따라, 메모리 컨트롤러(150)는 셀프 리프레시 모드에서 상기 플래시 특정 오버헤드 활동들을 수행할 수 있다.
도 3은 본 발명의 일 실시 예에 따라 비활성화 타이머에 근거하여 배경 타스크들을 개시하는 예를 보여준다. 메인 컨트롤러(150)가 모든 메모리 뱅크들이 프리차아지(예를 들어 모든 뱅크 프리차아지)된 것을 검출할 때, 메인 컨트롤러(150)는 메모리 모듈(100)이 아이들 상태로 진입할 수 있는지를 결정하고고, 그리고 프로그래머블 카운터를 이용하여 비활성화를 나타내는 비활성화 타이머를 시작할 수 있다. 다른 실시 예에서, 호스트 메모리 컨트롤러(160)는 프리차아지 올(all) 커맨드를 상기 메인 컨트롤러(150)로 전송할 수 있고, 상기 메인 컨트롤러(150)는 상기 비활성화 타이머를 시작할 수 있다. 상기 비활성화 타이머는 메모리 모듈(100)의 모든 뱅크들이 아이들이라는 것을 신호할 수 있다.
비활성화 타이머가 기설정된 프로그래머블 드레쉬홀드 구간이 경과하였다는 것을 나타내고, 그리고 추가의 메모리 커맨드들이 수신되지 않았을 경우(즉, 메모리 모듈(100)이 충분히 오랫동안 아이들 상태로 있었음). 메인 컨트롤러(150)는 플래시 컨트롤러(140)가 플래시 장치들(141)의 배경 타스크들을 수행하도록 트리거할 수 있다. 이 경우에, 상기 호스트 메모리 컨트롤러(160)는 파워 다운 모드나 셀프 리프레시 모드로 진입하지 않을 수 있다. 상기 비활성화 타이머의 드레쉬 홀드 구간은 프로그래머블하며, 사용자 셋팅에 따라 변할 수 있다.
일 실시 예에 따라, 메모리 모듈(100)에 의해 수신된 리프레시 커맨드들의 프로그래머블 수는 배경 SSD 동작들을 개시할 수 있다. 도 4는 본 발명의 일 실시 예에 따라 리프레시 커맨드들의 프로그래머블 드레쉬홀에 근거하여 SSD 배경 타스크들을 개시하는 예를 보여준다. DDR4는 리프레시 커맨드들이 사전에 발행되는 것을 허용할 수 있다. 즉 메모리 컨트롤러가 쓰기/읽기 트래픽을 처리하지 않고 상기 리프레시 커맨드들을 미리 처리 할 것이라는 것을 나타낸다. 리프레시 커맨드 후, DRAM 랭크(rank)는 최소 리프레시 사이클 타임(tRC)동안에 아이들 상태가 되도록 보장된다. 상기 리프레시 사이클 타임(tRC)이 만료되기 전에 적어도 이 아이들 타임 동안에, 상기 메모리 컨트롤러는 읽기 혹은 쓰기 커맨드들이 DRAM 랭크로 발행되지 않았음을 안다. 예를 들어, DDR4는 최대 9개의 리프레시 커맨드들이 버스트되는 것을 허용한다(예를 들어 1x 모드인 경우). 연속적인 리프레시 커맨드들의 일부 프로그래머블 수는 SSD 배경 타스크들을 개시하는데 이용될 수 있다.
일 실시 예에 따라, 파워 다운 진입 커맨드는 SSD 배경 동작들을 개시할 수 있다. 파워 다운 진입 커맨드는 호스트 메모리 컨트롤러(160)가 아이들이라는 것을 나타낼 수 있다. 도 5는 본 발명의 일 실시 예에 따라 파워 다운 진입 커맨드에 근거하여 SSD 배경 타스크들을 개시하는 예를 보여준다. 파워 다운 나가기(exit)는 파워 다운 진입 후 tPD로 발행될 수 있다. 상기 파워 다운 타임(tPD)이 만료하기 이전에 적어도 이 아이들 타임 동안, 상기 메모리 컨트롤러는 읽기 혹은 쓰기 커맨드들이 DRAM 랭크로 발행되지 않았음을 안다. 메인 컨트롤러(150)는 상기 파워 다운 진입 커맨드의 수신 시에 배경 SSD 동작들을 개시할 수 있다.
일 실시 예에 따라, 셀프 리프레시 커맨드는 배경 SSD 동작들을 개시할 수 있다. 상기 셀프 리프레시 커맨드는 호스트 메모리 컨트롤러(160)가 아이들이라는 것을 나타낼 수 있다. 도 6은 본 발명의 일 실시 예에 따라 셀프 리프레시 진입 커맨드에 근거하여 SSD 배경 타스크들을 개시하는 예를 보여준다. 셀프 리프레시 나가기는 셀프 리프레시 진입 후에 tCKESR로 발행될 수 있다. 셀프 리프레시 나가기 타임 tCKESR이 만료하기 전에 적어도 이 아이들 타임 동안, 메모리 컨트롤러는 읽기 혹은 쓰기 커맨드들이 DRAM 랭크로 발행되지 않았음을 안다. SoC(System On Chip)는 상기 셀프 리프레시 진입 커맨드의 수신 시에 배경 SSD 동작들을 개시하도록 프로그램될 수 있다.
일 실시 예에 따라, 메모리 모듈은 SSD와 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는 동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 수신된 정보에 근거하여 상기 SSD의 배경 타스크들을 개시하도록 구성될 수 있다. SSD는 플래시 메모리를 포함할 수 있고, 동기 메모리 채널은 동기 DRAM 채널일 수 있다. 메모리 모듈은 DRAM 메모리를 더 포함할 수 있고, 메모리 컨트롤러는 DRAM 메모리 컨트롤러와 플래시 메모리 컨트롤러를 포함할 수 있다. DRAM 메모리 컨트롤러는 DRAM 메모리를 컨트롤하며, 플래시 메모리 컨트롤러는 플래시 메모리를 컨트롤한다.
SSD의 배경 타스크들은 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비를 포함할 수 있다. SSD의 상기 배경 타스크들은 상기 메모리 모듈의 파워다운 모드, 파워 세이빙 모드, 셀프 리프레쉬 모드, 또는 오토 리프레쉬 모드에서 자동으로 개시될 수 있다.
상기 메모리 컨트롤러는 상기 호스트 메모리 컨트롤러로부터 수신된 클럭 인에이블 신호가 로우일 때, 또는 메모리 커맨드들이 상기 호스트 메모리 컨트롤러로부터 수신되지 않을 때, 비활성화 주기를 결정할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 프리차아지 올 커맨드를 포함할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 리프레쉬 커맨드들을 포함하고, 상기 메모리 컨트롤러는 리프레쉬 커맨드들의 프로그래머블 드레쉬홀드에 근거하여 상기 배경 타스크들을 개시하도록 구성된 카운터를 포함할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 파워다운 진입 커맨드를 포함할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 셀프 리프레쉬 진입 커맨드를 포함할 수 있다.
일 실시 예에 따라, 방법은 동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 메모리 커맨드들을 수신하는 것을 포함한다. 또한 방법은 상기 메모리 커맨드들에 근거하여 솔리드 스테이트 드라이브(SSD)를 포함하는 메모리 모듈의 장치 상태를 결정하는 것을 포함한다. 또한 방법은 상기 장치 상태에 근거하여 상기 SSD의 배경 타스크들을 개시하는 것을 포함한다. 상기 SSD는 플래시 메모리를 포함하고, 상기 동기 메모리 채널은 동기 다이나믹 랜덤 억세스 메모리(DRAM) 채널일 수 있다. 상기 메모리 모듈은 DRAM 메모리를 더 포함하고, 상기 메모리 컨트롤러는 DRAM 메모리 컨트롤러와 플래시 메모리 컨트롤러를 포함할 수 있다.
상기 SSD의 상기 배경 타스크들은 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비를 포함할 수 있다. 상기 SSD의 상기 배경 타스크들은 상기 메모리 모듈의 파워다운 모드, 파워 세이빙 모드, 셀프 리프레쉬 모드, 또는 오토 리프레쉬 모드에서 자동으로 개시될 수 있다.
호스트 메모리 컨트롤러로부터 수신된 클럭 인에이블 신호가 로우일 때, 또는 메모리 커맨드들이 상기 호스트 메모리 컨트롤러로부터 수신되지 않을 때, 메모리 컨트롤러는 비활성화 주기를 결정할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 프리차아지 올 커맨드를 포함할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 리프레쉬 커맨드들을 포함할 수 있고, 상기 메모리 컨트롤러는 리프레쉬 커맨드들의 프로그래머블 드레쉬홀드에 근거하여 상기 배경 타스크들을 개시하도록 구성된 카운터를 포함할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 파워다운 진입 커맨드를 포함할 수 있다. 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 셀프 리프레쉬 진입 커맨드를 포함할 수 있다.
상기한 예시적 실시 예들은 비휘발성 메모리에 대한 메모리 동작들을 유동적으로 스케쥴링하기 위한 시스템 및 방법을 구현하는 다양한 실시 예들을 나타내기 위해 설명되었다. 개시된 실시 예들로부터 다양한 변경 및 출발이 본 분야의 통상의 기술을 가진 자에 일어날 수 있을 것이다. 본 발명의 개시의 범위 내에 있는 것으로 의도된 기술적 사상은 이하의 청구범위들에서 언급된다.

Claims (10)

  1. 솔리드 스테이트 드라이브(SSD); 및
    동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 수신된 정보에 근거하여 상기 SSD의 배경 타스크들을 개시하도록 구성된 메모리 컨트롤러를 포함하는 메모리 모듈.
  2. 제1항에 있어서, 상기 SSD는 플래시 메모리를 포함하고, 상기 동기 메모리 채널은 동기 다이나믹 랜덤 억세스 메모리(DRAM) 채널인 메모리 모듈.
  3. 제2항에 있어서, DRAM 메모리를 더 포함하고, 상기 메모리 컨트롤러는 DRAM 메모리 컨트롤러와 플래시 메모리 컨트롤러를 포함하는 메모리 모듈.
  4. 제1항에 있어서, 상기 SSD의 상기 배경 타스크들은 가비지 컬렉션, 웨어 레벨링, 및 소거 블록 준비를 포함하는 메모리 모듈.
  5. 제1항에 있어서, 상기 SSD의 상기 배경 타스크들은 상기 메모리 모듈의 파워다운 모드, 파워 세이빙 모드, 셀프 리프레쉬 모드, 또는 오토 리프레쉬 모드에서 자동으로 개시되는 메모리 모듈.
  6. 제1항에 있어서, 상기 메모리 컨트롤러는 상기 호스트 메모리 컨트롤러로부터 수신된 클럭 인에이블 신호가 로우일 때, 또는 메모리 커맨드들이 상기 호스트 메모리 컨트롤러로부터 수신되지 않을 때, 비활성화 주기를 결정하는 메모리 모듈.
  7. 제1항에 있어서, 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 프리차아지 올 커맨드를 포함하는 메모리 모듈.
  8. 제1항에 있어서, 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 리프레쉬 커맨드들을 포함하고, 상기 메모리 컨트롤러는 리프레쉬 커맨드들의 프로그래머블 드레쉬홀드에 근거하여 상기 배경 타스크들을 개시하도록 구성된 카운터를 포함하는 메모리 모듈.
  9. 제1항에 있어서, 상기 호스트 메모리 컨트롤러로부터 수신된 상기 정보는 파워다운 진입 커맨드를 포함하는 메모리 모듈.
  10. 동기 메모리 채널을 경유하여 호스트 메모리 컨트롤러로부터 메모리 커맨드들을 수신하고;
    상기 메모리 커맨드들에 근거하여 솔리드 스테이트 드라이브(SSD)를 포함하는 메모리 모듈의 장치 상태를 결정하고; 및
    상기 장치 상태에 근거하여 상기 SSD의 배경 타스크들을 개시하는 방법.
KR1020160074705A 2015-10-16 2016-06-15 메모리 채널 상호연결의 정보에 근거하여 스토리지 장치 타스크들을 개시하기 위한 시스템 및 방법 KR20200067227A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562242924P 2015-10-16 2015-10-16
US62/242,924 2015-10-16
US14/970,008 US20170109101A1 (en) 2015-10-16 2015-12-15 System and method for initiating storage device tasks based upon information from the memory channel interconnect
US14/970,008 2015-12-15

Publications (1)

Publication Number Publication Date
KR20200067227A true KR20200067227A (ko) 2020-06-12

Family

ID=58523037

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160074705A KR20200067227A (ko) 2015-10-16 2016-06-15 메모리 채널 상호연결의 정보에 근거하여 스토리지 장치 타스크들을 개시하기 위한 시스템 및 방법

Country Status (2)

Country Link
US (1) US20170109101A1 (ko)
KR (1) KR20200067227A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108450B2 (en) * 2016-04-21 2018-10-23 Samsung Electronics Co., Ltd. Mechanism for SSDs to efficiently manage background activity with notify
US10635335B2 (en) 2017-03-21 2020-04-28 Western Digital Technologies, Inc. Storage system and method for efficient pipeline gap utilization for background operations
US11188456B2 (en) 2017-03-21 2021-11-30 Western Digital Technologies Inc. Storage system and method for predictive block allocation for efficient garbage collection
US11269764B2 (en) * 2017-03-21 2022-03-08 Western Digital Technologies, Inc. Storage system and method for adaptive scheduling of background operations
US11537513B2 (en) * 2017-12-11 2022-12-27 SK Hynix Inc. Apparatus and method for operating garbage collection using host idle
US11442635B2 (en) * 2019-01-10 2022-09-13 Western Digital Technologies, Inc. Data storage systems and methods for optimized scheduling of background management operations
US11307805B2 (en) * 2020-05-29 2022-04-19 Seagate Technology Llc Disk drive controller incorporating task manager for reducing performance spikes
CN116909495B (zh) * 2023-09-14 2023-12-15 合肥康芯威存储技术有限公司 一种存储装置及其控制方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535400A (en) * 1994-01-28 1996-07-09 Compaq Computer Corporation SCSI disk drive power down apparatus
KR100631935B1 (ko) * 2000-06-30 2006-10-04 주식회사 하이닉스반도체 반도체 메모리 장치의 셀프 리프레시 회로
US7620751B2 (en) * 2005-09-27 2009-11-17 Intel Corporation Command scheduling and affiliation management for serial attached storage devices
US7757040B2 (en) * 2007-01-30 2010-07-13 International Business Machines Corporation Memory command and address conversion between an XDR interface and a double data rate interface
US7987332B2 (en) * 2007-03-21 2011-07-26 Sandisk Technologies Inc. Methods for storing memory operations in a queue
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8032033B2 (en) * 2007-10-23 2011-10-04 Hewlett-Packard Development Company, L.P. Synchronous optical bus providing communication between computer system components
US20130086311A1 (en) * 2007-12-10 2013-04-04 Ming Huang METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
US8595449B2 (en) * 2008-09-02 2013-11-26 Qimonda Ag Memory scheduler for managing maintenance operations in a resistive memory in response to a trigger condition
WO2011106056A1 (en) * 2010-02-23 2011-09-01 Rambus Inc. Methods and circuits for dynamically scaling dram power and performance
JP4829370B1 (ja) * 2010-07-09 2011-12-07 株式会社東芝 メモリ制御装置、メモリ装置および停止制御方法
US9361044B2 (en) * 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
WO2013147755A1 (en) * 2012-03-27 2013-10-03 Hewlett-Packard Development Company, L.P. Nonvolatile memory bank groups
JP5914148B2 (ja) * 2012-05-07 2016-05-11 株式会社バッファローメモリ Ssd(ソリッドステートドライブ)装置
US9141533B2 (en) * 2012-05-31 2015-09-22 Silicon Motion, Inc. Data storage device and flash memory control method for performing garbage collection
US9098258B2 (en) * 2012-06-08 2015-08-04 Apple Inc. Thermal-based acoustic management
US9159397B2 (en) * 2012-12-04 2015-10-13 Micron Technology, Inc. Methods and apparatuses for refreshing memory
EP3005128B1 (en) * 2013-05-30 2018-07-04 Hewlett-Packard Enterprise Development LP Separate memory controllers to access data in memory
IN2013KO01167A (ko) * 2013-10-09 2015-04-10 Lsi Corp
US9001608B1 (en) * 2013-12-06 2015-04-07 Intel Corporation Coordinating power mode switching and refresh operations in a memory device
US9361968B2 (en) * 2014-01-15 2016-06-07 Lenovo (Singapore) Pte. Ltd. Non-volatile random access memory power management using self-refresh commands

Also Published As

Publication number Publication date
US20170109101A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
KR20200067227A (ko) 메모리 채널 상호연결의 정보에 근거하여 스토리지 장치 타스크들을 개시하기 위한 시스템 및 방법
US10658023B2 (en) Volatile memory device and electronic device comprising refresh information generator, information providing method thereof, and refresh control method thereof
US9418723B2 (en) Techniques to reduce memory cell refreshes for a memory device
US10268382B2 (en) Processor memory architecture
KR101966858B1 (ko) 휘발성 메모리 장치의 동작 방법, 휘발성 메모리 장치 및 메모리 시스템의 제어 방법
US6876593B2 (en) Method and apparatus for partial refreshing of DRAMS
KR20200017799A (ko) 메모리 장치, 메모리 시스템 및 그 메모리 장치의 리프레시 방법
KR102389820B1 (ko) 트레이닝 동작을 제어하는 메모리 컨트롤러, 메모리 시스템 및 그의 동작방법
US10504582B2 (en) Timing control circuit shared by a plurality of banks
US20130117641A1 (en) Method and system for error management in a memory device
JP2009009702A (ja) 半導体記憶装置
JP2008084426A (ja) 半導体メモリおよびシステム
US7746718B2 (en) Semiconductor memory, operating method of semiconductor memory, memory controller, and system
KR102449333B1 (ko) 메모리 시스템 및 그것의 읽기 요청 관리 방법
KR102615012B1 (ko) 메모리 장치 및 그것의 동작 방법
US10528423B2 (en) Memory management systems and methods
WO2009089044A1 (en) Memory system, memory controller and refresh operation control method of memory controller
US9015389B2 (en) Volatile memory device and memory controller
US7536519B2 (en) Memory access control apparatus and method for accomodating effects of signal delays caused by load
US20170147230A1 (en) Memory device and memory system having heterogeneous memories
KR20150020477A (ko) 메모리 장치, 이를 포함하는 메모리 시스템 및 그 동작 방법
KR20170093053A (ko) 리프레시 정보 생성기를 포함하는 휘발성 메모리 장치 및 전자 장치, 그것의 정보 제공 방법, 그리고 그것의 리프레시 제어 방법
KR102390156B1 (ko) 비휘발성 듀얼 인-라인 메모리 모듈을 위한 페이지 크기 인식 스케줄링 방법 및 비일시적인 컴퓨터 판독가능 기록매체
JP2005196952A (ja) ダイナミック半導体記憶装置及びこの装置の節電モード動作方法
WO2017156747A1 (zh) 一种内存访问方法以及计算机系统

Legal Events

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