KR102434170B1 - 하이브리드 메모리 시스템 - Google Patents
하이브리드 메모리 시스템 Download PDFInfo
- Publication number
- KR102434170B1 KR102434170B1 KR1020207029008A KR20207029008A KR102434170B1 KR 102434170 B1 KR102434170 B1 KR 102434170B1 KR 1020207029008 A KR1020207029008 A KR 1020207029008A KR 20207029008 A KR20207029008 A KR 20207029008A KR 102434170 B1 KR102434170 B1 KR 102434170B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- host
- hybrid
- memory system
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 532
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 32
- 230000035945 sensitivity Effects 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 7
- 238000012005 ligant binding assay Methods 0.000 description 56
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 230000003252 repetitive effect Effects 0.000 description 20
- 238000013459 approach Methods 0.000 description 11
- 230000001747 exhibiting effect Effects 0.000 description 8
- 238000005192 partition Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도 2는 본 개시의 다수의 실시예에 따르는 메인 메모리를 포함하는 호스트, 및 메모리 시스템을 포함하는 컴퓨팅 시스템의 형태로 된 장치의 블록도이다.
도 3a는 본 개시의 다수의 실시예에 따라 논리 블록 어드레스 범위를 하이브리드 메모리 시스템에 매핑하기 위한 예시적 흐름도를 도시한다.
도 3b는 본 개시의 다수의 실시예에 따라 하이브리드 메모리 시스템의 일부분을 호스트 메모리(가령, 호스트와 연관된 메인 메모리)로 매핑하기 위한 예시적 흐름도(317)를 도시한다.
도 3c는 코드 페이징 동작의 수행에 응답하여 하이브리드 메모리 시스템으로 데이터를 선택적으로 전송하기 위한 예시적 흐름도를 도시한다.
도 4는 본 개시의 다수의 실시예에 따라 커맨드 트래픽을 하이브리드 메모리 시스템으로 선택적으로 전송하기 위한 예시적 흐름도를 도시한다.
도 5a는 본 개시의 다수의 실시예에 따라 하이브리드 메모리 시스템으로 커맨드를 선택적으로 우회시키기 위한 예시적 흐름도를 도시한다.
도 5b는 본 개시의 다수의 실시예에 따라 하이브리드 메모리 시스템으로 커맨드 트래픽을 선택적으로 우회시키기 위한 예시적 흐름도를 도시한다.
도 5c는 본 개시의 다수의 실시예에 따라 하이브리드 메모리 시스템으로 식별된 쓰기 패턴을 갖는 커맨드 트래픽을 선택적으로 우회시키기 위한 예시적 흐름도를 도시한다.
도 5d는 식별된 커맨드 특성에 의해 하이브리드 메모리 시스템으로 선택적으로 우회되는 예시적 흐름도를 도시한다.
특징부 | 설명 | NVMe 규격 버전 |
LBA 범위 유형 | 특정된 이름공간의 일부인 LBA 범위의 유형 및 속성을 지시 | 1.2.1 |
데이터 세트 관리 기능 | LBA의 특정 양과 연관된 커맨드 및/또는 데이터 트래픽으로 정보 전송 | 1.2.1 |
지시(가령, 스트림) | 호스트가 특정된 논리 블록이 연관된 데이터의 그룹의 일부임을 제어기에게 지시하게 할 수 있음 | 1.3 |
Claims (20)
- 장치로서,
제1 비-휘발성 메모리(NVM) 자원, 제2 NVM 자원 및 제어기를 포함하는 하이브리드 메모리 시스템을 포함하고, 상기 제어기는
스왑 동작의 성능에 대응하는 커맨드에 감도를 할당하도록 구성되고 - 상기 커맨드는 상기 하이브리드 메모리 시스템으로부터 분리되어 있고 상기 하이브리드 메모리 시스템에 연결 가능한 호스트의 메인 메모리와 연관되어 있으며, 상기 감도는 상기 커맨드의 실행의 빈도 및 상기 커맨드의 실행과 연관된 쓰기 레이턴시에 기초함 - ;
특정 유형의 파일 시스템 쓰기로서 그것과 연관된 결정 가능한 쓰기 패턴을 갖는 특정 유형의 파일 시스템 쓰기에 상기 커맨드가 더 대응한다고 결정하도록 구성되며;
상기 스왑 동작의 성능에 대응하며 상기 하이브리드 메모리 시스템으로부터 분리되어 있고 상기 하이브리드 메모리 시스템에 연결 가능한 상기 호스트의 상기 메인 메모리와 연관된 데이터를 저장하기 위해 상기 하이브리드 메모리 시스템의 일부분을 할당하도록 구성되고 - 상기 하이브리드 메모리 시스템의 상기 일부분은 상기 제1 NVM 자원 또는 상기 제2 NVM 자원 중 다른 것보다 낮은 액세스 레이턴시 및 높은 내구성을 보이도록 구성되는 상기 제1 NVM 자원 또는 상기 제2 NVM 자원 중 하나에 할당되며, 상기 하이브리드 메모리 시스템의 상기 일부분은 상기 호스트와 상기 하이브리드 메모리 시스템의 상기 할당된 일부분 사이에서 데이터가 전송되는 것을 허용하도록 구성됨 - ;
상기 호스트의 메인 메모리가 임계 자원 사용량을 겪는다는 결정에 응답하여, 상기 할당된 감도, 상기 특정 유형의 파일 시스템 쓰기에 대응하는 상기 커맨드, 및 상기 특정 유형의 파일 시스템 쓰기로서 그것과 연관된 상기 결정 가능한 쓰기 패턴을 갖는 상기 특정 유형의 파일 시스템 쓰기에, 적어도 부분적으로, 기초하여 상기 커맨드를 핸들링할 때, 상기 낮은 액세스 레이턴시 및 상기 높은 내구성을 보이도록 구성되는 상기 제1 NVM 자원 또는 상기 제2 NVM 자원 중 상기 하나에 상기 호스트의 상기 메인 메모리와 연관된 논리 블록 어드레스(LBA)를 매핑함으로써 상기 스왑 동작의 성능의 일부로서 상기 하이브리드 메모리 시스템의 상기 제1 NVM 자원 또는 상기 제2 NVM 자원에 상기 호스트의 가상 메모리 위치와 연관된 상기 메인 메모리의 데이터의 페이지의 일부분을 선택적으로 전송하도록 구성되는, 장치. - 제1항에 있어서, 상기 제어기는 데이터가 하이브리드 메모리 시스템의 특정 논리 블록 어드레스로 선택적으로 전송되게 하도록 더 구성되는, 장치.
- 삭제
- 제1항에 있어서, 상기 제어기는 하이브리드 메모리 시스템에서 데이터를 선택적으로 전송함으로써 데이터의 실행 속도를 최적화하도록 더 구성되는, 장치.
- 제1항, 제2항 및 제4항 중 어느 한 항에 있어서, 하이브리드 메모리 시스템은:
제1 메모리 자원 및 제2 메모리 자원 - 제1 메모리 자원 및 제2 메모리 자원 중 적어도 하나는 이머징 비-휘발성 메모리 자원임 - 을 포함하며,
데이터는 데이터의 프로세스 작업 세트에 대응하는 데이터를 포함하는, 장치. - 시스템으로서,
제1 비-휘발성 메모리(NVM) 자원, 제2 NVM 자원 및 제어기를 포함하는 하이브리드 메모리 시스템을 포함하며, 상기 제어기는
스왑 동작의 성능에 대응하는 커맨드에 감도를 할당하도록 구성되고 - 상기 커맨드는 상기 하이브리드 메모리 시스템으로부터 분리되어 있고 상기 하이브리드 메모리 시스템에 연결 가능한 호스트의 메인 메모리와 연관되어 있으며, 상기 감도는 상기 커맨드의 실행의 빈도 및 상기 커맨드의 실행과 연관된 쓰기 레이턴시에 기초함 - ;
특정 유형의 파일 시스템 쓰기로서 그것과 연관된 결정 가능한 쓰기 패턴을 갖는 특정 유형의 파일 시스템 쓰기에 상기 커맨드가 더 대응한다고 결정하도록 구성되며;
상기 스왑 동작의 성능에 대응하며 상기 하이브리드 메모리 시스템으로부터 분리되어 있고 상기 하이브리드 메모리 시스템에 연결 가능한 상기 호스트의 상기 메인 메모리와 연관된 데이터를 저장하기 위해 상기 하이브리드 메모리 시스템의 일부분을 할당하도록 구성되고 - 상기 하이브리드 메모리 시스템의 상기 일부분은 상기 제1 NVM 자원 또는 상기 제2 NVM 자원 중 다른 것보다 낮은 쓰기 레이턴시 및 높은 내구성을 보이도록 구성되는 상기 제1 NVM 자원 또는 상기 제2 NVM 자원 중 하나에 할당되며, 상기 하이브리드 메모리 시스템의 상기 일부분은 상기 호스트와 상기 하이브리드 메모리 시스템의 상기 할당된 일부분 사이에서 데이터가 전송되는 것을 허용하도록 구성됨 - ;
상기 스왑 동작의 성능에 대응하는 상기 메인 메모리의 데이터의 페이지의 일부분을 상기 호스트로부터 상기 하이브리드 메모리 시스템의 상기 할당된 일부분으로 선택적으로 전송함으로써 상기 스왑 동작을 수행하도록 구성되며;
상기 할당된 감도, 상기 특정 유형의 파일 시스템 쓰기에 대응하는 상기 커맨드, 및 상기 특정 유형의 파일 시스템 쓰기로서 그것과 연관된 상기 결정 가능한 쓰기 패턴을 갖는 상기 특정 유형의 파일 시스템 쓰기에, 적어도 부분적으로, 기초하여 상기 커맨드를 핸들링할 때, 상기 낮은 쓰기 레이턴시 및 상기 높은 내구성을 보이도록 구성되는 상기 제1 NVM 자원 또는 상기 제2 NVM 자원 중 상기 하나에 상기 하이브리드 메모리 시스템에 연결된 상기 호스트의 상기 메인 메모리와 연관된 LBA를 매핑함으로써 상기 스왑 동작의 성능의 일부로서 상기 하이브리드 메모리 시스템의 상기 제1 NVM 자원 또는 상기 제2 NVM 자원에 상기 메인 메모리의 데이터의 페이지의 상기 일부분을 선택적으로 저장하도록 구성되는 - 상기 메인 메모리의 데이터의 상기 페이지의 상기 일부분은 상기 스왑 동작의 성능에 적어도 부분적으로 기초하여 상기 하이브리드 메모리 시스템의 상기 제1 NVM 자원 또는 상기 제2 NVM 자원에 선택적으로 저장됨 - , 시스템. - 제6항에 있어서, 상기 제1 NVM 자원은 상기 제2 NVM 자원보다 빠른 액세스 시간 및 상기 높은 메모리 내구성 중 적어도 하나를 특징으로 하는, 시스템.
- 제6항 또는 제7항에 있어서, 제어기는:
데이터를 하이브리드 메모리 시스템의 할당된 부분으로 선택적으로 전송함으로써 스왑 동작의 수행과 연관된 시간량을 최적화하고,
데이터가 호스트에 의해 참조된다는 결정에 응답하여 데이터를 호스트로 다시 전송하도록 구성되는, 시스템. - 제6항에 있어서,
스왑 동작에 대응하는 데이터가 호스트와 연관된 가상 메모리 페이지에 의해 액세스되는 데이터의 프로세스 작업 세트에 대응하며,
제어기는 프로세스 작업 세트에 대응하는 메모리의 양이 임계 메모리 소비 값을 초과했다는 결정에 응답하여 스왑 동작의 수행을 야기하도록 구성되는, 시스템. - 호스트의 가상 메모리 위치에 대응하는 데이터를 저장하기 위해 플래시 메모리 디바이스 및 저항 가변 메모리 디바이스를 포함하는 하이브리드 메모리 시스템의 일부분을 할당하는 단계;
스왑 동작의 성능에 대응하는 커맨드에 감도를 할당하는 단계 - 상기 커맨드는 상기 하이브리드 메모리 시스템으로부터 분리되어 있고 상기 하이브리드 메모리 시스템에 연결 가능한 상기 호스트의 메인 메모리와 연관되어 있으며, 상기 감도는 상기 커맨드의 실행의 빈도 및 상기 커맨드의 실행과 연관된 쓰기 레이턴시에 기초함 - ;
특정 유형의 파일 시스템 쓰기로서 그것과 연관된 결정 가능한 쓰기 패턴을 갖는 특정 유형의 파일 시스템 쓰기에 상기 커맨드가 더 대응한다고 결정하는 단계;
상기 스왑 동작의 성능에 대응하며 상기 하이브리드 메모리 시스템으로부터 분리되어 있고 상기 하이브리드 메모리 시스템에 연결 가능한 상기 호스트의 상기 메인 메모리와 연관된 데이터를 저장하기 위해 상기 하이브리드 메모리 시스템의 일부분을 할당하는 단계 - 상기 하이브리드 메모리 시스템의 상기 일부분은 상기 플래시 메모리 디바이스 또는 상기 저항 가변 메모리 디바이스 중 다른 것보다 낮은 액세스 레이턴시 및 높은 내구성을 보이도록 구성되는 상기 플래시 메모리 디바이스 또는 상기 저항 가변 메모리 디바이스 중 하나에 할당되며, 상기 하이브리드 메모리 시스템의 상기 일부분은 상기 호스트와 상기 하이브리드 메모리 시스템의 상기 할당된 일부분 사이에서 데이터가 전송되는 것을 허용하도록 구성됨 - ; 및
상기 할당된 감도, 상기 특정 유형의 파일 시스템 쓰기에 대응하는 상기 커맨드, 및 상기 특정 유형의 파일 시스템 쓰기로서 그것과 연관된 상기 결정 가능한 쓰기 패턴을 갖는 상기 특정 유형의 파일 시스템 쓰기에, 적어도 부분적으로, 기초하여 상기 커맨드를 핸들링할 때, 상기 낮은 액세스 레이턴시 및 상기 높은 내구성을 보이도록 구성되는 상기 플래시 메모리 디바이스 또는 상기 저항 가변 메모리 디바이스에 상기 호스트의 상기 메인 메모리와 연관된 논리 블록 어드레스(LBA)를 매핑함으로써 상기 스왑 동작의 성능의 일부로서 상기 하이브리드 메모리 시스템의 상기 플래시 메모리 디바이스 또는 상기 저항 가변 메모리 디바이스의 상기 할당된 일부분에 상기 호스트와 연관된 가상 메모리 위치에 의해 참조되는 상기 메인 메모리의 데이터의 페이지의 일부분을 선택적으로 전송하는 단계를 포함하는, 방법. - 제10항에 있어서, 데이터를 저장하기 위해 하이브리드 메모리 시스템의 일부분을 할당하는 단계는 데이터를 저장하기 위해 하이브리드 메모리 시스템의 논리 블록 어드레스 범위를 할당하는 단계를 더 포함하는, 방법.
- 삭제
- 제10항에 있어서, 데이터는 데이터의 익명 페이지를 포함하고,
데이터의 익명 페이지는 데이터의 프로세스 작업 세트에 대응하는 데이터를 포함하는, 방법. - 제10항, 제11항 및 제13항 중 어느 한 항에 있어서, 호스트가 데이터를 참조 중이라는 결정에 응답하여, 하이브리드 메모리 시스템의 할당된 부분으로부터 다시 호스트로 데이터를 전송하는 단계를 더 포함하는, 방법.
- 제10항, 제11항 및 제13항 중 어느 한 항에 있어서, 호스트와 연관된 물리 메모리 위치가 호스트와 연관된 둘 이상의 가상 메모리 위치에 의해 참조된다는 결정에 응답하여, 데이터를 호스트로부터 하이브리드 메모리 시스템의 할당된 부분으로 선택적으로 전송하는 단계를 더 포함하는, 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/927,383 US10809942B2 (en) | 2018-03-21 | 2018-03-21 | Latency-based storage in a hybrid memory system |
US15/927,383 | 2018-03-21 | ||
PCT/US2019/021960 WO2019182824A1 (en) | 2018-03-21 | 2019-03-13 | Hybrid memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200121372A KR20200121372A (ko) | 2020-10-23 |
KR102434170B1 true KR102434170B1 (ko) | 2022-08-19 |
Family
ID=67985188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207029008A Active KR102434170B1 (ko) | 2018-03-21 | 2019-03-13 | 하이브리드 메모리 시스템 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10809942B2 (ko) |
EP (1) | EP3769227A4 (ko) |
JP (1) | JP7049476B2 (ko) |
KR (1) | KR102434170B1 (ko) |
CN (1) | CN111919201B (ko) |
TW (1) | TWI696188B (ko) |
WO (1) | WO2019182824A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12242725B2 (en) | 2023-03-20 | 2025-03-04 | Xcena Inc. | Electronic device and computing system including same |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10923178B1 (en) | 2020-02-27 | 2021-02-16 | Western Digital Technologies, Inc. | Data storage with improved write performance for preferred user data |
RU2757659C1 (ru) * | 2020-06-16 | 2021-10-19 | Александр Георгиевич Носков | Накопитель магнитный с разделёнными областями |
US11947839B2 (en) * | 2021-05-10 | 2024-04-02 | Samsung Electronics Co., Ltd. | Storage device, system, and method for customizable metadata |
US11860773B2 (en) * | 2022-02-03 | 2024-01-02 | Micron Technology, Inc. | Memory access statistics monitoring |
JP2023173240A (ja) * | 2022-05-25 | 2023-12-07 | 東芝テック株式会社 | 計算機、メモリ制御方法およびメモリ制御プログラム |
CN114936007A (zh) * | 2022-06-02 | 2022-08-23 | 三星(中国)半导体有限公司 | 存储数据的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074339A1 (en) * | 2013-09-10 | 2015-03-12 | Hicamp Systems, Inc. | Hybrid main memory using a fine-grain level of remapping |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH047763A (ja) * | 1990-04-26 | 1992-01-13 | Oki Electric Ind Co Ltd | 主記憶割り当て管理方式 |
US8452912B2 (en) | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
US6581142B1 (en) * | 2000-09-01 | 2003-06-17 | International Business Machines Corporation | Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer |
US20090193184A1 (en) * | 2003-12-02 | 2009-07-30 | Super Talent Electronics Inc. | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System |
KR100843543B1 (ko) * | 2006-10-25 | 2008-07-04 | 삼성전자주식회사 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
US7584335B2 (en) * | 2006-11-02 | 2009-09-01 | International Business Machines Corporation | Methods and arrangements for hybrid data storage |
KR100881187B1 (ko) * | 2007-01-16 | 2009-02-05 | 삼성전자주식회사 | 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로 |
TWI338856B (en) * | 2007-03-09 | 2011-03-11 | Ite Tech Inc | A flash memory storing device and a data storing method thereof |
JP4781373B2 (ja) * | 2007-05-14 | 2011-09-28 | 株式会社バッファロー | 記憶装置 |
US20100169602A1 (en) * | 2008-12-29 | 2010-07-01 | Jared E Hulbert | Method and Apparatus for Efficient Memory Placement |
US20100241815A1 (en) * | 2009-03-20 | 2010-09-23 | Google Inc. | Hybrid Storage Device |
US8307151B1 (en) * | 2009-11-30 | 2012-11-06 | Micron Technology, Inc. | Multi-partitioning feature on e-MMC |
US20110167197A1 (en) * | 2010-01-05 | 2011-07-07 | Mark Leinwander | Nonvolatile Storage with Disparate Memory Types |
KR101713051B1 (ko) * | 2010-11-29 | 2017-03-07 | 삼성전자주식회사 | 하이브리드 메모리 시스템, 및 그 관리 방법 |
US8725963B1 (en) | 2011-04-15 | 2014-05-13 | Parallels IP Holdings GmbH | System and method for managing a virtual swap file for virtual environments |
US9514838B2 (en) * | 2011-05-31 | 2016-12-06 | Micron Technology, Inc. | Apparatus including memory system controllers and related methods for memory management using block tables |
KR20130032772A (ko) * | 2011-09-23 | 2013-04-02 | 삼성전자주식회사 | 하이브리드 메모리 장치, 이를 포함하는 컴퓨터 시스템, 및 하이브리드 메모리장치의 데이터 기입 및 독출 방법 |
JP5971547B2 (ja) * | 2012-02-15 | 2016-08-17 | 国立大学法人 東京大学 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
JP2014178913A (ja) * | 2013-03-15 | 2014-09-25 | Sony Corp | 電子機器、スナップショットイメージの作成方法及びプログラム |
US10372551B2 (en) | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
US9430386B2 (en) * | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9946495B2 (en) * | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9436600B2 (en) | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
US9921980B2 (en) | 2013-08-12 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for configuring I/Os of memory for hybrid memory modules |
CN106062724B (zh) * | 2013-09-27 | 2020-09-08 | 慧与发展有限责任合伙企业 | 管理存储器模块上的数据的方法、存储器模块及存储介质 |
KR20150043102A (ko) * | 2013-10-14 | 2015-04-22 | 한국전자통신연구원 | 하이브리드 메모리의 데이터 관리 장치 및 방법 |
US9430508B2 (en) | 2013-12-30 | 2016-08-30 | Microsoft Technology Licensing, Llc | Disk optimized paging for column oriented databases |
US9509771B2 (en) * | 2014-01-14 | 2016-11-29 | International Business Machines Corporation | Prioritizing storage array management commands |
KR20150089538A (ko) * | 2014-01-28 | 2015-08-05 | 한국전자통신연구원 | 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법 |
US9772776B2 (en) | 2014-02-27 | 2017-09-26 | Red Hat Israel, Ltd. | Per-memory group swap device |
US9711194B2 (en) * | 2015-01-28 | 2017-07-18 | Xilinx, Inc. | Circuits for and methods of controlling the operation of a hybrid memory system |
EP3097671B1 (en) * | 2015-02-18 | 2021-05-19 | Intel Corporation | Traffic class arbitration based on priority and bandwidth allocation |
US9459802B1 (en) * | 2015-03-30 | 2016-10-04 | Kabushiki Kaisha Toshiba | Hybrid-HDD that limits dirty data in NAND |
US10007435B2 (en) | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
US9760479B2 (en) * | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
JP2017138853A (ja) * | 2016-02-04 | 2017-08-10 | 株式会社東芝 | 情報処理装置およびプログラム |
US10678704B2 (en) * | 2016-03-29 | 2020-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US9772943B1 (en) * | 2016-04-01 | 2017-09-26 | Cavium, Inc. | Managing synonyms in virtual-address caches |
US20170300422A1 (en) | 2016-04-14 | 2017-10-19 | Micron Technology, Inc. | Memory device with direct read access |
US10108555B2 (en) * | 2016-05-26 | 2018-10-23 | Macronix International Co., Ltd. | Memory system and memory management method thereof |
US10698732B2 (en) * | 2016-07-19 | 2020-06-30 | Sap Se | Page ranking in operating system virtual pages in hybrid memory systems |
US10540098B2 (en) * | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
US11977484B2 (en) * | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
US10152427B2 (en) * | 2016-08-12 | 2018-12-11 | Google Llc | Hybrid memory management |
US10649665B2 (en) * | 2016-11-08 | 2020-05-12 | Micron Technology, Inc. | Data relocation in hybrid memory |
KR102798748B1 (ko) * | 2017-02-15 | 2025-04-22 | 에스케이하이닉스 주식회사 | 하이브리드 메모리 시스템 및 그 제어 방법 |
US10901894B2 (en) * | 2017-03-10 | 2021-01-26 | Oracle International Corporation | Allocating and accessing memory pages with near and far memory blocks from heterogeneous memories |
US10430329B2 (en) * | 2017-06-23 | 2019-10-01 | Western Digital Technologies, Inc. | Quality of service aware storage class memory/NAND flash hybrid solid state drive |
US10152428B1 (en) * | 2017-07-13 | 2018-12-11 | EMC IP Holding Company LLC | Virtual memory service levels |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
-
2018
- 2018-03-21 US US15/927,383 patent/US10809942B2/en active Active
-
2019
- 2019-03-13 EP EP19771806.7A patent/EP3769227A4/en active Pending
- 2019-03-13 JP JP2020550636A patent/JP7049476B2/ja active Active
- 2019-03-13 KR KR1020207029008A patent/KR102434170B1/ko active Active
- 2019-03-13 WO PCT/US2019/021960 patent/WO2019182824A1/en unknown
- 2019-03-13 CN CN201980020352.4A patent/CN111919201B/zh active Active
- 2019-03-18 TW TW108109072A patent/TWI696188B/zh active
-
2020
- 2020-09-11 US US17/018,371 patent/US20200409607A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074339A1 (en) * | 2013-09-10 | 2015-03-12 | Hicamp Systems, Inc. | Hybrid main memory using a fine-grain level of remapping |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12242725B2 (en) | 2023-03-20 | 2025-03-04 | Xcena Inc. | Electronic device and computing system including same |
Also Published As
Publication number | Publication date |
---|---|
WO2019182824A1 (en) | 2019-09-26 |
JP7049476B2 (ja) | 2022-04-06 |
JP2021518605A (ja) | 2021-08-02 |
TW201941197A (zh) | 2019-10-16 |
TWI696188B (zh) | 2020-06-11 |
US20190294363A1 (en) | 2019-09-26 |
CN111919201A (zh) | 2020-11-10 |
KR20200121372A (ko) | 2020-10-23 |
EP3769227A1 (en) | 2021-01-27 |
US20200409607A1 (en) | 2020-12-31 |
EP3769227A4 (en) | 2021-12-22 |
CN111919201B (zh) | 2024-05-14 |
US10809942B2 (en) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102434170B1 (ko) | 하이브리드 메모리 시스템 | |
KR102443600B1 (ko) | 하이브리드 메모리 시스템 | |
US11327892B2 (en) | Latency-based storage in a hybrid memory system | |
US20160110291A1 (en) | Coordination between memory-saving mechanisms in computers that run virtual machines | |
US11782854B2 (en) | Cache architecture for a storage device | |
JP2021149374A (ja) | データ処理装置 | |
KR20210043001A (ko) | 하이브리드 메모리 시스템 인터페이스 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0105 | International application |
Patent event date: 20201008 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20201008 Comment text: Request for Examination of Application |
|
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20220121 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20220607 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20220816 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20220817 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration |