KR20110096814A - 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법 - Google Patents

저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법 Download PDF

Info

Publication number
KR20110096814A
KR20110096814A KR1020100016284A KR20100016284A KR20110096814A KR 20110096814 A KR20110096814 A KR 20110096814A KR 1020100016284 A KR1020100016284 A KR 1020100016284A KR 20100016284 A KR20100016284 A KR 20100016284A KR 20110096814 A KR20110096814 A KR 20110096814A
Authority
KR
South Korea
Prior art keywords
data
area
main storage
invalidated
host
Prior art date
Application number
KR1020100016284A
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 KR1020100016284A priority Critical patent/KR20110096814A/ko
Priority to US13/008,424 priority patent/US20110208898A1/en
Publication of KR20110096814A publication Critical patent/KR20110096814A/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/10Program control for peripheral devices

Landscapes

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

Abstract

본 발명의 데이터 관리 방법은, 호스트로부터 입력된 무효화 명령에 응답해서 제 1 구간 동안 무효화될 영역을 마킹하는 단계, 상기 마킹 결과를 근거로 하여 상기 제 1 구간 동안 상기 무효화될 영역에 포함되어 있는 유효 데이터를 상기 주 저장부의 다른 영역으로 머지 또는 카피하는 단계, 그리고 상기 제 1 구간이 종료되면 제 2 구간 동안 상기 무효화될 영역을 삭제하는 단계를 포함한다.

Description

저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법{STORAGE DEVICE AND COMPUTING SYSTEM, AND DATA MANAGEMENT METHOD THEREOF}
본 발명은 저장 장치 및 컴퓨팅 시스템에 관한 것으로, 좀 더 구체적으로는 저장 장치 및 컴퓨팅 시스템의 데이터 관리 방법에 관한 것이다.
정보화 사회의 도래와 함께 개인이 저장하고 이동해야 할 데이터의 양도 폭발적으로 늘어나고 있다. 이와 같은 정보 저장매체의 수요 증가로 인해, 다양한 종류의 개인용 정보 저장장치들이 개발되고 있다.
정보 저장장치들 중에서도 하드디스크 드라이브(hard disk drive; HDD)는, 높은 기록 밀도와, 높은 데이터 전송 속도, 빠른 데이터 접근 시간(access time), 및 낮은 가격 등의 장점으로 인해 널리 사용되고 있다. 그러나, 하드디스크 드라이브는, 기계적 부품으로 구성된 복잡한 구조를 갖기 때문에, 조그만 충격과 진동에도 고장이 날 수 있는 문제점이 있다.
최근 들어서는 하드디스크 드라이브를 대신하는 정보 저장장치로서, 반도체 메모리를 채택한 반도체 디스크(Solid State Disk, SSD) 장치가 개발되고 있다. 반도체 디스크 장치는 하드디스크 드라이브와 달리 기계적 구성이 전혀 없다. 따라서, 반도체 디스크 장치는 하드디스크 드라이브에 비해 지연시간(latency)과 기타 기계적 구동시간을 줄일 수 있고, 고속의 읽기/쓰기 동작을 수행할 수 있다. 그리고 반도체 디스크 장치는 지연 시간 및 기계적 마찰로 인한 오류를 줄일 수 있기 때문에, 읽기/쓰기 동작의 신뢰성을 향상시킬 수 있는 장점이 있다. 또한, 데이터 작동시 열과 소음이 거의 발생하기 않고, 외부 충격에 강하기 때문에, 기존의 하드디스크 드라이브에 비하여 휴대용 기기에 적합한 저장 장치로서 평가되고 있다.
본 발명의 목적은 저장 장치의 제조 규약을 준수하면서도 무효화 동작시 한정된 데이터 저장 용량을 효과적으로 운용할 수 있는 저장 장치 및 컴퓨팅 시스템과, 그것의 데이터 관리 방법을 제공하는 데 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 데이터 관리 방법은, 호스트로부터 입력된 무효화 명령에 응답해서 제 1 구간 동안 무효화될 영역을 마킹하는 단계; 상기 마킹 결과를 근거로 하여 상기 제 1 구간 동안 상기 무효화될 영역에 포함되어 있는 유효 데이터를 주 저장부의 다른 영역으로 머지 또는 카피하는 단계; 그리고 상기 제 1 구간이 종료되면 제 2 구간 동안 상기 무효화될 영역을 삭제하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 제 1 구간은 상기 무효화 명령이 입력될 때마다 반복될 수 있다.
일 실시예에 있어서, 상기 머지 또는 카피 단계는, 상기 마킹 단계가 실행될 때마다 수행될 수 있다.
일 실시예에 있어서, 상기 머지 또는 카피 단계는, 상기 마킹 단계가 소정 횟수 이상 반복된 경우 실행될 수 있다.
일 실시예에 있어서, 상기 제 2 구간은 상기 호스트로부터 명령이 입력되지 않는 유휴 기간 동안 수행될 수 있다.
일 실시예에 있어서, 상기 머지 또는 카피 단계는, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 때 수행될 수 있다.
일 실시예에 있어서, 상기 머지 또는 카피 단계는 상기 주 저장부에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 때 적어도 하나 이상의 블록을 소거하는 단계; 그리고 상기 소거된 블록으로 상기 무효화될 영역에 포함되어 있는 상기 유효 데이터를 선별적으로 카피하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 무효화될 영역은 파일 시스템 정보 형태로 마킹될 수 있다.
일 실시예에 있어서, 상기 머지 또는 카피 단계는, 상기 무효화될 영역의 데이터가 상기 주 저장부에 저장되어 있는 경우, 상기 마킹 결과를 근거로 하여 상기 무효화될 영역에 포함된 상기 유효 데이터를 선별적으로 상기 주 저장부의 다른 영역으로 머지할 수 있다.
일 실시예에 있어서, 상기 머지 또는 카피 단계는, 상기 무효화될 영역의 데이터가 버퍼 메모리에 저장되어 있는 경우, 상기 버퍼 메모리에 저장된 데이터 중 유효 데이터를 선별적으로 상기 주 저장부의 다른 영역으로 카피할 수 있다.
일 실시예에 있어서, 상기 무효화 명령은 보안 트림 명령 또는 보안 무효화 명령을 포함할 수 있다.
일 실시예에 있어서, 상기 무효화 명령은 상기 무효화될 영역의 시작 및 종료 어드레스를 포함할 수 있다.
일 실시예에 있어서, 상기 무효화될 영역에 포함된 무효 데이터에 대한 머지 또는 복사 동작은 상기 머지 또는 카피 단계에서 제외될 수 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 데이터 관리 방법은, 호스트로부터 입력된 무효화 명령에 응답해서 제 1 구간 동안 무효화될 영역을 마킹하는 단계; 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 때, 상기 마킹 결과를 근거로 하여 상기 제 1 구간 동안 상기 무효화될 영역에 포함되어 있는 유효 데이터를 주 저장부의 다른 영역으로 머지 또는 카피하는 단계; 그리고 상기 제 1 구간이 종료되면 제 2 구간 동안 상기 무효화될 영역을 삭제하는 단계를 포함할 수 있다.
일 실시예에 있어서, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 때, 상기 유효 데이터가 머지 또는 카피될 빈 블록이 존재하는지 여부를 판별하는 단계; 그리고 주 저장부에 상기 빈 블록이 존재하지 않을 때 적어도 하나 이상의 블록을 소거할 수 있다.
일 실시예에 있어서, 상기 유효 데이터는 소거 상태의 블록으로 머지 또는 카피될 수 있다.
일 실시예에 있어서, 상기 무효화될 영역에 포함된 무효 데이터에 대한 머지 또는 복사 동작은 상기 머지 또는 카피 단계에서 제외될 수 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 컴퓨팅 시스템은, 호스트; 그리고 상기 호스트의 제어에 응답하여 동작하는 저장 장치를 포함하고, 상기 저장 장치는 주 저장부와; 그리고 상기 주 저장부를 제어하도록 구성된 컨트롤러를 포함할 수 있다. 여기서, 상기 컨트롤러는 제 1 구간과 제 2 구간으로 구성된 무효화 동작을 통해 상기 호스트로부터 입력된 무효화 명령을 처리하되, 상기 제 1 구간에서는 상기 무효화 명령에 응답해서 무효화될 영역이 마킹된 후 상기 마킹 결과에 따라 상기 무효화될 영역에 포함되어 있는 유효 데이터가 상기 주 저장부의 다른 영역으로 머지 또는 카피되고, 상기 제 2 구간 동안 상기 무효화될 영역이 삭제될 수 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 저장 장치는, 주 저장부; 그리고 상기 주 저장부의 동작을 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 호스트로부터 입력된 무효화 명령에 응답해서 제 1 구간 동안 무효화될 영역을 마킹하고, 상기 마킹 결과를 근거로 하여 상기 제 1 구간 동안 상기 무효화될 영역에 포함되어 있는 유효 데이터를 상기 주 저장부의 다른 블록으로 머지 또는 카피하고, 그리고 상기 제 1 구간이 종료되면 제 2 구간 동안 상기 무효화될 영역을 삭제할 수 있다.
일 실시예에 있어서, 상기 컨트롤러는 상기 무효화될 영역의 데이터가 외부에서 읽혀지지 않도록 상기 제 2 구간 동안 상기 무효화될 영역의 데이터를 상기 주 저장부로부터 제거할 수 있다.
본 발명에 따르면, 저장 장치의 제조 규약을 준수하면서도 무효화 동작시 비트맵 관리로 인한 오버헤드를 방지할 수 있고, 한정된 데이터 저장 용량을 효과적으로 운용할 수 있게 된다.
도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템의 구성을 예시적으로 보여주는 도면이다.
도 2는 도 1에 도시된 컨트롤러의 일 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 3은 도 1에 도시된 컨트롤러의 다른 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 컴퓨팅 시스템의 무효화 동작을 보여주는 흐름도이다.
도 5 내지 도 7은 도 4에 도시된 본 발명의 제 1 실시예에 따른 머지/복사 동작을 설명하기 위한 도면이다.
도 8 내지 도 14는 본 발명의 제 2 실시예에 따른 머지/복사 동작을 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시예에 따른 메모리 시스템의 구성을 예시적으로 보여주는 도면이다.
도 16은 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 구성을 예시적으로 보여주는 도면이다.
본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 이하 상세히 설명될 수 있다. 아래에서 설명될 본 발명의 저장 장치의 회로 구성 및 동작은 예를 들어 설명한 것으로, 본 발명의 저장 장치는 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다. 예를 들면, 본 발명에서는 반도체 메모리 중에서도 플래시 메모리를 주 저장장치로서 채택한 SSD가 저장 장치로서 설명될 수 있다. 그러나, 이는 본 발명이 적용되는 일 예에 불과하며, 본 발명에 따른 저장 장치 및 그것의 데이터 저장 방법은 SSD 뿐만 아니라 다양한 형태의 저장 장치에도 적용될 수 있다.
도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템(1000)의 구성을 예시적으로 보여주는 도면이다.
도 1을 참조하면, 본 발명의 컴퓨팅 시스템(1000)은 호스트(1100)와 저장 장치(1200)를 포함할 수 있다. 호스트(1100)는 저장 장치(1200)를 제어하도록 구성될 수 있다. 호스트(1100)는, 예를 들면, 개인용/휴대용 컴퓨터, PDA, PMP, MP3 플레이어 등과 같은 휴대용 전자 장치를 포함할 수 있다. 저장 장치(1200)에 저장된 데이터의 내용(예를 들면, 파일들)이 호스트(1100)에서 삭제되는 경우, 호스트(1100)는 삭제된 내용의 파일에 관련된 메타 데이터를 처리함으로써, 삭제된 내용의 파일을 무효화시킬 수 있다.
호스트(1100)는 필요에 따라 파일들의 무효화(또는, 삭제)를 저장 장치(1200)로 통보할 수 있다. 이는 호스트(1100)가 특정 명령을 저장 장치(1200)로 전송함으로써 달성될 수 있다. 이하, 그러한 특정 명령을 "무효화 명령"(invalidity command)이라 칭할 수 있다. 무효화 명령에는 삭제될 영역을 지정하기 위한 정보(예를 들면, 어드레스 정보)가 포함될 수 있다. 무효화 명령은 파일 삭제 명령(file delete command), 트림 명령(TRIM command), 기록 해제 명령(unwrite command), 삭제 명령(deletion command) 등 다양한 이름으로 쓰일 수 있다.
삭제될 파일에 대한 메타 데이터의 처리는 호스트(1100)의 파일 시스템(예를 들면, FAT)에 의해서 행해질 수 있다. 파일 시스템은 빠른 동작을 위해서, 파일의 내용을 삭제하는 것이 아니라 파일의 메타 데이터만을 삭제할 수 있다. 임의의 파일이 삭제될 때, 파일 시스템은 삭제된 파일의 파일명의 첫 문자에 하나의 특수한 코드를 위치시킬 수 있다. 예를 들면, 삭제된 파일의 파일명의 첫 글자의 자리에 십육진수 바이트 코드인 'E5h'를 위치시킬 수 있다. 이것은 하나의 특별한 꼬리표로서, '이 파일은 삭제되었습니다'라는 것을 의미할 수 있다.
삭제될 파일의 메타 데이터가 파일 시스템에 의해 처리되는 경우, 삭제될 파일의 내용은 파일 시스템에서는 무효한 데이터로 처리되는 반면에 저장 장치(1200)에서는 유효한 데이터로 남아있을 수 있다. 이러한 이유로, 저장 장치(1200)는 삭제된 파일의 데이터를 포함한 메모리 블록을 유효한 블록으로 인식할 수 있다. 따라서, 호스트(100)의 파일 시스템은 삭제된 파일의 내용이 저장 장치(1200)에서 실질적으로 무효화될 수 있도록 하기 위해, 저장 장치(1200)로 무효화 명령(즉, 트림 명령)을 제공한다.
무효화 명령은 노말 데이터를 무효화하기 위한 명령과, 보안이 필요한 데이터(이하, 보안 데이터라 칭함)를 무효화시키기 위한 보안 무효화 명령으로 구분될 수 있다. 보안 무효화 명령은 보안 트림 명령(secure TRIM command)으로 불리기도 한다. 보안 무효화 명령은, 호스트(1100)에 의해 삭제된 데이터를 저장 장치(1200) 내에서 완전히 삭제하는 기능을 제공할 수 있다. 따라서, 보안 무효화 동작에 따르면 보안 데이터에 대한 외부의 접근이 근본적으로 차단될 수 있다.
보안 무효화 명령은 원래 보안이 필요한 데이터를 위해 정의된 것이나, 보안이 필요한 데이터뿐만 아니라 일반적인 데이터에도 적용될 수 있다. 본 발명에서 설명될 무효화 명령 및 그것의 실행 방법은, 무효화 명령 중에서도 보안 무효화 명령을 예로 들어 설명될 것이다. 그러나, 이는 본 발명이 적용되는 일 예에 관한 것으로, 본 발명의 특성이 특정 실시 예에만 국한되는 것은 아니다.
예시적인 실시예에 있어서, 저장 장치(1200)는 반도체 디스크(Solid State Disk 또는 Solid State Drive, 이하 SSD라 칭함) 장치를 구성할 수 있다. 이는 본 발명이 적용되는 일 예로서, 저장 장치(1200)는 SSD에만 국한되지 않고 다양한 형태로 구성 가능하다. 예를 들면, 저장 장치(1200)는 하나의 반도체 장치로 집적되어, PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등을 구성할 수도 있다.
저장 장치(1200)는 컨트롤러(1220)와 주 저장부(1240)를 포함할 수 있다. 컨트롤러(1220)는 호스트(1100)로부터의 요청에 응답하여 주 저장부(1240)를 제어할 수 있다. 컨트롤러(1220)는 복수의 채널들(CH1∼CHn)을 통해 주 저장부(1240)와 연결될 수 있다.
주 저장부(1240)는 복수의 불 휘발성 메모리 칩들, 예컨대 복수의 플래시 메모리들로 구성될 수 있다. 채널들(CH1∼CHn) 각각에는 복수의 플래시 메모리 칩들이 공통으로 연결될 수 있다. 하지만, 이는 본 발명이 적용되는 일 예로서, 주 저장부(1240)는 플래시 메모리 칩들 대신 다른 불 휘발성 메모리 칩들(예를 들면, PRAM, FRAM, MRAM, 등)로 구성될 수도 있다. 또는, 주 저장부(1240)는 DRAM 또는 SRAM과 같은 휘발성 메모리로 구성될 수도 있다. 뿐만 아니라, 주 저장부(1240)는 적어도 두 종류 이상의 메모리들이 혼합된 형태로 구성될 수 있다.
주 저장부(1240)가 복수의 불 휘발성 메모리 칩들(예를 들면, 복수의 플래시 메모리 침들)로 구성되는 경우, 저장 장치(1200)는 전원이 차단되더라도 저장된 데이터를 유지할 수 있을 것이다. 주 저장부(1240)를 구성하는 플래시 메모리 칩들 각각은 셀 당 1-비트 데이터 또는 M-비트 데이터(M은 2 이상의 정수)를 저장할 수 있다.
본 발명의 실시예에 따른 무효화 동작은 보안 무효화 명령에 의해 실행되는 보안 무효화 동작을 의미할 수 있다. 보안 무효화 동작은 스텝1과 스텝2의 두 개의 단계로 구성될 수 있다. 스텝1에서는 호스트(1100)로부터 무효화 명령이 제공될 때, 저장 장치(1200)는 무효화 명령에 따라 삭제될 영역(또는 파일들)의 위치만을 기록/저장/마킹할 수 있다. 상기 기록/저장/마킹 결과는 컨트롤러(1220) 또는 주 저장부(1240) 내에 저장될 수 있다.
이러한 동작을 "로깅"(logging)이라 한다. 이어서, 저장 장치(1200)는 요청된 무효화 명령의 실행이 완료되었음을 호스트(1100)에 통지할 수 있다. 그 결과, 호스트(1100)는 무효화 명령의 실행이 즉각적으로 완료된 것으로 인식하게 되고, 삭제될 영역의 데이터가 호스트(1100) 측에서 무효한 파일들로 보여질 수 있게 된다. 여기서, 스텝1은 횟수에 제한을 받지 않고 실행될 수 있다.
스텝 1에서 로깅되었던 영역(또는 파일들)의 데이터는, 추후에 스텝2에서 삭제/퍼지(purge) 될 수 있다. 예시적인 실시예에 있어서, 스텝2는 유휴 시간에 수행될 수 있다. 다시 말해서, 저장 장치(1200)는 삭제될 파일들의 영역을 바로 삭제/퍼지 시키는 것이 아니라, 스텝1 구간에서 무효한 파일들의 영역의 위치만을 기록/저장/마킹하고, 추후에 스텝2 구간에서 무효한 파일로 기록된 영역의 데이터를 삭제/퍼지 한다. 이와 같은 구성에 따르면, 호스트(1100)의 요청을 빠른 시간 내에 처리하는 것이 가능하다. 즉, 호스트(1100)의 요청에 대한 응답 시간을 단축할 수 있다. 뿐만 아니라, 빠른 응답을 통해 저장 장치(1200) 또는 컴퓨팅 시스템(1000)의 성능을 향상시키는 것이 가능하다.
아래에서 상세히 설명되겠지만, 삭제될 영역(또는 파일들)의 위치 정보는 로깅 동작시 컨트롤러(1220) 에 구비되어 있는 RAM, 버퍼, 또는 레지스터에 저장되거나, 또는 주 저장부(1240) 내에 저장될 수 있다. 스텝1에서 기록/저장/마킹된 무효한 파일들의 위치 정보는, 비트맵(bitmap) 구조를 이용하여 기록 및 관리될 수 있다.
스텝1의 실행 횟수가 증가할수록, 그리고 스텝1에서 기록/저장/마킹된 정보의 개수가 증가할수록, 비트맵의 크기는 증가하게 될 것이다. 이와 더불어 비트맵을 저장하기 위해 요구되는 RAM 또는 버퍼의 용량 또한 증가하게 될 것이다. 비트맵 크기의 증가는 RAM 또는 버퍼에 요구되는 관리 공간의 크기가 증가함을 의미할 수 있다. 이는, 한정된 용량을 갖는 RAM 또는 버퍼에게 있어 부담이 될 수 있다. 뿐만 아니라, 스텝1에서는 무효한 영역(또는 파일들)의 위치 정보만을 기록하기 때문에, 스텝2가 종료되기 전까지는 주 저장부(1240) 내에 무효한 데이터와 유효한 데이터가 혼합되어 존재하게 된다. 이는 스텝1의 실행 횟수가 증가될수록 주 저장부(1240)에 새로운 데이터를 저장할 수 있는 자유 블록(즉, 소거 상태의 빈 메모리 블록)이 줄어듦을 의미할 수 있다. 따라서, 스텝1은 RAM 또는 버퍼의 용량과, 주 저장부(1240)의 용량에 제약을 받게 된다. 또한, 호스트(1100) 측에서 데이터를 읽어오는 경우, 해당 데이터가 무효화된 것으로 마킹되어 있는지 여부를 확인하기 위해, 호스트(1100) 측에서 데이터를 읽을 때마다 비트맵에 존재하는 모든 블록의 정보를 매번 체크해야 하는 프로세스가 추가되어야 할 것이다.
따라서, 이와 같은 문제를 방지하기 위해 본 발명의 저장 장치(1200)는 비트맵 관리로 인한 오버헤드를 방지할 수 있고, RAM 또는 버퍼와 주 저장부(1240)의 용량에 제약을 받지 않을 수 있는 새로운 방식의 스텝1 동작을 수행하도록 구성될 수 있다. 예를 들면, 본 발명의 저장 장치(1200)는 스텝1 구간에서 무효화될 대상으로 마킹된 영역(즉, 삭제될 영역(또는 파일들))에 포함되어 있는 유효 데이터를 다른 메모리 블록으로 선별적으로 머지/복사할 수 있다. 예시적인 실시예에 있어서, 머지/복사가 수행될 대상 블록은 소거 상태의 빈 메모리 블록일 수 있다. 이 경우, 무효화될 것으로 마킹된 영역(즉, 삭제될 영역(또는 파일들))의 데이터는 머지/복사 동작에서 제외된다. 그 결과, 무효화될 것으로 마킹된 영역의 데이터는 새로운 블록의 대응되는 영역으로 '1111…'(16진수로 표시할 경우, 0xFF)의 값이 머지/복사된 것과 같은 효과를 갖게 된다. 본 발명에서 스텝1 동작은 횟수의 제한 없이 복수회 반복될 수 있다. 또한, 스텝1 동작에서 수행되는 본 발명의 머지/복사 동작은 소정의 조건(예를 들면, Step1의 실행 횟수, 버퍼 메모리 또는 주 저장부에 데이터를 저장할 공간이 소정 크기 이상 존재하는지 여부 등)이 만족될 때마다 횟수의 제한 없이 복수회 반복될 수 있다.
이상과 같은 본 발명의 스텝1 동작에 따르면, 스텝1 동작이 수행되는 동안 횟수에 제한을 받지 않고 유효 데이터에 대한 머지/카피 동작이 선별적으로 수행될 수 있게 된다. 따라서, 읽기 동작이 수행될 때마다 유효/무효 데이터를 선별하기 위한 별도의 프로세스가 필요 없게 되고, 비트맵 관리의 오버헤드 또한 방지할 수 있게 된다. 그리고, RAM 또는 버퍼와 주 저장부(1240)가 가지고 있는 한정된 데이터 저장 용량을 효과적으로 운용할 수 있게 된다.
도 2는 도 1에 도시된 컨트롤러(1220)의 일 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 2를 참조하면, 컨트롤러(1220A)는 저장 장치(1200)가 SSD를 구성하는 경우, SSD 컨트롤러로서 구성될 수 있다. 컨트롤러(1220A)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 프로세싱 유닛(1226), 그리고 버퍼 메모리(1228)를 포함할 수 있다. 도 2에 도시된 컨트롤러(1220A)의 구성은 본 발명이 적용되는 일 예에 관한 것으로, 다양한 형태로 변경 및 변형 가능하다. 예를 들면, 도 2에 도시되어 있지는 않지만 컨트롤러(1220A)는 주 저장부(1240)에 저장된 데이터의 에러를 검출 및 정정을 수행하기 위한 에러 정정 회로 등을 더 포함할 수 있다.
 호스트 인터페이스(1222)는 호스트(1100)와의 인터페이스를 제공하고, 플래시 인터페이스(1224)는 주 저장부(1240)와의 인터페이스를 제공할 수 있다. 프로세싱 유닛(1226)은 컨트롤러(1220A)의 제반 동작을 제어할 수 있다.
버퍼 메모리(1228)는 주 저장부(1240)에 저장될 또는 주 저장부(1240)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 수 있다. 또한, 버퍼 메모리(1228)는 앞서 설명된 스텝1의 대상이 되는 영역(즉, 무효화 명령에 따라 삭제될 영역)의 정보를 저장하는 데 사용될 수 있다. 버퍼 메모리(1228)는 DRAM 또는 SRAM 과 같은 휘발성 메모리로 구성될 수 있다. 예시적인 실시 예에 있어서, 스텝1의 대상이 되는 영역의 정보는, 버퍼 메모리(1228) 대신 추가적인 휘발성/불휘발성 메모리, 또는 레지스터 등을 사용하여 저장될 수 있다. 스텝1의 대상이 되는 영역의 정보를 저장하는 방법 및 구성은 특정 실시예에 국한되지 않고 다양한 형태로 구성될 수 있다.
도 3은 도 1에 도시된 컨트롤러(1220)의 다른 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 3을 참조하면, 컨트롤러(1220B)는 저장 장치(1200)가 SSD를 구성하는 경우, SSD 컨트롤러로서 구성될 수 있다. 컨트롤러(1220B)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 복수의 프로세싱 유닛(1226_1~1226_N), 그리고 버퍼 메모리(1228)를 포함할 수 있다. 도 3과 같이 컨트롤러(1220B) 내에 복수의 프로세싱 유닛(1226_1~1226_N)이 구비된 경우를 멀티 코어 프로세서라 하고, 도 2와 같이 컨트롤러(1220A) 내에 하나의 프로세싱 유닛(1226)이 구비된 경우를 단일 코어 프로세서라 한다.
도 3에 도시된 컨트롤러(1220B)의 구성은 본 발명이 적용되는 일 예에 관한 것으로, 다양한 형태로 변경 및 변형 가능하다. 예를 들면, 도 3에 도시되어 있지는 않지만 컨트롤러(1220B)는 주 저장부(1240)에 저장된 데이터의 에러를 검출 및 정정을 수행하기 위한 에러 정정 회로 등을 더 포함할 수 있다.
컨트롤러(1220B)는 복수의 프로세싱 유닛(1226_1~1226_N)을 통해 제반 동작을 수행할 수 있다. 컨트롤러(1220B)는 복수의 제어 동작들을 소정의 개수로 나눈 후에, 나누어진 제어 동작을 복수의 프로세싱 유닛들(1226_1~1226_N)로 할당할 수 있다. 이와 같은 구성에 따르면, 복수의 제어 동작들이 병렬로 수행될 수 있게 된다. 예시적인 실시예에 있어서, 복수의 프로세싱 유닛(1226_1~1226_N)은 복수의 채널들(CH1∼CHn) 각각에 대응되어, 각각의 채널에 대해 독립적인 제어를 수행하도록 구성될 수 있다. 이와 같은 구성에 따르면, 컨트롤러(1220B)가 낮은 주파수 클록에 의해 구동되더라도, 복수의 프로세싱 유닛(1226_1~1226_N)을 포함하는 컨트롤러(1220B)의 성능이 향상될 수 있게 된다.
도 4는 본 발명의 실시 예에 따른 컴퓨팅 시스템의 무효화 동작을 보여주는 흐름도이다. 이하, 발명의 실시 예에 따른 컴퓨팅 시스템의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 4를 참조하면, S1000 단계에서 저장 장치(1200)는 호스트(1100)로부터 무효화 명령을 받아들인다. 그리고 나서, S1100 단계에서 Step1 동작이 시작된다. S1000 단계에서 수신된 무효화 명령은 저장 장치(1200)에 저장된 파일들 중 무효한 내용을 갖는 파일들을 삭제하는 데 사용될 수 있다. 이 경우, 무효화 명령은 보안 무효화 명령을 포함할 수 있으며, 무효화 명령은 무효한 내용을 갖는 파일들의 영역을 나타내는 정보를 포함할 수 있다. 무효한 내용을 갖는 파일들의 영역을 나타내는 정보는, 예를 들면, 무효화될 영역의 시작 및 종료 어드레스를 포함할 수 있다.
Step1 동작이 시작되면, S1200 단계에서 저장 장치(1200)의 컨트롤러(1220)가 호스트(1100)로부터 제공된 무효화 명령에 응답해서 무효화될 영역(또는 파일들)의 위치 정보 등을 기록/저장/마킹 한다. S1200 단계에서 기록/저장/마킹된 결과는 컨트롤러(1220)에 구비되어 있는 RAM, 버퍼, 또는 레지스터에 저장되거나, 또는 주 저장부(1240) 내에 저장될 수 있다. 컨트롤러(1220)는 무효화될 영역(또는 파일들)의 위치 정보 등이 기록/저장/마킹되고 나면 응답 신호(예를 들면, ACK 신호)를 발생하여, 무효화 명령의 실행이 완료되었음을 호스트(1100)에게 통지할 수 있다. 그 결과, 호스트(1100)는 무효화 명령의 실행이 즉각적으로 완료된 것으로 인식하게 되고, 삭제될 영역의 데이터가 호스트(1100) 측에서는 무효화된 것처럼 보여지게 된다.
여기서, 무효화란 삭제될 영역에 기록되어 있는 데이터가 호스트(1100) 측에서 무효한 데이터로 인식되도록 처리하는 것을 의미할 수 있다. 이러한 무효화는 주 저장부(1240)의 물리적인 블록들과 논리적인 블록들 사이의 맵핑이 기록된 맵핑 테이블을 관리함으로써 행해질 수 있다. 예를 들면, 무효화는 삭제될 영역에 대한 맵핑 정보를 맵핑 테이블에서 제외(map-out)함으로써 또는 삭제될 영역을 맵핑 테이블에 표시(marking)함으로써 달성될 수 있다. 예시적인 실시예에 있어서, 앞서 설명된 무효화는 삭제될 영역에 대응하는 주 저장부(1240)의 메모리 블록(들)에 무효 블록을 나타내는 정보가 기록/저장/마킹되는 동작을 선택적으로 수반할 수 있다. 또는, 앞서 설명된 무효화는 삭제될 영역에 대응하는 주 저장부(1240)의 메모리 블록(들)에 무효 블록을 나타내는 정보가 기록/저장/마킹 되는 동작을 수반할 수 있다.
주 저장부(1240)를 구성하는 플래시 메모리 칩들에 대한 쓰기 내지 소거 동작시의 어드레스 관리는, SSD 컨트롤러(1220)에 의해서 실행되는 시스템 소프트웨어 또는 펌웨어인 플래시 변환 계층(Flash Translation Layer: FTL)에 의해서 관리될 수 있다.
주 저장부(1240)를 구성하는 플래시 메모리 칩들은 겹쳐쓰기(overwrite)가 불가능한 메모리이다. 따라서, 플래시 메모리에 데이터를 쓰기 위해서는 소거 동작이 반드시 선행되어야 한다. 이는, 새로운 데이터가 쓰여질 메모리 블록은 반드시 소거 상태(즉, 데이터가 저장되어 있지 않은 빈 상태)의 메모리 블록이어야 함을 의미한다. 그런데, 플래시 메모리에서 쓰여지는 데이터의 단위는, 소거되는 데이터의 단위보다 작다. 따라서, 파일 시스템(통상 파일 시스템은 호스트 측에 소프트웨어 형태로 저장됨)이 생성한 논리 블록 어드레스(LBA)를 소거 상태에 있는 메모리 블록의 물리 블록 어드레스(Physical Block Address, PBA)로 맵핑 시켜 주기 위해 FTL이 사용된다. 이와 같은 FTL의 동작을 어드레스 맵핑 기능이라 한다.
FTL의 어드레스 매핑 기능으로 인해, 호스트(1100)는 플래시 메모리로 구성된 저장 장치(1200)를 마치 하드디스크 드라이버 또는 SRAM처럼 인식하고, 하드디스크 드라이버와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다. 플래시 메모리의 어드레스 맵핑 정보는 맵핑 테이블 형태로 관리될 수 있다. 맵핑 테이블의 관리는 FTL에 의해서 행해질 수 있다. S1200 단계에서 기록/저장/마킹된 결과 역시 FTL에 의해 관리될 수 있다.
이어서, S1300 단계에서는 컨트롤러(1220)는 호스트(1100)로부터 제공된 무효화 명령으로 인해 버퍼 메모리가 플러시(flush)될 필요가 있는지 여부가 판별될 수 있다. 버퍼 메모리의 플러시(flush) 여부는, Step1의 실행 횟수, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하는지 여부를 판정함에 의해서 결정될 수 있다. 예시적인 실시예에 있어서, 버퍼 메모리의 플러시 동작은, Step1이 소정 횟수 이상 실행되었을 때, 또는 Step1이 실행될 때마다 수행되도록 정의될 수 있다. 또한, 다른 실시예에 있어서, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하는 경우에는 버퍼 메모리가 플러시 되지 않도록 구성될 수 있다. 그리고, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 경우에는 버퍼 메모리가 플러시 되도록 구성될 수 있다. 이상에서는, Step1의 실행 횟수와 버퍼 메모리에서 사용 가능한 데이터 저장 공간을 기준으로 플러시 동작의 실행 여부를 판별하는 구성이 예시적으로 설명되었다. 그러나, 이는 본 발명이 적용되는 일 예로서, 플러시 동작의 실행 여부를 판별하는 조건은 다양한 형태로 변경 및 변형 가능하다.
플러시는 버퍼 메모리에 저장된 데이터를 플래시 메모리로 강제적으로 출력하는 것을 의미한다. 플러시 동작에 따르면, 버퍼 메모리에 임시 저장되어 있던 데이터가 플래시 메모리에 저장될 것이다.
S1300 단계의 판별 결과 버퍼 메모리가 플러시 될 필요가 있으면, S1400 단계에서는 플래시 메모리에서 소거 동작이 수행될 필요가 있는지 여부가 판별된다. 플래시 메모리에서 소거 동작이 수행될 필요가 있는지 여부는, 데이터가 저장될 빈 메모리 블록이 플래시 메모리에 존재하는지 여부를 근거로 하여 판단될 수 있다. S1400 단계에서의 판별 결과 플래시 메모리에서 소거 동작이 수행될 필요가 있으면, S1500 단계에서는 적어도 하나 이상의 메모리 블록에 대한 소거 동작이 수행될 수 있다. S1500 단계에서 소거되는 메모리 블록은 FTL에 의해 지정될 수 있다. 소거된 메모리 블록에는 소거된 상태를 나타내는 정보가 마킹될 수 있다. 소거된 메모리 블록의 소거 정보 역시 FTL에 의해 관리될 수 있다.
메모리 블록에 대한 소거 동작이 수행되고 나면, S1600 단계에서는 S1200 단계에서 기록/저장/마킹된 결과를 근거로 하여 유효한 데이터에 대한 머지/복사 동작이 수행될 수 있다. S1600 단계에서 수행되는 머지/복사 동작은 여러 가지 방식으로 실행될 수 있다. 예를 들면, 본 발명의 제 1 실시예에 따른 머지/복사 동작에서는 파일 시스템 정보(예를 들면, FAT 정보)를 이용하여 실행될 수 있다. 본 발명의 제 2 실시예에 따른 머지/복사 동작에서는 버퍼 메모리를 이용하여 실행될 수 있다.
본 발명의 제 1 실시예에 따른 머지/복사 동작은, 호스트(1100)에서 무효화 시킨 데이터가 플래시 메모리에 저장되어 있을 경우에 적용될 수 있다. 이 경우, 머지/복사 동작을 위해 읽혀진 유효 데이터는 플래시 메모리 외부로 출력되지 않고 플래시 메모리 내부에 래치된 상태에서 머지/복사될 수 있다. 이러한 머지/복사 동작은 카피백(copyback) 동작으로 알려진 플래시 메모리의 데이터 쓰기 방식을 통해 수행될 수 있다. 그러나, 이러한 방식은 본 발명의 머지/복사 동작을 수행하는 일 예에 불과하며, 본 발명의 머지/복사 동작에 사용될 수 있는 데이터 쓰기 방식은 다양하게 변경 및 변형 가능하다.
본 발명의 제 2 실시예에 따른 머지/복사 동작은, 호스트(1100)에서 무효화 시킨 데이터의 전체 또는 일부가 버퍼 메모리에 저장되어 있을 때 적용될 수 있다. 제 2 실시예에 따른 머지/복사 동작에서는 S1200 단계에서 기록/저장/마킹된 결과를 근거로 하여 버퍼 메모리에 저장된 데이터 중 유효한 데이터만 선별하고, 선별된 데이터만 플러시 동작을 통해 플래시 메모리에 복사될 수 있다. 이 경우, 무효한 것으로 마킹된 영역에 포함되어 있는 무효한 데이터는 플래시 메모리로 복사되지 않을 것이다.
이와 같은 본 발명의 제 1 및 제 2 실시예에 따른 머지/복사 동작에 따르면, 무효한 것으로 마킹된 영역에 포함되어 있는 무효한 데이터는 머지/복사 동작에서 제외된다. 그 결과, 무효한 데이터는 마치 '1111…'(16진수로 표시할 경우, 0xFF)의 값으로 복사된 것과 같은 효과를 갖게 되고, 선별적인 머지/복사 동작으로 인해 머지/복사 동작에 소요되는 시간이 줄어들게 된다. Step1 구간에서 머지/복사 동작이 수행됨으로 인해, 호스트(1100) 측에서 데이터를 읽을 때마다 비트맵에 존재하는 모든 블록의 정보를 매번 확인해야 하는 프로세스가 필요 없게 된다. 그리고, 관리 해야 할 비트맵의 크기 또한 줄어들게 된다. 따라서, 비트맵 관리로 인한 오버헤드를 방지할 수 있고, RAM 또는 버퍼와 주 저장부(1240)가 가지고 있는 한정된 데이터 저장 용량을 효과적으로 운용할 수 있게 된다.
한편, S1400 단계에서의 판별 결과 플래시 메모리에서 소거 동작이 수행될 필요가 없으면, 수순은 S1600 단계로 진행하여 앞에서 설명된 머지/복사 동작이 수행된다.
S1600 단계에서 머지/복사 동작이 모두 수행되고 나면, S1700 단계에서는 Step1 동작이 종료되었는지 여부가 판별될 수 있다. S1700 단계에서의 판별 결과 Step1 동작이 종료되었으면, S1800 단계에서 Step2 동작이 실행된다. 예시적인 실시예에 있어서, S1800 단계는 호스트(1100)로부터 명령이 입력되지 않는 유휴 시간 동안 수행될 수 있다.
S1800 단계에서는 S1200 단계에서 무효한 것으로 마킹된 영역에 포함되어 있는 무효한 데이터가 버퍼 메모리 또는 플래시 메모리로부터 퍼지(purge)된다. 여기서, 퍼지 동작은 보안 소거(confidential erase)를 의미할 수 있다. 보안 소거 동작에서는 무효화된 데이터가 외부에서 읽혀지지 않도록 하기 위해 복구(recover)가 불가능하도록 완전히 소거될 수 있다. 이와 같은 보안 소거 동작은 보안이 요구되는 데이터에 대한 무효화 동작에 유용하게 사용될 수 있다.
한편, S1700 단계에서의 판별 결과 Step1 동작이 종료되지 않았으면, 수순은 S1100 단계로 되돌아가서 Step1 동작을 재 수행한다. 여기서, Step1 동작은 실행 횟수에 제약을 받지 않고 복수 회 실행될 수 있다.
도 5 내지 도 7은 도 4에 도시된 본 발명의 제 1 실시예에 따른 머지/복사 동작을 설명하기 위한 도면이다.
아래에서는 도 5 내지 도 7을 참조하여 호스트(1100)에서 무효화 시킨 데이터가 플래시 메모리에 저장되어 있을 경우의 머지/복사 동작에 대해 설명될 것이다. 이 경우, 무효한 것으로 마킹된 영역에 포함되어 있는 유효한 데이터는 머지 동작을 통해 선별적으로 플래시 메모리의 빈 메모리 블록(즉, 소거 상태의 메모리 블록)으로 복사될 것이다. 이와 같은 일련의 동작은 파일 시스템 정보를 이용하여 수행될 수 있다.
먼저 도 5를 참조하면, 저장 장치(1200)는 주 저장부(1240)와 컨트롤러(1220)를 포함할 수 있다. 본 발명에서는 주 저장부(1240)가 플래시 메모리로 구성되는 경우가 예시적으로 설명될 것이다. 여기서, 주 저장부(1240)는 플래시 메모리 대신에 다른 불휘발성 메모리(예를 들면, PRAM, FRAM, MRAM 등) 또는 휘발성 메모리(예를 들면, SRAM, DRAM 등)가 사용될 수 있다
주 저장부(1240)는 스트링 구조(string structure)를 갖는 복수의 메모리 셀들(memory cells)로 구성될 수 있다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 주 저장부(1240)의 메모리 셀 어레이는 복수의 블록들(blocks)로 구성될 수 있다. 각각의 블록은 복수의 페이지들(pages)로 구성될 수 있다. 각각의 페이지는 하나의 워드라인을 공유하는 복수의 메모리 셀들로 구성될 수 있다. 하나의 워드라인에는 하나 또는 그 이상의 페이지들에 대응되는 메모리 셀들이 대응될 수 있다. 주 저장부(1240)는 블록 단위로 소거 동작이 이루어지며, 페이지 단위로 읽기 및 쓰기 동작이 이루어진다. 다른 실시예에 있어서, 읽기 및 쓰기 동작의 단위는 복수의 페이지 단위로 수행될 수도 있고, 하나의 페이지 보다 작은 서브 페이지 단위로 수행될 수도 있다.
이상에서 설명된 바와 같이, 플래시 메모리로 구성된 주 저장부(1240)는 읽기/쓰기 동작의 단위와 소거 동작의 단위가 다르다. 또한, 주 저장부(1240)는 다른 반도체 메모리 장치와 달리 겹쳐쓰기(over write)가 되지 않는다. 따라서 주 저장부(1240)는 쓰기 동작을 수행하기 전에 반드시 소거 동작이 수행되어야 한다.
주 저장부(1240)의 이러한 특성들로 인해, 주 저장부(1240)를 하드 디스크처럼 사용하기 위해서는 읽기, 쓰기, 그리고 소거 동작에 대한 어드레스 관리가 별도로 필요하다. FTL는 이러한 목적으로 개발된 시스템 소프트웨어이다. 읽기, 쓰기, 그리고 소거 동작에 대한 FTL의 어드레스 관리 동작으로 인해, 호스트(1100)의 입장에서 볼 때, 저장 장치(1200)는 마치 하드 디스크처럼 읽기(read), 쓰기(write), 그리고 소거(erase) 동작이 자유로운 저장 매체로 인식될 수 있다.
주 저장부(1240)는 FAT 영역(1241), 데이터 영역(1242), 로그 영역(1243), 그리고 메타 영역(1244)을 포함할 수 있다. 여기에서, FAT 영역(1241)은 파일 시스템 영역의 일종이다.
FAT 영역(1241)에는 파일 시스템 정보(예를 들면, FAT 정보)가 저장될 수 있다. 로그 영역(1243)의 로그 블록들은 데이터 영역(1242)의 메모리 블록들 중 일부 메모리 블록들에 각각 지정될 수 있다. 즉, 데이터 영역(1242)의 메모리 블록에 데이터를 쓰고자 하는 경우, 데이터는 메모리 블록에 직접 쓰이는 것이 아니라 로그 영역(1243)의 대응하는 로그 블록에 저장될 수 있다.
그러나 데이터 영역(1242)의 메모리 블록에 대응하는 로그 영역(1243)의 로그 블록이 지정되어 있지 않은 경우, 또는 로그 영역(1243)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 호스트(1100)의 요청이 있는 경우에는 머지 동작이 수행될 수 있다. 또한, 도 4에 도시된 바와 같이 호스트(1100)로부터 입력된 무효화 명령이 입력된 경우, 소정의 조건(예를 들면, Step1의 실행 횟수, 버퍼 메모리 또는 주 저장부에 데이터를 저장할 공간이 소정 크기 이상 존재하는지 여부 등)이 만족될 때마다 Step1 구간 동안 무효화될 영역으로 마킹된 결과를 근거로 하여 머지 동작이 수행될 수 있다. 여기서, 무효화 명령은 보안 무효화 명령(예를 들면, 보안 트림(secure TRIM))을 포함할 수 있다.
본 발명의 실시예에 따르면 Step1 구간 동안 머지 동작을 통해 로그 블록의 유효한 페이지와 메모리 블록의 유효한 페이지가 새로운 메모리 블록 또는 로그 블록으로 복사될 수 있다. 머지 동작이 수행되면, 맵핑 정보가 변경되는데, 변경된 맵핑 정보는 메타 영역(1244)에 저장될 수 있다.
컨트롤러(1220)는 호스트(1100)로부터 액세스 요청이 있을 때 주 저장부(1240)를 제어하도록 구성될 수 있다. 도 5에 도시된 바와 같이, 컨트롤러(1220)는 프로세싱 유닛(1226)과, 워크 메모리(work memory)(1227)를 포함할 수 있다. 워크 메모리(1227)는 내부 메모리로도 불리기도 한다. 워크 메모리(1227)에는 FTL이 저장될 수 있다.
도 6은 제 1 실시예에 따른 머지/복사 동작을 설명하기 위한 도면이다. 도 6에는 도 5에 도시된 컴퓨팅 시스템(1000)에서 파일 시스템 정보(예를 들면, FAT 정보)를 이용하여 수행될 수 있는 머지/복사 동작이 예시적으로 도시되어 있다.
도 4 내지 도 6을 참조하면, 컴퓨팅 시스템(1000)은 Step1 구간의 S1200 단계에서 마킹된 결과를 이용하여, S1600단계에서 머지/복사 동작을 수행할 수 있다. 예시적인 실시예에 있어서, 메모리 블록의 무효화 여부에 대한 정보는 Step1 구간 동안 S1200 단계에서 파일 시스템 정보(예를 들면, FAT 정보) 형태로 마킹될 수 있다. 여기서, 메모리 블록의 무효화 여부에 대한 정보가 마킹되는 형태는 파일 시스템 정보(예를 들면, FAT 정보) 형태 뿐만 아니라, 별도로 정의된 데이터 형태로도 마킹될 수 있다.
도 6에 도시된 바와 같이, 로그 블록(2510)의 유효한 페이지(2511, 2513)와 메모리 블록(2520)의 유효한 페이지(2522)는 도 4에 도시된 S1600 단계에서 제 1 실시예에 따른 머지/복사 동작을 통해 새로운 메모리 블록(2530)으로 머지/복사될 수 있다. 주 저장부(1240)가 플래시 메모리 칩들로 구성되는 경우, 데이터 머지/복사가 수행될 메모리 블록(2530)은 소거 상태의 메모리 블록으로 구성될 수 있다. 소거 상태의 메모리들의 문턱전압 분포에 따르면, 소거 상태의 메모리 블록은 '1111…'의 데이터가 기록된 것과 같은 분포를 갖는다.
본 발명에 따름 머지/복사 동작에 따르면, 유효한 것으로 마킹되어 있는 로그 블록(2510)의 제 1 및 제 3 페이지(2511, 2513)는 새로운 메모리 블록(2530)의 제 1 및 제 3 페이지(2531, 2533)로 각각 복사될 수 있다. 그리고 유효한 것으로 마킹되어 있는 메모리 블록(2520)의 제 2 페이지(2522)는 새로운 메모리 블록(2530)의 제 2 페이지(2532)로 복사될 수 있다. 이 경우, 무효한 것으로 마킹되어 있는 메모리 블록(2520)의 제 4 페이지(2524)에 대응되는 새로운 메모리 블록(2530)의 제 2 페이지(2532)에는 '1111…'의 데이터가 기록되어야 할 것이다. 선택된 페이지(2532)에 '1111…'의 데이터가 기록된다는 것은, 결국 해당 페이지(2532)가 소거 상태를 유지함을 의미할 수 있다.
따라서, 본 발명에 따른 머지/복사 동작에서는 무효한 것으로 마킹되어 있는 페이지에 대해 소거 상태에 있는 페이지(2532)를 맵핑만할 뿐, '1111…'의 데이터를 기록하는 동작은 수행하지 않는다. 이 경우, 상기 페이지(2532)에 대해 별도의 머지/복사 동작을 수행하지 않더라도, 상기 페이지(2532)가 이미 소거 상태에 있기 때문에 마치 '1111…'의 데이터(16진수로 표시할 경우, 0xFF)의 데이터가 기록된 것과 같은 효과를 갖게 된다. 이상과 같은 본 발명의 구성에 따르면, 무효한 것으로 마킹되어 있는 페이지(2524)에 대한 머지/복사가 실질적으로 생략되므로, 머지/복사 동작의 수행 시간이 단축될 수 있다. .
본 발명에 따른 머지/복사 동작을 구체적으로 살펴보면 다음과 같다.
먼저, 본 발명의 제 1 실시예에 따른 머지/복사 동작은 Step1 구간에서 마킹된 결과(예를 들면, FAT 정보(2540))를 참조하여 메모리 블록(2520)의 유효한 페이지들을 선별적으로 새로운 메모리 블록(2530)으로 복사할 수 있다. 이때, 머지 동작의 대상이 되는(즉, 유효한 페이지가 복사되는) 메모리 블록(2530)은, 소거 상태의 빈 메모리 블록으로 구성될 수 있다.
구체적으로, 주 저장부(1240)에 저장된 FAT 정보(2540)는 메모리 블록(2520)의 페이지의 할당(Allocation) 여부에 대한 정보를 저장할 수 있다. 예를 들어, 메모리 블록(2520)의 제 1 페이지(2521)는 파일을 저장하는데 사용되지 않은 페이지이므로, FAT 정보(2540)에 NA(Not Allocation)로 표시될 수 있다. 메모리 블록(2520)의 제 2 페이지(2522)는 파일을 저장하고 있는 유효한(Valid) 페이지이므로, FAT 정보(2540)에 할당(Allocate)을 나타내는 A로 표시될 수 있다. 메모리 블록(2520)의 제 3 및 제 5 페이지(2523, 2525)에 해당하는 FAT 정보(2540)에는 NA로 표시되어 있다.
호스트(1100)로부터 입력된 무효화 명령에 따라 무효화될 영역으로 메모리 블록(2520)의 제 4 페이지(2524)가 지정되면, 메모리 블록(2520)의 제 4 페이지(2524)에 해당하는 FAT 정보(2540)에는 삭제(Delete)를 나타내는 D로 표시되어 있다. 메모리 블록(2520)의 제 4 페이지(2524)에는 파일이 저장되어 있기 때문에 데이터 블록(2520)에는 유효한(Valid) 페이지로 표시되어 있지만, 파일 시스템 관점에서는 삭제된 페이지에 해당된 된다. 즉, 메모리 블록(2520)의 제 4 페이지(2524)에 저장된 데이터는 FTL 관점에서는 유효한 페이지이지만, 파일 시스템 관점에서는 삭제된 더 이상 유효하지 않은 페이지이다. 이 경우, 메모리 블록(2520)의 제 4 페이지(2524)에 저장된 데이터는 호스트(1100) 측에서는 무효화된 것으로 보여지게 된다.
따라서, 메모리 블록(2520)의 제 4 페이지(2524)가 파일 시스템 관점에서 지워진 데이터(즉, 무효 데이터)를 나타내는 경우, 본 발명의 제 1 실시예에 따른 머지/복사 동작에서는 해당 페이지의 데이터가 새로운 메모리 블록(2530)으로 복사되지 않는다. 그 결과, 본 발명에 따른 머지/복사 동작시 무효 데이터는 '1111…'(16진수로 표시할 경우, 0xFF)의 값으로 복사된 것과 같게 된다.
도 7은 본 발명의 제 1 실시예에 따른 머지/복사 동작의 상세 흐름도이다. 도 7에는 도 5에 도시된 컴퓨팅 시스템(1000)에서 파일 시스템 정보(예를 들면, FAT 정보)를 이용하여 수행될 수 있는 머지/복사 동작이 예시적으로 도시되어 있다.
도 7을 참조하면, S1610 단계에서는 머지 동작의 타킷이 되는 새로운 메모리 블록(도 6의 2530 참조)의 물리적 페이지를 논리적 페이지로 변환할 수 있다. S1620 단계에서는, FTL이 플래시 메모리(도 5의 1240 참조)의 FAT 영역(1241)에서 FAT 정보를 읽어 온다. S1630 단계에서는, FAT 정보를 참조하여 메모리 블록의 해당 페이지가 복사의 대상이 되는 유효한 페이지인지 여부가 판단될 수 있다. 즉, FAT 영역의 해당 페이지가 파일을 저장하는데 할당되어 있는지를 판단할 수 있다. 만약, 파일이 저장되어 있지 않은 페이지(예를 들면, NA로 표시됨)이거나 삭제된 페이지(예를 들면, D로 표시됨)면, 새로운 메모리 블록으로 복사하지 않고 다음 단계(S1650)를 진행할 수 있다.
S1640 단계에서는, 메모리 블록의 해당 페이지가 파일이 저장되어 있는 유효한 페이지(예를 들면, A로 표시됨)이면, 유효 페이지의 데이터를 새로운 메모리 블록으로 복사할 수 있다. S1650 단계에서는, 메모리 블록의 나머지 페이지에 대해서 S1630 단계 내지 S1640 단계를 반복 수행할 수 있다. 메모리 블록의 페이지 복사가 모두 수행된 다음에는, 로그 블록의 페이지 복사를 수행하고 머지 동작을 종료할 수 있다.
이상에서 살펴 본 바와 같이, 본 발명의 제 1 실시예에 따른 머지/복사 동작은 파일 시스템 관점에서 유효하지 않은 데이터의 복사를 방지함으로써, 스텝1 구간에서의 머지/복사 동작에 소요되는 시간을 줄일 수 있다.
예를 들어, 로그 블록에 유효한 페이지가 x개이고, 메모리 블록에 데이터가 존재하는 페이지가 y개이며, 한 페이지를 복사하는데 소요되는 시간을 z라고 하면, 머지 동작에 소요되는 전체 시간은 (x+y)*z가 될 수 있다. 이때 파일 시스템의 관점에서 삭제된 페이지의 수가 i개라고 하면, 머지 수행 시간 중에서 i*z 시간은 불필요한 시간이라고 할 수 있다. 따라서 본 발명에 따른 컴퓨팅 시스템 및 머지 방법에 의해 줄어 든 머지 수행 시간은 (i*z-(FAT 영역을 읽는 시간))이 될 수 있다.
본 발명의 제 1 실시예에 따른 머지/복사 동작은 소정의 조건(Step1의 실행 횟수, 버퍼 메모리 또는 주 저장부에 데이터를 저장할 공간이 소정 크기 이상 존재하는지 여부 등)이 만족될 때마다 Step1 구간에서 수행되도록 구성될 수 있다. 제 1 실시예에 따른 머지/복사 동작이 실행될 조건에는 플러시의 실행 여부가 포함될 수도 있다. 그러나, 한편, 본 발명의 제 1 실시예에 따른 머지/복사 동작은 버퍼 메모리(12280)의 플러시 동작이 수행되는 경우가 아니더라도 필요에 따라 수행되도록 구성될 수도 있다. 이 경우, 제 1 실시예에 따른 머지/복사 동작에서는 플러시의 실행 여부를 판별하는 동작이 선택적으로 생략될 수도 있다.
도 8 내지 도 14는 본 발명의 제 2 실시예에 따른 머지/복사 동작을 설명하기 위한 도면이다.
아래에서는 도 8 내지 도 13을 참조하여 호스트(1100)에서 무효화 시킨 데이터의 일부 또는 전체가 플래시 메모리에 저장되어 있을 경우의 머지/복사 동작에 대해 설명될 것이다. 이 경우, 무효한 것으로 마킹된 영역에 포함되어 있는 유효한 데이터는 버퍼 메모리로부터 선별적으로 플래시 메모리의 빈 메모리 블록(즉, 소거 상태의 메모리 블록)으로 복사될 것이다.
먼저 도 8을 참조하면, 호스트(1100)는 중앙처리장치(CPU, 1110)와 메모리(1120)를 포함할 수 있다. 메모리(1120)의 적어도 일부분은 호스트(1100)의 메인 메모리를 포함할 수 있다. 또는, 메모리(1120)는 호스트(1100)의 메인 메모리로 구성될 수도 있다.
응용 프로그램(application program, 1121) 및 파일 시스템(file system, 1122)이 메모리(1120) 내에 각각 제공될 수 있다. 파일 시스템(1122)은 FAT(file allocation table)을 포함하는 모든 파일 시스템들을 포함할 수 있다. 하지만, 이는 본 발명이 적용되는 일 예로서, 파일 시스템이 FAT에만 국한되는 것은 아니다.
응용 프로그램(1121)에 의해서 처리되는 파일 데이터의 전부 또는 일부가 삭제될 때, 중앙처리장치(1110)는 무효화 명령(Invalidity Command)을 저장 장치(1200)로 제공할 수 있다. 그리고, 삭제된 데이터를 지정하기 위한 어드레스 정보 및 데이터 크기 정보가 무효화 명령과 함께 저장 장치(1200)로 전송될 수 있다.
FAT 파일 시스템은 마스터 부트 리코드(master boot record: MBR), 파티션 부트 리코드(partition boot record: PBR), 제 1 및 제 2 파일 할당 테이블들(primary FAT, copy FAT), 그리고 루트 디렉토리를 포함할 수 있다. 저장 장치(1200)에 저장된/저장될 파일은 2가지의 정보를 사용하여 확인될 수 있다. 그 정보는 파일의 파일명과 파일이 저장된 곳에 도달하기 위해 통과하는 디렉토리 트리의 경로이다.
하나의 디렉토리에서 각 엔트리는, 예를 들면, 32-바이트 길이를 가지며, 파일명, 확장자, 파일 속성 바이트, 최종적으로 변경된 날짜/시간, 파일 크기, 그리고 시동 클러스터로의 연결 등과 같은 정보를 저장하고 있다. 특히, 파일명에 있어서, 삭제된 파일을 가리키기 위한 파일명의 첫 문자로 하나의 특수한 코드가 사용될 수 있다.
예를 들면, 파일명의 첫 글자의 자리에 십육진수 바이트 코드인 E5h를 위치시킬 수 있다. 이것은 하나의 특별한 꼬리표로서, '이 파일은 삭제되었습니다' 라는 것을 시스템 측에 알려줄 수 있다. 임의의 파일이 삭제될 때, 중앙처리장치(1110)는 삭제된 파일의 파일명의 첫 문자에 하나의 특수한 코드를 위치시킴과 아울러 삭제된 파일에 대응하는 무효화 명령(또는 삭제된 파일 데이터에 대한 무효 정보)을 저장 장치(1200)로 출력할 수 있다.
저장 장치(1200)는 주 저장부(1240), 버퍼 메모리(1228), 그리고 컨트롤러(1220)를 포함할 수 있다. 주 저장부(1240)는 데이터(문서 데이터, 영상 데이터, 음악 데이터, 그리고 프로그램과 같은 저장 가능한 모든 형식의 데이터를 포함함)를 저장하기 위한 것으로, 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있다. 하지만, 주 저장부(1240)가 여기에 개시된 것에 국한되지 않고, 다양한 형태로 구성될 수 있다.
버퍼 메모리(1228)는 호스트(1100)와 주 저장부(1240) 사이의 원활한 데이터 전송을 위해 사용되며, DRAM 또는 SRAM과 같은 고속 휘발성 메모리, 또는 MRAM, PRAM, FRAM, NAND 플래시 메모리, 또는 NOR 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있다.
버퍼 메모리(1228)는 쓰기 버퍼로 동작할 수 있다. 예를 들면, 버퍼 메모리(1228)는 호스트(1100)의 요청에 따라 주 저장부(1240)에 쓰여질 데이터를 임시 저장하기 위한 쓰기 버퍼로 동작할 수 있다. 또한, 쓰기 버퍼의 기능은 선택적으로 사용될 수 있다. 예컨대, 경우에 따라, 호스트(1100)에서 전달된 데이터는 쓰기 버퍼 즉, 버퍼 메모리(1228)를 경유하지 않고 주 저장부(1240)로 직접 전송될 수 있다. 저장 장치(1200)의 이러한 기능은 쓰기 바이패스 기능(write bypass function)이라 불린다.
또는, 버퍼 메모리(1228)는 읽기 버퍼로 동작할 수 있다. 예를 들면, 버퍼 메모리(1228)는 호스트(1100)의 요청에 따라 주 저장부(1240)에서 읽혀진 데이터를 임시 저장하기 위한 읽기 버퍼로서 동작할 수 있다. 도면에는 단지 하나의 버퍼 메모리가 도시되어 있지만, 2개 또는 그보다 많은 버퍼 메모리들이 제공될 수 있다. 이 경우, 각 버퍼 메모리는 쓰기 버퍼, 읽기 버퍼 또는 2개의 기능을 모두 갖는 버퍼로서 사용될 수 있다.
컨트롤러(1220)는 주 저장부(1240) 및 버퍼 메모리(1228)를 제어하도록 구성될 수 있다. 호스트(1100)로부터 읽기 명령이 입력될 때, 컨트롤러(1220)는 주 저장부(1240)에 저장된 데이터가 호스트(1100)로 이동되도록 주 저장부(1240)를 제어할 수 있다. 또는, 호스트(1100)로부터 읽기 명령이 입력될 때, 컨트롤러(1220)는 주 저장부(1240)에 저장된 데이터가 버퍼 메모리(1228)를 통해 호스트(1100)로 이동되도록 주 저장부(1240) 및 버퍼 메모리(1228)를 제어할 수 있다.
호스트(1100)로부터 쓰기 명령이 입력될 때, 컨트롤러(1220)는 쓰기 명령과 관련된 데이터가 버퍼 메모리(1228)에 임시 저장될 수 있다. 버퍼 메모리(1228)에 임시 저장된 데이터의 전부 또는 일부는 노말 동작시 버퍼 메모리(1228)의 여유 공간이 부족할 때, 또는 유휴 시간(호스트로부터 요청이 없을 때 생기는 컨트롤러(1220)의 유휴 시간)이 생길 때 컨트롤러(1220)의 제어에 따라 주 저장부(1240)로 옮겨질 수 있다. 이와 같이 버퍼 메모리(1228)에 저장되어 있는 데이터를 강제적으로 주 저장부(1240)으로 복사하는 동작을 플러시라 한다. 플러시 동작은 노말 동작은 물론, 무효화 동작 중에서도 수행될 수 있다.
저장 장치(1200)는 외부로부터 무효 정보(예를 들면, 무효화 명령, 저장 장치의 상위 레벨에서 삭제된 파일 데이터의 어드레스 정보, 그리고 삭제된 데이터의 크기 정보를 포함함)가 입력되면, 삭제된 데이터에 대응되는 버퍼 메모리(1228) 또는 주 저장부(1240)의 영역을 무효화 영역으로 마킹할 수 있다. 이러한 마킹 동작은 Step1 구간 동안 수행될 수 있다. 그리고 나서, Step1 구간에서는 마킹된 결과를 근거로 하여, 무효화된 것으로 마킹된 영역에 포함되어 있는 유효 데이터를 선별적으로 주 저장부(1240)의 빈 메모리 블록으로 머지/복사할 수 있다.
본 발명의 제 2 실시예에 따른 머지/복사 동작은 버퍼 메모리(1228)의 플러시 동작을 이용하여 수행될 수 있으며, 저장 장치(1200)의 상위 레벨에서 이미 삭제된 데이터가 버퍼 메모리(1240)로부터 주 저장부(1240)에 쓰이는 것을 방지할 수 있다.
본 발명의 제 2 실시예에 따른 머지/복사 동작은, Step1의 실행 횟수, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하는지 여부를 판정함에 의해서 결정될 수 있다. 예시적인 실시예에 있어서, 버퍼 메모리의 플러시 동작은, Step1이 소정 횟수 이상 실행되었을 때, 또는 Step1이 실행될 때마다 수행되도록 정의될 수 있다. 또한, 다른 실시예에 있어서, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하는 경우에는 버퍼 메모리가 플러시 되지 않도록 구성될 수 있다. 그리고, 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 경우에는 버퍼 메모리가 플러시 되도록 구성될 수 있다.
이상에서는, Step1의 실행 횟수와 버퍼 메모리에서 사용 가능한 데이터 저장 공간을 기준으로 플러시 동작의 실행 여부를 판별하는 구성이 예시적으로 설명되었다. 그러나, 이는 본 발명이 적용되는 일 예로서, 플러시 동작의 실행 여부를 판별하는 조건은 다양한 형태로 변경 및 변형 가능하다.
이상의 동작을 수행하기 위해서, 컨트롤러(1220)는 주 저장부(1240)와 버퍼 메모리(1228) 사이의 어드레스 맵핑 정보(address mapping information) 및 버퍼 메모리(1228)에 저장된 데이터가 유효한 정보인지의 여부를 나타내는 쓰기 상태 정보를 저장하기 위한 맵핑 테이블(1229)을 포함할 수 있다.
쓰기 상태 정보는 외부로부터 제공되는 무효 정보에 따라 갱신되며, 이는 이후 상세히 설명될 것이다. 컨트롤러(1220)는 맵핑 테이블(1229)의 쓰기 상태 정보에 따라 버퍼 메모리(1228)에 저장된 데이터의 전부 또는 일부가 주 저장부(1240)에 쓰이도록 주 저장부(1240) 및 버퍼 메모리(1228)를 제어할 수 있다.
이상의 설명으로부터 알 수 있듯이, 본 발명의 저장 장치(1200)는 무효화 명령이 입력되는 Step1 구간 동안 무효화될 영역을 마킹하고, 마킹된 결과와 맵핑 테이블(1229)의 쓰기 상태 정보를 참조하여 버퍼 메모리(1228)에 저장된 데이터의 전부 또는 일부를 주 저장부(1240)로 옮기는 머지/복사 동작을 수행한다. 본 발명의 머지/복사 동작은 저장 장치(1200)의 상위 레벨에서 이미 삭제된 데이터가 버퍼 메모리(1240)로부터 주 저장부(1240)에 쓰이는 것을 방지할 수 있다.
즉, 저장 장치(1200)는 버퍼 메모리(1228)에 저장된 데이터가 유효한 데이터인지 또는 무효한 데이터인지를 나타내는 무효 정보를 저장 장치(1200)의 외부(예를 들면, 호스트)로부터 입력받고, 입력된 정보를 참조하여 버퍼 메모리(1228)에 저장된 데이터 중 무효한 데이터가 주 저장부(1240)에 쓰이는 것을 방지할 수 있다.
다시 말해서, 저장 장치(1200)는 버퍼 메모리(1228)에 저장된 데이터에 유효/무효 정보의 꼬리표를 달고(즉, 마킹하고), 이를 근거로 하여 버퍼 메모리(1228)로부터 주 저장부(1240)로의 데이터 옮겨 쓰기 동작을 선별적으로 제어할 수 있다. 따라서, 저장 장치(1200)의 쓰기 성능이 향상되고, 불필요한 쓰기 동작으로 인한 주 저장부(1240)의 수명이 단축되는 것을 방지할 수 있으며, 불필요한 쓰기 동작으로 인한 전력 소모를 줄일 수 있다.
도 9 및 도 10은 도 8에 도시된 컨트롤러(1220)의 맵핑 테이블(1229)의 구성을 예시적으로 보여주는 도면들이다.
도 9 및 도 10을 참조하면, 부호 "BBN"은 버퍼 메모리(1228)의 블록 번호를 나타내고, 부호 "DCN"은 주 저장부(1240)의 클러스터 번호를 나타낼 수 있다. 그리고, 부호 "WSI"는 버퍼 메모리(1228)에 저장된 데이터가 유효한 데이터인지의 여부를 나타내는 쓰기 상태 정보를 나타낼 수 있다.
설명의 편의상, 버퍼 메모리(1228)의 블록 크기가 복수의 섹터로 구성되는 클러스터의 크기와 같다고 가정하자. 하지만, 주 저장부(1240)의 할당 단위(allocation unit)가 여기에 개시된 것에 국한되지 않고, 다양하게 구성 가능하다. 예를 들면, 주 저장부(1240)의 할당 단위가 마그네틱 디스크의 섹터로 지정될 수도 있고, 또는 플래시 메모리의 페이지, 섹터, 또는 블록으로 지정될 수도 있다. 도 9 및 도 10에 있어서, 무효 데이터는 'X'로 표시되어 있고, 유효 데이터는 'V'로 표시되어 있다.
도 9에 도시된 바와 같이, 버퍼 메모리(1228)에 3개의 파일들(FILE1, FILE2, FILE3)과 관련된 데이터가 유효한 데이터로서 저장되어 있다고 가정하자. 각 데이터는 주 저장부(1240)로부터 읽혀진 데이터로서, 호스트(1100)에 의해서 갱신되고 주 저장부(1240)에는 아직 저장되지 않는 데이터일 수 있다. 또는, 각 데이터는 호스트(1100)로부터 버퍼 메모리(1228)로 전달되고 주 저장부(1240)에는 아직 저장되지 않은 데이터일 수 있다.
버퍼 메모리(1228)에 저장된 파일 데이터(FILE1, FILE2, FILE3)는, 앞서 언급된 바와 같이, 본 발명의 제 2 실시예에 따른 머지/복사 동작시 컨트롤러(1220)의 제어에 따라 주 저장부(1240)로 이동될 수 있다. 컨트롤러(1220)는 호스트(1100)로부터 전달되는 무효 정보에 따라 저장된 파일들 데이터(FILE1, FILE2, FILE3)의 쓰기 상태 정보를 갱신하도록 구성될 수 있다.
예를 들면, 파일 데이터(FILE2)가 저장 장치(1200)의 상위 레벨로서 호스트(1100)에서 삭제되었다는 무효 정보가 호스트(1100)로부터 입력되면, 도 10에 도시된 바와 같이, 컨트롤러(1220)는 무효 데이터를 나타내도록 파일 데이터(FILE2)의 쓰기 상태 정보를 'X'로 표시할 수 있다. 또한, 컨트롤러(1220)는 무효 데이터를 나타내도록 주 저장부(1240)에 쓰인 데이터의 쓰기 상태 정보를 'X'로 표시할 수 있다.
도 11은 본 발명의 제 2 실시예에 따른 머지/복사 동작의 상세 흐름도이다. 도 11에는 도 8에 도시된 컴퓨팅 시스템의 버퍼 메모리(1228)를 이용하여 수행될 수 있는 머지/복사 동작이 예시적으로 도시되어 있다.
도 11을 참조하면, S1680 단계에서는 호스트(1100)로부터 입력된 무효화 명령이 버퍼 메모리(1228)에 저장되어 있는 데이터와 관련된 것인지 여부가 판별된다. S1680 단계에서의 판별 결과 호스트(1100)로부터 입력된 무효화 명령이 버퍼 메모리(1228)에 저장되어 있는 데이터와 관련된 경우, S1690 단계에서 버퍼 메모리(1228)에 저장된 유효 데이터를 선별적으로 주 저장부(1240)로 복사한다. S1690 단계에서는 저장 장치(1200)의 상위 레벨에서 이미 삭제된 데이터가 버퍼 메모리(1240)로부터 주 저장부(1240)로 복사되는 것을 방지할 수 있다. 따라서, 저장 장치(1200)의 상위 레벨에서 이미 삭제된 데이터(즉, 무효 데이터)는 마치 '1111…'(16진수로 표시할 경우, 0xFF)의 데이터가 복사된 것과 같게 된다.
도 12 내지 도 14는 본 발명의 제 2 실시예에 따른 머지/복사 동작을 설명하기 위한 도면이다. 도 12 내지 도 14에는 도 8에 도시된 컴퓨팅 시스템(1000)에서 버퍼 메모리(12280)를 이용하여 수행될 수 있는 선별적인 머지/복사 동작이 예시적으로 도시되어 있다.
도 12에 도시된 바와 같이, 버퍼 메모리(1228)에 3개의 파일 데이터(FILE1-FILE3)가 유효한 데이터로서 저장되어 있다고 가정하자. 특정 시점에서 저장 장치(1200)의 컨트롤러(1220)는 저장된 파일 데이터(FILE1-FILE3)와 관련된 맵핑 테이블(1229)의 쓰기 상태 정보(WSI)를 참조하여 어떤 데이터가 무효한 데이터인 지의 여부를 판별할 수 있다.
도 12에서 모든 파일 데이터(FILE1-FILE3)가 맵핑 테이블(1229)에서 유효한 데이터로서 표시되어 있기 때문에, 컨트롤러(1220)는 파일 데이터(FILE1-FILE3)가 주 저장부(1240)의 대응하는 공간(즉, 빈 메모리 블록)으로 옮겨지도록 주 저장부(1240) 및 버퍼 메모리(1228)를 제어할 수 있다.
만약, 주 저장부(1240)로의 데이터 옮겨 쓰기(예를 들면, 플러시) 동작 이전에 저장 장치(1200)의 외부(예를 들면, 호스트(1100))로부터 무효 정보(무효화 명령, 무효한 데이터 파일의 어드레스 정보, 그리고 무효한 파일 데이터의 크기 정보를 포함함)가 입력되면, 저장 장치(1200)의 컨트롤러(1220)는 도 13에 도시된 바와 같이 Step1 구간 동안 무효 정보와 관련된 파일 데이터(예를 들면, FILE2)가 무효화된 것으로 마킹할 수 있다. 예를 들면, 파일 데이터(FILE2)와 관련된 맵핑 테이블(1229)의 쓰기 상태 정보(WSI)는 저장 장치(1200)의 외부(예를 들면, 호스트(1100))로부터 무효 정보에 응답해서 컨트롤러(1220)의 제어에 따라 무효 데이터를 나타내도록 갱신될 수 있다.
이후, 특정 시점(예를 들면, 플러시 동작이 필요한 경우)에서 저장 장치(1200)의 컨트롤러(1220)는 저장된 파일 데이터(FILE1-FILE3)와 관련된 맵핑 테이블(1229)의 쓰기 상태 정보(WSI)를 참조하여 어떤 데이터 파일들이 무효한 데이터인 지의 여부를 판별할 수 있다.
Step1 구간에서 플러시 동작이 요구될 경우, 저장 장치(1200)의 컨트롤러(1220)는 유효한 것으로 마킹된 파일 데이터(예를 들면, FILE1 및 FILE3)에 대한 복사를 선별적으로 수행하는 머지/복사 동작을 수행한다.
예를 들면, 맵핑 테이블(1229)에는 파일 데이터(FILE1, FILE3)만이 유효한 데이터로서 표시되어 있다. 따라서, 본 발명에 따른 머지/복사 동작에서는 파일 데이터(FILE1, FILE3)만 주 저장부(1240)의 대응하는 공간으로 선별적으로 옮겨지도록 컨트롤러(1220)가 주 저장부(1240) 및 버퍼 메모리(1228)를 제어할 수 있다. 즉, 컨트롤러(1220)는 파일 데이터(FILE2)가 주 저장부(1240)의 대응하는 공간으로 옮겨지는 것을 방지할 수 있다. 무효 파일 데이터로 처리된 버퍼 메모리(1228)의 공간은 이후 행해지는 쓰기/읽기 동작을 위해서 사용될 수 있다.
또 다른 예로서, 도 14에 도시된 바와 같이, 단지 하나의 파일 데이터(FILE1)만이 버퍼 메모리(1228)에 저장되어 있다고 가정하자. 만약 주 저장부(1240)로의 데이터 옮겨 쓰기 동작 이전에 저장 장치(1200)의 외부로부터 무효화 명령이 입력되면, 저장 장치(1200)의 컨트롤러(1220)는 입력된 무효화 명령과 관련된 데이터(FILE1)를 Step1 구간에서 무효 데이터로 마킹할 수 있다.
따라서, 데이터(FILE1)는 호스트(1100)측에서 볼 때 무효화된 것으로 보여질 수 있게 된다. 이 때, 데이터(FILE1)과 관련된 맵핑 테이블(1229)의 쓰기 상태 정보(WSI)는 무효 데이터를 나타내도록 컨트롤러(1220)의 제어에 따라 갱신될 수 있다. 이후, 특정 시점(예를 들면, 플러시 동작이 필요한 경우)에서 저장 장치(1200)의 컨트롤러(1220)는 저장된 데이터(FILE1)와 관련된 맵핑 테이블(1229)의 쓰기 상태 정보(WSI)를 참조하여 저장된 데이터가 무효한 데이터인지의 여부를 판별할 수 있다.
Step1 구간에서 무효 데이터의 마킹이 수행되고 나면, 도 14에 도시된 바와 같이 맵핑 테이블(1229)에는 유효한 데이터로서 표시되어 있는 데이터가 존재하지 않게 된다. 따라서, 저장 장치(1200)에서는 버퍼 메모리(1228)와 주 저장부(1240) 사이에서 어떠한 옮겨 쓰기 동작도 일어나지 않게 된다. 그 결과, 무효한 데이터의 옮겨 쓰기 동작이 방지될 수 있다. 무효 데이터로 처리된 버퍼 메모리(1228)의 공간은 이후 행해지는 쓰기 동작을 위해서 사용될 수 있게 된다.
한편, 이상에서 설명된 본 발명의 제 1 및 제 2 실시예에 따른 머지/복사 동작은 무효 데이터가 호스트(1100) 측에서 어떤 값으로 보이든 상관 없는 don't care로 처리되는 경우, 버퍼 메모리(1228)에서 무효한 것으로 마킹된 데이터는 컨트롤러(1220)의 제어에 따라 선별적으로 주 저장부(1240)로 옮겨질 수도 있다. 이 경우, 무효 데이터로 표시된 데이터가 주 저장부(1240)에 복사된다 하더라도, 주 저장부(1240)에 저장된 데이터인 무효 데이터와 관련된 파일은 어떠한 영향도 받지 않을 수 있다.
다른 실시예에 있어서, 본 발명의 제 1 및 제 2 실시예에 따른 머지/복사 동작에서 무효 데이터가 호스트(1100) 측에서 어떤 값으로 보이든 상관 없는 don't care로 처리되는 경우, 머지/복사의 대상이 되는 메모리 블록은 유효 데이터에 대응되는 영역만 빈 공간을 유지하도록 구성될 수도 있다. 즉, 본 발명의 머지/복사 동작에서는 무효 데이터에 대한 머지/복사 동작이 실행되지 않도록 구성될 수 있으므로, 메모리 블록 전체가 소거 상태가 아니어도 유효 데이터에 대응되는 영역만 소거 상태에 있기만 하면 된다. 이와 같은 구성에 따르면 좀더 유연한 데이터 할당이 가능해 지고, 주 저장부(1240)의 데이터 빈 저장 용량을 충분히 활용할 수 있게 된다. 이와 같은 경우, 본 발명의 머지/복사 동작에서는 머지/복사 동작의 대상이 될 블록을 소거하는 동작이 선택적으로 생략될 수도 있다.
도 15는 본 발명의 일 실시예에 따른 메모리 시스템(2000)의 구성을 예시적으로 보여주는 도면이다.
도 15를 참조하면, 본 발명에 따른 메모리 시스템(2000)은 컨트롤러(1220)와 주 저장부(1240)를 포함할 수 있다.
도 15에 도시된 주 저장부(1240)는 도 1, 도 5 및 도 8에 도시된 주 저장부와 동일하게 구성될 수 있다. 예시적인 실시예에 있어서, 주 저장부(1240)는 불휘발성 메모리 중에서도 플래시 메모리로 구성될 수 있다. 또한, 도 15에 도시된 메모리 시스템(2000)은 이상에서 설명된 본 발명의 무효화 동작과 동일한 방식의 무효화 동작이 적용될 수 있다.
컨트롤러(1220)는 주 저장부(1240)를 제어하도록 구성될 수 있다. 컨트롤러(1220)는 도 1, 도 2, 도 5 및 도 8에 도시된 컨트롤러와 동일하게 구성될 수 있다. 따라서 동일한 구성에 대한 중복된 설명은 이하 생략하기로 한다.
본 발명에 따른 메모리 시스템(2000)은, 주 저장부(1240)와 컨트롤러(1220)의 결합에 의해 메모리 카드 또는 SSD를 구성할 수 있다. 이 경우, 컨트롤러(1220)는 메모리 컨트롤러로서의 기능을 수행하게 된다.
SRAM(2110)은 프로세싱 유닛(2120)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(2130)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 컨트롤러(1220)에 구비된 에러 정정 회로(2140)는 주 저장부(1240)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2150)는 본 발명의 주 저장부(1240)와 인터페이싱 할 수 있다. 프로세싱 유닛(2120)은 컨트롤러(1220)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있다.
주 저장부(1240)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다. 이상의 본 발명의 메모리 시스템(2000)은 에러의 발생 확률이 낮은 고신뢰성의 저장 매체를 구성할 수 있다. 특히, 최근 활발히 연구되고 있는 SSD와 같은 메모리 시스템을 구성할 수 있다. 이 경우, 컨트롤러(1220)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. 또한, 컨트롤러(1220)에는 호스트에서 삭제된 데이터를 무효화하는 무효화 동작(특히, 보안 무효화 동작)을 제어하기 위한 구성이 더 포함될 수 있다.
도 16은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(3000)의 구성을 예시적으로 보여주는 도면이다. 도 16에는 본 발명에 따른 저장 장치(1200)를 포함하는 컴퓨팅 시스템(3000)의 구성이 도시되어 있다.
도 16을 참조하면, 본 발명에 따른 컴퓨팅 시스템(3000)은 시스템 버스(3600)에 전기적으로 연결된 마이크로프로세서(1200), RAM(3300), 사용자 인터페이스(3400), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(3500), 및 저장 장치(1200)를 포함할 수 있다.
저장 장치(1200)는 컨트롤러(1220) 및 주 저장부(1240)를 포함할 수 있다. 컨트롤러(1220)는 시스템 버스(3600)를 통해 CPU(1200)와 주 저장부(1240)와의 물리적 연결을 제공한다. 즉, 컨트롤러(1220)는 CPU(1200)의 버스 포맷(Bus format)에 대응하여 주 저장부(1240)와의 인터페이싱을 제공할 수 있다.
도 12에 도시된 주 저장부(1240)는 도 1, 도 5, 및 도 8에 도시된 주 저장부와 실질적으로 동일하게 구성될 수 있다. 또한, 도 16에 도시된 주 저장부(1240)는 이상에서 설명된 본 발명의 무효화 동작과 동일한 방식의 무효화 동작이 적용될 수 있다. 따라서 동일한 구성에 대한 중복된 설명은 이하 생략하기로 한다.
본 발명에 따른 컴퓨팅 시스템(3000)이 모바일 장치인 경우, 컴퓨팅 시스템(3000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(3000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 저장 장치(1200)는, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 예를 들면, 도 16에 도시된 저장 장치(1200)은 SSD를 구성할 수 있다. 이 경우, 컨트롤러(1220)는 SSD 컨트롤러로서 동작하게 될 것이다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
이상에서와 같이 도면과 명세서에서 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1000, 3000 : 컴퓨팅 시스템 1100 : 호스트
1200 : 저장 장치 1220 : 컨트롤러
1240 : 주 저장부 1228 : 버퍼 메모리
2000 : 메모리 시스템

Claims (10)

  1. 호스트로부터 입력된 무효화 명령에 응답해서 제 1 구간 동안 무효화될 영역을 마킹하는 단계;
    상기 마킹 결과를 근거로 하여 상기 제 1 구간 동안 상기 무효화될 영역에 포함되어 있는 유효 데이터를 상기 주 저장부의 다른 영역으로 머지 또는 카피하는 단계; 그리고
    상기 제 1 구간이 종료되면 제 2 구간 동안 상기 무효화될 영역을 삭제하는 단계를 포함하는 데이터 관리 방법.
  2. 제 1 항에 있어서,
    상기 무효화 명령은 보안 트림 명령 또는 보안 무효화 명령을 포함하는 데이터 관리 방법
  3. 제 1 항에 있어서,
    상기 무효화 명령은 상기 무효화될 영역의 시작 및 종료 어드레스를 포함하는 데이터 관리 방법.
  4. 호스트로부터 입력된 무효화 명령에 응답해서 제 1 구간 동안 무효화될 영역을 마킹하는 단계;
    버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 때, 상기 마킹 결과를 근거로 하여 상기 제 1 구간 동안 상기 무효화될 영역에 포함되어 있는 유효 데이터를 주 저장부의 다른 영역으로 머지 또는 카피하는 단계; 그리고
    상기 제 1 구간이 종료되면 제 2 구간 동안 상기 무효화될 영역을 삭제하는 단계를 포함하는 데이터 관리 방법.
  5. 제 4 항에 있어서,
    상기 버퍼 메모리에 데이터를 저장할 공간이 소정 크기 이상 존재하지 않을 때, 상기 유효 데이터가 머지 또는 카피될 빈 블록이 존재하는지 여부를 판별하는 단계; 그리고
    상기 주 저장부에 상기 빈 블록이 존재하지 않을 때 적어도 하나 이상의 블록을 소거하는 단계를 더 포함하는 데이터 관리 방법.
  6. 제 4 항에 있어서,
    상기 유효 데이터는 소거 상태의 블록으로 머지 또는 카피되는 데이터 관리 방법.
  7. 제 4 항에 있어서,
    상기 무효화될 영역에 포함된 무효 데이터에 대한 머지 또는 복사 동작은 상기 머지 또는 카피 단계에서 제외되는 데이터 관리 방법.
  8. 호스트; 그리고
    상기 호스트의 제어에 응답하여 동작하는 저장 장치를 포함하고,
    상기 저장 장치는 주 저장부와; 그리고 상기 주 저장부를 제어하도록 구성된 컨트롤러를 포함하며,
    상기 컨트롤러는 제 1 구간과 제 2 구간으로 구성된 무효화 동작을 통해 상기 호스트로부터 입력된 무효화 명령을 처리하되,
    상기 제 1 구간에서는 상기 무효화 명령에 응답해서 무효화될 영역이 마킹된 후 상기 마킹 결과에 따라 상기 무효화될 영역에 포함되어 있는 유효 데이터가 상기 주 저장부의 다른 영역으로 머지 또는 카피되고, 상기 제 2 구간 동안 상기 무효화될 영역이 삭제되는 컴퓨팅 시스템.
  9. 주 저장부; 그리고
    상기 주 저장부의 동작을 제어하는 컨트롤러를 포함하며,
    상기 컨트롤러는 호스트로부터 입력된 무효화 명령에 응답해서 제 1 구간 동안 무효화될 영역을 마킹하고, 상기 마킹 결과를 근거로 하여 상기 제 1 구간 동안 상기 무효화될 영역에 포함되어 있는 유효 데이터를 상기 주 저장부의 다른 블록으로 머지 또는 카피하고, 그리고 상기 제 1 구간이 종료되면 제 2 구간 동안 상기 무효화될 영역을 삭제하는 저장 장치.
  10. 제 9 항에 있어서,
    상기 컨트롤러는 상기 무효화될 영역의 데이터가 외부에서 읽혀지지 않도록 상기 제 2 구간 동안 상기 무효화될 영역의 데이터를 상기 주 저장부로부터 제거하는 저장 장치.
KR1020100016284A 2010-02-23 2010-02-23 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법 KR20110096814A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100016284A KR20110096814A (ko) 2010-02-23 2010-02-23 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법
US13/008,424 US20110208898A1 (en) 2010-02-23 2011-01-18 Storage device, computing system, and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100016284A KR20110096814A (ko) 2010-02-23 2010-02-23 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법

Publications (1)

Publication Number Publication Date
KR20110096814A true KR20110096814A (ko) 2011-08-31

Family

ID=44931923

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100016284A KR20110096814A (ko) 2010-02-23 2010-02-23 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법

Country Status (1)

Country Link
KR (1) KR20110096814A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955048A (zh) * 2023-06-16 2023-10-27 上海水木蓝鲸半导体技术有限公司 芯片校准和调试信息管理的方法、装置及计算机存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955048A (zh) * 2023-06-16 2023-10-27 上海水木蓝鲸半导体技术有限公司 芯片校准和调试信息管理的方法、装置及计算机存储介质
CN116955048B (zh) * 2023-06-16 2024-03-22 上海水木蓝鲸半导体技术有限公司 芯片校准和调试信息管理的方法、装置及计算机存储介质

Similar Documents

Publication Publication Date Title
US11645199B2 (en) Storage device and garbage collection method thereof
TWI673606B (zh) 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置
US11188259B2 (en) Storage device and method of operating the storage device
US9697116B2 (en) Storage system and writing method thereof
US20110208898A1 (en) Storage device, computing system, and data management method
US8122193B2 (en) Storage device and user device including the same
US8316201B2 (en) Methods for executing a command to write data from a source location to a destination location in a memory device
JP5198245B2 (ja) メモリシステム
KR101186788B1 (ko) 메모리 시스템 및 메모리 시스템의 제어 방법
JP5317689B2 (ja) メモリシステム
US9053007B2 (en) Memory system, controller, and method for controlling memory system
TWI566097B (zh) 邏輯區塊位址位元映射之使用
US20110099324A1 (en) Flash memory storage system and flash memory controller and data processing method thereof
US20190294345A1 (en) Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance
CN110879793B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
CN110968522B (zh) 存储器系统及其操作方法、包括存储器系统的数据库系统
KR20140094278A (ko) 반도체 장치 및 이의 동작 방법
CN112306898A (zh) 存储设备、其操作方法及包括其的电子设备
CN109783011A (zh) 存储设备和存储设备的回收方法
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
KR101596833B1 (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
US12045163B2 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
KR20110096814A (ko) 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법
US20240232074A1 (en) Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination