KR101678911B1 - 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 - Google Patents

데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR101678911B1
KR101678911B1 KR1020100022361A KR20100022361A KR101678911B1 KR 101678911 B1 KR101678911 B1 KR 101678911B1 KR 1020100022361 A KR1020100022361 A KR 1020100022361A KR 20100022361 A KR20100022361 A KR 20100022361A KR 101678911 B1 KR101678911 B1 KR 101678911B1
Authority
KR
South Korea
Prior art keywords
data
mapping table
storage medium
address mapping
address
Prior art date
Application number
KR1020100022361A
Other languages
English (en)
Other versions
KR20110103165A (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 KR1020100022361A priority Critical patent/KR101678911B1/ko
Priority to US13/025,584 priority patent/US8914608B2/en
Publication of KR20110103165A publication Critical patent/KR20110103165A/ko
Application granted granted Critical
Publication of KR101678911B1 publication Critical patent/KR101678911B1/ko

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

Abstract

본 발명은 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템에 관한 것이다. 본 발명의 실시 예에 따르면, 데이터 저장 장치는 데이터를 저장하기 위한 저장 매체와 상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함한다. 상기 데이터 저장 장치는 호스트로부터 제공되는 논리 어드레스를 상기 저장 매체의 물리 어드레스로 변환하기 위한 어드레스 맵핑 테이블을 상기 저장 매체에 저장된 임시 데이터의 논리 어드레스에 따라 구성한다. 상기 임시 데이터의 어드레스 맵핑 테이블은 상기 저장 매체에 백업되지 않는다. 따라서, 상기 데이터 저장 장치는 상기 호스트의 요청에 대한 응답 시간을 단축시킬 수 있다.

Description

데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템{DATA STORAGE DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME}
본 발명은 전자 장치에 관한 것으로, 더욱 상세하게는 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템에 관한 것이다.
최근 컴퓨터 환경에 대한 패러다임(paradigm)이 언제, 어디서나 컴퓨팅 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous computing)으로 전환되고 있다. 이로 인해 휴대폰, PMP, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 이와 같은 휴대용 전자 장치는 일반적으로 하드 디스크 드라이브 대신 메모리 장치를 이용하는 데이터 저장 장치를 사용한다.
메모리 장치를 이용한 데이터 저장 장치 중 하나인 솔리드 스테이트 드라이브(solid state drive, 이하, SSD라고 칭함)는 저장 매체가 모두 메모리 장치로 구성된 데이터 저장 장치이다. SSD는 기존의 데이터 저장 장치에서 사용되고 있는 PATA나 SATA 등의 호스트 인터페이스를 이용하여 하드 디스크 드라이브처럼 사용될 수 있다. SSD는 기계적인 구동부가 없고 기존의 하드 디스크 드라이브에 비해 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다.
SSD는 저장 매체의 종류에 따라 나뉠 수 있다. 예를 들면, 저장 매체로 휘발성 메모리 장치를 사용한 SSD와 불휘발성 메모리 장치를 사용한 SSD로 나뉠 수 있다. 휘발성 메모리를 저장 매체로 사용하는 SSD는 고속의 휘발성 메모리 장치(예를 들면, SDRAM)를 저장 매체로 사용한다. 휘발성 메모리 장치를 저장 매체로 사용하는 SSD는 데이터 액세스 속도가 매우 빠르다. 따라서, 휘발성 메모리 장치를 저장 매체로 사용하는 SSD는 어플리케이션의 속도를 늘리는 데 주로 사용된다. 휘발성 메모리를 저장 매체로 사용하는 SSD는 소정의 시간동안 데이터를 유지하기 위하여 내부 배터리 및 백업 디스크 시스템을 포함할 수 있다.
불휘발성 메모리 장치를 저장 매체로 사용하는 SSD는 대용량의 불휘발성 메모리 장치(예를 들면, 플래시 메모리 장치)를 저장 매체로 사용한다. 불휘발성 메모리 장치를 저장 매체로 사용하는 SSD는 저장 용량을 증가시키는 것이 용이하다. 따라서, 불휘발성 메모리 장치를 저장 매체로 사용하는 SSD는 하드 디스크 드라이브(HDD)를 대체하여 사용된다.
본 발명의 목적은 호스트 명령에 대한 응답 속도를 향상시킬 수 있는 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템을 제공하는 데 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 호스트; 데이터를 저장하기 위한 저장 매체; 그리고 상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하되, 상기 호스트로부터 임시 데이터 관리 명령과 임시 데이터의 어드레스가 전송될 때, 상기 컨트롤러는 유효 데이터의 어드레스를 맵핑하기 위한 제 1 어드레스 맵핑 테이블과 상기 임시 데이터의 어드레스를 맵핑하기 위한 제 2 어드레스 맵핑 테이블을 구성하고, 상기 제 2 어드레스 맵핑 테이블이 상기 저장 매체에 저장되는 것을 금지한다.
실시 예에 있어서, 상기 임시 데이터는 상기 저장 매체에 저장된 데이터들 중에서 소실되어도 상기 호스트에서 오류가 발생되지 않는 데이터인 것을 특징으로 한다.
실시 예에 있어서, 상기 임시 데이터 관리 명령은 상기 임시 데이터의 정보를 전송하기 위한 명령인 것을 특징으로 한다.
실시 예에 있어서, 상기 저장 매체와 상기 컨트롤러는 데이터 저장 장치로 구성된다.
실시 예에 있어서, 상기 컨트롤러는 상기 임시 데이터 관리 명령이 전송된 후, 상기 제 1 어드레스 맵핑 테이블과 상기 제 2 어드레스 맵핑 테이블을 분리한다.
실시 예에 있어서, 상기 제 1 어드레스 맵핑 테이블은 상기 저장 매체에 주기적으로 저장된다.
실시 예에 있어서, 상기 컨트롤러는 동작 메모리를 포함하되, 전원이 공급된 후 상기 제 1 어드레스 맵핑 테이블은 상기 동작 메모리로 로딩된다.
실시 예에 있어서, 상기 컨트롤러는 동작 메모리를 포함하되, 상기 제 2 어드레스 맵핑 테이블은 전원이 공급되는 동안 상기 동작 메모리에 임시 저장된다.
실시 예에 있어서, 상기 컴퓨팅 시스템이 리부팅된 후 상기 제 2 어드레스 맵핑 테이블이 상기 동작 메모리로 로딩되는 것이 금지된다.
실시 예에 있어서, 상기 임시 데이터 관리 명령은 상기 호스트와 상기 데이터 저장 장치를 인터페이스하는 인터페이스 표준의 벤더 명령 전송 방식에 따라 전송된다.
실시 예에 있어서, 상기 벤더 명령 전송 방식은 상기 임시 데이터 관리 명령과 상기 임시 데이터의 어드레스를 동시에 전송한다.
본 발명의 다른 실시 예에 따른 데이터 저장 장치는, 데이터를 저장하기 위한 저장 매체; 그리고 상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하되, 상기 컨트롤러는 상기 저장 매체에 저장된 호스트의 메타데이터를 검색하여 임시 데이터를 추출하고, 추출 결과에 따라 유효 데이터의 어드레스를 맵핑하기 위한 제 1 어드레스 맵핑 테이블과 상기 임시 데이터의 어드레스를 맵핑하기 위한 제 2 어드레스 맵핑 테이블을 구성하고, 상기 제 2 어드레스 맵핑 테이블이 상기 저장 매체에 저장되는 것을 금지한다.
실시 예에 있어서, 상기 임시 데이터는 상기 저장 매체에 저장된 데이터들 중에서 소실되더라도 상기 호스트에서 오류가 발생되지 않는 데이터인 것을 특징으로 한다.
실시 예에 있어서, 상기 컨트롤러는 상기 임시 데이터가 추출된 후, 상기 제 1 어드레스 맵핑 테이블과 상기 제 2 어드레스 맵핑 테이블을 분리한다.
실시 예에 있어서, 상기 추출 결과에 따라 상기 임시 데이터의 논리 어드레스가 결정된다.
실시 예에 있어서, 상기 컨트롤러는 상기 임시 데이터의 논리 어드레스에 따라 상기 제 2 어드레스 맵핑 테이블을 구성한다.
실시 예에 있어서, 상기 제 1 어드레스 맵핑 테이블은 상기 저장 매체에 주기적으로 저장된다.
실시 예에 있어서, 상기 컨트롤러는 동작 메모리를 포함하되, 전원이 공급된 후 상기 제 1 어드레스 맵핑 테이블은 상기 동작 메모리로 로딩된다.
실시 예에 있어서, 상기 컨트롤러는 동작 메모리를 포함하되, 상기 제 2 어드레스 맵핑 테이블은 전원이 공급되는 동안 상기 동작 메모리에 임시 저장된다.
실시 예에 있어서, 상기 데이터 저장 장치가 리부팅된 후 상기 제 2 어드레스 맵핑 테이블이 상기 동작 메모리로 로딩되는 것이 금지된다.
본 발명의 실시 예에 따른 데이터 저장 장치는 호스트 명령에 대한 응답 속도가 향상된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블럭도이다.
도 2는 도 1에 도시된 컨트롤러를 예시적으로 보여주는 블럭도이다.
도 3은 본 발명의 실시 예에 따른 플래시 변환 레이어를 예시적으로 보여주는 블럭도이다.
도 4는 도 1에 도시된 컴퓨팅 시스템의 소프트웨어 계층 구조를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 티디엠(TDM) 명령이 제공되는 경우 어드레스 맵핑 테이블의 구성을 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 티디엠(TDM) 명령이 제공되는 경우 어드레스 맵핑 테이블의 저장 동작을 보여주는 도면이다.
도 7은 본 발명의 제 1 실시 예에 따른 데이터 저장 장치의 동작을 설명하기 위한 순서도이다.
도 8은 본 발명의 제 2 실시 예에 따른 데이터 저장 장치의 동작을 설명하기 위한 순서도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블럭도이다.
도 1을 참조하면, 본 발명의 예시적인 실시 예에 따른 컴퓨팅 시스템(100)은 호스트(110)와 데이터 저장 장치(120)를 포함한다. 호스트(110)는 데이터 저장 장치(120)를 제어하도록 구성된다. 호스트(110)는, 예를 들면, PDA, PMP, MP3 플레이어 등과 같은 휴대용 전자 장치들, 또는 개인용/휴대용 컴퓨터, HDTV 등과 같은 전자 장치들을 포함한다.
데이터 저장 장치(120)는 호스트(110)의 제어에 응답하여 동작한다. 데이터 저장 장치(120)는 전원이 차단되더라도 저장된 데이터를 유지한다. 데이터 저장 장치(120)는, 예를 들면, 반도체 드라이브(solid state drive: SSD)일 것이다. 하지만, 데이터 저장 장치(120)가 SSD에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 데이터 저장 장치(120)는 메모리 카드 등과 같이 메모리 장치를 이용한 데이터 저장 장치를 포함한다.
데이터 저장 장치(120)는 컨트롤러(130)와 저장 매체(140)를 포함한다. 컨트롤러(130)는 호스트(110)로부터의 요청에 응답하여 저장 매체(140)를 제어한다. 예를 들면, 컨트롤러(130)는 호스트(110)의 액세스 요청에 응답하여 저장 매체(140)의 읽기, 쓰기 그리고 소거 동작을 제어한다.
컨트롤러(130)는 복수의 채널들(CH1∼CHn)을 통해 저장 매체(140)와 연결된다. 저장 매체(140)는 복수의 불휘발성 메모리 장치들을 포함한다. 채널들(CH0~CHn) 각각에는 복수의 불휘발성 메모리 장치들(NVM0~NVMi, NVM0~NVMk)이 연결된다. 저장 매체(140)는, 예를 들면, 복수의 플래시 메모리 장치들로 구성될 것이다. 하지만, 저장 매체(140)가 플래시 메모리 장치들 대신 다른 불휘발성 메모리 장치들로 구성될 수 있음은 잘 이해될 것이다. 예를 들면, 저장 매체(140)는 PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등과 같은 불휘발성 메모리 장치들 중 하나로 구성될 수 있다.
저장 매체(140)를 구성하는 각각의 플래시 메모리 장치는 메모리 셀당 싱글 비트 데이터(single bit data) 또는, 멀티 비트 데이터(multi bit data)를 저장할 수 있다. 싱글 비트 데이터를 저장하는 메모리 셀은 싱글 레벨 셀(single level cell: SLC)이라 하고, 두 비트 이상의 멀티 비트 데이터를 저장하는 메모리 셀은 멀티 레벨 셀(multi level cell: MLC)이라 한다. 싱글 레벨 셀(SLC)은 문턱 전압에 따라 소거 상태와 하나의 프로그램 상태를 갖는다. 멀티 레벨 셀(MLC)은 문턱 전압에 따라 소거 상태와 복수의 프로그램 상태들을 갖는다.
본 발명의 실시 예에 따른 컴퓨팅 시스템(100)에 따르면, 호스트(110)는 필요에 따라 데이터 저장 장치(120)에 저장된 데이터(또는, 파일)들 중 임시 데이터의 정보를 데이터 저장 장치(120)로 통보한다. 이는 호스트(110)가 특정 명령을 데이터 저장 장치(120)로 전송함으로써 달성될 것이다. 이하, 그러한 특정 명령을 "임시 데이터 관리 명령(temporary data management command, 이하, 티디엠(TDM) 명령)"이라 정의한다. 그러한 티디엠(TDM) 명령은 데이터 저장 장치(120)에 저장된 데이터들 중 소실되어도 호스트(110)의 오류를 발생시키지 않는 데이터(예를 들면, 임시 데이터)의 정보를 제공할 것이다. 티디엠(TDM) 명령은 임시 데이터의 어드레스 정보(예를 들면, 논리 어드레스(logical address) 정보)를 포함할 것이다.
호스트(110)로부터 티디엠(TDM) 명령이 제공될 때, 데이터 저장 장치(120)는 티디엠(TDM) 명령에 따라 논리 어드레스를 물리 어드레스(physical address)로 맵핑하는 어드레스 맵핑 테이블(address mapping table)을 재구성할 것이다. 예를 들면, 데이터 저장 장치(120)는 임시 데이터의 논리 어드레스만을 맵핑하는 어드레스 맵핑 테이블을 영구(또는, 유효) 데이터의 논리 어드레스를 맵핑하는 어드레스 맵핑 테이블과 분리하여 구성할 것이다.
임시 데이터의 논리 어드레스만을 맵핑하는 어드레스 맵핑 테이블은 데이터 저장 장치(120)의 동작 메모리(working memory, 도시되지 않음)에 저장될 것이다. 컴퓨팅 시스템(100)의 동작이 종료되면(예를 들면, 시스템 종료) 동작 메모리에 저장된 어드레스 맵핑 테이블은 저장 매체(140)에 저장(또는, 백업(backup))된다. 또는, 컴퓨팅 시스템(100)의 전원 공급이 갑작스럽게 중단될 때(예를 들면, 서든 파워 오프(sudden power off))를 대비하여 동작 메모리에 저장된 어드레스 맵핑 테이블은 주기적으로 또는 필요에 따라 저장 매체(140)에 저장(또는, 백업)된다.
이러한 어드레스 맵핑 테이블의 저장(또는, 백업) 동작은 티디엠(TDM) 명령에 따라 구성된 임시 데이터의 논리 어드레스만을 맵핑하는 어드레스 맵핑 테이블을 제외하고 수행될 것이다. 이러한 동작은 후술되는 도 6을 통하여 상세히 설명될 것이다. 본 발명의 실시 예에 따르면, 저장되어야 하는 어드레스 맵핑 테이블의 크기가 감소되기 때문에, 데이터 저장 장치(120)는 호스트(110)의 요청을 빠른 시간 내에 처리하는 것이 가능하다. 즉, 데이터 저장 장치(120)는 호스트(110)의 요청에 대한 응답 시간을 단축시킬 수 있다. 빠른 응답을 통해 데이터 저장 장치(120) 또는 컴퓨팅 시스템(100)의 성능은 향상될 것이다. 또한, 본 발명의 실시 예에 따르면, 저장되어야 하는 어드레스 맵핑 테이블의 크기가 감소되기 때문에, 저장 매체(140)를 구성하는 플래시 메모리 장치의 소거-쓰기 싸이클(erase-write cycle) 횟수가 감소될 것이다.
도 2는 도 1에 도시된 컨트롤러를 예시적으로 보여주는 블럭도이다.
도 2를 참조하면, 컨트롤러(130)는 프로세싱 유닛(processing unit, 131), 호스트 인터페이스(host interface, 132), 메모리 인터페이스(memory interface, 133), 에러 정정 유닛(ECC unit, 134), 그리고 동작 메모리(working memroy, 135)를 포함한다. 하지만, 컨트롤러(130)의 구성 요소들이 앞서 언급된 구성 요소들에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 컨트롤러(130)는 초기 부팅(booting) 동작에 필요한 코드 데이터(code data)를 저장하는 ROM(read only memory), 버퍼 메모리 장치를 제어하는 버퍼 메모리 컨트롤러 등을 더 포함할 수 있다.
프로세싱 유닛(131)은 중앙 처리 장치(central processing unit) 또는 마이크로프로세서(micro-processor)를 포함한다. 프로세싱 유닛(131)은 컨트롤러(130)의 동작을 전반적으로 제어한다. 프로세싱 유닛(131)은 컨트롤러(130)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다. 이러한 펌웨어는 동작 메모리(135)에 로딩(loading)되어 구동된다.
호스트 인터페이스(132)는 호스트(110)와 컨트롤러(130) 사이의 인터페이스를 제공한다. 호스트(110)와 컨트롤러(130)는 다양한 표준 인터페이스들(standardized interfaces) 중 하나를 통해 연결될 수 있다. 다른 예로써, 호스트(110)와 컨트롤러(130)는 다양한 표준 인터페이스들 중 복수의 인터페이스들을 통해 연결될 수 있다. 여기에서, 표준 인터페이스들은 ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), USB(universal serial bus), IEEE 1394, Card 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함한다.
메모리 인터페이스(133)는 컨트롤러(130)와 저장 매체(140) 사이의 인터페이스를 제공한다. 예를 들면, 프로세싱 유닛(131)에 의해서 처리된 데이터가 메모리 인터페이스(133)를 통해 저장 매체(140)에 저장된다. 다른 예로써, 저장 매체(140)에 저장된 데이터는 메모리 인터페이스(133)를 통해 프로세싱 유닛(131)에 제공된다. 메모리 인터페이스(133)는 저장 매체(140)를 제어하는 메모리 컨트롤러(memory controller)를 포함한다. 또한, 메모리 인터페이스(133)는 컨트롤러(130)와 버퍼 메모리 장치(도시되지 않음) 사이의 인터페이스를 제공할 수 있다.
에러 정정 유닛(134)은 다양한 원인으로 인해 손상되는 데이터를 복구한다. 예를 들면, 에러 정정 유닛(134)은 저장 매체(140)로부터 읽혀진 데이터의 에러를 검출하고, 복구하도록 구성될 수 있다. 도 2에 있어서, 에러 정정 유닛(134)은 컨트롤러(130)의 구성 요소로 제공되었지만, 에러 정정 유닛(134)은 저장 매체(140)의 구성 요소로 제공될 수 있다.
동작 메모리(135)에는 컨트롤러(130)를 제어하기 위한 펌웨어 그리고 데이터가 저장된다. 저장된 펌웨어 그리고 데이터는 프로세싱 유닛(131)에 의해 구동된다. 동작 메모리(135)는 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나를 포함할 것이다. 본 발명의 실시 예에 따르면, 동작 메모리(135)에는 플래시 변환 레이어(flash translation layer: FTL)가 저장된다.
도 3은 본 발명의 실시 예에 따른 플래시 변환 레이어를 예시적으로 보여주는 블럭도이다.
저장 매체(도 1의 140 참조)를 구성하는 플래시 메모리 장치는 구조적인 특징으로 인해 페이지(page) 단위로 읽기 또는 쓰기 동작을 수행하고, 블럭(block) 단위로 소거 동작을 수행한다. 여기에서, 페이지는 복수의 메모리 셀들을 포함하고, 블럭은 복수의 페이지들을 포함한다. 또한, 플래시 메모리 장치에서 데이터가 저장된 메모리 셀에 새로운 데이터가 저장되기 위해서 소거 동작이 선행되어야 한다. 이러한 플래시 메모리 장치의 특징들 때문에, 플래시 메모리 장치의 읽기, 쓰기, 소거 동작에 대한 관리가 필요하다. 플래시 변환 레이어(FTL)는 이러한 목적으로 개발된 시스템 소프트웨어(또는, 펌웨어)이다. 이러한 플래시 변환 레이어(FTL)는 동작 메모리(135)에 로딩되어, 프로세싱 유닛(도 2의 131 참조)에 의해서 구동된다.
도 3을 참조하면, 플래시 변환 레이어(FTL)는 복수의 모듈들(modules)을 포함한다. 즉, 플래시 변환 레이어(FTL)는 웨어-레벨링 모듈(wear-leveling module, 136), 배드 블럭 관리 모듈(bad block managing module, 137), 가비지 컬렉션 모듈(garbage collection module, 138), 그리고 어드레스 맵핑 테이블(address mapping table, 139)을 포함한다. 하지만, 플래시 변환 레이어(FTL)의 구성이 앞서 언급된 모듈들에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 플래시 변환 레이어(FTL)에는 예상치 못한 전원 차단에 대비하는 서든 파워 오프 관리 모듈 등이 더 포함될 수 있다.
웨어-레벨링 모듈(136)은 플래시 메모리 장치의 블럭에 대한 마모도(wear-level)를 관리한다. 쓰기 그리고 소거 동작에 의해서 플래시 메모리 장치의 메모리 셀은 노화(aging)된다. 노화된 메모리 셀, 즉, 마모된 메모리 셀은 결함(예를 들면, 물리적 결함)을 야기시킬 것이다. 웨어-레벨링 모듈(136)은 플래시 메모리 장치의 특정 블럭이 다른 블럭들보다 빨리 마모되는 것을 방지하기 위해, 블럭들 각각의 소거-쓰기 싸이클(erase-write cycle) 횟수가 평준화 되도록 관리한다.
배드 블럭 관리 모듈(137)은 플래시 메모리 장치의 블럭들 중 결함이 발생된 블럭을 관리한다. 앞서 언급된 바와 같이, 마모된 메모리 셀은 결함(예를 들면, 물리적 결함)을 발생할 수 있다. 결함이 발생된 메모리 셀에 저장된 데이터는 정상적으로 읽혀질 수 없다. 또한, 결함이 발생된 메모리 셀에는 데이터가 정상적으로 저장되지 않는다. 배드 블럭 관리 모듈(137)은 결함이 발생된 메모리 셀을 포함하는 블럭의 사용을 차단하도록 관리한다.
가비지 컬렉션 모듈(138)은 조각난 데이터들이 저장된 블럭들을 정리한다. 플래시 메모리 장치는 쓰기 단위보다 소거 단위가 더 크기 때문에 일정한 한계에 다다르면 임의의 빈 블럭을 이용하여 물리적으로 서로 상이한 위치에 분산되어 있는 연속된 데이터를 동일한 어드레스 영역으로 모으는 작업을 필요로 한다. 가비지 컬렉션 모듈(138)은 복수의 쓰기 동작들과 복수의 블럭 소거 동작들을 수행하여 조각난 데이터들을 동일한 어드레스 영역으로 모으는 작업을 수행한다.
호스트(도 1의 110 참조)가 데이터 저장 장치(도 1의 120 참조)를 액세스하는 경우, 호스트(110)는 논리 어드레스를 데이터 저장 장치(120)에 제공한다. 컨트롤러(130)는 제공된 논리 어드레스를 플래시 메모리 장치의 물리 어드레스로 변환(transfer)한다. 즉, 플래시 변환 레이어(FTL)는 어드레스 변환을 위하여 어드레스 변환 데이터를 관리하며, 이러한 어드레스 변환 데이터는 어드레스 맵핑 테이블(139)로 구성되어 관리된다.
도 4는 도 1에 도시된 컴퓨팅 시스템의 소프트웨어 계층 구조를 보여주는 도면이다.
도 4를 참조하면, 호스트(110)는 어플리케이션(또는, 운영 체제, 111) 그리고 파일 시스템(112)을 포함하는 소프트웨어 계층을 가지고, 데이터 저장 장치(120)는 플래시 변환 레이어(FTL, 121)를 포함하는 소프트웨어 계층 그리고 플래시 메모리 장치(122)를 포함하는 하드웨어 계층을 갖는다.
어플리케이션(111)으로부터 읽기 또는 쓰기 요청을 받은 파일 시스템(112)은 읽기 또는 쓰기 대상인 논리 어드레스(또는, 섹터 어드레스(sector address))와 해당 명령(command)을 플래시 변환 레이어(FTL, 121)로 전달한다. 플래시 변환 레이어(FTL, 121)는 전달받은 명령을 플래시 메모리 장치(122)로 전달한다. 또한 플래시 변환 레이어(FTL, 121)는 전달 받은 논리 어드레스를 플래시 메모리 장치(122)의 물리 어드레스로 변환하여 플래시 메모리 장치(122)로 전달한다. 플래시 메모리 장치(122)의 물리 어드레스는 플래시 메모리 장치(122)의 블럭 번호(block number), 페이지 번호(page number), 또는 컬럼 번호(column number)를 포함할 것이다.
호스트(110)는 논리 어드레스를 지시함으로써 데이터 저장 장치(120)를 액세스한다. 논리 어드레스는 물리적인 저장 위치와 비교하여 볼 때 호스트 소프트웨어(예를 들면, 운영 체제 또는 어플리케이션)가 인식하는 논리적인 메모리 공간 중 임의의 위치를 참조한다. 호스트(110)가 요청하는 읽기 또는 쓰기 주소는 플래시 메모리 장치(122)의 물리 어드레스와 1:1로 일치하지 않는다. 따라서, 논리 어드레스는 지정된 물리적인 메모리 공간을 액세스하기 위해서 플래시 메모리 장치(122)의 물리적인 메모리 공간에 대응하는 물리 어드레스로 변환된다.
플래시 메모리 장치(122)로 구성되는 데이터 저장 장치(120)는 액세스 동작 동안 호스트(110)와의 호환성을 보장하기 위해서 디스크 에뮬레이션 소프트웨어(disk emulation software)라 불리는 추가적인 소프트웨어를 필요로 한다. 액세스 동작 동안 호스트(110)와 플래시 메모리 장치(122)로 구성되는 데이터 저장 장치(120) 사이의 호환성은 플래시 변환 레이어(FTL, 121)와 같은 펌웨어(firmware)를 운영함으로써 달성될 수 있다. 다시 말해서, 호스트(110)는 데이터 저장 장치(120)를 하드 디스크 드라이브(hard disk drive, HDD)로서 인식하여 하드 디스크 드라이브(HDD)와 동일한 방식으로 데이터 저장 장치(120)를 액세스한다. 플래시 변환 레이어(FTL, 121)는 특정 컴퓨팅 시스템의 운영 체제에 의해서 사용되는 파일 시스템에 플래시 메모리 저장 장치를 연결한다. 플래시 변환 레이어(FTL, 121)는 데이터 저장 장치(120)가 호스트(110)의 파일 시스템에 하드 디스크 드라이브(HDD)로 인식되도록 한다.
도 5는 본 발명의 실시 예에 따른 티디엠(TDM) 명령이 제공되는 경우 어드레스 맵핑 테이블의 구성을 보여주는 도면이다.
도 5를 참조하면, 티디엠(TDM) 명령이 제공되기 전과 티디엠(TDM) 명령이 제공된 후의 어드레스 맵핑 테이블의 구성이 도시된다. 호스트(도 1의 110 참조)는 필요에 따라 데이터 저장 장치(도 1의 120 참조)에 저장된 데이터(또는, 파일)들 중 임시 데이터의 정보를 데이터 저장 장치(도 1의 120 참조)로 통보한다. 이는 호스트(110)가 티디엠(temporary data management, TDM) 명령을 데이터 저장 장치(120)로 전송함으로써 달성될 것이다. 티디엠(TDM) 명령의 전송은, 예를 들면, 호스트 인터페이스 표준이 제공하는 벤더 명령(vendor command) 전송 방식을 사용하여 전송될 것이다.
티디엠(TDM) 명령은 임시 데이터의 논리 어드레스 정보를 포함할 것이다. 예를 들면, 임시 데이터의 논리 어드레스 정보는 티디엠(TDM) 명령과 함께 전송될 것이다. 다른 예로써, 임시 데이터의 논리 어드레스 정보는 티디엠(TDM) 명령이 전송된 이후에 전송될 것이다. 또 다른 예로써, 임시 데이터의 논리 어드레스 정보는 티디엠(TDM) 명령이 전송되기 전에 전송될 것이다.
호스트(110)로부터 티디엠(TDM) 명령이 전송되기 전에는 논리 어드레스를 물리 어드레스로 맵핑하는 하나의 어드레스 맵핑 테이블이 구성된다. 어드레스 맵핑 테이블이 소실되면, 컴퓨팅 시스템(도 1의 100 참조)은 심각한 오류가 발생된다. 따라서, 어드레스 맵핑 테이블은 컴퓨팅 시스템(100)의 전원이 공급되는 동안 뿐만 아니라, 컴퓨팅 시스템(100)의 전원이 공급되지 않는 동안에도 유효한 데이터로서 보존되어야 한다.
티디엠(TDM) 명령과 임시 데이터의 논리 어드레스 정보가 전송되면, 플래시 변환 레이어(FTL)는 기존의 어드레스 맵핑 테이블을 적어도 두 개 이상으로 분리하여 구성한다. 즉, 플래시 변환 레이어(FTL)는 티디엠(TDM) 명령에 따라 전송되는 임시 데이터의 논리 어드레스 정보를 참조하여 어드레스 맵핑 테이블을 재구성한다. 플래시 변환 레이어(FTL)는 영구(또는, 유효) 데이터의 논리 어드레스를 맵핑하는 어드레스 맵핑 테이블1(address mapping table1)을 구성한다. 이러한 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블1(address mapping table1)은 컴퓨팅 시스템(100)의 전원이 공급되는 동안뿐만 아니라, 컴퓨팅 시스템(100)의 전원이 공급되지 않는 동안에도 유효한 데이터로서 보존될 것이다.
또한, 플래시 변환 레이어(FTL)는 전송된 임시 데이터의 논리 어드레스만을 맵핑하는 어드레스 맵핑 테이블2(address mapping table2)를 구성한다. 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블1(address mapping table1)과 임시 데이터의 어드레스 맵핑 테이블2(address mapping table2)는 각각 분리되어 구성된다. 임시 데이터의 어드레스 맵핑 테이블2(address mapping table2)는 컴퓨팅 시스템(100)의 전원이 공급되는 동안에만 유효한 데이터로서 보존될 것이다.
도 6은 본 발명의 실시 예에 따른 티디엠(TDM) 명령이 제공되는 경우 어드레스 맵핑 테이블의 저장 동작을 보여주는 도면이다.
도 6을 참조하면, 플래시 변환 레이어(FTL)가 로딩되는 동작 메모리(135)는 휘발성 메모리 장치이다. 예를 들면, 동작 메모리(135)는 DRAM(dynamic random access memory) 또는 SRAM(static radom access memory) 등과 같은 휘발성 메모리 장치로 구성될 것이다. 플래시 변환 레이어(FTL)가 휘발성 메모리 장치에 로딩되기 때문에, 플래시 변환 레이어(FTL)의 메타데이터(metadata)는 저장 매체(140)에 저장(또는, 백업)되어야 한다. 여기에서, 플래시 변환 레이어(FTL)의 메타데이터는 호스트(도 1의 110 참조)로부터 데이터가 전송되면 갱신(update)되는 어드레스 맵핑 테이블을 포함한다.
앞서 언급된 바와 같이, 컴퓨팅 시스템(도 1의 100 참조)의 동작이 종료되면(예를 들면, 시스템 종료) 동작 메모리(135)에 저장된 어드레스 맵핑 테이블은 저장 매체(140)에 저장된다. 또는, 컴퓨팅 시스템(100)의 전원 공급이 갑작스럽게 중단될 때(예를 들면, 서든 파워 오프)를 대비하여 동작 메모리(135)에 저장된 어드레스 맵핑 테이블은 주기적으로 또는 필요에 따라 저장 매체(140)에 저장된다. 저장된 어드레스 맵핑 테이블은 컴퓨팅 시스템(100)의 전원이 공급되면, 동작 메모리(135)로 로딩된다.
컴퓨팅 시스템(100)의 전원 공급이 중단되어도 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블1(address mapping table1)은 소실되지 않아야 한다. 따라서, 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블1(address mapping table1)은 저장 매체(140)에 저장(또는, 백업)된다. 또한, 컴퓨팅 시스템(100)의 전원이 재공급 되는 경우(예를 들면, 시스템 시작 또는 시스템 리부팅(re-booting)되는 경우) 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블1(address mapping table1)은 동작 메모리(135)로 로딩된다.
반면, 컴퓨팅 시스템(100)의 전원 공급이 중단되는 경우, 티디엠(TDM) 명령에 따라 생성된 임시 데이터의 어드레스 맵핑 테이블2(address mapping table2)는 소실되어도 무관하다. 즉, 임시 데이터의 어드레스 맵핑 테이블2(address mapping table2)는 소실되어도 컴퓨팅 시스템(100)의 오류를 발생시키지 않는 어드레스 맵핑 테이블이다. 따라서, 임시 데이터의 어드레스 맵핑 테이블2(address mapping table2)는 저장 매체(140)에 저장(또는, 백업)되지 않는다. 또한, 컴퓨팅 시스템(100)의 전원이 재공급 되는 경우(예를 들면, 시스템 시작 또는 시스템 리부팅(re-booting)되는 경우) 임시 데이터의 어드레스 맵핑 테이블2(address mapping table2)는 동작 메모리(135)로 로딩되지 않는다.
본 발명의 실시 예에 따르면, 티디엠(TDM) 명령에 따라 어드레스 맵핑 테이블이 영구 데이터와 임시 데이터의 어드레스 맵핑 테이블로 각각 분리되어 구성된다. 임시 데이터의 어드레스 맵핑 테이블은 컴퓨팅 시스템(100)의 전원이 공급되는 동안에만 유효한 어드레스 맵핑 테이블이기 때문에, 저장 매체(140)에 저장(또는, 백업)되지 않는다. 즉, 저장 매체(140)에 저장되어야 하는 어드레스 맵핑 테이블의 크기가 감소될 것이다. 따라서, 어드레스 맵핑 테이블의 저장(또는, 백업) 동작이 빠르게 수행될 것이다. 이는 데이터 저장 장치(120)가 호스트(110)의 요청에 대한 응답을 빠르게 수행할 수 있음을 의미한다. 즉, 호스트(110)의 요청에 대한 응답 시간이 단축될 것이다. 빠른 응답을 통해 데이터 저장 장치(120) 또는 컴퓨팅 시스템(100)의 성능은 향상될 것이다. 또한, 저장되어야 하는 어드레스 맵핑 테이블의 크기가 감소되기 때문에, 저장 매체(140)를 구성하는 플래시 메모리 장치의 소거-쓰기 싸이클(erase-write cycle) 횟수가 감소될 것이다.
도 7은 본 발명의 제 1 실시 예에 따른 데이터 저장 장치의 동작을 설명하기 위한 순서도이다. 이하, 본 발명의 예시적인 실시 예에 따른 컴퓨팅 시스템의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
호스트(110)는 필요에 따라 데이터 저장 장치(120)로 티디엠(TDM) 명령을 제공한다. 예를 들면, 티디엠(TDM) 명령은 데이터 저장 장치(120)에 저장된 데이터(또는, 파일)들 중 임시 데이터의 정보를 데이터 저장 장치(120)로 통보하는 데 사용된다. 호스트(110)에서 데이터 저장 장치(120)로 티디엠(TDM) 명령이 전송된다(S110 단계). 티디엠(TDM) 명령과 함께 호스트(110)에서 데이터 저장 장치(120)로 임시 데이터의 논리 어드레스 정보가 전송된다(S120 단계). 앞서 언급된 바와 같이, 임시 데이터의 논리 어드레스 정보는 티디엠(TDM) 명령이 전송된 후에 전송될 것이다. 다른 예로써, 임시 데이터의 논리 어드레스 정보는 티디엠(TDM) 명령과 함께 전송될 것이다. 즉, 티디엠(TDM) 명령은 임시 데이터의 논리 어드레스 정보를 포함할 것이다.
컨트롤러(130)는 티디엠(TDM) 명령 그리고 임시 데이터의 논리 어드레스 정보가 수신되었음을 호스트(110)에 통지한다(S130 단계). 이후, 컨트롤러(130, 또는, 컨트롤러에 의해 구동되는 소프트웨어)는 임시 데이터의 논리 어드레스 정보를 참조하여 어드레스 맵핑 테이블을 분리한다(S140 단계). 즉, 컨트롤러(130)는 컴퓨팅 시스템(100)의 전원이 공급되는 동안 그리고 컴퓨팅 시스템(100)의 전원이 공급되지 않는 동안에도 유효한 데이터로서 보존되는 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블을 구성한다. 또한, 컨트롤러(130)는 컴퓨팅 시스템(100)의 전원이 공급되는 동안에만 유효한 데이터로서 보존되는 임시 데이터의 어드레스 맵핑 테이블을 구성한다. 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블과 임시 데이터의 어드레스 맵핑 테이블은 각각 분리되어 구성된다.
호스트(110)로부터 데이터가 전송되면 어드레스 맵핑 테이블은 갱신(update)된다. 따라서, 컴퓨팅 시스템(100)의 동작이 종료되면(예를 들면, 시스템 종료) 어드레스 맵핑 테이블은 저장 매체(140)에 저장된다. 또는, 컴퓨팅 시스템(100)의 전원 공급이 갑작스럽게 중단될 때(예를 들면, 서든 파워 오프)를 대비하여 어드레스 맵핑 테이블은 저장 매체(140)에 주기적으로 또는 필요에 따라 저장된다. 티디엠(TDM) 명령에 따라 구성된 임시 데이터의 어드레스 맵핑 테이블은 컴퓨팅 시스템(100)의 전원이 공급되는 동안에만 유효한 어드레스 맵핑 테이블이기 때문에, 저장 매체(140)에 저장(또는, 백업)되지 않는다(S150 단계). 반면, 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블은 저장 매체(140)에 저장(또는, 백업)된다(S160 단계). 전원이 공급된 후 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블은 동작 메모리(135)에 로딩되고, 컨트롤러(130)에 의해서 참조된다.
도 8은 본 발명의 제 2 실시 예에 따른 데이터 저장 장치의 동작을 설명하기 위한 순서도이다. 이하, 본 발명의 예시적인 실시 예에 따른 컴퓨팅 시스템의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
컴퓨팅 시스템(100)의 운영 체제는 데이터 저장 장치(120) 내에 저장된 파일(또는, 데이터)들을 유지 및 관리하기 위하여 파일 할당 테이블(file allocation table, FAT)을 관리한다. 이러한 파일 할당 테이블(FAT)은 데이터 저장 장치(120)에 저장되고, 필요에 따라 호스트(110)로 로딩되고 참조된다. 컨트롤러(130, 또는, 컨트롤러에 의해 구동되는 소프트웨어)는 파일 할당 테이블(FAT)과 같은 호스트(110)의 파일 시스템이 관리하는 메타데이터를 검색한다(S210 단계). 즉, 컨트롤러(130)는 저장 매체(140)에 저장된 데이터(또는, 파일)들 중 임시 데이터의 정보를 검색한다.
컨트롤러(130)는 호스트(110)의 파일 시스템이 관리하는 메타데이터를 검색하여, 임시 데이터(또는, 파일)를 추출한다. 이러한 임시 데이터는 컴퓨팅 시스템(100)의 전원 공급이 중단되면(예를 들면, 시스템 종료, 서든 파워 오프) 소실되어도 무관한 데이터(즉, 유효하지 않아도 되는 데이터)일 것이다. 예를 들면, 임시 데이터는 페이징(paging) 기법에 사용되는 페이징 파일(paging file) 또는 인터넷 임시 파일들을 포함할 것이다. 컨트롤러(130)는 임시 데이터가 추출되면, 추출된 임시 데이터의 논리 어드레스가 결정된다(S220 단계).
이후, 컨트롤러(130)는 임시 데이터의 논리 어드레스 정보를 참조하여 어드레스 맵핑 테이블을 분리한다(S230 단계). 즉, 컨트롤러(130)는 컴퓨팅 시스템(100)의 전원이 공급되는 동안 그리고 컴퓨팅 시스템(100)의 전원이 공급되지 않는 동안에도 유효한 데이터로서 보존되는 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블을 구성할 것이다. 또한, 컨트롤러(130)는 컴퓨팅 시스템(100)의 전원이 공급되는 동안에만 유효한 데이터로서 보존되는 임시 데이터의 어드레스 맵핑 테이블을 구성할 것이다. 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블과 임시 데이터의 어드레스 맵핑 테이블은 각각 분리되어 구성될 것이다. 이러한 어드레스 맵핑 테이블의 재구성 동작은 도 5를 통하여 설명된 바와 동일하게 수행될 것이다.
호스트(110)로부터 데이터가 전송되면 어드레스 맵핑 테이블은 갱신(update)될 것이다. 따라서, 컴퓨팅 시스템(100)의 동작이 종료되면(예를 들면, 시스템 종료) 어드레스 맵핑 테이블은 저장 매체(140)에 저장된다. 또는, 컴퓨팅 시스템(100)의 전원 공급이 갑작스럽게 중단될 때(예를 들면, 서든 파워 오프)를 대비하여 어드레스 맵핑 테이블은 저장 매체(140)에 주기적으로 또는 필요에 따라 저장된다. 저장 매체(140)에 저장된 임시 데이터를 추출하여 구성된 임시 데이터의 어드레스 맵핑 테이블은 컴퓨팅 시스템(100)의 전원이 공급되는 동안에만 유효한 어드레스 맵핑 테이블이기 때문에, 저장 매체(140)에 저장(또는, 백업)되지 않는다(S240 단계). 반면, 영구(또는, 유효) 데이터의 어드레스 맵핑 테이블은 저장 매체(140)에 저장(또는, 백업)되고(S250 단계), 전원이 공급된 후 동작 메모리(135)에 로딩되고 참조될 것이다. 이러한 어드레스 맵핑 테이블의 저장 동작은 도 6을 통하여 설명된 바와 동일하게 수행될 것이다.
본 발명의 실시 예들에 따르면, 어드레스 맵핑 테이블이 영구(또는, 유효) 데이터와 임시 데이터의 어드레스 맵핑 테이블로 각각 분리되어 구성된다. 어드레스 맵핑 테이블의 분리는, 예를 들면, 호스트(110)로부터 제공되는 티디엠(TDM) 명령에 따라 수행될 것이다. 다른 예로써, 어드레스 맵핑 테이블의 분리는 저장 매체(140)에 저장된 임시 데이터를 검색하여 수행될 것이다. 임시 데이터의 어드레스 맵핑 테이블은 컴퓨팅 시스템(100)의 전원이 공급되는 동안에만 유효한 어드레스 맵핑 테이블이기 때문에, 저장 매체(140)에 저장(또는, 백업)되지 않는다. 즉, 저장 매체(140)에 저장되어야 하는 어드레스 맵핑 테이블의 크기가 감소될 것이다. 따라서, 어드레스 맵핑 테이블의 저장(또는, 백업) 동작이 빠르게 수행될 것이다. 즉, 호스트(110)의 요청에 대한 응답 시간이 단축될 것이다. 빠른 응답을 통해 데이터 저장 장치(120) 또는 컴퓨팅 시스템(100)의 성능은 향상될 것이다. 또한, 저장되어야 하는 어드레스 맵핑 테이블의 크기가 감소되기 때문에, 저장 매체(140)를 구성하는 플래시 메모리 장치의 소거-쓰기 싸이클(erase-write cycle) 횟수가 감소될 것이다.
100 : 컴퓨팅 시스템
110 : 호스트
120 : 데이터 저장 장치
130 : 컨트롤러
131 : 프로세싱 유닛
132 : 호스트 인터페이스
133 : 메모리 인터페이스
134 : 에러 정정 유닛
135 : 동작 메모리
140 : 저장 매체

Claims (10)

  1. 호스트;
    데이터를 저장하기 위한 저장 매체; 그리고
    상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하되,
    상기 호스트로부터 임시 데이터 관리 명령과 임시 데이터의 어드레스가 전송될 때, 상기 컨트롤러는 유효 데이터의 논리 어드레스를 물리 어드레스로 맵핑하기 위한 제 1 어드레스 맵핑 테이블과 상기 임시 데이터의 논리 어드레스를 물리 어드레스로 맵핑하기 위한 제 2 어드레스 맵핑 테이블을 구성하고, 상기 제 2 어드레스 맵핑 테이블이 상기 저장 매체에 저장되는 것을 금지하는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 임시 데이터는 상기 저장 매체에 저장된 데이터들 중에서 소실되어도 상기 호스트에서 오류가 발생되지 않는 데이터인 것을 특징으로 하는 컴퓨팅 시스템.
  3. 제 2 항에 있어서,
    상기 임시 데이터 관리 명령은 상기 임시 데이터의 정보를 전송하기 위한 명령인 것을 특징으로 하는 컴퓨팅 시스템.
  4. 제 1 항에 있어서,
    상기 저장 매체와 상기 컨트롤러는 데이터 저장 장치로 구성되는 컴퓨팅 시스템.
  5. 제 1 항에 있어서,
    상기 컨트롤러는 상기 임시 데이터 관리 명령이 전송된 후, 상기 제 1 어드레스 맵핑 테이블과 상기 제 2 어드레스 맵핑 테이블을 분리하는 컴퓨팅 시스템.
  6. 제 4 항에 있어서,
    상기 임시 데이터 관리 명령은 상기 호스트와 상기 데이터 저장 장치를 인터페이스하는 인터페이스 표준의 벤더 명령 전송 방식에 따라 전송되는 컴퓨팅 시스템.
  7. 데이터를 저장하기 위한 저장 매체; 그리고
    상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하되,
    상기 컨트롤러는 상기 저장 매체에 저장된 호스트의 메타데이터를 검색하여 임시 데이터를 추출하고, 추출 결과에 따라 유효 데이터의 논리 어드레스를 물리 어드레스로 맵핑하기 위한 제 1 어드레스 맵핑 테이블과 상기 임시 데이터의 논리 어드레스를 물리 어드레스로 맵핑하기 위한 제 2 어드레스 맵핑 테이블을 구성하고, 상기 제 2 어드레스 맵핑 테이블이 상기 저장 매체에 저장되는 것을 금지하는 데이터 저장 장치.
  8. 제 7 항에 있어서,
    상기 임시 데이터는 상기 저장 매체에 저장된 데이터들 중에서 소실되더라도 상기 호스트에서 오류가 발생되지 않는 데이터인 것을 특징으로 하는 데이터 저장 장치.
  9. 제 7 항에 있어서,
    상기 컨트롤러는 상기 임시 데이터가 추출된 후, 상기 제 1 어드레스 맵핑 테이블과 상기 제 2 어드레스 맵핑 테이블을 분리하는 데이터 저장 장치.
  10. 제 7 항에 있어서,
    상기 컨트롤러는 동작 메모리를 포함하되,
    상기 데이터 저장 장치가 리부팅된 후 상기 제 2 어드레스 맵핑 테이블이 상기 동작 메모리로 로딩되는 것이 금지되는 데이터 저장 장치.
KR1020100022361A 2010-03-12 2010-03-12 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 KR101678911B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100022361A KR101678911B1 (ko) 2010-03-12 2010-03-12 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
US13/025,584 US8914608B2 (en) 2010-03-12 2011-02-11 Data storage device and computing system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100022361A KR101678911B1 (ko) 2010-03-12 2010-03-12 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20110103165A KR20110103165A (ko) 2011-09-20
KR101678911B1 true KR101678911B1 (ko) 2016-11-23

Family

ID=44561044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100022361A KR101678911B1 (ko) 2010-03-12 2010-03-12 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템

Country Status (2)

Country Link
US (1) US8914608B2 (ko)
KR (1) KR101678911B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063728B2 (en) * 2010-03-17 2015-06-23 Apple Inc. Systems and methods for handling hibernation data
CN101930404B (zh) * 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
US8949508B2 (en) * 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling
EP2761464B1 (en) * 2011-09-30 2018-10-24 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9213632B1 (en) 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
KR101987740B1 (ko) 2012-07-09 2019-06-11 에스케이하이닉스 주식회사 불휘발성 메모리 장치의 채널 특성을 추정하기 위한 방법
KR102282952B1 (ko) 2014-12-15 2021-07-30 삼성전자주식회사 스토리지 장치의 동작 방법
TWI575374B (zh) * 2015-08-04 2017-03-21 群聯電子股份有限公司 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元
KR102532581B1 (ko) * 2016-03-17 2023-05-17 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
CN107544912B (zh) * 2016-06-29 2021-09-03 北京忆恒创源科技股份有限公司 一种日志记录方法、加载方法及其装置
KR20180061851A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템
CN111984547B (zh) * 2020-08-21 2022-11-11 苏州浪潮智能科技有限公司 一种地址映射表管理装置、方法、系统及计算机存储介质
US11567920B2 (en) * 2020-09-15 2023-01-31 Sap Se Master data mapping scheme permitting querying

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300037A1 (en) * 2006-06-23 2007-12-27 Microsoft Corporation Persistent flash memory mapping table
US20080016295A1 (en) * 2006-07-14 2008-01-17 Sun Microsystems, Inc. Reducing bitmap management overhead

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243110A (ja) * 1999-12-20 2001-09-07 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
KR100449708B1 (ko) 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
KR20050024322A (ko) 2002-06-19 2005-03-10 하이퍼스톤 아게 블록 단위로 소거될 수 있는 메모리의 관리 데이터레코드를 복원하는 방법
JP2005222202A (ja) 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd 不揮発性記憶装置のデータ保護方法
EP1895418B1 (en) * 2005-12-09 2015-04-01 Panasonic Corporation Nonvolatile memory device, method of writing data, and method of reading out data
KR20080021211A (ko) * 2006-08-30 2008-03-07 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템
US7941692B2 (en) 2007-12-31 2011-05-10 Intel Corporation NAND power fail recovery
KR20100055565A (ko) * 2008-11-18 2010-05-27 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300037A1 (en) * 2006-06-23 2007-12-27 Microsoft Corporation Persistent flash memory mapping table
US20080016295A1 (en) * 2006-07-14 2008-01-17 Sun Microsystems, Inc. Reducing bitmap management overhead

Also Published As

Publication number Publication date
KR20110103165A (ko) 2011-09-20
US8914608B2 (en) 2014-12-16
US20110225388A1 (en) 2011-09-15

Similar Documents

Publication Publication Date Title
KR101678911B1 (ko) 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
CN106681931B (zh) 数据储存设备及其操作方法
CN107632939B (zh) 用于存储装置的映射表
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
US10013307B1 (en) Systems and methods for data storage devices to use external resources
US8234466B2 (en) Flash memory storage system applying SLC NAND flash memory and MLC NAND flash memory and data writing method thereof
KR20110119408A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US9443591B2 (en) Storage device out-of-space handling
US9436267B2 (en) Data storage device
US10459803B2 (en) Method for management tables recovery
US20190384681A1 (en) Data storage device and operating method thereof
US9372741B2 (en) Data storage device and operating method thereof
KR102515137B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8954692B2 (en) File protecting method and system, and memory controller and memory storage apparatus thereof
US20200387445A1 (en) Operating method of controller and memory system
US10877853B2 (en) Data storage device and operation method optimized for recovery performance, and storage system having the same
KR20200114086A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN111338566A (zh) 存储器子系统中的功率损耗保护
US20190361608A1 (en) Data storage device and operation method for recovery, and storage system having the same
US20210365183A1 (en) Apparatus and method for increasing operation efficiency in data processing system
KR20140090416A (ko) 데이터 저장 장치의 동작 방법
CN111367830B (zh) 主机参与的重建ftl表的方法及其存储设备
KR20150072485A (ko) 데이터 저장 장치 및 그것의 동작 방법

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 4