KR20140128823A - 멀티-트랜잭션의 아토믹 라이트 방법 - Google Patents

멀티-트랜잭션의 아토믹 라이트 방법 Download PDF

Info

Publication number
KR20140128823A
KR20140128823A KR20130047775A KR20130047775A KR20140128823A KR 20140128823 A KR20140128823 A KR 20140128823A KR 20130047775 A KR20130047775 A KR 20130047775A KR 20130047775 A KR20130047775 A KR 20130047775A KR 20140128823 A KR20140128823 A KR 20140128823A
Authority
KR
South Korea
Prior art keywords
transaction
storage
host
write data
atomic write
Prior art date
Application number
KR20130047775A
Other languages
English (en)
Other versions
KR102094475B1 (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 삼성전자주식회사
Priority to KR1020130047775A priority Critical patent/KR102094475B1/ko
Priority to US14/263,613 priority patent/US10642531B2/en
Publication of KR20140128823A publication Critical patent/KR20140128823A/ko
Application granted granted Critical
Publication of KR102094475B1 publication Critical patent/KR102094475B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

호스트의 동작 방법은 트랜잭션별로 트랜잭션 ID를 정의하는 단계와, 상기 트랜잭션별로 정의된 상기 트랜잭션 ID에 기초하여 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 스토리지로 전송하는 단계를 포함한다.

Description

멀티-트랜잭션의 아토믹 라이트 방법{ATOMIC WRITE MEHTOD OF MUTI-TRANSACTION}
본 발명의 개념에 따른 실시 예는 아토믹 라이트 방법에 관한 것으로, 특히 호스트가 트랜잭션별로 정의된 트랜잭션 ID를 이용하여 멀티-트랜잭션에 관련된 아토믹 라이트 데이터를 스토리지로 전송하는 방법과 상기 스토리지의 아토믹 라이트 방법에 관한 것이다.
아토믹 라이트(atomic write) 또는 아토믹 라이트 동작은 전부 또는 전무 (all or nothing)를 만족하는 라이트 동작이다.
예컨대, 아토믹 라이트 동안, 데이터의 일부가 스토리지(storage)에 라이트되는 도중에 상기 스토리지로의 전력 공급이 차단되고 상기 스토리지로 다시 전력이 공급될 때, 상기 스토리지는 상기 데이터의 전부가 저장된 상태 또는 상기 데이터의 일부가 라이트되기 이전 상태를 만족해야 한다.
본 발명이 이루고자 하는 기술적인 과제는 호스트가 트랜잭션별로 정의된 트랜잭션 ID를 이용하여 멀티-트랜잭션에 관련된 아토믹 라이트 데이터를 스토리지로 전송하는 방법과 상기 스토리지의 아토믹 라이트 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 호스트의 동작 방법은 트랜잭션별로 트랜잭션 ID(identification)를 정의하는 단계와 상기 트랜잭션별로 정의된 상기 트랜잭션 ID에 기초하여 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 스토리지로 전송하는 단계를 포함할 수 있다.
상기 트랜잭션 ID를 정의하는 단계는 상기 호스트가 상기 트랜잭션별로 상기 트랜잭션 ID를 생성하는 단계를 포함할 수 있다.
상기 트랜잭션 ID를 정의하는 단계는 상기 호스트가 상기 스토리지에서 허용할 수 있는 상기 트랜잭션의 최대 개수를 수신하는 단계를 더 포함하고, 상기 트랜잭션 ID를 생성하는 단계는 상기 트랜잭션의 상기 최대 개수에 기초하여 상기 트랜잭션별로 상기 트랜잭션 ID를 생성할 수 있다.
상기 방법은 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터의 전송이 완료된 후에 상기 호스트가 상기 트랜잭션별로 정의된 상기 트랜잭션 ID를 상기 호스트의 트랜잭션 ID 매니저로 반환(return)하는 단계를 더 포함할 수 있다.
상기 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계는 상기 호스트가 상기 트랜잭션 ID를 포함하는 애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통하여 상기 스토리지로 상기 트랜잭션의 아토믹 라이트를 요청하는 단계와 상기 호스트가 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계를 포함할 수 있다.
상기 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계는 상기 호스트가 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터마다 상기 트랜잭션 ID를 상기 아토믹 라이트 데이터와 함께 상기 스토리지로 전송할 수 있다.
상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터는 비연속적인 어드레스들에 대응하는 데이터일 수 있다.
상기 트랜잭션 ID를 정의하는 단계는 상기 호스트가 상기 트랜잭션별로 상기 트랜잭션 ID를 상기 스토리지로 요청하는 단계와 상기 호스트가 상기 스토리지로부터 상기 요청에 따라 전송된 상기 트랜잭션 ID를 수신하는 단계를 포함할 수 있다.
상기 방법은 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터의 전송이 완료된 후에 상기 호스트가 상기 트랜잭션별로 정의된 상기 트랜잭션 ID를 상기 스토리지로 반환(return)하는 단계를 더 포함할 수 있다.
상기 트랜잭션 ID를 상기 스토리지로 요청하는 단계는 상기 호스트가 애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통하여 상기 스토로지로 상기 트랜잭션 ID를 요청할 수 있다.
본 발명의 실시 예에 따른 스토리지의 동작 방법은 호스트로부터 트랜잭션별로 정의된 트랜잭션 ID(identification)와 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 수신하는 단계와 상기 아토믹 라이트 데이터, 상기 트랜잭션 ID, 및 상기 아토믹 라이트 데이터의 식별자(identifier)를 저장 영역에 라이트하는 단계를 포함할 수 있다.
상기 트랜잭션 ID는 상기 호스트에 의해 정의될 수 있다.
상기 트랜잭션 ID는 상기 스토리지에 의해 정의될 수 있다.
상기 식별자는 상기 아토믹 라이트 데이터의 전송 완료 여부를 지시할 수 있다.
상기 방법은 상기 스토리지가 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터의 수신이 완료된 후에 상기 트랜잭션별로 정의된 상기 트랜잭션 ID를 반환(return)하는 단계를 더 포함할 수 있다.
상기 방법은 상기 트랜잭션 ID 및 상기 식별자에 기초하여 상기 저장 영역에 라이트된 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터를 상기 저장 영역과 상이한 저장 영역에 아토믹하게 라이트하는 단계를 더 포함할 수 있다.
상기 저장 영역과 상기 상이한 저장 영역 각각은 상기 스토리지의 서로 다른 저장 장치에 구현될 수 있다.
상기 스토리지는 eMMC(embedded multimedia card), UFS(universal flash storage) 또는 SSD(solid state drive)일 수 있다.
본 발명의 실시 예에 따른 호스트와 스토리지를 포함하는 시스템의 동작 방법은 트랜잭션별로 트랜잭션 ID(identification)를 정의하는 단계와 상기 호스트가 상기 트랜잭션 ID를 이용하여 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계를 포함할 수 있다.
상기 방법은 상기 스토리지가 상기 아토믹 라이트 데이터, 상기 트랜잭션 ID, 및 상기 아토믹 라이트 데이터의 식별자(identifier)를 저장 영역에 라이트하는 단계를 더 포함할 수 있다.
상기 방법은 상기 스토리지가 상기 트랜잭션 ID 및 상기 식별자에 기초하여 상기 저장 영역에 라이트된 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터를 상기 저장 영역과 상이한 저장 영역에 아토믹하게 라이트하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 아토믹 라이트 방법은 트랜잭션별로 정의된 트랜잭션 ID를 이용하여 멀티-트랜잭션에 관련된 아토믹 라이트 데이터를 스토리지로 전송할 수 있는 효과가 있다.
상기 아토믹 라이트 방법은 상기 트랜잭션 ID를 이용하여 트랜잭션 단위로 상기 아토믹 라이트 데이터를 상기 스토리지에 아토믹하게 라이트할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 메모리 장치의 메모리 셀 어레이를 개략적으로 나타낸다.
도 3은 멀티-트랜잭션의 아토믹 라이트 데이터 전송 동작의 일 실시 예를 설명하기 위한 개념도이다.
도 4는 멀티-트랜잭션의 아토믹 라이트 데이터 전송 동작의 다른 실시 예를 설명하기 위한 개념도이다.
도 5는 본 발명의 실시 예에 따라 트랜잭션 ID를 요청하는 애플리케이션 프로그래밍 인터페이스의 실시 예를 나타낸다.
도 6은 본 발명의 실시 예에 따라 아토믹 라이트를 요청하는 애플리케이션 프로그래밍 인터페이스의 실시 예를 나타내다.
도 7은 스토리지에서 허용할 수 있는 트랜잭션의 최대 개수를 요청하는 API의 실시 예를 나타낸다.
도 8 및 도 9는 본 발명의 실시 예에 따른 멀티-트랜잭션의 아토믹 라이트를 설명하기 위한 개념도이다.
도 10은 본 발명의 실시 예에 따른 시스템의 동작 방법을 설명하기 위한 플로우 차트이다.
도 11은 본 발명의 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 12는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 13는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 14는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 15는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 1을 참조하면, 전자 시스템(10)은 호스트(100)와 스토리지(또는 데이터 저장 장치; 200)를 포함할 수 있다.
전자 시스템(10)은 멀티-트랜잭션(multi-transaction; TR1~TRk)의 아토믹 라이트를 수행할 수 있다.
전자 시스템(10)은 트랜잭션(TR1~TRk)별로 트랜잭션 ID(idntificaton)을 정의하고, 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID에 기초하여 트랜잭션, 예컨대 멀티-트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송할 수 있다.
예컨대, 각 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)는 비연속적인 어드레스들, 예컨대 LBA(logical block address)에 대응하는 데이터일 수 있다.
따라서, 전자 시스템(10)은 멀티-트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스캐터(scatter) 방식으로 스토리지(200)로 전송함으로써 트랜잭션들 사이에 딜레이(delay)가 발생하지않을 수 있다.
전자 시스템(10)은 멀티-트랜잭션(TR1~TRk)의 원자성(atomicity)를 보장할 수 있다. 또한, 전자 시스템(10)은 비연속적인 어드레스들에 대응하는 데이터를 포함하는 멀티-트랜잭션(TR1~TRk)의 상기 원자성을 보장할 수 있다.
전자 시스템(10)은 PC(personal computer), 데이터 서버, 데이터베이스 서버, 웹 서버, 네트워크-결합 스토리지(network-attacked storage(NAS)), 또는 휴대용 전자 장치로 구현될 수 있다.
상기 휴대용 전자 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
호스트(100)는 트랜잭션(TR1~TRk)별로 트랜잭션 ID를 정의할 수 있다.
실시 예에 따라, 호스트(100)는 트랜잭션(TR1~TRk)별로 상기 트랜잭션 ID를 생성할 수 있다. 예컨대, 호스트(100)는 스토리지(200)에서 허용(또는 처리)할 수 있는 트랜잭션(TR1~TRk)의 최대 개수를 수신하고, 수신된 상기 최대 개수에 기초하여 트랜잭션(TR1~TRk)별로 상기 트랜잭션 ID를 생성할 수 있다.
다른 실시 예에 따라, 호스트(100)는 트랜잭션(TR1~TRk)별로 상기 트랜잭션 ID를 스토리지(200)로 요청하고, 스토리지(200)로부터 상기 요청에 따라 전송된 상기 트래잭션 ID를 수신할 수 있다.
또한, 호스트(100)는, 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID에 기초하여, 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송할 수 있다.
실시 예에 따라, 호스트(100)는 상기 트랜잭션 ID를 포함하는 애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통하여 스토리지(200)로 트랜잭션(TR1~TRk)의 아토믹 라이트를 요청하고, 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송할 수 있다.
다른 실시 예에 따라, 호스트(100)는 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)마다 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID를 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)와 함께 스토리지(200)로 전송할 수 있다.
호스트(100)는 CPU(110), 호스트 인터페이스(130), 및 메모리(150)를 포함할 수 있다. 실시 예에 따라, 호스트(100)는 애플리케이션 프로세서 또는 모바일 애플리케이션 프로세서를 의미할 수 있다.
CPU(110), 호스트 인터페이스(130), 및 메모리(150)는 버스(105)를 통하여 서로 통신할 수 있다.
CPU(110)는 그 명칭에 무관하게 호스트(100)의 동작을 전반적으로 제어할 수 있는 제어 회로를 의미할 수 있다. 따라서, CPU(110)는 프로세서 또는 멀티-코어 프로세서로 대체될 수 있다.
예컨대, CPU(110)는 트랜잭션(TR1~TRk)별로 상기 트랜잭션 ID를 정의하고, 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID에 기초하여 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송하는 동작을 전반적으로 제어할 수 있다.
호스트 인터페이스(130)는 CPU(110)의 제어에 따라 호스트(100)와 스토리지 (200) 사이에서 주고받는 신호(또는 데이터)를 인터페이싱할 수 있다.
호스트 인터페이스(130)는 상기 인터페이싱을 위하여 인터페이스 프로토콜을 구비할 수 있다. 예컨대, 상기 인터페이스 프로토콜은 UHS(UHS-I 또는 UHS-II), PCI-E(peripheral component interconnect - express), ATA(Advanced attached SCSI)와 같은 인터페이스 프로토콜일 수 있다.
또한, 상기 인터페이스 프로토콜은 USB(Universal Serial Bus), MMC(multi-media card), ESDI(enhanced small disk interface), 또는 IDE(Integrated Drive Electronics) 등에 적합한 프로토콜일 수 있다.
메모리(150)는 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 저장할 수 있다. 도 1에서는 설명의 편의를 위해 트랜잭션(TR1~TRk) 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 4개만 도시하였다.
실시 예에 따라, 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)는 비연속적인 어드레스들에 대응하는 데이터일 수 있다.
메모리(150)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.
상기 휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM (static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
상기 불휘발성 메모리 장치는 ROM(read only memory), EEPROM(electrically erasable programmable ROM), NOR 플래시(flash) 메모리, NAND 플래시 메모리, MRAM(Magnetic RAM), 스핀-전달 토크 MRAM(spin-transfer torque MRAM(STT-MRAM)), conductive bridging RAM(CBRAM), FeRAM(ferroelectric RAM), PRAM(phase change RAM), 저항 메모리(resistive RAM: RRAM), 나노튜브 RRAM(nanotube RRAM), 폴리머 RAM(polymer RAM: PoRAM), 나노 부유 게이트 메모리(nano floating gate memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자 (molecular electronics memory device), 또는 절연 저항 변화 메모리(insulator resistance change memory)로 구현될 수 있다.
또한, 상기 불휘발성 메모리 장치는 하드디스크 드라이브(hard disk drive(HDD)) 또는 솔리드 스테이트 드라이브(SSD)로 구현될 수 있다.
스토리지(200)는 호스트(100)로부터 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID와 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 수신하고, 수신된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4), 상기 트랜잭션 ID, 및 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 식별자(identifier)를 스토리지(200)의 저장 영역에 라이트할 수 있다.
실시 예에 따라, 상기 식별자는 트랜잭션(TR1~TRk)별로 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 전송 완료 여부를 지시할 수 있다.
또한, 스토리지(200)는 상기 트랜잭션 ID 및 상기 식별자에 기초하여 상기 저장 영역에 라이트된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 상기 저장 영역과 상이한 저장 영역에 아토믹하게 라이트할 수 있다.
따라서, 스토리지(200)는 상기 트랜잭션 ID 및 상기 식별자에 기초하여 상기 저장 영역에 라이트된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 상기 상이한 저장 영역에 트랜잭션 단위로 아토믹하게, 즉 전부 또는 전무로 라이트할 수 있다.
스토리지(200)는 메모리 컨트롤러(300), 메모리 장치(400)를 포함할 수 있다.
스토리지(200)는 데이터베이스, 솔리드 스테이트 드라이브(solid state drive(SSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 플래시 USB 드라이브(flash universal serial bus drive), SD(secure digital) 카드, MMC(multimedia card), 임베디드 MMC (embedded MMC), 스마트 카드(smart card), 메모리 카드(memory card), 또는 레이드(Redundant Array of Independent Disks(RAID) 또는 Redundant Array of Inexpensive Disks(RAID))로 구현될 수 있으나, 반드시 이에 한정되지 않는다.
예컨대, 스토리지(200)는 eMMC, UFC, 또는 SSD 등 플래시 메모리 컨트롤러를 포함한 모든 플래시 기반 저장 장치일 수 있다.
메모리 컨트롤러(300)는 호스트(100)와 스토리지(200) 사이의 통신을 제어할 수 있다. 예컨대, 메모리 컨트롤러(300)는 호스트(100)로부터 전송된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 아토믹 라이트 동작을 제어할 수 있다.
메모리 컨트롤러(300)는 CPU(310), 컨트롤러 인터페이스(330), 버퍼 메모리(350), ECC(error correction code) 블록(370), 및 메모리 인터페이스(390)을 포함할 수 있다.
CPU(310), 컨트롤러 인터페이스(330), 버퍼 메모리(350), ECC 블록(370), 및 메모리 인터페이스(390)는 버스(305)를 통하여 서로 통신할 수 있다.
CPU(310)는 데이터를 메모리 장치(400)로 라이트 또는 상기 데이터를 메모리 장치(400)로부터 리드하기 위한 전반적인 제어 동작을 수행할 수 있다.
예컨대, CPU(310)는 호스트(100)로부터 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID와 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 수신하고, 수신된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4), 상기 트랜잭션 ID, 및 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 상기 식별자를 메모리 장치(400)의 메모리 셀 어레이(410)의 저장 영역에 라이트하는 동작을 제어할 수 있다.
또한, CPU(310)는 상기 트랜잭션 ID 및 상기 식별자에 기초하여 메모리 셀 어레이(410)의 상기 저장 영역에 라이트된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 메모리 셀 어레이(410)의 상기 저장 영역과 상이한 저장 영역에 아토믹하게 라이트하는 동작을 제어할 수 있다.
컨트롤러 인터페이스(330)는 호스트(100)와 스토리지(200) 사이에서 주고받는 신호(또는 데이터)를 인터페이싱할 수 있다. 컨트롤러 인터페이스(330)는 호스트 인터페이스(130)와 같은 상기 인터페이싱을 위하여 상술한 인터페이스 프로토콜을 구비할 수 있다.
버퍼 메모리(350)는 메모리 장치(400)에 라이트될 데이터 및 메모리 장치(400)로부터 리드된 데이터를 일시적으로 저장하는 버퍼 역할을 수행할 수 있다.
예컨대, 버퍼 메모리(350)는 호스트(100)로부터 전송된 트랜잭션에 관련된 아토믹 라이트 데이터를 일시적으로 저장할 수 있다.
버퍼 메모리(350)는 휘발성 메모리로서, 예컨대 SDRAM, DRAM 등일 수 있으나 이에 한정되지 않는다. 도 1에서는 버퍼 메모리(350)가 메모리 컨트롤러(300)의 내부에 구현되어 있으나 실시 예에 따라 메모리 컨트롤러(300)의 외부에 구현될 수도 있다.
ECC 블록(370)은 메모리 장치(400)에 라이트될 데이터를 인코딩하고 메모리 장치(400)로부터 리드된 데이터를 디코딩함으로써 상기 리드된 데이터에 포함된 에러를 검출하고 정정할 수 있다.
메모리 인터페이스(390)는 메모리 장치(400)와 메모리 컨트롤러(300) 사이에서 신호(또는 데이터)의 교환을 인터페이싱할 수 있다.
메모리 장치(400)는 상술한 휘발성 메모리 장치 또는 상술한 불휘발성 메모리 장치로 구현될 수 있다.
도 2는 도 1에 도시된 메모리 장치의 메모리 셀 어레이를 개략적으로 나타낸다.
도 1 및 도 2를 참조하면, 메모리 장치(400)의 메모리 셀 어레이(410)는 데이터를 라이트할 수 있는 저장 영역들(430 및 450) 또는 저장 공간들(430 및 450)을 제공할 수 있다. 도 2에서는 메모리 셀 어레이(410)가 하나만 도시되어있지만, 반드시 이에 한정되지 않는다.
저장 영역들(430 및 450) 각각은 하나 이상의 블록(433)을 포함하고, 블록(433)은 하나 이상의 페이지(433-1)를 포함할 수 있다.
페이지(433-1)는 데이터, 예컨대 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 라이트할 수 있는 데이터 영역(DS) 또는 데이터 섹터(DS)와 상기 트랜잭션 ID 및 상기 식별자를 라이트할 수 있는 스패어(spare) 영역(SS) 또는 스패어 섹터(SS)를 포함할 수 있다.
실시 예에 따라, 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)는 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 크기에 따라 하나 이상의 페이지(433-1)에 라이트될 수 있다.
아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4), 상기 트랜잭션 ID, 및 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 상기 식별자는 메모리 컨트롤러(300)의 제어에 따라 저장 영역(430)에 라이트될 수 있다.
저장 영역(430)에 라이트된 아토믹 라이트 데이터, 트랜잭션 ID, 및 아토믹 라이트 데이터의 식별자는 메모리 컨트롤러(300)의 제어에 따라 저장 영역(450)에 아토믹하게 라이트될 수 있다.
따라서, 저장 영역(430)에 라이트된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)는 트랜잭션 단위로 아토믹하게, 즉 전부 또는 전무로 저장 영역(450)에 라이트될 수 있다.
즉, 저장 영역(450)에 라이트된 올드(old) 데이터(또는 이전 데이터) 또는 저장 영역(430)에 라이트된 뉴(new) 데이터(또는 현재 데이터), 예컨대 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)는 저장 영역(450)에 리커버리(recovery)될 수 있다.
도 3은 멀티-트랜잭션의 아토믹 라이트 데이터 전송 동작의 일 실시 예를 설명하기 위한 개념도이다.
도 3에 도시된 호스트(100)의 CPU(110A)와 메모리 컨트롤러(300)의 CPU(310A)는 도 1에 도시된 호스트(100)의 CPU(110)와 메모리 컨트롤러(300)의 CPU(310)의 일 실시 예를 나타낸다.
도 1 및 도 3을 참조하면, CPU(110A)는 트랜잭션(TR1~TRk)별로 트랜잭션 ID를 정의할 수 있다. 예컨대, CPU(110A)는 트랜잭션(TR1~TRk)별로 트랜잭션 ID를 스토리지(200)의 트랜잭션 ID 매니저(311)로 요청하고, 트랜잭션 ID 매니저(311)로부터 상기 요청에 따라 전송된 상기 트랜잭션 ID를 수신할 수 있다.
CPU(110A)는 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID에 기초하여 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송하는 동작을 전반적으로 제어할 수 있다.
이때, 호스트(100), 예컨대 CPU(110A)는 트랜잭션(TR1~TRk)마다 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 전송이 완료된 후에 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID를 스토리지(200), 예컨대 트랜잭션 ID 매니저(311)로 반환(return)할 수 있다.
호스트(100)의 CPU(110A)는 애플리케이션들(111-1~111-n), 및 API(113)를 포함할 수 있다.
애플리케이션들(111-1~111-n)은 OS(operating system) 상에서 실행되고, 작업의 기본 단위로 각 트랜잭션(TR1~TRk)을 처리할 수 있다.
애플리케이션들(111-1~111-n)은 API(113)를 통하여 스토리지(200)의 트랜잭션 ID 매니저(311)로 애플리케이션들(111-1~111-n)에 상응하는 트랜잭션(TR1~TRk)의 트랜잭션 ID를 요청할 수 있다.
도 5는 본 발명의 실시 예에 따라 트랜잭션 ID를 요청하는 애플리케이션 프로그래밍 인터페이스의 실시 예를 나타낸다.
도 1, 도 3, 및 도 5를 참조하면, 애플리케이션들(111-1~111-n)은 도 5에 도시된 API(113)를 이용하여 상기 트랜잭션 ID를 요청할 수 있다.
메모리 컨트롤러(300)의 CPU(310A)는 상기 트랜잭션 ID를 생성하는 트랜잭션 ID 매니저(311)를 포함할 수 있다. 도 3에서는 트랜잭션 ID 매니저(311)가 메모리 컨트롤러(300)의 CPU(310A)에 별도로 구현되어 있는 것으로 도시되어 있지만, 실시 예에 따라 트랜잭션 ID 매니저(311)는 CPU(310A)의 FTL(Flash Translation Layer)에 구현될 수 있다.
트랜잭션 ID 매니저(311)는 상기 요청에 응답하여 트랜잭션(TR1~TRk)별로 현재 사용가능한 트랜잭션 ID를 각 애플리케이션(111-1~111-n)으로 전송할 수 있다.
애플리케이션들(111-1~111-n)은 트랜잭션(TR1~TRk)별로 정의된 트랜잭션 ID에 기초하여 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송할 수 있다.
실시 예에 따라, 애플리케이션들(111-1~111-n)은 트랜잭션 ID를 포함하는 API(113)를 통하여 스토리지(200)로 트랜잭션(TR1~TRk)의 아토믹 라이트를 요청하고, 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송할 수 있다.
도 6은 본 발명의 실시 예에 따라 아토믹 라이트를 요청하는 애플리케이션 프로그래밍 인터페이스의 실시 예를 나타내다.
도 1, 도 3, 및 도 6을 참조하면, 애플리케이션들(111-1~111-n)은 도 6에 예시적으로 도시된 API(113)를 이용하여 스토리지(200)로 아토믹 라이트를 요청할 수 있다.
여기서, '*pLBA'는 각 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4) 각각의 시작 어드레스를 포함할 수 있다.
'*pSctCnt'는 각 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4) 각각의 어드레스 카운트, 예컨대 섹터 카운트를 포함할 수 있다.
'IOCount'는 각 트랜잭션(TR1~TRk)에 포함된 데이터의 개수, 예컨대 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 카운트를 포함할 수 있다. 스토리지(200)는 상기 'IOCount'를 통하여 호스트(100)로부터 마지막으로 전송되는 각 트랜잭션(TR1~TRk)의 데이터를 확인할 수 있다.
'nTransactionID'는 트랜잭션(TR1~TRk)별로 정의된 트랜잭션 ID를 포함할 수 있다.
즉, 도 6에 도시된 API(113)는 트랜잭션 단위로 요청될 수 있다.
다른 실시 예에 따라, 애플리케이션들(111-1~111-n)은 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)마다 트랜잭션 ID를 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)와 함께 스토리지(200)로 전송할 수 있다. 이때, 애플리케이션들(111-1~111-n)은 트랜잭션 ID를 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)와 함께 스토리지(200)로 전송함으로써 API(113)를 통하여 아토믹 라이트를 스토리지(200)로 요청하지 않을 수 있다.
도 4는 멀티-트랜잭션의 아토믹 라이트 데이터 전송 동작의 다른 실시 예를 설명하기 위한 개념도이다.
도 4에 도시된 호스트(100)의 CPU(110B)와 메모리 컨트롤러(300)의 CPU (310B)는 도 1에 도시된 호스트(100)의 CPU(110)와 메모리 컨트롤러(300)의 CPU (310)의 다른 실시 예를 나타낸다.
도 1 및 도 4를 참조하면, CPU(110B)는 트랜잭션(TR1~TRk)별로 트랜잭션 ID를 정의할 수 있다. 예컨대, CPU(110B)는 트랜잭션(TR1~TRk)별로 트랜잭션 ID를 생성하는 동작을 제어할 수 있다. 실시 예에 따라, CPU(110B)는 스토리지(200)에서 허용할 수 있는 트랜잭션(TR1~TRk)의 최대 개수에 기초하여 트랜잭션(TR1~TRk)별로 트랜잭션 ID를 생성할 수 있다.
호스트(100)의 CPU(110B)는 애플리케이션들(111-1~111-n), API(113), 및 트랜잭션 ID 매니저(311)를 포함할 수 있다. 도 3의 메모리 컨트롤러(300)의 CPU(310A)에 구현된 트랜잭션 ID 매니저(311)는 도 4의 호스트(100)의 CPU(110B)에 구현될 수 있다.
애플리케이션들(111-1~111-n)은 API(113)를 통하여 호스트(100)의 CPU(110B)에 구현된 트랜잭션 ID 매니저(311)로 애플리케이션들(111-1~111-n)에 상응하는 트랜잭션(TR1~TRk)의 트랜잭션 ID를 요청할 수 있다.
트랜잭션 ID 매니저(311)는 상기 요청에 따라 애플리케이션들(111-1~111-n) 각각에 상응하는 트랜잭션의 ID를 생성하고, 생성된 트랜잭션의 ID를 API(113)을 통하여 애플리케이션들(111-1~111-n)로 전송할 수 있다.
실시 예에 따라, 트랜잭션 ID 매니저(311)는 맥스 트랜잭션 ID 매니저(313)로부터 스토리지(200)에서 허용할 수 있는 트랜잭션(TR1~TRk)의 최대 개수를 수신하고, 상기 최대 개수에 기초하여 현재 사용가능한 트랜잭션의 ID를 생성하고, 생성된 트랜잭션의 ID를 애플리케이션들(111-1~111-n)로 전송할 수 있다.
이때, 트랜잭션 ID 매니저(311)는 API(113)를 통하여 스토리지(200)에서 허용할 수 있는 트랜잭션(TR1~TRk)의 최대 개수를 스토리지(200)의 맥스 트랜잭션 ID 매니저(313)로 요청할 수 있다.
도 7은 스토리지에서 허용할 수 있는 트랜잭션의 최대 개수를 요청하는 API의 실시 예를 나타낸다.
도 1, 도 4, 및 도 7을 참조하면, 트랜잭션 ID 매니저(311)는 도 7에 예시적으로 도시된 API(113)를 이용하여 맥스 트랜잭션 ID 매니저(313)로 스토리지(200)에서 허용할 수 있는, 예컨대 한번에 처리할 수 있는 트랜잭션(TR1~TRk)의 최대 개수를 요청할 수 있다.
메모리 컨트롤러(300)의 CPU(310B)는 스토리지(200)에서 허용할 수 있는 트랜잭션(TR1~TRk)의 최대 개수를 계산하는 맥스 트랜잭션 ID 매니저(313)를 포함할 수 있다.
맥스 트랜잭션 ID 매니저(313)는 상기 요청에 응답하여 현재 스토리지(200)에서 허용할 수 있는 트랜잭션(TR1~TRk)의 최대 개수를 계산하고, 계산된 최대 개수를 트랜잭션 ID 매니저(313)로 전송할 수 있다.
CPU(110B)의 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송하는 동작은 도 3의 CPU(110A)의 아토믹 라이트 데이터 전송 동작과 실질적으로 동일하다.
이때, 호스트(100), 예컨대 CPU(110B)는 트랜잭션(TR1~TRk)마다 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 전송이 완료된 후에 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID를 호스트(100)의 트랜잭션 ID 매니저(311)로 반환(return)할 수 있다.
도 8 및 도 9는 본 발명의 실시 예에 따른 멀티-트랜잭션의 아토믹 라이트를 설명하기 위한 개념도이다.
도 8 및 도 9에서는 설명의 편의를 위해 호스트(100)의 메모리(150)에 저장된 트랜잭션(TR1~TR3)에 관련된 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)를 이용하여 상세히 설명될 것이다.
도 1 내지 도 8을 참조하면, 트랜잭션(TR1~TR3)별로 트랜잭션 ID(#5, #2, 및 #3)는 호스트(100) 또는 스토리지(200)에 의해 정의될 수 있다.
트랜잭션(TR1)은 트랜잭션 ID(#5)로 정의되고, 트랜잭션(TR2)는 트랜잭션 ID(#2)로 정의되고, 트랜잭션(TR3)은 트랜잭션 ID(#3)로 정의될 수 있다.
트랜잭션(TR1~TR3)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)는 비연속적인 어드레스들(LBA)에 대응하는 데이터일 수 있다. 예컨대, 어드레스(LBA)는 로컬 블록 어드레스(local block address), 논리 블록 어드레스(logical block address), 또는 논리 섹터 어드레스(logical sector address)일 수 있다.
호스트(100)는 비연속적인 어드레스들(LBA)에 대응하는 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)를 스토리지(200)로 전송할 수 있다. 예컨대, 호스트(100)는 멀티-트랜잭션(TR1~TR3)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)를 스캐터(scatter) 방식으로 스토리지(200)로 전송할 수 있다.
스토리지(200)는 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4), 트랜잭션 ID(#5, #2, 및 #3), 및 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)의 식별자(S 및 E)를 저장 영역(450)에 라이트할 수 있다.
예컨대, 스토리지(200)는 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)를 데이터 섹터(DS)에 라이트하고, 트랜잭션 ID(#5, #2, 및 #3)와 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)의 식별자(S 및 E)를 스패어 섹터(SS)에 라이트할 수 있다.
식별자(S 및 E)는 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)의 전송 완료 여부를 지시할 수 있다. 도 8과 도 9에서는 식별자(S 및 E)를 'S' 와 'E'로 표시하고 있지만, 식별자(S 및 E)는 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)의 전송 완료 여부를 나타내는 상태 비트(예컨대 로직 '1' 및 '0')를 의미할 수 있다.
아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4) 중에서 마지막으로 전송된 각 트랜잭션(TR1 내지 TR3)의 데이터의 식별자(E)는 전송 완료를 의미할 수 있다.
예를 들어, 트랜잭션(TR1)의 데이터(DT1-1, DT1-2, 및 DT1-4)의 식별자(S)는 전송 중임을 의미하고, 트랜잭션(TR1)의 마지막으로 전송된 데이터(DT1-3)의 식별자(E)는 전송 완료를 의미할 수 있다.
실시 예에 따라, 스토리지(200)는 도 6에 도시된 'IOCount'를 통하여 호스트(100)로부터 마지막으로 전송되는 각 트랜잭션(TR1 내지 TR3)의 데이터를 확인하고, 확인결과에 따라 식별자(E)를 스패어 섹터(SS)에 라이트할 있다.
스토리지(200)는 트랜잭션 ID(#5, #2, 및 #3) 및 식별자(S 및 E)에 기초하여 저장 영역(430)에 라이트된 트랜잭션(TR1 내지 TR3)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)를 저장 영역(430)과 상이한 저장 영역(450)에 아토믹하게 라이트할 수 있다.
도 9에서는 설명의 편의를 위해 저장 영역(430)에 데이터(DT3-3)가 라이트된 이후에 SPO(sudden power off)가 발생한 경우를 가정하여 설명한다.
도 1 내지 도 9를 참조하면, 스토리지(200)가 전송된 순서에 따라 데이터(DT3-3)까지를 저장 영역(430)에 라이트한 이후에 상기 SPO가 발생한 때, 스토리지(200)는 POR(power off recovery)에 따라 저장 영역(430)에 라이트된 순서에 따른 데이터(DT1-1)부터 데이터(DT3-3)까지 스캐닝할 수 있다.
스토리지(200)는 트랜잭션 ID(#5, #2, 및 #3)를 이용하여 트랜잭션(TR1 내지 TR3)별로 데이터를 구분하고, 구분된 데이터의 식별자(S 및 E)를 이용하여 전송 완료된 트랜잭션(TR1 및 TR2)에 대해서만 도 9에 도시된 바와 같은 맵을 구축할 수 있다.
스토리지(200)는 구축된 맵의 트랜잭션(TR1 및 TR2)에 관련된 데이터(DT1-1~DT1-4 및 DT2-1~DT2-4)를 저장 영역(450)에 아토믹하게, 즉 전부 라이트함으로써 트랜잭션 단위로 저장 영역(430)에 라이트된 뉴 데이터, 예컨대 트랜잭션(TR1 및 TR2)에 관련된 데이터(DT1-1~DT1-4 및 DT2-1~DT2-4)를 리카버리할 수 있다.
스토리지(200)는 구축된 맵에 포함되지 않은 트랜잭션(TR3)에 관련된 데이터(DT3-1~DT3-4)를 저장 영역(450)에 아토믹하게, 즉 전무 라이트함으로써 트랜잭션 단위로 올드 데이터, 예컨대 트랜잭션(TR3)에 관련된 데이터(DT3-1~DT3-4)가 전송되기 이전에 저장 영역(450)에 라이트된 이전 데이터를 리커버리할 수 있다.
즉, 스토리지(200)는 상기 SPO가 발생한 이후에 상기 POR에 따라 트랜잭션 ID(#5, #2, 및 #3) 및 식별자(S 및 E)에 기초하여 저장 영역(430)에 라이트된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DT3-1~DT3-4)를 저장 영역(430)과 상이한 저장 영역(450)에 트랜잭션 단위로 아토믹하게, 전부 또는 전무 라이트할 수 있다.
도 10은 본 발명의 실시 예에 따른 시스템의 동작 방법을 설명하기 위한 플로우 차트이다.
도 1 내지 도 10을 참조하면, 시스템(10)은 트랜잭션(TR1~TRk)별로 트랜잭션 ID를 정의할 수 있다(S110).
호스트(100)는 트랜잭션(TR1~TRk)별로 정의된 상기 트랜잭션 ID에 기초하여 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 스토리지(200)로 전송할 수 있다(S130).
스토리지(200)는 호스트(100)로부터 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 수신하고, 수신된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4), 상기 트랜잭션 ID, 및 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)의 식별자를 스토리지(200)의 저장 영역(430)에 라이트할 수 있다(S150).
스토리지(200)는 상기 트랜잭션 ID 및 상기 식별자에 기초하여 저장 영역(430)에 라이트된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 저장 영역(430)과 상이한 저장 영역(450)에 아토믹하게 라이트할 수 있다(S170).
도 11은 본 발명의 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 11을 참조하면, 전자 시스템(500)은 호스트(100)와 솔리드 스테이트 드라이브 (solid state drive(SSD); 200A)를 포함한다.
SSD(200A)는 호스트 인터페이스 로직(510), SSD 컨트롤러(300A), 저장 장치 (530), 및 플래시 메모리 장치들(540)을 포함한다. 저장 장치(530)는 상술한 휘발성 메모리 장치 또는 상술한 불휘발성 메모리 장치로 구현될 수 있다.
호스트 인터페이스 로직(510)은 호스트(100)와 SSD 컨트롤러(300A)가 주고받는 데이터를 인터페이스한다.
SSD 컨트롤러(300A)는 호스트 인터페이스 로직(510), 저장 장치(530), 및 플래시 메모리 장치들(540) 사이에서 주고받는 데이터를 제어한다.
SSD 컨트롤러(300A)는 프로세서(521), 버퍼 매니저(523), 및 플래시 컨트롤러(525)를 포함한다.
프로세서(521)는 SSD 컨트롤러(330A)의 동작을 전반적으로 제어한다. 예컨대, 프로세서(521)는 버퍼 매니저(523)와 플래시 컨트롤러(525)의 동작을 제어한다.
버퍼 매니저(523)는 호스트 인터페이스 로직(510)과 플래시 컨트롤러(525) 사이에서 주고받는 데이터의 버퍼링을 제어한다.
플래시 컨트롤러(525)는 플래시 메모리 장치들(540)과 버퍼 매니저(523) 사이에서 주고받는 데이터를 제어한다.
저장 영역(430)과 상이한 저장 영역(450) 각각은 플래시 메모리 장치들(540) 중에서 서로 다른 플래시 메모리 장치에 구현될 수 있다.
도 12는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 12를 참조하면, 전자 시스템(600)은 호스트(100)와 스토리지(200B)를 포함한다.
스토리지(200B)는 NVMe(NVM(non-volatile memory) Express)를 지원할 수 있는 SSD 컨트롤러(300B), 저장 장치(620), 및 불휘발성 메모리들(630)을 포함한다.
SSD 컨트롤러(300B)는 임베드된 프로세서(611), NVM 익스프레스 서브 시스템 (613), 및 NVM 메모리 컨트롤러(615)를 포함한다.
임베드된 프로세서(611)는 NVM 익스프레스 서브 시스템(613)과 NVM 메모리 컨트롤러(615)의 동작을 제어한다.
NVM 익스프레스 서브 시스템(613)은 호스트(100)로부터 출력된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 수신하고 처리한다.
NVM 익스프레스 서브 시스템(613)과 NVM 메모리 컨트롤러(615) 각각은 저장 장치(620)를 액세스할 수 있다. 저장 장치(620)는 DRAM(dynamic random access memory)과 같은 휘발성 메모리로 구현될 수 있다.
저장 영역(430)과 상이한 저장 영역(450) 각각은 불휘발성 메모리들(630) 중에서 서로 다른 불휘발성 메모리에 구현될 수 있다.
NVM 메모리 컨트롤러(615)의 제어에 따라, 저장 영역(430)에 라이트된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)를 저장 영역(430)과 상이한 저장 영역(450), 예컨대 불휘발성 메모리들(630) 중에서 적어도 하나에 아토믹하게 라이트할 수 있다.
도 13은 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 13을 참조하면, 시스템(700)은 호스트(100), 레이드(redundant array of independent disks(RAID)) 컨트롤러(710), 및 복수의 SSD들(200A 또는 200B)을 포함한다.
저장 영역(430)은 복수의 SSD들(300A 또는 300B) 중 적어도 하나에 구현될 수 있다. 저장 영역(430)에 라이트된 트랜잭션(TR1~TRk)에 관련된 아토믹 라이트 데이터(DT1-1~DT1-4 내지 DTk-1~DTk-4)는 저장 영역(430)과 상이한 저장 영역(450), 예컨대 복수의 SSD들(300A 또는 300B) 중에서 적어도 하나에 아토믹하게 라이트될 수 있다.
도 14는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 14를 참조하면, 전자 시스템(800)는 호스트(100)와 메모리 카드(200C)를 포함할 수 있다. 메모리 카드(200C)는 스마트 카드일 수 있다.
메모리 카드(200C)는 호스트(100)와 통신하는 카드 인터페이스(810), 불휘발성 메모리 장치(400), 및 카드 인터페이스(810)와 비휘발성 메모리 장치(400) 사이에서 데이터 통신을 제어하는 메모리 컨트롤러(300C)를 포함할 수 있다.
실시 예에 따라, 카드 인터페이스(810)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(810)는 호스트(100)의 프로토콜에 따라 호스트(100)와 메모리 컨트롤러(300C) 사이에서 데이터 교환을 인터페이스할 수 있다.
다른 실시 예에 따라, 카드 인터페이스(810)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트(100)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.
도 15는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 15를 참조하면, 전자 시스템(900)은 애플리케이션 웹 서버(910), 복수의 클라이언트들(920~923), 및 스토리지(200C)를 포함한다.
애플리케이션 웹 서버(910)와 복수의 클라이언트들(920~923)은 인터넷(901)을 통해 통신 네트워크를 형성한다.
애플리케이션 웹 서버(910)는 호스트(100)의 기능을 수행할 수 있고 스토리지(200C)는 스토리지(200)의 기능을 수행할 수 있다.
경우 1(CASE1)에 따라 애플리케이션 웹 서버(910)는 스토리지(200C)의 저장 영역으로 트랜잭션에 관련된 아토믹 라이트 데이터를 전송하고, 스토리지(200C)는 트랜잭션 ID와 상기 아토믹 라이트 데이터의 식별자에 기초하여 상기 저장 영역에 라이트된 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 상기 저장 영역과 상이한 스토리지(200C)의 저장 영역에 아토믹하게 라이트할 수 있다.
경우 II(CASE II)에 따라, 전자 시스템(900)은 데이터베이스 서버(930)를 더 포함할 수 있다. 이 경우, 애플리케이션 웹 서버(910)와 데이터베이스 서버(930)는 인터넷 또는 인트라넷(903)을 통해 접속될 수 있다.
이 경우, 데이터베이스 서버(930)는 호스트(100)의 기능을 수행할 수 있고 스토리지(200C)는 스토리지(200)의 기능을 수행할 수 있다. 따라서, 데이터베이스 서버(930)는 스토리지(200C)의 저장 영역으로 트랜잭션에 관련된 아토믹 라이트 데이터를 전송하고, 스토리지(200C)는 트랜잭션 ID와 상기 아토믹 라이트 데이터의 식별자에 기초하여 상기 저장 영역에 라이트된 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 상기 저장 영역과 상이한 스토리지(200C)의 저장 영역에 아토믹하게 라이트할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면, 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10, 500, 600, 700, 800, 및 900: 전자 시스템
100: 호스트
200, 200A, 200B, 및 200C: 스토리지
300: 메모리 컨트롤러
400: 메모리 장치

Claims (21)

  1. 트랜잭션별로 트랜잭션 ID(identification)를 정의하는 단계; 및
    상기 트랜잭션별로 정의된 상기 트랜잭션 ID에 기초하여, 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 스토리지로 전송하는 단계를 포함하는 호스트의 동작 방법.
  2. 제1항에 있어서, 상기 트랜잭션 ID를 정의하는 단계는,
    상기 호스트가 상기 트랜잭션별로 상기 트랜잭션 ID를 생성하는 단계를 포함하는 호스트의 동작 방법.
  3. 제2항에 있어서, 상기 트랜잭션 ID를 정의하는 단계는,
    상기 호스트가 상기 스토리지에서 허용할 수 있는 상기 트랜잭션의 최대 개수를 상기 스토리지로부터 수신하고,
    상기 트랜잭션 ID를 생성하는 단계는,
    상기 트랜잭션의 상기 최대 개수에 기초하여 상기 트랜잭션별로 상기 트랜잭션 ID를 생성하는 호스트의 동작 방법.
  4. 제2항에 있어서,
    상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터의 전송이 완료된 후에 상기 호스트가 상기 트랜잭션별로 정의된 상기 트랜잭션 ID를 상기 호스트의 트랜잭션 ID 매니저로 반환(return)하는 단계를 더 포함하는 호스트의 동작 방법.
  5. 제1항에 있어서, 상기 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계는,
    상기 호스트가 상기 트랜잭션 ID를 포함하는 애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통하여 상기 스토리지로 상기 트랜잭션의 아토믹 라이트를 요청하는 단계; 및
    상기 호스트가 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계를 포함하는 호스트의 동작 방법.
  6. 제1항에 있어서, 상기 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계는,
    상기 호스트가 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터마다 상기 트랜잭션 ID를 상기 아토믹 라이트 데이터와 함께 상기 스토리지로 전송하는 호스트의 동작 방법.
  7. 제1항에 있어서,
    상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터는 비연속적인 어드레스들에 대응하는 데이터인 호스트의 동작 방법.
  8. 제1항에 있어서, 상기 트랜잭션 ID를 정의하는 단계는,
    상기 호스트가 상기 트랜잭션별로 상기 트랜잭션 ID를 상기 스토리지로 요청하는 단계; 및
    상기 호스트가 상기 스토리지로부터 상기 요청에 따라 전송된 상기 트랜잭션 ID를 수신하는 단계를 포함하는 호스트의 동작 방법.
  9. 제8항에 있어서,
    상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터의 전송이 완료된 후에 상기 호스트가 상기 트랜잭션별로 정의된 상기 트랜잭션 ID를 상기 스토리지로 반환(return)하는 단계를 더 포함하는 호스트의 동작 방법.
  10. 제8항에 있어서, 상기 트랜잭션 ID를 상기 스토리지로 요청하는 단계는,
    상기 호스트가 애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통하여 상기 스토로지로 상기 트랜잭션 ID를 요청하는 호스트의 동작 방법.
  11. 호스트로부터 트랜잭션별로 정의된 트랜잭션 ID(identification)와 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 수신하는 단계; 및
    상기 아토믹 라이트 데이터, 상기 트랜잭션 ID, 및 상기 아토믹 라이트 데이터의 식별자(identifier)를 저장 영역에 라이트하는 단계를 포함하는 스토리지의 동작 방법.
  12. 제11항에 있어서,
    상기 트랜잭션 ID는 상기 호스트에 의해 정의되는 스토리지의 동작 방법.
  13. 제11항에 있어서,
    상기 트랜잭션 ID는 상기 스토리지에 의해 정의되는 스토리지의 동작 방법.
  14. 제11항에 있어서,
    상기 식별자는 상기 아토믹 라이트 데이터의 전송 완료 여부를 지시하는 스토리지의 동작 방법.
  15. 제11항에 있어서,
    상기 스토리지가 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터의 수신이 완료된 후에 상기 트랜잭션별로 정의된 상기 트랜잭션 ID를 반환(return)하는 단계를 더 포함하는 스토리지의 동작 방법.
  16. 제11항에 있어서,
    상기 트랜잭션 ID 및 상기 식별자에 기초하여 상기 저장 영역에 라이트된 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터를 상기 저장 영역과 상이한 저장 영역에 아토믹하게 라이트하는 단계를 더 포함하는 스토리지의 동작 방법.
  17. 제16항에 있어서,
    상기 저장 영역과 상기 상이한 저장 영역 각각은 상기 스토리지의 서로 다른 저장 장치에 구현되는 스토리지의 동작 방법.
  18. 제11항에 있어서,
    상기 스토리지는 eMMC(embedded multimedia card), UFS(universal flash storage) 또는 SSD(solid state drive)인 스토리지의 동작 방법.
  19. 호스트와 스토리지를 포함하는 시스템의 동작 방법에 있어서,
    트랜잭션별로 트랜잭션 ID(identification)를 정의하는 단계; 및
    상기 호스트가 상기 트랜잭션 ID를 이용하여 상기 트랜잭션에 관련된 아토믹 라이트 데이터를 상기 스토리지로 전송하는 단계를 포함하는 시스템의 동작 방법.
  20. 제19항에 있어서,
    상기 스토리지가 상기 아토믹 라이트 데이터, 상기 트랜잭션 ID, 및 상기 아토믹 라이트 데이터의 식별자(identifier)를 저장 영역에 라이트하는 단계를 더 포함하는 시스템의 동작 방법.
  21. 제20항에 있어서,
    상기 스토리지가 상기 트랜잭션 ID 및 상기 식별자에 기초하여 상기 저장 영역에 라이트된 상기 트랜잭션에 관련된 상기 아토믹 라이트 데이터를 상기 저장 영역과 상이한 저장 영역에 아토믹하게 라이트하는 단계를 더 포함하는 시스템의 동작 방법.
KR1020130047775A 2013-04-29 2013-04-29 멀티-트랜잭션의 아토믹 라이트 방법 KR102094475B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130047775A KR102094475B1 (ko) 2013-04-29 2013-04-29 멀티-트랜잭션의 아토믹 라이트 방법
US14/263,613 US10642531B2 (en) 2013-04-29 2014-04-28 Atomic write method for multi-transaction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130047775A KR102094475B1 (ko) 2013-04-29 2013-04-29 멀티-트랜잭션의 아토믹 라이트 방법

Publications (2)

Publication Number Publication Date
KR20140128823A true KR20140128823A (ko) 2014-11-06
KR102094475B1 KR102094475B1 (ko) 2020-03-27

Family

ID=52454607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130047775A KR102094475B1 (ko) 2013-04-29 2013-04-29 멀티-트랜잭션의 아토믹 라이트 방법

Country Status (2)

Country Link
US (1) US10642531B2 (ko)
KR (1) KR102094475B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017112164A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Techniques for a write transaction at a storage device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11605069B2 (en) * 2018-09-27 2023-03-14 Coinbase, Inc. Method and system for assisting transactions
KR20220124905A (ko) 2021-03-04 2022-09-14 삼성전자주식회사 메모리 저장 장치, 메모리 저장 장치의 구동 방법 및 호스트 장치의 구동 방법
US11733924B1 (en) * 2021-08-03 2023-08-22 Kioxia Corporation Method for discarding garbage collection data during power loss

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100245807B1 (ko) * 1996-10-18 2000-03-02 윤종용 채널 태깅을 지니는 dma 컨트롤러
JP2001243209A (ja) * 2000-03-01 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> 分散共有メモリシステム及び分散共有メモリシステム制御方法
JP2002132554A (ja) * 2000-10-25 2002-05-10 Hitachi Ltd データベースアクセス方法
KR20110097937A (ko) * 2008-12-17 2011-08-31 샌디스크 아이엘 엘티디 내구성 강화 메모리 디바이스
WO2013041852A2 (en) * 2011-09-19 2013-03-28 Cloudtran, Inc. Scalable distributed transaction processing system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101044A (ja) 1999-09-29 2001-04-13 Toshiba Corp トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム
KR100809319B1 (ko) 2006-09-13 2008-03-05 삼성전자주식회사 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법
US8266391B2 (en) 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
US7941411B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Memory transaction grouping
KR101543431B1 (ko) 2008-11-20 2015-08-11 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 액세스 방법
US8321645B2 (en) 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
JP2011113619A (ja) 2009-11-27 2011-06-09 Toshiba Corp Nand型フラッシュメモリ
US8095824B2 (en) 2009-12-15 2012-01-10 Intel Corporation Performing mode switching in an unbounded transactional memory (UTM) system
US8316194B2 (en) 2009-12-15 2012-11-20 Intel Corporation Mechanisms to accelerate transactions using buffered stores
US9235532B2 (en) 2011-06-03 2016-01-12 Apple Inc. Secure storage of full disk encryption keys
US8620865B2 (en) 2011-06-24 2013-12-31 Netapp, Inc. System and method for providing a unified storage system that supports file/object duality
JP2013033345A (ja) 2011-08-01 2013-02-14 Internatl Business Mach Corp <Ibm> トランザクション処理システム、方法及びプログラム
US9015436B2 (en) 2011-08-22 2015-04-21 Intel Corporation Performing an atomic operation without quiescing an interconnect structure
US20150019792A1 (en) * 2012-01-23 2015-01-15 The Regents Of The University Of California System and method for implementing transactions using storage device support for atomic updates and flexible interface for managing data logging
US8898109B2 (en) * 2012-07-27 2014-11-25 Microsoft Corporation Automatic transaction retry after session failure
US9170938B1 (en) * 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100245807B1 (ko) * 1996-10-18 2000-03-02 윤종용 채널 태깅을 지니는 dma 컨트롤러
JP2001243209A (ja) * 2000-03-01 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> 分散共有メモリシステム及び分散共有メモリシステム制御方法
JP2002132554A (ja) * 2000-10-25 2002-05-10 Hitachi Ltd データベースアクセス方法
KR20110097937A (ko) * 2008-12-17 2011-08-31 샌디스크 아이엘 엘티디 내구성 강화 메모리 디바이스
WO2013041852A2 (en) * 2011-09-19 2013-03-28 Cloudtran, Inc. Scalable distributed transaction processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017112164A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Techniques for a write transaction at a storage device
CN108292280A (zh) * 2015-12-23 2018-07-17 英特尔公司 用于存储设备处的写入交易的技术

Also Published As

Publication number Publication date
US10642531B2 (en) 2020-05-05
US20190227740A1 (en) 2019-07-25
KR102094475B1 (ko) 2020-03-27

Similar Documents

Publication Publication Date Title
US10860508B2 (en) Offloaded disaggregated storage architecture
CN108804023B (zh) 数据存储装置及其操作方法
US10013307B1 (en) Systems and methods for data storage devices to use external resources
TWI521425B (zh) 用於重複資料刪除之系統與方法
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
KR20180091296A (ko) 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US20150074371A1 (en) Storage array system and non-transitory recording medium storing control program
KR20140113211A (ko) 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법
US11269765B2 (en) Operating method of controller and memory system
US11294597B2 (en) Apparatus and method for transferring internal data of memory system in sleep mode
US20140325126A1 (en) Data storage device performing atomic write and related method of operation
KR20200113992A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
KR20210001508A (ko) 메모리 시스템의 MLC(Multi Level Cell)영역에 데이터를 안전하게 저장하기 위한 장치 및 그 방법
KR20190090268A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US20140325168A1 (en) Management of stored data based on corresponding attribute data
KR102507302B1 (ko) 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US11875036B2 (en) Computing system including host and storage system and having increased write performance
KR102094475B1 (ko) 멀티-트랜잭션의 아토믹 라이트 방법
KR20140128819A (ko) 아토믹 라이트 방법
KR20200114086A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US11144380B2 (en) Memory controller and storage device including the same
US11281381B2 (en) Storage node of distributed storage system and method of operating the same
CN115048042A (zh) 启用针对持久性存储器的存储器存取事务
CN114510372A (zh) 储存装置及其操作方法
KR20220086934A (ko) 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법

Legal Events

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