KR20230068240A - Storage device including the same and method of operating the same - Google Patents

Storage device including the same and method of operating the same Download PDF

Info

Publication number
KR20230068240A
KR20230068240A KR1020220012595A KR20220012595A KR20230068240A KR 20230068240 A KR20230068240 A KR 20230068240A KR 1020220012595 A KR1020220012595 A KR 1020220012595A KR 20220012595 A KR20220012595 A KR 20220012595A KR 20230068240 A KR20230068240 A KR 20230068240A
Authority
KR
South Korea
Prior art keywords
data
memory
path
recovery data
core
Prior art date
Application number
KR1020220012595A
Other languages
Korean (ko)
Other versions
KR102553263B1 (en
Inventor
이영식
신승현
유선미
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP22198600.3A priority Critical patent/EP4181125A3/en
Priority to CN202211337580.4A priority patent/CN116107492A/en
Priority to US17/978,415 priority patent/US20230142479A1/en
Publication of KR20230068240A publication Critical patent/KR20230068240A/en
Application granted granted Critical
Publication of KR102553263B1 publication Critical patent/KR102553263B1/en

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

Abstract

스토리지 장치 및 이의 동작 방법이 개시된다. 스토리지 장치는, 복수의 메모리 영역들을 포함하는 비휘발성 메모리, 퍼포먼스 패쓰 및 적어도 하나의 다이렉트 패쓰를 통해 비휘발성 메모리를 제어하고 리커버리 데이터를 저장하는 버퍼 메모리를 포함하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면적어도 하나의 다이렉스 패쓰를 통해 리커버리 데이터를 비휘발성 메모리에 기입하고, 퍼포먼스 패쓰는 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고, 적어도 하나의 다이렉트 패쓰는 데이터에 대한 기입 동작만을 수행하는 경로일 수 있다.A storage device and a method of operating the same are disclosed. The storage device includes a storage controller including a non-volatile memory including a plurality of memory areas, a performance path, and a buffer memory that controls the non-volatile memory and stores recovery data through a performance path and at least one direct path. , When power is cut off and a failure is detected in the performance path, recovery data is written to a non-volatile memory through at least one direct path, and the performance path is a path for performing a write operation, a read operation, and an erase operation for data, At least one direct path may be a path that performs only a write operation on data.

Description

스토리지 장치 및 이의 동작 방법{STORAGE DEVICE INCLUDING THE SAME AND METHOD OF OPERATING THE SAME}Storage device and its operating method {STORAGE DEVICE INCLUDING THE SAME AND METHOD OF OPERATING THE SAME}

본 개시의 기술적 사상은 스토리지 장치 및 이의 동작 방법에 관한 것으로서, 더욱 상세하게는 전원 차단 복구(power off recovery) 동작을 수행하는 스토리지 장치 및 이의 동작 방법에 관한 것이다.The technical idea of the present disclosure relates to a storage device and an operating method thereof, and more particularly, to a storage device performing a power off recovery operation and an operating method thereof.

비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 eMMC(embedded Multi-Media Card), UFS(Universal Flash Storage), SSD(Solid State Drive), 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다. 스토리지 장치의 신뢰성을 향상시킬 수 있는 방법 및 장치에 대한 요구가 지속적으로 제기되고 있다.As a non-volatile memory, flash memory can retain stored data even when power is cut off. Recently, storage devices including flash memories such as embedded multi-media cards (eMMC), universal flash storage (UFS), solid state drives (SSDs), and memory cards have been widely used, and storage devices store large amounts of data. It is useful for moving or moving. Demands for methods and devices capable of improving the reliability of storage devices are continuously raised.

외부 요인에 의하여 전원이 급작스럽게 오프되는 예를 들어, 파워 페일(power fail)이 발생할 경우, 스토리지 장치 내부의 버퍼 메모리에 존재하던 데이터가 손실될 수 있다. 이를 방지하기 위해, PLP(power loss protection)를 적용할 수 있다. PLP가 적용된 경우, 파워 로스(power loss)시, 예비 전력을 공급하여 버퍼 메모리에 존재하는 데이터를 비휘발성 메모리로 이동시킬 수 있다.When power is suddenly turned off by an external factor, for example, a power failure occurs, data existing in a buffer memory inside the storage device may be lost. To prevent this, power loss protection (PLP) may be applied. When the PLP is applied, in case of power loss, data existing in the buffer memory may be moved to the non-volatile memory by supplying reserve power.

본 개시의 기술적 사상이 해결하고자 하는 과제는, 파워 페일 처리 도중 오류가 발생하더라도 에러 상태가 되는 것이 방지될 수 있는 스토리지 장치 및 이의 동작 방법을 제공하는 데에 있다.An object to be solved by the technical idea of the present disclosure is to provide a storage device and an operating method thereof capable of preventing an error state even when an error occurs during power fail processing.

상기 기술적 과제를 달성하기 위한 본 개시의 기술적 사상에 따른 스토리지 장치는, 복수의 메모리 영역들을 포함하는 비휘발성 메모리, 퍼포먼스 패쓰 및 적어도 하나의 다이렉트 패쓰를 통해 비휘발성 메모리를 제어하고 리커버리 데이터를 저장하는 버퍼 메모리를 포함하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면적어도 하나의 다이렉스 패쓰를 통해 리커버리 데이터를 비휘발성 메모리에 기입하고, 퍼포먼스 패쓰는 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고, 적어도 하나의 다이렉트 패쓰는 데이터에 대한 기입 동작만을 수행하는 경로일 수 있다.A storage device according to the technical idea of the present disclosure for achieving the above technical problem is to control the nonvolatile memory and store recovery data through a nonvolatile memory including a plurality of memory areas, a performance path, and at least one direct path. A storage controller including a buffer memory, wherein the storage controller writes recovery data to a non-volatile memory through at least one direct path when power is cut off and a failure is detected in the performance path, and the performance path is A path for performing a write operation, a read operation, and an erase operation, and at least one direct path may be a path for performing only a write operation on data.

상기 기술적 과제를 달성하기 위한 본 개시의 기술적 사상에 따른 스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법은, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면 코어를 선택하고 버퍼 메모리에 기입된 리커버리 데이터를 수집하는 단계, 및 선택된 코어에 대응하는 다이렉트 패쓰를 통해 비휘발성 메모리에 리커버리 데이터를 기입하는 단계를 포함하고, 퍼포먼스 패쓰는 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고, 다이렉트 패쓰는 데이터에 대한 기입 동작만을 수행하는 경로일 수 있다.In an operating method of a storage device including a storage controller and a non-volatile memory according to the technical idea of the present disclosure for achieving the above technical problem, when power is cut off and a failure in a performance path is detected, a core is selected and written to a buffer memory. Collecting recovery data, and writing the recovery data to a non-volatile memory through a direct path corresponding to the selected core, and the performance path is a path for performing a write operation, a read operation, and an erase operation for data. , the direct path may be a path that performs only a write operation on data.

상기 기술적 과제를 달성하기 위한 본 개시의 기술적 사상에 따른 스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법은, 버퍼 메모리에 기입된 리커버리 데이터를 비휘발성 메모리에 기입하기 위한 기입 정보를 설정하는 단계, 전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면, 코어를 선택하고 리커버리 데이터를 수집하는 단계, 및 선택된 코어에 대응하는 다이렉트 패쓰를 통해 비휘발성 메모리에 리커버리 데이터를 기입하는 단계를 포함하고, 퍼포먼스 패쓰는 복수의 코어들을 포함하고, 다이렉트 패쓰는 대응하는 하나의 코어를 포함할 수 있다.A method of operating a storage device including a storage controller and a non-volatile memory according to the technical idea of the present disclosure for achieving the above technical problem includes setting write information for writing recovery data written in a buffer memory to a non-volatile memory. Step, when power is cut off and a failure is detected in the performance path, selecting a core and collecting recovery data, and writing recovery data to a non-volatile memory through a direct path corresponding to the selected core, A path may include a plurality of cores, and a direct path may include a corresponding one core.

본 개시의 기술적 사상에 따른 스토리지 장치는, 퍼포먼스 패쓰에 고장(fault)이 감지된 경우 코어가 직접적으로 비휘발성 메모리에 접근하는 다이렉트 패쓰를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 갑작스런 전원 차단 이후 오류, 즉, 파워 페일 처리 도중 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지되고, 스토리지 장치의 계속 사용이 가능할 수 있다.In the storage device according to the technical idea of the present disclosure, when a fault is detected in the performance path, recovery data stored in the buffer memory may be stored in the non-volatile memory through a direct path through which the core directly accesses the non-volatile memory. . Accordingly, even if an error occurs after a sudden power failure, ie, an error occurs during power failure processing, the storage device is prevented from entering an error state, and the storage device can be continuously used.

본 개시의 예시적 실시 예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 본 개시의 예시적 실시 예들에 대한 기재로부터 본 개시의 예시적 실시 예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시 예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시 예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.Effects that can be obtained in the exemplary embodiments of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned above can be obtained from the description of the exemplary embodiments of the present disclosure below. It can be clearly derived and understood by those skilled in the art to which they belong. That is, unintended effects according to the exemplary embodiments of the present disclosure may also be derived by those skilled in the art from the exemplary embodiments of the present disclosure.

도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 스토리지 컨트롤러를 나타내는 블록도이다.
도 3 내지 도 5는 본 개시의 예시적인 실시 예에 따른 스토리지 장치에 전원이 차단될 때, 비휘발성 메모리에 데이터를 기입하는 동작을 설명하기 위한 도면들이다.
도 6는 도 1의 비휘발성 메모리에 포함된 복수의 메모리 장치들 중 하나의 메모리 장치를 설명하는 블록도이다.
도 7은 도 2의 버퍼 메모리에 저장된 리커버리 데이터를 설명하기 위한 도면이다.
도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 9는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 10은 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 11은 본 개시의 예시적 실시 예에 따른 스토리지 장치가 적용된 시스템을 도시한 도면이다.
도 12는 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
1 is a block diagram illustrating a storage system according to an exemplary embodiment of the present disclosure.
2 is a block diagram illustrating a storage controller of a storage device according to an exemplary embodiment of the present disclosure.
3 to 5 are diagrams for describing an operation of writing data to a nonvolatile memory when power is cut off to a storage device according to an exemplary embodiment of the present disclosure.
FIG. 6 is a block diagram illustrating one memory device among a plurality of memory devices included in the nonvolatile memory of FIG. 1 .
FIG. 7 is a diagram for explaining recovery data stored in the buffer memory of FIG. 2 .
8 is a flowchart illustrating a method of operating a storage device according to an exemplary embodiment of the present disclosure.
9 is a flowchart illustrating a method of operating a storage device according to an exemplary embodiment of the present disclosure.
10 is a flowchart illustrating a method of operating a storage device according to an exemplary embodiment of the present disclosure.
11 is a diagram illustrating a system to which a storage device according to an exemplary embodiment of the present disclosure is applied.
12 is a block diagram illustrating a memory system according to an exemplary embodiment of the inventive concept.

이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다.Hereinafter, various embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템(10)을 나타내는 블록도이다.1 is a block diagram illustrating a storage system 10 according to an exemplary embodiment of the present disclosure.

스토리지 시스템(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), 웨어러블 기기 등일 수 있다.The storage system 10 may be implemented as, for example, a personal computer (PC), a data server, a network-attached storage (NAS), an Internet of Things (IoT) device, or a portable electronic device. Portable electronic devices include laptop computers, mobile phones, smart phones, tablet PCs, personal digital assistants (PDAs), enterprise digital assistants (EDAs), digital still cameras, digital video cameras, audio devices, portable multimedia players (PMPs), and PNDs. (personal navigation device), MP3 player, handheld game console, e-book, wearable device, and the like.

스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함할 수 있다. 호스트(200)는 스토리지 장치(100)의 동작을 제어할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 하나 이상의 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함할 수 있다. 스토리지 장치(100)가 솔리드 스테이트 드라이브를 포함하는 경우, 스토리지 장치(100)는 데이터를 저장하는 복수의 플래시 메모리 장치들(예를 들어, NAND 메모리 장치들)을 포함할 수 있다. The storage system 10 may include a storage device 100 and a host 200 . The host 200 may control the operation of the storage device 100 . In an example embodiment, the storage device 100 may include one or more solid state drives (SSDs). When the storage device 100 includes a solid state drive, the storage device 100 may include a plurality of flash memory devices (eg, NAND memory devices) that store data.

스토리지 장치(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)일 수 있다.The storage device 100 may correspond to a flash memory device including one or more flash memory devices. In an exemplary embodiment, the storage device 100 may be an embedded memory built into the storage system 10 . For example, the storage device 100 may be an embedded multi-media card (eMMC) or an embedded universal flash storage (UFS) memory device. In an exemplary embodiment, the storage device 100 may be an external memory removable from the storage system 10 . For example, the storage device 100 may include a UFS memory card, Compact Flash (CF), Secure Digital (SD), Micro Secure Digital (Micro-SD), Mini Secure Digital (Mini-SD), extreme Digital (xD), or It may be a memory stick.

도 1을 참조하면, 스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함할 수 있다. 호스트(200) 및 스토리지 장치(100)는 다양한 인터페이스를 통하여 서로 통신할 수 있다. 스토리지 장치(100)는 신호 커넥터(signal connector, 140)를 통해 호스트(200)와 신호를 주고 받을 수 있고, 파워 커넥터(power connector, 150)를 통해 전원을 입력 받을 수 있다. Referring to FIG. 1 , a storage system 10 may include a storage device 100 and a host 200 . The host 200 and the storage device 100 may communicate with each other through various interfaces. The storage device 100 may exchange signals with the host 200 through a signal connector 140 and receive power through a power connector 150 .

호스트(200)는 리드 요청 및 프로그램 요청 등의 요청(REQ)을 스토리지 장치(100)에 전달할 수 있다. 예시적인 실시 예에서, 호스트(200)는 AP(Application Processor) 또는 SoC(System-On-a-Chip, SoC)로 구현될 수 있다. The host 200 may transmit a request (REQ) such as a read request and a program request to the storage device 100 . In an exemplary embodiment, the host 200 may be implemented as an Application Processor (AP) or System-On-a-Chip (SoC).

스토리지 장치(100)는 스토리지 컨트롤러(110), 비휘발성 메모리(120) 및 보조 전원 장치(130)를 포함할 수 있다.The storage device 100 may include a storage controller 110 , a non-volatile memory 120 and an auxiliary power supply 130 .

스토리지 컨트롤러(110)는 신호 커넥터(140)를 통해 호스트(200)와 신호들을 주고 받을 수 있다. 여기에서, 신호들에는 요청(REQ), 데이터(DATA) 및 에러 신호(ES) 등이 포함될 수 있다. The storage controller 110 may exchange signals with the host 200 through the signal connector 140 . Here, the signals may include a request (REQ), data (DATA), and an error signal (ES).

스토리지 컨트롤러(110)는 채널(CH)을 통해 비휘발성 메모리(120)의 동작을 제어할 수 있다. 스토리지 컨트롤러(110)는 호스트(200)로부터의 리드 요청에 응답하여 비휘발성 메모리(120)에 저장된 데이터(DATA)를 독출하거나, 또는 호스트(200)로부터의 라이트 요청에 응답하여 비휘발성 메모리(120)에 데이터(DATA)를 기입하도록 비휘발성 메모리(120)를 제어할 수 있다. The storage controller 110 may control the operation of the nonvolatile memory 120 through a channel CH. The storage controller 110 reads data DATA stored in the nonvolatile memory 120 in response to a read request from the host 200, or reads data DATA stored in the nonvolatile memory 120 in response to a write request from the host 200. The non-volatile memory 120 may be controlled to write data DATA to .

예시적인 실시 예에서, 비휘발성 메모리(120)는 데이터를 저장하는 복수의 메모리 장치(121)들을 포함할 수 있다. 복수의 메모리 장치들 각각은 반도체 칩, 또는 반도체 다이(die)일 수 있다. 복수의 메모리 장치들 각각은 대응하는 채널에 연결될 수 있다. 예를 들어, 복수의 메모리 장치(121)들은 제1 채널을 통해 스토리지 컨트롤러(110)와 연결되는 제1 메모리 장치들, 제2 채널을 통해 스토리지 컨트롤러(110)와 연결되는 제2 메모리 장치들, 및 제m 채널을 통해 스토리지 컨트롤러(110)와 연결되는 제m 메모리 장치들을 포함할 수 있다. 이 때, m는 2이상의 자연수일 수 있다. 복수의 메모리 장치(121)들 중 동일한 채널에 연결된 복수의 메모리 장치들은 인터리빙 방식으로 기입 동작, 독출 동작 및 소거 동작이 수행될 수 있다.In an exemplary embodiment, the non-volatile memory 120 may include a plurality of memory devices 121 that store data. Each of the plurality of memory devices may be a semiconductor chip or a semiconductor die. Each of the plurality of memory devices may be connected to a corresponding channel. For example, the plurality of memory devices 121 include first memory devices connected to the storage controller 110 through a first channel, second memory devices connected to the storage controller 110 through a second channel, and m th memory devices connected to the storage controller 110 through an m th channel. In this case, m may be a natural number of 2 or more. A plurality of memory devices connected to the same channel among the plurality of memory devices 121 may perform a write operation, a read operation, and an erase operation in an interleaved manner.

복수의 메모리 장치(121)들 각각은 메모리 셀 어레이를 포함할 수 있고, 예시적인 실시 예에서, 메모리 셀 어레이는 플래시 메모리 셀들을 포함할 수 있고, 예를 들어, 플래시 메모리 셀들은 낸드(NAND) 플래시 메모리 셀들일 수 있다. 그러나, 본 개시는 이에 한정되지 않고, 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수도 있다.Each of the plurality of memory devices 121 may include a memory cell array, and in an exemplary embodiment, the memory cell array may include flash memory cells, for example, the flash memory cells may include NAND may be flash memory cells. However, the present disclosure is not limited thereto, and the memory cells may be resistive memory cells such as resistive RAM (ReRAM), phase change RAM (PRAM), and magnetic RAM (MRAM).

보조 전원 장치(130)는 파워 커넥터(150)를 통해 호스트(200)와 연결될 수 있다. 보조 전원 장치(130)는 호스트(200)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 다만, 보조 전원 장치(130)는 스토리지 장치(100) 내에 위치할 수도 있고, 스토리지 장치(100) 밖에 위치할 수도 있다. 보조 전원 장치(130)는 전원(PWR)에 기초하여, 내부 전원 전압을 생성할 수 있고, 스토리지 컨트롤러(110) 및 비휘발성 메모리(120)에 내부 전원 전압을 제공할 수 있다. The auxiliary power supply 130 may be connected to the host 200 through the power connector 150 . The auxiliary power supply 130 may receive power (PWR) from the host 200 and may be charged. However, the auxiliary power supply 130 may be located within the storage device 100 or outside the storage device 100 . The auxiliary power supply 130 may generate an internal power voltage based on the power supply PWR and provide the internal power voltage to the storage controller 110 and the nonvolatile memory 120 .

예시적인 실시 예에서, 보조 전원 장치(130)는 전원 손실 보호 집적 회로(Power-Loss Protection Integrated Circuit; PLP IC)를 포함할 수 있다. 전원 손실 보호 집적 회로는 스토리지 장치(100)의 전원이 갑자기 차단(오프, off)된 경우에(즉, sudden power off 또는 power fail), 보조 전원 전압을 일정 시간 동안 생성하고, 스토리지 컨트롤러(110) 및 비휘발성 메모리(120)에 제공할 수 있다. In an exemplary embodiment, the auxiliary power supply 130 may include a Power-Loss Protection Integrated Circuit (PLP IC). When the power of the storage device 100 is suddenly cut off (off) (ie, sudden power off or power fail), the power loss protection integrated circuit generates an auxiliary power supply voltage for a predetermined time, and the storage controller 110 And it can be provided to the non-volatile memory 120.

스토리지 컨트롤러(110)는 일반 동작 시, 즉, 전원이 공급되는 동안, 퍼포먼스 패쓰(performance path, PP)를 통해 비휘발성 메모리(120)에 데이터를 기입할 수 있다. 반면, 갑작스럽게 전원 차단이 발생되고, 퍼포먼스 패쓰(PP)에 고장(fault)이 감지된 경우에는, 다이렉트 패쓰(direct path, DP)를 통해 비휘발성 메모리(120)에 데이터를 기입할 수 있다. 이 때, 퍼포먼스 패쓰(PP)는, 스토리지 컨트롤러(110)에 포함된 코어가 여러 모듈을 거쳐 비휘발성 메모리(120)에 대한 동작, 예를 들어, 기입(program) 동작, 독출 동작, 및 소거 동작을 수행하는 경로일 수 있다. 반면, 다이렉트 패쓰(DP)는, 스토리지 컨트롤러(110)에 포함된 코어가 다른 모듈을 거치지 않고, 직접 데이터를 비휘발성 메모리(120)에 기입하는 경로일 수 있다. 즉, 다이렉트 패쓰(DP)는 전원 차단 시에 스토리지 컨트롤러(110)의 버퍼 메모리에 기입된 데이터를 비휘발성 메모리(120)에 옮겨 기입하는 동작을 수행하기 위해 정의된 별도의 경로일 수 있다.The storage controller 110 may write data into the nonvolatile memory 120 through a performance path (PP) during normal operation, that is, while power is supplied. On the other hand, when power is suddenly cut off and a fault is detected in the performance path (PP), data may be written into the nonvolatile memory 120 through a direct path (DP). At this time, in the performance path (PP), the core included in the storage controller 110 passes through several modules to perform operations on the non-volatile memory 120, such as a program operation, a read operation, and an erase operation. may be a path that performs On the other hand, the direct path DP may be a path through which a core included in the storage controller 110 directly writes data into the nonvolatile memory 120 without going through another module. That is, the direct path DP may be a separate path defined to perform an operation of moving data written in the buffer memory of the storage controller 110 to the non-volatile memory 120 when power is cut off.

예시적인 실시 예에서, 스토리지 컨트롤러(110)는 퍼포먼스 패쓰(PP)의 고장 발생 여부를 assert 또는 core hang으로부터 판단할 수 있다. 또는, 예시적인 실시 예에서, 스토리지 컨트롤러(110)는 퍼포먼스 패쓰(PP)를 통한 전원 차단 처리 동작의 각 step들이 지정된 시간 내에 처리되지 못한 것으로 판단하면, 퍼포먼스 패쓰(PP)에 고장이 발생한 것으로 판단할 수 있다.In an exemplary embodiment, the storage controller 110 may determine whether a failure of the performance path (PP) has occurred from an assert or a core hang. Alternatively, in an exemplary embodiment, the storage controller 110 determines that a failure has occurred in the performance path (PP) when it is determined that each step of the power-off processing operation through the performance path (PP) is not processed within a specified time. can do.

본 개시에 따른 스토리지 장치(100)는 퍼포먼스 패쓰(PP)에 고장이 감지된 경우, 특정 코어가 직접적으로 비휘발성 메모리(120)에 접근하는 다이렉트 패쓰(DP)를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 파워 페일 처리 도중 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지되고, 스토리지 장치의 계속 사용이 가능할 수 있다. 리커버리 데이터의 구성에 대해서는 도 7에서 구체적으로 후술하겠다.In the storage device 100 according to the present disclosure, when a failure is detected in the performance path (PP), recovery data stored in the buffer memory is retrieved through a direct path (DP) through which a specific core directly accesses the nonvolatile memory 120. It can be stored in non-volatile memory. Accordingly, even if an error occurs during power fail processing, the storage device is prevented from falling into an error state, and the storage device can be continuously used. The configuration of recovery data will be described later in detail with reference to FIG. 7 .

스토리지 장치(100)는 갑작스러운 전원 차단에 의해 사용자 데이터가 비휘발성 메모리(120)에 기입되지 못하는 경우에는, 호스트(200)로 에러 신호(ES)를 전송할 수 있다. 예를 들어, 에러 신호(ES)는 rebuild assist로서 호스트(200)에 전송될 수 있다. The storage device 100 may transmit an error signal ES to the host 200 when user data cannot be written to the nonvolatile memory 120 due to sudden power cutoff. For example, the error signal ES may be transmitted to the host 200 as a rebuild assist.

도 2는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 스토리지 컨트롤러(110)를 나타내는 블록도이다.2 is a block diagram illustrating the storage controller 110 of the storage device 100 according to an exemplary embodiment of the present disclosure.

도 1 및 도 2를 참조하면, 스토리지 컨트롤러(110)는 프로세서(111), 호스트 인터페이스(114) 및 메모리 인터페이스(115)를 포함할 수 있다. 또한, 스토리지 컨트롤러(110)는 플래시 변환 레이어(Flash Translation Layer(FTL), 112), 버퍼 메모리(113)를 포함할 수 있다. 스토리지 컨트롤러(110)는 플래시 변환 레이어(112)가 로딩되는 워킹 메모리를 더 포함할 수 있으며, 프로세서(111)가 플래시 변환 레이어(112)를 실행하는 것에 의해 비휘발성 메모리(120)에 대한 데이터 기입 및 독출 동작이 제어될 수 있다. 이러한 스토리지 컨트롤러(110)의 구성들은 버스(116)를 통해 서로 통신할 수 있다.Referring to FIGS. 1 and 2 , the storage controller 110 may include a processor 111 , a host interface 114 and a memory interface 115 . In addition, the storage controller 110 may include a flash translation layer (FTL) 112 and a buffer memory 113 . The storage controller 110 may further include a working memory into which the flash conversion layer 112 is loaded, and the processor 111 executes the flash conversion layer 112 to write data into the non-volatile memory 120. and a read operation may be controlled. Components of the storage controller 110 may communicate with each other through the bus 116 .

프로세서(111)은 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 스토리지 컨트롤러(110)의 전반적인 동작을 제어할 수 있다. 프로세서(111)는 특정 동작을 수행하도록 구성되는 프로그램 코드의 명령어 집합을 실행할 수 있는 하나 이상의 코어들을 포함할 수 있다. 예를 들어, 프로세서(111)는 워킹 메모리에 저장된 펌웨어의 명령 코드를 실행할 수 있다.The processor 111 may include a central processing unit or a microprocessor, and may control overall operations of the storage controller 110 . The processor 111 may include one or more cores capable of executing an instruction set of program code configured to perform a specific operation. For example, the processor 111 may execute command codes of firmware stored in the working memory.

프로세서(111)는 비휘발성 메모리(120)에 데이터를 기입하거나, 비휘발성 메모리(120)로부터 데이터를 독출하거나, 데이터를 소거하기 위해 퍼포먼스 패쓰(PP)에 포함된 스토리지 컨트롤러(110)의 각 구성을 제어할 수 있다. 프로세서(111)는 전원 차단이 감지되면, 우선 퍼포먼스 패쓰(PP)에 포함된 스토리지 컨트롤러(110)의 각 구성을 제어함으로써, 버퍼 메모리(113)에 기입된 데이터를 비휘발성 메모리(120)에 전원 차단 처리 동작을 수행할 수 있다. The processor 111 writes data to the non-volatile memory 120, reads data from the non-volatile memory 120, or erases data from each component of the storage controller 110 included in the performance path PP. can control. When a power cut is detected, the processor 111 first controls each component of the storage controller 110 included in the performance path (PP) to transfer data written in the buffer memory 113 to the non-volatile memory 120 with power. A block processing operation can be performed.

예시적인 실시 예에서, 프로세서(111)는 하나의 코어를 포함할 수 있다. 프로세서(111)의 코어는, 전원이 차단되고 퍼포먼스 패쓰(PP)에 고장이 감지되면, 전용 컨택스트를 실행하여 버퍼 메모리(113)에 저장된 리커버리 데이터를 비휘발성 메모리(120)에 저장하는 동작을 수행할 수 있다. 예를 들어, 프로세서(111)의 코어는, 인터럽트 컨택스트를 실행하거나, RTOS(real time operating system) 태스크를 처리함으로써 상기 동작을 수행할 수 있고, 프로세서(111)의 코어가 상기 동작을 수행하기 위한 경로가 다이렉트 패쓰(DP)로 정의될 수 있다. 또는, 예시적인 실시 예에서, 프로세서(111)는 복수의 코어들을 포함할 수 있고, 복수의 코어들을 포함하는 프로세서(111)의 동작에 대해서는 도 3, 도 4 및 도 5 등에서 자세히 후술하겠다.In an exemplary embodiment, the processor 111 may include one core. When power is cut off and a failure is detected in the performance path (PP), the core of the processor 111 executes a dedicated context to store the recovery data stored in the buffer memory 113 in the non-volatile memory 120. can be done For example, the core of the processor 111 may perform the operation by executing an interrupt context or processing a real time operating system (RTOS) task, and the core of the processor 111 may perform the operation. A path may be defined as a direct path (DP). Alternatively, in an exemplary embodiment, the processor 111 may include a plurality of cores, and operations of the processor 111 including the plurality of cores will be described later in detail with reference to FIGS. 3, 4, and 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) 등에 따른 인터페이스를 제공할 수 있다.The host interface 114 may transmit and receive packets with the host 100 . A packet transmitted from the host 100 to the host interface 114 may include a request (REQ in FIG. 1) or data to be written to the non-volatile memory 220 (DATA in FIG. 1), etc. ) to the host 100 may include a response to the request REQ or data DATA read from the nonvolatile memory 220 . For example, the host interface 114 may be Universal Serial Bus (USB), MMC, PCI Express (PCI-E), AT Attachment (ATA), Serial AT Attachment (SATA), Parallel AT Attachment (PATA), Small Computer (SCSI) System Interface), SAS (Serial Attached SCSI), ESDI (Enhanced Small Disk Interface), IDE (Integrated Drive Electronics), etc.

