KR20240059381A - 스토리지 장치 및 그 동작 방법 - Google Patents
스토리지 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20240059381A KR20240059381A KR1020220140578A KR20220140578A KR20240059381A KR 20240059381 A KR20240059381 A KR 20240059381A KR 1020220140578 A KR1020220140578 A KR 1020220140578A KR 20220140578 A KR20220140578 A KR 20220140578A KR 20240059381 A KR20240059381 A KR 20240059381A
- Authority
- KR
- South Korea
- Prior art keywords
- metadata
- memory
- core
- host interface
- storage
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims description 34
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 기술은 전자 장치에 관한 것으로, 본 기술에 따른, 부팅 동작 시 소요되는 시간을 감소시키고, 향상된 수명을 갖는 스토리지 장치는, 복수의 메모리 장치들, 상기 복수의 메모리 장치들을 각각 제어하는 복수의 코어들 및 상기 복수의 코어들 중 어느 하나의 코어를 이용하여 복수의 메타 데이터들을 상기 복수의 메모리 장치들 중 상기 어느 하나의 코어에 의해 제어되는 메모리 장치에 저장하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터가 상기 어느 하나의 코어에 의해 저장된 횟수가 임계 값을 초과하면, 상기 복수의 메타 데이터들을 상기 복수의 메모리 장치들에 저장할 코어를 변경하는 호스트 인터페이스를 포함한다.
Description
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로 본 발명은 스토리지 장치 및 그 동작 방법에 관한 것이다.
스토리지 장치는 컴퓨터나 스마트폰 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 데이터를 저장하는 메모리 장치와 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치 (Volatile Memory)와 비휘발성 메모리 장치 (Non Volatile Memory)로 구분될 수 있다.
휘발성 메모리 장치는 전원이 공급되는 동안에만 데이터를 저장하고, 전원 공급이 차단되면 저장된 데이터가 소멸되는 메모리 장치일 수 있다. 휘발성 메모리 장치에는 정적 랜덤 액세스 메모리 (Static Random Access Memory; SRAM), 동적 랜덤 액세스 메모리 (Dynamic Random Access Memory; DRAM) 등이 포함될 수 있다.
비휘발성 메모리 장치는 전원이 차단되어도 데이터가 소멸되지 않는 메모리 장치로서, 롬(Read Only Memory; ROM), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM) 및 플래시 메모리(Flash Memory) 등이 있다.
본 발명의 실시 예는 부팅 동작 시 소요되는 시간을 감소시키고, 향상된 수명을 갖는 스토리지 장치 및 그 동작 방법을 제공한다.
본 발명의 실시 예에 따른 스토리지 장치는, 복수의 메모리 장치들, 상기 복수의 메모리 장치들을 각각 제어하는 복수의 코어들 및 상기 복수의 코어들 중 어느 하나의 코어를 이용하여 복수의 메타 데이터들을 상기 복수의 메모리 장치들 중 상기 어느 하나의 코어에 의해 제어되는 메모리 장치에 저장하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터가 상기 어느 하나의 코어에 의해 저장된 횟수가 임계 값을 초과하면, 상기 복수의 메타 데이터들을 상기 복수의 메모리 장치들에 저장할 코어를 변경하는 호스트 인터페이스를 포함한다.
본 발명의 실시 예에 따른 스토리지 장치는, 제1 메모리 장치, 제2 메모리 장치, 상기 제1 메모리 장치를 제어하는 제1 코어, 상기 제2 메모리 장치를 제어하는 제2 코어 및 상기 제1 코어를 이용하여 상기 제1 메모리 장치에 복수의 메타 데이터들을 저장하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터가 상기 제1 코어에 의해 저장된 횟수가 임계 값을 초과하면, 상기 제2 코어를 이용하여 상기 제2 메모리 장치에 상기 복수의 메타 데이터들을 저장하는 호스트 인터페이스를 포함한다.
본 발명의 실시 예에 따른 스토리지 장치는, 복수의 메모리 영역들을 포함하는 메모리 장치, 상기 복수의 메모리 영역들을 각각 제어하는 복수의 메모리 영역 제어부들 및 복수의 메타 데이터들 중 제1 메타 데이터의 저장 횟수를 기초로 상기 복수의 메모리 영역 제어부들 중 상기 복수의 메타 데이터들을 상기 복수의 메모리 영역들에 저장할 메모리 영역 제어부를 선택하는 호스트 인터페이스를 포함한다.
본 기술에 따르면, 부팅 동작 시 소요되는 시간을 감소시키고, 향상된 수명을 갖는 스토리지 장치 및 그 동작 방법이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 스토리지 장치를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 어느 하나의 코어를 이용하여 복수의 메타 데이터들을 저장하는 예를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 복수의 메타 데이터들을 저장할 코어를 변경하는 예를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 최근에 저장된 제1 메타 데이터를 결정하는 예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 제1 메타 데이터를 제외한 나머지 메타 데이터들을 리드하는 예를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시 예에 따른 부팅 동작 시 복수의 메타 데이터들을 리드하는 방법을 설명하기 위한 순서도이다.
도 8은 본 발명의 일 실시 예에 스토리지 장치의 다른 예를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 어느 하나의 코어를 이용하여 복수의 메타 데이터들을 저장하는 예를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 복수의 메타 데이터들을 저장할 코어를 변경하는 예를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 최근에 저장된 제1 메타 데이터를 결정하는 예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 제1 메타 데이터를 제외한 나머지 메타 데이터들을 리드하는 예를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시 예에 따른 부팅 동작 시 복수의 메타 데이터들을 리드하는 방법을 설명하기 위한 순서도이다.
도 8은 본 발명의 일 실시 예에 스토리지 장치의 다른 예를 설명하기 위한 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시 예에 따른 스토리지 장치(50)를 설명하기 위한 도면이다.
도 1을 참조하면, 스토리지 장치(50)는 복수의 메모리 장치들(100-1~100-n) 및 복수의 메모리 장치들(100-1~100-n)의 동작을 제어하는 메모리 컨트롤러(200)를 포함할 수 있다. 스토리지 장치(50)는 휴대폰, 스마트폰, MP3 플레이어, 랩탑 컴퓨터, 데스크탑 컴퓨터, 게임기, TV, 테블릿 PC 또는 차량용 인포테인먼트(in-vehicle infotainment) 시스템 등과 같은 호스트(300)의 제어에 따라 데이터를 저장하는 장치일 수 있다.
스토리지 장치(50)는 호스트(300)와의 통신 방식에 따라서 다양한 종류의 스토리지 장치들 중 어느 하나로 제조되거나 다양한 종류의 패키지(package) 형태들 중 어느 하나로 제조될 수 있다.
복수의 메모리 장치들(100-1~100-n)들은 데이터를 저장할 수 있다. 복수의 메모리 장치들(100-1~100-n)은 데이터를 저장하는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이(미도시)를 포함할 수 있다. 메모리 셀들은 싱글 레벨 셀(Single Level Cell; SLC), 멀티 레벨 셀(Multi Level Cell; MLC), 트리플 레벨 셀(Triple Level Cell; TLC) 또는 쿼드 레벨 셀(Quad Level Cell; QLC)로 구성될 수 있다.
메모리 셀 어레이(미도시)는 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록은 복수의 메모리 셀들을 포함할 수 있다. 하나의 메모리 블록은 복수의 페이지들을 포함할 수 있다. 실시 예에서, 페이지는 복수의 메모리 장치들(100-1~100-n)에 데이터를 저장하거나, 복수의 메모리 장치들(100-1~100-n)에 저장된 데이터를 리드하는 단위일 수 있다. 메모리 블록은 데이터를 지우는 단위일 수 있다.
복수의 메모리 장치들(100-1~100-n)은 메모리 컨트롤러(200)로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 메모리 셀 어레이 중 어드레스에 의해 선택된 영역에 대해 커맨드(CMD)가 지시하는 동작을 수행할 수 있다.
메모리 컨트롤러(200)는 스토리지 장치(50)의 전반적인 동작을 제어할 수 있다.
스토리지 장치(50)에 전원이 인가되면, 메모리 컨트롤러(200)는 펌웨어(firmware, FW)를 실행할 수 있다. 복수의 메모리 장치들(100-1~100-n)이 플래시 메모리 장치인 경우, 펌웨어(FW)는 호스트(300)와의 통신을 제어하는 호스트 인터페이스 레이어(Host Interface Layer, HIL), 호스트(300)와 복수의 메모리 장치들(100-1~100-n) 간의 통신을 제어하는 플래시 변환 레이어(Flash Translation Layer, FTL) 및 복수의 메모리 장치들(100-1~100-n)과의 통신을 제어하는 플래시 인터페이스 레이어(Flash Interface Layer, FIL)를 포함할 수 있다.
실시 예에서, 메모리 컨트롤러(200)는 호스트(300)로부터 데이터와 논리 블록 어드레스(Logical Block Address, LBA)를 입력 받고, 논리 블록 어드레스를 복수의 메모리 장치들(100-1~100-n)에 포함된 데이터가 저장될 메모리 셀들의 주소를 나타내는 물리 블록 어드레스(Physical Block Address, PBA)로 변환할 수 있다. 본 명세서에서 논리 블록 어드레스(LBA)와 “논리 어드레스” 또는 “논리적 어드레스”는 같은 의미로 사용될 수 있다. 본 명세서에서 물리 블록 어드레스(PBA)와 “물리 어드레스” 또는 “물리적 어드레스”는 같은 의미로 사용될 수 있다.
메모리 컨트롤러(200)는 호스트(300)의 요청(request)에 따라 쓰기 동작, 리드 동작 또는 소거 동작 등을 수행하도록 해당 동작에 대응되는 커맨드, 어드레스 또는 데이터를 복수의 메모리 장치들(100-1~100-n)에 제공할 수 있다.
일 실시 예에서, 메모리 컨트롤러(200)는 채널을 통해 복수의 메모리 장치들(100-1~100-n)과 연결될 수 있다.
실시 예에서, 메모리 컨트롤러(200)는 동작 성능의 향상을 위해 복수의 메모리 장치들(100-1~100-n) 을 인터리빙 방식에 따라 제어할 수 있다. 인터리빙 방식은 적어도 둘 이상의 복수의 메모리 장치들(100-1~100-n)에 대한 동작이 중첩되도록 제어하는 방식일 수 있다.
일 실시 예에서, 메모리 컨트롤러(200)는 호스트 인터페이스(210), 복수의 코어들(220-1~220-n) 및 메모리 인터페이스(230)를 포함할 수 있다.
호스트 인터페이스(210)는 호스트(300)와 메모리 컨트롤러(200)의 통신을 제어할 수 있다. 예를 들어, 호스트 인터페이스(210)는 호스트 인터페이스 레이어를 구동시킬 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 복수의 메타 데이터들을 기초로 호스트(300)와 메모리 컨트롤러(200)의 통신을 제어할 수 있다.
이때, 메타 데이터는 사용자 데이터를 관리하기 위한 데이터 또는 복수의 메모리 장치들(100-1~100-n)을 관리하기 위해 스토리지 장치(50)에서 생성되는 데이터를 나타낼 수 있다. 예를 들어, 메타 데이터는 논리 어드레스를 물리 어드레스로 변환시키는 데 이용되는 맵핑 정보, 복수의 메모리 장치들(100-1~100-n)의 메모리 블록들에 포함된 페이지들의 정보를 나타내는 메모리 블록 정보, 호스트(300)에서 삭제된 데이터를 나타내는 트림 데이터, 및 기타 복수의 메모리 장치들(100-1~100-n)의 메모리 공간을 관리하기 위한 다양한 정보들 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, 메타 데이터는 메타 데이터에 대한 메타 데이터를 포함하는 개념일 수 있다. 하나의 메타 데이터의 크기가 메모리 장치에 저장되는 단위보다 큰 경우 복수의 메타 데이터들로 나누어 생성될 수 있다. 또한, 복수의 메타 데이터들은 메타 데이터에 포함된 정보의 종류에 따라 생성될 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 복수의 코어들(220-1~220-n)을 이용하여, 복수의 메타 데이터들을 복수의 메모리 장치들(100-1~100-n)에 저장하거나 복수의 메모리 장치들(100-1~100-n)에 저장된 복수의 메타 데이터들을 리드할 수 있다.
일 실시 예에서, 복수의 메타 데이터들 중 제1 메타 데이터는 복수의 메타 데이터들 각각의 저장 횟수를 포함하는 메타 데이터일 수 있다. 즉, 복수의 메타 데이터들 각각의 저장 횟수는 제1 메타 데이터에만 저장될 수 있다. 이때, 저장 횟수는 메타 데이터가 코어의 제어에 따라 메모리 장치에 저장된 횟수를 의미할 수 있다. 실시 예에 따라, 저장 횟수는 “쓰기 횟수”, “프로그램 횟수” 또는 “업데이트 횟수” 등으로 지칭될 수 있다. 또한, 제1 메타 데이터는 복수의 메모리 장치들(100-1~100-n)로부터 인터리빙 방식에 따라 리드 가능한 크기로 저장될 수 있다. 예를 들어, 하나의 코어가 메모리 장치에 저장된 데이터를 페이지 단위로 리드하여 호스트 인터페이스(210)로 전달하는 것으로 가정한다면, 제1 메타 데이터는 하나의 페이지에 대응되는 크기로 저장될 수 있다. 이 경우, 호스트 인터페이스(210)는 복수의 코어들(220-1~220-n)을 이용하여 복수의 메모리 장치들(100-1~100-n)에 저장된 제1 메타 데이터들을 인터리빙 방식에 따라 리드할 수 있다.
본 발명의 실시 예에 따르면, 가장 최근에 저장된 제1 메타 데이터를 결정한 뒤 결정된 제1 메타 데이터에 포함된 저장 횟수를 기초로 나머지 메타 데이터들 각각이 저장된 메모리 장치를 파악할 수 있다. 이때, 가장 최근에 저장된 제1 메타 데이터란 가장 최근에 업데이트된 제1 메타 데이터를 의미할 수 있다.
복수의 코어들(220-1~220-n)은 각각 복수의 메모리 장치들(100-1~100-n)을 제어할 수 있다. 예를 들어, 제1 코어(220-1)는 제1 메모리 장치(100-1)를 제어하고, 제2 코어(220-2)는 제2 메모리 장치(100-2)를 제어하고, 제n 코어(220-n)는 제n 메모리 장치(100-n)를 제어할 수 있다. 복수의 코어들(220-1~220-n)은 각각 호스트 인터페이스(210)를 통해 호스트(300)로부터 입력되는 요청에 따라 복수의 메모리 장치들(100-1~100-n)을 제어할 수 있다. 복수의 코어들(220-1~220-n)은 각각 플래시 변환 레이어를 구동할 수 있다. 복수의 코어들(220-1~220-n)은 호스트(300)로부터 입력된 논리 어드레스를 물리 어드레스로 변환하고, 호스트(300)의 요청에 대응되는 커맨드를 생성할 수 있다. 복수의 코어들(220-1~220-n)은 메모리 인터페이스(230)를 통해 복수의 메모리 장치들(100-1~100-n)로 커맨드, 어드레스 또는 데이터를 제공하거나 복수의 메모리 장치들(100-1~100-n)로부터 리드된 데이터를 수신할 수 있다.
메모리 인터페이스(230)는 복수의 코어들(220-1~220-n)과 복수의 메모리 장치들(100-1~100-n) 사이의 통신을 제어할 수 있다. 예를 들어, 메모리 인터페이스(230)는 플래시 인터페이스 레이어를 구동시킬 수 있다.
호스트(300)는 다양한 통신 방식들 중 적어도 하나를 이용하여 스토리지 장치(50)와 통신할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 어느 하나의 코어를 이용하여 복수의 메타 데이터들을 저장하는 예를 설명하기 위한 도면이다.
도 2를 참조하면, 호스트 인터페이스(210)는 복수의 코어들(220-1~220-n) 중 제1 코어(220-1)를 이용하여 복수의 메타 데이터들을 제1 코어(220-1)에 의해 제어되는 제1 메모리 장치(100-1)에 저장할 수 있다. 호스트 인터페이스(210)는 저장하려는 메타 데이터와 메타 데이터의 저장을 요청하기 위한 쓰기 요청(WRITE_REQ)을 제1 코어(220-1)로 제공할 수 있다. 제1 코어(220-1)는 쓰기 요청(WRITE_REQ)에 대응되는 쓰기 커맨드(WRITE_CMD)를 생성하고, 저장하려는 메타 데이터와 쓰기 커맨드(WRITE_CMD)를 제1 메모리 장치(100-1)로 제공할 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 제1 코어(220-1)를 이용하여 제1 메타 데이터가 아닌 다른 메타 데이터를 저장하는 경우, 제1 메타 데이터를 함께 저장할 수 있다. 예를 들어, 호스트 인터페이스(210)는 제1 메타 데이터와 상이한 제2 메타 데이터를 저장하는 경우, 제1 메타 데이터를 함께 저장할 수 있다. 호스트 인터페이스(210)는 제2 메타 데이터뿐만 아니라 제1 메타 데이터에 대한 쓰기 요청도 제1 코어(220-1)에 제공할 수 있다. 제1 코어(220-1)는 제1 메타 데이터 및 제2 메타 데이터를 저장하도록 제1 코어(220-1)를 제어할 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 복수의 메타 데이터들을 저장하는 경우, 제1 메타 데이터에 포함된 복수의 메타 데이터들 각각의 저장 횟수를 증가시킬 수 있다. 예를 들어, 호스트 인터페이스(210)는 제1 코어(220-1)를 이용하여 제1 메모리 장치(100-1)에 제1 메타 데이터를 저장하는 경우, 제1 코어(220-1)로 제1 메타 데이터를 제공하기 전에 제1 메타 데이터에 포함된 제1 메타 데이터의 저장 횟수를 증가시킨 뒤, 제1 메타 데이터를 제1 코어(220-1)로 제공할 수 있다.
제1 메타 데이터가 아닌 나머지 메타 데이터들을 저장하려는 경우, 호스트 인터페이스(210)는 제1 메타 데이터에 포함된 나머지 메타 데이터들의 저장 횟수를 증가시킬 수 있다. 예를 들어, 호스트 인터페이스(210)는 제1 코어(220-1)를 이용하여 제1 메모리 장치(100-1)에 제2 메타 데이터를 저장하는 경우, 제1 메타 데이터에 포함된 제2 메타 데이터의 저장 횟수를 증가시킬 수 있다. 또한, 제1 메타 데이터는 나머지 메타 데이터들이 저장될 때 함께 저장되기 때문에, 호스트 인터페이스(210)는 제1 메타 데이터에 포함된 제1 메타 데이터의 저장 횟수도 증가시킬 수 있다. 제1 메타 데이터는 제1 메타 데이터 및 제2 메타 데이터의 저장 횟수가 증가된 뒤, 제1 코어(220-1)로 제공될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 복수의 메타 데이터들을 저장할 코어를 변경하는 예를 설명하기 위한 도면이다.
도 3을 참조하면, 호스트 인터페이스(210)는 제1 메타 데이터가 어느 하나의 코어에 의해 저장된 횟수를 기초로 복수의 메타 데이터들에 대한 쓰기 동작을 수행할 코어를 결정할 수 있다.
일 실시 예에서, 제1 메타 데이터가 어느 하나의 코어에 의해 저장된 횟수가 임계 값을 초과하면, 복수의 메타 데이터들을 복수의 메모리 장치들에 저장할 코어를 변경할 수 있다. 예를 들어, 호스트 인터페이스(210)는 제1 메타 데이터가 제1 코어(220-1)에 의해 저장된 횟수가 임계 값을 초과하면, 복수의 메타 데이터들을 저장할 코어를 제2 코어(220-2)로 변경할 수 있다. 이후, 호스트 인터페이스(210)는 복수의 메타 데이터들에 대한 쓰기 요청을 제2 코어(220-2)로 제공할 수 있다. 또한, 호스트 인터페이스(210)는 제1 메타 데이터가 제2 코어(220-2)에 의해 저장된 횟수가 임계 값을 초과하면, 복수의 메타 데이터들을 저장할 제1 코어(220-1) 및 제2 코어(220-2)가 아닌 다른 코어로 변경할 수 있다. 이와 같이, 호스트 인터페이스(210)는 특정 코어에 의해 제1 메타 데이터의 저장 횟수가 임계 값을 초과할 때마다 메타 데이터에 대한 쓰기 요청을 제공할 코어를 변경할 수 있다. 모든 코어들에 의해 제1 메타 데이터의 저장 횟수가 임계 값을 초과하는 경우, 호스트 인터페이스(210)는 다시 제1 코어(220-1)부터 메타 데이터에 대한 쓰기 요청을 제공할 수 있다. 한편, 상술한 예에서는 코어의 번호에 따라 코어가 변경되는 것으로 설명하였으나, 반드시 이에 한정되는 것은 아니고, 코어의 순서가 변경되는 방식은 실시 예에 따라 다양하게 설정될 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 복수의 메모리 장치들(100-1~100-n)의 수명을 기초로 임계 값을 조절할 수 있다. 예를 들어, 임계 값이 커질수록 코어를 변경하는 빈도는 낮아질 수 있다. 이 경우, 스토리지 장치(50)의 동작 속도가 빨라지지만, 메모리 장치들의 마모도의 불균형으로 인하여 수명 측면에서 손해가 발생될 수 있다. 이와 달리, 임계 값이 작을수록 코어를 변경하는 빈도가 높아질 수 있다. 이 경우, 메모리 장치들의 마모도가 균형적으로 소모되어 수명의 로스(loss)를 줄일 수 있지만, 스토리지 장치(50)의 동작 속도가 느려질 수 있다. 따라서, 호스트 인터페이스(210)는 복수의 메모리 장치들(100-1~100-n)의 수명 기대치가 높을수록 임계 값이 커지도록 조절할 수 있다. 또한, 호스트 인터페이스(210)는 복수의 메모리 장치들(100-1~100-n)의 수명 기대치가 낮을수록 임계 값이 작아지도록 조절할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 최근에 저장된 제1 메타 데이터를 결정하는 예를 설명하기 위한 도면이다.
도 4를 참조하면, 호스트 인터페이스(210)는 부팅 동작 시 복수의 코어들(220-1~220-n)을 이용하여 복수의 메모리 장치들(100-1~100-n)로부터 복수의 메타 데이터들을 리드할 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 복수의 메모리 장치들(100-1~100-n) 중 제1 메타 데이터가 저장된 메모리 장치들로부터 리드된 제1 메타 데이터들을 수신할 수 있다. 구체적으로, 호스트 인터페이스(210)는 복수의 메타 데이터들에 대한 쓰기 동작을 수행하였던 코어들을 이용하여 해당 코어들에 의해 제어되는 메모리 장치들 각각에 저장된 제1 메타 데이터들을 리드할 수 있다. 도 4에서는, 복수의 코어들(220-1~220-n)이 모두 복수의 메타 데이터들에 대한 쓰기 동작을 수행한 것으로 가정한다. 예를 들어, 호스트 인터페이스(210)는 복수의 코어들(220-1~220-n)로 제1 메타 데이터에 대한 리드 요청(READ_REQ)을 제공할 수 있다. 복수의 코어들(220-1~220-n)은 각각 리드 요청(READ_REQ)에 대응되는 리드 커맨드(READ_CMD)를 생성하고, 리드 커맨드(READ_CMD)를 복수의 메모리 장치들(100-1~100-n)로 제공할 수 있다. 복수의 메모리 장치들(100-1~100-n)로부터 리드된 제1 메타 데이터들은 복수의 코어들(220-1~20-n)을 통해 호스트 인터페이스(210)로 전달될 수 있다. 일 실시 예에서, 호스트 인터페이스(210)는 인터리빙 방식에 따라 복수의 메모리 장치들(100-1~100-n)에 저장된 제1 메타 데이터들을 리드할 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 리드된 제1 메타 데이터들의 저장 횟수를 기초로 리드된 제1 메타 데이터들 중 가장 최근에 저장된 제1 메타 데이터를 결정할 수 있다. 리드된 제1 메타 데이터들은 복수의 메모리 장치들(100-1~100-n) 각각의 리드 속도에 따라 호스트 인터페이스(210)로 전달되는 순서가 상이할 수 있다. 예를 들어, 메모리 장치의 리드 속도가 빠르면, 해당 메모리 장치로부터 리드된 제1 메타 데이터가 우선적으로 호스트 인터페이스(210)로 전달될 수 있다. 이와 달리, 메모리 장치의 리드 속도가 느리면, 해당 메모리 장치로부터 리드된 제1 메타 데이터는 다른 제1 메타 데이터들보다 느리게 호스트 인터페이스(210)로 전달될 수 있다. 호스트 인터페이스(210)는 순차적으로 수신되는 제1 메타 데이터들의 저장 횟수를 기초로 가장 최근에 저장된 제1 메타 데이터를 결정할 수 있다. 도 4에서는, 제1 메모리 장치(100-1)로부터 리드된 제1 메타 데이터가 가장 빠르게 호스트 인터페이스(210)로 전달된 것으로 가정한다.
일 실시 예에서, 호스트 인터페이스(210)는 리드된 제1 메타 데이터들 중 임계 값의 정수배가 아닌 저장 횟수를 가진 제1 메타 데이터를 가장 최근에 저장된 제1 메타 데이터로 결정할 수 있다. 예를 들어, 임계 값이 5이고, 제1 코어(220-1)를 통해 수신된 제1 메타 데이터의 저장 횟수가 3이라면, 호스트 인터페이스(210)는 제1 코어(220-1)를 통해 수신된 제1 메타 데이터를 가장 최근에 저장된 제1 메타 데이터로 결정할 수 있다. 즉, 제1 코어(220-1)를 통해 수신된 제1 메타 데이터의 저장 횟수가 임계 값의 정수배가 아니라면, 제1 코어(220-1)가 현재 복수의 메타 데이터들에 대한 쓰기 동작을 수행하는 코어로 판단될 수 있다. 따라서, 제1 코어(220-1)를 통해 수신된 제1 메타 데이터가 가장 최근에 저장된 제1 메타 데이터로 판단될 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 임계 값의 정수배가 아닌 저장 횟수를 가진 제1 메타 데이터가 존재하지 않으면, 리드된 제1 메타 데이터들 중 임계 값의 정수배이면서 가장 많은 저장 횟수를 가진 제1 메타 데이터를 가장 최근에 저장된 제1 메타 데이터로 결정할 수 있다. 예를 들어, 호스트 인터페이스(210)는 제1 코어(220-1)를 통해 수신된 제1 메타 데이터가 임계 값의 정수배인 경우, 다른 코어를 통해 수신된 제1 메타 데이터가 임계 값의 정수배인지 여부를 판단할 수 있다. 이때, 복수의 코어들(220-1~220-n)을 통해 수신된 제1 메타 데이터들이 모두 임계 값의 정수배인 경우, 가장 많은 저장 횟수를 가진 제1 메타 데이터를 가장 최근에 저장된 제1 메타 데이터로 결정할 수 있다. 즉, 모든 제1 메타 데이터들이 임계 값의 정수배라면, 복수의 메타 데이터들에 대한 쓰기 동작을 수행할 코어를 변경해야하는 시점에 부팅 동작이 수행되는 것으로 판단될 수 있다. 이 경우, 가장 많은 저장 횟수를 가진 제1 메타 데이터가 가장 최근에 저장된 제1 메타 데이터인 것으로 판단될 수 있다.
도 5는 본 발명의 일 실시 예에 따른 제1 메타 데이터를 제외한 나머지 메타 데이터들을 리드하는 예를 설명하기 위한 도면이다.
도 5를 참조하면, 호스트 인터페이스(210)는 가장 최근에 저장된 제1 메타 데이터에 포함된 복수의 메타 데이터들 각각의 저장 횟수를 기초로 나머지 데이터들 각각이 가장 최근에 저장된 메모리 장치를 결정할 수 있다. 호스트 인터페이스(210)는 결정된 메모리 장치를 제어하는 코어들을 이용하여 나머지 메타 데이터들을 각각 리드할 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 가장 최근에 저장된 제1 메타 데이터에 포함된 제2 메타 데이터의 저장 횟수를 기초로 제2 메타 데이터가 가장 최근에 저장된 메모리 장치를 결정할 수 있다. 예를 들어, 호스트 인터페이스(210)는 가장 최근에 저장된 제1 메타 데이터에 포함된 제1 메타 데이터의 저장 횟수, 제2 메타 데이터의 저장 횟수, 임계 값 등을 변수로 이용하여 모듈러 연산 방식에 따라 제2 메타 데이터가 가장 최근에 저장된 메모리 장치를 결정할 수 있다. 제2 메타 데이터가 가장 최근에 저장된 메모리 장치가 제2 메모리 장치(100-2)인 것으로 판단되면, 호스트 인터페이스(210)는 제2 코어(220-2)를 이용하여 제2 메모리 장치(100-2)로부터 제2 메타 데이터를 리드할 수 있다.
또한, 호스트 인터페이스(210)는 가장 최근에 저장된 제1 메타 데이터에 포함된 제1 메타 데이터의 저장 횟수, 제2 메타 데이터의 저장 횟수, 임계 값 등을 변수로 이용하여 모듈러 연산 방식에 따라 제3 메타 데이터가 가장 최근에 저장된 메모리 장치를 결정할 수 있다. 제3 메타 데이터가 가장 최근에 저장된 메모리 장치가 제n 메모리 장치(100-n)인 것으로 판단되면, 호스트 인터페이스(210)는 제n 코어(220-n)를 이용하여 제n 메모리 장치(100-n)로부터 제3 메타 데이터를 리드할 수 있다.
상술한 예에서는, 제2 메타 데이터 및 제3 메타 데이터를 리드한 예만 설명하였으나, 다른 메타 데이터들을 리드하는 방식도 동일하게 적용될 수 있다.
따라서, 본 발명의 실시 예에 따르면, 최근에 저장된 제1 메타 데이터를 결정한 뒤 나머지 메타 데이터들을 결정된 제1 메타 데이터에 포함된 각 메타 데이터의 저장 횟수를 기초로 나머지 메타 데이터들을 리드함으로써, 나머지 메타 데이터들에 대한 리드 횟수를 줄여 스토리지 장치(50)의 성능을 향상시킬 수 있다.
도 6은 본 발명의 일 실시 예에 따른 스토리지 장치의 동작 방법을 설명하기 위한 순서도이다.
도 6에 도시된 도면은 예를 들어, 도 1에 도시된 스토리지 장치(50)에 의해 수행될 수 있다.
도 6을 참조하면, 단계 S601에서, 스토리지 장치(50)는 새로운 메타 데이터를 생성하거나 기존의 메타 데이터를 업데이트하는 경우, 해당 메타 데이터에 대한 쓰기 요청을 생성할 수 있다. 스토리지 장치(50)는 쓰기 요청을 생성한 시점에 복수의 메타 데이터들에 대한 쓰기 동작을 수행하는 코어가 제1 코어(220-1)인 것으로 가정한다.
단계 S603에서, 스토리지 장치(50)는 제1 메타 데이터가 제1 코어(220-1)에 의해 저장된 횟수가 임계 값을 초과하는지 여부를 판단할 수 있다.
단계 S603에서의 판단 결과에 따라, 제1 메타 데이터가 제1 코어(220-1)에 의해 저장된 횟수가 임계 값을 초과하지 않으면, 스토리지 장치(50)는 단계 S605를 수행할 수 있다. 단계 S605에서, 스토리지 장치(50)는 제1 코어(220-1)를 이용하여 쓰기 요청된 메타 데이터를 제1 코어(220-1)에 의해 제어되는 제1 메모리 장치(100-1)에 저장할 수 있다.
단계 S603에서의 판단 결과에 따라, 제1 메타 데이터가 제1 코어(220-1)에 의해 저장된 횟수가 임계 값을 초과하면, 스토리지 장치(50)는 단계 S607을 수행할 수 있다. 단계 S607에서, 스토리지 장치(50)는 메타 데이터에 대한 쓰기 동작을 수행할 코어를 제2 코어(220-2)로 변경할 수 있다.
단계 S609에서, 스토리지 장치(50)는 제2 코어(220-2)를 이용하여 쓰기 요청된 메타 데이터를 제2 코어(220-2)에 의해 제어되는 제2 메모리 장치(100-2)에 저장할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 부팅 동작 시 복수의 메타 데이터들을 리드하는 방법을 설명하기 위한 순서도이다.
도 7에 도시된 도면은 예를 들어, 도 1에 도시된 스토리지 장치(50)에 의해 수행될 수 있다.
도 7을 참조하면, 단계 S701에서, 스토리지 장치(50)는 복수의 메모리 장치들(100-1~100-n)로부터 제1 메타 데이터들을 리드할 수 있다. 예를 들어, 스토리지 장치(50)는 제1 메타 데이터에 대한 쓰기 동작을 수행한 코어들에 의해 제어되는 메모리 장치들로부터 제1 메타 데이터들을 리드할 수 있다.
단계 S703에서, 스토리지 장치(50)는 리드된 제1 메타 데이터들 중 임계 값의 정수배가 아닌 저장 횟수를 가진 제1 메타 데이터가 존재하는지 여부를 판단할 수 있다.
단계 S703에서의 판단 결과에 따라, 임계 값의 정수배가 아닌 저장 횟수를 가진 제1 메타 데이터가 존재하면, 단계 S705에서, 스토리지 장치(50)는 해당 제1 메타 데이터를 최근에 저장된 제1 메타 데이터로 결정할 수 있다.
이와 달리, 단계 S703에서의 판단 결과에 따라, 임계 값의 정수배가 아닌 저장 횟수를 가진 제1 메타 데이터가 존재하지 않으면, 단계 S707에서, 스토리지 장치(50)는 가장 많은 저장 횟수를 갖는 제1 메타 데이터를 최근에 저장된 제1 메타 데이터로 결정할 수 있다.
단계 S709에서, 스토리지 장치(50)는 최근에 저장된 제1 메타 데이터를 결정한 뒤, 최근에 저장된 제1 메타 데이터의 저장 횟수를 기초로 나머지 메타 데이터들을 리드할 수 있다.
도 8은 본 발명의 일 실시 예에 스토리지 장치의 다른 예를 설명하기 위한 도면이다.
도 8에 도시된 스토리지 장치(800)는 도 1의 스토리지 장치(50)와 다르게 복수의 코어들(220-1~220-n)이 아닌 하나의 코어에 복수의 메모리 영역 제어부들(221)이 포함된 예를 설명하기 위한 도면이다.
도 8을 참조하면, 메모리 장치(100)는 복수의 메모리 영역들(101)을 포함할 수 있다. 메모리 영역(101)은 복수의 페이지들, 복수의 메모리 블록들 등과 같이 데이터를 저장하는 영역을 나타낼 수 있다. 도 1의 복수의 메모리 장치들(100-1~100-n)에 대한 설명은 도 8의 메모리 장치(100)에도 동일하게 적용될 수 있다. 또한, 도 1 내지 7에서의 메모리 컨트롤러(200), 호스트 인터페이스(210) 및 메모리 인터페이스(230)에 대한 설명은 도 8의 메모리 컨트롤러(200), 호스트 인터페이스(210) 및 메모리 인터페이스(230)에도 동일하게 적용될 수 있다.
일 실시 예에서, 복수의 메모리 영역 제어부들(221)은 각각 플래시 변환 레이어를 구동할 수 있다.
도 1에서는 호스트 인터페이스(210)가 복수의 코어들(220-1~220-n)을 이용하여 복수의 메타 데이터들을 제어하는 예를 도시하였지만, 도 8에서는 호스트 인터페이스(210)가 복수의 메모리 영역 제어부들(221)을 이용하여 복수의 메타 데이터들을 제어하는 예를 도시하였다. 따라서, 도 1 내지 7에서의 복수의 코어들(220-1~220-n)에 대한 설명들 중 메타 데이터들과 관련된 설명은 도 8의 복수의 메모리 영역 제어부들(221)에도 동일하게 적용될 수 있다.
예를 들어, 호스트 인터페이스(210)는 제1 메타 데이터의 저장 횟수를 기초로 복수의 메모리 영역 제어부들(221) 중 어느 하나의 메모리 영역 제어부(221)를 이용하여 복수의 메타 데이터들을 어느 하나의 메모리 영역 제어부(221)에 의해 제어되는 메모리 영역(101)에 저장할 수 있다.
일 실시 예에서, 호스트 인터페이스(210)는 부팅 동작 시 가장 최근에 저장된 제1 메타 데이터에 포함된 복수의 메타 데이터들 각각의 저장 횟수를 기초로 나머지 메타 데이터들 각각이 가장 최근에 저장된 메모리 영역(101)을 파악하여 리드할 수 있다.
50, 800: 스토리지 장치
100-1~100-n: 복수의 메모리 장치들
200: 메모리 컨트롤러
210: 호스트 인터페이스
220-1~220-n: 복수의 코어들
230: 메모리 인터페이스
300: 호스트
100-1~100-n: 복수의 메모리 장치들
200: 메모리 컨트롤러
210: 호스트 인터페이스
220-1~220-n: 복수의 코어들
230: 메모리 인터페이스
300: 호스트
Claims (18)
- 복수의 메모리 장치들;
상기 복수의 메모리 장치들을 각각 제어하는 복수의 코어들; 및
상기 복수의 코어들 중 어느 하나의 코어를 이용하여 복수의 메타 데이터들을 상기 복수의 메모리 장치들 중 상기 어느 하나의 코어에 의에 제어되는 메모리 장치에 저장하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터가 상기 어느 하나의 코어에 의해 저장된 횟수가 임계 값을 초과하면, 상기 복수의 메타 데이터들을 상기 복수의 메모리 장치들에 저장할 코어를 변경하는 호스트 인터페이스;를 포함하는 스토리지 장치. - 제1 항에 있어서, 상기 제1 메타 데이터는,
상기 복수의 메타 데이터들 각각의 저장 횟수를 포함하는, 스토리지 장치. - 제2 항에 있어서, 상기 호스트 인터페이스는,
상기 복수의 메타 데이터들을 상기 어느 하나의 코어에 의에 제어되는 메모리 장치에 저장하는 경우, 상기 제1 메타 데이터에 포함된 상기 복수의 메타 데이터들 각각의 저장 횟수를 증가시키는, 스토리지 장치. - 제1 항에 있어서, 상기 호스트 인터페이스는,
상기 복수의 메타 데이터들 중 상기 제1 메타 데이터와 상이한 제2 메타 데이터를 상기 어느 하나의 코어에 의에 제어되는 메모리 장치에 저장하는 경우, 상기 제1 메타 데이터를 함께 저장하는, 스토리지 장치. - 제1 항에 있어서, 상기 제1 메타 데이터는,
상기 복수의 메모리 장치들로부터 인터리빙 방식에 따라 리드 가능한 크기로 저장되는, 스토리지 장치. - 제1 항에 있어서, 상기 호스트 인터페이스는,
상기 복수의 메모리 장치들의 수명을 기초로 상기 임계 값을 조절하는, 스토리지 장치. - 제2 항에 있어서, 상기 호스트 인터페이스는,
부팅 동작 시 상기 복수의 메모리 장치들 중 상기 제1 메타 데이터가 저장된 메모리 장치들로부터 리드된 제1 메타 데이터들을 수신하고, 상기 리드된 제1 메타 데이터들의 저장 횟수를 기초로 상기 리드된 제1 메타 데이터들 중 가장 최근에 저장된 제1 메타 데이터를 결정하는, 스토리지 장치. - 제7 항에 있어서, 상기 호스트 인터페이스는,
상기 리드된 제1 메타 데이터들 중 상기 임계 값의 정수배가 아닌 저장 횟수를 가진 제1 메타 데이터를 상기 가장 최근에 저장된 제1 메타 데이터로 결정하는, 스토리지 장치. - 제8 항에 있어서, 상기 호스트 인터페이스는,
상기 임계 값의 정수배가 아닌 저장 횟수를 가진 제1 메타 데이터가 존재하지 않으면, 상기 리드된 제1 메타 데이터들 중 상기 임계 값의 정수배이면서 가장 많은 저장 횟수를 가진 제1 메타 데이터를 상기 가장 최근에 저장된 제1 메타 데이터로 결정하는, 스토리지 장치. - 제7 항에 있어서, 상기 호스트 인터페이스는,
상기 가장 최근에 저장된 제1 메타 데이터에 포함된 상기 복수의 메타 데이터들 각각의 저장 횟수를 기초로 상기 복수의 메타 데이터들 중 상기 제1 메타 데이터와 상이한 제2 메타 데이터가 가장 최근에 저장된 메모리 장치를 결정하고, 상기 복수의 코어들 중 상기 결정된 메모리 장치를 제어하는 코어를 이용하여 상기 제2 메타 데이터를 리드하는, 스토리지 장치. - 제1 메모리 장치;
제2 메모리 장치;
상기 제1 메모리 장치를 제어하는 제1 코어;
상기 제2 메모리 장치를 제어하는 제2 코어; 및
상기 제1 코어를 이용하여 상기 제1 메모리 장치에 복수의 메타 데이터들을 저장하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터가 상기 제1 코어에 의해 저장된 횟수가 임계 값을 초과하면, 상기 제2 코어를 이용하여 상기 제2 메모리 장치에 상기 복수의 메타 데이터들을 저장하는 호스트 인터페이스;를 포함하는 스토리지 장치. - 제11 항에 있어서, 상기 제1 메타 데이터는,
상기 복수의 메타 데이터들 각각의 저장 횟수를 포함하는, 스토리지 장치. - 제12 항에 있어서, 상기 호스트 인터페이스는,
상기 복수의 메타 데이터들을 상기 제1 메모리 장치에 저장하는 경우, 상기 제1 메타 데이터에 포함된 상기 복수의 메타 데이터들 각각의 저장 횟수를 증가시키는, 스토리지 장치. - 제11 항에 있어서, 상기 호스트 인터페이스는,
상기 복수의 메타 데이터들 중 상기 제1 메타 데이터와 상이한 제2 메타 데이터를 상기 제1 메모리 장치에 저장하는 경우, 상기 제1 메타 데이터를 함께 저장하는, 스토리지 장치. - 제12 항에 있어서, 상기 호스트 인터페이스는,
부팅 동작 시 상기 제1 메모리 장치 및 상기 제2 메모리 장치 각각으로부터 리드된 제1 메타 데이터들을 수신하고, 상기 리드된 제1 메타 데이터들의 저장 횟수를 기초로 상기 리드된 제1 메타 데이터들 중 가장 최근에 저장된 제1 메타 데이터를 결정하는, 스토리지 장치. - 제15 항에 있어서, 상기 호스트 인터페이스는,
상기 가장 최근에 저장된 제1 메타 데이터에 포함된 상기 복수의 메타 데이터들 각각의 저장 횟수를 기초로 상기 복수의 메타 데이터들 중 상기 제1 메타 데이터와 상이한 제2 메타 데이터가 가장 최근에 저장된 메모리 장치를 결정하고, 상기 제1 코어 및 상기 제2 코어 중 상기 결정된 메모리 장치를 제어하는 코어를 이용하여 상기 제2 메타 데이터를 리드하는, 스토리지 장치. - 복수의 메모리 영역들을 포함하는 메모리 장치;
상기 복수의 메모리 영역들을 각각 제어하는 복수의 메모리 영역 제어부들; 및
복수의 메타 데이터들 중 제1 메타 데이터의 저장 횟수를 기초로 상기 복수의 메모리 영역 제어부들 중 상기 복수의 메타 데이터들을 상기 복수의 메모리 영역들에 저장할 메모리 영역 제어부를 선택하는 호스트 인터페이스;를 포함하는 스토리지 장치. - 제17 항에 있어서, 상기 제1 메타 데이터는,
상기 복수의 메타 데이터들 각각의 저장 횟수를 포함하는, 스토리지 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220140578A KR20240059381A (ko) | 2022-10-27 | 2022-10-27 | 스토리지 장치 및 그 동작 방법 |
US18/297,022 US20240143223A1 (en) | 2022-10-27 | 2023-04-07 | Storage device and method of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220140578A KR20240059381A (ko) | 2022-10-27 | 2022-10-27 | 스토리지 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240059381A true KR20240059381A (ko) | 2024-05-07 |
Family
ID=90834962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220140578A KR20240059381A (ko) | 2022-10-27 | 2022-10-27 | 스토리지 장치 및 그 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240143223A1 (ko) |
KR (1) | KR20240059381A (ko) |
-
2022
- 2022-10-27 KR KR1020220140578A patent/KR20240059381A/ko unknown
-
2023
- 2023-04-07 US US18/297,022 patent/US20240143223A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240143223A1 (en) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240311293A1 (en) | Namespace mapping optimization in non-volatile memory devices | |
KR100816761B1 (ko) | 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법 | |
US11573742B2 (en) | Dynamic data placement for collision avoidance among concurrent write streams | |
US8332573B2 (en) | Method and apparatus for performing address mapping in virtual file system of storage unit having a plurality of non-volatile data storage media | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US9753847B2 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US20200019510A1 (en) | Isolated Performance Domains in a Memory System | |
US7814264B2 (en) | Memory card, semiconductor device, and method of controlling semiconductor memory | |
US8909895B2 (en) | Memory apparatus | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
EP2200045A1 (en) | Method of updating contents of a multibit flash memory | |
WO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
US20130103893A1 (en) | System comprising storage device and related methods of operation | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
JPWO2006126445A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 | |
JP2010146326A (ja) | 記憶装置、その制御方法及びその記憶装置を用いた電子装置 | |
CN112328507B (zh) | 根据取消映射命令管理快闪转换层表更新的存储器子系统 | |
CN113821158A (zh) | 一种快闪存储器、存储介质转换方法及计算装置 | |
US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
CN112166405A (zh) | 在存储器系统中分配可变媒体类型的存储器装置 | |
US8271721B2 (en) | Data writing method and data storage device | |
KR20130063244A (ko) | 비휘발성 메모리 시스템 | |
US9081664B2 (en) | Memory system capable of preventing data destruction | |
JP4829202B2 (ja) | 記憶装置及びメモリ制御方法 | |
CN116795735B (zh) | 固态硬盘空间分配方法、装置、介质及系统 |