KR20180134673A - 스토리지 장치 및 이의 동작 방법 - Google Patents

스토리지 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20180134673A
KR20180134673A KR1020170072721A KR20170072721A KR20180134673A KR 20180134673 A KR20180134673 A KR 20180134673A KR 1020170072721 A KR1020170072721 A KR 1020170072721A KR 20170072721 A KR20170072721 A KR 20170072721A KR 20180134673 A KR20180134673 A KR 20180134673A
Authority
KR
South Korea
Prior art keywords
address
journal
mapping table
logical
physical
Prior art date
Application number
KR1020170072721A
Other languages
English (en)
Other versions
KR102458312B1 (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 KR1020170072721A priority Critical patent/KR102458312B1/ko
Priority to CN201810265475.1A priority patent/CN109032968B/zh
Priority to US16/002,151 priority patent/US10528466B2/en
Publication of KR20180134673A publication Critical patent/KR20180134673A/ko
Application granted granted Critical
Publication of KR102458312B1 publication Critical patent/KR102458312B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Memory System (AREA)

Abstract

스토리지 장치 및 이의 동작 방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치의 동작 방법은 복수의 블록이 복수의 물리 어드레스(Physical Address)를 개별적으로 갖는 복수의 페이지들을 각각 포함하고, 상기 복수의 블록을 포함하는 스토리지 장치의 동작 방법에 있어서, 복수의 논리 어드레스(Logical Address)를 포함하는 어드레스 유닛(Address Unit)을 수신하는 단계, 상기 복수의 논리 어드레스를 오름차순 또는 내림차순에 따라 정렬함으로서 정렬된 논리 어드레스를 생성하는 단계 및 상기 정렬된 논리 어드레스에 상기 물리 어드레스를 순차적으로 할당함으로서 제1 매핑 테이블을 생성하는 단계를 포함할 수 있다.

Description

스토리지 장치 및 이의 동작 방법{STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 개시의 기술적 사상은 스토리지 장치의 동작 방법에 관한 것으로, 더욱 상세하게는 논리 어드레스와 물리 어드레스의 매핑 정보를 포함하는 매핑 테이블을 효율적으로 저장하는 스토리지 장치에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 SSD(Solid State Drive) 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있다.
스토리지 장치는 일반적으로 논리 어드레스(logical address)를 스토리지 장치의 물리 어드레스(physical address)로 매핑하는 FTL(flash translation layer)을 포함할 수 있다. 또한, 논리 어드레스와 물리 어드레스의 매핑 정보를 포함하는 매핑 테이블이 스토리지 장치에 저장될 수 있다. 또한, 스토리지 장치는 데이터 손상을 방지하기 위해 상기 매핑 테이블에 대한 변경사항이 있는 경우, 변경사항을 실행에 옮기기 전에 그 변경사항을 로그할 수 있는 저널을 이용할 수 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 논리 어드레스와 물리 어드레스의 매핑 테이블을 효율적으로 저장하는 스토리지 장치 및 이의 동작 방법을 제공하는 것이다.
본 개시의 기술적 사상이 해결하고자 하는 또 다른 과제는 매핑 테이블에 대한 업데이트 정보를 포함하는 저널을 효율적으로 저장하는 스토리지 장치 및 이의 동작 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치의 동작 방법은 복수의 블록이 복수의 물리 어드레스(Physical Address)를 개별적으로 갖는 복수의 페이지들을 각각 포함하고, 상기 복수의 블록을 포함하는 스토리지 장치의 동작 방법에 있어서, 복수의 논리 어드레스(Logical Address)를 포함하는 어드레스 유닛(Address Unit)을 수신하는 단계, 상기 복수의 논리 어드레스를 오름차순 또는 내림차순에 따라 정렬함으로서 정렬된 논리 어드레스를 생성하는 단계 및 상기 정렬된 논리 어드레스에 상기 물리 어드레스를 순차적으로 할당함으로서 제1 매핑 테이블을 생성하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 또 다른 측면에 따른 스토리지 장치의 동작 방법은 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법에 있어서, 호스트로부터 상기 비휘발성 메모리에 저장되는 데이터에 대한 어드레스 변경 정보를 수신하는 단계, 상기 어드레스 변경 정보에 포함되는 변경 논리 어드레스에 물리 어드레스를 순차적으로 할당함으로서 제1 저널(Journal)을 생성하는 단계, 상기 할당된 물리 어드레스에서 적어도 일부를 삭제함으로서 제2 저널을 생성하는 단계 및 상기 제2 저널을 상기 비휘발성 메모리에 저장하는 단계;를 포함할 수 있다.
본 개시의 기술적 사상의 또 다른 측면에 따른 스토리지 장치는 복수의 물리 어드레스에 개별적으로 대응되는 복수의 페이지들을 포함하고, 어드레스가 저장되는 메타 영역 및 데이터가 저장되는 유저 영역으로 구분되는 비휘발성 메모리, 외부로부터 복수의 논리 어드레스를 수신하고, 상기 복수의 논리 어드레스에 상기 복수의 물리 어드레스를 대응시키는 플래시 변환 계층(Flash Translation Layer;FTL) 및 상기 복수의 논리 어드레스를 오름차순 또는 내림차순으로 정렬하고, 정렬된 복수의 논리 어드레스를 상기 플래시 변환 계층에 출력하는 어드레스 소터(Address Sorter)를 포함하고, 상기 플래시 변환 계층은 상기 정렬된 복수의 논리 어드레스에 상기 복수의 물리 어드레스를 순차적으로 대응시키는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는 매핑 테이블에서 논리 어드레스에 매핑되는 물리 어드레스의 데이터 량을 줄임으로써 매핑 테이블을 효율적으로 저장할 수 있다.
또한, 본 개시의 기술적 사상에 따른 스토리지 장치는 저널에서 논리 어드레스에 매핑되는 물리 어드레스의 데이터 량을 줄임으로써 매핑 테이블을 효율적으로 저장할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 4은 본 개시의 예시적 실시예에 따른 비휘발성 메모리에 포함된 메모리 블록을 나타내는 회로도이다.
도 5는 본 개시의 예시적 실시예에 따른 비휘발성 메모리에 포함된 메모리 블록의 다른 예를 나타내는 회로도이다.
도 6은 도 5의 메모리 블록을 나타내는 사시도이다.
도 7은 슈퍼 블록의 일 예시를 나타내는 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다.
도 11은 본 개시의 예시적 실시예에 따른 어드레스 소터를 나타내는 블록도이다.
도 12는 본 개시의 예시적 실시예에 따른 어드레스 소터의 동작 방법을 나타내는 순서도이다.
도 13은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 14은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다.
도 15는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 16은 본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 17은 본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다.
도 18은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 19는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다.
도 20은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(1)은 스토리지 장치(10) 및 호스트(20)를 포함할 수 있다. 또한, 스토리지 장치(10)는 비휘발성 메모리(110) 및 어드레스 소터(120)를 포함할 수 있다. 호스트(20)는 스토리지 장치(10)에 대한 기입 동작을 수행할 때 데이터 및 상기 데이터에 대응하는 적어도 하나의 논리 어드레스가 포함된 어드레스 유닛(AU)을 출력할 수 있다. 본 명세서에서는 호스트(20)가 스토리지 장치(10)에 연속적으로 출력하는 복수의 논리 어드레스의 그룹을 어드레스 유닛(AU)으로 칭한다.
상기 언급한 바와 같이 비휘발성 메모리(110)는 전원 공급이 중단되더라도 데이터를 유지할 수 있다. 비휘발성 메모리(110)는 워드 라인들, 스트링 선택 라인, 접지 선택 라인 및 비트 라인들과 연결되는 메모리 셀 어레이를 포함할 수 있고, 상기 메모리 셀 어레이는 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함할 수 있다. 각각의 셀 스트링들은 스트링 선택 트랜지스터를 통해서 비트 라인과 연결될 수 있다. 비휘발성 메모리(110)는 복수의 메모리 블록들을 포함하는 슈퍼 블록들로 구성될 수 있고, 복수의 메모리 블록들은 복수의 페이지들로 구성될 수 있다. 복수의 페이지들은 복수의 메모리 셀들을 포함할 수 있다. 비휘발성 메모리(110)는 2차원(2D) 메모리 어레이 또는 3차원(3D) 메모리 어레이를 포함할 수 있다.
상기 3차원(3D) 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역과, 메모리 셀들의 동작과 관련된 회로로서 상기 기판 상에 또는 상기 기판 내에 형성된 회로를 가지는 메모리 셀 어레이들의 적어도 하나의 물리적 레벨에 모놀리식으로 형성될 수 있다. 상기 용어 "모놀리식"은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미할 수 있다.
본 개시의 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 셀 스트링들을 포함할 수 있다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들 간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다. 또한, 미국 특허출원공개공보 제2014-0334232호 및 미국특허공개공보 제8,488,381호는 본 명세서에 인용 형식으로 결합된다. 비휘발성 메모리(110)는 도 4 내지 도 8을 참조하여 더욱 상세하게 설명한다.
이후 본 명세서에서는, 비휘발성 메모리(110)는 플래시 메모리 장치인 것으로 도시하고 있으나, 본 개시의 기술적 사상은 플래시 메모리 장치에만 적용되는 것으로 한정되지 않고 모든 형태의 스토리지 장치들(예를 들면, ROM, PROM, EEPROM, 플래시 메모리 장치, PRAM, MRAM, RRAM, FRAM 등)에 적용될 수 있음은 이해되어야 할 것이다.
비휘발성 메모리(110)는 실질적인 데이터를 저장하는 유저 영역과 어드레스 매핑 정보를 저장하는 메타 영역을 포함할 수 있다. 유저 영역에는 호스트(20)로부터 수신한 데이터가 저장될 수 있다. 호스트(20)는 데이터와 함께 이에 대응하는 복수의 논리 어드레스를 포함하는 어드레스 유닛(AU)을 함께 전송할 수 있는데, 비휘발성 메모리(110)의 메타 영역에는, 호스트(20)로부터 수신한 데이터가 실질적으로 저장되는 유저 영역의 물리 어드레스와 상기 데이터에 대응하는 논리 어드레스의 매핑 정보가 저장될 수 있다. 이하 본 명세서에서는 상기 메타 영역에 저장되는 논리 어드레스와 물리 어드레스의 매핑 정보를 포함하는 테이블을 매핑 테이블이라고 칭한다.
어드레스 소터(120)는 수신한 어드레스 유닛(AU)에 포함되는 복수의 논리 어드레스를 일정한 규칙에 따라 정렬할 수 있다. 일 예로서, 어드레스 소터(120)는 어드레스 유닛(AU)에 포함되는 복수의 논리 어드레스를 오름차순 또는 내림차순에 따라 정렬할 수 있다. 후술할 바와 같이, 어드레스 소터(120)가 복수의 논리 어드레스를 정렬함에 따라, 이에 할당되는 물리 어드레스의 적어도 일부에 대한 정보를 생략할 수 있고, 이에 따라 매핑 테이블에 대한 데이터 량이 줄어들 수 있다. 이후 본 명세서에서는 어드레스 소터(120)가 복수의 논리 어드레스를 오름차순으로 정렬하는 실시예에 대해서 설명하지만, 내림차순으로 정렬하거나 일정한 규칙에 따라서 정렬하는 실시예에도 본 개시의 기술적 사상이 적용될 수 있음은 이해되어야 할 것이다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다. 도 1과 중복되는 내용은 생략한다.
도 2를 참조하면, 스토리지 장치(10)는 비휘발성 메모리(110), 어드레스 소터(120), FTL(Flash Traslation Layer)(130) 및 버퍼(140)를 포함할 수 있다. 비휘발성 메모리(110) 및 어드레스 소터(120)는 도 1에서 상술한 바 중복되는 설명은 생략한다.
FTL(130)은 외부(예를 들면, 도 1의 호스트(20))로부터 어드레스 유닛(AU)을 수신하면, 수신한 어드레스 유닛(AU)을 버퍼(140)에 저장할 수 있다. 또한, FTL(130)은 어드레스 소터(120)로부터 정렬된 어드레스 유닛(SAU)을 수신하고, 수신한 정렬된 어드레스 유닛(SAU)에 기초하여 제1 매핑 테이블(MP1)을 생성할 수 있다. 생성된 제1 매핑 테이블(MP1)은 버퍼(140)에 저장될 수 있다. FTL(130)은 제1 매핑 테이블(MP1)에 기초하여 제2 매핑 테이블(MP2)을 생성할 수 있다. 생성된 제2 매핑 테이블(MP2)은 비휘발성 메모리(110)에 저장될 수 있다. 상기 FTL(130)의 동작들은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 수행될 수 있다.
버퍼(140)는 비휘발성 메모리(110)보다 고속으로 데이터를 기입하거나 독출할 수 있는 메모리 로서, 예컨대 정적 랜덤 억세스 메모리(Static Random Access Memory;SRAM), 동적 랜덤 억세스 메모리(Dynamic Random Access Memory;DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register) 등과 같은 휘발성 메모리를 포함할 수도 있고, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory; RRAM), 상변화 메모리(Phase-Change Memory; PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory; MRAM), 강유전체 메모리(Ferroelectric Random Access Memory; FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory; STT-RAM) 등과 같은 비휘발성 메모리를 포함할 수도 있다. 이하에서는 설명의 편의를 위하여 버퍼(140)는 DRAM 인터페이스를 지원하는 DRAM인 것으로 설명되나, 본 개시의 기술적 사상이 이에 제한되지 않는 점은 이해될 것이다.
어드레스 소터(120)는 버퍼(140)로부터 어드레스 유닛(AU)을 독출하고 어드레스 유닛(AU)에 포함된 복수의 논리 어드레스를 정렬함으로써 정렬된 어드레스 유닛(SAU)을 생성할 수 있다. 또한, 어드레스 소터(120)는 정렬된 어드레스 유닛(SAU)을 FTL(130)에 출력할 수 있다.
본 개시의 일 실시예에 따른 FTL(130)은 논리 어드레스와 물리 어드레스의 매핑 정보를 모두 포함하는 제1 매핑 테이블(MP1)을 생성하여 버퍼(140)에 저장하고, 제1 매핑 테이블(MP1)에 포함되는 물리 어드레스 중 적어도 일부의 정보를 생략한 제2 매핑 테이블(MP2)을 생성하여 비휘발성 메모리(110)에 저장할 수 있다. 버퍼(140)가 DRAM과 같은 휘발성 메모리인 경우 전원 공급이 차단되면 논리 어드레스와 물리 어드레스의 매핑 정보가 소실될 수 있다. 이에 따라, FTL(130)은 버퍼(140) 외에 전원 공급이 차단되더라도 정보가 소실되지 않는 비휘발성 메모리(110)에 논리 어드레스와 물리 어드레스의 매핑 정보를 포함하는 매핑 테이블을 저장할 수 있다.
본 개시의 기술적 사상에 따르면, 어드레스 소터(120)가 논리 어드레스를 정렬함으로서 FTL(130)이 일정한 규칙에 따라 물리 어드레스를 논리 어드레스에 매핑할 수 있고, FTL(130)은 비휘발성 메모리(110)에 저장되는 제2 매핑 테이블(MP2) 중 물리 어드레스에 대한 일부 정보를 생략할 수 있다. 일 예로서, 어드레스 소터(120)가 논리 어드레스를 오름차순으로 배열하고, FTL(130)이 물리 어드레스를 논리 어드레스에 순차적으로 매핑함에 따라 제2 매핑 테이블(MP2) 중 물리 어드레스의 채널과 웨이에 관한 정보는 생략될 수 있다. 이에 관해서는 도 7 내지 도 10에서 후술한다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다. 자세하게는, 도 3은 스토리지 장치가 어드레스 유닛(AU)을 이용하여 제2 매핑 테이블(MP2)을 생성하는 방법을 나타내는 순서도이다.
도 2 및 도 3을 참조하면, 스토리지 장치(10)는 외부(예를 들면, 도1의 호스트(20))로부터 복수의 논리 어드레스를 포함하는 어드레스 유닛(AU)을 수신할 수 있다(S110). 어드레스 소터(120)는 어드레스 유닛(AU)에 포함되는 복수의 논리 어드레스를 일정한 규칙에 따라서 정렬할 수 있다(S120). 일 예로서, 어드레스 소터(120)는 복수의 논리 어드레스를 오름차순 또는 내림차순에 따라 정렬할 수 있다.
FTL(130)은 어드레스 소터(120)에 의해 정렬된 복수의 논리 어드레스에 물리 어드레스를 순차적으로 대응시킴으로서 제1 매핑 테이블(MP1)을 생성할 수 있다(S130). FTL(130)은 제1 매핑 테이블(MP1)을 기초로 제2 매핑 테이블(MP2)을 생성할 수 있다(S140). 일 예로서, FTL(130)은 제1 매핑 테이블(MP1)에 포함되는 물리 어드레스 중 일부 정보를 생략함으로서 제2 매핑 테이블(MP2)을 생성할 수 있다. FTL(130)은 생성한 제2 매핑 테이블(MP2)을 비휘발성 메모리(110)의 메타 영역에 저장할 수 있다(S150).
도 4은 본 개시의 예시적 실시예에 따른 비휘발성 메모리에 포함된 메모리 블록을 나타내는 회로도이다.
도 4을 참조하면, 비휘발성 메모리(예를 들면, 도 1의 110)는 수평 낸드 플래시 메모리의 메모리 셀 어레이를 포함할 수 있고, 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록(BLKa)은 비트 라인(BL0 ~ BLn-1) 방향으로, 다수 개의 메모리 셀(MC)들이 직렬로 연결되는 n(n는 2 이상의 정수)개의 셀 스트링들을 포함할 수 있고, 같은 워드 라인(WL1~WLn)을 공유하는 페이지(PAGE)를 포함할 수 있다.
도 4와 같은 구조를 갖는 낸드 플래시 메모리 장치는 블록 단위로 소거가 수행되고, 각 워드 라인(WL1 ~ WLn)에 대응되는 페이지(PAGE) 단위로 프로그램이 수행될 수 있다. 도 4는 하나의 블록에 n개의 워드 라인들(WL1 ~ WLn)에 대한 n개의 페이지(PAGE)들이 구비되는 예를 도시한다. 또한, 도 1 및 도 2의 비휘발성 메모리(110)는 이상에서 설명된 메모리 셀 어레이와 동일한 구조로 동일한 동작을 수행하는 복수의 메모리 셀 어레이들을 포함할 수도 있다.
도 5는 본 개시의 예시적 실시예에 따른 비휘발성 메모리에 포함된 메모리 블록의 다른 예를 나타내는 회로도이다.
도 5를 참조하면, 비휘발성 메모리(예를 들면, 도 1의 110)에 포함되는 메모리 셀 어레이는 수직 낸드 플래시 메모리의 메모리 셀 어레이일 수 있고, 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록(BLK0)은 복수의 낸드 셀 스트링들(NS11 ~ NS33), 복수의 워드 라인들(WL1 ~ WL8), 복수의 비트 라인들(BL1 ~ BL3), 복수의 그라운드 선택 라인들(GSL1 ~ GSL3), 복수의 셀 스트링 선택 라인들(SSL1 ~ SSL3) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 낸드 셀 스트링들의 개수, 워드 라인들의 개수, 비트 라인들의 개수, 그라운드 선택 라인의 개수 및 셀 스트링 선택 라인들의 개수는 실시예에 따라 다양하게 변경될 수 있다.
제1 비트 라인(BL1)과 공통 소스 라인(CSL) 사이에 낸드 셀 스트링들(NS11, NS21, NS31)이 제공되고, 제2 비트 라인(BL2)과 공통 소스 라인(CSL) 사이에 낸드 셀 스트링들(NS12, NS22, NS32)이 제공되고 제3 비트 라인(BL3)과 공통 소스 라인(CSL) 사이에 낸드 셀 스트링들(NS13, NS23, NS33)이 제공된다. 각 낸드 셀 스트링(예를 들면, NS11)은 직렬로 연결된 셀 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 내지 MC8) 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다.
하나의 비트 라인에 공통으로 연결된 셀 스트링들은 하나의 칼럼을 구성한다. 예를 들어, 제1 비트 라인(BL1)에 공통으로 연결된 셀 스트링들(NS11, NS21, NS31)은 제1 칼럼에 대응되고, 제2 비트 라인(BL2)에 공통으로 연결된 셀 스트링들(NS12, NS22, NS32)은 제2 칼럼에 대응되며, 제3 비트 라인(BL3)에 공통으로 연결된 셀 스트링들(NS13, NS23, NS33)은 제3 칼럼에 대응될 수 있다.
하나의 셀 스트링 선택 라인에 연결되는 셀 스트링들은 하나의 로우를 구성한다. 예를 들어, 제1 셀 스트링 선택 라인(SSL1)에 연결된 셀 스트링들(NS11, NS12, NS13)은 제1 로우에 대응되고, 제2 셀 스트링 선택 라인(SSL2)에 연결된 셀 스트링들(NS21, NS22, NS23)은 제2 로우에 대응되며, 제3 셀 스트링 선택 라인(SSL3)에 연결된 셀 스트링들(NS31, NS32, NS33)은 제3 로우에 대응될 수 있다.
셀 스트링 선택 트랜지스터(SST)는 대응하는 셀 스트링 선택 라인(SSL1 ~ SSL3)에 연결된다. 복수의 메모리 셀들(MC1 ~ MC8)은 각각 대응하는 워드 라인(WL1 내지 WL8)에 연결된다. 그라운드 선택 트랜지스터(GST)는 대응하는 그라운드 선택 라인(GSL1 ~ GSL3)에 연결된다. 셀 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL1 ~ BL3)에 연결되고, 그라운드 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결된다.
동일 높이의 워드 라인(예를 들면, WL1)은 서로 공통으로 연결되어 있고, 셀 스트링 선택 라인들(SSL1 ~ SSL3)은 서로 분리되어 있고, 그라운드 선택 라인들(GSL1 ~ GSL3)도 서로 분리되어 있다. 예를 들어, 제 1 워드 라인(WL1)에 연결되어 있고 셀 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀들을 프로그램하는 경우에는, 제1 워드 라인(WL1)과 제1 셀 스트링 선택 라인(SSL1)이 선택된다. 그라운드 선택 라인들(GSL1 ~ GSL3)은 서로 공통으로 연결될 수도 있다.
도 6은 도 5의 메모리 블록(BLK0)을 나타내는 사시도이다.
도 6를 참조하면, 메모리 셀 어레이(예를 들어, 도 2의 110)에 포함된 각 메모리 블록은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 도 6에서는, 메모리 블록이 2개의 선택 라인들(GSL, SSL), 8개의 워드 라인들(WL1 ~ WL8), 그리고 3개의 비트 라인들(BL1 ~ BL3)을 포함하는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제1 방향(예를 들어, Y 방향)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 신장되는 복수의 절연막들(IL)이 제3 방향(예를 들어, Z 방향)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 제3 방향을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 순차적으로 배치되며, 제3 방향을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(pillars)(P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 '터널링 절연층'이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드 라인들(WL1 ~ WL8)과 같은 게이트 전극(GE)이 제공된다.
복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제2 방향(예를 들어, X 방향)으로 신장되고 제1 방향을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL1 내지 BL3)이 제공된다.
도 7은 슈퍼 블록의 일 예시를 나타내는 블록도이다.
도 7을 참조하면, 제1 슈퍼 블록(SBLKA)은 복수의 블록들(BLK11 내지 BLK44)를 포함할 수 있다. 도 7에서는 복수의 블록들(BLK11 내지 BLK44)이 16개인 실시예를 도시하고 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고 복수의 블록들이 16개보다 많거나 적은 경우에도 적용될 수 있다.
복수의 블록들(BLK11 내지 BLK44) 각각은 도 4 내지 도 6에서 상술한 블록일 수 있고, 복수의 페이지들을 포함할 수 있다. 복수의 블록들(BLK11 내지 BLK44)는 연결된 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)로 구분될 수 있다. 일 예로서, 제2 채널(CH2)의 제2 웨이(Wy2)에 연결되는 블록은 제6 블록(BLK22)일 수 있고, 제3 채널(CH3)의 제3 웨이(Wy3)에 연결되는 블록은 제11 블록(BLK33)일 수 있다.
복수의 블록들(BLK11 내지 BLK44)에 포함되는 복수의 페이지들은 고유한 물리 어드레스(PA111 내지 PA44n)을 가질 수 있다. 물리 어드레스(PA111 내지 PA44n)는 대응되는 페이지가 포함되는 제1 슈퍼 블록(SBLKA)에 대한 정보, 블록(BLK11 내지 BLK44)에 대한 정보 및 페이지 번호를 포함할 수 있다. 또한, 블록(BLK11 내지 BLK44)에 대한 정보는 상기 블록(BLK11 내지 BLK44)이 연결되는 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)에 대한 정보를 포함할 수 있다. 예를 들어 본 명세서에서 사용되는 물리 어드레스(PA111 내지 PA44n)의 경우에는, 물리 어드레스(PA111 내지 PA44n)가 ‘PA321’인 예시에서 ‘A’는 대응되는 페이지가 포함되는 제1 슈퍼 블록(SBLKA)에 대한 정보를 의미하고, ‘32’는 대응되는 페이지가 포함되는 제10 블록(BL32)에 대한 정보를 의미하고, ‘1’은 제10 블록(BL32)에서의 페이지 번호를 의미할 수 있다. 또한, 제10 블록(BL32)에 대한 정보인 ‘32’는 제10 블록(BL32)이 연결된 제3 채널(CH3)에 대한 정보인 ‘3’과 제2 웨이(Wy2)에 대한 정보인 ‘2’를 포함할 수 있다. 이에 따라 물리 어드레스(PA111 내지 PA44n)를 이용하여 페이지에 대한 위치를 알 수 있다.
스토리지 장치는 복수의 블록들(BLK11 내지 BLK44)에 포함된 같은 레벨의 페이지에 순차적으로 데이터를 기입할 수 있다. 즉, 스토리지 장치는 복수의 블록들(BLK11 내지 BLK44)의 제1 레벨에 있는, 즉, 페이지 번호가 ‘1’인, 페이지(PA111 내지 PA441)에 먼저 순차적으로 데이터를 기입하고, 그다음 복수의 블록들(BLK11 내지 BLK44)의 제2 레벨에 있는, 즉, 페이지 번호가 ‘2’인, 페이지(PA112 내지 PA442)에 순차적으로 데이터를 기입하는 방식으로 데이터를 기입할 수 있다. 본 명세서에서는 상기와 같이 같은 레벨의 페이지에 순차적으로 데이터를 기입하는 데이터 기입 방법을 병렬 기입 방법이라고 칭한다.
도 8은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다. 자세하게는, 도 8은 스토리지 장치가 어드레스 유닛(AU)을 이용하여 제2 매핑 테이블(MP2)을 생성하는 방법의 일 예시를 나타내는 도면이다.
도 2, 도 7 및 도 8을 참조하면, 스토리지 장치(10)는 외부(예를 들면, 도 1의 호스트(20))로부터 복수의 논리 어드레스를 포함하는 어드레스 유닛(AU)을 수신할 수 있다. 어드레스 소터(120)는 어드레스 유닛(AU)에 포함된 복수의 논리 어드레스를 오름차순으로 정렬하여 정렬된 어드레스 유닛(SAU)을 생성할 수 있다. 즉, 어드레스 소터(120)는 복수의 논리 어드레스인 ‘L10, L16, L27, L5, L7, L32, L13 및 L20’를 ‘L5, L7, L10, L13, L16, L20, L27 및 L32’ 로 숫자가 낮은 순서대로 정렬함으로서 정렬된 어드레스 유닛(SAU)을 생성할 수 있다.
FTL(130)은 정렬된 어드레스 유닛(SAU)에 순차적으로 물리 어드레스를 할당함으로서 제1 매핑 테이블(MP1)을 생성할 수 있다. 도 7 및 병렬 기입 방법에 따라서, 제1 레벨의 페이지(PA111 내지 PA441)에 해당하는 물리 어드레스가 순차적으로 할당될 수 있다. 즉, 정렬된 어드레스 유닛(SAU)의 ‘L5, L7, L10, L13, L16, L20, L27 및 L32’ 순서대로 각각 ‘PA111 내지 PA241’의 물리 어드레스가 할당될 수 있다. FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 제1 매핑 테이블(MP1)을 버퍼(140)에 저장할 수 있다.
FTL(130)은 제1 매핑 테이블(MP1)의 물리 어드레스에서 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)에 대한 정보를 삭제함으로써 제2 매핑 테이블(MP2)을 생성할 수 있다. 즉, FTL(130)은 제1 매핑 테이블(MP1)의 물리 어드레스에 해당하는 ‘PA111 내지 PA241’에서 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)에 대한 정보에 해당하는 ‘11’ 내지 ‘24’를 삭제하고 슈퍼 블록에 대한 정보‘A’ 및 페이지 넘버에 대한 정보‘1’만을 남김으로서 제2 매핑 테이블(MP2)을 생성할 수 있다. 이에 따라서, 제2 매핑 테이블(MP2)의 물리 어드레스는 제1 매핑 테이블(MP1)의 물리 어드레스에 비해서 적은 데이터량을 가질 수 있다. FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 제2 매핑 테이블(MP2)을 비휘발성 메모리(110)에 저장할 수 있다.
본 개시의 기술적 사상에 따르면, 스토리지 장치(10)가 어드레스 유닛(AU)을 논리 어드레스에 기초하여 정렬하고 물리 어드레스를 순차적으로 할당함으로써 물리 어드레스 중 적어도 일부를 삭제한 제2 매핑 테이블(MP2)을 생성할 수 있다. 이에 따라, 제2 매핑 테이블(MP2)의 데이터량이 줄어들고, 제2 매핑 테이블(MP2)의 저장에 필요한 비휘발성 메모리(110)의 저장 공간이 절약될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다. 자세하게는, 도 9는 스토리지 장치가 제2 매핑 테이블(MP2)을 이용하여 제1 매핑 테이블(MP1)을 생성하는 방법을 나타내는 순서도이다.
도 2 및 도 9를 참조하면, FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 비휘발성 메모리(110)에서 제2 매핑 테이블(MP2)을 독출할 수 있다(S210). FTL(130)은 제2 매핑 테이블(MP2)을 기초로 제1 매핑 테이블(MP1)을 생성할 수 있다(S220). 본 개시의 일 실시예에 따르면, FTL(130)은 제2 매핑 테이블(MP2)에 포함되는 물리 어드레스에 일정한 규칙에 따라 채널 및 웨이 정보를 추가시킴으로써 제1 매핑 테이블(MP1)을 생성할 수 있다. 일 예시에서, FTL(130)은 물리 어드레스에 순차적으로 채널 및 웨이 정보를 추가시킴으로써 제1 매핑 테이블(MP1)을 생성할 수 있다. FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 버퍼(140)에 생성한 제1 매핑 테이블(MP1)을 기입할 수 있다(S130). 스토리지 장치(10)는 버퍼(140)에 기입된 제1 매핑 테이블(MP1)을 이용하여 고속으로 호스트(예를 들면, 도 1의 20)로부터의 명령을 처리할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다. 자세하게는, 도 10은 스토리지 장치가 제2 매핑 테이블(MP2)을 이용하여 제1 매핑 테이블(MP1)을 생성하는 방법의 일 예시를 나타내는 도면이다.
도 2, 도 7 및 도 10을 참조하면, FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 비휘발성 메모리(110)로부터 제2 매핑 테이블(MP2)을 독출할 수 있다. 도 8에서 상술한 바와 같이, 제2 매핑 테이블(MP2)에서 논리 어드레스는 순차적으로 저장되어 있을 수 있고, 물리 어드레스는 채널(CH1 내지 4) 및 웨이(Wy1 내지 4) 정보가 생략된 채로 저장되어 있을 수 있다. FTL(130)은 제2 매핑 테이블(MP2)에 포함된 물리 어드레스에 대해 순차적으로 채널(CH1 내지 4) 및 웨이(Wy1 내지 4)를 할당할 수 있다. 즉, FTL(130)은 제2 매핑 테이블(MP2)의 물리 어드레스(PA1, PA1, PA1, PA1, PA1, PA1, PA1 및 PA1)에 대응하는 논리 어드레스(L5, L7, L10, L13, L16, L20, L27 및 L32)의 순서대로 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)를 순차적으로 할당할 수 있다. 이 때, FTL(130)은 도 7에서 상술한 바와 같이 병렬 기입 방법에 대응하는 순서대로 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)를 할당할 수 있다.
일 예시로서, 도 10에서와 같이, 제2 매핑 테이블(MP2) 중 가장 작은 논리 어드레스를 갖는 ‘L5’에는 병렬 기입 방법에 따라 맨 처음 기입되는 블록의 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)에 대응하는 물리 어드레스인 ‘PA111’이 할당될 수 있다. 제2 매핑 테이블(MP2) 중 두번째로 작은 논리 어드레스를 갖는 ‘L7’에는 병렬 기입 방법에 따라 두번째로 기입되는 블록의 채널(CH1 내지 CH4) 및 웨이(Wy1 내지 Wy4)에 대응하는 물리 어드레스인 ‘PA121’이 할당될 수 있다. 이와 같은 방법으로, ‘L10’에는 ‘PA131’이, ‘L13’에는 ‘PA141’이, ‘L16’에는 ‘PA211’이, ‘L20’에는 ‘PA221’, ‘L27’에는 ‘PA231’, ‘L32’에는 ‘PA241’이 각각 할당될 수 있다. FTL(130)은 상기와 같은 방법으로 물리 어드레스들을 할당함으로써 제1 매핑 테이블(MP1)을 생성할 수 있다.
FTL(130)은 생성된 제1 매핑 테이블(MP1)을 버퍼(140)에 생성할 수 있다. 스토리지 장치(10)는 버퍼(140)에 기입된 제1 매핑 테이블(MP1)을 이용하여 고속으로 호스트(예를 들면, 도 1의 20)로부터의 명령을 처리할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 어드레스 소터를 나타내는 블록도이다.
도 2 및 도 11을 참조하면, 어드레스 소터(120)는 인풋 버퍼(121), 소팅부(122), 머징부(123)를 포함할 수 있다. 어드레스 소터(120)는 버퍼(140)로부터 L개의 논리 어드레스(L Ls)(L은 1보다 큰 자연수)를 독출하여 인풋 버퍼(121)에 저장할 수 있다.
인풋 버퍼(121)는 비휘발성 메모리(110)보다 고속으로 데이터를 기입하거나 독출할 수 있는 메모리 로서, 예컨대 정적 랜덤 억세스 메모리(Static Random Access Memory;SRAM), 동적 랜덤 억세스 메모리(Dynamic Random Access Memory;DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register) 등과 같은 휘발성 메모리를 포함할 수도 있고, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory; RRAM), 상변화 메모리(Phase-Change Memory; PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory; MRAM), 강유전체 메모리(Ferroelectric Random Access Memory; FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory; STT-RAM) 등과 같은 비휘발성 메모리를 포함할 수도 있다. 이하에서는 설명의 편의를 위하여 인풋 버퍼(121)가 SRAM인 것으로 설명되나, 본 개시의 기술적 사상이 이에 제한되지 않는 점은 이해될 것이다.
소팅부(122)는 인풋 버퍼(121)로부터 L개의 논리 어드레스(L Ls) 중에서 M개의 논리 어드레스(M Ls)(M은 1보다 크고 L보다 작은 자연수)를 독출하여 정렬을 수행할 수 있다. 본 개시의 일 실시예에 따르면, 소팅부(122)는 M개의 논리 어드레스(M Ls)에 대해서 오름차순 또는 내림차순으로 정렬을 수행할 수 있다. 소팅부(122)는 정렬된 M개의 논리 어드레스(M Ls_s)를 머징부(123)에 저장할 수 있다. 이를 위해 머징부(123)는 하나 이상의 스택(Stack), 큐(Queue), SRAM, DRAM 등의 저장 공간을 포함할 수 있다.
소팅부(122)는 M개의 논리 어드레스(M Ls)에 대한 정렬이 완료되면 인풋 버퍼(121)로부터 다시 M개의 논리 어드레스(M Ls)를 독출하여 정렬을 수행할 수 있다. 상기와 같은 동작을 반복하여 L개의 논리 어드레스(L Ls)에 대한 정렬이 완료되면, 어드레스 소터(120)는 버퍼(140)로부터 다시 L개의 논리 어드레스(L Ls)를 독출하여 인풋 버퍼(121)에 저장할 수 있다. 소팅부(122)는 인풋 버퍼(121)에 저장된 L개의 논리 어드레스(L Ls)에 대해 정렬을 수행하여 머징부(123)에 저장할 수 있다.
머징부(123)를 소팅부(122)에 의해 저장된 논리 어드레스가 N개 이상이 된경우(N은 L 이상의 자연수), 정렬된 N개의 논리 어드레스(N Ls_s)를 FTL(130)에 출력할 수 있다. FTL(130)은 상술한 바와 같이 정렬된 N개의 논리 어드레스(N Ls_s)를 이용하여 제1 매핑 테이블(MP1) 및 제2 매핑 테이블(MP2)을 생성할 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 어드레스 소터의 동작 방법을 나타내는 순서도이다.
도2, 도 11 및 도 12를 참조하면, 어드레스 소터(120)는 버퍼(140)로부터 어드레스 유닛(AU)에 포함되는 제1 내지 L(L은 1보다 큰 자연수) 논리 어드레스를 독출할 수 있다(S310). 어드레스 소터(120)는 독출한 L개의 논리 어드레스(L Ls)를 인풋 버퍼(121)에 저장할 수 있다(S320). 소팅부(122)는 인풋 버퍼(121)로부터 제1 내지 L 논리 어드레스 중 제1 내지 M(M은 1보다 크고 L보다 작은 자연수) 논리 어드레스를 독출할 수 있다(S330). 소팅부(122)는 독출한 M개의 논리 어드레스(M Ls)를 정렬할 수 있다(S340). 본 개시의 일 실시예에 따르면, 소팅부(122)는 논리 어드레스에 따라서 오름차순 또는 내림차순으로 M개의 논리 어드레스(M Ls)를 정렬할 수 있다. 소팅부(122)는 정렬된 M개의 논리 어드레스(M Ls_s)를 머징부(123)에 저장할 수 있다(S350).
어드레스 소터(120)는 인풋 버퍼(121)에 저장된 L개의 논리 어드레스(L Ls)가 모두 독출되었는지 판단할 수 있다(S360). 인풋 버퍼(121)에 저장된 L개의 논리 어드레스(L Ls)가 모두 독출되지 않은 경우, 소팅부(122)는 인풋 버퍼(121)로부터 독출되지 않은 나머지 논리 어드레스 중 다음 M개의 논리 어드레스(M Ls)를 독출하고(S361), 독출한 M개의 논리 어드레스(M Ls)에 대해서 정렬한 뒤 머징부(123)에 저장할 수 있다(S340, S350).
인풋 버퍼(121)에 저장된 L개의 논리 어드레스(L Ls)가 모두 독출된 경우, 어드레스 소터(120)는 버퍼(140)로부터 어드레스 유닛(AU)의 모든 논리 어드레스를 독출하였는지 판단할 수 있다(S370). 어드레스 유닛(AU)의 모든 논리 어드레스가 독출되지 않은 경우, 어드레스 소터(120)는 버퍼(140)로부터 어드레스 유닛(AU)에 포함되는 논리 어드레스 중 독출되지 않은 L개의 논리 어드레스(L Ls)를 독출할 수 있다(S371). 어드레스 소터(120)는 독출한 L개의 논리 어드레스(L Ls)에 대해 정렬을 수행한 뒤 머징부(123)에 저장할 수 있다(S320 내지 S360). 어드레스 유닛(AU)의 모든 논리 어드레스가 독출된 경우, 머징부(123)는 정렬된 논리 어드레스를 FTL(130)에 출력할 수 있다(S380).
도 12와 같이, 버퍼(140)에 저장된 어드레스 유닛(AU) 중 L개의 논리 어드레스(L Ls)를 먼저 독출하여 정렬을 수행하는 것을 반복함으로써, 어드레스 소터(120)는 더 효율적으로 어드레스 유닛(AU)에 대한 정렬을 수행할 수 있다. 일 실시예에서 어드레스 소터(120)의 어드레스 유닛(AU)에 대한 정렬은 FTL(130)의 정렬 명령에 의해 수행될 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다. 자세하게는, 도 13은 스토리지 장치가 호스트로부터 복수의 어드레스 유닛을 수신한 경우 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 2 및 도 13을 참조하면, 스토리지 장치(10)는 호스트(예를 들면, 도 1의 20)로부터 복수의 어드레스 유닛(AU)을 수신할 수 있다(S410). 일 실시예에서 호스트는 복수의 쓰레드(Multiple Thread)를 가질 수 있고, 호스트는 복수의 쓰레드를 통해 복수의 어드레스 유닛(AU)을 스토리지 장치(10)에 동시에 출력할 수 있다.
어드레스 소터(120)는 복수의 어드레스 유닛(AU) 모두에 포함되는 복수의 논리 어드레스들을 일정한 규칙에 따라서 정렬할 수 있다(S420). 본 개시의 일 실시예에서 어드레스 소터(120)는 오름차순 또는 내림차순으로 복수의 논리 어드레스들을 정렬할 수 있다. FTL(130)은 정렬된 복수의 논리 어드레스들에 물리 어드레스를 순차적으로 대응시키고 어드레스 유닛(AU) 정보를 추가시킴으로서 제1 매핑 테이블(MP1)을 생성할 수 있다(S430). FTL(130)은 제1 매핑 테이블(MP1)에서 채널 및 웨이 정보를 삭제함으로서 제2 매핑 테이블(MP2)을 생성할 수 있다(S440). FTL(130)은 생성한 제2 매핑 테이블(MP2)을 비휘발성 메모리(110)에 저장할 수 있다.
수신한 복수의 어드레스 유닛(AU)은 동시에 비휘발성 메모리(110)에 기입되어 관리되지만 어드레스 유닛(AU) 별로 독출되기 때문에, 본 개시의 기술적 사상에 따른 스토리지 장치(10)의 동작 방법이 적용되기 위해서는 별도의 방법이 필요할 수 있다. 본 개시의 일 실시예에 따른 스토리지 장치(10)는 호스트로부터 복수의 쓰레드를 통해 복수의 어드레스 유닛(AU)을 수신하는 경우라도 어드레스 유닛(AU)에 관한 정보를 물리 어드레스에 추가시키고, 채널 및 웨이 정보를 생략함으로서 제2 매핑 테이블(MP2)을 저장하기 위한 비휘발성 메모리(110)의 메타 영역의 저장 공간을 절약할 수 있다. 또한, 복수의 어드레스 유닛(AU)에 대한 정보를 제2 매핑 테이블(MP2)의 물리 어드레스에 추가시킴으로서, 스토리지 장치(10)는 복수의 어드레스 유닛(AU)의 매핑 테이블을 효율적으로 관리할 수 있다.
도 14은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다. 자세하게는, 도 14는 스토리지 장치가 호스트로부터 복수의 어드레스 유닛을 수신한 경우 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다.
도 2 및 도 14를 참조하면, 스토리지 장치(10)는 호스트(예를 들면, 도 1의 20)로부터 제1 어드레스 유닛(AU1) 및 제2 어드레스 유닛(AU2)을 수신할 수 있다. 어드레스 소터(120)는 수신한 제1 어드레스 유닛(AU1) 및 제2 어드레스 유닛(AU2)을 병합한 뒤, 일정한 규칙에 따라 정렬함으로서 정렬된 어드레스 유닛(SAU)을 생성할 수 있다. 도 14에서는 어드레스 소터(120)가 논리 어드레스의 오름차순으로 제1 어드레스 유닛(AU1) 및 제2 어드레스 유닛(AU2)을 정렬한 실시예가 도시되어 있으나 본 개시의 기술적 사상은 이에 제한되지 않는다.
어드레스 소터(120)는 제1 어드레스 유닛(AU1) 및 제2 어드레스 유닛(AU2)에 대한 구분 정보를 정렬된 어드레스 유닛(SAU)에 포함할 수 있다. 즉, 제1 어드레스 유닛(AU1)에 포함된 논리 어드레스인 ‘L10, L16, L27, L5 및 L7’에는 제1 어드레스 유닛(AU1)의 구분 정보인 ‘AU1’을 포함하고, 제2 어드레스 유닛(AU2)에 포함된 논리 어드레스인 ‘L2, L26, L22, L43 및 L1’에는 제2 어드레스 유닛(AU2)의 구분 정보인 ‘AU2’를 포함할 수 있다. 이에 따라서 어드레스 소터(120)는 ‘AU2/L1, AU2/L2, AU1/L5, AU1/L7, AU1/L10, AU1/L16, AU2/L22, AU2/L26, AU1/L27 및 AU2/L43’를 정렬된 어드레스 유닛(SAU)으로서 생성할 수 있다. 어드레스 소터(120)는 정렬된 어드레스 유닛(SAU)을 FTL(130)로 출력할 수 있다.
FTL(130)은 수신한 정렬된 어드레스 유닛(SAU)을 이용하여 제1 매핑 테이블을 생성할 수 있다. 자세하게는, FTL(130)은 논리 어드레스에 순차적으로 물리 어드레스를 할당하고, 어드레스 유닛(AU)에 대한 정보를 추가함으로서 제1 매핑 테이블(MP1)을 생성할 수 있다. 도 14의 실시예에서 FTL(130)은 ‘AU2/L1’에 대해서 도 8에서 설명한 방법과 같이 병렬 기입 방법에 따른 순서에 따라 ‘PA111’을 대응시키고, 대응하는 제2 어드레스 유닛(AU2)에 대한 정보인 ‘2’를 추가시킴으로서 ‘PA1112’을 할당할 수 있다. FTL(130)은 ‘AU2/L2’에 대해서도 동일한 방식으로 병렬 기입 방법에 따른 순서에 따라 ‘PA121’을 대응시키고, 대응하는 제2 어드레스 유닛(AU2)에 대한 정보인 ‘2’를 추가시킴으로서 ‘PA1212’을 할당할 수 있다. 상기와 같은 방법으로 FTL(130)은 ‘AU1/L5’에는 ‘PA1311’을, ‘AU1/L7’에는 ‘PA1411’을, ‘AU1/L10’에는 ‘PA2111’을, ‘AU1/L16’에는 ‘PA2212’를, ‘AU2/L22’에는 ‘PA2312’를, ‘AU2/L26’에는 ‘PA2412’를, ‘AU1/L27’에는 ‘PA3111’을 ‘AU2/L43’에는 ‘PA3212’를 할당할 수 있다.
FTL(130)은 제1 매핑 테이블(MP1)을 이용하여 제2 매핑 테이블(MP2)을 생성할 수 있다. 자세하게는, FTL(130)은 제1 매핑 테이블(MP1)의 물리 어드레스에서 채널 및 웨이에 대한 정보를 삭제함으로서 제2 매핑 테이블(MP2)을 생성할 수 있다. 도 8에서 언급했듯이, 물리 어드레스에서 첫번째 숫자는 채널에 대한 정보이고, 두번째 숫자는 웨이에 대한 정보일 수 있다. 도 14의 실시예에서 FTL(130)은 ‘PA1112’에 대해서 채널과 웨이의 정보인 ‘11’을 삭제함으로서 ‘PA12’를 ‘L1’에 대한 물리 어드레스로 할당할 수 있다. 같은 방법으로 FTL(130)은 ‘L2’에는 ‘PA12’를, ‘L5’에는 ‘PA11’을, ‘L7’에는 ‘PA11’을, ‘L10’에는 ‘PA11’을, ‘L16’에는 ‘PA11’를, ‘L22’에는 ‘PA12’를, ‘L26’에는 ‘PA12’를, ‘L27’에는 ‘PA11’을 ‘L43’에는 ‘PA12’를 할당할 수 있다. 즉, 본 개시의 일 실시예에 따른 스토리지 장치(10)는 논리 어드레스에 대한 물리 어드레스로 슈퍼 블록에 대한 정보(예를 들면, ‘A’), 페이지 넘버에 대한 정보(예를 들면, ‘1’) 및 어드레스 유닛(AU)에 대한 구분 정보(예를 들면, ‘1’또는 ‘2’)만을 이용하여 제2 매핑 테이블(MP2)을 생성하고, 생성된 제2 매핑 테이블(MP2)을 비휘발성 메모리(110)에 저장할 수 있다. 이에 따라서, 제2 매핑 테이블(MP2)의 저장을 위한 비휘발성 메모리(110)의 메타 영역의 저장 공간이 절약될 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다. 자세하게는 도 15는 외부로부터 어드레스 변경 요청이 있는 경우 스토리지 장치를 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 15를 참조하면, 스토리지 장치(10)는 비휘발성 메모리(110), FTL(130) 및 버퍼(140)를 포함할 수 있다. 호스트(도 1, 20)가 비휘발성 메모리(110)에 저장된 데이터에 대해 변경할 필요가 있는 경우, 호스트는 FTL(130)에 어드레스 변경 요청과 함께 어드레스 변경 정보(ACI)를 출력할 수 있다. 어드레스 변경 정보(ACI)는 스토리지 장치(10)에 저장되어 있는 매핑 테이블에 포함되는 논리 어드레스에 대해 변경되는 정보를 포함할 수 있다. 다시 말해서, 어드레스 변경 정보(ACI)는 이미 물리 어드레스가 할당되어 있는 논리 어드레스에 대한 변경 정보를 포함할 수 있다. 본 명세서에서 어드레스 변경 정보(ACI)에 의해 변경되는 논리 어드레스를 변경 논리 어드레스라고 칭할 수 있다. 스토리지 장치(10)는 이미 물리 어드레스가 할당되어 있는 논리 어드레스에 대한 변경 요청이 있는 경우 이를 바로 반영하지 않고 추후에 다른 변경 요청들과 함께 일시에 반영할 수 있다. 이에 따라 스토리지 장치(10)는 반영하기 전 변경 사항을 모아둘 수 있는데 이를 저널(Journal)이라고 칭할 수 있다. 또한, 스토리지 장치(10)는 전력 손실이 있는 경우 저널의 손실을 방지하기 위해 저널(Journal)을 비휘발성 메모리(110) 에 저장할 수 있다.
FTL(130)은 수신한 어드레스 변경 정보(ACI)를 기초로 제1 저널(JN1)을 생성할 수 있다. 본 개시의 일 실시예에서, FTL(130)은 어드레스 변경 정보(ACI)에 포함되는 변경 논리 어드레스에 순차적으로 물리 어드레스를 할당함으로서 제1 저널(JN1)을 생성할 수 있다. 자세하게는 FTL(130)은 어드레스 변경 정보(ACI)에 포함되는 변경 논리 어드레스에 병렬 기입 방법에 따른 순서에 따라 물리 어드레스를 할당함으로서 제1 저널(JN1)을 생성할 수 있다. FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 이용하여 제1 저널(JN1)을 버퍼(140)에 저장할 수 있다. 스토리지 장치(10)는 호스트(예를 들면, 도 1의 20)로부터 제1 저널(JN1)에 포함된 변경 논리 어드레스에 대한 접근 요청을 수신하는 경우, 버퍼(140) 또는 비휘발성 메모리(110)에 저장된 매핑 테이블이 아닌 제1 저널(JN1)을 이용하여 상기 접근 요청에 대응할 수 있다.
FTL(130)은 제1 저널(JN1)을 기초로 제2 저널(JN2)을 생성할 수 있다. 본 개시의 일 실시예에 따르면, FTL(130)은 제1 저널(JN1)에서 맨 처음 변경 논리 어드레스에 대응하는 맨 처음 물리 어드레스를 제외하고 나머지를 삭제하고, 맨 처음 물리 어드레스를 변경 논리 어드레스의 개수에 대한 정보가 포함된 물리 어드레스로 변경시킴으로서 제2 저널(JN2)을 생성할 수 있다. 또한, FTL(130)은 생성한 제2 저널(JN2)을 비휘발성 메모리(110)에 저장할 수 있다. 상술한 바와 같이, 제1 저널(JN1)에 포함되는 변경 논리 어드레스에는 물리 어드레스가 순차적으로 할당되어 있으므로, 맨 처음 물리 어드레스를 아는 경우 나머지 물리 어드레스는 복원이 가능하다. 이에 따라 복원이 가능한 상기 나머지 물리 어드레스는 생략이 가능하다. 본 개시의 기술적 사상에 따르면, 제2 저널(JN2)은 맨 처음 물리 어드레스를 제외한 나머지 물리 어드레스를 생략할 수 있게 되어 제2 저널(JN2)의 데이터 량이 줄어들 수 있고, 제2 저널(JN2)을 저장하는 데 필요한 비휘발성 메모리(110)의 저장 공간이 절약될 수 있다.
도 16은 본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다. 자세하게는 도 16은 스토리지 장치가 외부로부터 어드레스 변경 요청을 수신하는 경우 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 15 및 도 16을 참조하면, 스토리지 장치(10)는 외부(예를 들면, 도 1의 호스트(20))로부터 어드레스 변경 정보(ACI)를 수신할 수 있다(S410). FTL(130)은 수신한 어드레스 변경 정보(ACI)를 기초로 제1 저널(JN1)을 생성할 수 있다(S420). FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 생성한 제1 저널(JN1)을 버퍼(140)에 기입할 수 있다(S430). 또한, FTL(130)은 제1 저널(JN1)을 기초로 제2 저널(JN2)을 생성할 수 있다. 본 개시의 일 실시예에 따르면, FTL(130)은 제1 저널(JN1)에서 맨 처음 변경 논리 어드레스에 대응하는 맨 처음 물리 어드레스를 제외한 나머지 물리 어드레스를 삭제하고, 맨 처음 물리 어드레스를 변경 논리 어드레스의 개수에 대한 정보가 포함된 물리 어드레스로 변경시킴으로서 제2 저널(JN2)을 생성할 수 있다. FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 생성한 제2 저널(JN2)을 비휘발성 메모리(110)에 기입할 수 있다(S450).
도 17은 본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다. 자세하게는 도 17은 스토리지 장치가 외부로부터 어드레스 변경 요청을 수신하는 경우 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다.
도 15 및 도 17을 참조하면, 스토리지 장치(10)는 호스트(예를 들면, 도 1의 20)로부터 ‘L44, L7, L28, L4, L10 및 L15’가 포함되는 어드레스 변경 정보(ACI)를 수신할 수 있다. FTL(130)은 수신한 어드레스 변경 정보(ACI)에 병렬 기입 방법에 따라 순차적으로 물리 어드레스를 할당함으로서 제1 저널(JN1)을 생성할 수 있다. 이에 따라 도 17의 실시예에서는, ‘L44, L7, L28, L4, L10 및 L15’에는 각각 ‘PA111, PA121, PA131, PA141, PA211 및 PA221’이 할당될 수 있다.
FTL(130)은 제1 저널(JN1)에서 맨 처음 변경 논리 어드레스에 대응하는 맨 처음 물리 어드레스를 제외한 나머지 물리 어드레스를 삭제하고, 맨 처음 물리 어드레스를 변경 논리 어드레스의 개수에 대한 정보가 포함된 물리 어드레스(PAN)로 변경함으로서 제2 저널(JN2)을 생성할 수 있다. 도 17의 실시예에서 FTL(130)은, 맨 처음 변경 논리 어드레스인 ‘L44’에 대응되는 ‘PA111’을 제외한 나머지 물리 어드레스인 ‘PA121, PA131, PA141, PA211 및 PA221’을 삭제하고, 맨 처음 물리 어드레스인 ‘PA111’을 변경 논리 어드레스의 개수인 ‘6’이 포함된 물리 어드레스(PAN) ‘PA601’로 변경함으로서 제2 저널을 생성할 수 있다. ‘PA601’은 맨 처음 물리 어드레스 ‘PA111’에서 채널과 웨이 정보인 ‘11’을 삭제하고, 변경 논리 어드레스 개수인 ‘6’을 추가시킨 물리 어드레스일 수 있다.
FTL(130)은 생성한 제2 저널(JN2)을 비휘발성 메모리(110)에 저장할 수 있다. 본 개시의 기술적 사상에 따르면, 제2 저널(JN2)은 맨 처음 물리 어드레스를 제외한 나머지 물리 어드레스를 생략할 수 있게 되어 제2 저널(JN2)의 데이터 량이 줄어들 수 있고, 제2 저널(JN2)을 저장하는 데 필요한 비휘발성 메모리(110)의 저장 공간이 절약될 수 있다.
도 18은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다.
도 18은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 순서도이다. 자세하게는, 도 18는 스토리지 장치가 제2 저널(JN2)을 이용하여 제1 저널(JN1)을 생성하는 방법을 나타내는 순서도이다.
도 15 및 도 18을 참조하면, FTL(130)은 비휘발성 메모리(110)로부터 제2 저널(JN2)을 독출하고(S510), 제2 저널(JN2)을 기초로 제1 저널(JN1)을 생성할 수 있다(S520). 본 개시의 일 실시예에 따르면, FTL(130)은 제2 저널(JN2)의 맨 처음 물리 어드레스에 포함된 슈퍼 블록에 대한 정보 및 페이지 넘버에 대한 정보를 기초로 제1 저널(JN1)의 맨 처음 물리 어드레스를 복원하고, 맨 처음 물리 어드레스에 포함된 변경 논리 어드레스의 개수에 대한 정보를 기초로 나머지 물리 어드레스를 복원할 수 있다. FTL(130)은 맨 처음 물리 어드레스에 맨 처음 기입되는 블록의 채널 및 웨이에 대한 정보를 포함시킴으로서 제1 저널(JN1)의 맨 처음 물리 어드레스를 결정하고, 병렬 기입 방법에 따른 순서에 따라 맨 처음 물리 어드레스에 포함된 변경 논리 어드레스의 개수만큼 할당시킴으로서 제1 저널(JN1)의 나머지 물리 어드레스를 결정할 수 있다.
FTL(130)은 생성된 제1 저널(JN)을 버퍼(140)에 기입하고(S530), 기입된 제1 저널(JN)을 기초로 기저장된 매핑 테이블을 업데이트할 수 있다(S540).
도 19는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예시를 나타내는 도면이다. 자세하게는, 도 19는 스토리지 장치가 제2 저널(JN2)을 이용하여 제1 저널(JN1)을 생성하는 방법의 일 예시를 나타내는 도면이다.
도 15 및 도 19를 참조하면, FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 비휘발성 메모리(110)로부터 제2 저널(JN2)을 독출할 수 있다. 제2 저널(JN2)의 맨 처음 물리 어드레스인 ‘PA601’은 슈퍼 블록에 대한 정보인 ‘A’, 변경 논리 어드레스의 개수에 대한 정보인 ‘6’및 페이지 넘버에 대한 정보인 ‘1’을 포함할 수 있다. 본 개시의 일 실시예에 따르면, 제1 저널(JN1)의 맨 처음 물리 어드레스는 각 슈퍼블록의 맨 처음 블록이 할당되기 때문에 FTL(130)은 제2 저널(JN2)의 맨 처음 물리 어드레스인 ‘PA601’에서 슈퍼 블록에 대한 정보인 ‘A’및 페이지 넘버에 대한 정보인 ‘1’에 채널에 대한 정보인 ‘1’ 및 웨이에 대한 정보인 ‘1’을 추가하여 제1 저널(JN1)의 맨 처음 물리 어드레스인 ‘PA111’을 복원할 수 있다. 또한, 제1 저널(JN1)은 병렬 기입 방법의 순서에 따라 순차적으로 물리 어드레스가 할당되므로 FTL(130)은 변경 논리 어드레스의 개수에 대한 정보인 ‘6’을 이용하여 ‘6’만큼의 물리 어드레스가 만들어질 수 있도록 채널 및 웨이를 증가시키는 방향으로 ‘PA121, PA131, PA141, PA211 및 PA221’의 나머지 물리 어드레스를 복원하고 상기 나머지 물리 어드레스를 ‘L7, L28, L4, L10 및 L15’에 각각 할당할 수 있다.
FTL(130)은 직접 또는 디바이스 컨트롤러(미도시)를 제어하여 상기 방법에 따라 복원된 제1 저널(JN1)을 버퍼(140)에 기입할 수 있다.
도 20은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 20을 참조하면, SSD 시스템(3000)은 호스트(3100) 및 SSD(3200)를 포함할 수 있다. SSD(3200)는 신호 커넥터(signal connector)를 통해 호스트(3100)와 신호를 주고 받으며, 전원 커넥터(power connector)를 통해 전원(PWR)을 입력 받을 수 있다. SSD(3200)는 SSD 컨트롤러(3210), 보조 전원 장치(3220) 및 복수의 메모리 장치들(3230, 3240, 3250)을 포함할 수 있다. 상기 복수의 메모리 장치들(3230, 3240, 3250)은 수직 적층형 NAND 플래시 메모리 장치일 수 있다. 이때, SSD(3200)는 도 1 내지 도 14에 도시된 실시예들에서 상술한 바와 같이 호스트로부터 어드레스 유닛(AU)을 수신하고, 이를 이용하여 생성한 제2 매핑 테이블(MP2)을 복수의 메모리 장치들(3230, 3240, 3250)에 저장할 수 있다. 또한, SSD(3200)는 도 15 내지 도 19에 도시된 실시예들에서 상술한 바와 같이 호스트로부터 어드레스 변경 정보(ACI)를 수신하고, 이를 이용하여 생성한 제2 저널(JN2)을 복수의 메모리 장치들(3230, 3240, 3250)에 저장할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 블록이 복수의 물리 어드레스(Physical Address)를 개별적으로 갖는 복수의 페이지들을 각각 포함하고, 상기 복수의 블록을 포함하는 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법에 있어서,
    복수의 논리 어드레스(Logical Address)를 포함하는 어드레스 유닛(Address Unit)을 수신하는 단계;
    상기 복수의 논리 어드레스를 오름차순 또는 내림차순으로 정렬함으로서 정렬된 논리 어드레스를 생성하는 단계; 및
    상기 정렬된 논리 어드레스에 상기 물리 어드레스를 순차적으로 할당함으로서 제1 매핑 테이블을 생성하는 단계;를 포함하고,
    상기 제1 매핑 테이블을 생성하는 단계는 같은 레벨의 페이지에 대해 순차적으로 데이터를 기입하는 병렬 기입 방법에 따른 기입 순서대로 상기 물리 어드레스를 할당하는 단계를 포함하는 스토리지 장치의 동작 방법
  2. 제1항에 있어서,
    상기 복수의 블록은 상기 복수의 블록 중 적어도 일부의 블록이 함께 연결되는 채널 및 상기 적어도 일부의 블록이 상기 채널에 연결되는 순서를 가르키는 웨이에 의해 구분되고,
    상기 제1 매핑 테이블에서 상기 채널 및 웨이에 대한 정보를 삭제함으로서 제2 매핑 테이블을 생성하는 단계를 더 포함하는 스토리지 장치의 동작 방법.
  3. 제2항에 있어서,
    상기 복수의 논리 어드레스 중 적어도 하나의 논리 어드레스에 대한 접근 요청을 수신하는 단계; 및
    상기 접근 요청에 대응하여 상기 정렬된 논리 어드레스를 생성하는 단계의 정렬 규칙에 따라 상기 채널 및 웨이에 대한 정보를 복원함으로서 상기 적어도 하나의 논리 어드레스에 대응하는 물리 어드레스를 복원하는 단계를 더 포함하는 스토리지 장치의 동작 방법.
  4. 제2항에 있어서,
    상기 제2 매핑 테이블을 상기 비휘발성 메모리에 저장하는 단계;를 더 포함하는 스토리지 장치의 동작 방법.
  5. 제1항에 있어서,
    상기 스토리지 장치는 적어도 하나의 버퍼를 포함하고,
    상기 제1 매핑 테이블을 상기 적어도 하나의 버퍼에 저장하는 단계;를 더 포함하는 스토리지 장치의 동작 방법.
  6. 제1항에 있어서,
    상기 어드레스 유닛을 수신하는 단계는 복수의 어드레스 유닛을 수신하는 단계를 포함하고,
    상기 물리 어드레스는 상기 복수의 어드레스 유닛에 대한 구분 정보를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  7. 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법에 있어서,
    호스트로부터 상기 비휘발성 메모리에 저장되는 데이터에 대한 어드레스 변경 정보를 수신하는 단계;
    상기 어드레스 변경 정보에 포함되는 변경 논리 어드레스에 물리 어드레스를 순차적으로 할당함으로서 제1 저널(Journal)을 생성하는 단계;
    상기 할당된 물리 어드레스에서 적어도 일부를 삭제함으로서 제2 저널을 생성하는 단계; 및
    상기 제2 저널을 상기 비휘발성 메모리에 저장하는 단계;를 포함하는 스토리지 장치의 동작 방법.
  8. 제7항에 있어서,
    상기 제2 저널을 생성하는 단계는,
    상기 변경 논리 어드레스에 포함되는 제1 논리 어드레스에 상기 변경 논리 어드레스의 개수에 대한 정보를 포함하는 제1 물리 어드레스를 대응시키는 단계; 를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  9. 제8항에 있어서,
    상기 비휘발성 메모리로부터 상기 제2 저널을 독출하는 단계;
    상기 제1 물리 어드레스에 포함되는 상기 변경 논리 어드레스의 개수에 대한 정보를 기초로 상기 변경 논리 어드레스에 대해 같은 레벨의 페이지에 대해 순차적으로 데이터를 기입하는 병렬 기입 방법에 따른 기입 순서대로 물리 어드레스를 대응시킴으로서 상기 제1 저널을 복구하는 단계; 및
    상기 제1 저널을 버퍼에 저장하는 단계;를 더 포함하는 스토리지 장치의 동작 방법.
  10. 제7항에 있어서,
    상기 스토리지 장치는 버퍼를 더 포함하고,
    상기 제1 저널을 상기 버퍼에 저장하는 단계;
    상기 변경 논리 어드레스에 대한 접근 요청을 수신하는 단계; 및
    상기 접근 요청에 대응하여 상기 제1 저널을 기초로 상기 할당된 물리 어드레스를 출력하는 단계;를 더 포함하는 스토리지 장치의 동작 방법.
KR1020170072721A 2017-06-09 2017-06-09 스토리지 장치 및 이의 동작 방법 KR102458312B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170072721A KR102458312B1 (ko) 2017-06-09 2017-06-09 스토리지 장치 및 이의 동작 방법
CN201810265475.1A CN109032968B (zh) 2017-06-09 2018-03-28 包括逻辑到物理地址映射存储设备及其操作方法
US16/002,151 US10528466B2 (en) 2017-06-09 2018-06-07 Storage devices including logical to physical address mapping and methods of operating

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170072721A KR102458312B1 (ko) 2017-06-09 2017-06-09 스토리지 장치 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20180134673A true KR20180134673A (ko) 2018-12-19
KR102458312B1 KR102458312B1 (ko) 2022-10-24

Family

ID=64563377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170072721A KR102458312B1 (ko) 2017-06-09 2017-06-09 스토리지 장치 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US10528466B2 (ko)
KR (1) KR102458312B1 (ko)
CN (1) CN109032968B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030089B2 (en) * 2018-09-28 2021-06-08 Micron Technology, Inc. Zone based reconstruction of logical to physical address translation map
TWI698744B (zh) * 2019-04-10 2020-07-11 慧榮科技股份有限公司 資料儲存裝置及邏輯至物理位址映射表之更新方法
KR20210000414A (ko) * 2019-06-25 2021-01-05 에스케이하이닉스 주식회사 메모리 시스템
CN112486403A (zh) * 2019-09-12 2021-03-12 伊姆西Ip控股有限责任公司 管理存储对象的元数据的方法、装置和计算机程序产品
KR20210143387A (ko) * 2020-05-20 2021-11-29 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
CN111597159A (zh) * 2020-07-27 2020-08-28 成都智明达电子股份有限公司 一种提高ext4文件系统读写速率的方法
CN111796306B (zh) * 2020-07-31 2023-05-02 北京中捷时代航空科技有限公司 一种导航卫星信号接收方法及接收机
WO2023173369A1 (en) * 2022-03-17 2023-09-21 Micron Technology, Inc. Sorted change log for physical page table compression

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140317374A1 (en) * 2011-03-06 2014-10-23 Micron Technology, Inc. Logical address translation
US20140334232A1 (en) * 2013-05-10 2014-11-13 Sang-Wan Nam 3d flash memory device having different dummy word lines and data storage devices including same
US9229876B2 (en) * 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US20160117256A1 (en) * 2014-10-24 2016-04-28 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
US20160210241A1 (en) * 2015-01-21 2016-07-21 HGST Netherlands B.V. Reducing a size of a logical to physical data address translation table
US9423978B2 (en) * 2013-05-08 2016-08-23 Nexgen Storage, Inc. Journal management

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340146B2 (en) 2005-03-10 2008-03-04 Yazaki Corporation Dust shutter for an optical adapter
US20100250837A1 (en) * 2008-05-28 2010-09-30 Hyperstone Gmbh Method for Addressing Page-Oriented Non-Volatile Memories
US8762661B2 (en) 2008-09-18 2014-06-24 Seagate Technology Llc System and method of managing metadata
US8488381B2 (en) 2009-02-02 2013-07-16 Samsung Electronics Co., Ltd. Non-volatile memory device having vertical structure and method of operating the same
US8935223B2 (en) 2009-04-30 2015-01-13 Oracle International Corporation Structure of hierarchical compressed data structure for tabular data
US9122579B2 (en) * 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
WO2013070273A1 (en) 2011-04-01 2013-05-16 Nexsan Corporation Journaling raid system
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US20140059279A1 (en) 2012-08-27 2014-02-27 Virginia Commonwealth University SSD Lifetime Via Exploiting Content Locality
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9454474B2 (en) * 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
US9817588B2 (en) * 2015-04-10 2017-11-14 Macronix International Co., Ltd. Memory device and operating method of same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140317374A1 (en) * 2011-03-06 2014-10-23 Micron Technology, Inc. Logical address translation
US9423978B2 (en) * 2013-05-08 2016-08-23 Nexgen Storage, Inc. Journal management
US20140334232A1 (en) * 2013-05-10 2014-11-13 Sang-Wan Nam 3d flash memory device having different dummy word lines and data storage devices including same
US9229876B2 (en) * 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US20160117256A1 (en) * 2014-10-24 2016-04-28 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
US20160210241A1 (en) * 2015-01-21 2016-07-21 HGST Netherlands B.V. Reducing a size of a logical to physical data address translation table

Also Published As

Publication number Publication date
US10528466B2 (en) 2020-01-07
US20180357164A1 (en) 2018-12-13
CN109032968A (zh) 2018-12-18
CN109032968B (zh) 2023-12-19
KR102458312B1 (ko) 2022-10-24

Similar Documents

Publication Publication Date Title
KR102458312B1 (ko) 스토리지 장치 및 이의 동작 방법
CN106776353B (zh) 存储器系统及其操作方法
US10467133B2 (en) Storage device including nonvolatile memory device and garbage collection method thereof
KR20170056765A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN109979511A (zh) 操作非易失性存储器装置的方法以及擦除数据的方法
US20180307431A1 (en) Bad Page And Bad Block Management In Memory
CN106610904B (zh) 存储系统及其操作方法
US9804785B2 (en) Nonvolatile memory adaptive to host boot up routine
KR20170061221A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170044780A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN105988938A (zh) 存储系统及其操作方法
KR20170099018A (ko) 메모리 시스템 및 그의 동작방법
US20160266955A1 (en) Memory system
KR20180062246A (ko) 재분배기를 포함하는 메모리 시스템
CN106598877A (zh) 存储器系统及该存储器系统的操作方法
KR20170061218A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN106775443B (zh) 存储器系统及其操作方法
CN106560781B (zh) 数据处理系统
CN105718378A (zh) 存储系统及其操作方法
KR20170078315A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN106126437B (zh) 存储系统
CN114067870A (zh) 存储器系统、存储器装置以及用于操作存储器装置的方法
CN106897025B (zh) 数据处理系统及其操作方法
KR20170027036A (ko) 데이터 처리 시스템
KR20170014496A (ko) 메모리 시스템 및 그의 동작방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant