KR20170008152A - 불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치 - Google Patents

불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치

Info

Publication number
KR20170008152A
KR20170008152A KR1020160076697A KR20160076697A KR20170008152A KR 20170008152 A KR20170008152 A KR 20170008152A KR 1020160076697 A KR1020160076697 A KR 1020160076697A KR 20160076697 A KR20160076697 A KR 20160076697A KR 20170008152 A KR20170008152 A KR 20170008152A
Authority
KR
South Korea
Prior art keywords
data
workflow
data items
hardware device
running application
Prior art date
Application number
KR1020160076697A
Other languages
English (en)
Other versions
KR102541458B1 (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 KR20170008152A publication Critical patent/KR20170008152A/ko
Application granted granted Critical
Publication of KR102541458B1 publication Critical patent/KR102541458B1/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/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
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)

Abstract

실시 예들은 불휘발성 메모리 장치의 스토리지 컨트롤러에 의해 수행되는 불휘발성 메모리 장치 내부의 데이터 특성 기반 데이터 배치를 위해 설명된다. 본 발명의 실시 예는, 실행 중인 응용 및 컴퓨터 장치에 연결된 하드웨어 장치 중 적어도 하나를 검출하는 소프트웨어 구성 요소를 컴퓨터 장치에서 실행하는 단계, 실행 중인 응용 및 하드웨어 장치 중 적어도 하나를 검출하는 것에 응답하여, 소프트웨어 구성 요소가 작업 흐름 저장소를 검색하여 실행 중인 응용 및 하드웨어 장치 중 적어도 하나와 연관된 미리 정해진 작업 흐름을 찾는 단계, 소프트웨어 구성 요소가 실행 중인 응용 및 하드웨어 장치 중 적어도 하나의 활동을 미리 정해진 작업 흐름과 비교하는 단계, 그리고 데이터 아이템들 및 할당된 데이터 특성 식별자들이 채널을 통해 불휘발성 메모리 장치에 전송되어 저장되도록 실행 중인 응용 또는 하드웨어 장치에 의해 사용되는 데이터 아이템들에 데이터 특성 식별자들을 자동으로 할당하도록 미리 정해진 작업 흐름을 이용하는 단계를 포함한다. 미리 정해진 작업 흐름은 미리 정해진 데이터 특성 식별자들을 실행 중인 응용 또는 하드웨어 장치에 의해 불휘발성 메모리에 기입되는 데이터 아이템들의 상이한 타입들과 연관한다. 불휘발성 메모리 장치는 데이터 특성 식별자들을 읽고, 그리고 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 데이터 아이템을 저장할 불휘발성 메모리 장치의 블록을 식별한다.

Description

불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치{DATA PROPERTY-BASED DATA PLACEMENT IN NONVOLATILE MEMORY DEVICE}
본 발명은 반도체 메모리에 관한 것으로, 더 상세하게는 컴퓨터 장치가 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치를 활용할 수 있게 하는 인터페이스를 제공하는 방법, 불휘발성 메모리 장치 내에서의 데이터 특성 기반 데이터 배치를 위한 방법, 그리고 불휘발성 메모리 장치에 관한 것이다.
플래시 메모리 기반의 솔리드 스테이트 드라이브(SSD)는 소비자 컴퓨터들 및 기업 서버들 모두에서 널리 사용되어 왔다. 플래시 메모리는 낸드(NAND) 및 노어(NOR) 논리 게이트들을 본따 명명된 두 가지 타입을 갖는다. NAND 타입 플래시 메모리는 블록들에서 기입되고 읽혀지며, 각 블록은 복수의 페이지들을 포함한다.
SSD의 NAND 플래시 스토리지 셀들은 매우 고유한 특성들 가지므로, SSD의 통상적인 사용은 매우 비효율적이다. 예를 들어, 한 번에 하나의 페이지에 대해 읽기 및 프로그램이 수행될 수 있지만, NAND 플래시 메모리는 한 번에 하나의 블록에서 소거를 수행할 수 있다. 하나의 NAND 플래시 페이지를 재기입하기 위해, 복수의 플래시 페이지들을 포함하는 전체 소거 블록이 먼저 소거되어야 한다.
SSD와 같은 NAND 플래시 기반 스토리지 장치들은 제자리(in-placing) 갱신을 허용하지 않으므로, 가용한 자유 블록 카운트가 특정한 문턱에 도달할 때에 후속 쓰기들을 위한 공간을 확보하기 위하여 가비지 컬렉션 동작이 수행된다. 가비지 컬렉션은 목표 소거 블록으로부터 유효 데이터를 읽고 유효 데이터를 다른 블록에 기입하는 것을 포함하며, 무효 데이터는 새로운 블록으로 전송되지 않는다. NAND 소거 블록을 소거하는 것은 상대적으로 많은 시간을 필요로하며, 각 소거 블록은 3천번 내지 1만번 사이의 제한된 소거 횟수를 갖는다. 따라서, 가비지 컬렉션 오버헤드는 이 기술 분야에서 가장 큰 속도 제약 중 하나이며, 높은 데이터 입출력 레이턴시 및 낮은 입출력 성능을 유발한다.
따라서, 핫 데이터 및 콜드 데이터를 다르게 취급하지 않으며 함께 저장하는 운영 체제(OS) 및 응용들은, 핫 데이터 및 콜드 데이터를 다르게 취급하는 운영 체제 및 응용들과 비교하여, 시간의 흐름에 따라 성능이 열화되고, 더 많은 소거 횟수가 필요함에 따라 NAND 셀들이 더 빨리 마모되므로 SSD 수명이 단축된다.
SSD 제조사들 및 스토리지 기술 위원회들은 다중 스트림이라 불리는 새로운 SSD 및 표준을 제안하였으며, 이에 따르면 호스트는 데이터를 스트림이라 불리는 클래스로 그룹화할 수 있다. 각 스트림은 SSD에 의해 독립적으로 저장(또는 세이브)된다. 스트림들의 데이터는 이론상 어떠한 이유로든 그룹될 수 있다. 이러한 이유 중 하나는 가비지 컬렉션 이슈를 줄이기 위하여 유사한 수명을 갖는 데이터를 함께 저장하는 것을 목적으로 한다.
그러나, 이러한 새로운 인터페이스를 활용하기 위하여, 응용들(소스 코드를 포함) 및 운영 체제 내에서 많은 변화가 필요하다. 통상적인 컴퓨터는 수십 또는 수백개의 설치되고 실행되는 소프트웨어 응용들을 가질 수 있으므로, SSD를 더 효율적으로 활용하기 위하여 모든 응용들 특히 레거시 및 비공개 소스 응용들이 이러한 변화를 채택하도록 하는 것은 매우 어렵다. 또한, 다중 스트림 SSD는 현재 다중 스트림 SSD를 사용할 줄 하는 운영 체제 및 응용들에 의해서만 사용될 수 있다는 제한된 적용성을 갖는다.
현재 필요한 것은 스토리지 장치의 향상된 데이터 특성 기반 데이터 배치이며, 더 상세하게는 컴퓨터 장치가 데이터 특성 기반 데이터 배치(예를 들어, 다중 스트림) SSD를 활용할 수 있게 하는 자동 프로세스이다.
본 발명의 목적은 기존의 장치들 또는 응용들에서 데이터 특성 기반 데이터 배치를 활용할 수 있게 하는 장치 및 방법을 제공하는 데에 있다.
본 발명은 컴퓨터 장치가 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치를 활용하게 하는 인터페이스를 제공하는 방법에 관한 것이다. 본 발명의 방법은, 실행 중인 응용 및 상기 컴퓨터 장치에 연결된 하드웨어 장치 중 적어도 하나를 검출하는 소프트웨어 구성 요소를 상기 컴퓨터 장치에서 실행하는 단계, 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나를 검출하는 것에 응답하여, 상기 소프트웨어 구성 요소가 작업 흐름 저장소를 검색하여 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나와 연관된 미리 정해진 작업 흐름을 찾는 단계, 상기 소프트웨어 구성 요소가 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나의 활동을 상기 미리 정해진 작업 흐름과 비교하는 단계, 그리고 데이터 아이템들 및 할당된 데이터 특성 식별자들이 채널을 통해 상기 불휘발성 메모리 장치에 전송되어 저장되도록 상기 실행 중인 응용 또는 상기 하드웨어 장치에 의해 사용되는 상기 데이터 아이템들에 상기 데이터 특성 식별자들을 자동으로 할당하도록 상기 미리 정해진 작업 흐름을 이용하는 단계를 포함한다. 상기 미리 정해진 작업 흐름은 미리 정해진 데이터 특성 식별자들을 상기 실행 중인 응용 또는 상기 하드웨어 장치에 의해 상기 불휘발성 메모리에 기입되는 상기 데이터 아이템들의 상이한 타입들과 연관한다. 상기 불휘발성 메모리 장치는 상기 데이터 특성 식별자들을 읽고, 그리고 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 데이터 아이템을 저장할 상기 불휘발성 메모리 장치의 블록을 식별한다.
본 발명은 시스템에 관한 것이다. 본 발명의 시스템은 불휘발성 메모리 장치, 그리고 상기 불휘발성 메모리 장치에 연결된 컴퓨터 장치를 포함한다. 상기 컴퓨터 장치는 상기 컴퓨터 장치가 상기 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치를 활용하게 하는 인터페이스로 기능하는 소프트웨어 구성 요소를 실행한다. 상기 소프트웨어 구성 요소는, 실행 중인 응용 및 상기 컴퓨터 장치에 연결된 하드웨어 장치 중 적어도 하나를 검출하는 단계, 상기 실행 중인 응용 및 상기 하드웨어 장치 중 하나를 검출하는 것에 응답하여, 작업 흐름 저장소를 검색하여 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나와 연관된 미리 정해진 작업 흐름을 찾는 단계, 상기 소프트웨어 구성 요소가 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나의 활동을 상기 미리 정해진 작업 흐름과 비교하는 단계, 그리고 데이터 아이템들 및 할당된 데이터 특성 식별자들이 채널을 통해 상기 불휘발성 메모리 장치에 전송되어 저장되도록 상기 응용 또는 상기 하드웨어 장치에 의해 사용되는 상기 데이터 아이템들에 상기 데이터 특성 식별자들을 자동으로 할당하도록 상기 미리 정해진 작업 흐름을 이용하는 단계를 수행하도록 구성된다. 상기 미리 정해진 작업 흐름은 상기 실행 중인 응용 또는 상기 하드웨어 장치에 의해 상기 불휘발성 메모리 장치에 기입되는 데이터 아이템들의 상이한 타입들에 미리 정해진 데이터 특성 식별자들을 연관한다. 상기 불휘발성 메모리 장치는 상기 데이터 특성 식별자들을 읽고, 그리고 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 데이터 아이템을 저장할 상기 불휘발성 메모리 장치의 블록을 식별한다.
본 발명은 불휘발성 메모리 장치에 관한 것이다. 본 발명의 불휘발성 메모리 장치는, 메모리 어레이, 그리고 상기 메모리 어레이 및 채널에 연결되는 스토리지 컨트롤러를 포함한다. 상기 스토리지 컨트롤러는, 운영 체제 및 실행 중인 응용 중 적어도 하나로부터 상기 메모리 채널을 통해 저장될 제1 시리즈의 데이터 아이템들을 수신하고, 상기 제1 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 특성들에 기반하여 상기 제1 시리즈의 데이터 아이템들과 연관되는 제1 데이터 특성 식별자를 포함하고, 하드웨어 장치 컨트롤러로부터 상기 메모리 채널을 통해 저장될 제2 시리즈의 데이터 아이템들을 수신하고, 상기 제2 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 특성들에 기반하여 상기 제2 시리즈의 데이터 아이템들과 연관되는 제2 데이터 특성 식별자를 포함하고, 상기 제1 및 제2 데이터 특성 식별자들을 읽고, 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 제1 및 제2 시리즈의 데이터 아이템들을 저장할 블록들을 식별하고, 그리고 상기 제1 및 제2 시리즈의 데이터 아이템들을 상기 식별된 블록들에 저장하도록 구성된다.
본 발명은 불휘발성 메모리 장치의 스토리지 컨트롤러에 의해 수행되는 상기 불휘발성 메모리 장치 내부의 데이터 특성 기반 데이터 배치를 위한 방법에 관한 것이다. 본 발명의 방법은, 운영 체제 및 실행 중인 응용 중 적어도 하나로부터 메모리 채널을 통해 저장될 제1 시리즈의 데이터 아이템들을 수신하는 단계, 상기 제1 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 아이템들에 기반하여 연관되는 제1 데이터 특성 식별자를 포함하고, 하드웨어 장치 컨트롤러로부터 상기 메모리 채널을 통해 저장될 제2 시리즈의 데이터 아이템들을 수신하는 단계, 상기 제2 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 아이템들에 기반하여 연관되는 제2 데이터 특성 식별자를 포함하고, 상기 제1 및 제2 데이터 특성 식별자들을 읽고, 동일한 데이터 특성 식별자를 갖는 데이터 아이템들이 동일한 블록에 저장되도록 상기 제1 및 제2 시리즈의 데이터 아이템들을 저장할 상기 불휘발성 메모리 장치의 블록들을 식별하는 단계, 그리고 상기 제1 및 제2 시리즈의 데이터 아이템들을 상기 식별된 블록들에 저장하는 단계를 포함한다.
본 발명은 컴퓨터 장치가 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치를 활용하게 하는 인터페이스를 제공하는 방법에 관한 것이다. 본 발명의 방법은, 상기 컴퓨터 장치에서 소프트웨어 구성 요소를 실행하는 단계, 상기 소프트웨어 구성 요소가 상기 소프트웨어 구성 요소와 연관된 미리 정해진 작업 흐름을 찾도록 작업 흐름 저장소에 요청하는 단계, 상기 미리 정해진 작업 흐름은 상기 불휘발성 메모리 장치에 기입될 데이터 아이템들의 상이한 특성들에 미리 정해진 데이터 특성 식별자들을 연관하고, 상기 소프트웨어 구성 요소의 동작 동안에, 상기 소프트웨어 구성 요소에 의해 사용되는 데이터 아이템들과 연관되는 하나 또는 그보다 많은 데이터 특성 식별자들을 위해 상기 미리 정해진 작업 흐름에 하나 또는 그보다 많은 요청들을 전송하는 단계, 그리고 상기 소프트웨어 구성 요소가 상기 하나 또는 그보다 많은 데이터 특성 식별자들을 상기 미리 정해진 작업 흐름으로부터 수신하는 것에 응답하여, 상기 소프트웨어 구성 요소에 의해 사용되는 상기 데이터 아이템들에 상기 데이터 특성 식별자들을 자동으로 할당하고 그리고 상기 데이터 아이템들 및 상기 할당된 데이터 특성 식별자들을 저장을 위해 상기 불휘발성 메모리 장치에 전송하는 단계를 포함한다. 상기 불휘발성 메모리 장치는 상기 데이터 특성 식별자들을 읽고, 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 데이터 아이템들이 저장될 상기 불휘발성 메모리 장치의 블록들을 식별한다.
본 발명에 따르면, 기존의 장치, 응용 또는 운영 체제를 일부 수정함으로써 데이터 특성 기반 데이터 배치가 활용될 수 있다. 따라서, 기존의 장치, 응응 또는 운영 체제의 데이터 관리 효율성이 향상된다.
본 발명의 특성 및 활용이 후술되는 실시 예들의 설명 및 첨부된 도면들을 참조하여 더 명백하게 이해될 것이다.
도 1은 작업 흐름 모니터 인터페이스에 의해 제공되는 불휘발성 메모리 장치의 데이터 특성 기반 데이터 배치를 위한 시스템의 실시 예를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따라 컴퓨터 장치가 불휘발성 메모리 장치 내의 데이터 특성 기반 데이터 배치를 활용할 수 있게 하기 위한 작업 흐름 모니터 인터페이스를 제공하기 위한 호스트 시스템에서 수행되는 프로세스를 보여주는 순서도이다.
도 3은 데이터 특성 기반 데이터 배치를 구비한 SSD와 호환되는 다양한 컴퓨팅 장치들로 구현된 실시 예들의 작업 흐름 모니터 인터페이스를 보여주는 다이어그램이다.
도 4는 본 발명의 실시 예에 따라 불휘발성 메모리 장치의 스토리지 컨트롤러에 의해 수행되는 데이터 특성 기반 데이터 배치를 위한 프로세스를 보여주는 순서도이다.
도 5는 상이한 수명들 및 상이한 특성들을 갖는 데이터를 저장하는 데이터 베이스 응용에 의해 수행되는 스토리지 동작들에 대한 작업 흐름 모니터 인터페이스의 동작의 예를 보여주는 블록도이다.
도 6은 작업 흐름 모니터 인터페이스를 더 상세하게 보여주는 블록도이다.
도 7은 데이터 식별자 할당 방법의 다른 예를 보여주는 블록도이다.
첨부된 도면들을 참조하여 본 발명의 기술적 사상의 실시 예들이 상세하게 설명된다. 유사한 참조 번호들은 유사한 구성 요소들을 참조할 수 있다.
본 발명의 장점들 및 특징들, 그리고 그것을 달성하는 방법들은 상세한 설명 및 첨부된 도면들을 참조하여 더 용이하게 이해될 수 있다. 그러나, 본 발명의 기술적 사상은 다양한 다른 형태들로 구현될 수 있으며, 여기에 개시되는 실시 예들로 한정되지 않는 것으로 이해되어야 한다. 실시 예들은 이하의 기재가 철저하고 완전하며, 본 발명의 기술적 사상을 이 분야에 통상적인 기술을 가진 자들에게 전달할 수 있도록 제공되는 것에 불과하며, 본 발명의 기술적 사상은 첨부된 청구범위에 의해서만 정의된다. 도면들에서, 계층들 및 영역들의 두께는 명확성을 위해 강조될 수 있다.
별도로 언급되지 않으면, "포함하다", "구비하다", "갖는다"의 용어들은 개방적인 용어들(즉, 한정되지 않는)것으로 이해되어야 한다.
여기에 사용되는 "알고리즘" 또는 "모둘"의 용어는 특정한 작업들을 수행하는 FPGA (field programmable gate array) 또는 ASIC (an application specific integrated circuit)와 같은 소프트웨어 또는 하드웨어 구성 요소일 수 있으며, 한정되지 않는다. 알고리즘 또는 모듈은 어드레스로 식별 가능한 스토리지 매체에 거주하도록 구성될 수 있으며, 하나 또는 그보다 많은 프로세스들을 실행하도록 구성될 수 있다. 따라서, 알고리즘 또는 모듈은, 예시적으로, 소프트웨어 구성 요소, 객체 지향 소프트웨어 구성 요소, 클래스 구성 요소, 그리고 작업 구성 요소와 가은 구성 요소(component), 프로세스들, 기능들, 속성들(attributes), 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 펌웨어, 마이크로코드, 회로망, 데이터, 데이터베이스, 데이터 구조, 테이블들, 어레이들, 그리고 변수들을 포함할 수 있다. 구성 요소들 및 구성 요소들 또는 모듈들에 제공되는 기능들은 더 적은 구성 요소들 또는 모듈들로 결합되거나, 또는 추가적은 구성 요소들 및 구성 요소들 또는 모듈들로 더 분리될 수 있다.
별도로 정의되지 않으면, 여기에서 사용되는 모든 기술적 과학적 용어들은 이 발명이 속하는 분야에서 통상적인 기술을 가진 자들에 의해 공통적으로 이해되는 것과 동일한 의미를 갖는다. 어느 또는 모든 예들 또는 예시적인 용어들의 사용은 본 발명을 더 명확하제 조명하기 위해 의도된 것이며, 별도로 명시되지 않는 한 본 발명의 범위를 한정하는 용도로 사용되지 않는다. 또한, 별도로 정의되지 않으면, 일반적으로 사용되는 사전들에서 정의된 모든 용어들은 과도하게 해석되지 않아야 한다.
예시적으로, 본 발명의 실시 예들은, 응용들 및 장치들이 다중 스트리밍을 활용하도록 프로그램되지 않더라도, 컴퓨터 장치가 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치(예를 들어, 다중 스트리밍)을 활용하는 것을 가능하게 하기 위한 인터페이스를 제공한다. 구체적으로, 본 발명의 실시 예들은, 컴퓨터 장치의 활동을 모니터하고 그리고 실행중인 응용들 또는 연결된 장치들의 작업 흐름의 지식을 이용하여 미리 정해진 데이터 특성 식별자들을 불휘발성 메모리 장치에 세이브(또는 기입)되는 데이터 아이템들에 할당하는 응용 모델 기반 스트림 식별자 프로세스를 제공한다. 다중 스트리밍과 동일하게, 수신자 메모리 장치는 동일한 데이터 특성 식별자를 갖는 모든 데이터가 동시에(거의 동시에) 무효화될 것으로 가정하고, 이러한 데이터를 공통 소거 블록들에 배치(또는 기입)할 수 있다.
도 1은 작업 흐름 모니터 인터페이스에 의해 제공되는 불휘발성 메모리 장치의 데이터 특성 기반 데이터 배치를 위한 실시 예를 보여주는 블록도이다. 여기에 설명되는 실시 예들은 가비지 컬렉션을 필요로 하는 어느 불휘발성 메모리 장치에도 적용될 수 있으며, 불휘발성 메모리 장치가 솔리드 스테이트 드라이브(SSD)를 포함하는 실시 예를 참조하여 설명된다.
시스템은 채널(14)을 통해 SSD (12)에 결합된 호스트 시스템(10)을 포함한다. 여기에서 사용되는 것과 같이, 채널은 불휘발성 메모리 장치(예를 들어, SSD)를 컴퓨터 또는 SSD를 사용하는 다른 하드웨어에 연결하는 임의의 물리 인터페이스를 나타낼 수 있다. 인터페이스는 SATA, SCSI, PCIe, USB, iSCSI, FC, 이더넷 등과 같은 유선 인터페이스, 그리고 WiFi와 같은 무선 인터페이스를 포함할 수 있다. 잘 알려진 바와 같이, SSD는 데이터를 저장하는 이동식 부품을 갖지 않으며, 데이터를 유지하는 데에 일정한 전력을 필요로 하지 않는다. 본 발명과 연관된 호스트 시스템(10)의 구성 요소들은, 운영 체제(OS, 20) 및 파일 시스템(21)을 포함하는 메모리(18)로부터의 컴퓨터 명령들을 실행하는 프로세서(16)를 포함한다. 호스트 시스템(10)은 채널(14)과 인터페이싱하기 위한 메모리 컨트롤러와 같은 미도시된 다른 구성 요소들을 더 포함할 수 있다. 호스트 시스템(10) 및 SSD (12)는 채널(14)을 통해 커맨드들 및 데이터 아이템들(28)을 통신할 수 있다. 예시적으로, 호스트 시스템(10)은 임의의 타임의 운영 체제를 실행하는 통상적인 컴퓨터 또는 서버일 수 있다. 운영 체제의 타입들은 단일 및 다중 사용자, 분산, 템플릿(templated), 임베디드, 실시간 및 라이브러리를 포함할 수 있다. 다른 예로서, 호스트 시스템(10)은 장치 제어기와 같은 스탠드얼론 구성 요소일 수 있으며, 이 경우에 운영 체제는 경량 운영 체제(또는 그들의 일부) 또는 펌웨어일 수 있다.
SSD (12)는 스토리지 컨트롤러(22) 및 호스트 시스템(10)으로부터의 데이터를 저장하는 불휘발성 메모리 어레이(24)를 포함한다. 스토리지 컨트롤러(22)는 불휘발성 메모리 어레이(24)에 저장된 데이터를 관리하고, 통신 프로토콜을 통해 채널(14)을 거쳐 호스트 시스템(10)과 통신한다. 불휘발성 메모리 어레이(24)는 플래시 메모리, 강유전체 랜덤 액세스 메모리(F-RAM), 자기저항 랜덤 액세스 메모리(MRAM), 상 변화 메모리(PCM), 노래기(millipede) 메모리 등과 같은 불휘발성 랜덤 액세스 메모리(NVRAM)를 포함할 수 있다. SSD (12) 및 채널(14) 모두는 듀얼 채널 구조와 같은 다중 채널 메모리 구조를 지원하며, 단일, 2배속 또는 4배속 데이터 전송을 지원할 수 있다.
본 발명의 실시 예들에 따르면, SSD (12)에서 가비지 컬렉션 오버헤드를 감소시키기 위하여, SSD (120)에 향상된 데이터 특성 기반 데이터 배치가 제공된다. 이는, 응용들 및 하드웨어 구성 요소들 모두가 상이한 수명들을 갖는 데이터 아이템들을 SSD (12)에 개별적으로 저장하는 것을 가능하게 하는 작업 흐름 모니터 인터페이스(26)를 제공함으로써 달성된다. 또한, 작업 흐름 모니터 인터페이스(26)의 사용은 호스트 시스템(10)에서 실행되는 사용자 응용들의 변화를 요구하지 않는다.
예시적으로, 작업 흐름 모니터 인터페이스(26)는 프로세서(16)에 의해 실행되며 호스트 시스템(10)이 응용들 또는 연결된 하드웨어 장치들을 실행하는 것을 지속적으로 모니터하는 적어도 하나의 소프트웨어 구성 요소를 포함한다. 작업 흐름 모니터 인터페이스(26)는 응용들 및 연결된 장치들에 대한 미리 정해진 작업 흐름 패턴들의 지식을 구비하며, 이러한 작업 흐름 패턴에 기반하여 응용들 및 연결된 장치들에 의해 기입되는 데이터 아이템들에 데이터 특성 식별자들(예를 들어, 스트림 ID)을 할당한다.
본 발명의 실시 예들의 일 측면에 따르면, 작업 흐름 모니터 인터페이스(26)는 다양한 응용들 및 장치들에 대한 알려진 작업 흐름들의 라이브러리로 작용하는 작업 흐름 저장소(27)를 포함할 수 있다. 작업 흐름 저장소(27) 내의 작업 흐름들 각각은 작업 흐름의 다양한 단계들 동안에 주어진 특성 식별자(예를 들어, 스트림 식별자)를 갖고 생성되는 하나 또는 그보다 많은 스트림들(즉, 하나 또는 그보다 많은 개별 데이터 쓰기들)을 포함할 수 있다. 예시적으로, 작업 흐름 저장소(27)는 작업 흐름 모니터 인터페이스(26)로부터 개별적으로 분리된 구성 요소일 수 있다. 그러나, 다른 예로서, 작업 흐름 저장소(27)는 작업 흐름 모니터 인터페이스(26)와 집적될 수 있다. 예시적으로, 데이터 특성 식별자(30)의 실제 할당은 운영 체제(20)의 파일 시스템(21) 내의 소프트웨어 후크(hook)에 의해 수행될 수 있다.
도 2는 본 발명의 실시 예에 따라 컴퓨터 장치가 불휘발성 메모리 장치 내의 데이터 특성 기반 데이터 배치를 활용할 수 있게 하기 위한 작업 흐름 모니터 인터페이스를 제공하기 위한 호스트 시스템에서 수행되는 프로세스를 보여주는 순서도이다. 프로세스는 실행 중인 응용 및 컴퓨팅 장치와 연결중인 하드웨어 장치 중 적어도 하나를 검출하는 소프트웨어 구성 요소(예를 들어, 작업 흐름 모니터 인터페이스(26))를 컴퓨팅 장치(10)에서 실행하는 것(200)을 포함할 수 있다. 예시적으로, 실행 중인 응용들을 검출하는 것은 프로세스들 또는 쓰레드들을 검출하는 것을 포함할 수 있다. 하드웨어 장치 연결의 예는 호스트 장치(10)에 연결되고 통신하는 카메라를 포함할 수 있다.
예시적으로, 실행 중인 응용 또는 하드웨어 장치를 검출하는 것은 전체적으로 소프트웨어 구성 요소가 데이터 특성 기반 데이터 배치를 제공(예를 들어, 응용 또는 하드웨어 장치가 다중 스트리밍 능력에 호환되게 설계되지 않더라도 다중 스트리밍 능력을 제공)하는 새로운 데이터 배치 클라이언트를 검출하는 것으로 보여질 수 있다.
실행 중인 응용 또는 연결 중인 하드웨어 장치 연결을 검출하는 것에 응답하여, 소프트웨어 구성 요소는 작업 흐름 저장소(27)를 검색하여 실행 중인 응용 또는 하드웨어 장치와 연관된 미리 정해진 작업 흐름을 찾을 수 있다. 미리 정해진 작업 흐름은 실행 중인 응용 또는 하드웨어 장치에 의해 불휘발성 메모리 장치에 기입되는 상이한 타입의 데이터 아이템들에 데이터 특성 식별자들을 연관시킬 수 있다(202).
예시적으로, 작업 흐름 저장소(27)는 작업 흐름 모니터 인터페이스(26)와 집적되거나 또는 개별 구성 요소로 구현될 수 있다. 예시적으로, 작업 흐름 저장소(27)는 컴퓨팅 장치(10) 내부에 위치할 수 있으며, 다른 예로서, 작업 흐름 저장소(27)는 컴퓨팅 장치(10)로부터 떨어져 위치할 수 있다. 어느 경우에든, 실시 예로서, 작업 흐름 모니터 인터페이스(26)는 새로운 응용들 및 하드웨어 장치들을 수용하기 위하여 작업 흐름 저장소(27)의 새로운 또는 갱신 작업 흐름들을 수신할 수 있다.
소프트웨어 구성 요소는 실행 중인 응용 또는 하드웨어 장치의 활동들을 미리 정해진 작업 흐름과 비교할 수 있다(204). 예시적으로, 활동들을 비교하는 것은, 응용 또는 하드웨어 장치에 의해 수행되는 하나 또는 그보다 많은 현재 프로세스들 또는 스텝들을 조사(examine)하고, 현재 프로세스들 또는 스텝들을 미리 정해진 작업 흐름 내의 프로세스들 또는 스텝들의 유사한 시퀀스와 맞추는(match) 것을 포함할 수 있다. 상술된 바와 같이, 작업 흐름은 작업 흐름의 다양한 단계들 동안 프로세스들 또는 스텝들의 시퀀스 동안에 수행되는 하나 또는 그보다 많은 개별 데이터 쓰기들을 주어진 데이터 특성 식별자와 연관시킨다.
소프트웨어 구성 요소는 미리 정해진 작업 흐름을 이용하여, 데이터 특성 식별자들을 실행 중인 응용 또는 하드웨어 장치에 의해 사용되는 데이터 아이템들에 자동으로 할당하며, 데이터 아이템들 및 할당된 데이터 특성 식별자들은 저장을 위해 불휘발성 메모리 어레이(24)로 전송된다(206).
본 발명의 일 실시 예에 따르면, 작업 흐름 모니터 인터페이스(26)는 작업 흐름 저장소(27)를 이용하여, 데이터 수명, 데이터 타입, 데이터 사이즈 및 물리적 또는 논리적 데이터 소스와 같은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 특성들에 기반하여, 데이터 아이템들(28) 각각에 데이터 특성 식별자들(30)을 할당 또는 연관시킬 수 있다. 이러한 방법으로, 동일한 또는 유사한 데이터 특성들을 갖는 데이터 아이템들(28)은 동일한 데이터 특성 식별자 값을 할당받을 수 있다.
실시 예로서 작업 흐름 모니터 인터페이스(26)가 운영 체제 레벨에서 제공되므로, 현존하는 응용들에서 본 발명의 실시 예에 따른 데이터 특성 기반 데이터 배치 프로세스에 부합하기 위하여 어떠한 변화도 요구되지 않는다. 따라서, 작업 흐름 모니터 인터페이스(26)는 프로세서 및 운영 체제를 구비한 어떤 타입의 컴퓨팅 장치에도 구현될 수 있으며, 기존 다중 스트림의 사용을 응용들 및 운영 체제들 너머로 확장할 수 있다.
도 3은 데이터 특성 기반 데이터 배치(예를 들어, 다중 스트리밍)를 구비한 SSD (12)와 호환되는 다양한 컴퓨팅 장치들(300A~300D)로 구현된 실시 예들의 작업 흐름 모니터 인터페이스를 보여주는 다이어그램이다. 컴퓨팅 장치들(300A, 300B)은, 각각 작업 흐름 모니터 인터페이스들(26A, 26B)이 운영 체제들(20A, 20B)에 제공되거나 또는 옵션으로 스탠드얼론 응용으로 제공되는 퍼스널 컴퓨터 또는 서버 또는 스토리지 하부시스템들과 같은 호스트 장치들을 나타낼 수 있다. 작업 흐름 모니터 인터페이스(26A)는 응용(304A)에 의해 수행되는 데이터 아이템 동작을 모니터하고, 작업 흐름 저장소로부터의 일치하는 작업 흐름에 기반하여 응용(304A)으로부터의 데이터 아이템들 각각에 데이터 특성 식별자들(30A)을 자동으로 할당할 수 있다. 마찬가지로, 작업 흐름 모니터 인터페이스(26B)는 운영 체제(20B)의 블록 레이어(23B)에 의해 수행되는 데이터 아이템 동작들을 모니터하고, 작업 흐름 저장소로부터의 일치하는 작업 흐름에 기반하여 블록 레이어(23B)에 의해 수행되는 데이터 아이템들 각각에 데이터 특성 식별자들(30B)을 자동으로 할당할 수 있다.
컴퓨팅 장치들(300C, 300D)은 불휘발성 메모리 장치를 활용하는 임의의 하드웨어 장치를 나타내며, 카메라, 마이크, 온도계, GPS, 시계, 센서, 스위치, 라우터, RAID 시스템, 또는 호스트 버스 어댑터(HBA) 시스템을 포함할 수 있다. 일부 타입의 하드웨어 장치들에서, 작업 흐름 모니터 인터페이스(26C)는 하드웨어 장치 제어기(306C) 내에 제공될 수 있다. 작업 흐름 모니터 인터페이스(26C)는 알려진 작업 흐름에 기반하여 장치 제어기(306C)로부터의 데이터 아이템 동작들(예를 들어, 쓰기)에 데이터 특성 식별자들(30C)을 자동으로 할당할 수 있다. 카메라와 같은 다른 타입의 하드웨어 장치들(300D)에서, 작업 흐름 모니터 인터페이스(26D)는 운영 체제의 일부로 구현되거나 또는 프로세서에서 별도의 응용으로 구동될 수 있다. 작업 흐름 모니터 인터페이스(26D)는 프로세서(306D)에 의해 수행되는 데이터 아이템 동작들을 모니터하고, 알려진 작업 흐름 또는 작업 흐름 저장소로부터의 일치하는 작업 흐름에 기반하여 프로세서(306D)로부터의 데이터 아이템들 각각에 데이터 특성 식별자들(30D)를 자동으로 할당할 수 있다.
도 4는 본 발명의 실시 예에 따라 불휘발성 메모리 장치의 스토리지 컨트롤러에 의해 수행되는 데이터 특성 기반 데이터 배치를 위한 프로세스를 보여주는 순서도이다. 도 3 및 도 4를 참조하면, 프로세스는 운영 체제 또는 실행 중인 응용(예를 들어, 운영 체제(20B 또는 응용들(304A)) 중 적어도 하나로부터 저장될 데이터 아이템들의 제1 시리즈를 채널을 통해 수신하는 것을 포함할 수 있다. 데이터 아이템들 각각은, 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 특성들(데이터 수명, 데이터 타입, 데이터 사이즈, 논리 블록 어드레스(LBA) 범위, LBA 액세스 패턴, 그리고 물리 데이터 소스를 포함)에 기반하여 데이터 아이템들과 연관된 제1 데이터 특성 식별자를 포함할 수 있다(400). 데이터 수명, 데이터 타입, 데이터 사이즈, 논리 블록 어드레스(LBA) 범위, LBA 액세스 패턴, 그리고 물리 데이터 소스와 같은 다양한 데이터 특성들은, 여기에 나열되지 않은 다른 특성들 또는 현재 알려지지 않은 다른 특성들을 포함하여 액세스 유사도에 대해 고려될 수 있다.
예시적으로, 데이터 타입은 원 응용을 넘어선 특성을 포함할 수 있다. 예시적으로, 운영 체제 또는 응용으로부터 수신되는 데이터 아이템들은, 작업 흐름 모니터 인터페이스(26)에 더하여 다른 프로세스에 의해 데이터 아이템들과 연관된 데이터 특성 식별자들을 포함할 수 있다.
스토리지 컨트롤러(22)는 하드웨어 장치(예를 들어, 제어기(306C) 또는 프로세서(306D))로부터 저장될 데이터 아이템들의 다른 시리즈를 채널을 통해 수신할 수 있다. 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 특성들에 기반하여 데이터 아이템들과 연관된 제2 데이터 특성 식별자를 포함할 수 있다(402).
스토리지 컨트롤러(22)는 데이터 특성 식별자들을 읽고, 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 블록들의 동일한 세트에 저장되도록 대응하는 데이터 아이템들이 저장될 메모리 장치의 블록들을 식별하고(404), 그리고 데이터 아이템들을 식별된 블록들에 저장할 수 있다(406).
예를 들어, 도 3에서, SSD (12)의 스토리지 컨트롤러(22)는 데이터 특성 식별자들(30A, 30B)에 각각 할당된 컴퓨팅 장치들(300A, 300B)로부터 데이터 아이템들을 수신할 수 있다. 이후에, 스토리지 컨트롤러(22)는 데이터 특성 식별자(30A)와 연관된 데이터 아이템들을 동일한 소거 블록(308A) 내에 저장하고, 데이터 특성 식별자들(30B)과 연관된 데이터 아이템들을 동일한 소거 블록(308B) 내에 저장할 수 있다. 마찬가지로, SSD (12)의 스토리지 컨트롤러(22)는 데이터 특성 식별자들(30C, 30D)에 각각 할당된 컴퓨팅 장치들(300C, 300D)의 장치 제어기들(306C, 306D)로부터 데이터 아이템들을 수신한다. 이후에, 스토리지 컨트롤러(22)는 데이터 특성 식별자(30C)와 연관된 데이터 아이템들을 동일한 소거 블록(308C)에 저장하고, 데이터 특성 식별자(30D)와 연관된 데이터 아이템들을 동일한 소거 블록(308D)에 저장한다. 예시적으로, 데이터 식별자들이 소스들 사이에 실제적 유사도가 있음을 가리키면, 소거 블록들(308C, 308B)은 상호 배타적일 필요는 없다.
본 발명의 실시 예의 작업 흐름 모니터 인터페이스(26)에 따르면, 데이터 특성 식별자(30)는 저장소에 대한 임의의 타입의 입력 장치로부터 출력되는 데이터 아이템들(28)에 할당될 수 있다. 예를 들어, 작업 흐름 모니터 인터페이스(26)는 이미지를 주기적으로(예를 들어, 매 초마다 한 번씩) 이미지를 획득하는 디지털 보안 카메라 내에 구현되는 것으로 가정한다. 작업 흐름 모니터 인터페이스(26)는 데이터 유사도를 가리키는 데이터 특성들, 예를 들어 이미지의 캡처율, 이미지 파일 사이즈, 그리고 이미지의 근원(예를 들어, 장치 식별자 또는 GPS 위치)와 같은 데이터 특성들에 기반하여 각 이미지 파일에 데이터 특성 식별자(30)를 할당할 수 있다. 이러한 데이터 특성들은 통상적인 다중 스트리밍에 의해 사용되는 메타 데이터와 같이 구체적인 응용 또는 파일 시스템과 연관될 필요는 없다.
도 5는 상이한 수명들 및 상이한 특성들을 갖는 데이터를 저장하는 데이터 베이스 응용에 의해 수행되는 스토리지 동작들에 대한 작업 흐름 모니터 인터페이스(26)의 동작의 예를 보여주는 블록도이다. 예시적으로, 데이터 베이스는 고속 저장을 위한 임베디드형 끊김없는 키-값 저장인 RocksDB일 수 있다. RocksDB는 다수의 CPU 코어들의 장점을 이용하고 그리고 SSD와 같이 입출력 부하에 대해 고속 저장의 효율적인 사용에 최적화된 LevelDB의 갈래일 수 있다. 동작 시에, 키-값 쌍들의 소팅(sorting)된 세트를 갖는 데이터 파일(예를 들어, SST 파일)이 제1 레벨 파일로 순차적으로 기입된다. 쓰기 동작 시에, 파일들을 수정하는 대신에, 일정 시간 동안 변경들이 메모리에서 수집된다. 이후에, 변경들이 제2 레벨 파일로 기입된다. 더 많은 변경들에 대해, 또 다른 레벨이 추가될 수 있다.
작업 흐름 모니터 인터페이스(26)가 RocksDB가 시작함을 검출한 때에, 작업 흐름 모니터 인터페이스(26)는 RocksDB 응용과 연관된 RocksDB 작업 흐름(27')을 획득 및 이용하여 차별적인 데이터 특성 식별자들을 RocksDB에 의해 취급되는 데이터에 할당할 수 있다. RocksDB 작업 흐름(27')은 LSM 트리 작업 흐름과 같은 트리 작업 흐름을 포함할 수 있다. RocksDB는 LSM 트리 작업 흐름의 구현의 일 예이며, 다른 예들은 BigTable, Apache HBase, LevelDB, WiredTiger, Apache Cassandra, Riak, SQLite4 및 Cockroachdb를 포함할 수 있다.
데이터 베이스(500) 및 작업 흐름 모니터 인터페이스(26) 및 RocksDB 작업 흐름(27')이 호스트 시스템의 메모리(18) 내에 도시되어 있다. 데이터 베이스(500)는 메모리(18) 내에 저장된 메모리 테이블(502, Memtable)을 사용할 수 있다. SSD (12) 내에서, 데이터 베이스(500)는 이전 쓰기 로그(504) 및 상이한 레벨들(예를 들어, 레벨 0, 레벨 1, 레벨 m)에 저장되는 다양한 SST 파일들(506)(예를 들어, SST 파일 1, SST 파일 2, SST 파일 n)을 사용할 수 있다.
데이터 베이스(500)가 쓰기 동작(510)을 수행할 때, 데이터 베이스(500)는 데이터를 메모리 테이블(502)에 구조체로 저장할 수 있다. 또한, 데이터 베이스(500)는 쓰기를 이전 쓰기 로그(504)에 추가할 수 있다. 이전 쓰기 로그(504)는 모든 쓰기를 수신하며, 전원이 차단된 후에도 영구적으로 보존될 수 있다. 작업 흐름 모니터 인터페이스(26)는 쓰기 동작(510)을 모니터하고, RocksDB 작업 흐름(27')에 기반하여 데이터 특성 ID#1을 로그 파일들에 할당할 수 있다.
메모리 테이블(502)은 메모리 테이블(502)의 내용물이 설정(또는 변경) 가능한 문턱에 도달할 때까지 쓰기들을 저장한다. 문턱에 도달한 때에, 플러시 동작(512)이 수행되어 쓰기들이 SSD (12) 내의 SST 파일(506)에 기입된다. 이전 쓰기 로그(504) 내의 데이터는 메모리 테이블(502) 내의 대응하는 데이터가 SST 파일(506)로 플러시된 후에 제거될 수 있다. SST 파일(506)은 통상적으로 메모리 테이블(502)이 플러시된 후에는 다시 기입되지 않는다. 작업 흐름 모니터 인터페이스(26)는 플러시 동작(512)을 모니터하고, RocksDB 작업 흐름(27')에 기반하여 데이터 특성 ID#2를 SST 파일(506)의 레벨0에 할당할 수 있다.
삽입 또는 갱신이 발생함에 따라, 행들을 겹쳐쓰는 대신에, 데이터 베이스(500)는 삽입된 또는 갱신된 데이터의 새로운 타임스탬프가 찍힌 버젼을 또 다른 SST 파일(506)에 기입할 수 있다. 데이터 베이스(500)는 컴팩션을 이용하여 SSD (12)의 SST 파일들(506)의 축적을 관리할 수 있다. 레벨 0에 저장된 데이터가 데이터 문턱에 도달하면, 데이터 베이스(500)는 갱신 동안에 생성되는 삭제된 데이터, 열들 및 행들을 제거하고 그리고 SST 파일들의 레벨 0의 유효한 데이터를 레벨 1에 저장되는 새로운 SST 파일들로 통합함으로써 데이터 베이스 파일을 압축하도록 컴팩션 동작(514)을 수행할 수 있다. 데이터 베이스(500)는 예전의 다중 SST 파일들 대신에 새로운 통합된 SST 파일들을 사용하며, 따라서 읽기 요청들이 컴팩션 이전보다 더 효율적으로 처리된다. 예전의 SST 파일들은 해당 파일들을 사용하는 진행 중인 읽기들이 종료되자마자 삭제된다. 작업 흐름 모니터 인터페이스(26)는 컴팩션 동작(514)을 모니터하고, RocksDB 작업 흐름(27')에 기반하여 레벨 1 SST 파일들(506)에 데이터 특성 ID#3을 할당할 수 있다.
레벨 1에 저장된 데이터가 데이터 문턱에 도달하면, 데이터 베이스(500)는 사용되지 않는 데이터를 제거하고 레벨 1 SST 파일들의 유효 데이터를 레벨 2에 저장되는 새로운 SST 파일들로 통합하는 컴팩션 동작(516)을 수행할 수 있다. 작업 흐름 모니터 인터페이스(26)는 컴팩션 동작(516)을 모니터하고, RocksDB 작업 흐름(27')에 기반하여 레벨 2 SST 파일들(506)에 데이터 특성 ID#4를 할당할 수 있다. 본 발명의 실시 예들에 따르면, 하나의 응용은 단일 타입의 파일에 대해 다중 스트림들을 가질 수 있다.
본 발명의 실시 예들에 따르면, 데이터 특성 식별자들은 예측된 수명 그룹들(이 예에서, SST 레벨들)에 기반하여 데이터에 할당되며, 해당 데이터는 예측된 수명들에 기반하여 SSD에 저장될 수 있다. 데이터가 언제 무효화 또는 삭제될 지 알려지지 않지만, 작업 흐름 모니터 인터페이스(26)는 동일한 데이터 특성 식별자들을 갖는 데이터가 동시 또는 거의 동시에 무효화될 것으로 간주한다.
도 6은 작업 흐름 모니터 인터페이스의 데이터 식별자 할당 방법들을 더 상세하게 보여주는 블록도이다. 도 1 및 도 3과 마찬가지로, 작업 흐름 모니터 인터페이스(26)는 호스트 시스템(10)의 운영 체제(20) 레벨에 제공되는 것으로 도시된다. 작업 흐름 모니터 인터페이스(26)는 응용들(300), 파일 시스템(21), 블록 계층 및 장치 드라이버들(23), 그리고 연결된 장치들(302)의 동작들을 모니터하고, 데이터 특성 식별자들(30)을 대응하는 작업 흐름(27')에 기반하여 데이터 아이템들에 할당할 수 있다. SSD (12)는 데이터 특성 식별자들(30)을 읽고, 동일한 데이터 특성 식별자들(30)을 갖는 데이터 아이템들이 동일한 블록에 저장되도록 대응하는 데이터 아이템들을 저장하는 데에 사용되는 SSD (12)의 블록들을 식별할 수 있다.
본 발명의 실시 예들에 따르면, 작업 흐름 모니터 인터페이스(26)는 배경으로 지속적으로 실행되어 응용들(300) 및 연결된 장치들(302)의 시작을 모니터할 수 있다. 예시적으로, 작업 흐름 모니터 인터페이스(26)는 SSD (12)에 대한 데이터 아이템 수정들의 데이터 베이스(미도시)를 유지할 수 있다. 작업 흐름 모니터 인터페이스(26)는 응용들 또는 장치에 의해 수행되는 파일 갱신 동작들을 모니터하고, 작업 흐름(27')에 따라 파일 갱신 동작들 각각에 데이터 특성 식별자(30)를 자동으로 할당할 수 있다.
작업 흐름 모니터 인터페이스(26)는 파일 시스템에서 시스템 호출 후크들(hooks)을 활용하는 구성 요소를 포함하며, 응용들(300), 운영 체제(20) 또는 연결된 장치(302)에 의해 파일들에 행해지는 파일 갱신 동작들(생성, 쓰기, 갱신, 삭제 등)을 모니터할 수 있다. 윈도우즈 및 리눅스와 같은 대부분의 운영 체제들은 시스템 프로그램 목적을 위한 파일 시스템 후크들을 제공한다. 작업 흐름 모니터 인터페이스(26)는 작업 흐름(27')에서 파일 갱신 동작(또는 일련의 갱신 동작들)을 참조하여 해당 동작에 할당된 미리 정해진 데이터 특성 식별자를 찾을 수 있다.
작업 흐름 모니터 인터페이스(26)는 미리 정해진 데이터 특성 식별자(30)를 갱신 동작에 할당할 수 있다. 예시적으로, 작업 흐름(27')은 파일의 타입 또는 데이터의 다른 특성에 따라, 파일 생성 또는 새로운 파일 쓰기 데이터 특성 식별자들(30)을 할당할 수 있다. 끝으로, 작업 흐름 모니터 인터페이스(26)는 실제 파일 쓰기를 기저의 파일 시스템(21)에 전달할 수 있다.
데이터 특성 식별자 할당의 예로서, 사용자가 사진 응용을 편집하여 "foo.jpg"라 명명된 JPEG 파일 타입의 사진 파일을 편집중이고, 그리고 사용자의 컴퓨터의 SSD (12)는 네 개의 데이터 특성 식별자들 또는 스트림 식별자들을 처리하도록 구성된 경우가 가정된다. 사용자가 사진을 SSD (12)에 저장할 때, 작업 흐름 모니터 인터페이스(26)는 사진 응용과 연관된 작업 흐름(27')에서 파일 저장 요청을 모니터 및 참조한다. 작업 흐름(27')은 네 가지 데이터 특성 식별자들 중 저장 요청에 할당될 데이터 특성 식별자(예를 들어, 1)를 식별할 수 있다.
작업 흐름 모니터 인터페이스(26)는 작업 흐름(27')에서 특정된 1의 데이터 특성 식별자를 할당한다. 데이터 특성 식별자는 파일 데이터와 함께 파일 시스템(21) 및 블록 계층(23)을 통해 SSD (12)로 전송되며, 1의 데이터 특성 식별자가 할당된 다른 데이터와 함께 블록에 저장된다.
다른 예로서, 작업 흐름 모니터 인터페이스(26) 및 작업 흐름 저장소(27')는 운영 체제의 블록 계층(23) 또는 SSD (12) 내부에 구현될 수 있다.
도 7은 데이터 식별자 할당 방법의 다른 예를 보여주는 블록도이다.데이터 특성 식별자들을 할당하는 별도의 작업 흐름 모니터 인터페이스(26, 도 6)를 제공하는 대신, 도 7의 실시 예는 알려진 작업 흐름들 및 데이터 배치 설정들을 저장하는 작업 흐름 저장소(27)가 응용들(300), 운영 체제(20)의 다양한 계층들(예를 들어, 파일 시스템(21), 블록 계층(25) 및 장치 드라이버(29) 및 연결된 장치(302)에 실장된 소프트웨어와 같은 소프트웨어 구성 요소를 실행하는 것을 직접적으로 평가 가능하게 할 수 있다. 작업 흐름 저장소(31)는 소프트웨어 구성 요소에 의해 수행되는 활동 또는 기능 동안에 불휘발성 메모리 장치에 기입되는 데이터 아이템들의 상이한 타입들에 미리 정의된 데이터 특성 식별자들을 연관시키는 하나 또는 그보다 많은 미리 정해진 작업 흐름들(33)을 저장할 수 있다.
다양한 소프트웨어 구성 요소들은 작업 흐름 저장소(31)에 직접 요청하여 어떠한 데이터 특성 식별자(30)를 사용할 지 획득할 수 있다. 따라서, 예를 들어, 소프트웨어 구성 요소는 작업 흐름 저장소(31)에 대해 자기 자신을 식별하고, 다양한 기능들을 위해 사용할 데이터 특성 식별자들을 획득하고, 그리고 데이터 특성 식별자들을 데이터 아이템들에 할당할 수 있다.
기존의 구성 요소의 동작들을 모니터하고 데이터 특성 식별자들을 자동으로 인가하는 작업 흐름 모니터의 실시 예와 반대로, 도 7의 실시 예는 작업 흐름 저장소(31)와의 요청 및 응답 메커니즘에 의존하며, 기존의 구성 요소들이 다중 스트리밍 능력을 부가할 수 있다. 작업 흐름 모니터의 실시 예는 기존의 소프트웨어 구성 요소들에서 매우 적은 재프로그램을 필요로 하지만, 작업 흐름 모니터 소프트웨어를 생성 및 실행하는 데에 추가적인 작업을 필요로 한다. 도 7의 실시 예는 기존의 소프트웨어 구성 요소에서 일부 재프로그램을 필요로 하지만, 작업 흐름 모니터를 생성, 실행 및 유지할 필요가 없다.
본 실시 예의 구체적인 예에서, 소프트웨어 구성 요소는 작업 흐름 저장소(31)에 요청하여 소프트웨어 구성 요소와 연관된 미리 정해진 작업 흐름(33)을 찾는다. 예시적으로, 요청은 소프트웨어 구성 요소의 식별자를 포함할 수 있다. 작업 흐름 저장소(31)로부터의 응답은 소프트웨어 구성 요소에 할당된 작업 흐름(33)의 정체(identity)를 포함할 수 있다.
동작 중에, 소프트웨어 구성 요소는 하나 또는 그보다 많은 요청들을 식별된 작업 흐름(33)으로 전송하여 하나 또는 그보다 많은 데이터 특성 식별자들을 획득하고 소프트웨어 구성 요소에 의해 사용되는 데이터 아이템들에 연관시킬 수 있다. 예시적으로, 요청은 소프트웨어 구성 요소에 의해 수행되는 현재 동작 및 수행되는 현재 동작의 하나 또는 그보다 많은 특성들(예를 들어, 데이터 타입)을 포함할 수 있다. 예시적으로, 소프트웨어 구성 요소는 소프트웨어 구성 요소의 식별자(예를 들어, 이름 또는 식별자 형태)를 이용하여 작업 흐름 저장소(31)에 소프트웨어 구성 요소의 식별을 요청하고, 다음으로 소프트웨어 구성 요소와 연관된 데이터 특성 식별자들을 식별된 작업 흐름(33)에 요청할 수 있다. 다른 예로서, 소프트웨어 구성 요소는 소프트웨어 구성 요소의 정체(또는 식별자) 및 데이터 특성 식별자들의 요청을 포함하는 단일 요청을 할 수 있다.
응용으로서 이름 또는 식별자를 사용하여 작업 흐름 저장소(31)에 요청하기 보다는, 소프트웨어 구성 요소가 운영 체제를 포함하는 예에서 운영 체제의 각 레벨은 하나 또는 그보다 많은 데이터 특성 식별자들을 획득하기 위하여 대응하는 운영 체제 레벨과 연관된 작업 흐름 저장소(31)로의 입력을 제공할 수 있다. 예를 들어, 파일 시스템 레벨에서, 운영 체제는 데이터 특성 식별자들을 요청할 때에 파일 타입, 사이트 등을 이용할 수 있다. 블록 레벨에서, 운영 체제는 LBA 범위 등을 이용할 수 있다. 예시적으로, 운영 체제는 부착된 장치들로부터의 장치 식별자들을 이용하여 작업 흐름 저장소(31)로부터 데이터 특성 식별자들을 획득할 수 있다.
소프트웨어 구성 요소로부터의 요청에 응답하여, 작업 흐름(33)은 해당 동작 및 데이터 아이템의 타입에 대해 작업 흐름(33)에서 특정된 하나 또는 그보다 많은 데이터 특성 식별자들을 소프트웨어 구성 요소에 반환할 수 있다.
작업 흐름(33)으로부터 데이터 특성 식별자들을 수신함에 따라, 소프트웨어 구성 요소는 데이터 특성 식별자를 소프트웨어 구성 요소에 의해 사용되는 데이터 아이템들에 자동으로 할당하고, 데이터 아이템들 및 할당된 데이터 특성 식별자들을 불휘발성 메모리 장치(예를 들어, SSD (12))에 저장을 위해 전송할 수 있다.
SSD (12)는 데이터 특성 식별자들(30)을 읽고, 동일한 데이터 특성 식별자들(30)을 가진 데이터 아이템들이 동일 블록에 저장되도록, 대응하는 데이터 아이템들을 저장하는 데에 사용될 SSD (12)의 블록을 식별할 수 있다.
데이터 특성 식별자 할당의 예로서, 사용자가 사진 응용을 편집하여 "foo.jpg"라 명명된 JPEG 파일 타입의 사진 파일을 편집중이고, 그리고 사용자의 컴퓨터의 SSD (12)는 네 개의 데이터 특성 식별자들 또는 스트림 식별자들을 처리하도록 구성된 경우가 가정된다. 사용자가 사진을 SSD (12)에 저장할 때, 사진 응용은 파일 저장 동작에 할당될 데이터 특성 식별자를 위해 사진 응용과 연관된 작업 흐름(33)에 요청을 전달할 수 있다. 작업 흐름(33)은 네 가지 데이터 특성 식별자들 저장 요청에 할당될 데이터 특성 식별자(예를 들어, 1)를 특정할 수 있다.
사진 응용은 작업 흐름(33)에서 특정된 1의 데이터 특성 식별자를 할당한다. 데이터 특성 식별자는 파일 데이터와 함께 파일 시스템(21) 및 블록 계층(23)을 통해 SSD (12)로 전송되며, 1의 데이터 특성 식별자가 할당된 다른 데이터를 저장하는 블록에 저장된다.
다른 예로서, 작업 흐름 저장소(31)는 데이터 베이스 응용으로 구현될 수 있다.
예시적으로, 작업 흐름 모니터 인터페이스(26)는 소프트웨어 구성 요소로 구현될 수 있다. 다른 예로서, 작업 흐름 모니터 인터페이스(26)는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있다. 작업 흐름 모니터 인터페이스(26)가 단일 구성 요소로 도시되어 있지만, 작업 흐름 모니터 인터페이스(26)의 기능은 더 많은 수의 모듈들 또는 구성 요소들을 이용하여 구현될 수 있다.
본 발명의 실시 예들에 따른 작업 흐름 모니터 인터페이스(26)는 클라이언트로부터 기업까지, 단일 스탠드얼론 기계(데스크톱, 랩톱, 워크스테이션, 서버 등)의 디스크, 스토리지 어레이, 소프트웨어 정의 스토리지(SDS), 응용 특정 스토리지, 가상 기계(VM), 가상 데스크톱 인프라스트럭쳐(VDI), 콘텐츠 분산 네트워크(CDN) 등과 같은 폭넓은 저장 시장에 적용될 수 있다.
예시적으로, SSD (12)의 NVM 어레이(24)는 복수의 플래시 메모리들과 같은 복수의 불휘발성 메모리 칩들로 형성될 수 있다. 다른 예로서, NVM 어레이(24)는 플래시 메모리 칩들 대신에 상이한 타입의 불휘발성 메모리 칩들(예를 들어, PRAM, FRAM, MRAM 등)로 형성될 수 있다. 다른 예로서, NVM 어레이(24)는 DRAM 또는 SRAM과 같은 휘발성 메모리들로 형성될 수 있으며, 둘 또는 그보다 많은 타입의 메모리들이 혼합된 하이브리드 타입을 가질 수 있다.
스토리지 장치의 데이터 특성 기반 데이터 배치를 위한 방법들 및 시스템들, 그리고 컴퓨터 시스템이 데이터 배치 방법을 활용할 수 있게 하는 작업 흐름 모니터 인터페이스가 설명되었다. 본 발명은 도시된 실시 예들에 따라 설명되었으며, 실시 예들에 다양한 변경들이 가능하고, 이러한 변경은 본 발명의 기술적 사상의 범위에 속한다. 예를 들어, 예시적인 실시 예들은 하드웨어, 소프트웨어, 프로그램 명령들을 저장하는 컴퓨터로 독출 가능한 매체 또는 이들의 조합으로 구현될 수 있다. 본 발명에 따라 기입된 소프트웨어는 메모리, 하드 디스크, 또는 CD/DVD-ROM과 같은 컴퓨터로 독출 가능한 매체의 형태로 저장될 수 있으며, 프로세서에 의해 실행될 수 있다. 따라서, 다양한 변경들이 이 분야에 통상적인 기술을 가진 자에 의해 첨부된 청구 범위의 기술적 사상으로부터 괴리되지 않은 범위에서 수행될 수 있다.
10; 호스트 시스템
12; 솔리드 스테이트 드라이브
14; 채널
16; 프로세서
18; 메모리
20; 운영체제
21; 파일 시스템
22; 스토리지 컨트롤러
24; 불휘발성 메모리 어레이
26; 작업 흐름 모니터 인터페이스
27; 작업 흐름 저장소
28; 데이터 아이템
29' 데이터 특성 식별자

Claims (20)

  1. 컴퓨터 장치가 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치를 활용하게 하는 인터페이스를 제공하는 방법에 있어서:
    실행 중인 응용 및 상기 컴퓨터 장치에 연결된 하드웨어 장치 중 적어도 하나를 검출하는 소프트웨어 구성 요소를 상기 컴퓨터 장치에서 실행하는 단계;
    상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나를 검출하는 것에 응답하여, 상기 소프트웨어 구성 요소가 작업 흐름 저장소를 검색하여 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나와 연관된 미리 정해진 작업 흐름을 찾는 단계;
    상기 소프트웨어 구성 요소가 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나의 활동을 상기 미리 정해진 작업 흐름과 비교하는 단계; 그리고
    데이터 아이템들 및 할당된 데이터 특성 식별자들이 채널을 통해 상기 불휘발성 메모리 장치에 전송되어 저장되도록 상기 실행 중인 응용 또는 상기 하드웨어 장치에 의해 사용되는 상기 데이터 아이템들에 상기 데이터 특성 식별자들을 자동으로 할당하도록 상기 미리 정해진 작업 흐름을 이용하는 단계를 포함하고,
    상기 미리 정해진 작업 흐름은 미리 정해진 데이터 특성 식별자들을 상기 실행 중인 응용 또는 상기 하드웨어 장치에 의해 상기 불휘발성 메모리에 기입되는 상기 데이터 아이템들의 상이한 타입들과 연관시키고,
    상기 불휘발성 메모리 장치는 상기 데이터 특성 식별자들을 읽고, 그리고 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 데이터 아이템을 저장할 상기 불휘발성 메모리 장치의 블록을 식별하는 방법.
  2. 제1 항에 있어서,
    상기 하드웨어 장치는 카메라, 마이크, 온도계, GPS, 시계, 센서, 스위치, 라우터, RAID 시스템, 또는 호스트 버스 어댑터(HBA) 시스템 중 적어도 하나를 포함하는 방법.
  3. 제1 항에 있어서,
    상기 실행 중인 응용 및 하드웨어 장치 중 적어도 하나를 검출하는 것은 새로운 데이터 배치 클라이언트를 검출하는 것을 포함하고, 상기 소프트웨어 구성 요소는 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나가 해당 기능을 갖도록 설계되지 않았더라도 데이터 특성 기반 데이터 배치를 제공하는 방법.
  4. 제1 항에 있어서,
    상기 소프트웨어 구성 요소는 상기 컴퓨터 장치가 상기 불휘발성 메모리 장치의 데이터 특성 기반 데이터 배치를 활용하게 하는 작업 흐름 모니터 인터페이스를 포함하는 방법.
  5. 제4 항에 있어서,
    상기 작업 흐름 모니터 인터페이스가 상기 작업 흐름 저장소에 대한 새로운 갱신 작업 흐름들을 수신하여 새로운 응용들 및 하드웨어 장치들을 수용하는 단계를 더 포함하는 방법.
  6. 제5 항에 있어서,
    상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나의 활동을 상기 미리 정해진 작업 흐름과 비교하는 것은, 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나에 의해 수행되는 하나 또는 그보다 많은 현재 프로세스들 또는 단계들을 평가하고 그리고 상기 현재 프로세스들 또는 단계들을 상기 미리 정해진 작업 흐름 내의 유사한 일련의 프로세스들 또는 단계들과 비교하는 것에 의해 수행되는 방법.
  7. 불휘발성 메모리 장치; 그리고
    상기 불휘발성 메모리 장치에 연결된 컴퓨터 장치를 포함하고,
    상기 컴퓨터 장치는 상기 컴퓨터 장치가 상기 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치를 활용하게 하는 인터페이스로 기능하는 소프트웨어 구성 요소를 실행하고,
    상기 소프트웨어 구성 요소는,
    실행 중인 응용 및 상기 컴퓨터 장치에 연결된 하드웨어 장치 중 적어도 하나를 검출하는 단계;
    상기 실행 중인 응용 및 상기 하드웨어 장치 중 하나를 검출하는 것에 응답하여, 작업 흐름 저장소를 검색하여 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나와 연관된 미리 정해진 작업 흐름을 찾는 단계;
    상기 소프트웨어 구성 요소가 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나의 활동을 상기 미리 정해진 작업 흐름과 비교하는 단계; 그리고
    데이터 아이템들 및 할당된 데이터 특성 식별자들이 채널을 통해 상기 불휘발성 메모리 장치에 전송되어 저장되도록 상기 응용 또는 상기 하드웨어 장치에 의해 사용되는 상기 데이터 아이템들에 상기 데이터 특성 식별자들을 자동으로 할당하도록 상기 미리 정해진 작업 흐름을 이용하는 단계를 수행하도록 구성되고,
    상기 미리 정해진 작업 흐름은 상기 실행 중인 응용 또는 상기 하드웨어 장치에 의해 상기 불휘발성 메모리 장치에 기입되는 데이터 아이템들의 상이한 타입들에 미리 정해진 데이터 특성 식별자들을 연관하고,
    상기 불휘발성 메모리 장치는 상기 데이터 특성 식별자들을 읽고, 그리고 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 데이터 아이템을 저장할 상기 불휘발성 메모리 장치의 블록을 식별하는 시스템.
  8. 제7 항에 있어서,
    상기 하드웨어 장치는 카메라, 마이크, 온도계, GPS, 시계, 센서, 스위치, 라우터, RAID 시스템, 또는 호스트 버스 어댑터(HBA) 시스템 중 적어도 하나를 포함하는 시스템.
  9. 제7 항에 있어서,
    상기 실행 중인 응용 및 하드웨어 장치 중 적어도 하나를 검출하는 것은 새로운 데이터 배치 클라이언트를 검출하는 것을 포함하고, 상기 소프트웨어 구성 요소는 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나가 해당 기능을 갖도록 설계되지 않았더라도 데이터 특성 기반 데이터 배치를 제공하는 시스템.
  10. 제7 항에 있어서,
    상기 소프트웨어 구성 요소는 상기 컴퓨터 장치가 상기 불휘발성 메모리 장치의 데이터 특성 기반 데이터 배치를 활용하게 하는 작업 흐름 모니터 인터페이스를 포함하는 시스템
  11. 제10 항에 있어서,
    상기 작업 흐름 모니터 인터페이스가 상기 작업 흐름 저장소에 대한 새로운 갱신 작업 흐름들을 수신하여 새로운 응용들 및 하드웨어 장치들을 수용하는 단계를 더 포함하는 시스템.
  12. 제11 항에 있어서,
    상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나의 활동을 상기 미리 정해진 작업 흐름과 비교하는 것은, 상기 실행 중인 응용 및 상기 하드웨어 장치 중 적어도 하나에 의해 수행되는 하나 또는 그보다 많은 현재 프로세스들 또는 단계들을 평가하고 그리고 상기 현재 프로세스들 또는 단계들을 상기 미리 정해진 작업 흐름 내의 유사한 일련의 프로세스들 또는 단계들과 비교하는 것에 의해 수행되는 시스템.
  13. 메모리 어레이; 그리고
    상기 메모리 어레이 및 채널에 연결되는 스토리지 컨트롤러를 포함하고,
    상기 스토리지 컨트롤러는,
    운영 체제 및 실행 중인 응용 중 적어도 하나로부터 상기 메모리 채널을 통해 저장될 제1 시리즈의 데이터 아이템들을 수신하고;
    상기 제1 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 특성들에 기반하여 상기 제1 시리즈의 데이터 아이템들과 연관되는 제1 데이터 특성 식별자를 포함하고,
    하드웨어 장치 컨트롤러로부터 상기 메모리 채널을 통해 저장될 제2 시리즈의 데이터 아이템들을 수신하고;
    상기 제2 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 특성들에 기반하여 상기 제2 시리즈의 데이터 아이템들과 연관되는 제2 데이터 특성 식별자를 포함하고,
    상기 제1 및 제2 데이터 특성 식별자들을 읽고, 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 제1 및 제2 시리즈의 데이터 아이템들을 저장할 블록들을 식별하고; 그리고
    상기 제1 및 제2 시리즈의 데이터 아이템들을 상기 식별된 블록들에 저장하도록 구성되는 불휘발성 메모리 장치.
  14. 제13 항에 있어서,
    상기 하드웨어 장치 컨트롤러는 카메라, 마이크, 온도계, GPS, 시계, 센서, 스위치, 라우터, RAID 시스템, 또는 호스트 버스 어댑터(HBA) 시스템 중 적어도 하나를 포함하는 불휘발성 메모리 장치.
  15. 제13 항에 있어서,
    상기 운영 체제 및 상기 실행 중인 응용 중 적어도 하나 또는 상기 하드웨어 장치 컨트롤러는 컴퓨터 장치의 일부인 불휘발성 메모리 장치.
  16. 제13 항에 있어서,
    상기 컴퓨터 장치는 상기 컴퓨터 장치가 상기 불휘발성 메모리 장치의 데이터 특성 기반 데이터 배치를 활용하게 하는 작업 흐름 모니터 인터페이스를 포함하는 불휘발성 메모리 장치.
  17. 제16 항에 있어서,
    상기 작업 흐름 모니터 인터페이스는 상기 컴퓨터 장치에서 운영 체제 레벨에서 실행되고,
    상기 작업 흐름 모니터 인터페이스는,
    상기 실행 중인 응용 및 상기 컴퓨터 장치에 연결된 상기 하드웨어 장치 제어기 중 적어도 하나를 검출하는 단계;
    상기 실행 중인 응용 및 상기 하드웨어 장치 컨트롤러 중 적어도 하나를 검출하는 것에 응답하여, 작업 흐름 저장소를 검색하여 상기 실행 중인 응용 및 상기 하드웨어 장치 컨트롤러 중 적어도 하나와 연관된 미리 정해진 작업 흐름을 찾는 단계;
    상기 실행 중인 응용 및 상기 하드웨어 장치 컨트롤러 중 적어도 하나의 활동을 상기 미리 정해진 작업 흐름과 비교하는 단계; 그리고
    데이터 아이템들 및 할당된 데이터 특성 식별자들이 채널을 통해 상기 불휘발성 메모리 장치에 전송되어 저장되도록 상기 실행 중인 응용 또는 상기 하드웨어 장치 컨트롤러에 의해 사용되는 상기 데이터 아이템들에 상기 데이터 특성 식별자들을 자동으로 할당하도록 상기 미리 정해진 작업 흐름을 이용하는 단계를 수행하도록 구성되고,
    상기 미리 정해진 작업 흐름은 미리 정해진 데이터 특성 식별자들을 상기 실행 중인 응용 또는 상기 하드웨어 장치 컨트롤러에 의해 상기 불휘발성 메모리에 기입되는 상기 데이터 아이템들의 상이한 타입들과 연관하는 불휘발성 메모리 장치.
  18. 불휘발성 메모리 장치의 스토리지 컨트롤러에 의해 수행되는 상기 불휘발성 메모리 장치 내부의 데이터 특성 기반 데이터 배치를 위한 방법에 있어서:
    운영 체제 및 실행 중인 응용 중 적어도 하나로부터 메모리 채널을 통해 저장될 제1 시리즈의 데이터 아이템들을 수신하는 단계;
    상기 제1 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 아이템들에 기반하여 연관되는 제1 데이터 특성 식별자를 포함하고,
    하드웨어 장치 컨트롤러로부터 상기 메모리 채널을 통해 저장될 제2 시리즈의 데이터 아이템들을 수신하는 단계;
    상기 제2 시리즈의 데이터 아이템들 각각은 데이터 유사도를 가리키는 하나 또는 그보다 많은 데이터 아이템들에 기반하여 연관되는 제2 데이터 특성 식별자를 포함하고,
    상기 제1 및 제2 데이터 특성 식별자들을 읽고, 동일한 데이터 특성 식별자를 갖는 데이터 아이템들이 동일한 블록에 저장되도록 상기 제1 및 제2 시리즈의 데이터 아이템들을 저장할 상기 불휘발성 메모리 장치의 블록들을 식별하는 단계; 그리고
    상기 제1 및 제2 시리즈의 데이터 아이템들을 상기 식별된 블록들에 저장하는 단계를 포함하는 방법.
  19. 제18 항에 있어서,
    상기 하드웨어 장치 컨트롤러는 카메라, 마이크, 온도계, GPS, 시계, 센서, 스위치, 라우터, RAID 시스템, 또는 호스트 버스 어댑터(HBA) 시스템 중 적어도 하나를 포함하는 방법.
  20. 컴퓨터 장치가 불휘발성 메모리 장치 내에서 데이터 특성 기반 데이터 배치를 활용하게 하는 인터페이스를 제공하는 방법에 있어서:
    상기 컴퓨터 장치에서 소프트웨어 구성 요소를 실행하는 단계;
    상기 소프트웨어 구성 요소가 상기 소프트웨어 구성 요소와 연관된 미리 정해진 작업 흐름을 찾도록 작업 흐름 저장소에 요청하는 단계;
    상기 미리 정해진 작업 흐름은 상기 불휘발성 메모리 장치에 기입될 데이터 아이템들의 상이한 특성들에 미리 정해진 데이터 특성 식별자들을 연관하고,
    상기 소프트웨어 구성 요소의 동작 동안에, 상기 소프트웨어 구성 요소에 의해 사용되는 데이터 아이템들과 연관되는 하나 또는 그보다 많은 데이터 특성 식별자들을 위해 상기 미리 정해진 작업 흐름에 하나 또는 그보다 많은 요청들을 전송하는 단계; 그리고
    상기 소프트웨어 구성 요소가 상기 하나 또는 그보다 많은 데이터 특성 식별자들을 상기 미리 정해진 작업 흐름으로부터 수신하는 것에 응답하여, 상기 소프트웨어 구성 요소에 의해 사용되는 상기 데이터 아이템들에 상기 데이터 특성 식별자들을 자동으로 할당하고 그리고 상기 데이터 아이템들 및 상기 할당된 데이터 특성 식별자들을 저장을 위해 상기 불휘발성 메모리 장치에 전송하는 단계를 포함하고,
    상기 불휘발성 메모리 장치는 상기 데이터 특성 식별자들을 읽고, 동일한 데이터 특성 식별자들을 갖는 데이터 아이템들이 동일한 블록에 저장되도록, 상기 데이터 아이템들이 저장될 상기 불휘발성 메모리 장치의 블록들을 식별하는 방법.
KR1020160076697A 2015-07-13 2016-06-20 불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치 KR102541458B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201562192045P 2015-07-13 2015-07-13
US62/192,045 2015-07-13
US201562245100P 2015-10-22 2015-10-22
US62/245,100 2015-10-22
US15/144,588 2016-05-02
US15/144,588 US11461010B2 (en) 2015-07-13 2016-05-02 Data property-based data placement in a nonvolatile memory device

Publications (2)

Publication Number Publication Date
KR20170008152A true KR20170008152A (ko) 2017-01-23
KR102541458B1 KR102541458B1 (ko) 2023-06-08

Family

ID=57775001

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160076697A KR102541458B1 (ko) 2015-07-13 2016-06-20 불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치

Country Status (5)

Country Link
US (1) US11461010B2 (ko)
JP (1) JP6971542B2 (ko)
KR (1) KR102541458B1 (ko)
CN (1) CN106354425B (ko)
TW (1) TWI710949B (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119080A (ko) * 2017-02-09 2019-10-21 마이크론 테크놀로지, 인크. 다중-스트림 저장 장치를 위한 스트림 선택
US10811103B2 (en) 2017-11-30 2020-10-20 SK Hynix Inc. Memory controller, memory system, and method of operating memory system
US10915546B2 (en) 2018-10-10 2021-02-09 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal
KR20210058118A (ko) * 2019-11-13 2021-05-24 인하대학교 산학협력단 CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치
US11048755B2 (en) 2018-12-14 2021-06-29 Micron Technology, Inc. Key-value store tree with selective use of key portion
US11100071B2 (en) 2018-10-10 2021-08-24 Micron Technology, Inc. Key-value store tree data block spill with compaction
KR20210135776A (ko) * 2020-05-06 2021-11-16 인하대학교 산학협력단 엣지 컴퓨팅을 위해 데이터중복제거 기술이 적용된 casedb(키 벨류 저장장치)
US11334270B2 (en) 2018-12-14 2022-05-17 Micron Technology, Inc. Key-value store using journaling with selective data storage format

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6403164B2 (ja) * 2015-09-11 2018-10-10 東芝メモリ株式会社 メモリシステム
US9880780B2 (en) * 2015-11-30 2018-01-30 Samsung Electronics Co., Ltd. Enhanced multi-stream operations
US9898202B2 (en) 2015-11-30 2018-02-20 Samsung Electronics Co., Ltd. Enhanced multi-streaming though statistical analysis
US20170220295A1 (en) * 2016-02-02 2017-08-03 Intel Corporation Technologies for reducing duplication of stored data
CN106250064B (zh) * 2016-08-19 2020-05-12 深圳大普微电子科技有限公司 固态硬盘控制装置和基于学习的固态硬盘数据存取方法
US10482111B2 (en) * 2016-12-12 2019-11-19 Vmware, Inc. Custom property cluster definition for a graphic user interface
US10725988B2 (en) 2017-02-09 2020-07-28 Micron Technology, Inc. KVS tree
US10706106B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree modifications for maintenance operations
US10706105B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree garbage metrics
US10756953B1 (en) * 2017-03-31 2020-08-25 Veritas Technologies Llc Method and system of seamlessly reconfiguring a data center after a failure
US10387160B2 (en) 2017-04-01 2019-08-20 Intel Corporation Shared local memory tiling mechanism
KR102398181B1 (ko) 2017-07-03 2022-05-17 삼성전자주식회사 쓰기 데이터를 위해 할당될 물리 어드레스를 미리 관리하는 스토리지 장치
WO2019038859A1 (ja) * 2017-08-23 2019-02-28 株式会社日立製作所 不揮発メモリデバイスを有するストレージシステム
CN109947592B (zh) * 2017-12-20 2022-11-18 腾讯科技(深圳)有限公司 一种数据同步方法、装置以及相关设备
US10878859B2 (en) 2017-12-20 2020-12-29 Micron Technology, Inc. Utilizing write stream attributes in storage write commands
US11803325B2 (en) 2018-03-27 2023-10-31 Micron Technology, Inc. Specifying media type in write commands
US11182101B2 (en) * 2018-12-03 2021-11-23 Western Digital Technologies, Inc. Storage system and method for stream management in a multi-host virtualized storage system
KR20200123898A (ko) 2019-04-22 2020-11-02 삼성전자주식회사 상이한 동작 모드들에서 동작하는 뱅크들을 포함하는 불휘발성 메모리 장치, 메모리 컨트롤러의 동작 방법, 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 저장 장치
US11194516B2 (en) 2019-10-08 2021-12-07 Micron Technology, Inc. Media type selection
CN113051241B (zh) * 2019-12-27 2023-08-15 中国移动通信集团湖南有限公司 数据库持久化的方法、装置及设备
US11366602B2 (en) 2020-06-23 2022-06-21 Western Digital Technologies, Inc. Data storage device with burn-after-read mode
US11954345B2 (en) * 2021-12-03 2024-04-09 Samsung Electronics Co., Ltd. Two-level indexing for key-value persistent storage device
US11694722B1 (en) 2022-02-15 2023-07-04 Western Digital Technologies, Inc. Data timestamp and read counter for magnetic recording devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010018004A (ja) * 2008-07-14 2010-01-28 Canon Inc ワークフロー実行装置及びワークフロー実行方法
KR20140033099A (ko) * 2011-06-09 2014-03-17 마이크로소프트 코포레이션 용도에 따른 플래시 기반 저장소 상의 데이터 배치의 관리 기법

Family Cites Families (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5381856A (en) 1976-12-24 1978-07-19 Toyoda Mach Works Ltd Fluid bearing equipment
GB2089165B (en) * 1980-10-30 1985-10-09 Canon Kk Character and image processing
US4827411A (en) * 1987-06-15 1989-05-02 International Business Machines Corporation Method of maintaining a topology database
JP2600376B2 (ja) 1989-05-18 1997-04-16 日本電気株式会社 メモリ制御装置
US6607081B2 (en) * 1996-11-15 2003-08-19 Diebold, Incorporated Automated transaction machine system
JPH10162098A (ja) * 1996-12-02 1998-06-19 Nec Corp 文書電子化装置及び文書電子化方法
US6282663B1 (en) * 1997-01-22 2001-08-28 Intel Corporation Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US5930497A (en) 1997-12-11 1999-07-27 International Business Machines Corporation Method and means for generation of realistic access patterns in storage subsystem benchmarking and other tests
JP4197547B2 (ja) 1998-05-13 2008-12-17 株式会社東芝 データ記憶装置およびデータ管理方法
KR100296049B1 (ko) * 1999-03-19 2001-07-28 윤종용 단문메시지서비스를 통한 디지털 휴대용 단말기의 사용자 정보 송수신장치 및 그 방법
US6591339B1 (en) 1999-05-03 2003-07-08 3Ware, Inc. Methods and systems for selecting block sizes for use with disk arrays
US6438555B1 (en) * 1999-11-02 2002-08-20 Nortel Networks Limited Method and apparatus for accessing an ordered array structure
US7103357B2 (en) * 1999-11-05 2006-09-05 Lightsurf Technologies, Inc. Media spooler system and methodology providing efficient transmission of media content from wireless devices
EP1314290B1 (en) * 2000-08-31 2006-09-27 Ontrack Data International, Inc. System and method for data management
US6704467B2 (en) * 2000-12-21 2004-03-09 Canon Kabushiki Kaisha Image editing with block selection
EP1229721A3 (en) 2001-01-31 2004-09-29 Fuji Photo Film Co., Ltd. Information displaying method and menu service method and system
US7346519B2 (en) * 2001-04-10 2008-03-18 Metropolitan Regional Information Systems, Inc Method and system for MRIS platinum database
US7240347B1 (en) 2001-10-02 2007-07-03 Juniper Networks, Inc. Systems and methods for preserving the order of data
US7173929B1 (en) 2001-12-10 2007-02-06 Incipient, Inc. Fast path for performing data operations
US7266843B2 (en) * 2001-12-26 2007-09-04 Mcafee, Inc. Malware scanning to create clean storage locations
US6996676B2 (en) 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
JP4308555B2 (ja) * 2003-03-10 2009-08-05 パナソニック株式会社 受信装置および情報閲覧方法
US20070050777A1 (en) * 2003-06-09 2007-03-01 Hutchinson Thomas W Duration of alerts and scanning of large data stores
US9342662B2 (en) * 2003-09-16 2016-05-17 Media Rights Technologies, Inc. Method and system for controlling video media
US7346613B2 (en) * 2004-01-26 2008-03-18 Microsoft Corporation System and method for a unified and blended search
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7328317B2 (en) 2004-10-21 2008-02-05 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
US7574409B2 (en) 2004-11-04 2009-08-11 Vericept Corporation Method, apparatus, and system for clustering and classification
JP2006235960A (ja) 2005-02-24 2006-09-07 Fujitsu Ltd ガーベッジコレクション高速化方法
JP2006309348A (ja) * 2005-04-26 2006-11-09 Sharp Corp 送信装置、受信装置、送信方法、受信方法、送信プログラム、受信プログラムおよびコンピュータ読み取り可能な記録媒体
JP4815887B2 (ja) 2005-06-17 2011-11-16 日産自動車株式会社 情報処理装置及び情報処理用表示装置
US7660264B1 (en) 2005-12-19 2010-02-09 Chelsio Communications, Inc. Method for traffic schedulign in intelligent network interface circuitry
US7844445B2 (en) * 2005-10-12 2010-11-30 Storage Appliance Corporation Automatic connection to an online service provider from a backup system
CN101322344B (zh) * 2005-10-21 2013-01-02 尼尔逊媒介研究股份有限公司 用于计量便携式媒体播放器的方法和装置
US20070156998A1 (en) 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
JP4686358B2 (ja) 2005-12-26 2011-05-25 ジヤトコ株式会社 フラッシュメモリを備えた制御装置
US7930508B2 (en) 2006-03-07 2011-04-19 Apple Inc. File systems for data processing systems
US7870128B2 (en) 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US7774392B2 (en) 2006-09-15 2010-08-10 Sandisk Corporation Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
US8112813B1 (en) * 2006-09-29 2012-02-07 Amazon Technologies, Inc. Interactive image-based document for secured data access
JP4390795B2 (ja) 2006-10-25 2009-12-24 パイオニア株式会社 ナビゲーションシステム
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
JP4283315B2 (ja) * 2007-02-01 2009-06-24 シャープ株式会社 画像履歴保管方法、画像履歴保管システム及び画像履歴保管プログラム並びに記録媒体
US7962638B2 (en) 2007-03-26 2011-06-14 International Business Machines Corporation Data stream filters and plug-ins for storage managers
US20080250190A1 (en) * 2007-04-03 2008-10-09 Brian Johnson Portable memory device operating system and method of using same
US7853759B2 (en) * 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
KR101433859B1 (ko) 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
IL187037A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Fast update for hierarchical integrity schemes
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
JP5268447B2 (ja) * 2008-06-26 2013-08-21 キヤノン株式会社 医療用撮影装置
US8140485B2 (en) * 2008-07-31 2012-03-20 International Business Machines Corporation Data recovery using a minimum number of recovery streams
CN101673245B (zh) 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
US20100146538A1 (en) * 2008-12-09 2010-06-10 Electronics And Telecommunications Research Institute Method and apparatus for transmitting/receiving broadcasting program id
US8312217B2 (en) 2008-12-30 2012-11-13 Rasilient Systems, Inc. Methods and systems for storing data blocks of multi-streams and multi-user applications
US8627039B2 (en) * 2009-04-10 2014-01-07 International Business Machines Corporation Effective memory clustering to minimize page fault and optimize memory utilization
US8837287B2 (en) 2009-04-14 2014-09-16 Alcatel Lucent Application-specific management of high-bandwidth transfers
US20100288828A1 (en) * 2009-05-14 2010-11-18 Aisaku Pradhan Accessible user interface for electronic devices
KR20120068765A (ko) 2009-07-17 2012-06-27 가부시끼가이샤 도시바 메모리 관리 장치
JP2011186562A (ja) 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
US8838877B2 (en) 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8296496B2 (en) 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM
CN102576333B (zh) 2009-10-05 2016-01-13 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
US20110106780A1 (en) * 2009-11-05 2011-05-05 European Space Agency Method and apparatus for accessing data in a data store
TW201117605A (en) * 2009-11-13 2011-05-16 Primax Electronics Ltd Image capture device
US9021185B2 (en) 2009-11-23 2015-04-28 Amir Ban Memory controller and methods for enhancing write performance of a flash device
US8495250B2 (en) * 2009-12-16 2013-07-23 International Business Machines Corporation Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system
US8452932B2 (en) * 2010-01-06 2013-05-28 Storsimple, Inc. System and method for efficiently creating off-site data volume back-ups
US8880784B2 (en) 2010-01-19 2014-11-04 Rether Networks Inc. Random write optimization techniques for flash disks
JP2011175615A (ja) 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
US8830300B2 (en) * 2010-03-11 2014-09-09 Dolby Laboratories Licensing Corporation Multiscalar stereo video format conversion
JP2011209973A (ja) 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム
US8812436B2 (en) * 2010-05-04 2014-08-19 Symantec Corporation Schedule based data lifecycle management
US9563397B1 (en) 2010-05-05 2017-02-07 Western Digital Technologies, Inc. Disk drive using non-volatile cache when garbage collecting log structured writes
JP5593254B2 (ja) 2010-05-12 2014-09-17 パナソニック株式会社 半導体メモリ装置及び半導体メモリシステム
US8615703B2 (en) 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
JP2012019383A (ja) * 2010-07-08 2012-01-26 Panasonic Corp 記録制御装置、半導体記録装置および記録システム
JP2012020544A (ja) 2010-07-16 2012-02-02 Sekisui Chem Co Ltd 射出発泡成形品
WO2012020544A1 (ja) 2010-08-11 2012-02-16 日本電気株式会社 データ処理システム、データ処理方法、およびプログラム
US20120042134A1 (en) * 2010-08-11 2012-02-16 Hank Risan Method and system for circumventing usage protection applicable to electronic media
US20120047330A1 (en) 2010-08-18 2012-02-23 Nec Laboratories America, Inc. I/o efficiency of persistent caches in a storage system
US8601217B2 (en) 2010-08-31 2013-12-03 Oracle International Corporation Method and system for inserting cache blocks
JP2012084127A (ja) 2010-09-15 2012-04-26 Toshiba Corp 半導体装置
US8341350B2 (en) 2010-09-21 2012-12-25 Lsi Corporation Analyzing sub-LUN granularity for dynamic storage tiering
WO2012051600A2 (en) * 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
JP5679773B2 (ja) 2010-11-08 2015-03-04 シャープ株式会社 移動通信システム、移動局装置、基地局装置、mme、mbms gw及び移動通信方法
WO2012063813A1 (ja) 2010-11-08 2012-05-18 シャープ株式会社 移動通信システム、移動局装置、基地局装置、sgsn、ggsn、mme、mbms gw及び移動通信方法
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
EP2643761A1 (en) 2010-11-24 2013-10-02 Sony Ericsson Mobile Communications AB Dynamically configurable embedded flash memory for electronic devices
US8868618B2 (en) * 2010-12-14 2014-10-21 Microsoft Corporation Usage-optimized tables
US20120158827A1 (en) * 2010-12-21 2012-06-21 Verizon Patent And Licensing Inc. Active server system monitor
CN103354926B (zh) 2011-01-31 2016-04-06 三菱电机株式会社 存储器控制器
JP2012170751A (ja) 2011-02-23 2012-09-10 Olympus Medical Systems Corp 画像表示装置、方法、及びプログラム、並びにカプセル型内視鏡システム
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US9015311B2 (en) 2011-05-24 2015-04-21 Citrix Systems, Inc. Systems and methods for analyzing network metrics
US8738882B2 (en) 2011-06-03 2014-05-27 Apple Inc. Pre-organization of data
US8983911B2 (en) 2011-06-20 2015-03-17 Microsoft Technology Licensing, Llc Storage media abstraction for uniform data storage
US20130013889A1 (en) 2011-07-06 2013-01-10 Jaikumar Devaraj Memory management unit using stream identifiers
KR101954215B1 (ko) * 2011-07-12 2019-06-07 삼성전자주식회사 비휘발성 저장 장치의 이용 방법 및 장치
US9288226B2 (en) * 2011-07-14 2016-03-15 AVG Netherlands B.V. Detection of rogue software applications
US8732831B2 (en) * 2011-07-14 2014-05-20 AVG Netherlands B.V. Detection of rogue software applications
US10089017B2 (en) 2011-07-20 2018-10-02 Futurewei Technologies, Inc. Method and apparatus for SSD storage access
US8892728B2 (en) 2011-07-21 2014-11-18 Hewlett-Packard Development Company, L.P. Automatic zone-based management of a data center
US20130024483A1 (en) * 2011-07-21 2013-01-24 Alcatel-Lucent Canada, Inc. Distribution of data within a database
EP2557497A1 (en) 2011-08-08 2013-02-13 Advanced Digital Broadcast S.A. Method for improving booting of a computing device
US20130050743A1 (en) * 2011-08-31 2013-02-28 Forrest Lane Steely System and Method of Print Job Retrieval from the Cloud
JP2013084176A (ja) * 2011-10-12 2013-05-09 Sony Corp 情報処理装置、情報処理方法およびコンピュータプログラム
US9223978B2 (en) * 2011-10-28 2015-12-29 Confer Technologies, Inc. Security policy deployment and enforcement system for the detection and control of polymorphic and targeted malware
US20130111336A1 (en) * 2011-11-01 2013-05-02 Griffin Dorman Platform and application independent system and method for networked file access and editing
JP5963009B2 (ja) 2011-12-08 2016-08-03 パナソニックIpマネジメント株式会社 デジタル標本作製装置、デジタル標本作製方法およびデジタル標本作製サーバ
US10203881B2 (en) * 2011-12-19 2019-02-12 Apple Inc. Optimized execution of interleaved write operations in solid state drives
US8996450B1 (en) 2011-12-31 2015-03-31 Teradata Us, Inc. System and method for allocating resources in a mixed SSD and HDD storage environment
US20130183951A1 (en) * 2012-01-12 2013-07-18 Shih-Wei Chien Dynamic mobile application classification
US9201804B1 (en) 2012-02-06 2015-12-01 Google Inc. Dynamically adapting the configuration of a multi-queue cache based on access patterns
US20140074899A1 (en) 2012-02-28 2014-03-13 Ben Zion Halevy Methods and system for efficient lifecycle management of storage controller
JP5723812B2 (ja) 2012-03-16 2015-05-27 株式会社 日立産業制御ソリューションズ ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム
US8825724B2 (en) 2012-03-29 2014-09-02 Lsi Corporation File system hinting
US9575981B2 (en) * 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9003150B2 (en) 2012-04-26 2015-04-07 Hitachi, Ltd. Tiered storage system configured to implement data relocation without degrading response performance and method
US20130290601A1 (en) * 2012-04-26 2013-10-31 Lsi Corporation Linux i/o scheduler for solid-state drives
US9413587B2 (en) * 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US20130300590A1 (en) * 2012-05-14 2013-11-14 Paul Henry Dietz Audio Feedback
WO2013171792A1 (en) 2012-05-16 2013-11-21 Hitachi, Ltd. Storage control apparatus and storage control method
US20130326169A1 (en) 2012-05-31 2013-12-05 Amir Shaharabany Method and Storage Device for Detection of Streaming Data Based on Logged Read/Write Transactions
US8856484B2 (en) 2012-08-14 2014-10-07 Infinidat Ltd. Mass storage system and methods of controlling resources thereof
US9244868B2 (en) 2012-09-21 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Leased lock in active-active high availability DAS systems
CN103677654B (zh) 2012-09-24 2018-03-23 联想(北京)有限公司 一种存储数据的方法及电子设备
US8799829B2 (en) * 2012-09-28 2014-08-05 Interactive Memories, Inc. Methods and systems for background uploading of media files for improved user experience in production of media-based products
US9158770B1 (en) * 2012-10-09 2015-10-13 Robert Beadles Memorytag hybrid multidimensional bar text code
TWI459202B (zh) 2012-12-05 2014-11-01 Phison Electronics Corp 資料處理方法、記憶體控制器與記憶體儲存裝置
AU2013359762B2 (en) * 2012-12-10 2016-02-18 Viditeck Ag Rules based data processing system and method
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
KR20140112303A (ko) 2013-03-13 2014-09-23 삼성전자주식회사 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
US9436634B2 (en) 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
US9715445B2 (en) * 2013-03-14 2017-07-25 Sandisk Technologies Llc File differentiation based on data block identification
US9335950B2 (en) 2013-03-15 2016-05-10 Western Digital Technologies, Inc. Multiple stream compression and formatting of data for data storage systems
US9042181B2 (en) 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium
US20170039372A1 (en) * 2013-03-15 2017-02-09 Electro Industries/Gauge Tech Devices, systems and methods for upgrading firmware in intelligent electronic devices
KR102023351B1 (ko) 2013-03-19 2019-11-04 삼성전자 주식회사 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치
US20140304469A1 (en) 2013-04-05 2014-10-09 Hewlett-Packard Development Company, L. P. Data storage
EP2800013B1 (en) * 2013-04-30 2015-09-09 Systemite AB Integration database framework
US9213633B2 (en) 2013-04-30 2015-12-15 Seagate Technology Llc Flash translation layer with lower write amplification
JP6248412B2 (ja) * 2013-05-13 2017-12-20 ソニー株式会社 撮像装置、撮像方法、プログラム
CN103324703A (zh) 2013-06-14 2013-09-25 西安工程大学 基于工作流引擎和知识引擎双驱动的知识推送方法
JP6099496B2 (ja) 2013-06-24 2017-03-22 Kddi株式会社 管理装置及びプログラム
US9984089B2 (en) 2013-06-28 2018-05-29 Vmware, Inc. Techniques for implementing hybrid flash/HDD-based virtual disk files
US20160196076A1 (en) * 2013-07-08 2016-07-07 Wilus Institute Of Standards And Technology Inc. Memory system and method for controlling same
US20150026257A1 (en) * 2013-07-16 2015-01-22 Dropbox, Inc. Music box
JP5969130B2 (ja) 2013-07-18 2016-08-17 株式会社日立製作所 情報処理装置
WO2015020811A1 (en) 2013-08-09 2015-02-12 Fusion-Io, Inc. Persistent data structures
KR20150023151A (ko) 2013-08-23 2015-03-05 삼성전자주식회사 전자 장치 및 이의 어플리케이션 실행 방법
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
EP3036637A4 (en) * 2013-09-24 2016-08-24 Huawei Tech Co Ltd METHOD AND SYSTEM FOR AUTOMATICALLY MANAGING DYNAMICALLY ASSIGNED MEMORY IN A COMPUTER UNIT
WO2015048140A1 (en) 2013-09-24 2015-04-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for storage collision management
CN105593859B (zh) * 2013-09-26 2019-07-12 西门子保健有限责任公司 用于管理和处理医学机构的数据的方法和系统
KR102203131B1 (ko) * 2013-10-16 2021-01-14 삼성전자주식회사 파일 관리 방법 및 그 전자 장치
JP6038763B2 (ja) * 2013-11-22 2016-12-07 京セラドキュメントソリューションズ株式会社 画像形成装置
US9344525B2 (en) 2013-11-25 2016-05-17 Violin Memory Inc. Method and apparatus for data migration
JP2015111334A (ja) 2013-12-06 2015-06-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US9330305B2 (en) * 2013-12-29 2016-05-03 Google Technology Holdings LLC Method and device for detecting a seating position in a vehicle
US10747880B2 (en) * 2013-12-30 2020-08-18 University Of Louisiana At Lafayette System and method for identifying and comparing code by semantic abstractions
US20150188960A1 (en) * 2013-12-31 2015-07-02 Mohammad Taj Alhaidar System and method for online media content sharing
US8874835B1 (en) * 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
CN103777905B (zh) 2014-02-14 2017-04-12 华中科技大学 一种软件定义的固态盘融合存储方法
KR101544309B1 (ko) 2014-02-26 2015-08-12 한양대학교 산학협력단 스트림 기반의 비휘발성 메모리 제어 방법 및 장치
US9354872B2 (en) 2014-04-24 2016-05-31 Xitore, Inc. Apparatus, system, and method for non-volatile data storage and retrieval
US9378152B2 (en) 2014-05-09 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
CN104111898A (zh) 2014-05-26 2014-10-22 中国能源建设集团广东省电力设计研究院 基于多维数据相似性的混合存储系统及数据管理方法
US10289939B2 (en) 2014-07-21 2019-05-14 Yulong Computer Telecommunication Scientific (Shenzhen) Co., Ltd. Image classification method and image classification apparatus
US9495102B2 (en) 2014-07-31 2016-11-15 Samsung Electronics Co., Ltd. Input/output (I/O) interceptor that re-orders a plurality of write I/O into combined with I/O with intelligent flush control logic
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9619214B2 (en) * 2014-08-13 2017-04-11 International Business Machines Corporation Compiler optimizations for vector instructions
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US9405928B2 (en) * 2014-09-17 2016-08-02 Commvault Systems, Inc. Deriving encryption rules based on file content
TWI554089B (zh) * 2014-09-29 2016-10-11 緯創資通股份有限公司 影音分享方法與系統
US9892041B1 (en) * 2014-09-30 2018-02-13 Veritas Technologies Llc Cache consistency optimization
CN104391569A (zh) 2014-10-15 2015-03-04 东南大学 基于认知与情绪状态多模态感知的脑机接口系统
US10515227B2 (en) * 2014-10-23 2019-12-24 Pageproof.Com Limited Encrypted collaboration system and method
US10198318B2 (en) 2014-10-27 2019-02-05 Hitachi, Ltd. Storage apparatus having nonvolatile memory device, and nonvolatile memory device
US9940242B2 (en) 2014-11-17 2018-04-10 International Business Machines Corporation Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
CN104391659A (zh) * 2014-12-03 2015-03-04 浪潮集团有限公司 一种基于磁盘的实现冷热数据自动分层存储技术
US9471229B2 (en) 2014-12-15 2016-10-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Scaling performance for raid storage controllers by predictively caching data for host write requests
US10409526B2 (en) 2014-12-17 2019-09-10 Violin Systems Llc Adaptive garbage collection
US9779021B2 (en) 2014-12-19 2017-10-03 International Business Machines Corporation Non-volatile memory controller cache architecture with support for separation of data streams
CN104572491B (zh) 2014-12-30 2017-10-17 华为技术有限公司 一种基于固态硬盘的读缓存管理方法及装置
TWI541669B (zh) * 2015-01-05 2016-07-11 Rangecloud Information Technology Co Ltd Detection systems and methods for static detection applications, and computer program products
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
JP2016170583A (ja) * 2015-03-12 2016-09-23 株式会社東芝 メモリシステムおよび情報処理システム
US20160283125A1 (en) * 2015-03-25 2016-09-29 Kabushiki Kaisha Toshiba Multi-streamed solid state drive
US9760281B2 (en) 2015-03-27 2017-09-12 Intel Corporation Sequential write stream management
US10013177B2 (en) 2015-04-20 2018-07-03 Hewlett Packard Enterprise Development Lp Low write amplification in solid state drive
US9696935B2 (en) * 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US10025747B2 (en) 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9851926B2 (en) 2015-06-02 2017-12-26 Quantum Corporation Log structured block device for hard disk drive
US10509770B2 (en) * 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10324832B2 (en) 2016-05-25 2019-06-18 Samsung Electronics Co., Ltd. Address based multi-stream storage device access
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US9977623B2 (en) 2015-10-15 2018-05-22 Sandisk Technologies Llc Detection of a sequential command stream
US20170123666A1 (en) 2015-10-30 2017-05-04 Sandisk Technologies Inc. System and method for managing maintenance scheduling in a non-volatile memory
US10275275B2 (en) 2015-12-03 2019-04-30 Nvidia Corporation Managing copy operations in complex processor topologies
US10289309B2 (en) 2016-09-12 2019-05-14 Toshiba Memory Corporation Automatic detection of multiple streams

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010018004A (ja) * 2008-07-14 2010-01-28 Canon Inc ワークフロー実行装置及びワークフロー実行方法
KR20140033099A (ko) * 2011-06-09 2014-03-17 마이크로소프트 코포레이션 용도에 따른 플래시 기반 저장소 상의 데이터 배치의 관리 기법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119080A (ko) * 2017-02-09 2019-10-21 마이크론 테크놀로지, 인크. 다중-스트림 저장 장치를 위한 스트림 선택
US10811103B2 (en) 2017-11-30 2020-10-20 SK Hynix Inc. Memory controller, memory system, and method of operating memory system
US10915546B2 (en) 2018-10-10 2021-02-09 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US11100071B2 (en) 2018-10-10 2021-08-24 Micron Technology, Inc. Key-value store tree data block spill with compaction
US11599552B2 (en) 2018-10-10 2023-03-07 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US11048755B2 (en) 2018-12-14 2021-06-29 Micron Technology, Inc. Key-value store tree with selective use of key portion
US11334270B2 (en) 2018-12-14 2022-05-17 Micron Technology, Inc. Key-value store using journaling with selective data storage format
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal
KR20210058118A (ko) * 2019-11-13 2021-05-24 인하대학교 산학협력단 CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치
KR20210135776A (ko) * 2020-05-06 2021-11-16 인하대학교 산학협력단 엣지 컴퓨팅을 위해 데이터중복제거 기술이 적용된 casedb(키 벨류 저장장치)

Also Published As

Publication number Publication date
JP6971542B2 (ja) 2021-11-24
KR102541458B1 (ko) 2023-06-08
CN106354425A (zh) 2017-01-25
US20170017411A1 (en) 2017-01-19
JP2017021804A (ja) 2017-01-26
CN106354425B (zh) 2021-06-29
TWI710949B (zh) 2020-11-21
TW201710881A (zh) 2017-03-16
US11461010B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
KR102541458B1 (ko) 불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치
US11989160B2 (en) Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
US9519575B2 (en) Conditional iteration for a non-volatile device
CN107003935B (zh) 用于优化数据库去重的装置、方法和计算机介质
US9092321B2 (en) System and method for performing efficient searches and queries in a storage node
US20220244869A1 (en) File system storage allocation based on zones of a memory device
US9021189B2 (en) System and method for performing efficient processing of data stored in a storage node
US11263149B2 (en) Cache management of logical-physical translation metadata
EP3168737A2 (en) Distributed multimode storage management
US20140351505A1 (en) Providing data attributes to a storage manager to use to select a storage tier to use for a data set management operation
US20140351515A1 (en) Providing data attributes to a storage manager to use to select a storage tier to use for a data set management operation
US10146684B2 (en) Distributed data parallel method for reclaiming space
KR101579941B1 (ko) 가상머신 i/o 관리 방법 및 장치
US20130346714A1 (en) Hardware-Based Accelerator For Managing Copy-On-Write
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
US11947419B2 (en) Storage device with data deduplication, operation method of storage device, and operation method of storage server
US10671307B2 (en) Storage system and operating method thereof
US20230409530A1 (en) Grouping data to conserve storage capacity

Legal Events

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