메모리 인터페이스(115)는 비휘발성 메모리(220)에 기록될 데이터를 비휘발성 메모리(220)로 전송하거나, 비휘발성 메모리(220)로부터 독출된 데이터를 수신할 수 있다. 이러한 메모리 인터페이스(115)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.The memory interface 115 may transmit data to be written in the nonvolatile memory 220 to the nonvolatile memory 220 or may receive data read from the nonvolatile memory 220 . This memory interface 115 may be implemented to comply with standard protocols such as Toggle or ONFI.

플래시 변환 계층(112)은 어드레스 매핑(address mapping), 웨어-레벨링(wear-leveling), 가비지 콜렉션(garbage collection)과 같은 여러 기능을 수행할 수 있다. 어드레스 매핑 동작은 호스트로부터 수신한 논리 어드레스(logical address)를, 비휘발성 메모리(220) 내에 데이터를 실제로 저장하는 데 사용되는 물리 어드레스(physical address)로 바꾸는 동작이다. 웨어-레벨링은 비휘발성 메모리(220) 내의 블록(block)들이 균일하게 사용되도록 하여 특정 블록의 과도한 열화를 방지하기 위한 기술로, 예시적으로 물리 블록(physical block)들의 소거 카운트들을 밸런싱하는 펌웨어 기술을 통해 구현될 수 있다. 가비지 콜렉션은, 블록의 유효 데이터를 새 블록에 복사한 후 기존 블록을 소거(erase)하는 방식을 통해 비휘발성 메모리(220) 내에서 사용 가능한 용량을 확보하기 위한 기술이다. The flash translation layer 112 may perform various functions such as address mapping, wear-leveling, and garbage collection. The address mapping operation is an operation of changing a logical address received from the host into a physical address used to actually store data in the nonvolatile memory 220 . Wear-leveling is a technology for preventing excessive deterioration of a specific block by uniformly using blocks in the non-volatile memory 220, exemplarily a firmware technology for balancing erase counts of physical blocks can be implemented through Garbage collection is a technique for securing usable capacity in the non-volatile memory 220 by copying valid data of a block to a new block and then erasing the old block.

버퍼 메모리(113)는 비휘발성 메모리(220)에 기입될 데이터 혹은 비휘발성 메모리(220)로부터 독출될 데이터를 임시로 저장할 수 있다. 버퍼 메모리(113)는 스토리지 컨트롤러(110) 내에 구비되는 구성일 수 있으나, 스토리지 컨트롤러(110)의 외부에 배치될 수도 있다.The buffer memory 113 may temporarily store data to be written to the nonvolatile memory 220 or data to be read from the nonvolatile memory 220 . The buffer memory 113 may be included in the storage controller 110 or may be disposed outside the storage controller 110 .

예시적인 실시 예에서, 버퍼 메모리(113)는 DRAM(Dynamic Ramdom Access Memory)일 수 있다. 다만, 이에 한정되지는 않으며, 버퍼 메모리(113)는 SRAM(Static Random Access Memory), PRAM(Phase-change Random Access Memory) 또는 플래시 메모리 등으로 구현될 수 있다.In an exemplary embodiment, the buffer memory 113 may be Dynamic Random Access Memory (DRAM). However, it is not limited thereto, and the buffer memory 113 may be implemented as static random access memory (SRAM), phase-change random access memory (PRAM), or flash memory.

도 3 내지 도 5는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)에 전원이 차단될 때, 비휘발성 메모리(120)에 데이터를 기입하는 동작을 설명하기 위한 도면들이다. 스토리지 장치에 전원이 차단되면, 보조 전압을 이용하여 스토리지 장치가 동작할 수 있다. 도 3 내지 도 5의 프로세서들(111, 111a, 111b)은 도 2의 프로세서(111)일 수 있고, 복수의 코어들을 포함할 수 있다. 3 to 5 are diagrams for describing an operation of writing data into the nonvolatile memory 120 when power to the storage device 100 is cut off according to an exemplary embodiment of the present disclosure. When power to the storage device is cut off, the storage device may operate using the auxiliary voltage. The processors 111, 111a, and 111b of FIGS. 3 to 5 may be the processor 111 of FIG. 2 and may include a plurality of cores.

도 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 코어)일 수 있으나, 다만, 본 개시는 이에 한정되지는 않는다. Referring to FIG. 3 , the processor 111 may include a first core 111_1 and a second core 111_2. The first core 111_1 and the second core 111_2 may be cores that process different tasks. In an exemplary embodiment, the first core 111_1 may be a host core that performs an operation related to an interface with a host (eg, 200 in FIG. 1 ), and the second core 111_2 may be a flash conversion layer (eg, 200 in FIG. 1 ). For example, it may be an FTL core (NAND core) that drives 112 of FIG. 2 and performs an operation related to an interface with the non-volatile memory 120, but the present disclosure is not limited thereto.

퍼포먼스 패쓰(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)가 에러 상태에 빠지지는 것이 방지될 수 있다. In the performance path PP, the first core 111_1 and the second core 111_2 may be organically connected to each other, and the first core 111_1 and the second core 112_2 may operate together. On the other hand, the first core 111_1 can directly write data into the non-volatile memory 120 through the first direct path DP1, and the second core 111_2 can write data through the second direct path DP2. Data may be directly written into the volatile memory 120 . Unlike the performance path (PP), each of the first direct path (DP1) and the second direct path (DP2) may be configured to perform only an operation of writing data into the non-volatile memory 120, and only a designated core It can be configured to work. Therefore, when a power failure occurs and a failure is detected in the performance path (PP), the recovery data stored in the buffer memory 113 is transferred to the non-volatile memory through the first direct path (DP1) or the second direct path (DP2). (120). Even if a failure occurs in the performance path PP, the storage device 100 may be prevented from falling into an error state.

비휘발성 메모리(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)에 기입하기 위한 데이터의 기입 정보로서 미리 지정될 수 있다. The nonvolatile memory 120 may include a plurality of memory areas, for example, first to kth memory areas MR1 to MRk. In this case, k may be a natural number of 3 or greater. Among the first to kth memory areas MR1 to MRk, the first memory area MR1 may be designated to be accessed by the first core 111_1 through the first direct path DP1, and the second memory area MR2 ) may be designated to be accessed by the second core 111_2 through the second direct path DP2. However, it is not limited thereto, and the first memory area MR1 may be designated to be accessed by the first core 111_1 through the first direct path DP1, and the second core 111_2 may access the second direct path (DP1). It can also be specified to be accessed via DP2). In an exemplary embodiment, a memory area corresponding to a specific core may be previously designated as data write information for writing data into the nonvolatile memory 120 when a failure occurs in the performance path (PP).

도 3에서는 예시적으로 퍼포먼스 패쓰(PP)에 고장이 발생하고, 제1 다이렉트 패쓰(DP1)를 통해 제1 코어(111_1)가 비휘발성 메모리(120)의 제1 메모리 영역(MR1)에 접근하여 데이터(예를 들어, 리커버리 데이터)를 기입하는 예를 도시한 것이다. 다만, 본 개시는 이에 한정되지 않으며, 퍼포먼스 패쓰(PP) 중 제2 코어(111_2)에 고장이 발생된 것이 아닌 경우에 제2 코어(111_2)가 제2 다이렉트 패쓰(DP2)를 통해 제2 메모리 영역(MR2)에 리커버리 데이터를 기입할 수도 있다.3 exemplarily, a failure occurs in the performance path PP, and the first core 111_1 accesses the first memory area MR1 of the nonvolatile memory 120 through the first direct path DP1. An example of writing data (eg, recovery data) is shown. However, the present disclosure is not limited thereto, and if a failure does not occur in the second core 111_2 during the performance path (PP), the second core 111_2 passes through the second direct path DP2 to the second memory. Recovery data can also be written in the area 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)이 대응될 수 있다. Referring to FIG. 4 , the processor 111a may include a plurality of first cores 111_1a and a plurality of second cores 111_2a. The plurality of first cores 111_1a may be cores that process the same task, and the plurality of second cores 111_2a may be cores that process the same task. In an exemplary embodiment, the plurality of first cores 111_1a may be host cores that perform an operation related to an interface with the host 200, and the plurality of second cores 111_2a may include a non-volatile memory 120 It may be an FTL core (NAND core) that performs an operation related to an interface with. The first direct paths DP11 and DP12 may correspond to each of the plurality of first cores 111_1a, and the second direct paths DP21 and DP22 may correspond to each of the plurality of second cores 111_2a. It can be.

복수의 제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)에 리커버리 데이터를 기입할 수 있다.Each of the plurality of first cores 111_1a may be assigned a memory area accessible through first direct paths DP11 and DP12, and each of the plurality of second cores 111_2a may use second direct paths ( Accessible memory areas can be designated through DP21 and DP22). For example, one of the plurality of first cores 111_1a may write recovery data in the first memory area MR1 through the first direct path DP11, and the plurality of first cores ( The other core of 111_1a) may write recovery data into the kth memory area MRk through the first direct path DP12.

전원 차단이 발생하고 퍼포먼스 패쓰(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)가 에러 상태에 빠지지는 것이 방지될 수 있다. When a power cut occurs and a failure is detected in the performance path (PP), the plurality of first cores 111_1a may be selected as cores for performing the following operation, and the plurality of first cores ( 111_1a) may store the recovery data stored in the buffer memory 113 in the non-volatile memory 120 (mirroring operation) through the first direct paths DP11 and DP12. Since the plurality of first cores 111_1a write the same data to the non-volatile memory 120, a failure occurs in some of the first direct paths DP11 and DP12 or the first memory area MR1 and the second direct paths DP11 and DP12 fail. Even if a failure occurs in some of the k memory areas MRk, the storage device 100 may be prevented from falling into an error state.

도 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에서 설명된 바와 같이 복수로 구성될 수의 코어들로 구성될 수도 있다. Referring to FIG. 5 , the processor 111b may include a first core 111_1, a second core 111_2, and a third core 111_3. The first core 111_1, the second core 111_2, and the third core 111_3 may be cores that process different tasks. In an exemplary embodiment, the first core 111_1 may be a host core that performs an operation related to an interface with the host 200, and the second core 111_2 performs an operation related to an interface with the nonvolatile memory 120. The third core 111_3 may be an FTL core (NAND core) that performs operations of the first core 111_1 and the second core 111_3 between the first core 111_1 and the second core 111_3. can assist Alternatively, the third core 111_3 may perform an operation different from that of the first core 111_1 and the second core 111_2. Each of the first core 111_1, the second core 111_2, and the third core 111_3 may be composed of one core, or as described in FIG. 4, they may be composed of a plurality of cores. may be

퍼포먼스 패쓰(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)에 대응될 수 있다. The first core 111_1, the third core 111_3, and the second core 111_2 may be sequentially included in the performance path PP. Each of the first core 111_1, the second core 111_2, and the third core 111_3 may correspond to the first direct path DP1, the second direct path DP2, and the third direct path DP3. there is.

제1 코어(111_1)는 제1 다이렉트 패쓰(DP1)를 통해 접근 가능한 메모리 영역, 예를 들어, 제1 메모리 영역(MR1)이 지정될 수 있다. 제2 코어(111_2)는 제2 다이렉트 패쓰(DP2)를 통해 접근 가능한 메모리 영역, 예를 들어, 제2 메모리 영역(MR2)이 지정될 수 있다. 제3 코어(111_3)는 제3 다이렉트 패쓰(DP3)를 통해 접근 가능한 메모리 영역, 예를 들어, 제k 메모리 영역(MRk)이 지정될 수 있다. The first core 111_1 may be assigned a memory area accessible through the first direct path DP1, for example, the first memory area MR1. The second core 111_2 may be assigned a memory area accessible through the second direct path DP2, for example, the second memory area MR2. A memory area accessible to the third core 111_3 through the third direct path DP3, for example, a kth memory area MRk, may be designated.

전원 차단이 발생하고 퍼포먼스 패쓰(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)가 에러 상태에 빠지지는 것이 방지될 수 있다.When power is cut off and a failure is detected in the performance path (PP), the first core 111_1 and the third core 111_3 may be exemplarily selected as cores for performing the following operations. The first core 111_1 and the third core 111_3 store the recovery data stored in the buffer memory 113 in the nonvolatile memory 120 through the first direct path DP1 and the third direct path DP3 ( mirroring operation). Since the first core 111_1 and the third core 111_3 write the same data to the non-volatile memory 120, respectively, even if a failure occurs in some of the first direct path DP1 and the third direct path DP3, , the storage device 100 may be prevented from falling into an error state.

도 6는 도 1의 비휘발성 메모리(120)에 포함된 복수의 메모리 장치들 중 하나의 메모리 장치(121)를 설명하는 블록도이다.FIG. 6 is a block diagram illustrating one memory device 121 among a plurality of memory devices included in the nonvolatile memory 120 of FIG. 1 .

도 1 및 도 6을 참조하면, 메모리 장치(121)는 메모리 셀 어레이(122), 어드레스 디코더(123), 제어 로직 블록(124), 페이지 버퍼(125), 입출력 회로(126), 및 전압 생성기(127)를 포함할 수 있다. 도시되지는 않았으나, 메모리 장치(121)는 입출력 인터페이스를 더 포함할 수 있다.1 and 6 , the memory device 121 includes a memory cell array 122, an address decoder 123, a control logic block 124, a page buffer 125, an input/output circuit 126, and a voltage generator. (127) may be included. Although not shown, the memory device 121 may further include an input/output interface.

메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL), 그라운드 선택 라인들(GSL) 및 비트 라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 그라운드 선택 라인들(GSL)을 통해 어드레스 디코더(123)에 연결되고, 비트 라인들(BL)을 통해 페이지 버퍼(125)에 연결될 수 있다. 메모리 셀 어레이(122)는 복수의 메모리 블록들(BLK1~BLKn)을 포함할 수 있다.The memory cell array 122 may be connected to word lines WL, string select lines SSL, ground select lines GSL, and bit lines BL. The memory cell array 122 is connected to the address decoder 123 through word lines WL, string select lines SSL, and ground select lines GSL, and a page buffer through bit lines BL. (125). The memory cell array 122 may include a plurality of memory blocks BLK1 to BLKn.

복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 메모리 셀들 및 복수의 선택 트랜지스터들을 포함할 수 있다. 메모리 셀들은 워드라인들(WL)에 연결되고, 선택 트랜지스터들은 스트링 선택 라인들(SSL) 또는 그라운드 선택 라인들(GSL)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKn) 각각의 메모리 셀들은 1-비트 데이터를 저장하는 싱글 레벨 셀들(Single Level Cells) 또는 2이상-비트 데이터를 저장하는 멀티 레벨 셀들(Multi Level Cells)로 구성될 수 있다.Each of the plurality of memory blocks BLK1 to BLKn may include a plurality of memory cells and a plurality of selection transistors. Memory cells may be connected to word lines WL, and select transistors may be connected to string select lines SSL or ground select lines GSL. Each of the memory cells of the plurality of memory blocks BLK1 to BLKn may be composed of single level cells storing 1-bit data or multi-level cells storing 2 or more-bit data. can

어드레스 디코더(123)는 메모리 셀 어레이(122)의 복수의 메모리 블록들(BLK1~BLKn) 중 하나를 선택할 수 있고, 선택된 메모리 블록의 워드라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다.The address decoder 123 may select one of the plurality of memory blocks BLK1 to BLKn of the memory cell array 122, select one of the word lines WL of the selected memory block, and select a plurality of strings. One of the selection lines SSL may be selected.

제어 로직 블록(124, 또는 제어 로직 회로)는 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(122)에 대한 기입, 독출 및 소거 동작을 수행하기 위한 각종 제어 신호를 출력할 수 있다. 제어 로직 블록(124)은 어드레스 디코더(123)에 로우 어드레스(X-ADDR)를 제공할 수 있고, 페이지 버퍼(125)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있고, 전압 생성기(127)에 전압 제어 신호(CTRL_Vol)를 제공할 수 있다. The control logic block 124 (or control logic circuit) is configured to perform write, read, and erase operations on the memory cell array 122 based on the command CMD, the address ADDR, and the control signal CTRL. Various control signals can be output. The control logic block 124 may provide a row address (X-ADDR) to the address decoder 123, may provide a column address (Y-ADDR) to the page buffer 125, and may provide a voltage generator 127 A voltage control signal (CTRL_Vol) may be provided.

복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 페이지들을 포함할 수 있다. 제어 로직 블록(124)는 복수의 메모리 블록들(BLK1~BLKn) 각각의 단위로 소거 동작을 수행할 수 있다. 제어 로직 블록(124)는 복수의 페이지들 각각의 단위로 독출 동작을 수행할 수 있고, 기입 동작을 수행할 수 있다.Each of the plurality of memory blocks BLK1 to BLKn may include a plurality of pages. The control logic block 124 may perform an erase operation in units of each of the plurality of memory blocks BLK1 to BLKn. The control logic block 124 may perform a read operation and a write operation in units of each of a plurality of pages.

페이지 버퍼(125)는 동작 모드에 따라 라이트 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 독출 동작시, 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 선택된 메모리 셀의 비트라인(BL)을 센싱할 수 있다. 센싱된 데이터는 페이지 버퍼(125) 내부에 구비되는 래치들에 저장될 수 있다. 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 래치들에 저장된 데이터를 입출력 회로(126)로 덤핑할 수 있다.The page buffer 125 may operate as a light driver or as a sense amplifier according to an operation mode. During a read operation, the page buffer 125 may sense the bit line BL of the selected memory cell according to the control of the control logic block 124 . The sensed data may be stored in latches provided inside the page buffer 125 . The page buffer 125 may dump data stored in the latches to the input/output circuit 126 under the control of the control logic block 124 .

입출력 회로(126)는 메모리 장치(121)의 외부로부터 입출력 라인(I/O)을 통해서 제공되는 명령어(CMD), 어드레스(ADDR), 제어 신호(CTRL) 및 데이터(DATA)를 일시 저장할 수 있다. 입출력 회로(126)는 메모리 장치(121)의 읽기 데이터를 일시 저장하고, 지정된 시점에 입출력 라인(I/O)을 통해서 외부로 출력할 수 있다.The input/output circuit 126 may temporarily store a command CMD, an address ADDR, a control signal CTRL, and data DATA provided from the outside of the memory device 121 through an input/output line I/O. . The input/output circuit 126 may temporarily store read data of the memory device 121 and output it to the outside through the input/output line (I/O) at a designated time point.

전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 메모리 셀 어레이(122)에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 구체적으로, 전압 생성기(127)는 워드 라인 전압(VWL), 예를 들어, 프로그램 전압, 리드 전압, 패스 전압, 이레이즈 검증 전압 또는 프로그램 검증 전압 등을 생성할 수 있다. 또한, 전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 스트링 선택 라인 전압 및 그라운드 선택 라인 전압을 생성할 수 있다. 또한, 전압 생성기(127)는 메모리 셀 어레이(122)에 제공할 이레이즈 전압을 생성할 수 있다.The voltage generator 127 may generate various types of voltages for performing a write operation, a read operation, and an erase operation on the memory cell array 122 based on the voltage control signal CTRL_Vol. Specifically, the voltage generator 127 may generate the word line voltage VWL, eg, a program voltage, a read voltage, a pass voltage, an erase verify voltage, or a program verify voltage. Also, the voltage generator 127 may generate a string selection line voltage and a ground selection line voltage based on the voltage control signal CTRL_Vol. Also, the voltage generator 127 may generate an erase voltage to be provided to the memory cell array 122 .

도 7은 도 2의 버퍼 메모리(113)에 저장된 리커버리 데이터를 설명하기 위한 도면이다.FIG. 7 is a diagram for explaining recovery data stored in the buffer memory 113 of FIG. 2 .

도 1 및 도 7을 참조하면, 버퍼 메모리(113)에는 리커버리 데이터가 저장될 수 있다. 리커버리 데이터는, 전원이 차단된 이후 다시 전원이 복구되었을 때, 스토리지 장치(100)를 복구하기 위해 필요한 데이터일 수 있다. 따라서, 스토리지 장치(100)는 전원이 차단되면 버퍼 메모리(113)에 저장되어 있던 리커버리 데이터를 비휘발성 메모리(120)로 이동시켜 저장할 수 있다. Referring to FIGS. 1 and 7 , recovery data may be stored in the buffer memory 113 . The recovery data may be data required to restore the storage device 100 when power is restored after power is cut off. Accordingly, the storage device 100 may move and store the recovery data stored in the buffer memory 113 to the non-volatile memory 120 when power is cut off.

리커버리 데이터는 사용자 데이터, 디버그 데이터, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터 등을 포함할 수 있다. 디바이스 메타데이터는 스토리지 장치(100)에 관한 정보일 수 있다. 예를 들어, 스마트 데이터, 시큐리티 데이터, 및 비휘발성 메모리(120)의 특성에 대한 메타데이터 등을 포함할 수 있다. 맵 데이터는 L2P 데이터로서, 비휘발성 메모리(120)에 기입된 사용자 데이터에 대한 맵 데이터일 수 있다. Recovery data may include user data, debug data, user data digest, device metadata, map data, and the like. Device metadata may be information about the storage device 100 . For example, it may include smart data, security data, and metadata about characteristics of the non-volatile memory 120 . The map data is L2P data and may be map data for user data written in the non-volatile memory 120 .

리커버리 데이터 중 일부는 최소 리커버리 데이터일 수 있다. 최소 리커버리 데이터는 스토리지 장치(100)가 사용불가 상태, 즉, 파워 페일 상태가 되지 않기 위해 필요한 데이터일 수 있다. 최소 리커버리 데이터는 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터 등을 포함할 수 있다. 이 때, 사용자 데이터 다이제스트는, 사용자 데이터를 모두 비휘발성 메모리(120)에 기입하지 못했을 때, 데이터 불량 표시(uncor mark)를 하기 위해 필요할 수 있다.Some of the recovery data may be minimal recovery data. The minimum recovery data may be data required to prevent the storage device 100 from entering an unusable state, that is, a power failure state. Minimum recovery data may include user data digest, device metadata, map data, and the like. At this time, the user data digest may be required to mark a data defect when all user data cannot be written to the nonvolatile memory 120 .

스토리지 장치(100)는 전원이 차단되면, 리커버리 데이터를 버퍼 메모리(113)에서 비휘발성 메모리(120)로 이동시킬 수 있으나, 최소 리커버리 데이터를 우선적으로 이동시킬 수 있다. When power is cut off, the storage device 100 may move recovery data from the buffer memory 113 to the non-volatile memory 120, but may preferentially move minimum recovery data.

도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 8에 도시된 S10 단계 내지 S50 단계의 동작 방법은 도 1의 스토리지 장치(100)에서 시계열적으로 수행될 수 있다. 8 is a flowchart illustrating a method of operating the storage device 100 according to an exemplary embodiment of the present disclosure. The operation method of steps S10 to S50 illustrated in FIG. 8 may be performed time-sequentially in the storage device 100 of FIG. 1 .

도 1 및 도 8을 참조하면, S10 단계에서 리커버리 데이터를 기입하기 위한 기입 정보를 설정할 수 있다. 예시적인 실시 예에서, S10 단계는 스토리지 장치(100)에 전원이 제공될 때 수행될 수 있다. 데이터의 기입 정보는 이후 S50 단계 또는 S60 단계에서 리커버리 데이터가 기입될 비휘발성 메모리(120)의 위치 및 메모리 어드레스에 대한 정보를 포함할 수 있다. Referring to FIGS. 1 and 8 , write information for writing recovery data may be set in step S10. In an exemplary embodiment, step S10 may be performed when power is supplied to the storage device 100 . The data write information may include information about the location and memory address of the non-volatile memory 120 where the recovery data will be written in step S50 or S60.

예를 들어, S10 단계에서는 퍼포먼스 패쓰(PP)에 고장 발생 시의 데이터를 기입하기 위한 기입 정보를 설정할 수 있다. 도 3 내지 도 5에서 설명된 바와 같이, 특정 코어는 대응하는 다이렉트 패쓰를 형성할 수 있고, S10 단계에서 특정 다이렉트 패쓰에 대응하는 메모리 영역이 설정될 수 있다. For example, in step S10, write information for writing data when a failure occurs in the performance path PP may be set. As described in FIGS. 3 to 5 , a specific core may form a corresponding direct path, and a memory area corresponding to the specific direct path may be set in step S10 .

S20 단계에서 스토리지 장치(100)로 제공되는 전원이 차단될 수 있고, S30 단계에서 퍼포먼스 패쓰(PP)의 고장을 감지할 수 있다. 예를 들어, 스토리지 장치(100)는 퍼포먼스 패쓰(PP)의 고장 발생 여부를 assert 또는 core hang으로부터 판단할 수 있다. 또는, 예시적인 실시 예에서, 도 8에서 후술할 바와 같이, 스토리지 장치(100)는 퍼포먼스 패쓰(PP)를 통한 전원 차단 처리 동작의 각 step들이 지정된 시간 내에 처리되지 못한 것으로 판단하면, 퍼포먼스 패쓰(PP)에 고장이 발생한 것으로 판단할 수 있다.In step S20, power provided to the storage device 100 may be cut off, and in step S30, failure of the performance path (PP) may be detected. For example, the storage device 100 may determine whether a failure of the performance path (PP) has occurred from an assert or a core hang. Alternatively, in an exemplary embodiment, as described later with reference to FIG. 8 , when the storage device 100 determines that each step of a power-off processing operation through the performance path PP is not processed within a specified time, the performance path ( It can be determined that a failure has occurred in PP).

퍼포먼스 패쓰(PP)에 고장이 감지되지 않으면, 즉, 퍼포먼스 패쓰(PP)가 정상으로 판단되면 S60 단계에서 스토리지 장치(30)는, 퍼포먼스 패쓰(PP)를 통해 전원 차단 처리를 수행할 수 있다. 예를 들어, 스토리지 장치(30)는 퍼포먼스 패쓰(PP)를 통해 버퍼 메모리에 기입된 리커버리 데이터를 비휘발성 메모리에 기입하는 전원 차단 처리를 수행할 수 있다. If a failure is not detected in the performance path PP, that is, if the performance path PP is determined to be normal, the storage device 30 may perform a power cut process through the performance path PP in step S60. For example, the storage device 30 may perform a power cut-off process of writing recovery data written in the buffer memory to the non-volatile memory through the performance path PP.

퍼포먼스 패쓰(PP)에 고장이 감지되면, S40 단계에서, 스토리지 장치(100)는 이 후 단계들을 수행하기 위한 코어를 선택할 수 있고, 버퍼 메모리에 기입된 리커버리 데이터를 수집할 수 있다. 예를 들어, 프로세서가 단일 코어로 구성된 경우에는 단일 코어가 선택될 수 있다. 또는, 예를 들어, 프로세서가 복수의 코어들로 구성된 경우에는, 비휘발성 메모리(120)에 직접 접근할 수 있는 다이렉트 패쓰들이 형성된 코어들 중에서 고장이 발생되지 않은 코어가 선택될 수 있다. 또한, 스토리지 장치(100)는 S40 단계에서, 비휘발성 메모리(120)에 설정된 다양한 설정 값들을 리셋할 수 있다. If a failure is detected in the performance path (PP), in step S40 , the storage device 100 may select a core to perform subsequent steps and collect recovery data written in the buffer memory. For example, if the processor is configured with a single core, the single core may be selected. Alternatively, for example, when a processor is composed of a plurality of cores, a core that has not failed may be selected from among cores having direct paths for directly accessing the nonvolatile memory 120 . Also, the storage device 100 may reset various setting values set in the nonvolatile memory 120 in step S40.

S50 단계에서, 스토리지 장치(100)는 선택된 코어에 대응하는 다이렉트 패쓰(DP)를 통해 비휘발성 메모리(120)에 리커버리 데이터를 기입할 수 있다. 스토리지 장치(100)는 S10 단계에서 설정된 기입 정보에 기초하여, 비휘발성 메모리(120)에 리커버리 데이터를 기입할 수 있다.In step S50 , the storage device 100 may write recovery data into the non-volatile memory 120 through a direct path DP corresponding to the selected core. The storage device 100 may write recovery data into the nonvolatile memory 120 based on the write information set in step S10 .

선택된 코어는 비휘발성 메모리(120)에 포함된 복수의 메모리 영역들 중 대응하는 메모리 영역에 리커버리 데이터를 기입할 수 있다. 상기 기입 정보는 선택된 코어에 대응하는 메모리 영역의 위치 정보를 포함할 수 있다. 예를 들어, 도 3에서와 같이 제1 코어가 선택된 경우, S50 단계에서, 스토리지 장치(100)는 제1 다이렉트 패쓰(DP1)를 통해 제1 메모리 영역(MR1)에 리커버리 데이터를 기입할 수 있다. The selected core may write recovery data in a corresponding memory area among a plurality of memory areas included in the non-volatile memory 120 . The write information may include location information of a memory area corresponding to the selected core. For example, when the first core is selected as shown in FIG. 3 , in step S50 , the storage device 100 may write recovery data into the first memory area MR1 through the first direct path DP1. .

따라서, 본 개시에 따른 스토리지 장치(100)는 퍼포먼스 패쓰(PP)에 고장이 감지된 경우, 선택된 코어가 직접적으로 비휘발성 메모리(120)에 접근하는 다이렉트 패쓰(DP)를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 파워 페일 처리 도중 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지될 수 있다.Therefore, in the storage device 100 according to the present disclosure, when a failure is detected in the performance path (PP), the recovery stored in the buffer memory is performed through the direct path (DP) through which the selected core directly accesses the non-volatile memory 120. Data can be stored in non-volatile memory. Accordingly, even if an error occurs during power fail processing, the storage device may be prevented from falling into an error state.

도 9는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 9에 도시된 S30 단계는 도 8의 S30 단계의 일 예시일 수 있고, S31 내지 S34 단계를 포함할 수 있다. 9 is a flowchart illustrating a method of operating the storage device 100 according to an exemplary embodiment of the present disclosure. Step S30 shown in FIG. 9 may be an example of step S30 of FIG. 8 and may include steps S31 to S34.

도 1 및 도 9를 참조하면, S31 단계에서 스토리지 장치(100)는 지정된 시간 안에 리커버리 데이터의 제1 데이터에 대한 기입 동작이 완료되었는지 판단할 수 있고, S32 단계에서 스토리지 장치(100)는 지정된 시간 안에 리커버리 데이터의 제i 데이터에 대한 기입 동작이 완료되었는지 판단할 수 있다. 즉, 스토리지 장치(100)는 S31 단계 및 S32 단계에서, 리커버리 데이터에 포함된 제1 내지 제i 데이터에 대한 기입 동작 각각이 지정된 시간 안에 완료되었는지 판단할 수 있다. 이 때, 기입 동작은 비휘발성 메모리(120)에 기입하는 동작을 의미할 수 있고, i은 2 이상의 자연수일 수 있다. 예를 들어, 지정된 시간은 10ms일 수 있다. 도 9에서는 S31 단계 이후에 S32 단계가 수행되는 것으로 도시되었으나, 이에 한정되지는 않으며, S31 단계 및 S32 단계의 수행 순서는 자유롭게 변형이 가능하다.Referring to FIGS. 1 and 9 , in step S31, the storage device 100 may determine whether the writing operation on the first data of the recovery data is completed within a specified time, and in step S32, the storage device 100 determines whether the specified time has elapsed. It may be determined whether the write operation for the i-th data of the recovery data has been completed within the period. That is, in steps S31 and S32 , the storage device 100 may determine whether each write operation for the first to i-th data included in the recovery data has been completed within a specified time. In this case, the write operation may refer to an operation of writing to the non-volatile memory 120, and i may be a natural number of 2 or more. For example, the specified time may be 10 ms. 9 shows that step S32 is performed after step S31, but is not limited thereto, and the order of performing steps S31 and S32 can be freely modified.

제1 내지 제i 데이터는 사용자 데이터, 디바이스 메타데이터, 맵 데이터, 및 디버그 데이터 등을 포함할 수 있다. 예를 들어, 제1 데이터는 사용자 데이터일 수 있고, 제2 데이터는 디바이스 메타데이터 중 일부일 수 있고, 제3 데이터는 디바이스 메타데이터 중 다른 일부일 수 있다. The first through i-th data may include user data, device metadata, map data, and debug data. For example, the first data may be user data, the second data may be part of device metadata, and the third data may be another part of device metadata.

제1 내지 제i 데이터에 대한 기입 동작 각각이 모두 지정 시간안에 완료되면, S33 단계에서 스토리지 장치(100)는 퍼포먼스 패쓰(PP)를 정상으로 판단할 수 있다. 반면, 제1 내지 제i 데이터에 대한 기입 동작 중 어느 하나의 기입 동작이라도 지정된 시간 이내에 완료되지 못하면, 퍼포먼스 패쓰(PP)가 고장인 것으로 판단할 수 있다.When each of the write operations for the first to i-th data is completed within a specified time, the storage device 100 may determine that the performance path PP is normal in step S33. On the other hand, if any one of the write operations for the first to i-th data is not completed within a specified time, it may be determined that the performance path PP has a failure.

도 10은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 10은 스토리지 장치(100)에 전원이 제공된 후의 리커버리 동작을 설명하기 위한 도면이다. 도 10에 도시된 S100 내지 S700 단계는 도 8의 S10 단계 내지 S60 단계가 수행된 이 후에 수행될 수 있다. 10 is a flowchart illustrating a method of operating the storage device 100 according to an exemplary embodiment of the present disclosure. 10 is a diagram for explaining a recovery operation after power is supplied to the storage device 100 . Steps S100 to S700 shown in FIG. 10 may be performed after steps S10 to S60 of FIG. 8 are performed.

도 1 및 도 10을 참조하면, S100 단계에서 스토리지 장치(100)로 전원이 제공될 수 있고, S200 단계에서 스토리지 장치(100)는 비휘발성 메모리(120)에서 지정된 위치를 스캔할 수 있다. 상기 지정된 위치는 전원 차단 처리 동작을 수행하기 위해, 리커버리 데이터를 저장하도록 미리 지정된 위치일 수 있다. 예를 들어, 스토리지 장치(100)는 비휘발성 메모리(120)의 복수의 메모리 영역들(예를 들어, 도 3의 MR1~MRk) 중 미리 지정된 메모리 영역을 스캔할 수 있다. 1 and 10 , power may be supplied to the storage device 100 in step S100, and the storage device 100 may scan a designated location in the nonvolatile memory 120 in step S200. The designated location may be a pre-designated location to store recovery data in order to perform a power-off processing operation. For example, the storage device 100 may scan a predetermined memory area among a plurality of memory areas (eg, MR1 to MRk in FIG. 3 ) of the nonvolatile memory 120 .

S300 단계에서 스토리지 장치(100)는 비휘발성 메모리(120)의 지정된 위치에 리커버리 데이터가 모두 기입되었는지 확인할 수 있고, 상기 지정된 위치에 리커버리 데이터가 모두 기입된 경우에는 S400 단계에서 비휘발성 메모리(120)를 오픈할 수 있다. 비휘발성 메모리(120)가 오픈되면, 스토리지 컨트롤러(110)는 퍼포먼스 패쓰(PP)를 통해 비휘발성 메모리(120)의 동작을 제어할 수 있고, 기입 동작, 독출 동작, 및 소거 동작을 수행할 수 있다. In step S300, the storage device 100 may check whether all recovery data has been written to the designated location of the nonvolatile memory 120. can open When the non-volatile memory 120 is opened, the storage controller 110 may control the operation of the non-volatile memory 120 through the performance path PP and may perform a write operation, a read operation, and an erase operation. there is.

비휘발성 메모리(120)의 지정된 위치에 리커버리 데이터가 기입되지 않은 경우에는 S500 단계에서 스토리지 장치(100)는 상기 지정된 위치에 최소 리커버리 데이터가 기입되었는지 확인할 수 있다. 최소 리커버리 데이터는 예를 들어, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함할 수 있다. When the recovery data is not written to the designated location of the non-volatile memory 120, the storage device 100 may check whether minimum recovery data is written to the designated location in operation S500. Minimum recovery data may include, for example, user data digest, device metadata, and map data.

최소 리커버리 데이터가 기입된 경우에는 S600 단계에서 스토리지 장치(100)는 사용자 데이터에 데이터 불량 표시(uncor mark)를 할 수 있다. 예를 들어, 스토리지 장치(100)는 최소 리커버리 데이터에 포함된 사용자 데이터 다이제스트에 대응하는 사용자 데이터에 데이터 불량 표시를 할 수 있다. When the minimum recovery data is written, the storage device 100 may uncormark the user data in step S600. For example, the storage device 100 may indicate data failure in user data corresponding to the user data digest included in the minimum recovery data.

이 때, 사용자 데이터는 스토리지 컨트롤러(110)의 버퍼 메모리(예를 들어, 도 7의 113)에 저장되었으나, 비휘발성 메모리(120)로 이동되지 못한 사용자 데이터일 수 있다. 따라서, 스토리지 장치(100)는 해당 사용자 데이터가 불량임을 표시하고, 해당 사용자 데이터에 대응하는 응답 신호인 에러 신호(예를 들어, 도 1의 ES)를 호스트(200)로 전송할 수 있다. 스토리지 장치(100)는 S600 단계가 완료되면, S400 단계를 수행할 수 있다.In this case, the user data may be user data stored in the buffer memory (eg, 113 of FIG. 7 ) of the storage controller 110 but not moved to the non-volatile memory 120 . Accordingly, the storage device 100 may indicate that the corresponding user data is defective and transmit an error signal (eg, ES of FIG. 1 ) corresponding to the corresponding user data to the host 200 . When step S600 is completed, the storage device 100 may perform step S400.

S500 단계에서 최소 리커버리 데이터 중 적어도 일부 데이터가 기입되지 않은 경우에는, S700 단계에서 스토리지 장치(100)는 스토리지 장치(100)를 사용불가 상태로 판단할 수 있다. 이에 따라, 스토리지 장치(100)는 호스트(200)에 사용불가 상태임을 알릴 수 있다.When at least some of the minimum recovery data is not written in step S500, the storage device 100 may determine that the storage device 100 is in an unusable state in step S700. Accordingly, the storage device 100 may notify the host 200 that it is in an unusable state.

도 11은 본 개시의 예시적 실시 예에 따른 스토리지 장치가 적용된 시스템을 도시한 도면이다. 11 is a diagram illustrating a system to which a storage device according to an exemplary embodiment of the present disclosure is applied.

도 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) 장비 등이 될 수도 있다.Referring to FIG. 11, the system 1000 of FIG. 11 is basically a mobile phone, a smart phone, a tablet personal computer (PC), a wearable device, a healthcare device, or an Internet of Things (IOT). It can be a mobile system, such as a device. However, the system 1000 of FIG. 11 is not necessarily limited to a mobile system, and can be used for vehicles such as a personal computer, a laptop computer, a server, a media player, or a navigation system. (automotive) equipment and the like.

도 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) 중 하나 이상을 포함할 수 있다.Referring to FIG. 11 , a system 1000 may include a main processor 1100, memories 1200a and 1200b, and storage devices 1300a and 1300b, and additionally includes an image capturing device. 1410, user input device 1420, sensor 1430, communication device 1440, display 1450, speaker 1460, power supplying device 1470 and connections It may include one or more of the connecting interfaces 1480 .

메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The main processor 1100 may control the overall operation of the system 1000, and more specifically, the operation of other components constituting the system 1000. The main processor 1100 may be implemented as a general-purpose processor, a dedicated processor, or an 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)으로 구현될 수도 있다.The main processor 1100 may include one or more CPU cores 1110 and may further include a controller 1120 for controlling the memories 1200a and 1200b and/or the storage devices 1300a and 1300b. Depending on embodiments, the main processor 1100 may further include an accelerator block 1130 that is a dedicated circuit for high-speed data operations such as AI (artificial intelligence) data operations. Such an accelerator block 1130 may include a graphics processing unit (GPU), a neural processing unit (NPU), and/or a data processing unit (DPU), and is physically different from other components of the main processor 1100. It may be implemented as an independent separate chip.

메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.The memories 1200a and 1200b may be used as main memory devices of the system 1000 and may include volatile memories such as SRAM and/or DRAM, but may include non-volatile memories such as flash memory, PRAM, and/or RRAM. may be The memories 1200a and 1200b may also be implemented in the same package as the main processor 1100 .

스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. The storage devices 1300a and 1300b may function as non-volatile storage devices that store data regardless of whether or not power is supplied, and may have a relatively large storage capacity compared to the memories 1200a and 1200b. The storage devices 1300a and 1300b may include storage controllers 1310a and 1310b and non-volatile memories (NVMs) 1320a and 1320b that store data under the control of the storage controllers 1310a and 1310b. can The non-volatile memories 1320a and 1320b may include NAND flash memories, but may also include other types of non-volatile memories such as PRAM and/or RRAM.

스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(universal flash storage)와 같은 표준 규약이 적용되는 장치일 수 있다. The storage devices 1300a and 1300b may be included in the system 1000 while being physically separated from the main processor 1100 or may be implemented in the same package as the main processor 1100 . In addition, the storage devices 1300a and 1300b have a form such as a solid state device (SSD) or a memory card, so that other components of the system 1000 can be accessed through an interface such as a connection interface 1480 to be described later. It may also be coupled to be detachable with the . The storage devices 1300a and 1300b may be devices to which standard rules such as universal flash storage (UFS) are applied.

스토리지 장치(1300a, 1300b)는 도 1 내지 도 10에서 설명된 스토리지 장치(100)로 구현될 수 있다. 따라서, 스토리지 장치(1300a, 1300b)는 갑작스러운 전원 차단이 발생하고, 퍼포먼스 패쓰에 고장이 감지되더라도 코어가 직접적으로 내부의 비휘발성 메모리에 접근하는 다이렉트 패쓰(DP)를 통해 버퍼 메모리에 저장된 리커버리 데이터를 비휘발성 메모리에 저장할 수 있다. 따라서, 스토리지 장치(1300a, 1300b)는 파워 페일로 인한 오류가 발생하더라도 스토리지 장치가 에러 상태에 빠지지는 것이 방지될 수 있고, 스토리지 장치(1300a, 1300b)의 계속 사용이 가능할 수 있다. The storage devices 1300a and 1300b may be implemented as the storage device 100 described in FIGS. 1 to 10 . Therefore, in the storage devices 1300a and 1300b, recovery data stored in the buffer memory is stored in the buffer memory through a direct path (DP) through which the core directly accesses the internal non-volatile memory even if a sudden power cut occurs and a failure is detected in the performance path. can be stored in non-volatile memory. Accordingly, even if an error occurs due to a power failure, the storage devices 1300a and 1300b can be prevented from falling into an error state, and the storage devices 1300a and 1300b can be continuously used.

촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다. The photographing device 1410 may capture a still image or a video, and may be a camera, a camcorder, and/or a webcam.

사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.The user input device 1420 may receive various types of data input from a user of the system 1000, and may use a touch pad, a keypad, a keyboard, a mouse, and/or It may be a microphone or the like.

센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 등일 수 있다. The sensor 1430 can detect various types of physical quantities that can be acquired from the outside of the system 1000 and convert the detected physical quantities into electrical signals. Such a sensor 1430 may be a temperature sensor, a pressure sensor, an illuminance sensor, a position sensor, an acceleration sensor, a biosensor, and/or a gyroscope.

통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.The communication device 1440 may transmit and receive signals with other devices outside the system 1000 according to various communication protocols. Such a communication device 1440 may be implemented by including an antenna, a transceiver, and/or a modem (MODEM).

디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.The display 1450 and the speaker 1460 may function as output devices that output visual information and auditory information to the user of the system 1000, respectively.

전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.The power supply device 1470 may appropriately convert power supplied from a battery built in the system 1000 and/or an external power source and supply the power to each component of the system 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) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다. The connection interface 1480 may provide a connection between the system 1000 and an external device connected to the system 1000 and capable of exchanging data with the system 1000. The connection interface 1480 is an Advanced Technology (ATA) Attachment), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCI express (PCIe), NVM express (NVMe) , IEEE 1394, universal serial bus (USB), secure digital (SD) card, multi-media card (MMC), embedded multi-media card (eMMC), universal flash storage (UFS), embedded universal flash storage (eUFS), It can be implemented in various interface methods such as a CF (compact flash) card interface.

도 12는 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.12 is a block diagram illustrating a memory system according to an exemplary embodiment of the inventive concept.

도 12을 참조하면, 메모리 시스템(3000)은 메모리 장치(3100) 및 메모리 컨트롤러(3200)를 포함할 수 있다. 메모리 시스템(3000)은 도 1의 스토리지 장치(100)일 수 있고, 메모리 장치(3100)는 도 1의 비휘발성 메모리(120)일 수 있고, 메모리 컨트롤러(3200)는 도 1의 스토리지 컨트롤러(110)일 수 있다.Referring to FIG. 12 , a memory system 3000 may include a memory device 3100 and a memory controller 3200 . The memory system 3000 may be the storage device 100 of FIG. 1 , the memory device 3100 may be the nonvolatile memory 120 of FIG. 1 , and the memory controller 3200 may be the storage controller 110 of FIG. 1 . ) can be.

메모리 시스템(3000)은 복수의 채널들(CH1~CHm)을 지원할 수 있고, 메모리 장치(3100)와 메모리 컨트롤러(3200)는 복수의 채널들(CH1~CHm)을 통해 연결될 수 있다. 예를 들어, 메모리 시스템(3000)은 SSD와 같은 스토리지 장치로 구현될 수 있다. 메모리 장치(3100)는 도 1의 비휘발성 메모리(120)일 수 있고, 메모리 컨트롤러(322)는 도 1의 스토리지 컨트롤러(110)일 수 있다. The memory system 3000 may support a plurality of channels CH1 to CHm, and the memory device 3100 and the memory controller 3200 may be connected through a plurality of channels CH1 to CHm. For example, the memory system 3000 may be implemented as a storage device such as an SSD. The memory device 3100 may be the nonvolatile memory 120 of FIG. 1 , and the memory controller 322 may be the storage controller 110 of FIG. 1 .

메모리 장치(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)로 구현될 수 있으나, 본 개시는 이에 한정되는 것은 아니다. The memory device 3100 may include a plurality of nonvolatile memory devices NVM11 to NVMma. Each of the nonvolatile memory devices NVM11 to NVMma may be connected to one of the plurality of channels CH1 to CHm through a corresponding way. For example, the nonvolatile memory devices NVM11 to NVM1a are connected to the first channel CH1 through ways W11 to W1a, and the nonvolatile memory devices NVM21 to NVM2a are connected to ways W21 to W21. W2a) may be connected to the second channel CH2. In an exemplary embodiment, each of the nonvolatile memory devices NVM11 to NVMma may be implemented as an arbitrary memory unit capable of operating according to individual commands from the memory controller 3200 . For example, each of the nonvolatile memory devices NVM11 to NVMma may be implemented as a memory chip or die, but the present disclosure is not limited thereto.

메모리 컨트롤러(3200)는 복수의 채널들(CH1~CHm)을 통해 메모리 장치(3100)와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 채널들(CH1~CHm)을 통해 메모리 장치(3100)로 커맨드들(ICMD1~ICMDm), 어드레스들(ADDR1~ADDRm), 및 데이터(DATA1~DATAm)를 메모리 장치(3100)로 전송하거나, 메모리 장치(3100)로부터 데이터(DATA1~DATAm)를 수신할 수 있다.The memory controller 3200 may transmit and receive signals to and from the memory device 3100 through a plurality of channels CH1 to CHm. For example, the memory controller 3200 transmits commands ICMD1 to ICMDm, addresses ADDR1 to ADDRm, and data DATA1 to DATAm to the memory device 3100 through channels CH1 to CHm. Data DATA1 to DATAm may be transmitted to the device 3100 or received from the memory device 3100 .

메모리 컨트롤러(3200)는 각각의 채널을 통해 해당 채널에 연결된 비휘발성 메모리 장치들 중 하나를 선택하고, 선택된 비휘발성 메모리 장치와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)에 연결된 비휘발성 메모리 장치들(NVM11~NVM1a) 중 비휘발성 메모리 장치(NVM11)를 선택할 수 있다. 메모리 컨트롤러(3200)는 선택된 비휘발성 메모리 장치(NVM11)로 제1 채널(CH1)을 통해 커맨드(ICMD1), 어드레스(ADDR1), 및 데이터(DATA1)를 전송하거나, 선택된 비휘발성 메모리 장치(NVM11)로부터 데이터(DATA1)를 수신할 수 있다.The memory controller 3200 may select one of the nonvolatile memory devices connected to the corresponding channel through each channel and transmit/receive signals with the selected nonvolatile memory device. For example, the memory controller 3200 may select the nonvolatile memory device NVM11 from among the nonvolatile memory devices NVM11 to NVM1a connected to the first channel CH1 . The memory controller 3200 transmits the command ICMD1, the address ADDR1, and the data DATA1 to the selected nonvolatile memory device NVM11 through the first channel CH1, or transmits the selected nonvolatile memory device NVM11. Data DATA1 can be received from

메모리 컨트롤러(3200)는 서로 다른 채널들을 통해 메모리 장치(3100)와 신호들을 병렬적으로 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)을 통해 메모리 장치(3100)로 커맨드(ICMD1)를 전송하는 동안 제2 채널(CH2)을 통해 메모리 장치(3100)로 커맨드(ICMD2)를 전송할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)을 통해 메모리 장치(3100)로부터 데이터(DATA1)를 수신하는 동안 제2 채널(CH2)을 통해 메모리 장치(3100)로부터 데이터(DATA2)를 수신할 수 있다.The memory controller 3200 may transmit and receive signals to and from the memory device 3100 in parallel through different channels. For example, while the memory controller 3200 transmits the command ICMD1 to the memory device 3100 through the first channel CH1, the command ICMD2 is sent to the memory device 3100 through the second channel CH2. can transmit. For example, the memory controller 3200 receives data DATA1 from the memory device 3100 through a first channel CH1 while receiving data DATA2 from the memory device 3100 through a second channel CH2. can receive

메모리 컨트롤러(3200)는 메모리 장치(3100)의 전반적인 동작을 제어할 수 있다. 메모리 컨트롤러(3200)는 채널들(CH1~CHm)로 신호를 전송하여 채널들(CH1~CHm)에 연결된 비휘발성 메모리 장치들(NVM11~NVMma) 각각을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)로 커맨드(ICMD1) 및 어드레스(ADDR1)를 전송하여 비휘발성 메모리 장치들(NVM11~NVM1a) 중 선택된 하나를 제어할 수 있다.The memory controller 3200 may control overall operations of the memory device 3100 . The memory controller 3200 may control each of the nonvolatile memory devices NVM11 to NVMma connected to the channels CH1 to CHm by transmitting signals to the channels CH1 to CHm. For example, the memory controller 3200 may control a selected one of the nonvolatile memory devices NVM11 to NVM1a by transmitting the command ICMD1 and the address ADDR1 through the first channel CH1.

비휘발성 메모리 장치들(NVM11~NVMma) 각각은 메모리 컨트롤러(3200)의 제어에 따라 동작할 수 있다. 예를 들어, 비휘발성 메모리 장치(NVM11)는 제1 채널(CH1)로 제공되는 커맨드(ICMD1), 어드레스(ADDR1), 및 데이터(DATA1)에 따라 데이터(DATA1)를 기입할 수 있다. 예를 들어, 비휘발성 메모리 장치(NVM21)는 제2 채널(CH2)로 제공되는 커맨드(ICMD2) 및 어드레스(ADDR2)에 따라 데이터(DATA2)를 독출하고, 독출된 데이터(DATA2)를 메모리 컨트롤러(3200)로 전송할 수 있다.Each of the nonvolatile memory devices NVM11 to NVMma may operate under the control of the memory controller 3200 . For example, the nonvolatile memory device NVM11 may write data DATA1 according to the command ICMD1, the address ADDR1, and the data DATA1 provided through the first channel CH1. For example, the non-volatile memory device NVM21 reads data DATA2 according to the command ICMD2 and address ADDR2 provided through the second channel CH2, and transfers the read data DATA2 to a memory controller ( 3200).

도 12에는 메모리 장치(3100)가 m개의 채널을 통해 메모리 컨트롤러(3200)와 통신하고, 메모리 장치(3100)가 각각의 채널에 대응하여 a개의 비휘발성 메모리 장치를 포함하는 것으로 도시되나, 채널들의 개수와 하나의 채널에 연결된 비휘발성 메모리 장치의 개수는 다양하게 변경될 수 있다.12 shows that the memory device 3100 communicates with the memory controller 3200 through m channels and includes a number of non-volatile memory devices corresponding to each channel; The number and number of nonvolatile memory devices connected to one channel may be variously changed.

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, exemplary embodiments have been disclosed in the drawings and specifications. Although the embodiments have been described using specific terms in this specification, they are only used for the purpose of explaining the technical idea of the present disclosure, and are not used to limit the scope of the present disclosure described in the claims. . Therefore, those of ordinary skill in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical scope of protection of the present disclosure should be determined by the technical spirit of the appended claims.

Claims (20)

복수의 메모리 영역들을 포함하는 비휘발성 메모리;
퍼포먼스 패쓰 및 적어도 하나의 다이렉트 패쓰를 통해 상기 비휘발성 메모리를 제어하고, 리커버리 데이터를 저장하는 버퍼 메모리를 포함하는 스토리지 컨트롤러를 포함하고,
상기 스토리지 컨트롤러는, 전원이 차단되고 상기 퍼포먼스 패쓰에 고장이 감지되면, 상기 적어도 하나의 다이렉스 패쓰를 통해 리커버리 데이터를 상기 비휘발성 메모리에 기입하고,
상기 퍼포먼스 패쓰는, 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고,
상기 적어도 하나의 다이렉트 패쓰는, 데이터에 대한 기입 동작만을 수행하는 경로인 것을 특징으로 하는 스토리지 장치.
a non-volatile memory including a plurality of memory areas;
A storage controller including a buffer memory that controls the non-volatile memory through a performance path and at least one direct path and stores recovery data;
The storage controller writes recovery data into the non-volatile memory through the at least one direct path when power is cut off and a failure is detected in the performance path;
The performance path is a path for performing a write operation, a read operation, and an erase operation for data,
The storage device according to claim 1 , wherein the at least one direct path is a path for performing only a write operation on data.
제1 항에 있어서,
상기 스토리지 컨트롤러는,
호스트와의 인터페이스에 관련된 동작을 수행하는 제1 코어; 및
상기 비휘발성 메모리와의 인터페이스에 관련된 동작을 수행하는 제2 코어를 포함하고,
상기 퍼포먼스 패쓰에 상기 제1 코어 및 상기 제2 코어가 포함되는 것을 특징으로 하는 스토리지 장치.
According to claim 1,
The storage controller,
a first core that performs an operation related to an interface with a host; and
A second core performing an operation related to an interface with the non-volatile memory;
The storage device, wherein the first core and the second core are included in the performance path.
제2 항에 있어서,
상기 적어도 하나의 다이렉트 패쓰는 제1 다이렉트 패쓰 및 제2 다이렉트 패쓰를 포함하고,
상기 제1 코어는 상기 제1 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제1 메모리 영역에 상기 리커버리 데이터를 기입하고,
상기 제2 코어는 상기 제2 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제2 메모리 영역에 상기 리커버리 데이터를 기입하는 것을 특징으로 하는 스토리지 장치.
According to claim 2,
The at least one direct path includes a first direct path and a second direct path,
The first core writes the recovery data into a first memory area among the plurality of memory areas through the first direct path;
The storage device of claim 1 , wherein the second core writes the recovery data into a second memory area among the plurality of memory areas through the second direct path.
제1 항에 있어서,
상기 스토리지 컨트롤러는,
호스트와의 인터페이스에 관련된 동작을 수행하는 복수의 제1 코어들; 및
상기 비휘발성 메모리와의 인터페이스에 관련된 동작을 수행하는 복수의 제2 코어들을 포함하고,
상기 퍼포먼스 패쓰에 상기 제1 코어들 및 상기 제2 코어들이 포함되고,
전원이 차단되고 상기 퍼포먼스 패쓰에 고장이 감지되면, 상기 복수의 제1 코어들 각각은 상기 적어도 하나의 다이렉트 패쓰를 통해 동일한 상기 리커버리 데이터를 상기 비휘발성 메모리에 기입하는 것을 특징으로 하는 스토리지 장치.
According to claim 1,
The storage controller,
a plurality of first cores performing operations related to an interface with a host; and
A plurality of second cores performing operations related to an interface with the non-volatile memory;
The first cores and the second cores are included in the performance path,
The storage device, characterized in that, when power is cut off and a failure is detected in the performance path, each of the plurality of first cores writes the same recovery data to the non-volatile memory through the at least one direct path.
제1 항에 있어서,
상기 스토리지 컨트롤러는 상기 퍼포먼스 패쓰에 차례로 포함되는 제1 내지 제3 코어를 포함하고,
전원이 차단되고 상기 퍼포먼스 패쓰에 고장이 감지되면, 상기 제1 코어 및 상기 제2 코어 각각은 상기 적어도 하나의 다이렉트 패쓰를 통해 동일한 상기 리커버리 데이터를 상기 비휘발성 메모리에 기입하는 것을 특징으로 하는 스토리지 장치.
According to claim 1,
The storage controller includes first to third cores sequentially included in the performance path;
When power is cut off and a failure is detected in the performance path, each of the first core and the second core writes the same recovery data to the nonvolatile memory through the at least one direct path. .
제5 항에 있어서,
상기 적어도 하나의 다이렉트 패쓰는 제1 내지 제3 다이렉트 패쓰를 포함하고,
상기 제1 코어는 상기 제1 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제1 메모리 영역에 상기 리커버리 데이터를 기입하고,
상기 제3 코어는 상기 제3 다이렉트 패쓰를 통해 상기 복수의 메모리 영역들 중 제2 메모리 영역에 상기 리커버리 데이터를 기입하는 것을 특징으로 하는 스토리지 장치.
According to claim 5,
The at least one direct path includes first to third direct paths,
The first core writes the recovery data into a first memory area among the plurality of memory areas through the first direct path;
The storage device of claim 1 , wherein the third core writes the recovery data into a second memory area among the plurality of memory areas through the third direct path.
제1 항에 있어서,
상기 리커버리 데이터는, 사용자 데이터, 디버그 데이터, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치.
According to claim 1,
The storage device according to claim 1 , wherein the recovery data includes user data, debug data, user data digest, device metadata, and map data.
스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법으로서,
전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면, 코어를 선택하고, 버퍼 메모리에 기입된 리커버리 데이터를 수집하는 단계; 및
선택된 코어에 대응하는 다이렉트 패쓰를 통해 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 포함하고,
상기 퍼포먼스 패쓰는, 데이터에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하는 경로이고,
상기 다이렉트 패쓰는, 데이터에 대한 기입 동작만을 수행하는 경로인 것을 특징으로 하는 스토리지 장치의 동작 방법.
A method of operating a storage device including a storage controller and a non-volatile memory, comprising:
selecting a core and collecting recovery data written in a buffer memory when power is cut off and a failure is detected in a performance path; and
And writing the recovery data to the non-volatile memory through a direct path corresponding to the selected core,
The performance path is a path for performing a write operation, a read operation, and an erase operation for data,
The method of claim 1 , wherein the direct path is a path for performing only a write operation on data.
제8 항에 있어서,
전원이 차단되고 퍼포먼스 패쓰가 정상으로 판단되면, 상기 퍼포먼스 패쓰를 통해 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 8,
and writing the recovery data to the non-volatile memory through the performance path when power is cut off and the performance path is determined to be normal.
제8 항에 있어서,
상기 리커버리 데이터는, 사용자 데이터, 디버그 데이터, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 8,
The recovery data includes user data, debug data, user data digest, device metadata, and map data.
제8 항에 있어서,
상기 리커버리 데이터의 제1 데이터 내지 제n 데이터를 상기 비휘발성 메모리에 기입하는 기입 동작들 각각이 지정된 시간 내에 완료된 경우, 상기 퍼포먼스 패쓰를 정상으로 판단하는 단계를 더 포함하는 스토리지 장치의 동작 방법.
According to claim 8,
and determining that the performance path is normal when each of the write operations for writing the first to nth data of the recovery data into the nonvolatile memory is completed within a specified time.
제8 항에 있어서,
상기 리커버리 데이터가 기입될 상기 비휘발성 메모리의 위치 정보를 포함하는 기입 정보를 설정하는 단계를 더 포함하고,
상기 리커버리 데이터를 기입하는 단계는, 상기 기입 정보에 기초하여 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 8,
Further comprising setting write information including location information of the non-volatile memory where the recovery data is to be written;
The method of operating a storage device, wherein the writing of the recovery data includes writing the recovery data into the non-volatile memory based on the write information.
제12 항에 있어서,
상기 비휘발성 메모리는 복수의 메모리 영역들을 포함하고,
상기 리커버리 데이터를 기입하는 단계는, 상기 기입 정보에 기초하여 상기 복수의 메모리 영역들 중 상기 선택된 코어에 대응하는 메모리 영역에 상기 리커버리 데이터를 기입하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 12,
The non-volatile memory includes a plurality of memory areas,
The writing of the recovery data may include writing the recovery data into a memory area corresponding to the selected core among the plurality of memory areas based on the write information. .
제8 항에 있어서,
상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
상기 지정된 위치에 상기 리커버리 데이터가 모두 기입된 경우, 상기 비휘발성 메모리를 오픈하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 8,
scanning a designated location in the non-volatile memory when the power is provided; and
and opening the non-volatile memory when all of the recovery data is written in the designated location.
제8 항에 있어서,
상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
상기 지정된 위치에 상기 리커버리 데이터 중 최소 리커버리 데이터가 기입된 경우, 상기 최소 리커버리 데이터에 대응하는 사용자 데이터에 데이터 불량 표시하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 8,
scanning a designated location in the non-volatile memory when the power is provided; and
and displaying user data corresponding to the minimum recovery data as data failure when minimum recovery data among the recovery data is written in the designated location.
제15 항에 있어서,
상기 최소 리커버리 데이터는, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 15,
Wherein the minimum recovery data includes a user data digest, device metadata, and map data.
제15 항에 있어서,
상기 지정된 위치에 상기 리커버리 데이터 중 최소 리커버리 데이터가 기입된 경우, 상기 최소 리커버리 데이터에 대응하는 사용자 데이터에 따른 응답 신호로서 에러 신호를 호스트로 전송하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 15,
and transmitting an error signal to a host as a response signal according to user data corresponding to the minimum recovery data when minimum recovery data among the recovery data is written in the designated location. method.
스토리지 컨트롤러 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법으로서,
버퍼 메모리에 기입된 리커버리 데이터를 상기 비휘발성 메모리에 기입하기 위한 기입 정보를 설정하는 단계;
전원이 차단되고 퍼포먼스 패쓰에 고장이 감지되면, 코어를 선택하고, 상기 리커버리 데이터를 수집하는 단계; 및
선택된 코어에 대응하는 다이렉트 패쓰를 통해 상기 비휘발성 메모리에 상기 리커버리 데이터를 기입하는 단계를 포함하고,
상기 퍼포먼스 패쓰는 복수의 코어들을 포함하고, 상기 다이렉트 패쓰는 대응하는 하나의 코어를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
A method of operating a storage device including a storage controller and a non-volatile memory, comprising:
setting write information for writing the recovery data written in the buffer memory to the non-volatile memory;
selecting a core and collecting the recovery data when power is cut off and a failure is detected in a performance path; and
And writing the recovery data to the non-volatile memory through a direct path corresponding to the selected core,
The method of claim 1 , wherein the performance path includes a plurality of cores, and the direct path includes a corresponding core.
제18 항에 있어서,
상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
상기 지정된 위치에 상기 리커버리 데이터가 모두 기입된 경우, 상기 비휘발성 메모리를 오픈하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 18,
scanning a designated location in the non-volatile memory when the power is provided; and
and opening the non-volatile memory when all of the recovery data is written in the designated location.
제18 항에 있어서,
상기 전원이 제공되면, 상기 비휘발성 메모리에서 지정된 위치를 스캔하는 단계; 및
상기 지정된 위치에 상기 리커버리 데이터 중 최소 리커버리 데이터가 기입된 경우, 상기 최소 리커버리 데이터에 대응하는 사용자 데이터에 데이터 불량 표시하는 단계를 더 포함하고,
상기 최소 리커버리 데이터는, 사용자 데이터 다이제스트, 디바이스 메타데이터, 및 맵 데이터를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 18,
scanning a designated location in the non-volatile memory when the power is provided; and
When minimum recovery data among the recovery data is written in the designated location, displaying data failure in user data corresponding to the minimum recovery data;
Wherein the minimum recovery data includes a user data digest, device metadata, and map data.
KR1020220012595A 2021-11-10 2022-01-27 Storage device including the same and method of operating the same KR102553263B1 (en)

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 (en) 2021-11-10 2022-10-28 Memory device and method of operating the same
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
KR20210154270 2021-11-10
KR1020210154270 2021-11-10

Publications (2)

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

Family

ID=86547191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220012595A KR102553263B1 (en) 2021-11-10 2022-01-27 Storage device including the same and method of operating the same

Country Status (1)

Country Link
KR (1) KR102553263B1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010063096A (en) * 1999-12-21 2001-07-09 오길록 Fault tolerance control system with duplicated data channel by a method of concurrent writes
KR20160092206A (en) * 2015-01-27 2016-08-04 에스케이하이닉스 주식회사 Semiconductor device
KR20160144564A (en) * 2015-06-08 2016-12-19 삼성전자주식회사 Nonvolatile memory module and operation method thereof
KR20170070921A (en) * 2015-12-14 2017-06-23 삼성전자주식회사 Storage device and operating method of storage device
KR20210004726A (en) * 2019-07-05 2021-01-13 에스케이하이닉스 주식회사 Data Storage Device and Operation Method Thereof
KR20210034456A (en) * 2019-09-20 2021-03-30 삼성전자주식회사 Storage device and method of operating the storage device
KR102317788B1 (en) * 2021-05-14 2021-10-26 삼성전자주식회사 Storage device and operating method of storage controller

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010063096A (en) * 1999-12-21 2001-07-09 오길록 Fault tolerance control system with duplicated data channel by a method of concurrent writes
KR20160092206A (en) * 2015-01-27 2016-08-04 에스케이하이닉스 주식회사 Semiconductor device
KR20160144564A (en) * 2015-06-08 2016-12-19 삼성전자주식회사 Nonvolatile memory module and operation method thereof
KR20170070921A (en) * 2015-12-14 2017-06-23 삼성전자주식회사 Storage device and operating method of storage device
KR20210004726A (en) * 2019-07-05 2021-01-13 에스케이하이닉스 주식회사 Data Storage Device and Operation Method Thereof
KR20210034456A (en) * 2019-09-20 2021-03-30 삼성전자주식회사 Storage device and method of operating the storage device
KR102317788B1 (en) * 2021-05-14 2021-10-26 삼성전자주식회사 Storage device and operating method of storage controller

Also Published As

Publication number Publication date
KR102553263B1 (en) 2023-07-10

Similar Documents

Publication Publication Date Title
KR102465321B1 (en) Data storage device
KR20170053278A (en) Data storage device and operating method thereof
KR102233400B1 (en) Data storage device and operating method thereof
KR20200085967A (en) Data storage device and operating method thereof
KR20190083148A (en) Data storage device and operating method thereof and data process system containing the same
US11704048B2 (en) Electronic device
KR20170111386A (en) Data storage device and operating method thereof
KR20210098717A (en) Controller, operating method thereof and storage device including the same
KR20200076431A (en) Operating method of memory controller and memory system, and memory system
KR20200114212A (en) Data storage device and operating method thereof
KR20180097026A (en) Nonvolatile memory device, data stroage device including thereof and operating method of data storage device
KR20170094674A (en) Data storage device
KR20210147696A (en) Data storage device and operating method thereof
KR20190006677A (en) Data storage device and operating method thereof
KR102474937B1 (en) Data storage device and operating method thereof
KR20220103340A (en) Data storage device and operating method thereof
KR20190095825A (en) Data storage device and operating method thereof
KR20210156010A (en) Storage device and operating method thereof
KR102475688B1 (en) Nonvolatile memory device, data storage apparatus including the same and operating method thereof
KR102434840B1 (en) Data storage device
KR102553263B1 (en) Storage device including the same and method of operating the same
KR20160119607A (en) Data storage device and operating method thereof
KR20190041082A (en) Data storage device and operating method thereof
EP4181125A2 (en) Storage device and operating method thereof
US11281590B2 (en) Controller, operating method thereof and storage device including the same

Legal Events

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