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

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

Info

Publication number
KR102553263B1
KR102553263B1 KR1020220012595A KR20220012595A KR102553263B1 KR 102553263 B1 KR102553263 B1 KR 102553263B1 KR 1020220012595 A KR1020220012595 A KR 1020220012595A KR 20220012595 A KR20220012595 A KR 20220012595A KR 102553263 B1 KR102553263 B1 KR 102553263B1
Authority
KR
South Korea
Prior art keywords
data
memory
path
recovery data
core
Prior art date
Application number
KR1020220012595A
Other languages
English (en)
Other versions
KR20230068240A (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 EP22198600.3A priority Critical patent/EP4181125A3/en
Priority to CN202211337580.4A priority patent/CN116107492A/zh
Priority to US17/978,415 priority patent/US20230142479A1/en
Publication of KR20230068240A publication Critical patent/KR20230068240A/ko
Application granted granted Critical
Publication of KR102553263B1 publication Critical patent/KR102553263B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

스토리지 장치 및 이의 동작 방법이 개시된다. 스토리지 장치는, 복수의 메모리 영역들을 포함하는 비휘발성 메모리, 퍼포먼스 패쓰 및 적어도 하나의 다이렉트 패쓰를 통해 비휘발성 메모리를 제어하고 리커버리 데이터를 저장하는 버퍼 메모리를 포함하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면적어도 하나의 다이렉스 패쓰를 통해 리커버리 데이터를 비휘발성 메모리에 기입하고, 퍼포먼스 패쓰는 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고, 적어도 하나의 다이렉트 패쓰는 데이터에 대한 기입 동작만을 수행하는 경로일 수 있다.

Description

스토리지 장치 및 이의 동작 방법{STORAGE DEVICE INCLUDING THE SAME AND METHOD OF OPERATING THE SAME}
본 개시의 기술적 사상은 스토리지 장치 및 이의 동작 방법에 관한 것으로서, 더욱 상세하게는 전원 차단 복구(power off recovery) 동작을 수행하는 스토리지 장치 및 이의 동작 방법에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage), SSD(Solid State Drive), 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다. 스토리지 장치의 신뢰성을 향상시킬 수 있는 방법 및 장치에 대한 요구가 지속적으로 제기되고 있다.
외부 요인에 의하여 전원이 급작스럽게 오프되는 예를 들어, 파워 페일(power fail)이 발생할 경우, 스토리지 장치 내부의 버퍼 메모리에 존재하던 데이터가 손실될 수 있다. 이를 방지하기 위해, PLP(power loss protection)를 적용할 수 있다. PLP가 적용된 경우, 파워 로스(power loss)시, 예비 전력을 공급하여 버퍼 메모리에 존재하는 데이터를 비휘발성 메모리로 이동시킬 수 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는, 파워 페일 처리 도중 오류가 발생하더라도 에러 상태가 되는 것이 방지될 수 있는 스토리지 장치 및 이의 동작 방법을 제공하는 데에 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 기술적 사상에 따른 스토리지 장치는, 복수의 메모리 영역들을 포함하는 비휘발성 메모리, 퍼포먼스 패쓰 및 적어도 하나의 다이렉트 패쓰를 통해 비휘발성 메모리를 제어하고 리커버리 데이터를 저장하는 버퍼 메모리를 포함하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면적어도 하나의 다이렉스 패쓰를 통해 리커버리 데이터를 비휘발성 메모리에 기입하고, 퍼포먼스 패쓰는 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고, 적어도 하나의 다이렉트 패쓰는 데이터에 대한 기입 동작만을 수행하는 경로일 수 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 기술적 사상에 따른 스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법은, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면 코어를 선택하고 버퍼 메모리에 기입된 리커버리 데이터를 수집하는 단계, 및 선택된 코어에 대응하는 다이렉트 패쓰를 통해 비휘발성 메모리에 리커버리 데이터를 기입하는 단계를 포함하고, 퍼포먼스 패쓰는 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고, 다이렉트 패쓰는 데이터에 대한 기입 동작만을 수행하는 경로일 수 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 기술적 사상에 따른 스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법은, 버퍼 메모리에 기입된 리커버리 데이터를 비휘발성 메모리에 기입하기 위한 기입 정보를 설정하는 단계, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면, 코어를 선택하고 리커버리 데이터를 수집하는 단계, 및 선택된 코어에 대응하는 다이렉트 패쓰를 통해 비휘발성 메모리에 리커버리 데이터를 기입하는 단계를 포함하고, 퍼포먼스 패쓰는 복수의 코어들을 포함하고, 다이렉트 패쓰는 대응하는 하나의 코어를 포함할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는, 퍼포먼스 패쓰에 고장(fault)이 감지된 경우 코어가 직접적으로 비휘발성 메모리에 접근하는 다이렉트 패쓰를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 갑작스런 전원 차단 이후 오류, 즉, 파워 페일 처리 도중 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지되고, 스토리지 장치의 계속 사용이 가능할 수 있다.
본 개시의 예시적 실시 예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 본 개시의 예시적 실시 예들에 대한 기재로부터 본 개시의 예시적 실시 예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시 예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시 예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 스토리지 컨트롤러를 나타내는 블록도이다.
도 3 내지 도 5는 본 개시의 예시적인 실시 예에 따른 스토리지 장치에 전원이 차단될 때, 비휘발성 메모리에 데이터를 기입하는 동작을 설명하기 위한 도면들이다.
도 6는 도 1의 비휘발성 메모리에 포함된 복수의 메모리 장치들 중 하나의 메모리 장치를 설명하는 블록도이다.
도 7은 도 2의 버퍼 메모리에 저장된 리커버리 데이터를 설명하기 위한 도면이다.
도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 9는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 10은 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 장치가 적용된 시스템을 도시한 도면이다.
도 12는 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템(10)을 나타내는 블록도이다.
스토리지 시스템(10)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지(network-attached storage, NAS), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함할 수 있다. 호스트(200)는 스토리지 장치(100)의 동작을 제어할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 하나 이상의 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함할 수 있다. 스토리지 장치(100)가 솔리드 스테이트 드라이브를 포함하는 경우, 스토리지 장치(100)는 데이터를 저장하는 복수의 플래시 메모리 장치들(예를 들어, NAND 메모리 장치들)을 포함할 수 있다.
스토리지 장치(100)는 하나 이상의 플래시 메모리 장치들을 포함하는 플래시 메모리 장치에 해당할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 스토리지 시스템(10)에 내장되는 임베디드(embedded) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 eMMC(embedded Multi-Media Card) 또는 임베디드 UFS(Universal Flash Storage) 메모리 장치일 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 스토리지 시스템(10)에 착탈 가능한 외장(external) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
도 1을 참조하면, 스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함할 수 있다. 호스트(200) 및 스토리지 장치(100)는 다양한 인터페이스를 통하여 서로 통신할 수 있다. 스토리지 장치(100)는 신호 커넥터(signal connector, 140)를 통해 호스트(200)와 신호를 주고 받을 수 있고, 파워 커넥터(power connector, 150)를 통해 전원을 입력 받을 수 있다.
호스트(200)는 리드 요청 및 프로그램 요청 등의 요청(REQ)을 스토리지 장치(100)에 전달할 수 있다. 예시적인 실시 예에서, 호스트(200)는 AP(Application Processor) 또는 SoC(System-On-a-Chip, SoC)로 구현될 수 있다.
스토리지 장치(100)는 스토리지 컨트롤러(110), 비휘발성 메모리(120) 및 보조 전원 장치(130)를 포함할 수 있다.
스토리지 컨트롤러(110)는 신호 커넥터(140)를 통해 호스트(200)와 신호들을 주고 받을 수 있다. 여기에서, 신호들에는 요청(REQ), 데이터(DATA) 및 에러 신호(ES) 등이 포함될 수 있다.
스토리지 컨트롤러(110)는 채널(CH)을 통해 비휘발성 메모리(120)의 동작을 제어할 수 있다. 스토리지 컨트롤러(110)는 호스트(200)로부터의 리드 요청에 응답하여 비휘발성 메모리(120)에 저장된 데이터(DATA)를 독출하거나, 또는 호스트(200)로부터의 라이트 요청에 응답하여 비휘발성 메모리(120)에 데이터(DATA)를 기입하도록 비휘발성 메모리(120)를 제어할 수 있다.
예시적인 실시 예에서, 비휘발성 메모리(120)는 데이터를 저장하는 복수의 메모리 장치(121)들을 포함할 수 있다. 복수의 메모리 장치들 각각은 반도체 칩, 또는 반도체 다이(die)일 수 있다. 복수의 메모리 장치들 각각은 대응하는 채널에 연결될 수 있다. 예를 들어, 복수의 메모리 장치(121)들은 제1 채널을 통해 스토리지 컨트롤러(110)와 연결되는 제1 메모리 장치들, 제2 채널을 통해 스토리지 컨트롤러(110)와 연결되는 제2 메모리 장치들, 및 제m 채널을 통해 스토리지 컨트롤러(110)와 연결되는 제m 메모리 장치들을 포함할 수 있다. 이 때, m는 2이상의 자연수일 수 있다. 복수의 메모리 장치(121)들 중 동일한 채널에 연결된 복수의 메모리 장치들은 인터리빙 방식으로 기입 동작, 독출 동작 및 소거 동작이 수행될 수 있다.
복수의 메모리 장치(121)들 각각은 메모리 셀 어레이를 포함할 수 있고, 예시적인 실시 예에서, 메모리 셀 어레이는 플래시 메모리 셀들을 포함할 수 있고, 예를 들어, 플래시 메모리 셀들은 낸드(NAND) 플래시 메모리 셀들일 수 있다. 그러나, 본 개시는 이에 한정되지 않고, 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수도 있다.
보조 전원 장치(130)는 파워 커넥터(150)를 통해 호스트(200)와 연결될 수 있다. 보조 전원 장치(130)는 호스트(200)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 다만, 보조 전원 장치(130)는 스토리지 장치(100) 내에 위치할 수도 있고, 스토리지 장치(100) 밖에 위치할 수도 있다. 보조 전원 장치(130)는 전원(PWR)에 기초하여, 내부 전원 전압을 생성할 수 있고, 스토리지 컨트롤러(110) 및 비휘발성 메모리(120)에 내부 전원 전압을 제공할 수 있다.
예시적인 실시 예에서, 보조 전원 장치(130)는 전원 손실 보호 집적 회로(Power-Loss Protection Integrated Circuit; PLP IC)를 포함할 수 있다. 전원 손실 보호 집적 회로는 스토리지 장치(100)의 전원이 갑자기 차단(오프, off)된 경우에(즉, sudden power off 또는 power fail), 보조 전원 전압을 일정 시간 동안 생성하고, 스토리지 컨트롤러(110) 및 비휘발성 메모리(120)에 제공할 수 있다.
스토리지 컨트롤러(110)는 일반 동작 시, 즉, 전원이 공급되는 동안, 퍼포먼스 패쓰(performance path, PP)를 통해 비휘발성 메모리(120)에 데이터를 기입할 수 있다. 반면, 갑작스럽게 전원 차단이 발생되고, 퍼포먼스 패쓰(PP)에 고장(fault)이 감지된 경우에는, 다이렉트 패쓰(direct path, DP)를 통해 비휘발성 메모리(120)에 데이터를 기입할 수 있다. 이 때, 퍼포먼스 패쓰(PP)는, 스토리지 컨트롤러(110)에 포함된 코어가 여러 모듈을 거쳐 비휘발성 메모리(120)에 대한 동작, 예를 들어, 기입(program) 동작, 독출 동작, 및 소거 동작을 수행하는 경로일 수 있다. 반면, 다이렉트 패쓰(DP)는, 스토리지 컨트롤러(110)에 포함된 코어가 다른 모듈을 거치지 않고, 직접 데이터를 비휘발성 메모리(120)에 기입하는 경로일 수 있다. 즉, 다이렉트 패쓰(DP)는 전원 차단 시에 스토리지 컨트롤러(110)의 버퍼 메모리에 기입된 데이터를 비휘발성 메모리(120)에 옮겨 기입하는 동작을 수행하기 위해 정의된 별도의 경로일 수 있다.
예시적인 실시 예에서, 스토리지 컨트롤러(110)는 퍼포먼스 패쓰(PP)의 고장 발생 여부를 assert 또는 core hang으로부터 판단할 수 있다. 또는, 예시적인 실시 예에서, 스토리지 컨트롤러(110)는 퍼포먼스 패쓰(PP)를 통한 전원 차단 처리 동작의 각 step들이 지정된 시간 내에 처리되지 못한 것으로 판단하면, 퍼포먼스 패쓰(PP)에 고장이 발생한 것으로 판단할 수 있다.
본 개시에 따른 스토리지 장치(100)는 퍼포먼스 패쓰(PP)에 고장이 감지된 경우, 특정 코어가 직접적으로 비휘발성 메모리(120)에 접근하는 다이렉트 패쓰(DP)를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 파워 페일 처리 도중 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지되고, 스토리지 장치의 계속 사용이 가능할 수 있다. 리커버리 데이터의 구성에 대해서는 도 7에서 구체적으로 후술하겠다.
스토리지 장치(100)는 갑작스러운 전원 차단에 의해 사용자 데이터가 비휘발성 메모리(120)에 기입되지 못하는 경우에는, 호스트(200)로 에러 신호(ES)를 전송할 수 있다. 예를 들어, 에러 신호(ES)는 rebuild assist로서 호스트(200)에 전송될 수 있다.
도 2는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 스토리지 컨트롤러(110)를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 스토리지 컨트롤러(110)는 프로세서(111), 호스트 인터페이스(114) 및 메모리 인터페이스(115)를 포함할 수 있다. 또한, 스토리지 컨트롤러(110)는 플래시 변환 레이어(Flash Translation Layer(FTL), 112), 버퍼 메모리(113)를 포함할 수 있다. 스토리지 컨트롤러(110)는 플래시 변환 레이어(112)가 로딩되는 워킹 메모리를 더 포함할 수 있으며, 프로세서(111)가 플래시 변환 레이어(112)를 실행하는 것에 의해 비휘발성 메모리(120)에 대한 데이터 기입 및 독출 동작이 제어될 수 있다. 이러한 스토리지 컨트롤러(110)의 구성들은 버스(116)를 통해 서로 통신할 수 있다.
프로세서(111)은 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 스토리지 컨트롤러(110)의 전반적인 동작을 제어할 수 있다. 프로세서(111)는 특정 동작을 수행하도록 구성되는 프로그램 코드의 명령어 집합을 실행할 수 있는 하나 이상의 코어들을 포함할 수 있다. 예를 들어, 프로세서(111)는 워킹 메모리에 저장된 펌웨어의 명령 코드를 실행할 수 있다.
프로세서(111)는 비휘발성 메모리(120)에 데이터를 기입하거나, 비휘발성 메모리(120)로부터 데이터를 독출하거나, 데이터를 소거하기 위해 퍼포먼스 패쓰(PP)에 포함된 스토리지 컨트롤러(110)의 각 구성을 제어할 수 있다. 프로세서(111)는 전원 차단이 감지되면, 우선 퍼포먼스 패쓰(PP)에 포함된 스토리지 컨트롤러(110)의 각 구성을 제어함으로써, 버퍼 메모리(113)에 기입된 데이터를 비휘발성 메모리(120)에 전원 차단 처리 동작을 수행할 수 있다.
예시적인 실시 예에서, 프로세서(111)는 하나의 코어를 포함할 수 있다. 프로세서(111)의 코어는, 전원이 차단되고 퍼포먼스 패쓰(PP)에 고장이 감지되면, 전용 컨택스트를 실행하여 버퍼 메모리(113)에 저장된 리커버리 데이터를 비휘발성 메모리(120)에 저장하는 동작을 수행할 수 있다. 예를 들어, 프로세서(111)의 코어는, 인터럽트 컨택스트를 실행하거나, RTOS(real time operating system) 태스크를 처리함으로써 상기 동작을 수행할 수 있고, 프로세서(111)의 코어가 상기 동작을 수행하기 위한 경로가 다이렉트 패쓰(DP)로 정의될 수 있다. 또는, 예시적인 실시 예에서, 프로세서(111)는 복수의 코어들을 포함할 수 있고, 복수의 코어들을 포함하는 프로세서(111)의 동작에 대해서는 도 3, 도 4 및 도 5 등에서 자세히 후술하겠다.
호스트 인터페이스(114)는 호스트(100)와 패킷(packet)을 송수신할 수 있다. 호스트(100)로부터 호스트 인터페이스(114)로 전송되는 패킷은 요청(도 1의 REQ) 혹은 비휘발성 메모리(220)에 기록될 데이터(도 1의 DATA) 등을 포함할 수 있으며, 호스트 인터페이스(114)로부터 호스트(100)로 전송되는 패킷은 요청(REQ)에 대한 응답(response) 혹은 비휘발성 메모리(220)로부터 독출된 데이터(DATA) 등을 포함할 수 있다. 예를 들어, 호스트 인터페이스(114)는 USB(Universal Serial Bus), MMC, PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등에 따른 인터페이스를 제공할 수 있다.
메모리 인터페이스(115)는 비휘발성 메모리(220)에 기록될 데이터를 비휘발성 메모리(220)로 전송하거나, 비휘발성 메모리(220)로부터 독출된 데이터를 수신할 수 있다. 이러한 메모리 인터페이스(115)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.
플래시 변환 계층(112)은 어드레스 매핑(address mapping), 웨어-레벨링(wear-leveling), 가비지 콜렉션(garbage collection)과 같은 여러 기능을 수행할 수 있다. 어드레스 매핑 동작은 호스트로부터 수신한 논리 어드레스(logical address)를, 비휘발성 메모리(220) 내에 데이터를 실제로 저장하는 데 사용되는 물리 어드레스(physical address)로 바꾸는 동작이다. 웨어-레벨링은 비휘발성 메모리(220) 내의 블록(block)들이 균일하게 사용되도록 하여 특정 블록의 과도한 열화를 방지하기 위한 기술로, 예시적으로 물리 블록(physical block)들의 소거 카운트들을 밸런싱하는 펌웨어 기술을 통해 구현될 수 있다. 가비지 콜렉션은, 블록의 유효 데이터를 새 블록에 복사한 후 기존 블록을 소거(erase)하는 방식을 통해 비휘발성 메모리(220) 내에서 사용 가능한 용량을 확보하기 위한 기술이다.
버퍼 메모리(113)는 비휘발성 메모리(220)에 기입될 데이터 혹은 비휘발성 메모리(220)로부터 독출될 데이터를 임시로 저장할 수 있다. 버퍼 메모리(113)는 스토리지 컨트롤러(110) 내에 구비되는 구성일 수 있으나, 스토리지 컨트롤러(110)의 외부에 배치될 수도 있다.
예시적인 실시 예에서, 버퍼 메모리(113)는 DRAM(Dynamic Ramdom Access Memory)일 수 있다. 다만, 이에 한정되지는 않으며, 버퍼 메모리(113)는 SRAM(Static Random Access Memory), PRAM(Phase-change Random Access Memory) 또는 플래시 메모리 등으로 구현될 수 있다.
도 3 내지 도 5는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)에 전원이 차단될 때, 비휘발성 메모리(120)에 데이터를 기입하는 동작을 설명하기 위한 도면들이다. 스토리지 장치에 전원이 차단되면, 보조 전압을 이용하여 스토리지 장치가 동작할 수 있다. 도 3 내지 도 5의 프로세서들(111, 111a, 111b)은 도 2의 프로세서(111)일 수 있고, 복수의 코어들을 포함할 수 있다.
도 3을 참조하면, 프로세서(111)는 제1 코어(111_1) 및 제2 코어(111_2)를 포함할 수 있다. 제1 코어(111_1) 및 제2 코어(111_2)는 서로 상이한 테스크를 처리하는 코어일 수 있다. 예시적인 실시 예에서, 제1 코어(111_1)는 호스트(예를 들어, 도 1의 200)와의 인터페이스에 관련된 동작을 수행하는 호스트 코어일 수 있고, 제2 코어(111_2)는 플래시 변환 레이어(예를 들어, 도 2의 112)를 구동하여 비휘발성 메모리(120)와의 인터페이스에 관련된 동작을 수행하는 FTL 코어(NAND 코어)일 수 있으나, 다만, 본 개시는 이에 한정되지는 않는다.
퍼포먼스 패쓰(PP)에서는 제1 코어(111_1) 및 제2 코어(111_2)가 서로 유기적으로 연결될 수 있고, 제1 코어(111_1) 및 제2 코어(112_2)가 함께 동작할 수 있다. 반면, 제1 코어(111_1)는 제1 다이렉트 패쓰(DP1)를 통해 비휘발성 메모리(120)에 직접 데이터를 기입할 수 있고, 제2 코어(111_2)는 제2 다이렉트 패쓰(DP2)를 통해 비휘발성 메모리(120)에 직접 데이터를 기입할 수 있다. 퍼포먼스 패쓰(PP)와 달리, 제1 다이렉트 패쓰(DP1) 및 제2 다이렉트 패쓰(DP2) 각각은 비휘발성 메모리(120)에 데이터를 기입하는 동작만이 수행가능하도록 구성될 수 있으며, 지정된 코어만이 동작하도록 구성될 수 있다. 따라서, 전원 차단이 발생하고, 퍼포먼스 패쓰(PP)에 고장이 감지된 경우에는 제1 다이렉트 패쓰(DP1) 또는 제2 다이렉트 패쓰(DP2)를 통해 버퍼 메모리(113)에 저장된 리커버리 데이터를 비휘발성 메모리(120)에 저장할 수 있다. 퍼포먼스 패쓰(PP)에 고장이 발생하더라도 스토리지 장치(100)가 에러 상태에 빠지지는 것이 방지될 수 있다.
비휘발성 메모리(120)는 복수의 메모리 영역들, 예를 들어, 제1 내지 제k 메모리 영역(MR1~MRk)을 포함할 수 있다. 이 때, k는 3이상의 자연수일 수 있다. 제1 내지 제k 메모리 영역(MR1~MRk) 중 제1 메모리 영역(MR1)은 제1 코어(111_1)가 제1 다이렉트 패쓰(DP1)를 통해 접근하도록 지정될 수 있고, 제2 메모리 영역(MR2)은 제2 코어(111_2)가 제2 다이렉트 패쓰(DP2)를 통해 접근하도록 지정될 수 있다. 다만, 이에 한정되지 않고, 제1 메모리 영역(MR1)은 제1 코어(111_1)가 제1 다이렉트 패쓰(DP1)를 통해 접근하도록 지정될 수도 있고, 제2 코어(111_2)가 제2 다이렉트 패쓰(DP2)를 통해 접근하도록 지정될 수도 있다. 예시적인 실시 예에서, 특정 코어에 대응하는 메모리 영역은, 퍼포먼스 패쓰(PP)에 고장 발생 시 데이터를 비휘발성 메모리(120)에 기입하기 위한 데이터의 기입 정보로서 미리 지정될 수 있다.
도 3에서는 예시적으로 퍼포먼스 패쓰(PP)에 고장이 발생하고, 제1 다이렉트 패쓰(DP1)를 통해 제1 코어(111_1)가 비휘발성 메모리(120)의 제1 메모리 영역(MR1)에 접근하여 데이터(예를 들어, 리커버리 데이터)를 기입하는 예를 도시한 것이다. 다만, 본 개시는 이에 한정되지 않으며, 퍼포먼스 패쓰(PP) 중 제2 코어(111_2)에 고장이 발생된 것이 아닌 경우에 제2 코어(111_2)가 제2 다이렉트 패쓰(DP2)를 통해 제2 메모리 영역(MR2)에 리커버리 데이터를 기입할 수도 있다.
도 4를 참조하면, 프로세서(111a)는 복수의 제1 코어들(111_1a) 및 복수의 제2 코어들(111_2a)을 포함할 수 있다. 복수의 제1 코어들(111_1a)은 서로 동일한 테스크를 처리하는 코어들일 수 있고, 복수의 제2 코어들(111_2a)은 서로 동일한 테스크를 처리하는 코어들일 수 있다. 예시적인 실시 예에서, 복수의 제1 코어들(111_1a)은 호스트(200)와의 인터페이스에 관련된 동작을 수행하는 호스트 코어일 수 있고, 복수의 제2 코어들(111_2a)들은 비휘발성 메모리(120)와의 인터페이스에 관련된 동작을 수행하는 FTL 코어(NAND 코어)일 수 있다. 복수의 제1 코어들(111_1a) 각각에 제1 다이렉트 패쓰들(DP11, DP12)이 대응될 수 있고, 복수의 제2 코어들(111_2a) 각각에 제2 다이렉트 패쓰들(DP21, DP22)이 대응될 수 있다.
복수의 제1 코어들(111_1a) 각각은 제1 다이렉트 패쓰들(DP11, DP12)을 통해 접근 가능한 메모리 영역이 지정될 수 있고, 복수의 제2 코어들(111_2a) 각각은 제2 다이렉트 패쓰들(DP21, DP22)을 통해 접근 가능한 메모리 영역이 지정될 수 있다. 예를 들어, 복수의 제1 코어들(111_1a) 중 하나의 코어는 제1 다이렉트 패쓰(DP11)를 통해 제1 메모리 영역(MR1)에 리커버리 데이터를 기입할 수 있고, 복수의 제1 코어들(111_1a) 중 다른 하나의 코어는 제1 다이렉트 패쓰(DP12)를 통해 제k 메모리 영역(MRk)에 리커버리 데이터를 기입할 수 있다.
전원 차단이 발생하고 퍼포먼스 패쓰(PP)에 고장이 감지된 경우에는, 복수의 제1 코어들(111_1a)이 이하의 동작을 수행하기 위한 코어들로 선택될 수 있고, 복수의 제1 코어들(111_1a)은 제1 다이렉트 패쓰들(DP11, DP12)을 통해 버퍼 메모리(113)에 저장된 리커버리 데이터를 비휘발성 메모리(120)에 저장(미러링(mirroring) 동작)할 수 있다. 복수의 제1 코어들(111_1a)이 동일한 데이터를 각각 비휘발성 메모리(120)에 기입함으로써, 제1 다이렉트 패쓰들(DP11, DP12) 중 일부에 고장이 발생하거나 제1 메모리 영역(MR1) 및 제k 메모리 영역(MRk) 중 일부에 고장이 발생하더라도, 스토리지 장치(100)가 에러 상태에 빠지지는 것이 방지될 수 있다.
도 5를 참조하면, 프로세서(111b)는 제1 코어(111_1), 제2 코어(111_2) 및 제3 코어(111_3)를 포함할 수 있다. 제1 코어(111_1), 제2 코어(111_2) 및 제3 코어(111_3)는 서로 상이한 테스크를 처리하는 코어들일 수 있다. 예시적인 실시 예에서, 제1 코어(111_1)는 호스트(200)와의 인터페이스에 관련된 동작을 수행하는 호스트 코어일 수 있고, 제2 코어(111_2)는 비휘발성 메모리(120)와의 인터페이스에 관련된 동작을 수행하는 FTL 코어(NAND 코어)일 수 있고, 제3 코어(111_3)는 제1 코어(111_1) 및 제2 코어(111_3) 사이에서 제1 코어(111_1) 및 제2 코어(111_3)의 동작을 보조할 수 있다. 또는, 제3 코어(111_3)는 제1 코어(111_1) 및 제2 코어(111_2)와 상이한 동작을 수행할 수 있다. 제1 코어(111_1), 제2 코어(111_2) 및 제3 코어(111_3) 각각은 하나의 코어로 구성될 수도 있고, 또는 도 4에서 설명된 바와 같이 복수로 구성될 수의 코어들로 구성될 수도 있다.
퍼포먼스 패쓰(PP)에는 제1 코어(111_1), 제3 코어(111_3), 및 제2 코어(111_2)가 순차적으로 포함될 수 있다. 제1 코어(111_1), 제2 코어(111_2), 및 제3 코어(111_3) 각각은 제1 다이렉트 패쓰(DP1), 제2 다이렉트 패쓰(DP2) 및 제3 다이렉트 패쓰(DP3)에 대응될 수 있다.
제1 코어(111_1)는 제1 다이렉트 패쓰(DP1)를 통해 접근 가능한 메모리 영역, 예를 들어, 제1 메모리 영역(MR1)이 지정될 수 있다. 제2 코어(111_2)는 제2 다이렉트 패쓰(DP2)를 통해 접근 가능한 메모리 영역, 예를 들어, 제2 메모리 영역(MR2)이 지정될 수 있다. 제3 코어(111_3)는 제3 다이렉트 패쓰(DP3)를 통해 접근 가능한 메모리 영역, 예를 들어, 제k 메모리 영역(MRk)이 지정될 수 있다.
전원 차단이 발생하고 퍼포먼스 패쓰(PP)에 고장이 감지된 경우에는, 예시적으로 제1 코어(111_1) 및 제3 코어(111_3)가 이하의 동작을 수행하기 위한 코어들로 선택될 수 있다. 제1 코어(111_1) 및 제3 코어(111_3)는 제1 다이렉트 패쓰(DP1) 및 제3 다이렉트 패쓰(DP3)를 통해 버퍼 메모리(113)에 저장된 리커버리 데이터를 비휘발성 메모리(120)에 저장(미러링 동작)할 수 있다. 제1 코어(111_1) 및 제3 코어(111_3)가 동일한 데이터를 각각 비휘발성 메모리(120)에 기입함으로써, 제1 다이렉트 패쓰(DP1) 및 제3 다이렉트 패쓰(DP3) 중 일부에 고장이 발생하더라도, 스토리지 장치(100)가 에러 상태에 빠지지는 것이 방지될 수 있다.
도 6는 도 1의 비휘발성 메모리(120)에 포함된 복수의 메모리 장치들 중 하나의 메모리 장치(121)를 설명하는 블록도이다.
도 1 및 도 6을 참조하면, 메모리 장치(121)는 메모리 셀 어레이(122), 어드레스 디코더(123), 제어 로직 블록(124), 페이지 버퍼(125), 입출력 회로(126), 및 전압 생성기(127)를 포함할 수 있다. 도시되지는 않았으나, 메모리 장치(121)는 입출력 인터페이스를 더 포함할 수 있다.
메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL), 그라운드 선택 라인들(GSL) 및 비트 라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 그라운드 선택 라인들(GSL)을 통해 어드레스 디코더(123)에 연결되고, 비트 라인들(BL)을 통해 페이지 버퍼(125)에 연결될 수 있다. 메모리 셀 어레이(122)는 복수의 메모리 블록들(BLK1~BLKn)을 포함할 수 있다.
복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 메모리 셀들 및 복수의 선택 트랜지스터들을 포함할 수 있다. 메모리 셀들은 워드라인들(WL)에 연결되고, 선택 트랜지스터들은 스트링 선택 라인들(SSL) 또는 그라운드 선택 라인들(GSL)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKn) 각각의 메모리 셀들은 1-비트 데이터를 저장하는 싱글 레벨 셀들(Single Level Cells) 또는 2이상-비트 데이터를 저장하는 멀티 레벨 셀들(Multi Level Cells)로 구성될 수 있다.
어드레스 디코더(123)는 메모리 셀 어레이(122)의 복수의 메모리 블록들(BLK1~BLKn) 중 하나를 선택할 수 있고, 선택된 메모리 블록의 워드라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다.
제어 로직 블록(124, 또는 제어 로직 회로)는 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(122)에 대한 기입, 독출 및 소거 동작을 수행하기 위한 각종 제어 신호를 출력할 수 있다. 제어 로직 블록(124)은 어드레스 디코더(123)에 로우 어드레스(X-ADDR)를 제공할 수 있고, 페이지 버퍼(125)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있고, 전압 생성기(127)에 전압 제어 신호(CTRL_Vol)를 제공할 수 있다.
복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 페이지들을 포함할 수 있다. 제어 로직 블록(124)는 복수의 메모리 블록들(BLK1~BLKn) 각각의 단위로 소거 동작을 수행할 수 있다. 제어 로직 블록(124)는 복수의 페이지들 각각의 단위로 독출 동작을 수행할 수 있고, 기입 동작을 수행할 수 있다.
페이지 버퍼(125)는 동작 모드에 따라 라이트 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 독출 동작시, 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 선택된 메모리 셀의 비트라인(BL)을 센싱할 수 있다. 센싱된 데이터는 페이지 버퍼(125) 내부에 구비되는 래치들에 저장될 수 있다. 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 래치들에 저장된 데이터를 입출력 회로(126)로 덤핑할 수 있다.
입출력 회로(126)는 메모리 장치(121)의 외부로부터 입출력 라인(I/O)을 통해서 제공되는 명령어(CMD), 어드레스(ADDR), 제어 신호(CTRL) 및 데이터(DATA)를 일시 저장할 수 있다. 입출력 회로(126)는 메모리 장치(121)의 읽기 데이터를 일시 저장하고, 지정된 시점에 입출력 라인(I/O)을 통해서 외부로 출력할 수 있다.
전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 메모리 셀 어레이(122)에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 구체적으로, 전압 생성기(127)는 워드 라인 전압(VWL), 예를 들어, 프로그램 전압, 리드 전압, 패스 전압, 이레이즈 검증 전압 또는 프로그램 검증 전압 등을 생성할 수 있다. 또한, 전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 스트링 선택 라인 전압 및 그라운드 선택 라인 전압을 생성할 수 있다. 또한, 전압 생성기(127)는 메모리 셀 어레이(122)에 제공할 이레이즈 전압을 생성할 수 있다.
도 7은 도 2의 버퍼 메모리(113)에 저장된 리커버리 데이터를 설명하기 위한 도면이다.
도 1 및 도 7을 참조하면, 버퍼 메모리(113)에는 리커버리 데이터가 저장될 수 있다. 리커버리 데이터는, 전원이 차단된 이후 다시 전원이 복구되었을 때, 스토리지 장치(100)를 복구하기 위해 필요한 데이터일 수 있다. 따라서, 스토리지 장치(100)는 전원이 차단되면 버퍼 메모리(113)에 저장되어 있던 리커버리 데이터를 비휘발성 메모리(120)로 이동시켜 저장할 수 있다.
리커버리 데이터는 사용자 데이터, 디버그 데이터, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터 등을 포함할 수 있다. 디바이스 메타데이터는 스토리지 장치(100)에 관한 정보일 수 있다. 예를 들어, 스마트 데이터, 시큐리티 데이터, 및 비휘발성 메모리(120)의 특성에 대한 메타데이터 등을 포함할 수 있다. 맵 데이터는 L2P 데이터로서, 비휘발성 메모리(120)에 기입된 사용자 데이터에 대한 맵 데이터일 수 있다.
리커버리 데이터 중 일부는 최소 리커버리 데이터일 수 있다. 최소 리커버리 데이터는 스토리지 장치(100)가 사용불가 상태, 즉, 파워 페일 상태가 되지 않기 위해 필요한 데이터일 수 있다. 최소 리커버리 데이터는 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터 등을 포함할 수 있다. 이 때, 사용자 데이터 다이제스트는, 사용자 데이터를 모두 비휘발성 메모리(120)에 기입하지 못했을 때, 데이터 불량 표시(uncor mark)를 하기 위해 필요할 수 있다.
스토리지 장치(100)는 전원이 차단되면, 리커버리 데이터를 버퍼 메모리(113)에서 비휘발성 메모리(120)로 이동시킬 수 있으나, 최소 리커버리 데이터를 우선적으로 이동시킬 수 있다.
도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 8에 도시된 S10 단계 내지 S50 단계의 동작 방법은 도 1의 스토리지 장치(100)에서 시계열적으로 수행될 수 있다.
도 1 및 도 8을 참조하면, S10 단계에서 리커버리 데이터를 기입하기 위한 기입 정보를 설정할 수 있다. 예시적인 실시 예에서, S10 단계는 스토리지 장치(100)에 전원이 제공될 때 수행될 수 있다. 데이터의 기입 정보는 이후 S50 단계 또는 S60 단계에서 리커버리 데이터가 기입될 비휘발성 메모리(120)의 위치 및 메모리 어드레스에 대한 정보를 포함할 수 있다.
예를 들어, S10 단계에서는 퍼포먼스 패쓰(PP)에 고장 발생 시의 데이터를 기입하기 위한 기입 정보를 설정할 수 있다. 도 3 내지 도 5에서 설명된 바와 같이, 특정 코어는 대응하는 다이렉트 패쓰를 형성할 수 있고, S10 단계에서 특정 다이렉트 패쓰에 대응하는 메모리 영역이 설정될 수 있다.
S20 단계에서 스토리지 장치(100)로 제공되는 전원이 차단될 수 있고, S30 단계에서 퍼포먼스 패쓰(PP)의 고장을 감지할 수 있다. 예를 들어, 스토리지 장치(100)는 퍼포먼스 패쓰(PP)의 고장 발생 여부를 assert 또는 core hang으로부터 판단할 수 있다. 또는, 예시적인 실시 예에서, 도 8에서 후술할 바와 같이, 스토리지 장치(100)는 퍼포먼스 패쓰(PP)를 통한 전원 차단 처리 동작의 각 step들이 지정된 시간 내에 처리되지 못한 것으로 판단하면, 퍼포먼스 패쓰(PP)에 고장이 발생한 것으로 판단할 수 있다.
퍼포먼스 패쓰(PP)에 고장이 감지되지 않으면, 즉, 퍼포먼스 패쓰(PP)가 정상으로 판단되면 S60 단계에서 스토리지 장치(30)는, 퍼포먼스 패쓰(PP)를 통해 전원 차단 처리를 수행할 수 있다. 예를 들어, 스토리지 장치(30)는 퍼포먼스 패쓰(PP)를 통해 버퍼 메모리에 기입된 리커버리 데이터를 비휘발성 메모리에 기입하는 전원 차단 처리를 수행할 수 있다.
퍼포먼스 패쓰(PP)에 고장이 감지되면, S40 단계에서, 스토리지 장치(100)는 이 후 단계들을 수행하기 위한 코어를 선택할 수 있고, 버퍼 메모리에 기입된 리커버리 데이터를 수집할 수 있다. 예를 들어, 프로세서가 단일 코어로 구성된 경우에는 단일 코어가 선택될 수 있다. 또는, 예를 들어, 프로세서가 복수의 코어들로 구성된 경우에는, 비휘발성 메모리(120)에 직접 접근할 수 있는 다이렉트 패쓰들이 형성된 코어들 중에서 고장이 발생되지 않은 코어가 선택될 수 있다. 또한, 스토리지 장치(100)는 S40 단계에서, 비휘발성 메모리(120)에 설정된 다양한 설정 값들을 리셋할 수 있다.
S50 단계에서, 스토리지 장치(100)는 선택된 코어에 대응하는 다이렉트 패쓰(DP)를 통해 비휘발성 메모리(120)에 리커버리 데이터를 기입할 수 있다. 스토리지 장치(100)는 S10 단계에서 설정된 기입 정보에 기초하여, 비휘발성 메모리(120)에 리커버리 데이터를 기입할 수 있다.
선택된 코어는 비휘발성 메모리(120)에 포함된 복수의 메모리 영역들 중 대응하는 메모리 영역에 리커버리 데이터를 기입할 수 있다. 상기 기입 정보는 선택된 코어에 대응하는 메모리 영역의 위치 정보를 포함할 수 있다. 예를 들어, 도 3에서와 같이 제1 코어가 선택된 경우, S50 단계에서, 스토리지 장치(100)는 제1 다이렉트 패쓰(DP1)를 통해 제1 메모리 영역(MR1)에 리커버리 데이터를 기입할 수 있다.
따라서, 본 개시에 따른 스토리지 장치(100)는 퍼포먼스 패쓰(PP)에 고장이 감지된 경우, 선택된 코어가 직접적으로 비휘발성 메모리(120)에 접근하는 다이렉트 패쓰(DP)를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 파워 페일 처리 도중 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지될 수 있다.
도 9는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 9에 도시된 S30 단계는 도 8의 S30 단계의 일 예시일 수 있고, S31 내지 S34 단계를 포함할 수 있다.
도 1 및 도 9를 참조하면, S31 단계에서 스토리지 장치(100)는 지정된 시간 안에 리커버리 데이터의 제1 데이터에 대한 기입 동작이 완료되었는지 판단할 수 있고, S32 단계에서 스토리지 장치(100)는 지정된 시간 안에 리커버리 데이터의 제i 데이터에 대한 기입 동작이 완료되었는지 판단할 수 있다. 즉, 스토리지 장치(100)는 S31 단계 및 S32 단계에서, 리커버리 데이터에 포함된 제1 내지 제i 데이터에 대한 기입 동작 각각이 지정된 시간 안에 완료되었는지 판단할 수 있다. 이 때, 기입 동작은 비휘발성 메모리(120)에 기입하는 동작을 의미할 수 있고, i은 2 이상의 자연수일 수 있다. 예를 들어, 지정된 시간은 10ms일 수 있다. 도 9에서는 S31 단계 이후에 S32 단계가 수행되는 것으로 도시되었으나, 이에 한정되지는 않으며, S31 단계 및 S32 단계의 수행 순서는 자유롭게 변형이 가능하다.
제1 내지 제i 데이터는 사용자 데이터, 디바이스 메타데이터, 맵 데이터, 및 디버그 데이터 등을 포함할 수 있다. 예를 들어, 제1 데이터는 사용자 데이터일 수 있고, 제2 데이터는 디바이스 메타데이터 중 일부일 수 있고, 제3 데이터는 디바이스 메타데이터 중 다른 일부일 수 있다.
제1 내지 제i 데이터에 대한 기입 동작 각각이 모두 지정 시간안에 완료되면, S33 단계에서 스토리지 장치(100)는 퍼포먼스 패쓰(PP)를 정상으로 판단할 수 있다. 반면, 제1 내지 제i 데이터에 대한 기입 동작 중 어느 하나의 기입 동작이라도 지정된 시간 이내에 완료되지 못하면, 퍼포먼스 패쓰(PP)가 고장인 것으로 판단할 수 있다.
도 10은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 10은 스토리지 장치(100)에 전원이 제공된 후의 리커버리 동작을 설명하기 위한 도면이다. 도 10에 도시된 S100 내지 S700 단계는 도 8의 S10 단계 내지 S60 단계가 수행된 이 후에 수행될 수 있다.
도 1 및 도 10을 참조하면, S100 단계에서 스토리지 장치(100)로 전원이 제공될 수 있고, S200 단계에서 스토리지 장치(100)는 비휘발성 메모리(120)에서 지정된 위치를 스캔할 수 있다. 상기 지정된 위치는 전원 차단 처리 동작을 수행하기 위해, 리커버리 데이터를 저장하도록 미리 지정된 위치일 수 있다. 예를 들어, 스토리지 장치(100)는 비휘발성 메모리(120)의 복수의 메모리 영역들(예를 들어, 도 3의 MR1~MRk) 중 미리 지정된 메모리 영역을 스캔할 수 있다.
S300 단계에서 스토리지 장치(100)는 비휘발성 메모리(120)의 지정된 위치에 리커버리 데이터가 모두 기입되었는지 확인할 수 있고, 상기 지정된 위치에 리커버리 데이터가 모두 기입된 경우에는 S400 단계에서 비휘발성 메모리(120)를 오픈할 수 있다. 비휘발성 메모리(120)가 오픈되면, 스토리지 컨트롤러(110)는 퍼포먼스 패쓰(PP)를 통해 비휘발성 메모리(120)의 동작을 제어할 수 있고, 기입 동작, 독출 동작, 및 소거 동작을 수행할 수 있다.
비휘발성 메모리(120)의 지정된 위치에 리커버리 데이터가 기입되지 않은 경우에는 S500 단계에서 스토리지 장치(100)는 상기 지정된 위치에 최소 리커버리 데이터가 기입되었는지 확인할 수 있다. 최소 리커버리 데이터는 예를 들어, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함할 수 있다.
최소 리커버리 데이터가 기입된 경우에는 S600 단계에서 스토리지 장치(100)는 사용자 데이터에 데이터 불량 표시(uncor mark)를 할 수 있다. 예를 들어, 스토리지 장치(100)는 최소 리커버리 데이터에 포함된 사용자 데이터 다이제스트에 대응하는 사용자 데이터에 데이터 불량 표시를 할 수 있다.
이 때, 사용자 데이터는 스토리지 컨트롤러(110)의 버퍼 메모리(예를 들어, 도 7의 113)에 저장되었으나, 비휘발성 메모리(120)로 이동되지 못한 사용자 데이터일 수 있다. 따라서, 스토리지 장치(100)는 해당 사용자 데이터가 불량임을 표시하고, 해당 사용자 데이터에 대응하는 응답 신호인 에러 신호(예를 들어, 도 1의 ES)를 호스트(200)로 전송할 수 있다. 스토리지 장치(100)는 S600 단계가 완료되면, S400 단계를 수행할 수 있다.
S500 단계에서 최소 리커버리 데이터 중 적어도 일부 데이터가 기입되지 않은 경우에는, S700 단계에서 스토리지 장치(100)는 스토리지 장치(100)를 사용불가 상태로 판단할 수 있다. 이에 따라, 스토리지 장치(100)는 호스트(200)에 사용불가 상태임을 알릴 수 있다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 장치가 적용된 시스템을 도시한 도면이다.
도 11을 참조하면, 도 11의 시스템(1000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 11의 시스템(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용(automotive) 장비 등이 될 수도 있다.
도 11을 참조하면, 시스템(1000)은 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator) 블록(1130)을 더 포함할 수 있다. 이와 같은 가속기 블록(1130)은 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.
스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다.
스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(universal flash storage)와 같은 표준 규약이 적용되는 장치일 수 있다.
스토리지 장치(1300a, 1300b)는 도 1 내지 도 10에서 설명된 스토리지 장치(100)로 구현될 수 있다. 따라서, 스토리지 장치(1300a, 1300b)는 갑작스러운 전원 차단이 발생하고, 퍼포먼스 패쓰에 고장이 감지되더라도 코어가 직접적으로 내부의 비휘발성 메모리에 접근하는 다이렉트 패쓰(DP)를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 스토리지 장치(1300a, 1300b)는 파워 페일로 인한 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지될 수 있고, 스토리지 장치(1300a, 1300b)의 계속 사용이 가능할 수 있다.
촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.
센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 등일 수 있다.
통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(1480)는 시스템(1000)과, 시스템(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
도 12는 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
도 12을 참조하면, 메모리 시스템(3000)은 메모리 장치(3100) 및 메모리 컨트롤러(3200)를 포함할 수 있다. 메모리 시스템(3000)은 도 1의 스토리지 장치(100)일 수 있고, 메모리 장치(3100)는 도 1의 비휘발성 메모리(120)일 수 있고, 메모리 컨트롤러(3200)는 도 1의 스토리지 컨트롤러(110)일 수 있다.
메모리 시스템(3000)은 복수의 채널들(CH1~CHm)을 지원할 수 있고, 메모리 장치(3100)와 메모리 컨트롤러(3200)는 복수의 채널들(CH1~CHm)을 통해 연결될 수 있다. 예를 들어, 메모리 시스템(3000)은 SSD와 같은 스토리지 장치로 구현될 수 있다. 메모리 장치(3100)는 도 1의 비휘발성 메모리(120)일 수 있고, 메모리 컨트롤러(322)는 도 1의 스토리지 컨트롤러(110)일 수 있다.
메모리 장치(3100)는 복수의 비휘발성 메모리 장치들(NVM11~NVMma)을 포함할 수 있다. 비휘발성 메모리 장치들(NVM11~NVMma) 각각은 대응하는 웨이(way)를 통해 복수의 채널들(CH1~CHm) 중 하나에 연결될 수 있다. 예를 들어, 비휘발성 메모리 장치들(NVM11~NVM1a)은 웨이들(W11~W1a)을 통해 제1 채널(CH1)에 연결되고, 비휘발성 메모리 장치들(NVM21~NVM2a)은 웨이들(W21~W2a)을 통해 제2 채널(CH2)에 연결될 수 있다. 예시적인 실시 예에서, 비휘발성 메모리 장치들(NVM11~NVMma) 각각은 메모리 컨트롤러(3200)로부터의 개별적인 명령에 따라 동작할 수 있는 임의의 메모리 단위로 구현될 수 있다. 예를 들어, 비휘발성 메모리 장치들(NVM11~NVMma) 각각은 메모리 칩(memory chip) 또는 다이(memory die)로 구현될 수 있으나, 본 개시는 이에 한정되는 것은 아니다.
메모리 컨트롤러(3200)는 복수의 채널들(CH1~CHm)을 통해 메모리 장치(3100)와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 채널들(CH1~CHm)을 통해 메모리 장치(3100)로 커맨드들(ICMD1~ICMDm), 어드레스들(ADDR1~ADDRm), 및 데이터(DATA1~DATAm)를 메모리 장치(3100)로 전송하거나, 메모리 장치(3100)로부터 데이터(DATA1~DATAm)를 수신할 수 있다.
메모리 컨트롤러(3200)는 각각의 채널을 통해 해당 채널에 연결된 비휘발성 메모리 장치들 중 하나를 선택하고, 선택된 비휘발성 메모리 장치와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)에 연결된 비휘발성 메모리 장치들(NVM11~NVM1a) 중 비휘발성 메모리 장치(NVM11)를 선택할 수 있다. 메모리 컨트롤러(3200)는 선택된 비휘발성 메모리 장치(NVM11)로 제1 채널(CH1)을 통해 커맨드(ICMD1), 어드레스(ADDR1), 및 데이터(DATA1)를 전송하거나, 선택된 비휘발성 메모리 장치(NVM11)로부터 데이터(DATA1)를 수신할 수 있다.
메모리 컨트롤러(3200)는 서로 다른 채널들을 통해 메모리 장치(3100)와 신호들을 병렬적으로 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)을 통해 메모리 장치(3100)로 커맨드(ICMD1)를 전송하는 동안 제2 채널(CH2)을 통해 메모리 장치(3100)로 커맨드(ICMD2)를 전송할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)을 통해 메모리 장치(3100)로부터 데이터(DATA1)를 수신하는 동안 제2 채널(CH2)을 통해 메모리 장치(3100)로부터 데이터(DATA2)를 수신할 수 있다.
메모리 컨트롤러(3200)는 메모리 장치(3100)의 전반적인 동작을 제어할 수 있다. 메모리 컨트롤러(3200)는 채널들(CH1~CHm)로 신호를 전송하여 채널들(CH1~CHm)에 연결된 비휘발성 메모리 장치들(NVM11~NVMma) 각각을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)로 커맨드(ICMD1) 및 어드레스(ADDR1)를 전송하여 비휘발성 메모리 장치들(NVM11~NVM1a) 중 선택된 하나를 제어할 수 있다.
비휘발성 메모리 장치들(NVM11~NVMma) 각각은 메모리 컨트롤러(3200)의 제어에 따라 동작할 수 있다. 예를 들어, 비휘발성 메모리 장치(NVM11)는 제1 채널(CH1)로 제공되는 커맨드(ICMD1), 어드레스(ADDR1), 및 데이터(DATA1)에 따라 데이터(DATA1)를 기입할 수 있다. 예를 들어, 비휘발성 메모리 장치(NVM21)는 제2 채널(CH2)로 제공되는 커맨드(ICMD2) 및 어드레스(ADDR2)에 따라 데이터(DATA2)를 독출하고, 독출된 데이터(DATA2)를 메모리 컨트롤러(3200)로 전송할 수 있다.
도 12에는 메모리 장치(3100)가 m개의 채널을 통해 메모리 컨트롤러(3200)와 통신하고, 메모리 장치(3100)가 각각의 채널에 대응하여 a개의 비휘발성 메모리 장치를 포함하는 것으로 도시되나, 채널들의 개수와 하나의 채널에 연결된 비휘발성 메모리 장치의 개수는 다양하게 변경될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 복수의 메모리 영역들을 포함하는 비휘발성 메모리;
    퍼포먼스 패쓰 및 적어도 하나의 다이렉트 패쓰를 통해 상기 비휘발성 메모리를 제어하고, 리커버리 데이터를 저장하는 버퍼 메모리를 포함하는 스토리지 컨트롤러를 포함하고,
    상기 스토리지 컨트롤러는, 전원이 차단되고 상기 퍼포먼스 패쓰에 고장이 감지되면, 상기 적어도 하나의 다이렉스 패쓰를 통해 리커버리 데이터를 상기 비휘발성 메모리에 기입하고,
    상기 퍼포먼스 패쓰는, 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고,
    상기 적어도 하나의 다이렉트 패쓰는, 데이터에 대한 기입 동작만을 수행하는 경로이고,
    상기 리커버리 데이터는 전원이 차단된 이후 다시 전원이 복구되었을 때, 복구하기 위해 필요한 데이터인 것을 특징으로 하는 스토리지 장치.
  2. 제1 항에 있어서,
    상기 스토리지 컨트롤러는,
    호스트와의 인터페이스에 관련된 동작을 수행하는 제1 코어; 및
    상기 비휘발성 메모리와의 인터페이스에 관련된 동작을 수행하는 제2 코어를 포함하고,
    상기 퍼포먼스 패쓰에 상기 제1 코어 및 상기 제2 코어가 포함되는 것을 특징으로 하는 스토리지 장치.
  3. 제2 항에 있어서,
    상기 적어도 하나의 다이렉트 패쓰는 제1 다이렉트 패쓰 및 제2 다이렉트 패쓰를 포함하고,
    상기 제1 코어는 상기 제1 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제1 메모리 영역에 상기 리커버리 데이터를 기입하고,
    상기 제2 코어는 상기 제2 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제2 메모리 영역에 상기 리커버리 데이터를 기입하는 것을 특징으로 하는 스토리지 장치.
  4. 제1 항에 있어서,
    상기 스토리지 컨트롤러는,
    호스트와의 인터페이스에 관련된 동작을 수행하는 복수의 제1 코어들; 및
    상기 비휘발성 메모리와의 인터페이스에 관련된 동작을 수행하는 복수의 제2 코어들을 포함하고,
    상기 퍼포먼스 패쓰에 상기 제1 코어들 및 상기 제2 코어들이 포함되고,
    전원이 차단되고 상기 퍼포먼스 패쓰에 고장이 감지되면, 상기 복수의 제1 코어들 각각은 상기 적어도 하나의 다이렉트 패쓰를 통해 동일한 상기 리커버리 데이터를 상기 비휘발성 메모리에 기입하는 것을 특징으로 하는 스토리지 장치.
  5. 제1 항에 있어서,
    상기 스토리지 컨트롤러는 상기 퍼포먼스 패쓰에 차례로 포함되는 제1 내지 제3 코어를 포함하고,
    전원이 차단되고 상기 퍼포먼스 패쓰에 고장이 감지되면, 상기 제1 코어 및 상기 제2 코어 각각은 상기 적어도 하나의 다이렉트 패쓰를 통해 동일한 상기 리커버리 데이터를 상기 비휘발성 메모리에 기입하는 것을 특징으로 하는 스토리지 장치.
  6. 제5 항에 있어서,
    상기 적어도 하나의 다이렉트 패쓰는 제1 내지 제3 다이렉트 패쓰를 포함하고,
    상기 제1 코어는 상기 제1 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제1 메모리 영역에 상기 리커버리 데이터를 기입하고,
    상기 제3 코어는 상기 제3 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제2 메모리 영역에 상기 리커버리 데이터를 기입하는 것을 특징으로 하는 스토리지 장치.
  7. 제1 항에 있어서,
    상기 리커버리 데이터는, 사용자 데이터, 디버그 데이터, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치.
  8. 스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법으로서,
    전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면, 코어를 선택하고, 버퍼 메모리에 기입된 리커버리 데이터를 수집하는 단계; 및
    선택된 코어에 대응하는 다이렉트 패쓰를 통해 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 포함하고,
    상기 퍼포먼스 패쓰는, 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고,
    상기 다이렉트 패쓰는, 데이터에 대한 기입 동작만을 수행하는 경로이고,
    상기 리커버리 데이터는 전원이 차단된 이후 다시 전원이 복구되었을 때, 복구하기 위해 필요한 데이터인 것을 특징으로 하는 스토리지 장치의 동작 방법.
  9. 제8 항에 있어서,
    전원이 차단되고 퍼포먼스 패쓰가 정상으로 판단되면, 상기 퍼포먼스 패쓰를 통해 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  10. 제8 항에 있어서,
    상기 리커버리 데이터는, 사용자 데이터, 디버그 데이터, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  11. 제8 항에 있어서,
    상기 리커버리 데이터의 제1 데이터 내지 제n 데이터를 상기 비휘발성 메모리에 기입하는 기입 동작들 각각이 지정된 시간 내에 완료된 경우, 상기 퍼포먼스 패쓰를 정상으로 판단하는 단계를 더 포함하는 스토리지 장치의 동작 방법.
  12. 제8 항에 있어서,
    상기 리커버리 데이터가 기입될 상기 비휘발성 메모리의 위치 정보를 포함하는 기입 정보를 설정하는 단계를 더 포함하고,
    상기 리커버리 데이터를 기입하는 단계는, 상기 기입 정보에 기초하여 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  13. 제12 항에 있어서,
    상기 비휘발성 메모리는 복수의 메모리 영역들을 포함하고,
    상기 리커버리 데이터를 기입하는 단계는, 상기 기입 정보에 기초하여 상기 복수의 메모리 영역들 중 상기 선택된 코어에 대응하는 메모리 영역에 상기 리커버리 데이터를 기입하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  14. 제8 항에 있어서,
    상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
    상기 지정된 위치에 상기 리커버리 데이터가 모두 기입된 경우, 상기 비휘발성 메모리를 오픈하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  15. 제8 항에 있어서,
    상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
    상기 지정된 위치에 상기 리커버리 데이터 중 최소 리커버리 데이터가 기입된 경우, 상기 최소 리커버리 데이터에 대응하는 사용자 데이터에 데이터 불량 표시하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  16. 제15 항에 있어서,
    상기 최소 리커버리 데이터는, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  17. 제15 항에 있어서,
    상기 지정된 위치에 상기 리커버리 데이터 중 최소 리커버리 데이터가 기입된 경우, 상기 최소 리커버리 데이터에 대응하는 사용자 데이터에 따른 응답 신호로서 에러 신호를 호스트로 전송하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  18. 스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법으로서,
    버퍼 메모리에 기입된 리커버리 데이터를 상기 비휘발성 메모리에 기입하기 위한 기입 정보를 설정하는 단계;
    전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면, 코어를 선택하고, 상기 리커버리 데이터를 수집하는 단계; 및
    선택된 코어에 대응하는 다이렉트 패쓰를 통해 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 포함하고,
    상기 퍼포먼스 패쓰는 복수의 코어들을 포함하고, 상기 다이렉트 패쓰는 대응하는 하나의 코어를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  19. 제18 항에 있어서,
    상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
    상기 지정된 위치에 상기 리커버리 데이터가 모두 기입된 경우, 상기 비휘발성 메모리를 오픈하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  20. 제18 항에 있어서,
    상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
    상기 지정된 위치에 상기 리커버리 데이터 중 최소 리커버리 데이터가 기입된 경우, 상기 최소 리커버리 데이터에 대응하는 사용자 데이터에 데이터 불량 표시하는 단계를 더 포함하고,
    상기 최소 리커버리 데이터는, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
KR1020220012595A 2021-11-10 2022-01-27 스토리지 장치 및 이의 동작 방법 KR102553263B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP22198600.3A EP4181125A3 (en) 2021-11-10 2022-09-29 Storage device and operating method thereof
CN202211337580.4A CN116107492A (zh) 2021-11-10 2022-10-28 存储装置及其操作方法
US17/978,415 US20230142479A1 (en) 2021-11-10 2022-11-01 Storage device and operating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210154270 2021-11-10
KR20210154270 2021-11-10

Publications (2)

Publication Number Publication Date
KR20230068240A KR20230068240A (ko) 2023-05-17
KR102553263B1 true KR102553263B1 (ko) 2023-07-10

Family

ID=86547191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220012595A KR102553263B1 (ko) 2021-11-10 2022-01-27 스토리지 장치 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR102553263B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102317788B1 (ko) 2021-05-14 2021-10-26 삼성전자주식회사 스토리지 장치 및 스토리지 컨트롤러의 동작 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333484B1 (ko) * 1999-12-21 2002-04-25 오길록 이중화된 데이터 채널을 갖는 동시 쓰기 방식을 적용한결함 허용 제어 시스템
KR102148197B1 (ko) * 2015-01-27 2020-08-26 에스케이하이닉스 주식회사 반도체 장치
KR20160144564A (ko) * 2015-06-08 2016-12-19 삼성전자주식회사 불휘발성 메모리 모듈 및 그것의 동작 방법
KR102473209B1 (ko) * 2015-12-14 2022-12-02 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20210034456A (ko) * 2019-09-20 2021-03-30 삼성전자주식회사 메모리 컨트롤러, 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102317788B1 (ko) 2021-05-14 2021-10-26 삼성전자주식회사 스토리지 장치 및 스토리지 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
KR20230068240A (ko) 2023-05-17

Similar Documents

Publication Publication Date Title
KR102465321B1 (ko) 데이터 저장 장치
KR20170053278A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102233400B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20200085967A (ko) 데이터 저장 장치 및 그 동작 방법
KR20190083148A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US11704048B2 (en) Electronic device
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
KR20200076431A (ko) 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20180097026A (ko) 불휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치 및 데이터 저장 장치의 동작 방법
KR20170094674A (ko) 데이터 저장 장치
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190006677A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102434840B1 (ko) 데이터 저장 장치
KR102474937B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20220103340A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190095825A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210156010A (ko) 저장 장치 및 그 동작 방법
KR102475688B1 (ko) 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그것의 동작 방법
KR102553263B1 (ko) 스토리지 장치 및 이의 동작 방법
KR20160119607A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190041082A (ko) 데이터 저장 장치 및 그것의 동작 방법
EP4181125A2 (en) Storage device and operating method thereof
US11281590B2 (en) Controller, operating method thereof and storage device including the same
KR20180121733A (ko) 데이터 저장 장치 및 그것의 동작 방법

Legal Events

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