KR20140113103A - 호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법 - Google Patents

호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법 Download PDF

Info

Publication number
KR20140113103A
KR20140113103A KR1020130028055A KR20130028055A KR20140113103A KR 20140113103 A KR20140113103 A KR 20140113103A KR 1020130028055 A KR1020130028055 A KR 1020130028055A KR 20130028055 A KR20130028055 A KR 20130028055A KR 20140113103 A KR20140113103 A KR 20140113103A
Authority
KR
South Korea
Prior art keywords
storage device
host
file
deletion information
memory system
Prior art date
Application number
KR1020130028055A
Other languages
English (en)
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 KR1020130028055A priority Critical patent/KR20140113103A/ko
Priority to US14/204,438 priority patent/US20140280396A1/en
Publication of KR20140113103A publication Critical patent/KR20140113103A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD

Abstract

본 발명에 따른 호스트 및 제 1 및 제 2 저장 장치들을 포함하는 메모리 시스템을 포함하는 사용자 시스템의 동작 방법은 호스트에서 제 1 저장 장치에 저장된 제 1 원본 파일을 삭제하는 단계; 제 1 원본 파일의 사본인 제 1 사본 파일이 제 2 저장 장치에 저장된 경우, 호스트가 변환 삭제 정보를 메모리 시스템으로 전송하는 단계; 및 메모리 시스템이 수신된 변환 삭제 정보를 기반으로 제 2 저장 장치에 저장된 제 1 사본 파일을 소거하는 단계를 포함하고, 호스트는 제 1 저장 장치를 메모리 시스템의 주 장치로 인식한다.

Description

호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법{OPERATING METHOD FOR USER SYSTEM INCLUDING HOST AND MEMORY SYSTEM}
본 발명은 메모리 시스템에 관한 것으로 더욱 상세하게는 운영 체제 및 장치 드라이버를 포함하는 호스트, 그리고 제 1 및 제 2 저장 장치들을 포함하는 메모리 시스템을 포함하는 사용자 시스템의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화 인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억 장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile Memory Device) 및 불휘발성 메모리 장치(Nonvolatile Memory Devie)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다. 플래시 메모리 장치는 크게 노어 타입과 낸드 타입으로 구분된다.
불휘발성 메모리 장치를 기반으로, 대용량의 솔리드 스테이트 드라이브(SSD; Solid State Drive)가 제공되고 있다. 그러나, SSD의 안정성, 비용 등의 문제로 인하여, SSD는 기존의 HDD와 결합된 하이브리드 메모리 시스템으로 사용된다. 이 경우, HDD는 안정성, 저렴한 비용, 대용량 등의 장점을 기반으로 주 저장 매체로서 사용되고, SSD는 빠른 동작 속도의 장점을 기반으로 캐쉬(cache) 메모리로서 사용된다. 호스트에 포함된 운영 체제는 HDD의 장치 식별자(Device ID)를 기반으로 하이브리드 메모리 시스템을 인식한다.
본 발명의 목적은 하이브리드 메모리 시스템에 포함된 SSD에서 불필요한 데이터를 삭제함으로써 향상된 성능을 갖는 운영 체제 및 장치 드라이버를 포함하는 호스트와 제 1 및 제 2 저장 장치들을 포함하는 메모리 시스템을 포함하는 사용자 시스템의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 호스트 및 제 1 및 제 2 저장 장치들을 포함하는 메모리 시스템을 포함하는 사용자 시스템의 동작 방법은 상기 호스트가 상기 제 1 저장 장치에 저장된 제 1 원본 파일을 삭제하는 단계; 상기 호스트가 상기 제 1 원본 파일의 삭제 정보 및 매핑 테이블을 비교하고, 상기 비교 결과에 따라 상기 제 1 원본 파일의 사본인 제 1 사본 파일이 상기 제 2 저장 장치에 저장된 경우, 상기 호스트가 변환 삭제 정보를 상기 메모리 시스템으로 전송하는 단계; 및 상기 메모리 시스템이 상기 수신된 변환 삭제 정보를 기반으로 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 페이지를 무효 페이지로 설정하는 단계를 포함하고, 상기 호스트는 상기 제 1 저장 장치를 상기 메모리 시스템의 주 장치로 인식하고, 상기 제 2 저장 장치는 쓰기 전 소거 특성을 갖는다.
실시 예로서, 상기 변환 삭제 정보는 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 어드레스 정보를 포함한다.
실시 예로서, 상기 호스트는 상기 제 1 저장 장치의 파일 시스템을 기반으로 상기 메모리 시스템에 액세스한다.
실시 예로서, 상기 호스트가 변환 삭제 정보를 상기 메모리 시스템으로 전송하는 단계는 상기 호스트의 유휴 시간이 임계 시간 이상인 경우, 상기 호스트가 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계; 상기 호스트가 상기 삭제 정보 및 상기 매핑 테이블을 기반으로 상기 변환 삭제 정보를 생성하는 단계; 및 상기 호스트가 상기 생성된 변환 삭제 정보를 상기 메모리 시스템으로 전송하는 단계를 포함한다.
실시 예로서, 상기 호스트가 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계는 상기 호스트가 상기 제 1 저장 장치의 클러스터 할당 테이블을 기반으로 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계를 포함한다.
실시 예로서, 상기 호스트가 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계는 상기 호스트가 상기 호스트에 포함된 조각 모음 어플리케이션 프로그래밍 인터페이스를 기반으로 상기 제 1 파일의 삭제 정보를 검출하는 단계를 포함한다.
실시 예로서, 상기 매핑 테이블은 상기 제 1 및 제 2 저장 장치들의 어드레스들 사이의 관계 정보를 포함하고, 상기 호스트가 상기 삭제 정보 및 상기 매핑 테이블을 기반으로 상기 변환 삭제 정보를 생성하는 단계는, 상기 호스트가 상기 매핑 테이블에 상기 삭제 정보가 포함되었는지 판별하는 단계; 및 상기 판별 결과에 따라 상기 매핑 테이블에 상기 삭제 정보가 포함된 경우, 상기 호스트가 상기 삭제 정보에 대응하는 상기 변환 삭제 정보를 생성하는 단계를 포함한다.
실시 예로서, 상기 관계 정보는 상기 제 1 원본 파일이 저장된 상기 제 1 저장 장치의 어드레스 및 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 어드레스 사이의 관계 정보이다.
실시 예로서, 상기 제 1 저장 장치는 하드 디스크 드라이브이고, 상기 제 2 저장 장치는 솔리드 스테이트 드라이브이다.
실시 예로서, 상기 메모리 시스템이 상기 수신된 변환 삭제 정보를 기반으로 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 페이지를 무효 페이지로 설정하는 단계는, 상기 메모리 시스템이 상기 무효 페이지로 설정된 페이지의 정보를 상기 제 2 저장 장치에 포함된 메타 데이터에 저장하는 단계를 포함한다.
실시 예로서, 상기 메타 데이터에 저장된 무효 페이지로 설정된 페이지의 정보를 기반으로 상기 무효 페이지로 설정된 페이지에 저장된 데이터를 소거하는 단계를 더 포함한다.
본 발명의 다른 실시 예에 따른 운영 체제, 장치 드라이버를 포함하는 호스트 및 제 1 및 제 2 저장 장치들을 포함하는 메모리 시스템을 포함하는 사용자 시스템의 동작 방법은 상기 운영 체제가 제 1 원본 파일을 삭제하는 단계; 상기 운영 체제가 상기 제 1 원본 파일의 삭제 정보를 상기 장치 드라이버로 전송하는 단계; 상기 장치 드라이버가 상기 삭제 정보 및 매핑 테이블을 비교하는 단계; 및 상기 비교 결과에 따라 상기 매핑 테이블에 상기 삭제 정보가 포함된 경우, 상기 장치 드라이버가 상기 삭제 정보에 대응하는 변환 삭제 정보를 상기 메모리 시스템으로 전송하고, 상기 메모리 시스템이 상기 수신된 변환 삭제 정보에 대응하는 제 1 사본 파일이 저장된 제 2 저장 장치의 페이지를 무효 페이지로 설정하는 단계를 포함하고, 상기 운영 체제는 상기 제 1 저장 장치를 상기 메모리 시스템의 주 장치로 인식하고, 상기 매핑 테이블은 상기 제 1 및 제 2 저장 장치들에 함께 저장된 복수의 파일들에 대응하는 상기 제 1 및 제 2 저장 장치들의 어드레스들 사이의 관계 정보를 포함한다.
실시 예로서, 상기 삭제 정보는 상기 제 1 파일이 저장된 상기 제 1 저장 장치의 어드레스 정보를 포함한다.
실시 예로서, 상기 변환 삭제 정보는 상기 제 1 파일이 저장된 상기 제 2 저장 장치의 어드레스 정보를 포함한다.
실시 예로서, 상기 제 1 사본 파일은 상기 제 1 원본 파일의 복사본이고, 상기 제 2 저장 장치에 저장된다.
본 발명에 따르면, 운영 체제에 의해 파일이 삭제된 경우, 장치 드라이버는 삭제 정보를 획득하여 삭제된 파일을 제 2 저장 장치에서 소거할 수 있다. 제 2 저장 장치는 소거 상태(또는 프로그램 가능한 상태)의 페이지들을 확보함으로써 향상된 성능을 갖는 메모리 시스템이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 2는 도 1에 호스트의 동작 방법을 보여주는 순서도이다.
도 3 및 도 4는 도 2에 도시된 동작 방법을 상세하게 설명하기 위한 도면들이다.
도 5는 본 발명의 다른 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 6는 도 5에 도시된 호스트의 동작 방법을 보여주는 순서도이다.
도 7은 도 6에 도시된 S220 단계를 상세하게 설명하기 위한 도면이다.
도 8은 도 6에 도시된 S220 단계의 또 다른 실시 예를 설명하기 위한 도면이다.
도 9는 본 발명의 적용 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 10은 본 발명의 다른 적용 예에 따른 사용자 시스템을 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세하게 설명하기 위하여 본 발명의 실시 예들을 첨부된 도면들을 참조하여 설명하기로 한다.
본 발명에 따른 사용자 시스템은 HDD 및 SSD를 포함하는 하이브리드 메모리 시스템 또는 이종 메모리 시스템을 기반으로 동작한다. HDD는 원본 파일들을 저장하고, SSD는 사본 파일들을 저장한다. SDD의 원본 파일이 호스트에 의해 삭제될 경우, 호스트는 삭제된 원본 파일에 대응하는 사본파일을 SSD에서 삭제할 수 있도록 변환 삭제 정보를 메모리 시스템으로 전송한다. 메모리 시스템은 수신된 변환 삭제 정보에 대응하는 사본 파일을 SSD에서 소거(erase)할 수 있다. 따라서, 삭제된 원본 파일들에 대응하는 사본 파일들을 SSD에서 소거함으로써, 향상된 성능을 갖는 사용자 시스템이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 1을 참조하면, 사용자 시스템(100)은 호스트(110) 및 메모리 시스템(120)을 포함할 수 있다. 예시적으로, 사용자 시스템(100)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP (portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB (Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등과 같은 컴퓨팅 시스템들 중 하나로 제공될 수 있다.
호스트(110)는 메모리 시스템(120)을 액세스(access)하도록 구성된다. 예를 들어, 호스트(110)는 데이터를 메모리 시스템(120)에 저장할 수 있다. 호스트(110)는 메모리 시스템(120)에 저장된 데이터를 읽을 수 있다. 호스트(110)는 메모리 시스템(120)에 저장된 데이터를 기반으로 다양한 동작을 수행할 수 있다.
호스트(110)는 운영 체제(111), 파일 시스템(112), 및 장치 드라이버(113)를 포함한다. 운영 체제(111)는 사용자 시스템(100)의 제반 동작을 제어할 수 있다. 예시적으로, 운영 체제(111)는 윈도우, 윈도우 CE, 윈도우 모바일, 맥 OS, 리눅스, 유닉스, VMS, OS/2, 솔라리스(solaris), Symbian OS, Palm OS, BSD, 도스, 안드로이드, 바다 OS 등을 포함할 수 있다.
파일 시스템(112)은 메모리 시스템(120)의 저장 공간을 관리하고, 메모리 시스템(120)에 저장되는 데이터를 관리한다. 예를 들어, 운영 체제(111)는 파일 시스템(112)을 기반으로 메모리 시스템(120)의 데이터를 액세스할 수 있다. 예시적으로, 파일 시스템(112)은 FAT(File Allocation Table), FAT32, NTFS(NT File System), HFS(Hierarchical File System), JSF2(Journaled File System2), XFS, ODS-5(On-Disk Structure-5), UDF, ZFS, UFS(Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 수 있다. 예시적으로, 파일 시스템(112)은 제 1 저장 장치(121)의 저장 공간을 관리할 수 있다.
장치 드라이버(113)는 호스트(110)에 포함된 장치들 및 호스트(110)와 연결된 장치들을 제어하기 위한 프로그램이다. 장치 드라이버(113)는 운영 체제(111)의 일반적인 입출력 명령어들을 각 장치들에 대응하는 메시지로 변환하는 동작을 수행한다. 장치 드라이버(113)는 메모리 시스템(120)을 제어할 수 있다. 예를 들어, 장치 드라이버(113)는 운영 체제(111)로부터 제 1 파일의 읽기 요청을 수신할 수 있다. 장치 드라이버(113)는 수신된 읽기 요청에 응답하여, 수신된 읽기 요청에 대응하는 메시지를 메모리 시스템(120)에 전송할 수 있다.
계속해서 도 1을 참조하면, 메모리 시스템(120)은 호스트(110)의 동작에 의해 처리되는 데이터를 저장할 수 있다. 메모리 시스템(120)은 사용자 시스템(100)의 보조 기억 장치(seconday memory device)로 제공될 수 있다. 메모리 시스템(120)은 제 1 및 제 2 저장 장치들(121, 122)을 포함한다. 제 1 및 제 2 저장 장치들(121, 122)은 서로 다른 구조를 가질 수 있다. 예를 들어, 제 1 저장 장치(121)는 하드 디스크 드라이브(HDD; Hard Disk Drive)일 수 있다. 제 2 저장 장치(122)는 솔리드 스테이트 드라이브(SSD; Solid State Drive)일 수 있다. 제 1 저장 장치(121)는 제 2 저장 장치(122)보다 큰 저장 용량을 가질 것이다. 제 2 저장 장치(122)는 제 1 저장 장치(121)보다 빠른 동작 속도(예를 들어, 데이터의 쓰기 및 읽기 속도)를 가질 것이다.
예시적으로, 호스트(110)는 메모리 시스템(120)의 제 1 저장 장치(121)를 메모리 시스템(120)의 주 저장 장치로 인식할 수 있다. 이 경우, 호스트(110)는 제 1 저장 장치(121)의 장치 정보를 수집할 수 있다. 호스트(110)는 수신된 장치 정보를 기반으로 메모리 시스템(120)을 액세스할 수 있다. 운영 체제(111)에 의해 제 1 저장 장치(121)에 저장된 제 1 파일이 삭제된 경우, 운영 체제(111)는 파일 시스템(112)에 제 1 파일의 삭제 마크를 기록한다. 제 1 저장 장치(121)는 덮어 쓰기(overwrite) 기능을 지원하기 때문에, 제 1 저장 장치(121)에서의 추가적인 삭제 동작이 불필요하다.
예시적으로, 제 2 저장 장치(122)는 메모리 시스템(120)의 캐시 SSD로 제공될 수 있다. 즉, 제 2 저장 장치(122)는 제 1 저장 장치(121)에 저장된 데이터 중 호스트(110)로부터 수신된 읽기 요청 중 임계값 이상의 읽기 요청에 대응하는 파일을 저장할 것이다. 예를 들어, 메모리 시스템(120)은 제 1 저장 장치(121)에 저장된 원본 파일 중 읽기 요청이 임계값 이상인 원본 파일을 복사하여 제 2 저장 장치(122)에 사본 파일을 저장할 수 있다. 호스트(110)로부터 수신된 읽기 요청에 대응하는 원본 파일이 제 2 저장 장치(122)에 저장된 사본 파일과 동일한 경우, 메모리 시스템(120)은 제 2 저장 장치(122)에 저장된 사본 파일을 호스트(110)로 전송하기 때문에, 사용자 시스템(100)의 성능이 향상된다.
예시적으로, 제 2 저장 장치(122)는 메타 데이터(122a)를 저장할 수 있다. 메타 데이터(122a)는 제 2 저장 장치(122)에 저장되는 사용자 데이터의 정보일 수 있다. 또는 메타 데이터(122a)는 저장되는 파일의 논리적 어드레스 및 제 2 저장 장치(122)의 물리적 어드레스의 매핑 테이블을 포함할 수 있다.
호스트(110)에 의해서 제 1 저장 장치(121)에 저장된 원본 파일이 삭제되는 경우, 호스트(110)는 제 1 저장 장치(121)를 메인 저장 장치로 인식하기 때문에, 파일 시스템(111)에 제 1 파일의 삭제 마크만 표시하고, 실제 원본 파일을 삭제하지 않을 것이다. 즉, 제 2 저장 장치(122)에 저장된 사본 파일은 유효 데이터로 남는다. 제 2 저장 장치(122)는 사본 파일을 유효 데이터로 인식함으로써, 가비지 컬렉션, 머지 등과 같은 동작에서 오버헤드가 발생할 수 있다. 따라서, 메모리 시스템의 전체적인 성능이 하락할 수 있다. 이를 방지하기 위한 사용자 시스템(100)의 구성 요소들의 동작 방법이 이하의 도면들을 참조하여 상세하게 설명된다.
도 2는 도 1에 도시된 호스트의 동작을 보여주는 순서도이다. 예시적으로, 제 1 저장 장치(121)는 제 1 원본 파일(FILE1)을 저장하고, 제 2 저장 장치(122)는 제 1 원본 파일(FILE1)의 복사본인 제 1 사본 파일(FIL1')을 저장하는 것으로 가정한다.
도 2를 참조하면, S110 단계에서, 호스트(110)는 제 1 원본 파일(FILE1)을 삭제할 수 있다. 예를 들어, 호스트(110)에 포함된 운영 체제(111)는 제 1 저장 장치(121)를 메모리 시스템(120)의 주 장치로 인식할 수 있다. 이 경우, 파일 시스템(112)은 제 1 저장 장치(121)의 저장 공간을 관리하도록 구성될 것이다. 따라서, 파일 시스템(112)에 포함된 제 1 원본 파일(FILE1)의 어드레스 정보가 삭제될 경우, 운영 체제(111)는 제 1 저장 장치(121)에 저장된 제 1 원본 파일(FILE1)이 삭제된 것으로 인식할 것이다.
S120 단계에서, 호스트(110)에 포함된 운영 체제(111)는 장치 드라이버(113)로 삭제 정보(DEL)를 전송할 수 있다. 삭제 정보(DEL)는 제 1 원본 파일(FILE1)의 어드레스 정보를 포함한다.
S130 단계에서, 호스트(110)는 수신된 삭제 정보(DEL) 및 매핑 테이블을 비교할 수 있다. 매핑 테이블(231)은 제 1 및 제 2 저장 장치들(121, 122) 간의 관계를 가리킨다. 예를 들어, 매핑 테이블은 제 1 원본 파일(FILE1)이 저장된 제 1 저장 장치(121)의 어드레스 및 제 1 사본 파일(FILE1')이 저장된 제 2 저장 장치(122)의 어드레스 사이의 관계에 대한 정보를 포함할 수 있다. 장치 드라이버(113)는 수신된 삭제 정보(DEL)가 매핑 테이블에 포함되는지 판별할 수 있다. 수신된 삭제 정보(DEL)가 매핑 테이블에 포함된 경우, 제 1 파일(FILE1)은 제 1 저장 장치(121)에 저장되고, 제 1 파일(FILE1)의 복사본인 제 1 사본 파일(FILE1`)은 제 2 저장 장치(122)에 저장되어 있을 것이다. 이와 반대로, 수신된 삭제 정보(DEL)가 매핑 테이블에 포함되지 않은 경우, 제 1 파일(FILE1)은 제 1 저장 장치(121)에만 저장되어 있을 것이다.
S140 단계에서, S130 단계의 비교 결과에 따라, 수신된 삭제 정보(DEL)가 매핑 테이블에 포함된 경우, 호스트(110)는 변환된 삭제 정보(DEL`)를 메모리 시스템(120)에 전송할 수 있다. 변환 삭제 정보(DEL`)는 제 1 파일(FILE1)이 저장된 제 2 저장 장치(122)의 어드레스를 가리킨다. 예시적으로, 장치 드라이버(113)는 변환 삭제 정보(DEL`)를 제 2 저장 장치(122)로 전송할 수 있다.
예시적으로, 메모리 시스템(120)은 수신된 변환 삭제 정보(DEL`)에 응답하여, 제 1 사본 파일(FILE1`)이 저장된 제 2 저장 장치(122)의 하나 또는 그 이상의 페이지들을 무효 페이지(INVAILD)로 설정할 수 있다.
이 후, 제 2 저장 장치(122)에 저장된 제 1 사본 파일(FILE1`)은 가비지 컬렉션, 머지 동작 등을 통해 소거될 수 있다. 예를 들어, 제 2 저장 장치(122)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 중 제 1 메모리 블록은 제 1 사본 파일(FILE1`)의 데이터를 포함할 것이다. 또한, 제 1 메모리 블록은 제 1 사본 파일(FILE1`) 이외의 다른 데이터를 포함할 수 있다. 메모리 시스템(120)은 제 1 메모리 블록의 데이터를 자유 메모리 블록인 제 2 메모리 블록으로 복사할 수 있다. 이 후, 메모리 시스템(120)은 제 1 메모리 블록의 소거 동작(erase opaeration)을 수행할 수 있다. 이 후, 메모리 시스템(120)은 제 2 메모리 블록의 데이터 중 제 1 사본 파일(FILE1`)의 데이터를 제외한 데이터를 제 1 메모리 블록으로 복사할 것이다. 상술된 동작을 기반으로 메모리 시스템(120)은 제 2 저장 장치(122)에 저장된 제 1 사본 파일(FILE1`)을 소거할 수 있다.
상술된 본 발명의 실시 예에 따르면, 운영 체제가 메모리 시스템에 저장된 파일을 삭제할 경우, 운영 체제는 장치 드라이버로 삭제된 파일의 삭제 정보를 전송한다. 장치 드라이버는 수신된 삭제 정보 및 매핑 테이블을 기반으로 제 2 저장 장치가 삭제 정보에 대응되는 파일을 포함하는지 판별하여, 변환 삭제 정보를 메모리 시스템으로 전송한다. 메모리 시스템은 수신된 변환 삭제 정보를 기반으로 제 2 저장 장치에 저장된 데이터를 소거할 수 있다. 따라서, 제 2 저장 장치가 불필요한 데이터를 포함하지 않음으로써, 향상된 성능을 갖는 메모리 시스템이 제공된다.
도 3 및 도 4는 도 1에 도시된 사용자 시스템의 동작을 설명하기 위한 도면들이다. 먼저 도 3을 참조하면, 제 1 저장 장치(121)는 제 1 내지 제 6 클러스터들(C_1~C_6)을 포함할 수 있다. 제 2 저장 장치(122)는 제 1 내지 제 5 페이지들(P_1~P_5)을 포함할 수 있다. 클러스터는 제 1 저장 장치(121)의 데이터 저장 공간의 단위를 가리킨다. 페이지는 제 2 저장 장치(122)의 읽기 및 쓰기의 단위를 가리킨다. 간결한 설명을 위하여, 클러스터 및 페이지 단위를 기반으로 설명되나, 본 발명에 따른 메모리 시스템에 포함된 저장 장치들의 구성 단위가 이에 한정되는 것은 아니다.
운영 체제(111)는 제 1 저장 장치(121)를 메모리 시스템(120)의 주 장치로 인식할 것이다. 운영 체제(111)는 파일 시스템(112)을 기반으로 메모리 시스템(120)을 액세스할 수 있다. 메모리 시스템(120)은 제 1 내지 제 4 원본 파일들(FILE1~FILE4)을 제 1 저장 장치(121)에 저장할 수 있다.
파일 시스템(112)은 제 1 내지 제 4 원본 파일들(FILE1~FILE4)이 저장된 어드레스 정보를 포함할 수 있다. 예를 들어, 파일 시스템(112)은 제 1 내지 제 4 원본 파일들(FILE1~FILE4) 및 제 1 저장 장치(121)의 클러스터들(C_1~C_6)의 관계 정보를 포함할 수 있다.
제 1 원본 파일(FILE1)은 제 1 클러스터(C_1)에 저장된다. 제 2 원본 파일(FILE2)은 제 2 및 제 3 클러스터들(C_2, C_3)에 저장된다. 제 3 및 제 4 원본 파일들(FILE3, FILE4)은 각각 제 4 및 제 5 클러스터들(C_4, C_5)에 저장된다.
운영 체제(111)는 제 1 및 제 2 원본 파일들(FILE1, FILE2)에 대한 읽기 요청(I/O Request)을 장치 드라이버(113)로 전송할 수 있다. 장치 드라이버(113)는 수신된 읽기 요청에 응답하여, 메모리 시스템(120)에 저장된 제 1 및 제 2 원본 파일들(FILE1, FILE2)을 읽을 수 있다.
예시적으로, 운영 체제(111)에 의해 제 1 및 제 2 원본 파일들(FILE1, FILE2)에 대한 임계값 이상의 읽기 요청이 발생할 수 있다. 이 경우, 메모리 시스템(120)은 성능 향상을 위하여 제 1 및 제 2 원본 파일들(FILE1, FILE2)을 복사하여 제 2 저장 장치(122)에 제 1 및 제 2 사본 파일들(FILE1', FILE2')를 저장할 것이다. 이 때, 제 1 및 제 2 저장 장치들(121, 122)의 관계를 가리키는 매핑 테이블(113a)이 구성될 것이다. 예를 들어, 매핑 테이블(113a)은 제 1 저장 장치(121)에서 제 1 원본 파일(FILE1)이 저장된 제 1 클러스터(C_1) 및 제 2 저장 장치(121)에서 제 1 사본 파일(FILE1`)이 저장된 제 2 페이지(P_2)의 대응 관계를 포함할 것이다. 또한, 매핑 테이블은 제 1 저장 장치(121)에서 제 2 원본 파일(FILE2)이 저장된 제 2 및 제 3 클러스터들(C_2, C_3) 및 제 2 저장 장치(122)에서 제 2 사본 파일(FILE2')이 저장된 제 3 및 제 4 페이지들(P_3, P_4)의 대응 관계를 포함할 것이다.
비록 도면에 도시되지 않았지만, 매핑 테이블(113a)은 제 1 또는 제 2 저장 장치들(121 또는 122)에 저장될 수 있다. 호스트(110)는 초기 부팅시, 파일 시스템(110)과 함께 매핑 테이블(113a)을 읽을 수 있다. 또한, 제 1 저장 장치(121)에 저장된 원본 파일이 제 2 저장 장치(122)로 복사될 경우, 매핑 테이블(113a)은 갱신될 것이다. 호스트(110)는 갱신된 매핑 테이블(미도시)을 주기적으로 읽을 수 있다. 또는 호스트(110)는 파일의 삭제가 발생할 경우, 제 1 또는 제 2 저장 장치(121, 122)에 저장된 매핑 테이블(113a)을 읽을 수 있을 것이다.
장치 드라이버(113)는 매핑 테이블(113a)을 기반으로, 수신된 읽기 요청에 대응하는 파일이 제 2 저장 장치(122)에 저장되었는지 판별할 수 있다. 장치 드라이버(113)는 판별 결과에 따라, 제 2 저장 장치(122)에 저장된 데이터가 읽어지도록 메모리 시스템(120)에 제어신호를 전송할 수 있다.
예시적으로, 제 2 저장 장치(122)의 메타 데이터(122a)는 제 1 및 제 2 사본 파일들(FILE1`, FILE2`)의 논리적 어드레스 및 제 2 저장 장치(122)의 물리적 어드레스의 매핑 관계를 포함할 수 있다. 제 2 저장 장치(122)는 메타 데이터(122a)에 저장된 매핑 관계를 참조하여 동작할 수 있다.
다음으로 도 4를 참조하면, 운영 체제(111)는 제 2 원본 파일(FILE2)을 삭제할 수 있다. 운영 체제(111)는 제 2 원본 파일(FILE2)의 삭제 사실을 파일 시스템(112)에 기록할 것이다. 파일 시스템(112)에 제 2 원본 파일(FILE2)의 삭제 사실이 기록됨으로써, 제 1 저장 장치(121)에 저장된 제 2 파일(FILE2)의 데이터들은 무효 데이터(INVAILD)가 될 것이다. 다시 말해서, 제 1 저장 장치(121)의 제 2 및 제 3 클러스터들(C_2, C_3)에 새로운 데이터가 덮어쓰기 될 수 있다.
운영 체제(111)는 제 2 원본 파일(FILE2)에 대한 삭제 정보(DEL)를 장치 드라이버(113)로 전송할 수 있다. 삭제 정보(DEL)는 제 2 원본 파일(FILE2)이 저장된 제 1 저장 장치(121)의 클러스터들(C_2, C_3)의 정보를 가리킨다.
장치 드라이버(113)는 수신된 삭제 정보(DEL) 및 매핑 테이블(113a)을 비교할 수 있다. 매핑 테이블(113a)은 제 1 및 제 2 저장 장치들(121, 122) 간의 대응 관계를 포함할 것이다. 예를 들어, 매핑 테이블(113a)은 제 1 원본 파일(FILE1)이 저장된 제 1 클러스터(C_1) 및 제 2 사본 파일(FILE1`)이 저장된 제 2 페이지(P_2)의 관계 정보 및 제 2 원본 파일(FILE2)이 저장된 제 2 및 제 3 클러스터들(C_2, C_3) 및 제 2 사본 파일(FILE2`)이 저장된 제 3 및 제 4 페이지들(P_3, P_4)의 관계 정보를 포함한다. 장치 드라이버(113)는 매핑 테이블(231) 및 수신된 삭제 정보(DEL)를 기반으로, 수신된 삭제 정보(DEL)에 대응하는 제 2 원본 파일(FILE)이 복사된 제 2 사본 파일(FILE2`)이 제 2 저장 장치(122)에 저장되어 있는지 판별할 수 있다.
판별 결과에 따라, 수신된 삭제 정보(DEL)에 대응하는 제 2 사본 파일(FILE2`)이 제 2 저장 장치(122)에 저장된 경우, 장치 드라이버(113)는 변환 삭제 정보(DEL`)를 메모리 시스템(120)으로 전송할 수 있다. 예를 들어, 운영 체제(111)에 의해 삭제된 제 2 원본 파일(FILE2)의 복사본인 제 2 사본 파일(FILE2`)은 메모리 시스템(120) 상에서 불필요한 데이터일 것이다. 장치 드라이버(113)는 메모리 시스템(120)이 제 2 저장 장치(122)에 저장된 제 2 사본 파일(FILE2`)을 무효화할 수 있도록 변환 삭제 정보(DEL`)를 메모리 시스템(120)으로 전송할 수 있다. 예시적으로, 변환 삭제 정보(DEL`)는 제 2 사본 파일(FILE2)이 저장된 제 2 저장 장치(122)의 페이지들(P_3, P_4)의 정보를 가리킬 수 있다.
메모리 시스템(120)은 수신된 변환 삭제 정보(DEL`)에 응답하여, 제 2 사본 파일(FILE2`)이 저장된 제 3 및 제 4 페이지들(P_3, P4)을 무효 페이지들(INVAILD)로 설정할 수 있다. 예시적으로, 메모리 시스템(120)은 가비지 컬렉션, 머지 동작 등을 기반으로 무효 페이지들(INVAILD)로 설정된 페이들에 저장된 데이터들을 소거(erase)할 수 있다. 즉, 제 2 사본 파일(FILE2`)을 저장하고 있던 제 3 및 제 4 페이지들(P_3, P_4)은 소거 상태(ERASE)가 되어 제 3 및 제 4 페이지들(P_3, P_4)에 다른 데이터가 프로그램될 수 있을 것이다.
예시적으로, 제 2 저장 장치(122)의 메타 데이터(122a)는 제 3 및 제 4 페이지들(P_3, P_4)의 무효 페이지(INVAILD) 정보를 저장할 수 있다. 제 2 저장 장치(122)는 메타 데이터(122a)에 저장된 제 3 및 제 4 페이지들(P_3, P_4)의 무효 페이지(INVAILD) 정보를 기반으로 제 3 및 제 4 페이지들(P_3, P_4)의 소거 동작을 수행할 수 있다.
판별 결과에 따라, 수신된 삭제 정보(DEL)에 대응하는 제 2 파일(FILE2)이 제 2 저장 장치(122)에 저장되지 않은 경우, 장치 드라이버(113)는 별도의 동작을 수행하지 않을 것이다.
상술된 본 발명의 실시 예에 따르면, HDD로서 제공되는 제 1 저장 장치 및 SSD로서 제공되는 제 2 저장 장치에 함께 저장된 파일이 삭제되는 경우, 메모리 시스템은 호스트로부터 삭제 정보를 수신하여, 제 2 저장 장치에 저장된 파일을 삭제할 수 있다. 따라서, 소거 상태(또는 프로그램 가능한 상태)의 페이지들이 확보됨으로써 향상된 성능을 갖는 메모리 시스템이 제공된다.
도 5는 본 발명의 다른 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 5를 참조하면, 사용자 시스템(200)은 호스트(210) 및 메모리 시스템(220)을 포함한다. 호스트(210)는 운영 체제(211), 파일 시스템(212), 및 장치 드라이버(213)을 포함한다. 파일 시스템(212)은 클러스터 할당 테이블(212a)을 포함한다. 장치 드라이버(213)는 매핑 테이블(213a)을 포함한다. 메모리 시스템(220)은 제 1 및 제 2 저장 장치들(221, 222)을 포함한다. 제 1 저장 장치(221)는 제 1 내지 제 6 클러스터들(C_1~C_6)을 포함할 수 있다. 제 2 저장 장치(222)는 제 1 내지 제 6 페이지들(P_1~P_6)을 포함할 수 있다. 도 5의 호스트(210), 파일 운영 체제(211), 파일 시스템(212), 장치 드라이버(213a), 메모리 시스템(220), 그리고 제 1 및 제 2 저장 장치들(221, 222)은 도 1 및 도 3을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다. 이하에서, 도 5의 사용자 시스템(200)과 도 1의 사용자 시스템(100)의 차이점이 중점적으로 설명된다.
도 3 및 도 5를 참조하면, 외부 장치의 제어 또는 미리 정해진 동작에 의해 메모리 시스템(200)에 저장된 제 2 원본 파일(FILE2, 도 3을 참조)이 삭제될 수 있다. 이 경우, 운영 체제(211)는 파일 시스템(212)에 제 2 원본 파일(FILE2)의 삭제 사실을 마크할 수 있다. 예를 들어, 운영 체제(211)는 파일 시스템(212)에 포함된 클러스터 할당 테이블(212a)에 제 2 원본 파일(FILE2)에 대응되는 비트를 "데이터 0"으로 기록할 수 있다. 이 과정은 도 7을 참조하여 더욱 상세하게 설명된다.
클러스터 할당 테이블(212a)에 제 2 원본 파일(FILE2)의 삭제 사실이 마크될 경우, 제 1 저장 장치(212)에서 제 2 원본 파일(FILE2, 도 3 참조)을 저장하고 있던 제 2 및 제 3 클러스터들(C_2, C_3)은 무효 상태(INVAILD)가 될 것이다.
이 후, 임계 시간(tth) 이상의 유휴 시간(tidle)이 발생한 경우, 장치 드라이버(213)는 파일 시스템(212)을 기반으로 변환 삭제 정보(DEL')를 생성할 수 있다. 예를 들어, 파일 시스템(212)에 포함된 클러스터 할당 테이블(212a)은 제 2 파일(FILE2)에 대응하는 비트에 대하여 "데이터 0"의 비트를 제공할 것이다. 장치 드라이버(213)는 클러스터 할당 테이블(212a)을 기반으로 제 2 파일(FILE2)의 삭제 사실을 확인할 수 있을 것이다. 장치 드라이버(213)는 제 2 파일(FILE2)의 어드레스 정보를 획득할 수 있을 것이다. 장치 드라이버(213)는 제 2 파일(FILE2)의 어드레스 정보 및 매핑 테이블(213a)을 기반으로 변환 삭제 정보(DEL')를 생성할 수 있다. 예시적으로, 변환 삭제 정보(DEL')는 제 2 파일(FILE2)에 대응되는 제 2 저장 장치(212)의 제 3 및 제 4 페이지들(P_3, P_4)의 어드레스 정보를 포함할 수 있다.
메모리 시스템(220)은 수신된 변환 삭제 정보(DEL')에 응답하여 제 2 사본 파일(FILE2`)이 저장된 제 3 및 제 4 페이지들(P_3, P_4)을 무효 페이지(INVAILD)로 설정할 수 있다. 예시적으로, 메모리 시스템(120)은 가비지 컬렉션, 머지 동작 등을 기반으로 무효 페이지들로 설정된 페이들에 저장된 데이터들을 소거(erase)할 수 있다. 즉, 제 2 사본 파일(FILE2`)을 저장하고 있던 제 3 및 제 4 페이지들(P_3, P_4)은 소거 상태(ERASE)가 되어 제 3 및 제 4 페이지들(P_3, P_4)에 다른 데이터가 프로그램될 수 있을 것이다.
예시적으로, 제 2 저장 장치(122)의 메타 데이터(122a)는 제 3 및 제 4 페이지들(P_3, P_4)의 무효 페이지(INVAILD) 정보를 저장할 수 있다. 제 2 저장 장치(122)는 메타 데이터(122a)에 저장된 제 3 및 제 4 페이지들(P_3, P_4)의 무효 페이지(INVAILD) 정보를 기반으로 제 3 및 제 4 페이지들(P_3, P_4)의 소거 동작을 수행할 수 있다.
상술된 본 발명의 다른 실시 예에 따르면, 장치 드라이버(213)는 임계 시간(tth) 이상의 유휴 시간(tidle)이 발생할 경우, 파일 시스템(212) 및 매핑 테이블(213a)을 기반으로 변환 삭제 정보(DEL')를 생성하여 메모리 시스템(220)으로 전송할 수 있다. 메모리 시스템(220)은 수신된 변환 삭제 정보(DEL')에 대응되는 파일을 제 2 저장 장치(222)에서 소거할 수 있다. 이로 인해 제 2 저장 장치(222)는 소거 상태(또는 프로그램 가능한 상태)의 페이지들을 확보함으로써 메모리 시스템의 성능이 향상된다.
도 6은 도 5에 도시된 호스트의 동작을 보여주는 순서도이다. 도 5 및 도 6을 참조하면, S210 단계에서, 호스트(210)는 유휴 시간(tidle)이 임계시간(tth) 이상인지 판별할 수 있다. 예를 들어, 호스트(210)에 포함된 운영 체제(211)는 외부 장치로부터 수신된 입력 신호에 응답하거나 또는 미리 정해진 동작을 수행하면서 필요한 데이터에 대하여 장치 드라이버(213)로 데이터의 읽기 요청을 전송할 것이다. 유휴 시간(tidle)은 메모리 시스템(220)이 호스트(210)로부터 쓰기 및 읽기 요청을 수신받지 않는 시간을 가리킨다. 유휴 시간(tidle)이 임계 시간(tth) 이상이 아닌 경우, 장치 드라이버(213)는 변환 삭제 정보(DEL') 생성을 위한 동작을 수행하지 않을 것이다. 유휴 시간(tidle)이 임계 시간(tth) 이상인 경우, 호스트(210)에 포함된 장치 드라이버(213)는 S220 단계의 동작을 수행한다.
S220 단계에서, 호스트(210)는 변환 삭제 정보(DEL`)를 생성할 수 있다. 예시적으로, 장치 드라이버(213)는 파일 시스템(212)을 분석하여 변환 삭제 정보(DEL`)를 수집할 수 있다. S220 단계의 동작은 도 7을 참조하여 더욱 상세하게 설명된다. 예시적으로, 장치 드라이버(213)는 특정 API(application programming interface)를 기반으로 변환 삭제 정보(DEL`)를 생성할 수 있다. 장치 드라이버(213)가 특정 API를 기반으로 변환 삭제 정보(DEL`)를 생성하는 동작은 도 8을 참조하여 더욱 상세하게 설명된다.
S230 단계에서, 호스트(210)는 메모리 시스템(220)으로 변환 삭제 정보(DEL`)를 전송할 수 있다. 예시적으로, 변환 삭제 정보(DEL')는 삭제된 원본 파일들에 대응하는 사본 파일의 어드레스 정보를 포함할 수 있다.
예시적으로, 메모리 시스템(220)은 수신된 변환 삭제 정보(DEL')에 대응하는 사본 파일이 저장된 제 2 저장 장치(222)의 페이지들을 무효 페이지로 설정할 수 있다. 이 후, 메모리 시스템(220)은 가비지 컬렉션, 머지 동작 등을 통해 무효 페이지로 설정된 페이지들에 저장된 데이터를 소거(erase)할 수 있다.
상술된 본 발명의 다른 실시 예에 따르면, 임계 시간(tth) 이상의 유휴 시간(tidle)이 발생할 경우, 장치 드라이버(213)는 파일 삭제 정보를 수집하여, 메모리 시스템(220)으로 전송한다. 메모리 시스템은 수신된 삭제 정보를 기반으로 제 2 저장 장치(222)에 저장된 삭제 파일을 소거함으로써 소거 상태(또는 프로그램 가능 상태)의 페이지를 확보할 수 있다. 따라서, 향상된 성능을 갖는 메모리 시스템이 제공된다.
도 7은 도 6의 S220 단계를 상세하게 설명하기 위한 도면이다. 예시적으로, 제 1 저장 장치(221)의 저장 공간을 관리하는 파일 시스템(212)은 NTFS(NT File System)인 것으로 가정한다. 또한, 제 1 저장 장치(221)는 제 1 내지 제 3 원본 파일들(FILE1~FILE3)을 저장하는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 장치 관리자(213)는 다른 종류의 파일 시스템을 기반으로 변환 삭제 정보를 생성할 수 있다.
도 5 및 도 7을 참조하면, 제 1 저장 장치(221)는 제 1 내지 제 3 원본 파일들(FILE1~FILE3)을 포함한다. 제 1 및 제 3 원본 파일들(FILE1, FILE3)은 각각 제 1 및 제 4 클러스터들(C_1, C_4)에 저장될 수 있다. 제 2 원본 파일(FILE2)은 제 2 및 제 3 클러스터들(C_2, C_3)에 저장될 수 있다. 제 1 저장 장치(221)는 클러스터 할당 테이블(212a, $bitmap, cluster allocation table)을 포함한다. 클러스터 할당 테이블(212a)은 제 1 저장 장치(221)에 포함된 제 1 내지 제 n 클러스터들(C_1~C_n)에 저장된 데이터가 유효 데이터인지, 삭제 데이터인지를 가리키는 비트들을 포함하는 테이블이다. 클러스터 할당 테이블(212a)은 제 1 내지 제 3 원본 파일들(FILE1~FILE3)이 할당된 제 1 내지 제 4 클러스터들(C_1~C_4)에 대응하는 비트들을 "데이터 1"로 마크할 수 있다. 즉, 제 1 내지 제 4 클러스터들(C_1~C_4)에 저장된 제 1 내지 제 원본 3 파일들(FILE1~FILE3)은 유효데이터일 것이다.
이 후, 운영 체제(211)는 제 2 원본 파일(FILE2)을 삭제될 수 있다. 이 경우, 갱신된 클러스터 할당 테이블(212a`)은 제 2 및 제 3 클러스터들(C_2, C_3)에 대응하는 비트들을 "데이터 0"으로 마크할 것이다.
이 후, 임계 시간(tth) 이상의 유휴 시간(tidle)이 발생할 경우, 장치 드라이버(213)는 갱신된 클러스터 할당 테이블(212a)을 분석하여 변환 삭제 정보(DEL')를 생성할 수 있다. 예를 들어, 장치 드라이버(213)는 갱신된 클러스터 할당 테이블(212a)을 기반으로 제 2 원본 파일(FILE2)의 삭제 사실을 획득할 수 있다. 장치 드라이버(213)는 매핑 테이블(213a)에 제 2 원본 파일(FILE2)의 어드레스 정보가 포함되는지 판별하여 변환 삭제 정보(DEL')를 생성할 수 있다. 예시적으로 변환 삭제 정보(DEL')는 제 2 사본 파일(FILE2`)이 저장된 제 2 저장 장치(222)의 어드레스 정보를 포함할 수 있다.
상술된 본 발명의 다른 실시 예에 따르면, 장치 드라이버(213)는 임계 시간(tth) 이상의 유휴시간(tidle)이 발생할 경우, 파일 시스템(212)을 분석하여 삭제 정보(DEL)를 수집할 수 있다. 장치 드라이버(113)는 수집된 삭제 정보(DEL) 및 매핑 테이블(213a)을 기반으로 변환 삭제 정보(DEL')를 생성하여 메모리 시스템(220)으로 전송한다. 메모리 시스템(220)은 수신된 변환 삭제 정보(DEL')를 기반으로 수신된 변환 삭제 정보(DEL')에 대응되는 사본 파일이 저장된 제 2 저장 장치(222)의 페이지들을 무효 페이지로 설정할 수 있다. 이 후, 메모리 시스템(220)은 가비지 컬렉션, 머지 동작 등을 기반으로 무효 페이지로 설정된 페이지들에 저장된 데이터를 소거(erase)할 수 있다. 따라서, 제 2 저장 장치(222)는 소거 상태(또는 프로그램 가능한 상태)의 페이지들을 확보함으로써 향상된 성능을 갖는 메모리 시스템이 제공된다.
도 8은 도 5의 S220 단계의 또 다른 실시 예를 보여주는 도면이다. 예시적으로, 도 8에 도시된 맵(APIMAP)은 윈도우즈 운영체제에서 제공되는 디스크 조각 모음 API의 맵(APIMAP)을 보여준다. API(Applicaion Programming Interface)는 응용 프로그램이 운영 체제 또는 프로그램 언어가 제공하는 기능을 제어할 수 있도록 구성된 인터페이스를 가리킨다. API는 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. 대표적으로, 윈도우즈 API는 기본 서비스, 고급 서비스, 그래픽 장치 인터페이스(GDI), 사용자 인터페이스, 공통 대화 상자 라이브러시, 공통 컨트롤 라이브러리, 윈도 셀, 및 네트워크 서비스를 제공한다. 본 발명의 또 다른 실시 예는 상술된 API들 중 기본 서비스에 포함되는 조각 모음 API를 기반으로 설명된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 장치 드라이버(213)는 제 1 저장 장치(221)의 매핑 정보를 제공하는 다른 API를 기반으로 삭제 정보를 생성할 수 있다.
도 1 및 도 8을 참조하면, 조각 모음 API는 제 1 저장 장치(221)에 저장된 데이터 및 데이터와 대응되는 클러스터들의 맵(APIMAP)을 제공한다. 장치 드라이버(213)는 조각 모음 API에서 제공되는 맵(APIMAP)을 기반으로 제 1 저장 장치(221)에 저장된 데이터들의 정보를 수집할 수 있다. 예를 들어, 제 1 저장 장치(221)는 제 1 내지 제 3 원본 파일들(FILE1~FILE3)을 저장할 수 있다. 이 경우, 조각 모음 API로부터 제공되는 맵(APIMAP)은 제 1 저장 장치에 저장된 제 1 내지 제 3 원본 파일들(FILE1~FILE3)에 대응되는 복수의 클러스터들(C_1~C_4) 정보를 제공할 것이다.
이 후, 제 2 원본 파일(FILE2)이 운영 체제(211)에 의해 삭제된 경우, 조각 모음 API는 제 2 파일(FILE2)에 대응되는 제 2 및 제 3 클러스터들(C_2, C_3)에 대한 정보를 제공하지 않을 것이다. 임계시간(tth) 이상의 유휴 시간(tidle)이 발생한 경우, 장치 드라이버(213)는 조각 모음 API로부터 제공되는 갱신된 맵(APIMAP`)을 분석하여 제 2 원본 파일(FILE2)의 삭제 사실을 확인할 수 있다. 이 후, 장치 드라이버(213)는 제 2 원본 파일(FILE2)의 삭제 사실 및 매핑 테이블(213a)을 비교하여, 변환 삭제 정보(DEL')를 생성할 수 있다. 장치 드라이버(213)는 생성된 변환 삭제 정보(DEL')를 메모리 시스템(220)으로 전송할 수 있다.
메모리 시스템(220)은 수신된 변환 삭제 정보(DEL')에 대응되는 제 2 사본 파일(FILE2`)이 저장된 제 2 저장 장치(222)의 페이지들을 무효 페이지로 설정할 수 있다. 이 후, 메모리 시스템(220)은 가비지 컬렉션, 머지 동작 등을 기반으로 무효 페이지로 설정된 페이지들에 저장된 데이터를 소거(erase)할 수 있다.
도 9는 본 발명의 적용 예에 따른 사용자 시스템을 보여주는 블록도이다. 예시적으로, 사용자 시스템(1000)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP (portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB (Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등과 같은 컴퓨팅 시스템들 중 하나로 제공될 수 있다.
도 9를 참조하면, 사용자 시스템(1000)은 호스트(1100) 및 메모리 시스템(1200)을 포함한다. 호스트(1100)는 프로세서(1110), 램(1120), 및 칩셋(1130)을 포함한다.
프로세서(1110)는 사용자 시스템(1000)의 제반 동작을 제어할 수 있다. 예를 들어, 프로세서(1110)는 사용자 시스템(1000)에 포함된 장치들을 제어하고, 프로그램 명령을 해독하는 동작을 수행한다. 예시적으로, 도 1 내지 도 8을 참조하여 설명된 운영 체제 및 장치 드라이버는 프로세서(1110)를 통해 구동될 수 있다.
램(1120)은 호스트(1100)의 주 기억 장치(main memory device)로 동작한다. 램(1120)은 프로세서(1110)와 메모리 시스템(1200) 간 버퍼 역할을 수행할 있다. 예시적으로, 램(1120)은 DRAM(Dynamic Random Access Memory), SDRAM(Synchronous DRAM), SRAM(Static RAM), DDR SDRAM(Double Date Rate SDRAM), DDR2 SDRAM, DDR3 SDRAM, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM) 등과 같은 랜덤 액세스 메모리 중 어느 하나로 제공될 수 있다.
칩셋(1130)은 프로세서(1110)의 제어에 따라, 사용자 시스템(1000)의 하드웨어를 제어하는 장치이다. 예를 들어, 칩셋(1130)은 프로세서(1110)의 제어에 따라 메모리 시스템(1200)의 제어 신호를 조절할 수 있다.
메모리 시스템(1200)은 호스트(1100)의 동작에 의해 생성된 데이터 또는 외부 장치로부터 수신된 데이터를 저장할 수 있다. 메모리 시스템(1200)은 HDD(1210), SSD(1220), 및 컨트롤러(1230)를 포함한다. HDD(1210) 및 SSD(1220)는 호스트(1100)의 동작에 의해 생성된 데이터 또는 외부 장치로부터 수신된 데이터를 저장할 수 있다. HDD(1210)는 자기 디스크를 기반을 동작할 것이다. SSD(1220)는 반도체 메모리 소자를 기반으로 동작할 것이다. 메모리 컨트롤러(1230)는 HDD(1210) 또는 SSD(1220)의 동작을 제어할 것이다. 예시적으로, 메모리 시스템(1200)은 HDD(1210), SSD(1220) 및 컨트롤러(1230)을 포함하는 모듈로 제공될 수 있다. 호스트(1100) 및 메모리 시스템(1200)은 소켓들(1101, 1201)을 기반으로 연결되고, 이를 통해 서로 신호를 주고 받는다. 예시적으로, 사용자 시스템(1000)의 호스트(1100) 및 메모리 시스템(1200)은 도 1 내지 도 8을 참조하여 설명된 방법을 기반으로 동작할 것이다.
도 10은 본 발명의 다른 적용 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 10을 참조하면, 사용자 시스템(2000)은 중앙 처리 장치(2100, CPU, Central Processing Unit), 주 기억 장치(2200, main memory device), 보조 기억 장치(2300, secondary memory device), 사용자 인터페이스(2400), 및 시스템 버스(2500)를 포함한다.
중앙 처리 장치(2100)는 사용자 시스템(2000)에 포함된 장치들의 동작을 제어하고 프로그램 명을 해독하거나 실행하는 장치이다. 예시적으로, 도 1 내지 도 8을 참조하여 설명된 운영 체제, 장치 드라이버는 중앙 처리 장치(2100)에 의해 구동될 수 있다.
주 기억 장치(2200)는 중앙 처리 장치(2100) 및 보조 기억 장치(2300) 간 동작 속도를 완충시키기 위하여 중앙 처리 장치(2100)에 의해 실행될 프로그램 또는 데이터를 임시 저장하는 장치이다. 예시적으로, 주기억 장치(2200)는 DRAM(Dynamic Random Access Memory), SDRAM(Synchronous DRAM), SRAM(Static RAM), DDR SDRAM(Double Date Rate SDRAM), DDR2 SDRAM, DDR3 SDRAM, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM) 등과 같은 랜덤 액세스 메모리 중 어느 하나로 제공될 수 있다. 예시적으로, 주 기억 장치(2200)는 중앙 처리 장치(2100) 및 보조 기억 장치(2300) 간 버퍼 역할을 수행할 수 있다.
보조 기억 장치(2300)는 프로그램 또는 데이터를 저장하는 장치이다. 예시적으로, 보조 기억 장치(2300)는 복수의 저장 장치들을 포함할 수 있다. 예를 들어, 보조 기억 장치(2300)는 HDD 및 SSD가 결합된 하이브리드 메모리 시스템 또는 이종 메모리 시스템일 수 있다. 예시적으로, 보조 기억 장치(3300)는 도 1 내지 도 8을 참조하여 설명된 메모리 시스템의 동작 방법에 따라 구동될 수 있다.
사용자 인터페이스(2400)는 사용자(user)가 사용자 시스템(2000)을 제어할 수 있도록 입출력 동작을 제공하는 인터페이스이다.
시스템 버스(2500)는 중앙 처리 장치(2100), 주 기억 장치(2200), 보조 기억 장치(2300) 및 사용자 인터페이스(2400)과 연결되어 데이터를 전송하는 채널을 제공한다.
상술된 본 발명의 실시 예들에 따르면, 제 1 및 제 2 저장 장치에 함께 저장된 파일이 삭제될 경우, 장치 드라이버는 운영 체제로부터 삭제 정보를 수신하여 메모리 시스템으로 수신된 삭제 정보를 전송할 수 있다. 또는 장치 드라이버는 파일 시스템 및 특정 API를 기반으로 삭제 정보를 생성하여 메모리 시스템에 전송할 수 있다. 메모리 시스템은 수신된 삭제 정보를 기반으로 수신된 삭제 정보와 대응되는 파일을 제 2 저장 장치에서 소거(erase)할 수 있다. 따라서, 제 2 저장 장치는 소거 상태(또는 프로그램 가능한 상태)의 페이지들을 확보함으로써, 향상된 성능을 갖는 메모리 시스템이 제공된다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100, 200 : 사용자 시스템
110, 210 : 호스트
111, 211 : 운영 체제
112, 212 : 파일 시스템
113, 213 : 장치 드라이버
113a, 213a : 매핑 테이블
120, 220 : 메모리 시스템
121, 122, 221, 222 : 제 1 및 제 2 저장 장치들

Claims (10)

  1. 호스트 및 제 1 및 제 2 저장 장치들을 포함하는 메모리 시스템을 포함하는 사용자 시스템의 동작 방법에 있어서,
    상기 호스트가 상기 제 1 저장 장치에 저장된 제 1 원본 파일을 삭제하는 단계;
    상기 호스트가 상기 제 1 원본 파일의 삭제 정보 및 매핑 테이블을 비교하고, 상기 비교 결과에 따라 상기 제 1 원본 파일의 사본인 제 1 사본 파일이 상기 제 2 저장 장치에 저장된 경우, 상기 호스트가 변환 삭제 정보를 상기 메모리 시스템으로 전송하는 단계; 및
    상기 메모리 시스템이 상기 수신된 변환 삭제 정보를 기반으로 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 페이지를 무효 페이지로 설정하는 단계를 포함하고,
    상기 호스트는 상기 제 1 저장 장치를 상기 메모리 시스템의 주 장치로 인식하고,
    상기 제 2 저장 장치는 쓰기 전 소거 특성을 갖는 동작 방법.
  2. 제 1 항에 있어서,
    상기 변환 삭제 정보는 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 어드레스 정보를 포함하는 동작 방법.
  3. 제 1 항에 있어서,
    상기 호스트는 상기 제 1 저장 장치의 파일 시스템을 기반으로 상기 메모리 시스템에 액세스하는 동작 방법.
  4. 제 1 항에 있어서,
    상기 호스트가 변환 삭제 정보를 상기 메모리 시스템으로 전송하는 단계는
    상기 호스트의 유휴 시간이 임계 시간 이상인 경우, 상기 호스트가 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계;
    상기 호스트가 상기 삭제 정보 및 상기 매핑 테이블을 기반으로 상기 변환 삭제 정보를 생성하는 단계; 및
    상기 호스트가 상기 생성된 변환 삭제 정보를 상기 메모리 시스템으로 전송하는 단계를 포함하는 동작 방법.
  5. 제 4 항에 있어서,
    상기 호스트가 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계는
    상기 호스트가 상기 제 1 저장 장치의 클러스터 할당 테이블을 기반으로 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계를 포함하는 동작 방법.
  6. 제 4 항에 있어서,
    상기 호스트가 상기 제 1 원본 파일의 삭제 정보를 검출하는 단계는
    상기 호스트가 상기 호스트에 포함된 조각 모음 어플리케이션 프로그래밍 인터페이스를 기반으로 상기 제 1 파일의 삭제 정보를 검출하는 단계를 포함하는 동작 방법.
  7. 제 4 항에 있어서,
    상기 매핑 테이블은 상기 제 1 및 제 2 저장 장치들의 어드레스들 사이의 관계 정보를 포함하고,
    상기 호스트가 상기 삭제 정보 및 상기 매핑 테이블을 기반으로 상기 변환 삭제 정보를 생성하는 단계는,
    상기 호스트가 상기 매핑 테이블에 상기 삭제 정보가 포함되었는지 판별하는 단계; 및
    상기 판별 결과에 따라 상기 매핑 테이블에 상기 삭제 정보가 포함된 경우, 상기 호스트가 상기 삭제 정보에 대응하는 상기 변환 삭제 정보를 생성하는 단계를 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 관계 정보는 상기 제 1 원본 파일이 저장된 상기 제 1 저장 장치의 어드레스 및 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 어드레스 사이의 관계 정보인 동작 방법.
  9. 제 1 항에 있어서,
    상기 메모리 시스템이 상기 수신된 변환 삭제 정보를 기반으로 상기 제 1 사본 파일이 저장된 상기 제 2 저장 장치의 페이지를 무효 페이지로 설정하는 단계는,
    상기 메모리 시스템이 상기 무효 페이지로 설정된 페이지의 정보를 상기 제 2 저장 장치에 포함된 메타 데이터에 저장하는 단계를 포함하는 동작 방법.
  10. 운영 체제, 장치 드라이버를 포함하는 호스트 및 제 1 및 제 2 저장 장치들을 포함하는 메모리 시스템을 포함하는 사용자 시스템의 동작 방법에 있어서,
    상기 운영 체제가 제 1 원본 파일을 삭제하는 단계;
    상기 운영 체제가 상기 제 1 원본 파일의 삭제 정보를 상기 장치 드라이버로 전송하는 단계; 및
    상기 장치 드라이버가 상기 삭제 정보 및 매핑 테이블을 비교하는 단계; 및
    상기 비교 결과에 따라 상기 매핑 테이블에 상기 삭제 정보가 포함된 경우, 상기 장치 드라이버가 상기 삭제 정보에 대응하는 변환 삭제 정보를 상기 메모리 시스템으로 전송하고, 상기 메모리 시스템이 상기 수신된 변환 삭제 정보에 대응하는 제 1 사본 파일이 저장된 제 2 저장 장치의 페이지를 무효 페이지로 설정하는 단계를 포함하고,
    상기 운영 체제는 상기 제 1 저장 장치를 상기 메모리 시스템의 주 장치로 인식하고,
    상기 매핑 테이블은 상기 제 1 및 제 2 저장 장치들에 함께 저장된 복수의 파일들에 대응하는 상기 제 1 및 제 2 저장 장치들의 어드레스들 사이의 관계 정보를 포함하는 동작 방법.
KR1020130028055A 2013-03-15 2013-03-15 호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법 KR20140113103A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130028055A KR20140113103A (ko) 2013-03-15 2013-03-15 호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법
US14/204,438 US20140280396A1 (en) 2013-03-15 2014-03-11 Operating method for user system including host and memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130028055A KR20140113103A (ko) 2013-03-15 2013-03-15 호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20140113103A true KR20140113103A (ko) 2014-09-24

Family

ID=51533320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130028055A KR20140113103A (ko) 2013-03-15 2013-03-15 호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법

Country Status (2)

Country Link
US (1) US20140280396A1 (ko)
KR (1) KR20140113103A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10514920B2 (en) * 2014-10-20 2019-12-24 Via Technologies, Inc. Dynamically updating hardware prefetch trait to exclusive or shared at program detection
KR102651425B1 (ko) 2016-06-30 2024-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102545166B1 (ko) 2016-07-26 2023-06-19 삼성전자주식회사 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법
CN114866594B (zh) * 2022-04-24 2023-08-08 普联技术有限公司 设备连接管理方法、装置、系统、服务器及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197513B2 (en) * 2000-12-08 2007-03-27 Aol Llc Distributed image storage architecture
US8452934B2 (en) * 2008-12-16 2013-05-28 Sandisk Technologies Inc. Controlled data access to non-volatile memory
US8645437B2 (en) * 2010-10-29 2014-02-04 At&T Intellectual Property I, L.P. System and method for providing fast startup of a large file delivery
US20120284474A1 (en) * 2011-05-06 2012-11-08 International Business Machines Corporation Enabling recovery during data defragmentation
JP5982909B2 (ja) * 2012-03-19 2016-08-31 富士通株式会社 制御装置、ストレージ装置、ストレージ装置の試験方法及びストレージ装置の試験プログラム

Also Published As

Publication number Publication date
US20140280396A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US11797191B2 (en) Systems and methods for storing data in SSD
US8521949B2 (en) Data deleting method and apparatus
US10796774B2 (en) Method and apparatus for refreshing flash memory device
US9256542B1 (en) Adaptive intelligent storage controller and associated methods
EP3301584A1 (en) Storage system, storage management device, storage device, hybrid storage device, and storage management method
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
US20110264884A1 (en) Data storage device and method of operating the same
US9778860B2 (en) Re-TRIM of free space within VHDX
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
CN108733306B (zh) 一种文件合并方法及装置
US9785547B2 (en) Data management apparatus and method
US20160274819A1 (en) Memory system including host and a plurality of storage devices and data migration method thereof
CN110362499B (zh) 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
WO2018141304A1 (zh) 一种闪存文件系统及其数据管理方法
CN113568582B (zh) 数据管理方法、装置和存储设备
US11269771B2 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
US11921629B1 (en) Method and device for data storage
KR20140113103A (ko) 호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법
CN114303123A (zh) 一种固态硬盘的数据存储方法、装置及固态硬盘ssd
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
US20230075437A1 (en) Techniques for zoned namespace (zns) storage using multiple zones
KR101716348B1 (ko) 메모리 시스템, 그것의 동작 방법, 그리고 그것을 포함하는 컴퓨팅 시스템
KR20210158043A (ko) 스트림 분류 번호에 따른 데이터 분류 스토리지 장치 및 그 동작 방법
KR102497213B1 (ko) 안전 삭제를 수행하는 컨트롤러, 이를 포함하는 키-밸류 스토리지 장치 및 키-밸류 스토리지 장치의 동작방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid