KR101826047B1 - 저장 장치 및 그 구동 방법 - Google Patents

저장 장치 및 그 구동 방법 Download PDF

Info

Publication number
KR101826047B1
KR101826047B1 KR1020110098462A KR20110098462A KR101826047B1 KR 101826047 B1 KR101826047 B1 KR 101826047B1 KR 1020110098462 A KR1020110098462 A KR 1020110098462A KR 20110098462 A KR20110098462 A KR 20110098462A KR 101826047 B1 KR101826047 B1 KR 101826047B1
Authority
KR
South Korea
Prior art keywords
data
storage area
amount
storage
sharing
Prior art date
Application number
KR1020110098462A
Other languages
English (en)
Other versions
KR20130034450A (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 KR1020110098462A priority Critical patent/KR101826047B1/ko
Priority to US13/547,018 priority patent/US8898414B2/en
Publication of KR20130034450A publication Critical patent/KR20130034450A/ko
Application granted granted Critical
Publication of KR101826047B1 publication Critical patent/KR101826047B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

저장 장치 및 그 구동 방법이 제공된다. 상기 저장 장치는 서로 다른 물리 어드레스에 대응되는 제1 및 제2 저장 영역을 포함하고, 상기 제1 저장 영역 내에 제1 데이터가 저장되는 데이터 저장부, 상기 제1 데이터의 공유량(reference count)를 저장하는 제1 메모리, 및 상기 제1 데이터의 공유량이 변화함에 따라, 상기 제1 데이터를 상기 제1 저장 영역에서 제2 저장 영역으로 재배치하는 제어기를 포함한다.

Description

저장 장치 및 그 구동 방법{Storage device and driving method thereof}
본 발명은 저장 장치 및 그 구동 방법에 관한 것이다.
플래시 메모리는 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능이 있기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 하드디스크(hard disk) 대신 플래시 메모리가 저장 장치로서 널리 사용되고 있다. 전술한 모바일 기기들은 다양한 기능들(예를 들면, 동영상 재생, 고음질의 음악 재생 기능 등)을 제공하기 위해서 점차 대용량의 저장 장치를 필요로 하고 있다.
한편, 디듀플리케이션(deduplication)은 동일한 다수의 데이터가 저장 장치 내에 존재할 경우, 하나의 데이터를 공유하고 나머지 중복되는 데이터는 제거하는 기법을 의미한다. 종래의 디듀플리케이션은 하드디스크를 기반으로 개발되어 왔다. 예를 들어, 디듀플리케이션을 빨리 수행하는 방법, 최소한의 추가 데이터를 사용하는 방법 등을 초점을 맞추어 개발되어 왔다.
본 발명이 해결하려는 과제는, 디듀플리케이션을 적용하고 플래시 메모리를 이용한 저장 장치를 제공하고자 한다.
본 발명이 해결하려는 다른 과제는, 디듀플리케이션을 적용하고 플래시 메모리를 이용한 저장 장치의 구동 방법을 제공하고자 한다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 저장 장치의 일 태양(aspect)은 서로 다른 물리 어드레스에 대응되는 제1 및 제2 저장 영역을 포함하고, 상기 제1 저장 영역 내에 제1 데이터가 저장되는 데이터 저장부, 상기 제1 데이터의 공유량(reference count)를 저장하는 제1 메모리, 및 상기 제1 데이터의 공유량이 변화함에 따라, 상기 제1 데이터를 상기 제1 저장 영역에서 제2 저장 영역으로 재배치하는 제어기를 포함한다.
상기 과제를 해결하기 위한 본 발명의 저장 장치의 다른 태양은 제1 및 제2 메모리 블록을 포함하는 데이터 저장부로서, 상기 제1 및 제2 메모리 블록은 각각 서로 다른 물리 어드레스에 대응되고, 상기 제1 및 제2 메모리 블록은 각각 적어도 하나의 로직 어드레스에 대응되고, 상기 제1 메모리 블록 내에 제1 데이터가 저장되는 데이터 저장부, 상기 제1 데이터의 공유량(reference count)를 저장하는 제1 메모리, 상기 제1 메모리 블록에 대응되는 로직 어드레스와 물리 어드레스의 맵핑 정보(mapping information)를 저장하는 제2 메모리, 및 상기 제1 데이터의 공유량이 변화하고 상기 제1 메모리 블록이 가비지 컬렉션(garbage collection)의 대상이 될 때, 상기 제1 데이터를 상기 제1 메모리 블록에서 제2 메모리 블록으로 재배치하는 제어기를 포함한다.
상기 과제를 해결하기 위한 본 발명의 저장 장치의 또 다른 태양은 서로 다른 물리 어드레스에 대응되는 제1 및 제2 저장 영역을 포함하는 데이터 저장부, 및 상기 데이터 저장부에 저장된 데이터의 공유량(reference count)를 저장하는 제1 메모리를 포함하되, 상기 제1 저장 영역은 공유량이 제1 범위 내에 속하는 데이터가 저장되고, 상기 제2 저장 영역은 공유량이 상기 제1 범위와 다른 제2 범위 내에 속하는 데이터가 저장된다.
상기 다른 과제를 해결하기 위한 본 발명의 저장 장치의 구동 방법의 일 태양은 서로 다른 물리 어드레스에 대응되는 제1 및 제2 저장 영역을 포함하고, 상기 제1 저장 영역에 제1 데이터를 저장하고, 상기 제1 데이터의 공유량이 변화되고, 상기 제1 데이터의 공유량이 변화함에 따라, 상기 제1 데이터를 상기 제1 저장 영역에서 상기 제2 저장 영역으로 재배치하는 것을 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 제1 실시예에 따른 저장 장치를 설명하기 위한 블록도이다.
도 2 및 도 3은 도 1의 데이터 저장부를 설명하기 위한 블록도이다.
도 4은 본 발명의 제2 실시예에 따른 저장 장치를 설명하기 위한 블록도이다.
도 5는 본 발명의 제3 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 6은 본 발명의 제4 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 7은 본 발명의 제5 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 8은 본 발명의 제6 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 9는 본 발명의 제7 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 10은 본 발명의 제8 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 11은 본 발명의 몇몇 실시예에 따른 저장 장치를 적용한 SSD의 예시적 블록도이다.
도 12은 도 11의 SSD를 이용한 서버 시스템을 설명하기 위한 블록도이다.
도 13은 도 11의 SSD를 이용한 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 14는 도 11의 SSD를 이용한 전자 기기를 설명하기 위한 블록도이다.
도 15는 본 발명의 몇몇 실시예에 따른 저장 장치를 적용한 메모리 카드의 예시적 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 제1 실시예에 따른 저장 장치를 설명하기 위한 블록도이다. 도 2 및 도 3은 도 1의 데이터 저장부를 설명하기 위한 블록도이다.
도 1 내지 도 3을 참조하면, 본 발명의 제1 실시예에 따른 저장 장치(1)는 데이터 저장부(10), 제1 메모리(21), 제2 메모리(22), 제어기(30) 등을 포함할 수 있다.
데이터 저장부(10)는 다수의 저장 영역(30_1~30_m)을 포함한다. 이러한 데이터 저장부(10)는 플래시 메모리(예를 들어, 낸드 플래시 메모리)일 수 있으나 이에 한정되는 것은 아니다. 예를 들어, 데이터 저장부(10)는 PRAM, FRAM, MRAM 등과 같은 다른 형태의 비휘발성 메모리일 수 있다.
또한, 저장 영역(30_1~30_m)은 도시된 것과 같이, 다수의 서브 영역을 포함할 수 있다. 여기서, 저장 영역(30_1~30_m)은 소거 동작의 단위이고, 서브 영역은 라이트 동작의 단위일 수 있다. 예를 들어, 저장 영역(30_1~30_m)은 메모리 블록이고, 서브 블록은 페이지일 수 있으나, 이에 한정되는 것은 아니다. 도 2에서는 각 메모리 블록은 4개씩의 페이지를 포함하는 것으로 도시하였으나, 이에 한정되는 것은 아니다. 또한, 메모리 블록은 소거 동작의 단위이고(즉, 하나의 메모리 블록은 동시에 소거되고), 페이지는 라이트 동작의 단위이다.
한편, 다수의 저장 영역(30_1~30_m)은 각각 물리 어드레스(PPN)와 로직 어드레스(LPN)에 대응될 수 있다. 저장 영역(30_1~30_m)이 이와 같은 2개의 별도 어드레스(PPN, LPN)를 갖는 이유는 다음과 같다.
저장 영역(30_1~30_m)으로 사용되는 플래시 메모리에 데이터를 라이트하기 위해서, 저장 영역(30_1~30_m)은 먼저 소거(erase)되어야 한다. 전술한 것과 같이, 라이트되는 단위는 페이지 단위이고, 소거되는 단위는 메모리 블록 단위이기 때문에, 소거되는 단위가 라이트되는 단위보다 크다. 또한, 하드디스크는 덮어쓰기(overwrite)가 가능하고, 플래시 메모리를 이용한 저장 장치는 덮어쓰기가 불가능하다. 따라서, 플래시 메모리를 이용한 저장 장치가 하드디스크를 대체하기 위해서(즉, 하드디스크용 파일 시스템(file system)을 그대로 이용하기 위해서), 소거 동작을 감추어야 한다.
이러한 점들을 보완하기 위해서, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(Flash Translation Layer, FTL)이 사용된다. 플래시 변환 계층은, 플래시 메모리의 라이트 동작시 파일 시스템이 생성한 논리 어드레스(logical address)(LPN)를, 삭제 연산이 수행된 플래시 메모리의 물리 어드레스(physical address)(PPN)로 맵핑(mapping)시키는 역할을 수행한다. 플래시 변환 계층은 빠른 주소 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(address mapping table)을 사용할 수 있다. 이와 같은 로직 어드레스(LPN)와 물리 어드레스(PPN) 사이의 어드레스 맵핑 테이블은 제2 메모리(22)에 저장될 수 있다.
따라서, 각각의 저장 영역(30_1~30_m)은 서로 다른 물리 어드레스(PPN)에 대응될 수 있다. 각각의 저장 영역(30_1~30_m)은 적어도 하나의 로직 어드레스(LPN)에 대응될 수 있다.
또한, 하나의 페이지는 적어도 하나의 로직 어드레스(LPN)에 대응될 수 있다. 도 3에서 예시적으로 설명한 것과 같이, 저장 영역(30_1) 내의 다수의 페이지는 물리 어드레스 PPN=0~3에 대응될 수 있다. 또한, 저장 영역(30_1) 내의 첫번째 페이지는 물리 어드레스 PPN=0 에 대응되고, 로직 어드레스 LPN=0 에 대응된다. 또한, 저장 영역(30_1) 내의 두번째 페이지는 물리 어드레스 PPN=1 에 대응되고, 로직 어드레스 LPN=1,2 에 대응된다.
한편, 본 발명의 제1 실시예에 따른 저장 장치(1)는, 디듀플리케이션(deduplication)을 채택한다. 따라서, 데이터 저장부(10) 내에 동일한 다수의 데이터가 존재할 경우, 하나의 데이터만 공유되고 나머지 중복되는 데이터는 제거된다. 예를 들어, 저장 영역(30_1)의 두번째 페이지는 물리 어드레스(PPN=1), 논리 어드레스(LPN=1,2)와 대응될 수 있다. 즉, 물리 어드레스(PPN=1)에 저장되어 있는 데이터 B는 공유되어 있다. 이와 같이 데이터 B가 공유된 정도를 공유량(reference count)(RC)이라고 한다. 저장 영역(30_1)의 두번째 페이지에 저장된 데이터 B의 공유량은 2이다. 즉, 저장 영역(30_1)의 각 페이지에 대응되는 로직 어드레스의 개수가 공유량이다. 이러한 데이터의 공유량(RC)은 제1 메모리(21)에 저장될 수 있다.
본 발명의 제1 실시예에 따른 저장 장치(1)에서, 데이터의 공유량에 따라 저장되는 저장 영역(30_1~30_m)이 변경된다. 구체적으로, 다수의 저장 영역(30_1~30_m) 각각은 특정한 데이터의 공유량의 범위 내에 속하는 데이터가 저장된다. 도 2에 도시된 것과 같이, 저장 영역(30_1)에는 데이터 공유량이 제1 범위(1≤RC<a)에 속하는 데이터가 저장되고, 저장 영역(30_2)에는 데이터 공유량이 제2 범위(a≤RC<b)에 속하는 데이터가 저장되고, 저장 영역(30_3)에는 데이터 공유량이 제3 범위(b≤RC<c)에 속하는 데이터가 저장되고, 저장 영역(30_m)에는 데이터 공유량이 제m 범위(d≤RC<e)에 속하는 데이터가 저장된다(단, a<b<c<d<e이고, a,b,c,d,e는 자연수). 여기서, 제1 내지 제m 범위 각각은 서로 다를 수 있다.
또한, 데이터의 공유량이 변화되면, 제어기(30)는 데이터를 재배치할 수 있다. 예를 들어, 저장 영역(30_1)에 공유량 1인 데이터 A가 저장되어 있는 상태에서, 데이터 A의 공유량이 3으로 증가하면, 데이터 A를 저장 영역(30_2)으로 재배치할 수 있다. 반대로, 저장 영역(30_2)에 공유량 3인 데이터 C가 저장되어 있는 상태에서, 데이터 C의 공유량이 1로 감소하면, 데이터 C를 저장 영역(30_1)으로 재배치할 수 있다. 이러한 데이터 재배치에 대해서는, 도 2 내지 도 10을 참조하여 자세히 후술하도록 한다.
한편, 도 3에서, 저장 영역(30_1)의 직선 해칭된 페이지(PPN=0, 1)에 저장된 데이터 A, B는 유효 데이터(valid data)이고, 점 해칭된 페이지(PPN=2)에 저장된 데이터 C는 비유효 데이터(invalid data)를 의미한다. 여기서, 비유효 데이터의 의미는 다음과 같다. 예를 들어, 저장 영역(30_1)에 데이터 C가 저장되어 있던 상태에서, 데이터 C의 공유량이 변화하여, 데이터 C를 다른 저장 영역(예를 들어, 30_2)로 재배치할 수 있다. 하지만, 페이지 단위로 소거할 수 없고 메모리 블록 단위로 소거할 수 있기 때문에, 저장 영역(30_1)에 저장되어 있던 데이터 C는 소거되지 않고, 비유효 데이터로 처리된다.
이와 같이 데이터의 공유량에 따라 저장되는 저장 영역(30_1~30_m)을 변경하면, 다음과 같은 효과가 있다.
하나의 저장 영역(예를 들어, 30_1)에 저장되는 데이터의 공유량이 동일 또는 유사하기 때문에, 하나의 저장 영역(30_1)에 저장되는 데이터가 비유효 데이터로 변하는 시점이 동일 또는 유사할 수 있다.
구체적으로 설명하면, 저장 영역(30_1)을 소거하려 할 때, 저장 영역(30_1) 내의 유효 데이터는 다른 저장 영역(예를 들어, 30_2)로 이동시켜야 한다. 저장 영역(30_1) 내에 모든 데이터가 비유효 데이터이면, 데이터의 이동 과정 없이 즉시 저장 영역(30_1)을 소거할 수 있다. 그런데, 본 발명의 제1 실시예에 따른 저장 장치에서와 같이, 저장 영역(30_1) 내의 데이터가 동일 또는 유사 시점에서 모두 비유효 데이터가 되어 있기 때문에, 소거 동작시 데이터의 이동을 최소화할 수 있다.
도 4은 본 발명의 제2 실시예에 따른 저장 장치를 설명하기 위한 블록도이다. 설명의 편의상, 본 발명의 제1 실시예에 따른 저장 장치와 다른 점을 위주로 설명한다.
도 4를 참조하면, 본 발명의 제1 실시예에 따른 저장 장치에서 데이터 저장부(30)는 데이터의 공유량에 따라 3개 이상의 저장 영역(30_1~30_m)을 포함한 반면, 본 발명의 제2 실시예에 따른 저장 장치에서 데이터 저장부(30)는 데이터의 공유량에 따라 2개의 저장 영역(30_1, 30_2)을 포함할 수 있다.
데이터 저장부(30)의 저장 영역(30_1)은 공유량이 제1 범위(RC=1,2) 내에 속하는 데이터가 저장되고, 저장 영역(30_2)은 공유량이 제2 범위(RC≥3) 내에 속하는 데이터가 저장된다. 도시된 것과 같이, 저장 영역(30_1)의 첫번째 페이지는 하나의 논리 어드레스(LPN=0)에 대응되고, 두번째 페이지는 2개의 논리 어드레스(LPN=1,2)에 대응될 수 있다. 또한, 저장 영역(30_2)의 첫번째 페이지는 3개의 논리 어드레스(LPN=3,4,5)에 대응되고, 두번째 페이지는 3개의 논리 어드레스(LPN=6,7,8)에 대응될 수 있다
본 발명의 제2 실시예에 따른 저장 장치(즉, 2개의 저장 영역(30_1, 30_2)으로 구분된 경우)는, 본 발명의 제1 실시예에 따른 저장 장치보다 데이터의 재배치되는 횟수(즉, 이동량)가 적을 수 있다.
한편, 본 발명의 제2 실시예에 따른 저장 장치에서, 제1 범위는 공유량이 1,2(즉, RC=1,2)이고, 제2 범위는 공유량이 3이상(즉, RC≥3)을 의미할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 제1 범위는 공유량이 1,2,3이고, 제2 범위는 공유량이 4이상일 수 있다. 또는, 제1 범위는 공유량이 1이고, 제2 범위는 공유량이 2이상(즉, 공유가 발생한 경우)일 수 있다(즉, 저장 영역(30_1)에는 비공유 데이터가 저장되고, 저장 영역(30_2)에는 공유 데이터가 저장될 수 있다.).
한편, 제1 범위는 공유량이 1,2이고, 제2 범위는 공유량이 3이상인 경우는, 제1 범위가 공유량 1이고, 제2 범위가 공유량 2이상인 경우보다 데이터 이동이 적을 수 있다. 제1 범위가 공유량 1이고, 제2 범위가 공유량 2이상인 경우에는(저장 영역(30_1)에는 비공유 데이터가 저장되고, 저장 영역(30_2)에는 공유 데이터가 저장된 경우에는), 비공유 데이터가 공유 데이터로 변하자 마자 데이터를 저장 영역(30_1)에서 저장 영역(30_2)로 재배치해야 한다. 또한, 전술한 공유 데이터가 비공유 데이터로 변하자 마자, 저장 영역(30_2)에서 저장 영역(30_1)로 재배치해야 한다. 따라서, 제1 범위가 공유량 1이고, 제2 범위가 공유량 2이상인 경우는 데이터의 재배치가 다소 많아질 수 있다. 하지만, 저장 장치의 종류에 따라, 제1 범위가 공유량 1이고, 제2 범위가 공유량 2이상인 경우가 더 적절할 수도 있다.
이하에서, 도 5 내지 도 7을 참조하여, 본 발명의 몇몇 실시예에 따른 저장 장치에서, 공유량이 변경된 데이터의 재배치 시점 변화에 따른 동작을 설명하도록 한다.
설명의 편의상, 도 5 내지 도 7에서는 2개의 저장 영역(30_1, 30_2)을 도시하고, 저장 영역(30_1)에는 공유량이 1(RC=1)인 데이터가 저장되고, 저장 영역(30_2)에는 공유량이 2이상(RC≥2)인 데이터가 저장되는 경우를 예로 든다.
도 5는 본 발명의 제3 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 5를 참조하면, 본 발명의 제3 실시예에 따른 저장 장치는, 데이터의 공유량이 변경되자마자, 제어기(도 1의 30)는 데이터의 공유량에 대응되는 저장 영역으로 데이터를 재배치한다.
구체적으로, 저장 영역(30_1)의 첫번째 페이지에는 데이터 B가 저장된다. 저장 영역(30_1)의 첫번째 페이지는 물리 어드레스 PPN=0에 대응되고 논리 어드레스 LPN=3에 대응된다. 저장 영역(30_2)의 첫번째 페이지에는 데이터 A가 저장된다. 저장 영역(30_2)의 첫번째 페이지는 물리 어드레스 PPN=4에 대응되고 논리 어드레스 LPN=0,1,2에 대응된다.
이어서, 논리 어드레스 LPN=4에 데이터 B를 저장하라는 명령이 입력된다. 따라서, 데이터 B는 공유량이 1에서 2로 증가된다. 따라서, 데이터 B의 공유량이 변경되자마자, 데이터 B는 저장 영역(30_1)에서 저장 영역(30_2)로 재배치된다. 데이터 B는 저장 영역(30_1)의 첫번째 페이지에서 저장 영역(30_2)의 두번째 페이지로 재배치된다. 저장 영역(30_2)의 두번째 페이지는 물리 어드레스 PPN=5에 대응되고 논리 어드레스 LPN=3,4에 대응된다. 한편, 저장 영역(30_1)의 첫번째 페이지에 저장되어 있는 데이터 B는 비유효 데이터이다. 저장 영역(30_1)을 소거하기 전까지, 데이터 B는 비유효 데이터 상태가 된다.
본 발명의 제3 실시예에 따른 저장 장치는, 데이터의 공유량이 변경되자마자, 데이터의 공유량에 대응되는 저장 영역으로 데이터를 재배치한다. 이 경우, 공유량에 따른 데이터 재배치가 빨리 이루어지기 때문에, 관리가 용이하다. 추후에, 공유량이 변경된 데이터를 검색(scanning)하는 데 걸리는 시간이 줄어든다.
도 6은 본 발명의 제4 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 6를 참조하면, 본 발명의 제4 실시예에 따른 저장 장치는, 데이터의 공유량이 변경되자마자 바로 재배치하지 않고, 제어기(도 1의 30)는 유휴 시간(idle time)에 후순위 작업(background job)으로, 공유량이 변경된 데이터를 재배치한다.
구체적으로, 저장 영역(30_1)의 첫번째 페이지에는 데이터 B가 저장되고, 저장 영역(30_2)의 첫번째 페이지에는 데이터 A가 저장된다.
이어서, 논리 어드레스 LPN=4에 데이터 B를 저장하라는 명령이 입력된다. 저장 영역(30_1)의 첫번째 페이지는, 논리 어드레스 LPN=3,4에 대응된다. 따라서, 데이터 B는 공유량이 1에서 2로 증가된다. 하지만, 공유량이 변화된 데이터 B를 바로 재배치하지 않는다.
이어서, 유휴 시간(idle time)이 되면, 후순위 작업(background job)으로 공유량이 변화된 데이터를 검색(scanning)한다.
검색 과정에서, 공유량이 변경된 데이터 B가 저장 영역(30_1)에서 발견된다. 데이터 B는 저장 영역(30_1)의 첫번째 페이지에서 저장 영역(30_2)의 두번째 페이지로 이동된다.
본 발명의 제4 실시예에 따른 저장 장치는, 유휴 시간(idle time)에 공유량이 변경된 데이터를 재배치한다. 이 경우, 응답 시간(response time)을 줄일 수 있고 데이터의 이동 또한 줄일 수 있다.
도 7은 본 발명의 제5 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 7을 참조하면, 본 발명의 제5 실시예에 따른 저장 장치는, 공유량이 변경된 데이터가 저장되어 있는 저장 영역(30_1)이 가비지 컬렉션(garbage collection)의 대상이 될 때, 제어기(도 1의 30)는 공유량이 변경된 데이터를 재배치한다.
여기서, 가비지(garbage)란, 프로그래밍의 관점에서 메모리 공간 내에서 더 이상 필요하지 않다고 판단되어 운영체제에 의해 회수된 데이터 저장공간을 말한다. 또한, 가비지 컬렉션이란, 이러한 메모리 공간을 다른 프로그램들이 효율적으로 재사용할 수 있도록 풀어주는 것을 말하며, '자투리 모으기'라고 말하기도 한다. 즉, 가비지 컬렉션이란, 메모리를 동적으로 관리하기 위한 방법을 말하는 것이다.
구체적으로, 저장 영역(30_1)의 첫번째 페이지에는 데이터 B가 저장되고, 저장 영역(30_2)의 첫번째 페이지에는 데이터 A가 저장된다.
이어서, 논리 어드레스 LPN=4에 데이터 B를 저장하라는 명령이 입력된다. 저장 영역(30_1)의 첫번째 페이지는, 논리 어드레스 LPN=3,4에 대응된다. 따라서, 데이터 B는 공유량이 1에서 2로 증가된다. 하지만, 공유량이 변화된 데이터 B를 바로 재배치하지 않는다.
이어서, 가비지 컬렉션을 시작한다.
저장 영역(30_1)이 소거 대상이 될 경우, 저장 영역(30_1) 내에서 유효 데이터는 적절한 다른 저장 영역으로 재배치된다. 데이터 B는 공유량이 2이므로, 데이터 B는 저장 영역(30_1)의 첫번째 페이지에서 저장 영역(30_2)의 두번째 페이지로 재배치된다. 이어서, 저장 영역(30_1)은 소거된다.
본 발명의 제5 실시예에 따른 저장 장치는, 가비지 컬렉션(garbage collection) 과정 중에, 공유량이 변경된 데이터를 재배치한다. 이 경우, 데이터의 이동 횟수를 최소화할 수 있다.
이하에서, 도 8 및 도 9를 참조하여, 본 발명의 몇몇 실시예에 따른 저장 장치에서, 공유량이 약해진 데이터의 재배치 시점 변화에 따른 동작을 설명하도록 한다.
설명의 편의상, 도 8 및 도 9에서는 m개의 저장 영역(30_1~30_m)을 도시하고, 저장 영역(30_1)에는 데이터 공유량이 제1 범위(1≤RC<a)에 속하는 데이터가 저장되고, 저장 영역(30_2)에는 데이터 공유량이 제2 범위(a≤RC<b)에 속하는 데이터가 저장되고, 저장 영역(30_3)에는 데이터 공유량이 제3 범위(b≤RC<c)에 속하는 데이터가 저장되고, 저장 영역(30_m)에는 데이터 공유량이 제m 범위(d≤RC<e)에 속하는 데이터가 저장된 경우(단, a<b<c<d<e이고, a,b,c,d,e는 자연수)를 예로 든다.
도 8은 본 발명의 제6 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 8을 참조하면, 공유량이 변경된 데이터를 재배치할 시점이 되면, 공유량이 변경된 데이터를 변경된 공유량에 대응되는 저장 영역(30_1~30_m)에 재배치한다. 여기서, 재배치할 시점은 도 5에서와 같이 공유량이 변경된 시점, 도 6에서와 같이 유휴 시간의 후순위 작업 시점, 도 7에서와 같이 가비지 컬렉션 등일 수 있다.
예를 들어, 저장 영역(30_m)에 저장된 데이터는, 공유량이 줄어들면, 변경된 공유량에 대응되는 저장 영역(30_3)으로 재배치될 수 있다(L13). 또한, 저장 영역(30_3)에 저장된 데이터는, 공유량이 줄어들면, 변경된 공유량에 대응되는 저장 영역(30_2)으로 재배치될 수 있다(L12). 저장 영역(30_2)에 저장된 데이터는, 공유량이 줄어들면, 변경된 공유량에 대응되는 저장 영역(30_1)으로 재배치될 수 있다(L11).
도 9는 본 발명의 제7 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 9를 참조하면, 본 발명의 제7 실시예에 따른 저장 장치에서, 데이터의 공유량이 감소하여도 데이터를 바로 재배치하지 않는다. 데이터의 공유량이 계속 줄어들어 가장 작은 제1 범위(1≤RC<a) 내에 속하면, 데이터를 저장 영역(30_1)으로 재배치한다. 이와 같은 방식으로 동작하면, 저장 영역(30_2~30_m)에 저장된 데이터는 각각, 저장 영역(30_1)으로 재배치된다(L21, L22, L23).
또한, 예를 들어, 가장 작은 공유량 범위가 RC=1 (즉, 비공유)라고 가정하자. 이 경우, 공유량이 2이상인 공유 데이터는, 공유량이 줄어들어도 재배치되지 않다가, 비공유 상태가 되면 비로소 저장 영역(30_1)로 재배치된다.
도 10은 본 발명의 제8 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 10을 참조하면, 본 발명의 제8 실시예에 따른 저장 장치에서, 제어기(도 1의 30 참조)는 디듀플리케이션 동작을 인에이블/디스에이블할 수 있다.
즉, 제어기(30)는 디듀플리케이션 인에이블 모드(deduplication enable mode)에서 공유량이 변경된 데이터의 재배치를 수행한다. 여기서 데이터의 재배치는 도 2 내지 도 9를 이용하여 설명한 동작을 의미한다. 반면, 제어기(30)는 디듀플리케이션 디스에이블 모드(deduplication disable mode)에서 데이터의 공유량이 변경되더라도 데이터를 재배치하지 않는다.
도 10에 도시된 것과 같이, 저장 영역(30_1)의 첫번째 페이지에는 데이터 B가 저장되고, 저장 영역(30_2)의 첫번째 페이지에는 데이터 A가 저장되어 있다. 디듀플리케이션 인에이블 모드에서, 논리 어드레스 LPN=4에 데이터 B를 저장하라는 명령이 입력되면, 데이터 B는 저장 영역(30_1)에서 저장 영역(30_2)로 재배치된다. 그 후, 디듀플리케이션 디스에이블 모드가 되면, 저장 영역(30_1)에 저장되어 있는 데이터 C는 공유량이 3이라도, 저장 영역(30_2)로 재배치되지 않는다.
이하에서, 전술한 본 발명의 몇몇 실시예에 따른 저장 장치를 적용한 저장 시스템을 설명하도록 한다.
도 11은 본 발명의 몇몇 실시예에 따른 저장 장치를 적용한 SSD의 예시적 블록도이다.
도 11을 참조하면, SSD(60)는 프로세서(610), 호스트 인터페이스(620), 램(630), 캐쉬 버퍼 램(640), 플래시 제어기(650), 및 다수의 플래시 메모리 장치(66)을 포함할 수 있다. 여기서 플래시 제어기(650)는 도 1의 제어기(30)에 대응될 수 있고, 다수의 플래시 메모리 장치(660)는 도 1의 데이터 저장부(10)에 대응될 수 있고, 램(630)은 도 1의 제1 메모리(21) 및 제2 메모리(22)에 대응될 수 있다.
호스트 인터페이스(620)는 프로세서(610)의 제어에 따라 호스트 측과 데이터를 교환한다. 호스트 인터페이스(620)는 호스트로부터 명령어 및 주소를 패치하여 CPU 버스를 통해서 프로세서(610)로 전달한다. 여기서, 호스트 인터페이스(620)는 SATA 인터페이스, PATA 인터페이스, 및 ESATA(External SATA) 인터페이스 등일 수 있다. 호스트 인터페이스(620)를 통해 호스트로부터 입력되는 데이터나 호스트로 전송되어야 할 데이터는 프로세서(610)의 제어에 따라 CPU 버스를 경유하지 않고 캐시 버퍼 램(640)을 통해 전달될 수 있다.
램(630)은 SSD(60)의 동작에 필요한 데이터를 임시로 저장하는데 이용될 것이다. 이러한 램(630)은 휘발성 메모리 장치로써, DRAM, SRAM 등이 될 수 있다.
캐쉬 버퍼 램(640)은 호스트와 플래시 메모리 장치(660) 간의 이동 데이터를 일시 저장한다. 또한, 캐쉬 버퍼 램(640)은 프로세서(610)에 의해서 운용될 프로그램을 저장하는 데에도 사용된다. 캐쉬 버퍼 램(640)은 일종의 버퍼 메모리로 간주할 수 있으며, SRAM으로 구현될 수 있다.
플래시 제어기(650)는 저장 장치로 사용되는 플래시 메모리 장치(660)과 데이터를 주고받을 것이다. 플래시 제어기(650)는 도 1 내지 도 10에서 전술한 것과 같이, 데이터의 공유량에 따라 데이터가 저장되는 다수의 플래시 메모리 장치(66) 내의 저장 영역이 변경한다. 플래시 제어기(650)는 낸드 플래시 메모리, 원내드(One-NAND) 플래시 메모리, 멀티 레벨 플래시 메모리, 싱글 레벨 플래시 메모리를 지원하도록 구성될 수 있다.
한편, 프로세서(610)와 플래시 제어기(650)는 하나의 ARM 프로세서로 구현될 수도 있다.
도 12은 도 11의 SSD를 이용한 서버 시스템을 설명하기 위한 블록도이다.
도 12을 참조하면, 서버 시스템(70)은 서버(720), 및 서버(720)를 구동하는 데 필요한 데이터를 저장하는 SSD(740)를 포함한다. 여기서, SSD(740)는, 도 11에 도시된 SSD(60)와 동일한 구성을 포함한다.
서버(720)는 응용 통신 모듈(721), 데이터 처리 모듈(722), 업그레이드 모듈(723), 스케줄링 센터(724), 로컬 리소스 모듈(725), 그리고 리페어 정보 모듈(726)를 포함한다.
응용 통신 모듈(721)은 서버(720)와 네트워크에 연결된 컴퓨팅 시스템과 통신하거나 혹은 서버(720)과 SSD(740)이 통신하도록 구현될 것이다. 응용 통신 모듈(721)은 사용자 인터페이스를 통하여 제공된 데이터 혹은 정보를 데이터 처리 모듈(722)로 전송한다.
데이터 처리 모듈(722)은 로컬 자원 모듈(725)에 링크될 것이다. 여기서 로컬 자원 모듈(725)은 서버(720)에 입력된 데이터 혹은 정보를 근거로 하여 사용자에게 리페어 숍들(repair shops)/딜러들(dealers)/기술적인 정보의 목록을 제공한다.
업그레이드 모듈(723)은 데이터 처리 모듈(722)과 인터페이싱한다. 업그레이드 모듈(723)은 SSD(740)로부터 전송된 데이터 혹은 정보를 근거로 하여 펌웨어, 리셋 코드, 진단 시스템 업그레이드 혹은 다른 정보들을 전자기기(appliance)에 업그레이드한다.
스케쥴링 센터(724)는 서버(720)에 입력된 데이터 혹은 정보를 근거로 하여 사용자에게 실시간의 옵션을 허용한다.
리페어 정보 모듈(726)은 데이터 처리 모듈(722)과 인터페이싱한다. 리페어 정보 모듈(726)은 사용자에게 리페어 관련 정보(예를 들어, 오디오, 비디오, 혹은 문서 파일)를 제공하는데 이용될 것이다. 데이터 처리 모듈(722)은 SSD(740)으로부터 전달된 정보를 근거로하여 관련된 정보를 패키징한다. 그 뒤, 이러한 정보는 SSD(740)에 전송되거나 혹은 사용자에게 디스플레이될 것이다.
도 13은 도 11의 SSD를 이용한 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 13을 참조하면, 컴퓨팅 시스템(80)은, 중앙처리장치(810), 롬(820), 램(830), 입출력 장치(840), SSD(850) 등을 포함한다.
중앙처리장치(810)는 시스템 버스(801)에 연결될 것이다. 롬(820)은 컴퓨팅 시스템(80)을 구동하는데 필요한 데이터가 저장될 것이다. 이러한 데이터에는 개시 명령 시퀀스, 혹은 기본적인 입/출력 동작 시스템(예를 들어, BIOS) 시퀀스 등이 될 것이다. 램(830)은 중앙처리장치(810)가 실행될 때 발생되는 데이터가 임시로 저장될 것이다.
입출력 장치(840)는, 예를 들어, 키보드, 포인팅 장치(마우스), 모니터, 모뎀, 등이 입출력 장치 인터페이스를 통하여 시스템 버스(801)에 연결될 것이다.
SSD(850)는 읽기 가능한 저장 장치로써, 도 11에 도시된 SSD(60)와 동일한 구성을 포함한다.
도 14는 도 11의 SSD를 이용한 전자 기기를 설명하기 위한 블록도이다.
도 14를 참조하면, 전자기기(90)는, 프로세서(910), 롬(920), 램(930), 그리고 플래시 인터페이스(940), 및 SSD(950)을 포함한다.
프로세서(910)는 펌웨어 코드 혹은 임의의 코드를 실행하기 위하여 램(930)을 억세스한다. 또한 프로세서(910)는 개시 명령 시퀀스 혹은 기본 입출력 동작 시스템 시퀀스들과 같은 고정 명령 시퀀스들을 실행하기 위하여 롬(920)에 억세스한다. 플래시 인터페이스(940)는 전자기기(90)와 SSD(950) 사이의 인터페이싱을 수행한다.
SSD(950)는 전자기기(90)에 착탈이 가능한다. SSD(950)는, 도 11에 도시된 SSD(60)와 동일한 구성을 포함한다.
본 발명의 전자기기(90)는 셀룰러 폰, 개인 디지털 보조기(Personal Digital Assistants: PDAs), 디지털 카메라, 캠코더, 및 휴대용 오디오 재생장치(예를 들어, MP3), PMP 등이 될 수 있다.
도 15는 본 발명의 몇몇 실시예에 따른 저장 장치를 적용한 메모리 카드의 예시적 블록도이다.
도 15를 참조하면, 메모리 카드(40)는 낸드 플래시 메모리 장치(420) 및 그것을 제어하는 메모리 제어기(440)를 포함한다.
낸드 플래시 메모리 장치(420)는 도 1의 데이터 저장부(10)에 대응될 수 있고, 메모리 제어기(440)는, 도 1의 제어기(30)에 대응될 수 있다. 설명의 편의상, 도 15에서 도 1의 제1 메모리(21) 및 제2 메모리(22)에 대응되는 구성요소는 도시하지 않았다.
이러한 메모리 카드(40)는 멀티미디어 카드(Multimedia Card: MMC), 보안 디지털(Security Digital: SD), miniSD, 메모리 스틱(Memory Stick), 스마트미디어(SmartMedia), 트랜스플래시(TransFlash) 카드 등에 적용가능하다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 저장 장치 10: 데이터 저장부
21: 제1 메모리 22: 제2 메모리
30: 제어기

Claims (10)

  1. 서로 다른 물리 어드레스에 대응되는 제1 및 제2 저장 영역을 포함하고, 상기 제1 저장 영역 내에 제1 데이터가 저장되는 데이터 저장부;
    상기 제1 데이터의 공유량(reference count)를 저장하는 제1 메모리; 및
    상기 제1 데이터의 공유량이 변화함에 따라, 상기 제1 데이터를 상기 제1 저장 영역에서 제2 저장 영역으로 재배치하는 제어기를 포함하고,
    상기 제1 데이터의 공유량은, 상기 제1 데이터가 저장된 상기 제1 저장 영역에 대응하는 물리 어드레스에 맵핑된 로직 어드레스의 개수를 포함하는 저장 장치.
  2. 제 1항에 있어서,
    상기 제1 저장 영역은 공유량이 제1 범위 내에 속하는 데이터가 저장되고, 상기 제2 저장 영역은 공유량이 상기 제1 범위와 다른 제2 범위 내에 속하는 데이터가 저장되는 저장 장치.
  3. 제 2항에 있어서,
    상기 제1 저장 영역은 공유량이 1, 2인 데이터가 저장되고, 상기 제2 저장 영역은 공유량이 3이상인 데이터가 저장되는 저장 장치.
  4. 제 2항에 있어서,
    상기 데이터 저장부는 서로 다른 물리 어드레스를 갖는 제3 내지 제m(단, m은 3 이상의 자연수) 저장 영역을 더 포함하고,
    상기 제1 내지 제m 저장 영역은 각각, 공유량이 제1 내지 제m 범위 내에 속하는 데이터가 저장되고,
    상기 제1 내지 제m 범위는 순차적으로 증가하고 서로 다른 범위를 갖는 저장 장치.
  5. 제 4항에 있어서,
    상기 제m 저장 영역에는 상기 제m 범위 내에 속하는 제2 데이터가 저장되고,
    상기 제어기는 상기 제2 데이터의 공유량이 상기 제1 범위 내에 속하기 전까지 상기 제2 데이터를 재배치하지 않고, 상기 제2 데이터의 공유량이 상기 제1 범위 내에 속하면 상기 제m 저장 영역에서 상기 제1 저장 영역으로 재배치하는 저장 장치.
  6. 제 4항에 있어서,
    상기 제m 저장 영역에는 상기 제m 범위 내에 속하는 제2 데이터가 저장되고,
    상기 제어기는 상기 제2 데이터의 공유량이 변경될 때마다, 변경된 제2 데이터의 공유량에 대응되는 저장 영역으로 제2 데이터를 재배치하는 저장 장치.
  7. 제 1항에 있어서,
    상기 제1 저장 영역은 적어도 하나의 로직 어드레스에 대응되고,
    상기 제1 저장 영역에 대응되는 로직 어드레스와 물리 어드레스 사이의 어드레스 맵핑 테이블(address mapping table)를 저장하는 제2 메모리를 더 포함하는 저장 장치.
  8. 제 1항에 있어서,
    상기 제어기는 유휴 시간(idle time)에 후순위 작업(background job)으로, 상기 공유량이 변경된 제1 데이터를 재배치하는 저장 장치.
  9. 제 1항에 있어서,
    상기 제1 및 제2 저장 영역은 각각 다수의 서브 영역을 포함하고,
    상기 서브 영역은 라이트 동작의 단위이고,
    상기 제1 및 제2 저장 영역은 소거 동작의 단위인 저장 장치.
  10. 제1 및 제2 메모리 블록을 포함하는 데이터 저장부로서, 상기 제1 및 제2 메모리 블록은 각각 서로 다른 물리 어드레스에 대응되고, 상기 제1 및 제2 메모리 블록은 각각 적어도 하나의 로직 어드레스에 대응되고, 상기 제1 메모리 블록 내에 제1 데이터가 저장되는 데이터 저장부;
    상기 제1 데이터의 공유량(reference count)를 저장하는 제1 메모리;
    상기 제1 메모리 블록에 대응되는 로직 어드레스와 물리 어드레스의 맵핑 정보(mapping information)를 저장하는 제2 메모리; 및
    상기 제1 데이터의 공유량이 변화하고 상기 제1 메모리 블록이 가비지 컬렉션(garbage collection)의 대상이 될 때, 상기 제1 데이터를 상기 제1 메모리 블록에서 제2 메모리 블록으로 재배치하는 제어기를 포함하고,
    상기 제1 데이터의 공유량은, 상기 제1 데이터가 저장된 상기 제1 메모리 블록에 대응하는 물리 어드레스에 맵핑된 로직 어드레스의 개수를 포함하는 저장 장치.
KR1020110098462A 2011-09-28 2011-09-28 저장 장치 및 그 구동 방법 KR101826047B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110098462A KR101826047B1 (ko) 2011-09-28 2011-09-28 저장 장치 및 그 구동 방법
US13/547,018 US8898414B2 (en) 2011-09-28 2012-07-11 Storage devices and methods of driving storage devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110098462A KR101826047B1 (ko) 2011-09-28 2011-09-28 저장 장치 및 그 구동 방법

Publications (2)

Publication Number Publication Date
KR20130034450A KR20130034450A (ko) 2013-04-05
KR101826047B1 true KR101826047B1 (ko) 2018-02-07

Family

ID=47912527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110098462A KR101826047B1 (ko) 2011-09-28 2011-09-28 저장 장치 및 그 구동 방법

Country Status (2)

Country Link
US (1) US8898414B2 (ko)
KR (1) KR101826047B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI515737B (zh) * 2013-12-09 2016-01-01 慧榮科技股份有限公司 資料儲存裝置以及其資料抹除方法
KR102330394B1 (ko) * 2014-06-11 2021-11-23 삼성전자주식회사 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법
US9778848B2 (en) * 2014-12-23 2017-10-03 Intel Corporation Method and apparatus for improving read performance of a solid state drive
WO2017068617A1 (ja) * 2015-10-19 2017-04-27 株式会社日立製作所 ストレージシステム
TWI631565B (zh) * 2015-12-09 2018-08-01 慧榮科技股份有限公司 快閃記憶體之廢料收集方法以及使用該方法的裝置
KR102475798B1 (ko) * 2016-07-14 2022-12-12 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11644992B2 (en) 2016-11-23 2023-05-09 Samsung Electronics Co., Ltd. Storage system performing data deduplication, method of operating storage system, and method of operating data processing system
KR102646252B1 (ko) 2016-11-30 2024-03-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20220005285A (ko) * 2020-07-06 2022-01-13 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282644A1 (en) * 2005-06-08 2006-12-14 Micron Technology, Inc. Robust index storage for non-volatile memory
US20090172333A1 (en) * 2007-12-26 2009-07-02 Sandisk Il Ltd. Storage device coordinator and a host device that includes the same
US20100306464A1 (en) * 2009-05-29 2010-12-02 Dell Products, Lp System and Method for Managing Devices in an Information Handling System

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4580724B2 (ja) 2004-09-29 2010-11-17 株式会社タイテック 不揮発性メモリの制御方法
JP4898252B2 (ja) 2006-03-15 2012-03-14 パナソニック株式会社 不揮発性記憶装置及びそのデータ管理方法
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
KR101029704B1 (ko) 2008-06-17 2011-04-18 주식회사 셀픽 플래시 메모리 관리 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282644A1 (en) * 2005-06-08 2006-12-14 Micron Technology, Inc. Robust index storage for non-volatile memory
US20090172333A1 (en) * 2007-12-26 2009-07-02 Sandisk Il Ltd. Storage device coordinator and a host device that includes the same
US20100306464A1 (en) * 2009-05-29 2010-12-02 Dell Products, Lp System and Method for Managing Devices in an Information Handling System
US8171216B2 (en) 2009-05-29 2012-05-01 Dell Products, Lp System and method for managing devices in an information handling system

Also Published As

Publication number Publication date
US8898414B2 (en) 2014-11-25
KR20130034450A (ko) 2013-04-05
US20130080685A1 (en) 2013-03-28

Similar Documents

Publication Publication Date Title
KR101826047B1 (ko) 저장 장치 및 그 구동 방법
US8364931B2 (en) Memory system and mapping methods using a random write page mapping table
US10540274B2 (en) Memory devices including dynamic superblocks, and related methods and electronic systems
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
CN110806984B (zh) 在存储器系统中搜索有效数据的设备和方法
JP5709814B2 (ja) 不揮発性メモリを有するシステムのための高速ツリー平坦化
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
US20150127889A1 (en) Nonvolatile memory system
EP2665065A2 (en) Electronic device employing flash memory
US11157402B2 (en) Apparatus and method for managing valid data in memory system
KR102649131B1 (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
KR20150083264A (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
CN107632942A (zh) 一种固态硬盘实现lba级别trim命令的方法
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
US20190042405A1 (en) Storing data based on writing frequency in data storage systems
KR20200116704A (ko) 메모리 시스템 및 그것의 동작방법
KR20160105624A (ko) 데이터 처리 시스템 및 그것의 동작 방법
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US20100318726A1 (en) Memory system and memory system managing method
CN101727403A (zh) 数据存储系统、设备及方法
KR20130081526A (ko) 저장 장치, 그것을 포함하는 전자 장치, 및 그것의 데이터 관리 방법들
Yim A novel memory hierarchy for flash memory based storage systems
US20210026763A1 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
US9575883B2 (en) Control device, storage device, and storage control method
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof

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