KR20110003728A - 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치 - Google Patents

데이터 조작 방법 및 그 방법을 이용하는 시스템 장치 Download PDF

Info

Publication number
KR20110003728A
KR20110003728A KR20090061145A KR20090061145A KR20110003728A KR 20110003728 A KR20110003728 A KR 20110003728A KR 20090061145 A KR20090061145 A KR 20090061145A KR 20090061145 A KR20090061145 A KR 20090061145A KR 20110003728 A KR20110003728 A KR 20110003728A
Authority
KR
South Korea
Prior art keywords
block address
logical block
data
information
stored
Prior art date
Application number
KR20090061145A
Other languages
English (en)
Other versions
KR101594029B1 (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 KR1020090061145A priority Critical patent/KR101594029B1/ko
Priority to US12/815,445 priority patent/US8489852B2/en
Publication of KR20110003728A publication Critical patent/KR20110003728A/ko
Priority to US13/921,341 priority patent/US9015445B2/en
Application granted granted Critical
Publication of KR101594029B1 publication Critical patent/KR101594029B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

데이터 조작 방법 및 그 방법을 이용하는 시스템 장치가 개시된다. 데이터 조작 방법은 제 1 논리 블록 어드레스에 대응하는 데이터를 제 2 논리 블록 어드레스에 대응시키기 위한 데이터 조작 명령을 수신하는 단계 및 상기 데이터 조작 명령에 응답하여 상기 제 1 논리 블록 어드레스와 맵핑되어 있는 물리 블록 어드레스에 상기 제 2 논리 블록 어드레스를 맵핑하는 단계를 구비할 수 있다.

Description

데이터 조작 방법 및 그 방법을 이용하는 시스템 장치{Method and system for manipulating data}
본 발명은 데이터 조작 방법 및 시스템 장치에 관한 것으로, 특히 호스트와 저장 장치 사이의 데이터 송수신 동작 없이 데이터 조작 명령을 수행하는 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치에 관한 것이다.
일반적으로 컴퓨터 시스템, 즉 시스템 장치는 하나 이상의 저장 장치를 포함한다. 호스트는 상기 저장 장치에 저장되어 있는 데이터를 조작하기 위한 데이터 조작 명령을 송신한다.
도 1은 종래 기술에 따른 데이터 조작 방법을 수행하는 경우 신호의 흐름을 도시한 도면이다.
이하에서는 도 1을 참조하여 종래 기술에 따라 저장 장치(140)에 저장되어 있는 소정의 데이터를 저장 장치(140) 내의 다른 위치로 복사하기 위한 복사 명령을 수행하는 경우에 대하여 설명한다. 종래의 경우에는 상기 복사 명령을 수행하기 위하여 저장 장치(140)와 호스트(110) 사이의 데이터 송수신 동작이 필요하였다. 즉, 상기 복사 명령을 수행하고자 하는 경우 호스트(110)는 복사하고자 하는 데이 터를 리드하기 위한 리드 명령(RD)을 송신한다. 리드 명령(RD)은 인터페이스(120) 및 버퍼(130)를 통하여 저장 장치(140)로 전송되고, 저장 장치(140)에 저장되어 있는 데이터가 리드된다. 리드된 데이터(DATA)는 버퍼(130) 및 인터페이스(120)를 통하여 호스트(110)로 전송된다. 호스트(110)는 데이터(DATA)를 원하는 위치에 복사하기 위하여 라이트 명령(WR) 및 데이터(DATA)를 송신한다. 라이트 명령(WR) 및 데이터(DATA)는 인터페이스(120) 및 버퍼(130)를 통하여 저장 장치(140)로 전송되고, 데이터(DATA)는 저장 장치(140)의 복사하고자 하는 위치에 저장된다. 즉, 종래에는 복사하고자 하는 데이터를 리드한 후 라이트함으로서 복사 동작을 수행하였다.
본 발명이 해결하고자 하는 과제는 호스트와 저장 장치 사이의 데이터 송수신 동작 없이 데이터 조작 명령을 수행하는 데이터 조작 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 다른 과제는 상기 데이터 조작 방법을 이용하는 시스템 장치를 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시예에 따른 데이터 조작 방법은 제 1 논리 블록 어드레스에 대응하는 데이터를 제 2 논리 블록 어드레스에 대응시키기 위한 데이터 조작 명령을 수신하는 단계 및 상기 데이터 조작 명령에 응답하여 상기 제 1 논리 블록 어드레스와 맵핑되어 있는 물리 블록 어드레스에 상기 제 2 논리 블록 어드레스를 맵핑하는 단계를 구비할 수 있다.
상기 데이터 조작 방법은 상기 제 1 논리 블록 어드레스와 상기 물리 블록 어드레스의 맵핑 정보가 중복 맵핑 테이블에 저장되어 있는지 판단하는 단계, 상기 판단 결과 상기 맵핑 정보가 저장되어 있는 경우, 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에 상기 제 2 논리 블록 어드레스 정보를 추가하는 단계 및 상기 판단 결과 상기 맵핑 정보가 저장되어 있지 않은 경우, 상기 물리 블록 어드레스 정보를 상기 중복 맵핑 테이블에 저장하고 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에 상기 제 1 및 제 2 논리 블록 어드레스 정보를 저장하는 단계를 구비할 수 있다.
상기 데이터 조작 방법은 상기 제 1 및 제 2 논리 블록 어드레스 중 소정의 논리 블록 어드레스에 대응하는 데이터의 전부 또는 일부를 수정하기 위한 명령을 수신한 경우, 상기 소정의 논리 블록 어드레스 정보를 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에서 삭제하는 단계 및 상기 소정의 논리 블록 어드레스를 다른 물리 블록 어드레스에 맵핑하는 단계를 더 구비할 수 있다.
상기 데이터 조작 방법은 상기 제 1 및 제 2 논리 블록 어드레스 중 소정의 논리 블록 어드레스에 대응하는 데이터의 전부 또는 일부를 수정하기 위한 명령을 수신한 경우, 상기 소정의 논리 블록 어드레스를 다른 물리 블록 어드레스에 맵핑하는 단계를 더 구비할 수 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시예에 따른 시스템 장치는 제 1 논리 블록 어드레스에 대응하는 데이터를 제 2 논리 블록 어드레스에 대응시키기 위한 데이터 조작 명령을 송신하는 호스트 및 상기 데이터 조작 명령에 응답하여 상기 제 1 논리 블록 어드레스와 맵핑되어 있는 물리 블록 어드레스에 상기 제 2 논리 블록 어드레스를 맵핑하는 플래시 변환 계층을 구비할 수 있다.
상기 시스템 장치는 노말 맵핑 테이블 및 중복 맵핑 테이블이 저장되는 메모리를 더 구비하고, 상기 노말 맵핑 테이블에는 각각의 논리 블록 어드레스와 각각의 물리 블록 어드레스의 맵핑 정보가 저장되고, 상기 중복 맵핑 테이블에는 소정의 물리 블록 어드레스에 복수의 논리 블록 어드레스가 맵핑되는 경우 상기 소정의 물리 블록 어드레스 정보 및 상기 복수의 논리 블록 어드레스 정보를 포함하는 논리 블록 어드레스 리스트가 저장될 수 있다.
본 발명에 따른 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치는 저장 매체 내부의 캐시 히트 비율을 높이고 저장 매체의 메모리 용량 활용도를 높일 수 있다. 또한, 데이터 조작 명령에 대하여 호스트와 저장 장치 사이의 데이터 송수신 작업을 수행하지 않기 때문에, 호스트와의 통신 시간이 절약되고 저장 매체의 전력 소모도 줄어드는 장점이 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 시스템 장치(200)의 블록도이다.
도 2를 참조하면, 시스템 장치(200)는 호스트(210), 제어부(220), 제 1 메모리(230), 제 2 메모리(240) 및 저장 장치(250)를 포함할 수 있다.
호스트(210)는 소정의 명령, 예를 들어 데이터 조작 명령(COM)을 송신한다. 데이터 조작 명령(COM)은 소정의 논리 블록 어드레스에 대응하는 데이터를 다른 논리 블록 어드레스에 대응되도록 복사하기 위한 복사 명령 또는 소정의 논리 블록 어드레스에 대응하는 데이터를 다른 논리 블록 어드레스에 대응되도록 이동하기 위 한 이동 명령일 수 있다. 다만, 본 발명의 데이터 조작 명령(COM)이 상기 복사 명령 또는 상기 이동 명령인 경우로 한정되는 것은 아니며 데이터의 내용에 대한 변경없이 어드레스만을 변경하는 명령인 경우에는 모두 본 발명의 일 실시예에 따라 데이터를 조작할 수 있다.
제어부(220)는 CPU(221), 제 1 인터페이스(223), 버퍼 관리부(225) 및 제 2 인터페이스(227)를 포함할 수 있다. CPU(221)는 제 1 인터페이스(223), 버퍼 관리부(225) 및 제 2 인터페이스(227)를 관장할 수 있다. 제 1 인터페이스(223)는 호스트와 명령 또는 데이터를 송수신할 수 있으며, 호스트 인터페이스라고도 한다. 버퍼 관리부(225)는 제 1 메모리(230)를 관리할 수 있다. 제 2 인터페이스(227)는 저장 장치(250)와 명령 또는 데이터를 송수신할 수 있으며 플래시 인터페이스라고도 한다.
제 1 메모리(230)는 저장 장치(250)에서 리드된 데이터 또는 라이트할 데이터를 버퍼링할 수 있다. 도 2에서는 제 1 메모리(230)가 DRAM(Dynamic Random Access Memory)인 경우에 대하여 도시하고 있으나 본 발명이 이 경우로 한정되는 것은 아니다. 제 2 메모리(240)에서는 펌웨어가 동작할 수 있다. 도 2에서는 제 2 메모리(240)가 SRAM(Static Random Access Memory)인 경우에 대하여 도시하고 있으나 본 발명이 이 경우로 한정되는 것은 아니다. 상기 펌웨어에 관하여는 도 3에서 보다 상세하게 설명한다.
저장 장치(250)에는 데이터가 저장될 수 있다. 저장 장치(250)는 각각 대응하는 채널(CH_1, CH_2, ... , CH_n)을 통하여 데이터를 송수신하는 복수의 메모리 장치(ME_11, ME_12, ...)를 포함할 수 있다. 예를 들어, 복수의 메모리 장치들(ME_11, ME_12, ... , ME_1m)은 채널(CH_1)을 통하여 데이터를 송수신할 수 있고, 복수의 메모리 장치들(ME_21, ME_22, ... , ME_2m)은 채널(CH_2)을 통하여 데이터를 송수신할 수 있다. 메모리 장치의 개수와 채널의 개수는 필요에 따라 적절한 개수를 선택할 수 있다. 저장 장치(250)는 비휘발성 메모리 장치일 수 있다.
도 3은 펌웨어(300)의 구성을 도시한 도면이다.
도 2 및 도 3을 참조하면, 펌웨어(300)는 호스트 인터페이스 계층(HIL ; Host Interface Layer), 데이터 캐쉬 계층(DCL ; Data Catch Layer), 플래시 변환 계층(FTL ; Flash Translation Layer), 가상 플래시 계층(VFL ; Virtual Flash Layer) 및 플래시 인터페이스 계층(FIL ; Flash Interface Layer)으로 구성될 수 있다.
호스트(210)에서 송신된 명령이 제 1 인터페이스(223)로 수신되면 제 1 인터페이스(223)는 명령을 디코딩하여 레지스터에 기록한다. 호스트 인터페이스 계층(HIL)은 상기 레지스터에 기록된 정보를 폴링(polling) 또는 인터럽트(interrupt) 방식으로 전달받고, 수신된 명령이 프로토콜에 적합한 것인지 파악한다. 데이터 캐시 계층(DCL)은 제 1 메모리(230)에서 리드된 데이터 또는 라이트할 데이터를 적절하게 버퍼링하도록 한다. 플래시 변환 계층(FTL)은 호스트(210)에서 전송된 논리 블록 어드레스(LBA ; Logical Block Address)를 저장 장치(250)의 물리적인 위치인 물리 블록 어드레스(PBA ; Physical Block Address)에 맵핑한다. 가상 플래시 계층(VFL)은 저장 장치(250)의 불량 블록(bad block) 정보를 관리한 다. 플래시 인터페이스 계층(FIL)은 제 2 인터페이스(227)를 관장한다.
도 4는 본 발명의 일 실시예에 따른 데이터 조작 방법의 흐름도이다.
도 2 내지 도 4를 참조하면, 호스트(210)는 데이터 조작 명령(COM)을 송신한다. 앞서 설명한 것과 같이 데이터 조작 명령(COM)은 데이터의 내용에 대한 변경없이 어드레스만을 변경하기 위한 명령으로서, 예를 들어 복사 명령 또는 이동 명령일 수 있다.
호스트(210)에서 송신한 데이터 조작 명령(COM)은 제 1 인터페이스(223)에서 수신한다(S410). 제 1 인터페이스(223)에서 데이터 조작 명령(COM)을 수신하면, 플래시 변환 계층(FTL)은 데이터 조작 명령(COM)에 응답하여 상기 제 1 논리 블록 어드레스와 맵핑되어 있는 물리 블록 어드레스에 제 2 논리 블록 어드레스를 맵핑한다(S420). 다만, S420 단계를 수행하는 것이 반드시 플래시 변환 계층(FTL)에서만 수행할 수 있는 것은 아니며, 논리 블록 어드레스와 물리 블록 어드레스를 맵핑하는 동작을 수행할 수 있다면 다른 구성요소가 수행할 수도 있다. S420 단계를 수행한 결과 상기 물리 블록 어드레스는 상기 제 1 논리 블록 어드레스 및 제 2 논리 블록 어드레스와 모두 맵핑된 상태가 된다. 즉, 본 발명의 일 실시예에 따를 경우 하나의 물리 블록 어드레스에 복수의 논리 블록 어드레스가 맵핑될 수 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 조작 방법을 수행하는 경우 신호의 흐름을 도시한 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에 따를 경우 저장 장치(540)에서 데이터를 리드하거나 저장 장치(540)에 데이터를 라이트하지 않으므로 저장 장 치(540)와 호스트(510) 사이에서 데이터가 송수신되지 않는다. 즉, 본 발명의 일 실시예에 따를 경우 종래 기술인 도 1에 비하여 저장 장치(540)에서의 데이터 리드 시간, 저장 장치(540)로의 데이터 라이트 시간 및 저장 장치(540)와 호스트(510) 사이의 데이터 송수신 시간을 필요로 하지 않는다.
도 6은 본 발명의 다른 일 실시예에 따른 데이터 조작 방법의 흐름도이다.
도 7a는 종래 기술에 따른 노말 맵핑 테이블을 도시한 도면이고, 도 7b는 도 6의 S620 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이며, 도 7c는 도 6의 S640 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이다.
도 2, 도 3 및 도 6 내지 도 7(c)를 참조하면, 호스트(210)는 데이터 조작 명령(COM)을 송신한다. 앞서 설명한 것과 같이 데이터 조작 명령(COM)은 데이터의 내용에 대한 변경없이 어드레스만을 변경하는 명령으로서, 예를 들어 복사 명령 또는 이동 명령일 수 있다.
제 1 인터페이스(223)는 호스트(210)에서 송신한 데이터 조작 명령(COM)을 수신한다(S610). 제 1 인터페이스(223)에서 데이터 조작 명령(COM)을 수신하면, 플래시 변환 계층(FTL)은 데이터 조작 명령(COM)에 응답하여 상기 제 1 논리 블록 어드레스에 맵핑되어 있는 물리 블록 어드레스 정보 및 상기 제 2 논리 블록 어드레스 정보를 노말 맵핑 테이블에 저장한다(S620). 상기 노말 맵핑 테이블은 도 2의 제 2 메모리(240)에 저장될 수 있다. 다만, 본 발명의 일 실시예에 따를 경우 상기 노말 맵핑 테이블이 반드시 제 2 메모리(240)에 저장되어야 하는 것은 아니며, 플래시 변환 계층(FTL)에서 상기 노말 맵핑 테이블을 관리할 수 있다면 다른 메모리 에 저장될 수 있다.
데이터 조작 명령(COM)이 수신되기 전에 상기 제 1 논리 블록 어드레스와 상기 물리 블록 어드레스는 맵핑된 상태이므로, 데이터 조작 명령(COM)이 수신되기 전에 상기 노말 맵핑 테이블에는 상기 제 1 논리 블록 어드레스와 상기 물리 블록 어드레스의 맵핑 정보가 저장되어 있다. 이후에 S610 단계에서 데이터 조작 명령(COM)이 수신되면, S620 단계에서 상기 물리 블록 어드레스와 상기 제 2 논리 블록 어드레스의 맵핑 정보가 상기 노말 맵핑 테이블에 저장된다. 다만, S620 단계를 수행하는 것이 반드시 플래시 변환 계층(FTL)에서만 수행할 수 있는 것이 아님은 앞서 설명한 것과 같다.
S620 단계를 수행한 결과 상기 노말 맵핑 테이블은 도 7(b)와 같이 될 수 있다. 도 7(b)는 제 1 논리 블록 어드레스 및 제 2 논리 블록 어드레스는 물리 블록 어드레스(A)에 맵핑된 상태를 도시하고 있다. 즉, 종래의 경우에는 도 7(a)와 같이 각각의 논리 블록 어드레스는 각각의 물리 블록 어드레스와 1:1로 맵핑되었으나, 본 발명의 일 실시예에 따를 경우 복수의 논리 블록 어드레스가 하나의 물리 블록 어드레스에 맵핑될 수 있다.
S630 단계 및 S640 단계는 복수의 논리 블록 어드레스와 하나의 물리 블록 어드레스가 맵핑된 이후, 상기 복수의 논리 블록 어드레스들 중 하나의 논리 블록 어드레스에 대응하는 데이터의 일부 또는 전부를 수정하라는 명령이 수신된 경우에 대한 것이다.
S620 단계까지 수행한 이후에, 상기 제 1 논리 블록 어드레스에 대응하는 데 이터의 일부 또는 전부를 수정하라는 수정 명령이 수신된 경우(S630), 제 1 논리 블록 어드레스를 다른 물리 블록 어드레스에 맵핑한다(S640). 도 7(c)를 참조하면, 상기 제 1 논리 블록 어드레스에 대응하는 데이터를 수정하기 위하여 제 1 논리 블록 어드레스를 물리 블록 어드레스(A)가 아닌 물리 블록 어드레스(N)에 다시 맵핑한다.
이상과 같은 동작은 저장 장치(250)에 데이터를 덮어쓸 수 없는 경우에 가능하다. 즉, 저장 장치(250)에 데이터를 덮어쓸 수 없는 경우 데이터의 일부 또는 전부를 수정하기 위해는 새로운 물리 블록 어드레스를 할당하여야 하므로, 수정된 데이터가 저장되는 새로운 물리 블록 어드레스와 수정된 데이터에 대응하는 논리 블록 어드레스를 다시 맵핑하면 된다.
도 8은 본 발명의 다른 일 실시예에 따른 데이터 조작 방법의 흐름도이다.
도 9a는 도 8의 S820 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이며, 도 9b는 도 8의 S840 단계 또는 S850 단계를 수행한 이후의 중복 맵핑 테이블을 도시한 도면이다. 도 9c는 도 8의 S870 단계를 수행한 이후의 중복 맵핑 테이블을 도시한 도면이고, 도 9d는 도 8의 S870 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이다.
이하에서는 저장 장치(250)에 데이터를 덮어쓸 수 있는 경우를 가정하여 설명한다. S810 단계 및 S820 단계는 도 6의 S610 단계 및 S620 단계와 동일하므로 이하에서 상세한 설명은 생략한다.
도 2, 도 3, 도 6 및 도 8 내지 도 9(d)를 참조하면, S820 단계를 수행한 결 과 상기 노말 맵핑 테이블은 도 9(a)와 같이 될 수 있다. 도 9(a)를 참조하면, 제 1 논리 블록 어드레스 내지 제 3 논리 블록 어드레스는 물리 블록 어드레스(A)에 맵핑되어 있고, 제 4 논리 블록 어드레스 및 제 5 논리 블록 어드레스는 물리 블록 어드레스(B)에 맵핑되어 있다. 또한, 제 6 논리 블록 어드레스는 물리 블록 어드레스(C)에 맵핑되어 있고, 제 7 논리 블록 어드레스는 물리 블록 어드레스(D)에 맵핑되어 있다.
도 8의 경우에는 제 2 메모리(240)에 상기 노말 맵핑 테이블과 함께 중복 맵핑 테이블도 저장될 수 있다. 다만, 상기 노말 맵핑 테이블의 경우와 마찬가지로 상기 중복 맵핑 테이블이 반드시 제 2 메모리(240)에 저장되어야 하는 것은 아니다. S820 단계 이후, 제 1 논리 블록 어드레스 정보 및 상기 물리 블록 어드레스 정보가 상기 중복 맵핑 테이블에 저장되어 있는 지를 판단한다(S850). 상기 판단 결과 상기 정보가 상기 중복 맵핑 테이블에 저장되어 있지 않으면, 상기 물리 블록 어드레스 정보를 상기 중복 맵핑 테이블에 저장하고 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에 제 1 및 제 2 논리 어드레스 정보를 저장한다(S840). 상기 판단 결과 상기 정보가 상기 중복 맵핑 테이블에 저장되어 있으면, 상기 물리 블록 어드레스에 대응하는 논리 어드레스 리스트에 제 2 논리 블록 어드레스 정보를 추가한다(S850).
예를 들어, 도 9(a)의 실시예에서, 제 4 논리 블록 어드레스와 물리 블록 어드레스(B)만이 맵핑되어 있는 상태를 가정한다. 이 경우 하나의 물리 블록 어드레스에 복수의 논리 블록 어드레스가 맵핑된 상태가 아니므로 제 4 논리 블록 어드레 스 정보 및 물리 블록 어드레스(B) 정보는 상기 중복 맵핑 테이블에 저장되지 않는다. 이후에 제 4 논리 블록 어드레스에 대응하는 데이터를 제 5 논리 블록 어드레스에 대응시키기 위한 데이터 조작 명령을 수신되었다고 가정하자.
이 경우, 제 5 논리 블록 어드레스는 물리 블록 어드레스(B)에 맵핑되므로 도 9(a)와 같이 상기 제 5 논리 블록 어드레스와 물리 블록 어드레스(B)의 맵핑 정보가 상기 노말 맵핑 테이블에 저장된다. 제 4 논리 블록 어드레스 정보 및 물리 블록 어드레스(B) 정보는 중복 맵핑 테이블에 저장되어 있지 않은 상태이므로, S840 단계가 적용되어 도 9(b)와 같이 물리 블록 어드레스(B)의 정보가 중복 맵핑 테이블에 저장된다. 또한, S840 단계가 적용되어 물리 블록 어드레스(B)에 대응하는 논리 블록 어드레스 리스트에 제 4 및 제 5 논리 블록 어드레스 정보가 저장된다.
다른 예로서, 도 9(a)의 실시예에서, 제 1 및 제 2 논리 블록 어드레스와 물리 블록 어드레스(A)가 맵핑되어 있고 제 3 논리 블록 어드레스와 물리 블록 어드레스(A)는 맵핑되어 있지 않은 상태를 가정한다. 이 경우 하나의 물리 블록 어드레스에 복수의 논리 블록 어드레스가 맵핑된 상태이므로 물리 블록 어드레스(A) 정보 및 제 1 및 제 2 논리 블록 어드레스 정보를 포함하는 논리 블록 어드레스 리스트가 중복 맵핑 테이블에 저장되어 있다. 이후에 제 1 논리 블록 어드레스에 대응하는 데이터를 제 3 논리 블록 어드레스에 대응시키기 위한 데이터 조작 명령을 수신되었다고 가정하자. 이 경우, 제 3 논리 블록 어드레스는 물리 블록 어드레스(A)에 맵핑되므로 도 9(a)와 같이 상기 제 3 논리 블록 어드레스와 물리 블록 어드레 스(A)의 맵핑 정보가 상기 노말 맵핑 테이블에 저장된다. 제 1 논리 블록 어드레스 정보 및 물리 블록 어드레스(A) 정보는 중복 맵핑 테이블에 저장되어 있는 상태이므로, S850 단계가 적용되어 물리 블록 어드레스(A)에 대응하는 논리 블록 어드레스 리스트에 제 3 논리 블록 어드레스 정보가 추가된다. 즉, 도 9(b)와 같이 물리 블록 어드레스(A)에 대응하는 논리 블록 어드레스 리스트에는 제 1 내지 제 3 논리 블록 어드레스 정보가 저장된 상태가 된다.
S860 단계 내지 S890 단계는 복수의 논리 블록 어드레스와 하나의 물리 블록 어드레스가 맵핑된 이후, 상기 복수의 논리 블록 어드레스들 중 하나의 논리 블록 어드레스에 대응하는 데이터의 일부 또는 전부를 수정하라는 명령이 수신된 경우에 대한 것이다.
S840 단계 또는 S850 단계까지 수행한 이후에, 상기 제 1 논리 블록 어드레스에 대응하는 데이터의 일부 또는 전부를 수정하라는 수정 명령이 수신된 경우(S860), 상기 제 1 논리 블록 어드레스 정보가 상기 중복 맵핑 테이블에 존재하는지 판단한다(S870). S870 단계의 판단 결과 상기 제 1 논리 블록 어드레스 정보가 상기 중복 맵핑 테이블에 존재하는 경우, 상기 중복 맵핑 테이블에 저장되어 있는 상기 논리 어드레스 리스트에서 제 1 논리 블록 어드레스를 삭제하고 제 1 논리 블록 어드레스를 다른 물리 블록 어드레스에 맵핑한다(S880).
예를 들어, 상기 중복 맵핑 테이블이 도 9(b)와 같은 상태에서 제 1 논리 블록 어드레스에 대응하는 데이터를 수정하라는 수정 명령이 수신된 경우, 상기 제 1 논리 블록 어드레스와 맵핑된 물리 블록 어드레스(A)에 대응하는 논리 어드레스 리 스트에서 제 1 논리 블록 어드레스를 삭제한다. 그러므로, 도 9(c)와 같이 물리 블록 어드레스(A)에 대응하는 논리 블록 어드레스 리스트에는 제 2 및 제 3 논리 블록 어드레스 정보만이 저장된 상태가 된다. 상기 노말 멥핑 테이블이 도 9(a)와 같은 상태에서 상기 수정 명령이 수신된 경우, 상기 제 1 논리 블록 어드레스에 대응하는 데이터를 수정하여 물리 블록 어드레스(M)에 저장하고 상기 제 1 논리 블록 어드레스를 물리 블록 어드레스(M)에 다시 맵핑하므로 상기 노말 맵핑 테이블은 도 9(d)의 상태가 된다.
S870 단계의 판단 결과 상기 제 1 논리 블록 어드레스 정보가 상기 중복 맵핑 테이블에 존재하지 않는 경우, 수정된 데이터를 새로운 물리 블록 어드레스에 저장할 필요가 없으므로 새로운 어드레스 맵핑을 할 필요는 없다.
예를 들어, 상기 중복 맵핑 테이블이 도 9(b)와 같은 상태에서 제 6 논리 블록 어드레스에 대응하는 데이터를 수정하라는 수정 명령이 수신된 경우, 새로운 어드레스 맵핑을 할 필요없이 상기 제 6 논리 블록 어드레스와 맵핑되어 있는 물리 블록 어드레스(C)의 데이터를 수정하면 된다.
도 10은 도 2의 데이터 조작 명령(COM)의 일 실시예를 도시한 도면이다.
도 10을 참조하면, 데이터 조작 명령(COM)은 소스 논리 블록 어드레스(SOURCE LBA), 목표 논리 블록 어드레스(TARGET LBA) 및 데이터 크기 정보(sector count)를 포함할 수 있다. 예를 들어, 데이터 조작 명령(COM)이 제 1 논리 블록 어드레스에 대응하는 데이터를 제 2 논리 블록 어드레스에 대응되도록 복사하라는 명령인 경우, 상기 소스 논리 블록 어드레스는 상기 제 1 논리 블록 어드 레스이고 상기 목표 논리 블록 어드레스는 상기 제 2 논리 블록 어드레스가 된다. 다만, 도 10은 데이터 조작 명령(COM)의 일 실시예를 도시한 것으로서 본 발명의 데이터 조작 명령(COM)이 도 10의 경우로 한정되는 것은 아니며, 데이터 조작 명령(COM)이 다른 구성을 가지는 경우에는 본 발명과 동일한 효과를 얻을 수 있다면 본 발명의 권리범위에 포함된다.
도 11은 도 2의 데이터 조작 명령(COM)의 다른 일 실시예를 도시한 도면이다.
도 11은 ATA8-ACS(Advanced Technology Attachment 8 - ATA/ATAPI Command Set)의 SCT(Smart Command Transport)를 활용하여 데이터 조작 명령(COM)을 구성하는 경우에 대하여 도시하고 있다. 도 11을 참조하면, 동작 코드(ACTION CODE) 및 기능 코드(FUNCTION CODE)는 데이터 조작 명령(COM)의 종류, 예를 들어 복사 명령인지 이동 명령인지를 결정한다. 소스 논리 블록 어드레스(SOURCE LBA), 목표 논리 블록 어드레스(TARGET LBA) 및 데이터 크기 정보(sector count)는 도 10에서 설명한 것과 동일하므로 이하에서 상세한 설명은 생략한다. 다만, 도 10의 경우와 마찬가지로 도 11은 데이터 조작 명령(COM)의 다른 일 실시예를 도시한 것으로서 본 발명의 데이터 조작 명령(COM)이 도 11의 경우로 한정되는 것은 아니다.
도 12는 종래기술에 따를 경우 상기 데이터 조작 명령을 수행하는데 소요되는 시간을 도시한 도면이다.
도 1 및 도 12를 참조하면, 앞서 설명한 것과 같이 종래 기술의 경우에는 데이터의 복사 또는 이동 등을 하기 위한 데이터 조작 명령을 수행하는 경우 데이터 의 리드 및 라이트 동작을 수행하여야 한다. 상기 리드 동작을 수행하는 경우 리드 명령(RD)이 수신되는 시간(READ), 저장 장치(140)에서 리드 명령(RD)이 수행되는 시간(tR) 및 저장 장치(140)와 버퍼(130) 사이에서 리드된 데이터(DATA)의 액세스 시간(tDMA)이 소요된다. 또한, 상기 라이트 동작을 수행하는 경우 라이트 명령(WR)및 라이트할 데이터(DATA)가 수신되는 시간(WRITE), 저장 장치(140)에서 라이트 명령(WR)이 수행되는 시간(tPROG) 및 정상적으로 라이트가 되었는지 확인하는 시간(STS)이 소요된다. 종래의 경우에는 상기 데이터 조작 명령을 수행하는 경우 상기 리드 동작 및 상기 라이트 동작을 수행하여야 하므로 도 12와 같이 시간들이 소요되었다. 그러나, 본 발명의 일 실시예에 따라 상기 데이터 조작 명령을 수행하는 경우, 상기 리드 동작 및 상기 라이트 동작을 수행하지 않아도 되므로 종래에 비하여 도 12와 같이 시간들이 필요없게 된다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래 기술에 따른 데이터 조작 방법을 수행하는 경우 신호의 흐름을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 시스템 장치의 블록도이다.
도 3은 펌웨어의 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 조작 방법의 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 조작 방법을 수행하는 경우 신호의 흐름을 도시한 도면이다.
도 6은 본 발명의 다른 일 실시예에 따른 데이터 조작 방법의 흐름도이다.
도 7a는 종래 기술에 따른 노말 맵핑 테이블을 도시한 도면이다.
도 7b는 도 6의 S620 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이다.
도 7c는 도 6의 S640 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이다.
도 8은 본 발명의 다른 일 실시예에 따른 데이터 조작 방법의 흐름도이다.
도 9a는 도 8의 S820 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이다.
도 9b는 도 8의 S840 단계 또는 S850 단계를 수행한 이후의 중복 맵핑 테이 블을 도시한 도면이다.
도 9c는 도 8의 S870 단계를 수행한 이후의 중복 맵핑 테이블을 도시한 도면이다.
도 9d는 도 8의 S870 단계를 수행한 이후의 노말 맵핑 테이블을 도시한 도면이다.
도 10은 도 2의 데이터 조작 명령(COM)의 일 실시예를 도시한 도면이다.
도 11은 도 2의 데이터 조작 명령(COM)의 다른 일 실시예를 도시한 도면이다.
도 12는 종래기술에 따를 경우 상기 데이터 조작 명령을 수행하는데 소요되는 시간을 도시한 도면이다.

Claims (11)

  1. 제 1 논리 블록 어드레스에 대응하는 데이터를 제 2 논리 블록 어드레스에 대응시키기 위한 데이터 조작 명령을 수신하는 단계; 및
    상기 데이터 조작 명령에 응답하여 상기 제 1 논리 블록 어드레스와 맵핑되어 있는 물리 블록 어드레스에 상기 제 2 논리 블록 어드레스를 맵핑하는 단계를 구비하는 것을 특징으로 하는 데이터 조작 방법.
  2. 제1항에 있어서, 상기 수신하는 단계는,
    상기 제 1 논리 블록 어드레스에 대응하는 데이터를 상기 제 2 논리 블록 어드레스에 대응되도록 복사 또는 이동하기 위한 데이터 조작 명령을 수신하는 단계인 것을 특징으로 하는 데이터 조작 방법.
  3. 제1항에 있어서, 상기 데이터 조작 방법은,
    상기 제 1 논리 블록 어드레스와 상기 물리 블록 어드레스의 맵핑 정보가 중복 맵핑 테이블에 저장되어 있는지 판단하는 단계;
    상기 판단 결과 상기 맵핑 정보가 저장되어 있는 경우, 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에 상기 제 2 논리 블록 어드레스 정보를 추가하는 단계; 및
    상기 판단 결과 상기 맵핑 정보가 저장되어 있지 않은 경우, 상기 물리 블록 어드레스 정보를 상기 중복 맵핑 테이블에 저장하고 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에 상기 제 1 및 제 2 논리 블록 어드레스 정보를 저장하는 단계를 구비하는 것을 특징으로 하는 데이터 조작 방법.
  4. 제3항에 있어서, 상기 데이터 조작 방법은,
    상기 제 1 및 제 2 논리 블록 어드레스 중 소정의 논리 블록 어드레스에 대응하는 데이터의 전부 또는 일부를 수정하기 위한 명령을 수신한 경우, 상기 소정의 논리 블록 어드레스 정보를 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에서 삭제하는 단계; 및
    상기 소정의 논리 블록 어드레스를 다른 물리 블록 어드레스에 맵핑하는 단계를 더 구비하는 것을 특징으로 하는 데이터 조작 방법.
  5. 제1항에 있어서, 상기 데이터 조작 방법은,
    상기 제 1 및 제 2 논리 블록 어드레스 중 소정의 논리 블록 어드레스에 대응하는 데이터의 전부 또는 일부를 수정하기 위한 명령을 수신한 경우, 상기 소정의 논리 블록 어드레스를 다른 물리 블록 어드레스에 맵핑하는 단계를 더 구비하는 것을 특징으로 하는 데이터 조작 방법.
  6. 제 1 논리 블록 어드레스에 대응하는 데이터를 제 2 논리 블록 어드레스에 대응시키기 위한 데이터 조작 명령을 송신하는 호스트; 및
    상기 데이터 조작 명령에 응답하여 상기 제 1 논리 블록 어드레스와 맵핑되어 있는 물리 블록 어드레스에 상기 제 2 논리 블록 어드레스를 맵핑하는 플래시 변환 계층을 구비하는 것을 특징으로 하는 시스템 장치.
  7. 제6항에 있어서, 상기 데이터 조작 명령은,
    상기 제 1 논리 블록 어드레스에 대응하는 데이터를 상기 제 2 논리 블록 어드레스에 대응되도록 복사 또는 이동하기 위한 데이터 조작 명령인 것을 특징으로 하는 데이터 저장 시스템.
  8. 제6항에 있어서, 상기 시스템 장치는,
    노말 맵핑 테이블 및 중복 맵핑 테이블이 저장되는 메모리를 더 구비하고,
    상기 노말 맵핑 테이블에는,
    각각의 논리 블록 어드레스와 각각의 물리 블록 어드레스의 맵핑 정보가 저장되고,
    상기 중복 맵핑 테이블에는,
    소정의 물리 블록 어드레스에 복수의 논리 블록 어드레스가 맵핑되는 경우 상기 소정의 물리 블록 어드레스 정보 및 상기 복수의 논리 블록 어드레스 정보를 포함하는 논리 블록 어드레스 리스트가 저장되는 것을 특징으로 하는 시스템 장치.
  9. 제8항에 있어서, 상기 플래시 변환 계층은,
    상기 제 1 논리 블록 어드레스와 상기 물리 블록 어드레스의 맵핑 정보가 상기 중복 맵핑 테이블에 저장되어 있는 경우, 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에 상기 제 2 논리 블록 어드레스 정보를 추가하고,
    상기 제 1 논리 블록 어드레스와 상기 물리 블록 어드레스의 맵핑 정보가 중복 맵핑 테이블에 저장되어 있지 않은 경우, 상기 물리 블록 어드레스 정보를 상기 중복 맵핑 테이블에 저장하고 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에 상기 제 1 및 제 2 논리 블록 어드레스 정보를 저장하는 것을 특징으로 하는 시스템 장치.
  10. 제9항에 있어서, 상기 플래시 변환 계층은,
    상기 제 1 및 제 2 논리 블록 어드레스 중 소정의 논리 블록 어드레스에 대응하는 데이터의 전부 또는 일부를 수정하기 위한 명령을 수신한 경우, 상기 소정의 논리 블록 어드레스 정보를 상기 물리 블록 어드레스에 대응하는 논리 블록 어드레스 리스트에서 삭제하고, 상기 노말 맵핑 테이블에 상기 소정의 논리 블록 어드레스와 다른 물리 블록 어드레스의 맵핑 정보를 저장하는 것을 특징으로 하는 시스템 장치.
  11. 제8항에 있어서, 상기 플래시 변환 계층은,
    상기 제 1 및 제 2 논리 블록 어드레스 중 소정의 논리 블록 어드레스에 대응하는 데이터의 전부 또는 일부를 수정하기 위한 명령을 수신한 경우, 상기 노말 맵핑 테이블에 상기 소정의 논리 블록 어드레스와 다른 물리 블록 어드레스의 맵핑 정보를 저장하는 것을 특징으로 하는 시스템 장치.
KR1020090061145A 2009-07-06 2009-07-06 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치 KR101594029B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090061145A KR101594029B1 (ko) 2009-07-06 2009-07-06 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US12/815,445 US8489852B2 (en) 2009-07-06 2010-06-15 Method and system for manipulating data
US13/921,341 US9015445B2 (en) 2009-07-06 2013-06-19 Method and system for manipulating data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090061145A KR101594029B1 (ko) 2009-07-06 2009-07-06 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치

Publications (2)

Publication Number Publication Date
KR20110003728A true KR20110003728A (ko) 2011-01-13
KR101594029B1 KR101594029B1 (ko) 2016-02-16

Family

ID=43413235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090061145A KR101594029B1 (ko) 2009-07-06 2009-07-06 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치

Country Status (2)

Country Link
US (2) US8489852B2 (ko)
KR (1) KR101594029B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012121559A2 (ko) * 2011-03-09 2012-09-13 (주)인디링스 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130084902A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 저장 장치, 저장 시스템 및 저장 장치에 대한 입출력 제어 방법
US9588886B2 (en) 2013-03-15 2017-03-07 Seagate Technology Llc Staging sorted data in intermediate storage
US20140281194A1 (en) * 2013-03-15 2014-09-18 Seagate Technology Llc Dynamically-sizeable granule storage
US10359937B2 (en) * 2013-12-20 2019-07-23 Sandisk Technologies Llc System and method of implementing a table storage support scheme
KR20160065468A (ko) * 2014-12-01 2016-06-09 삼성전자주식회사 솔리드 스테이트 드라이브의 동작 방법
TWI575374B (zh) * 2015-08-04 2017-03-21 群聯電子股份有限公司 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元
US10481799B2 (en) 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
US10496548B2 (en) * 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026385A1 (en) * 2004-07-31 2006-02-02 Dinechin Christophe D Method for patching virtually aliased pages by a virtual-machine monitor
KR20060127760A (ko) * 2005-06-06 2006-12-13 소니 가부시끼 가이샤 기억장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US20050204104A1 (en) * 2004-03-15 2005-09-15 Tatsundo Aoshima Server and method for managing volume storing digital archive
JP4127307B2 (ja) 2006-10-30 2008-07-30 ソニー株式会社 データ記憶装置、データ処理システム、データ処理方法及びデータ処理装置
KR100845552B1 (ko) 2006-12-18 2008-07-10 (재)대구경북과학기술연구원 Ftl의 어드레스 매핑 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026385A1 (en) * 2004-07-31 2006-02-02 Dinechin Christophe D Method for patching virtually aliased pages by a virtual-machine monitor
KR20060127760A (ko) * 2005-06-06 2006-12-13 소니 가부시끼 가이샤 기억장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012121559A2 (ko) * 2011-03-09 2012-09-13 (주)인디링스 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
WO2012121559A3 (ko) * 2011-03-09 2012-12-20 (주)인디링스 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법

Also Published As

Publication number Publication date
US8489852B2 (en) 2013-07-16
US20130283003A1 (en) 2013-10-24
US9015445B2 (en) 2015-04-21
KR101594029B1 (ko) 2016-02-16
US20110004724A1 (en) 2011-01-06

Similar Documents

Publication Publication Date Title
KR101594029B1 (ko) 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US20230333978A1 (en) Memory system and method for controlling nonvolatile memory
US9304904B2 (en) Hierarchical flash translation layer
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
US8583879B2 (en) Data storage device, storing medium access method and storing medium thereof
KR100630980B1 (ko) 메모리 카드 및 반도체 장치
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US10031845B2 (en) Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US10678476B2 (en) Memory system with host address translation capability and operating method thereof
US20110296084A1 (en) Data storage apparatus and method of writing data
CN110647475B (zh) 存储装置和包括存储装置的存储系统
US9037814B2 (en) Flash memory management method and flash memory controller and storage system using the same
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
KR101041837B1 (ko) 파일저장 제어장치 및 방법
US20100185811A1 (en) Data processing system and method
JP2016149051A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US20230281118A1 (en) Memory system and non-transitory computer readable recording medium
US8402199B2 (en) Memory management system and method thereof
US10853321B2 (en) Storage system
US11740799B2 (en) Storage system and input and output control method
US11200172B2 (en) Storage system and method of controlling storage system
JP7242928B2 (ja) ストレージシステム及び入出力制御方法
US20230305955A1 (en) Storage system and processing method of storage system
US20230136664A1 (en) Storage device and electronic device
CN110781102A (zh) 计算设备的信息存储、读取方法及共享虚拟介质承载芯片

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
FPAY Annual fee payment

Payment date: 20200131

Year of fee payment: 5