KR20240003648A - 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법 - Google Patents

메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법 Download PDF

Info

Publication number
KR20240003648A
KR20240003648A KR1020220081479A KR20220081479A KR20240003648A KR 20240003648 A KR20240003648 A KR 20240003648A KR 1020220081479 A KR1020220081479 A KR 1020220081479A KR 20220081479 A KR20220081479 A KR 20220081479A KR 20240003648 A KR20240003648 A KR 20240003648A
Authority
KR
South Korea
Prior art keywords
power
core
memory
cores
sudden power
Prior art date
Application number
KR1020220081479A
Other languages
English (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 KR1020220081479A priority Critical patent/KR20240003648A/ko
Priority to US18/081,688 priority patent/US20240004578A1/en
Publication of KR20240003648A publication Critical patent/KR20240003648A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0656Data buffering arrangements
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

본 기술에 따른 메모리 시스템은 비휘발성 메모리 영역, 데이터를 임시로 저장하는 버퍼 메모리 영역 및 서든 파워 오프에 응답하여 상기 버퍼 메모리 영역에 저장된 데이터를 상기 비휘발성 메모리 영역에 저장하고, 상기 서든 파워 오프를 감지했음을 나타내는 인터럽트 신호를 각각 출력하는 복수의 코어들을 포함한다.

Description

메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법{MEMORY SYSTEM AND METHOD OF OPERATING A MEMORY CONTROLLER INCLUDED IN THE MEMORY SYSTEM}
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로는 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법에 관한 것이다.
메모리 시스템은 컴퓨터나 스마트폰 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 메모리 시스템은 데이터가 저장되는 메모리 장치와 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치(Volatile Memory)와 비휘발성 메모리 장치(NonVolatile Memory)로 구분된다.
반도체 메모리 장치는 내부 또는 외부에 있는 전원 장치(power supply)로부터 전원을 공급받는다. 메모리 장치 내 외부에 있는 전원 장치로부터 공급받는 전원이 갑작스럽게 차단되면, 휘발성 메모리 장치에 저장된 데이터가 손실될 수 있다. 이러한 문제를 해결하기 위해 전원이 갑작스럽게 차단되는 서든 파워 오프(Sudden Power Off; SPO)가 감지되는 경우 휘발성 메모리 장치에 저장된 데이터에 대한 신속한 저장이 요구된다. 즉, 서든 파워 오프에 대비하여 빠르게 PLP(Power Loss Protection) 동작을 수행할 필요성이 있다.
본 발명의 실시예는 멀티코어 환경에서 각각 서든 파워 오프를 감지하고, 서로 통신하여 덤프 동작을 수행할 수 있는 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법을 제공한다.
본 발명의 실시예에 따른 메모리 시스템은 비휘발성 메모리 영역; 데이터를 임시로 저장하는 버퍼 메모리 영역; 및 서든 파워 오프에 응답하여 상기 버퍼 메모리 영역에 저장된 데이터를 상기 비휘발성 메모리 영역에 저장하고, 상기 서든 파워 오프를 감지했음을 나타내는 인터럽트 신호를 각각 출력하는 복수의 코어들을 포함한다.
본 발명의 실시 예에 따른 메모리 컨트롤러는 외부에서 인가되는 전원의 변동을 감지하고, 상기 전원이 기준 값 미만인 경우 로우(low) 상태의 파워 신호를 프로세서부에 제공하는 전원 감지부; 및 각각 우선 순위에 따라 독립적으로 태스크를 수행하는 복수의 코어들을 포함하고, 상기 복수의 코어들 중 어느 하나의 코어가 감지한 서든 파워 오프에 응답하여 상기 복수의 코어들이 동시에 덤프 동작을 수행하도록 메모리 장치를 제어하는 프로세서부를 포함한다.
본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법은 복수의 코어들에 각각 입력되는 로우 상태의 파워 신호를 기초로 서든 파워 오프를 감지하는 단계; 상기 복수의 코어들 중 서든 파워 오프를 먼저 감지한 코어가 상기 복수의 코어들 중 나머지 코어들에 인터럽트 신호를 제공하는 단계; 및 상기 인터럽트 신호에 응답하여 덤프 동작을 수행하는 단계;를 포함한다.
본 기술은 멀티코어 환경에서 각각의 코어가 서든 파워 오프를 빠르게 감지하고, 그에 따라 덤프 동작을 수행할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 메모리 컨트롤러를 설명하기 위한 도면이다.
도 3은 본 발명의 실시 예에 따른 어느 하나의 코어를 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 전원 하강이 감지되는 경우, 서든 파워 오프를 감지하는 기준을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따른 서든 파워 오프를 감지하지 못한 경우 각 코어들의 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 어느 하나의 코어가 서든 파워 오프를 감지한 경우 다른 코어들의 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 복수의 코어가 동시에 서든 파워 오프를 감지한 경우 다른 코어들의 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 실시 예에 따른 저장 장치가 적용된 메모리 카드 시스템을 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템이 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템이 적용된 사용자 시스템을 보여주기 위한 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 스토리지 장치(1000) 또는 메모리 시스템(1000)은 메모리 컨트롤러(1100), 휘발성 메모리(1200) 및 비휘발성 메모리(1300)를 포함할 수 있다.
메모리 시스템(1000)은 휴대폰, 스마트폰, MP3 플레이어, 랩탑 컴퓨터, 데스크탑 컴퓨터, 게임기, TV, 태블릿 PC 또는 차량용 인포테인먼트(in-vehicle infortainment) 시스템 등과 같이 호스트(100)의 제어에 따라 데이터를 저장하는 장치일 수 있다.
메모리 시스템(1000)은 호스트(100)와의 통신 방식인 호스트 인터페이스에 따라서 다양한 종류의 저장 장치들 중 어느 하나로 제조될 수 있다. 예를 들면 메모리 시스템(1000)은 SSD, MMC, eMMC, RS-MMC, micro-MMC 형태의 멀티 미디어 카드(multimedia card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(secure digital) 카드, USB(universal serial bus) 저장 장치, UFS(universal flash storage) 장치, PCMCIA(personal computer memory card international association) 카드 형태의 저장 장치, PCI(peripheral component interconnection) 카드 형태의 저장 장치, PCI-E(PCI express) 카드 형태의 저장 장치, CF(compact flash) 카드, 스마트 미디어(smart media) 카드, 메모리 스틱(memory stick)등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구성될 수 있다.
메모리 시스템(1000)은 다양한 종류의 패키지(package) 형태들 중 어느 하나로 제조될 수 있다. 예를 들면, 메모리 시스템(1000)은 POP(package on package), SIP(system in package), SOC(system on chip), MCP(multi chip package), COB(chip on board), WFP(wafer-level fabricated package), WSP(wafer-level stack package) 등과 같은 다양한 종류의 패키지 형태들 중 어느 하나로 제조될 수 있다.
호스트(100)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI(Peripheral Component Interconnection), PCIe (PCI express), NVMe (Non Volatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 메모리 시스템(1000)과 통신할 수 있다.
비휘발성 메모리(1300)는 데이터를 저장할 수 있다. 비휘발성 메모리(1300)는 메모리 컨트롤러(1100)의 제어에 응답하여 동작할 수 있다.
비휘발성 메모리(1300)는 데이터를 저장하는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록은 복수의 메모리 셀들을 포함할 수 있다. 하나의 메모리 블록은 복수의 페이지들을 포함할 수 있다. 실시 예에서, 페이지는 비휘발성 메모리(1300)에 데이터를 저장하거나, 비휘발성 메모리(1300)에 저장된 데이터를 리드하는 단위일 수 있다. 실시 예에서, 비휘발성 메모리(1300)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR), RDRAM(Rambus Dynamic Random Access Memory), 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND), 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory: RRAM), 상변화 메모리(phase-change memory: PRAM), 자기저항 메모리(magnetoresistive random access memory: MRAM), 강유전체 메모리(ferroelectric random access memory: FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory: STT-RAM) 등이 될 수 있다. 본 명세서에서는, 설명의 편의를 위해 비휘발성 메모리(1300)를 낸드 플래시로 가정하여 설명하지만, 반드시 이에 한정되는 것은 아니다. 비휘발성 메모리 영역에 대응되는 구성은 비휘발성 메모리(1300)에 대응될 수 있을 것이다.
실시 예에서, 비휘발성 메모리(1300)는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트(floating gate; FG)로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 적용될 수 있다.
실시 예에서, 비휘발성 메모리(1300)에 포함된 각각의 메모리 셀들은 하나의 데이터 비트를 저장하는 싱글 레벨 셀(Single Level Cell; SLC)로 구성될 수 있다. 또는 비휘발성 메모리(1300)에 포함된 각각의 메모리 셀들은 두 개의 데이터 비트를 저장하는 멀티 레벨 셀(Multi Level Cell; MLC), 세 개의 데이터 비트들을 저장하는 트리플 레벨 셀(Triple Level Cell; TLC) 또는 네 개의 데이터 비트를 저장할 수 있는 쿼드 레벨 셀(Quad Level Cell; QLC)로 구성될 수 있다.
비휘발성 메모리(1300)는 메모리 컨트롤러(1100)로부터 커맨드 및 어드레스를 수신하고, 메모리 셀 어레이 중 어드레스에 의해 선택된 영역을 액세스 하도록 구성될 수 있다. 즉, 비휘발성 메모리(1300)는 어드레스에 의해 선택된 영역에 대해 커맨드에 해당하는 동작을 수행할 수 있다. 예를 들면, 비휘발성 메모리(1300)는 라이트 동작(프로그램 동작), 리드 동작 및 소거 동작을 수행할 수 있다. 프로그램 동작 시에, 비휘발성 메모리(1300)는 어드레스에 의해 선택된 영역에 데이터를 프로그램 할 것이다. 리드 동작 시에, 비휘발성 메모리(1300)는 어드레스에 의해 선택된 영역으로부터 데이터를 읽을 것이다. 소거 동작 시에, 비휘발성 메모리(1300)는 어드레스에 의해 선택된 영역에 저장된 데이터를 소거할 것이다.
메모리 컨트롤러(1100)는 메모리 시스템(1000)의 전반적인 동작을 제어할 수 있다.
메모리 시스템(1000)에 전원이 인가되면, 메모리 컨트롤러(1100)는 펌웨어(firmware, FW)를 실행할 수 있다. 비휘발성 메모리(1300)가 플래시 메모리 장치인 경우, 메모리 컨트롤러(1100)는 호스트(100)와 비휘발성 메모리(1300)간의 통신을 제어하기 위한 플래시 변환 레이어(Flash Translation Layer, FTL)와 같은 펌웨어를 실행할 수 있다.
실시 예에서, 메모리 컨트롤러(1100)는 호스트(100)로부터 데이터와 논리 블록 어드레스(Logical Block Address)를 입력 받고, 논리 블록 어드레스(Logical Block Address)를 비휘발성 메모리(1300)에 포함된 데이터가 저장될 메모리 셀들의 어드레스를 나타내는 물리 블록 어드레스(Physical Address)로 변환할 수 있다. 또한 메모리 컨트롤러(1100)는 논리 블록 어드레스(LBA)와 물리 블록 어드레스(PBA)간의 맵핑(mapping) 관계를 구성하는 논리-물리 어드레스 맵핑 테이블(Logical-Physical Mapping Table)을 휘발성 메모리(1200)에 저장할 수 있다.
메모리 컨트롤러(1100)는 호스트(100)의 요청(request)에 따라 프로그램 동작, 리드 동작 또는 소거 동작 등을 수행하도록 비휘발성 메모리(1300)를 제어할 수 있다. 프로그램 동작 시, 메모리 컨트롤러(1100)는 프로그램 커맨드, 논리 블록 어드레스(LBA) 및 데이터를 비휘발성 메모리(1300)에 제공할 수 있다. 리드 동작 시, 메모리 컨트롤러(1100)는 리드 커맨드 및 논리 블록 어드레스(LBA)를 비휘발성 메모리(1300)에 제공할 수 있다. 소거 동작 시, 메모리 컨트롤러(1100)는 소거 커맨드 및 논리 블록 어드레스(LBA)를 비휘발성 메모리(1300)에 제공할 수 있다.
메모리 컨트롤러(1100)는 호스트(100)와 비휘발성 메모리(1300) 사이의 데이터 교환을 제어할 수 있다. 또한 메모리 컨트롤러(1100)는 비휘발성 메모리(1300)의 제어를 위한 시스템 데이터를 일시적으로 휘발성 메모리(1200)에 저장할 수 있다. 예를 들어, 메모리 컨트롤러(1100)는 호스트(100)로부터 입력된 데이터를 휘발성 메모리(1200)에 임시로 저장하고, 이후 휘발성 메모리(1200)에 임시로 저장된 데이터를 비휘발성 메모리(1300)로 전송할 수 있다.
다양한 실시 예에서, 휘발성 메모리(1200)는 메모리 컨트롤러(1100)의 동작 메모리, 캐시 메모리로 사용될 수 있다. 휘발성 메모리(1200)는 메모리 컨트롤러(1100)가 실행하는 코드들 또는 커맨드들을 저장할 수 있다. 또한 휘발성 메모리(1200)는 메모리 컨트롤러(1100)에 의해 처리되는 데이터를 저장할 수 있다.
실시 예에서, 휘발성 메모리(1200)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), DDR4 SDRAM, LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR) 또는 RDRAM(Rambus Dynamic Random Access Memory)과 같은 동적 랜덤 액세스 메모리(DRAM) 또는 정적 랜덤 액세스 메모리(SRAM)로 구현될 수 있다.
다양한 실시 예에서, 메모리 시스템(1000)은 휘발성 메모리(1200)를 포함하지 않을 수 있다. 이 경우, 메모리 시스템(1000) 외부의 휘발성 메모리들이 휘발성 메모리(1300)의 역할을 수행할 수 있을 것이다.
도 1을 참조하면, 메모리 컨트롤러(1100)는 전원 감지부(1110) 및 프로세서부(1120)를 포함할 수 있다. 전원 감지부(1110)는 외부에서 인가되는 전원의 레벨을 모니터링할 수 있다. 실시 예에서, 프로세서부(1120)는 비휘발성 메모리(1300)를 제어하는 동작을 수행하는 코어들로 구성될 수 있다. 프로세서부(1120)를 구성하는 코어들의 개수는 설계에 따라 달라질 수 있다. 하나의 코어를 포함하는 프로세서의 경우 싱글 코어 프로세서 일 수 있다. 두 개 이상의 코어를 포함하는 프로세서의 경우 멀티 코어 프로세서 일 수 있다.
설명의 편의를 위해 전원 감지부(1110) 및 복수의 코어들을 포함하는 프로세서부(1120)는 메모리 컨트롤러(1100) 내부에 포함되는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 비휘발성 메모리 영역을 제어하는 구성에 대응되는 구성은 프로세서부(1120)에 대응될 수 있다. 마찬가지로, 전원을 감지하고 전원의 변동에 따른 파워 신호를 출력하는 전원 감지부(1110) 역시 메모리 컨트롤러(1100) 내부의 구성으로 한정되지 않는다.
도 2는 본 발명의 실시 예에 따른 메모리 컨트롤러를 설명하기 위한 도면이다.
도 2를 참조하면, 도 1의 메모리 컨트롤러(1100)는 전원 감지부(1110) 및 4개의 코어들을 포함하는 프로세서부(1120)를 포함할 수 있다.
전원 감지부(1110)는 외부에서 인가되는 전원의 레벨을 지속적으로 모니터링 하면서, 외부 전원이 안정적으로 인가되는 경우 하이(high) 상태의 파워 신호(SIG_P)를 프로세서부(1120)에 제공할 수 있다. 또한 전원 감지부(1110)는 외부에서 인가되는 전원이 특정한 기준 값 보다 작아지는 경우, 로우(low) 상태의 파워 신호(SIG_P)를 프로세서부(1120)에 제공할 수 있다. 기준 전압 값은 설계에 따라 달라질 수 있으며, 서든 파워 오프를 결정하는 기준 전압일 수 있다.
프로세서부(1120)는 제1 코어(1121), 제2 코어(1122), 제3 코어(1123) 및 제4 코어(1124)를 포함하는 쿼드 코어 프로세서일 수 있다. 설명의 편의를 위해 4개의 코어를 가지는 프로세서부로 가정하나, 본 발명은 이에 한정되지 않고, 멀티 코어 프로세서이면 족하다.
프로세서부(1120)는 각각의 코어들을 통해 펌웨어(Firmware)를 구동하고, 도 1의 비휘발성 메모리(1300)를 제어할 수 있다. 이 때, 각각의 코어들이 제어하는 비휘발성 메모리(1300) 내부의 영역은 서로 다를 수 있다. 즉, 비휘발성 메모리(1300) 내부의 영역들 중, 두 개 이상의 코어가 하나의 영역을 제어하지 않을 수 있다.
또한, 프로세서부(1120) 내부의 각각의 코어들은 서로 독립적일 수 있다. 각각의 코어들은, 서로 다른 코어들이 수행하는 태스크(task)에 영향을 받지 않고, 독립적으로 태스크(task)를 수행할 수 있다. 예를 들어, 제1 코어가 수행 중인 태스크(task)의 시작과 종료에 관계없이 제2 코어는 제2 코어에 입력된 태스크(task)를 수행할 수 있다. 이를 통해, 병렬적인 태스크(task)의 수행이 가능하여 프로세서부(1120)의 성능이 향상될 수 있다.
아이들(Idle) 상태의 코어는 태스크(task)를 수행하지 않는 상태의 코어일 수 있다. 동작(Run) 상태의 코어는 태스크(task)를 수행중인 상태의 코어일 수 있다. 각각의 코어들은, 입력 받은 커맨드를 우선 순위에 따라 순차적으로 처리할 수 있다.
예를 들어, 각각의 코어들이 수행하는 태스크(task)는 태스크(task)의 연속성이 보장되어야 하는 태스크(task)일 수 있다. 이러한 연속성이 보장되어야 하는 태스크(task)를 수행하고 있는 코어의 경우, 다른 태스크(task)를 수행하도록 하는 커맨드가 입력되더라도, 현재 수행하고 있는 태스크(task)를 완료하기 전까지 다른 태스크(task)를 수행하지 않을 수 있다. 또한, 연속성이 보장되어야 하는 태스크(task)를 수행 중인 경우, 다른 커맨드나 신호를 인지하지 못할 수 있다.
마찬가지로, 각각의 코어들이 수행하는 태스크(task)는 연속성이 보장되지 않아도 되는 태스크(task)일 수 있다. 연속성이 보장되지 않아도 되는 태스크(task)를 수행중인 코어에, 연속성이 보장되어야 하는 태스크(task) 또는 현재 수행중인 태스크(task) 보다 우선 순위가 높은 태스크(task)에 대한 커맨드가 입력되는 경우, 코어는 현재 수행 중인 태스크(task)를 중단하고, 연속성이 보장되어야 하는 태스크(task) 또는 우선 순위가 높은 태스크(task)를 먼저 수행할 수 있다. 실시 예에서, 덤프 동작은 메모리 장치의 신뢰성을 위해 우선 순위가 높은 태스크(task)일 수 있다.
각각의 코어들은 전원 감지부(1110)가 제공하는 파워 신호(SIG_P)를 기초로 서든 파워 오프를 감지할 수 있다. 서든 파워 오프가 발생하는 경우, 도 1에 도시된 휘발성 메모리 영역(1200)에 저장된 데이터가 소실될 수 있다. 따라서, 서든 파워 오프가 발생하는 경우 이를 빠르게 감지하고 휘발성 메모리(1200)에 저장된 데이터를 비휘발성 메모리(1300)에 저장하는 덤프 동작을 수행해야 한다. 도 1의 메모리 시스템(1000)이 동작하는 경우, 비휘발성 메모리(1300)에 저장된 시스템 데이터를 휘발성 메모리(1200)에 임시로 저장 해놓고 사용하기 때문에, 지속적으로 갱신되는 시스템 데이터를 빠르게 비휘발성 메모리(1300)에 저장하여야 한다. 시스템 데이터는 도 1의 메모리 컨트롤러(1100)가 비휘발성 메모리(1300)를 제어하는데 필수적인 설정 데이터일 수 있다.
시스템 데이터는 논리 블록 어드레스(LBA)와 물리 블록 어드레스(PBA)의 맵핑 관계를 포함하는 맵핑 데이터(MAP_DATA), 부팅 관련 정보와 사용자 관련 정보를 포함하는 호스트 데이터(HOST_DATA) 및 유저 관련 데이터(USER_DATA), 펌웨어 관련 데이터(FW_DATA)를 포함할 수 있다. 부팅 관련 정보는 부트 로더(Boot Loader) 및 부트(boot)관련 정보들을 포함하고, 사용자 관련 정보는 RPMB(Replaced Protected Memory Block) 및 쓰기보호(Permanent Write Protect persist within next power on, WP)와 관련된 정보들을 포함할 수 있다.
펌웨어 관련 데이터(FW_DATA)는 펌웨어 시스템 알고리즘으로 메모리 장치와 관련된 설정 정보들이나 하드웨어 레지스터 정보 및 FTL 관련 정보를 포함할 수 있다.
맵핑 관련 데이터(MAP_DATA)는 맵 인덱스(Map Index), 맵 테이블(Map T1~T5), 맵 변환(Map P2L) 및 임시 맵(Map temp P2L) 정보들 중 적어도 하나를 포함한다. 맵 인덱스는 맵 관련 정보의 위치를 포함하고, 맵 테이블은 실제 메모리 장치의 맵 데이터 정보를 포함한다. 맵 변환 및 임시 맵 정보는 물리 블록 어드레스와 논리 블록 어드레스 간의 정보를 포함한다.
프로세서부(1120) 내부의 제1 코어(1121), 제2 코어(1122), 제3 코어(1123) 및 제4 코어(1124)는 서로 통신할 수 있다. 각각의 코어들은 전원 감지부(1110)가 제공하는 파워 신호(SIG_P)를 기초로 서든 파워 오프를 감지하고, 서든 파워 오프를 감지한 코어는 나머지 코어들에 서든 파워 오프 발생에 대한 정보를 제공할 수 있다.
예를 들어, 제1 코어(1121)가 아이들(Idle) 상태인 경우, 전원 감지부(1110)가 제공하는 파워 신호(SIG_P)를 곧바로 인지하고, 이를 기초로 서든 파워 오프를 감지할 수 있다. 제1 코어(1121)는 서든 파워 오프가 유효한 것으로 판단되는 경우, 제2 코어(1122), 제3코어(1123) 및 제4 코어(1124)에 서든 파워 오프 발생에 대한 정보를 제공할 수 있다.
마찬가지로, 연속성이 보장되지 않아도 되는 태스크(task)를 수행 중인 코어는, 전원 감지부(1110)가 제공하는 파워 신호(SIG_P)를 곧바로 인지하고, 이를 기초로 서든 파워 오프를 감지할 수 있다. 제1 코어(1121)는 서든 파워 오프가 유효한 것으로 판단되는 경우, 제2 코어(1122), 제3코어(1123) 및 제4 코어(1124)에 서든 파워 오프 발생에 대한 정보를 제공할 수 있다.
이에 반해, 각각의 코어들은 서든 파워 오프가 유효하지 않은 것으로 판단되는 경우, 즉 무효인 것으로 판단되는 경우에는 다른 코어들에 서든 파워 오프 발생에 대한 정보를 제공하지 않을 수 있다. 이 경우, 복수의 코어들은 각각 수행중인 태스크(task)를 마저 수행할 수 있다.
실시 예에서, 서든 파워 오프를 감지한 제1 코어(1121)는 제2 코어(1122), 제3 코어(1123) 및 제4 코어(1124)에 서든 파워 오프 발생에 대한 정보를 제공한 후, 곧바로 덤프 동작을 수행할 수 있다. 제1 코어(1121)는 제1 코어(1121)가 제어하는 도 1의 비휘발성 메모리(1300) 내부의 영역에 휘발성 메모리(1200)에 저장된 데이터를 저장하도록 비휘발성 메모리(1300)를 제어할 수 있다.
실시 예에서, 제1 코어(1121)로부터 서든 파워 오프 발생에 대한 정보를 수신한 제2 코어(1122), 제3 코어(1123) 및 제4 코어(1124)는 서든 파워 오프 발생에 대한 정보에 응답하여, 덤프 동작을 수행할 수 있다. 이 때, 서든 파워 오프 발생에 대한 정보는 다른 코어들이 수행중인 태스크(task)를 중단하고, 덤프 동작을 수행하도록 하는 인터럽트 신호를 포함할 수 있다. 제2 코어(1122), 제3 코어(1123) 및 제4 코어(1124)는 인터럽트 신호에 응답하여 각각의 코어들이 제어하는 도 1의 비휘발성 메모리(1300) 내부의 영역에 휘발성 메모리(1200)에 저장된 데이터를 저장하도록 비휘발성 메모리(1300)를 제어할 수 있다.
예를 들어, 연속성이 보장되지 않아도 되는 태스크(task)를 수행중인 복수의 코어들은 서든 파워 오프를 감지한 코어가 제공하는 인터럽트 신호에 응답하여 수행 중인 태스크(task)를 중단하고, 우선적으로 덤프 동작을 수행할 것이다.
예를 들어, 연속성이 보장되어야 하는 태스크(task)를 수행중인 복수의 코어들은 서든 파워 오프를 감지한 코어가 제공하는 인터럽트 신호를 감지하고, 연속성이 보장되어야 하는 태스크(task)가 종료되면 덤프 동작을 수행할 수 있다.
복수의 코어들이 각각 서든 파워 오프를 감지하고, 서로 통신하여, 서든 파워 오프에 응답하여 신속하게 덤프 동작을 수행할 수 있다. 즉, 어느 하나의 코어가 덤프 동작을 수행하면, 다른 복수의 코어들도 덤프 동작을 수행한다는 것이 보장될 수 있다.
도 3은 본 발명의 실시 예에 따른 어느 하나의 코어를 설명하기 위한 도면이다.
도 3을 참조하면, 도 2의 프로세서부(1120) 내부의 복수의 코어들 중 제1 코어(1121)는 서든 파워 오프 감지부(1125), 동작 제어부(1126) 및 신호 제어부(1127)를 포함할 수 있다.
신호 제어부(1127)는 도 2의 전원 감지부(1110)가 제공하는 파워 신호(SIG_P)를 수신할 수 있다. 도 2에서 설명한 바와 같이, 전원 감지부(1110)는 외부에서 인가되는 전원을 지속적으로 모니터링하고, 외부 인가 전원이 기준 값 이상으로 유지되는 경우 하이(high) 상태의 파워 신호(SIG_P)를 출력할 수 있다. 또한, 전원 감지부(1110)는 외부에서 인가되는 전원이 기준 값 미만으로 떨어지는 경우, 로우(low) 상태의 파워 신호(SIG_P)를 출력할 수 있다. 신호 제어부(1127)는 도 2의 전원 감지부(1110)가 출력한 파워 신호(SIG_P)를 수신하여, 서든 파워 오프 감지부(1125)에 제공할 수 있다.
서든 파워 오프 감지부(1125)는 신호 제어부(1127)가 제공하는 파워 신호(SIG_P)를 기초로 서든 파워 오프를 감지할 수 있다. 도 4에서 상세히 설명하겠지만, 서든 파워 오프 감지부(1125)가 로우 상태의 파워 신호(SIG_P)를 기초로 서든 파워 오프가 유효하다고 판단하는 경우, 서든 파워 오프가 유효하다는 정보를 신호 제어부(1127)에 제공할 수 있다. 또한, 서든 파워 오프 감지부(1125)가 로우 상태의 파워 신호(SIG_P)를 기초로 서든 파워 오프가 유효하지 않다고 판단하는 경우, 서든 파워 오프가 유효하지 않다는 정보를 신호 제어부(1127)에 제공할 수 있다.
동작 제어부(1126)는 태스크(task)를 수행하도록 제어할 수 있다. 각각의 코어들에 입력되는 태스크(task)에 대한 요청은 동작 제어부(1126)에 의해 수행될 수 있다.
신호 제어부(1127)는 서든 파워 오프 감지부(1125)로부터 서든 파워 오프가 유효하다는 정보를 수신하는 경우, 서든 파워 오프의 발생을 나타내는 정보를 제2 코어(1122), 제3 코어(1123) 및 제4 코어(1124)에 제공할 수 있다. 서든 파워 오프의 발생을 나타내는 정보는, 덤프 동작을 수행하도록 다른 코어들에 제공하는 인터럽트 신호를 포함할 수 있다. 제2 코어(1122)의 신호 제어부(미도시), 제3 코어(1123)의 신호 제어부(미도시) 및 제4 코어(1124)의 신호 제어부(미도시)는 제1 코어(1121)의 신호 제어부(1127)가 제공하는 인터럽트 신호를 수신할 수 있다.
신호 제어부(1127)는 서든 파워 오프 감지부(1125)로부터 서든 파워 오프가 유효하다는 정보를 수신하는 경우, 서든 파워 오프 발생에 대한 정보를 동작 제어부(1126)에 제공할 수 있다. 동작 제어부(1126)는 유효한 서든 파워 오프가 발생한 것으로 판단되면, 덤프 동작을 수행할 수 있다.
제1 코어의 신호 제어부(1127)가 제공하는 서든 파워 오프의 발생을 나타내는 정보를 수신한 제2 코어의 신호 제어부(미도시), 제3 코어의 신호 제어부(미도시) 및 제4 코어의 신호 제어부(미도시)는 서든 파워 오프 발생에 대한 정보를 제2 코어의 동작 제어부(미도시), 제3 코어의 동작 제어부(미도시) 및 제4 코어의 동작 제어부(미도시)에 제공할 수 있다. 각각의 코어에 포함되는 동작 제어부(미도시)들은, 각각의 코어에 포함되는 신호 제어부(미도시)들이 제공하는 서든 파워 오프 발생에 대한 정보에 기초하여 덤프 동작을 각각 수행할 것이다.
설명의 편의를 위해 제1 코어(1121)를 기준으로 설명하였으나, 제2 코어(1122), 제3 코어(1123) 및 제4 코어(1124) 역시 제1 코어(1121)와 동일한 구조로 설계될 수 있다.
도 4는 본 발명의 실시 예에 따른 전원 하강이 감지되는 경우, 서든 파워 오프를 감지하는 기준을 설명하기 위한 도면이다.
도 4를 참조하면, 도 2의 전원 감지부(1110)가 제공하는 파워 신호(SIG_P)의 변화에 따라 각각의 코어들에 포함된 서든 파워 오프 감지부가 서든 파워 오프를 감지하는 방법이 도시된다.
도 3에서 설명한 바와 같이, 도 3의 서든 파워 오프 감지부(1125)는 신호 제어부(1127)로부터 파워 신호(SIG_P)를 수신할 수 있다. 파워 신호(SIG_P)는 외부에서 인가되는 전원에 따라 변경될 수 있다. 도 2의 전원 감지부(1110)는 외부에서 인가되는 전원이 기준 값 이상인 경우, 하이(high) 상태의 파워 신호(SIG_P)를 출력하고, 외부에서 인가되는 전원이 기준 값 미만인 경우, 로우(low) 상태의 파워 신호(SIG_P)를 출력할 수 있다.
서든 파워 오프는 로우(low) 상태의 파워 신호(SIG_P)가 기준 시간(t_ref)동안 서든 파워 오프 감지부(1125)에 입력되는 상태일 수 있다. 기준 시간(t_ref)은 미리 설정된 값으로, 메모리 시스템의 보조 전원의 용량에 따라 달라질 수 있다.
시간의 흐름에 따라 입력되는 파워 신호(SIG_P)는 t1 ~ t2 사이에서 로우(low)인 상태로 입력될 수 있다. 서든 파워 오프 감지부(1125)는 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 간격인 t2-t1을 기준 시간(t_ref)과 비교할 수 있다. 화살표와 같이, t2-t1의 시간 간격은 기준 시간(t_ref)보다 짧으므로 서든 파워 오프가 유효하지 않다고 판단할 수 있다. 외부에서 인가되는 전원은 상황에 따라 변경될 수 있으므로, 전원이 기준 값 미만이라 하여 곧바로 덤프 동작을 수행하지 않도록 하기 위함이다.
시간의 흐름에 따라 입력되는 파워 신호(SIG_P)는 t2 ~ t3 사이에서 하이(high) 상태로 입력될 수 있다. 이 경우, 외부에서 인가되는 전원은 일정하게 유지되는 상태일 수 있다. 또한 이 경우, 외부에서 인가되는 전원은 계속 변경될 수 있지만, 서든 파워 오프가 우려되지 않는 기준 전압 값 이상에서 변경되는 상태일 수 있다.
시간의 흐름에 따라 t3 부터 다시 로우(low) 상태의 파워 신호(SIG_P)가 입력될 수 있다. 서든 파워 오프 감지부(1125)는 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 t3 시점부터 기준 시간(t_ref) 동안 로우(low) 상태의 파워 신호가 입력되는지를 판단할 수 있다. t3 시점부터 기준 시간(t_ref)이 경과한 시점에 돌입한 경우, 서든 파워 오프 감지부(1125)는 서든 파워 오프가 유효한 것으로 판단할 수 있다. 서든 파워 오프 감지부(1125)는 서든 파워 오프가 유효한 것으로 판단된 경우, 도 3에서 설명한 바와 같이 신호 제어부(1127)에 서든 파워 오프가 유효하다는 정보를 제공할 수 있다. 기준 시간(t_ref)은 서든 파워 오프에 응답하여 신속하게 덤프 동작을 수행하기 위한 최소한의 시간일 수 있다. 따라서, t3 시점부터 기준 시간(t_ref)이 경과한 이후부터, t4 시점이 될 때까지 로우(low) 상태의 파워 신호(SIG_P)가 계속 입력된다 하더라도, t3 시점부터 기준 시간(t_ref)이 경과한 시점에 즉시 신호 제어부(1127)에 서든 파워 오프가 유효하다는 정보를 제공할 것이다. 이에 응답하여 신호 제어부(1127)는 다른 코어들의 신호 제어부에 인터럽트 신호를 포함하는 서든 파워 오프 발생에 대한 정보를 제공할 수 있다.
도 5는 본 발명의 실시 예에 따른 서든 파워 오프를 감지하지 못한 경우 각 코어들의 동작을 설명하기 위한 도면이다.
도 5를 참조하면, 시간의 흐름에 따라 입력되는 파워 신호(SIG_P)에 따라 복수의 코어들의 동작이 도시된다.
t1 이전부터, 제1 코어(1121)는 노멀 태스크(Normal Task a), 제2 코어(1122)는 딜레이 태스크(Delayed Task b), 제3 코어(1123)는 딜레이 태스크(Delayed Task c), 제4 코어(1124)는 딜레이 태스크(Delayed Task d)를 수행중인 상태일 수 있다. 도 2의 설명에서 상술한 바와 같이, 노멀 태스크(Normal Task)는 연속성이 보장되지 않아도 되는 태스크(task)를 수행중인 상태일 수 있다. 딜레이 태스크(Delayed Task)는 연속성이 보장되어야 하는 태스크(task)를 수행중인 상태이므로 새로운 태스크(task)에 대한 요청이나 다른 신호를 인지하지 못하는 상태일 수 있다. 또한 로우(low) 상태의 파워 신호(SIG_P)가 입력되어 서든 파워 오프인지 여부를 판단하는 태스크(task)는 노멀 태스크(Normal Task) 보다 높은 우선 순위의 태스크(task)일 수 있다. 즉, 노멀 태스크(Normal Task)를 수행 중인 코어는 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 경우, 곧바로 서든 파워 오프가 유효한지 여부를 판단할 것이다.
t1 시점부터 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 경우, 제1 코어(1121)는 로우(low) 상태의 파워 신호(SIG_P)를 인지하고, 서든 파워 오프가 유효한지를 판단(SPO Judge)할 수 있다. 서든 파워 오프는 로우(low) 상태의 파워 신호가 기준 시간(t_ref) 동안 입력되는 상태일 수 있다. 각각의 코어는 독립적으로 태스크(task)를 수행할 수 있으므로, 제2 코어(1122)는 딜레이 태스크(Delayed Task b)를 수행한 이후, t2 시점부터 로우(low) 상태의 파워 신호(SIG_P)를 감지할 수 있다. 제2 코어(1122)는 t2 시점부터 인지한 로우(low) 상태의 파워 신호(SIG_P)를 기초로 서든 파워 오프가 유효한지를 판단(SPO Judge)할 것이다. 이 때, 제3 코어(1123)와 제4 코어(1124)는 각각 딜레이 태스크(Delayed Task c, d)를 수행 중이므로 로우(low) 상태의 파워 신호(SIG_P)를 인지하지 못할 수 있다.
제1 코어(1121)는 t1 시점부터 로우(low) 상태의 파워 신호(SIG_P)가 기준 시간(t_ref)동안 입력되는지를 판단할 수 있다. 제2 코어(1122)는 t2 시점부터 로우(low) 상태의 파워 신호(SIG_P)가 기준 시간동안 입력되는지를 판단할 수 있다. 하이(high) 상태의 파워 신호(SIG_P)가 입력되는 t3 시점부터 t1 시점 까지의 차이가 기준 시간(t_ref)보다 작은 경우, 제1 코어(1121)는 서든 파워 오프가 유효하지 않다고 판단할 수 있다.
마찬가지로, 하이(high) 상태의 파워 신호(SIG_P)가 입력되는 t3 시점부터 t2 시점 까지의 차이가 기준 시간(t_ref)보다 작은 경우, 제2 코어(1122)는 서든 파워 오프가 유효하지 않다고 판단할 수 있다. 즉, 서든 파워 오프가 유효하지 않아 덤프 동작을 수행할 필요가 없으므로 제1 코어(1121) 및 제2 코어(1122)는 인터럽트 신호를 포함하는 서든 파워 오프 발생에 대한 정보를 다른 코어들에 제공하지 않을 것이다.
t3 시점부터는 하이(high) 상태의 파워 신호(SIG_P)가 입력되는 상태, 즉 외부에서 인가되는 전원이 안정적으로 유지되는 상태이므로 각각의 코어들은 할당된 태스크(task)를 수행할 것이다. 제1 코어(1121)는 노멀 태스크(Normal Task e) 및 노멀 태스크(Normal Task g)를 순서에 따라 처리할 것이다. 제2 코어(1122)는 노멀 태스크(Normal Task f)를 수행할 것이다.
t1 ~ t3 시점에서 제3 코어(1123) 및 제4 코어(1124)는 딜레이 태스크(Delayed Task c, d)를 수행중인 상태이므로 로우(low) 상태의 파워 신호(SIG_P)를 감지할 수 없는 상태이지만, 제1 코어(1121) 및 제2 코어(1122)로부터 별도의 인터럽트 신호를 수신하지 않았으므로, 딜레이 태스크(Delayed Task c, d)를 마저 수행할 것이다. 제4 코어(1124)는 이후 할당된 노멀 태스크(Normal Task h)를 수행할 것이다.
도 6은 본 발명의 실시 예에 따른 어느 하나의 코어가 서든 파워 오프를 감지한 경우 다른 코어들의 동작을 설명하기 위한 도면이다.
도 6을 참조하면, 유효한 서든 파워 오프를 감지한 제2 코어(1122)에 의해 덤프 동작을 수행하는 과정이 도시된다.
t1' 시점 이전부터, 제1 코어(1121)는 딜레이 태스크(Delayed Task a), 제2 코어(1122)는 노멀 태스크(Normal Task b), 제3 코어(1123)는 딜레이 태스크(Delayed Task c), 제4 코어(1124)는 딜레이 태스크(Delayed Task d)를 수행중인 상태일 수 있다. 도 5에서 설명한 바와 같이, 노멀 태스크(Normal Task)는 연속성이 보장되지 않아도 되는 태스크(task)를 수행중인 상태일 수 있다. 딜레이 태스크(Delayed Task)는 연속성이 보장되어야 하는 태스크(task)를 수행중인 상태이므로 새로운 태스크(task)에 대한 요청이나 다른 신호를 인지하지 못하는 상태일 수 있다. 또한 로우(low) 상태의 파워 신호(SIG_P)가 입력되어 서든 파워 오프인지 여부를 판단하는 태스크(task)는 노멀 태스크(Normal Task) 보다 높은 우선 순위의 태스크(task)일 수 있다. 즉, 노멀 태스크(Normal Task)를 수행 중인 코어는 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 경우, 곧바로 서든 파워 오프가 유효한지 여부를 판단할 것이다.
t1' 시점부터, 로우(low) 상태의 파워 신호(SIG_P)가 인가되는 경우, 제1 코어(1121), 제3 코어(1123) 및 제4 코어(1124)는 딜레이 태스크(Delayed Task a, c, d)를 수행중인 상태이므로 로우(low) 상태의 파워 신호(SIG_P)를 인지하지 못할 것이다. 이에 반해, 노멀 태스크(Normal Task b)를 수행 중인 제2 코어는 t1' 시점부터 로우(low) 상태의 파워 신호(SIG_P)를 인지하고, 로우(low) 상태의 파워 신호(SIG_P)가 기준 시간(t_ref) 동안 입력되는지 여부, 즉 서든 파워 오프가 유효한지를 판단(SPO Judge)할 수 있다. 딜레이 태스크(Delayed Task a)를 모두 완료한 제1 코어(1121) 역시 t2' 시점부터 로우(low) 상태의 파워 신호(SIG_P)를 인지하고, t2' 시점부터 서든 파워 오프가 유효한지를 판단(SPO Judge)할 수 있다.
t1' 부터 t3' 까지의 시간 간격인 t3'-t1'이 기준 시간(t_ref)과 같아지는 경우, 제2 코어(1122)는 서든 파워 오프가 유효하다고 판단할 수 있다. 서든 파워 오프가 유효하다고 판단한 제2 코어(1122)는 t3' 시점부터 PLP 덤프 동작(Power Loss Protection Dump Operation)을 수행할 것이다. 또한, 제2 코어(1122)는 서든 파워 오프의 발생에 대한 정보를 제1 코어(1121), 제3 코어(1123) 및 제4 코어(1124)에 제공할 수 있다. 이 때, 서든 파워 오프 발생에 대한 정보는 PLP 덤프 동작을 수행하도록 하는 인터럽트 신호를 포함할 수 있다.
제2 코어(1122)가 제공한 서든 파워 오프 발생에 대한 정보에 응답하여 제1 코어(1121), 제3 코어(1123) 및 제4 코어(1124)는 PLP 덤프 동작을 수행할 수 있다. 구체적으로, 제1 코어(1121)는 제2 코어(1122)가 제공한 서든 파워 오프 발생에 대한 정보에 응답하여, t3' 시점부터 PLP 덤프 동작을 수행할 것이다. 제3 코어(1123) 및 제4 코어(1124)는 제2 코어(1122)가 제공한 서든 파워 오프 발생에 대한 정보를 기초로, 각각의 딜레이 태스크(Delayed Task c, d)가 끝나는 t4' 및 t5' 시점부터 PLP 덤프 동작을 수행할 것이다. PLP 덤프 동작은, 휘발성 메모리 영역에 저장된 데이터들을 비휘발성 메모리 영역에 저장하는 동작일 수 있다. 이 때, 각각의 코어들이 제어하는 비휘발성 메모리 영역은 서로 다른 영역일 수 있다. 즉, 제1 코어(1121) 내지 제4 코어(1124)는 비휘발성 메모리 영역 내의 서로 다른 영역에 각각 휘발성 메모리 영역에 저장된 데이터들을 저장할 것이다. 휘발성 메모리 영역에 저장된 데이터는 시스템 데이터를 포함할 수 있다.
t3' 시점 이후부터 하이(high) 상태의 파워 신호(SIG_P)가 입력되더라도, 복수의 코어들은 PLP 덤프 동작을 계속 수행할 수 있다. PLP 덤프 동작이 완료되면 메모리 시스템의 안정적인 동작을 위해 메모리 시스템의 전원이 오프 될 수 있다. 위와 같이, 제1 코어(1121)는 기준 시간(t_ref) 보다 짧은 시간 간격의 로우(low) 상태 파워 신호(SIG_P)를 인지하여 서든 파워 오프를 유효로 판단하지 못하고, 딜레이 태스크(Delayed Task c, d)를 수행하고 있던 제3 코어(1123) 및 제4 코어(1124)가 서든 파워 오프를 유효로 판단하지 못했더라도, 제2 코어(1122)가 제공하는 인터럽트 신호에 의해 PLP 덤프 동작을 수행할 수 있다.
또한, 서든 파워 오프를 감지한 코어는, PLP 덤프 동작을 수행한 이후 동작 상태로 돌아올 수 없다. 즉 PLP 덤프 동작을 수행한 이후, 노멀 태스크(Normal Task)는 물론 딜레이 태스크(Delayed Task)를 수행할 수 없다. 그렇기 때문에, 서든 파워 오프를 감지하고 PLP 덤프 동작을 수행하여야 한다고 판단한 어느 하나의 코어는 인터럽트 신호와 같은 보조 신호를 제공함으로써 서든 파워 오프를 감지하지 못한 코어들로 하여금 PLP 덤프 동작을 수행하도록 하여 시스템의 신뢰성을 향상시킬 수 있다.
설명의 편의를 위해 제2 코어(1122)가 서든 파워 오프를 유효하게 감지하는 실시 예를 기재하였으나, 이에 한정되지 않는다. 제1 코어(1121), 제3 코어(1123) 및 제4 코어(1124)도 수행 중인 태스크(task)에 따라 유효하게 서든 파워 오프를 감지할 수 있다.
도 7은 본 발명의 실시 예에 따른 복수의 코어가 동시에 서든 파워 오프를 감지한 경우 다른 코어들의 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 복수의 코어들이 동시에 유효한 서든 파워 오프를 감지하고 PLP 덤프 동작을 수행하는 과정이 도시된다.
t1'' 시점 이전부터, 제1 코어(1121)는 노멀 태스크(Normal Task a), 제2 코어(1122)는 딜레이 태스크(Delayed Task b), 제3 코어(1123)는 딜레이 태스크(Delayed Task c), 제4 코어(1124)는 딜레이 태스크(Delayed Task d)를 수행 중인 상태일 수 있다. 도 5에서 설명한 바와 같이, 노멀 태스크(Normal Task)는 연속성이 보장되지 않아도 되는 태스크(task)를 수행중인 상태일 수 있다. 딜레이 태스크(Delayed Task)는 연속성이 보장되어야 하는 태스크(task)를 수행중인 상태이므로 새로운 태스크(task)에 대한 요청이나 다른 신호를 인지하지 못하는 상태일 수 있다. 또한 로우(low) 상태의 파워 신호(SIG_P)가 입력되어 서든 파워 오프인지 여부를 판단하는 태스크(task)는 노멀 태스크(Normal Task) 보다 높은 우선 순위의 태스크(task)일 수 있다. 즉, 노멀 태스크(Normal Task)를 수행 중인 코어는 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 경우, 곧바로 서든 파워 오프가 유효한지 여부를 판단할 것이다.
로우(low) 상태의 파워 신호(SIG_P)가 입력되는 t1'' 시점부터, 노멀 태스크(Normal Task a)를 수행 중이던 제1 코어(1121)는 t1''시점부터 기준 시간(t_ref)동안 로우(low) 상태의 파워 신호(SIG_P)가 입력되는지 여부를 판단할 수 있다. 즉, 서든 파워 오프가 유효한지 판단(SPO Judge)할 수 있다.
연속성이 보장되어야 하는 딜레이 태스크(Delayed Task b)의 수행을 t2'' 시점에 완료한 제2 코어(1122)는, t2'' 시점부터 로우(low) 상태의 파워 신호(SIG_P)를 인지하고, 서든 파워 오프가 유효한지 판단(SPO Judge)할 수 있다.
하이(high) 상태의 파워 신호(SIG_P)가 입력되는 t3'' 시점까지의 시간 간격인 t3''-t1''이 기준 시간(t_ref)보다 짧은 경우, 제1 코어(1121)는 서든 파워 오프가 유효하지 않다고 판단할 수 있다. 마찬가지로, 하이(high) 상태의 파워 신호(SIG_P)가 입력되는 t3'' 시점까지의 시간 간격인 t3''-t2''이 기준 시간(t_ref)보다 짧은 경우, 제2 코어(1122)는 서든 파워 오프가 유효하지 않다고 판단할 수 있다.
서든 파워 오프가 유효하지 않은 것으로 판단한 경우, 제1 코어(1121) 및 제2 코어(1122)는 다른 코어들에 PLP 덤프 동작을 수행하도록 제공하는 인터럽트 신호를 제공하지 않을 것이다. 마찬가지로 제1 코어(1121)는 제1 코어(1121)에 할당된 딜레이 태스크(Delayed Task e)를 수행할 것이고, 제2 코어(1122)는 제2 코어(1122)에 할당된 노멀 태스크(Normal Task f)를 수행할 것이다.
다시 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 t4'' 시점부터 각각의 코어는 현재 수행중인 태스크(task)의 상태에 따라 로우(low) 상태의 파워 신호(SIG_P)를 감지할 것이다. 즉, 제1 코어(1121) 및 제4 코어(1124)는 딜레이 태스크(Delayed Task e, g)를 수행 중이므로 로우(low) 상태의 파워 신호(SIG_P)를 감지하지 못하는 상태일 수 있다.
제2 코어(1122)는 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 t4'' 시점부터, 수행 중이던 노멀 태스크(Normal Task f)를 중단하고 서든 파워 오프가 유효한지를 판단(SPO Judge)할 수 있다. 아이들(Idle) 상태에 있는 제3 코어(1123) 역시 t4'' 시점부터 서든 파워 오프가 유효한지를 판단(SPO Judge)할 수 있다. 이후, 딜레이 태스크(Delayed Task e)를 완료한 제1 코어(1121)는 딜레이 태스크(Delayed Task e)를 완료한 시점부터 서든 파워 오프가 유효한지를 판단(SPO Judge)할 수 있다.
하이(high) 상태의 파워 신호(SIG_P)가 입력되는 t5'' 시점 까지의 시간 간격인 t5''-t4''가 기준 시간(t_ref)인 경우, 제2 코어(1122)는 서든 파워 오프가 유효하다고 판단할 수 있다. 마찬가지로 제3 코어(1123)도 서든 파워 오프가 유효하다고 판단할 수 있다. 반면, 제2 및 제3 코어보다 뒤늦게 서든 파워 오프가 유효한지를 판단(SPO Judge)하기 시작한 제1 코어(1121)는 서든 파워 오프가 유효하지 않다고 판단할 것이다.
서든 파워 오프가 유효하다고 판단한 제2 코어(1122)는 곧바로 PLP 덤프 동작을 수행할 것이다. 또한 제2 코어(1122)는 제1 코어(1121), 제3 코어(1123) 및 제4 코어(1124)에 서든 파워 오프 발생에 대한 정보를 제공할 수 있다. 서든 파워 오프 발생에 대한 정보는 PLP 덤프 동작을 수행하도록 하는 인터럽트 신호를 포함할 수 있다.
서든 파워 오프가 유효하다고 판단한 제3 코어(1123)는 곧바로 PLP 덤프 동작을 수행할 것이다. 또한 제3 코어(1123)는 제1 코어(1121), 제2 코어(1122) 및 제4 코어(1124)에 서든 파워 오프 발생에 대한 정보를 제공할 수 있다. 서든 파워 오프 발생에 대한 정보는 PLP 덤프 동작을 수행하도록 하는 인터럽트 신호를 포함할 수 있다.
제2 코어(1122) 및 제3 코어(1123)가 제공한 서든 파워 오프 발생에 대한 정보에 응답하여, 제1 코어(1121)는 PLP 덤프 동작을 수행할 수 있다. 마찬가지로 제2 코어(1122) 및 제3 코어(1123)가 제공한 서든 파워 오프 발생에 대한 정보에 응답하여, 제4 코어(1124)는 딜레이 태스크(Delayed Task g)가 완료되는 t6'' 시점 이후로, PLP 덤프 동작을 수행할 수 있다. 제1 코어(1121) 내지 제3 코어(1123)가 수행하는 PLP 덤프 동작은 동시에 수행될 수 있다. PLP 덤프 동작은, 휘발성 메모리 영역에 저장된 데이터들을 비휘발성 메모리 영역에 저장하는 동작일 수 있다. 이 때, 각각의 코어들이 제어하는 비휘발성 메모리 영역은 서로 다른 영역일 수 있다. 즉, 제1 코어(1121) 내지 제4 코어(1124)는 비휘발성 메모리 영역 내의 서로 다른 영역에 각각 휘발성 메모리 영역에 저장된 데이터들을 저장할 것이다. 휘발성 메모리 영역에 저장된 데이터는 시스템 데이터를 포함할 수 있다. 메모리 시스템의 안정적인 동작을 위해, PLP 덤프 동작이 완료되는 시점 이후로 메모리 시스템의 전원이 오프 될 수 있다.
또한, 서든 파워 오프가 유효하다고 판단된 이상 하이(high) 상태의 파워 신호(SIG_P)가 t5'' 시점 이후에 입력되더라도, PLP 덤프 동작이 수행될 수 있다. 위와 같이, 제1 코어(1121)는 기준 시간(t_ref) 보다 짧은 시간 간격의 로우(low) 상태 파워 신호(SIG_P)를 인지하여 서든 파워 오프를 유효로 판단하지 못하고, 딜레이 태스크(Delayed Task g)를 수행하고 있던 제4 코어(1124)가 서든 파워 오프를 유효로 판단하지 못했더라도, 제2 코어(1122) 및 제3 코어(1123)가 제공하는 인터럽트 신호에 의해 PLP 덤프 동작을 수행할 수 있다.
도 8은 본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, S801 단계에서 복수의 코어들은 각각 입력되는 파워 신호(SIG_P)를 기초로 외부 입력 전원의 손실이 있는지를 감지할 수 있다. 파워 신호(SIG_P)는 외부 입력 전원이 기준 값 이상인 경우 하이(high) 상태로 출력되는 신호일 수 있다. 또한, 파워 신호(SIG_P)는 외부 입력 전원이 기준 값 미만인 경우 로우(low) 상태로 출력되는 신호일 수 있다. 복수의 코어들은, 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 경우, 외부 입력 전원이 기준 값 미만인 상태임을 판단할 수 있다.
S803 단계에서, 복수의 코어들은 입력되는 로우(low) 상태의 파워 신호(SIG_P)를 기초로 서든 파워 오프 상태를 감지할 수 있다. 복수의 코어들은 로우(low) 상태의 파워 신호(SIG_P)가 입력되는 시간을 기초로 서든 파워 오프 상태를 감지할 수 있다. 즉, 로우(low) 상태의 파워 신호(SIG_P)가 기준 시간 동안 입력되는 경우, 복수의 코어들은 서든 파워 오프 상태임을 판단할 수 있다. 반대로, 로우(low) 상태의 파워 신호(SIG_P)가 기준 시간 동안 입력되지 않는 경우, 복수의 코어들은 서든 파워 오프 상태가 아님을 판단할 수 있다.
S805 단계에서, 로우(low) 상태의 파워 신호(SIG_P)에 응답하여 서든 파워 오프 상태를 감지한 코어는, 다른 코어들에 인터럽트 신호를 제공할 수 있다. 인터럽트 신호는 덤프 동작을 수행하도록 하는 신호일 수 있다.
S807 단계에서, 서든 파워 오프 상태인 경우, 서든 파워 오프 상태를 감지한 코어는 PLP 덤프 동작을 수행할 수 있다. PLP 덤프 동작은, 휘발성 메모리 영역에 저장된 데이터를 비휘발성 메모리 영역에 저장하는 동작일 수 있다. 또한, 서든 파워 오프 상태를 감지한 코어로부터 인터럽트 신호를 수신한 코어들 역시 수행 중인 태스크(task)를 중단하고 PLP 덤프 동작을 수행할 수 있다. 이 경우, 각각의 코어들이 제어하는 비휘발성 메모리 영역 내부의 영역은 서로 독립적일 수 있다. 즉, 복수의 코어들은 비휘발성 메모리 영역 내부의 서로 다른 영역에, 휘발성 메모리에 저장된 데이터를 저장할 것이다. 또한, 복수의 코어들에 의해 수행되는 PLP 덤프 동작은 동시에 수행될 수 있다.
S809 단계에서, 서든 파워 오프 상태가 아닌 경우, 서든 파워 오프 상태인지를 판단한 코어는 다른 코어들에 별도의 인터럽트 신호를 제공하지 않을 수 있다. 따라서, 서든 파워 오프를 감지하지 못한 코어들은 수행 중이던 태스크(task)를 마저 수행할 것이다.
도 9는 본 발명의 실시 예에 따른 저장 장치가 적용된 메모리 카드 시스템을 보여주는 도면이다.
도 9를 참조하면, 메모리 카드 시스템(2000)은 메모리 컨트롤러(2100), 메모리 장치(2200) 및 커넥터(2300)를 포함한다. 메모리 컨트롤러(2100)는 도 1을 참조하여 설명된 메모리 컨트롤러(1100)와 동일하게 구현될 수 있다.
예시적으로, 메모리 컨트롤러(2100)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 메모리 인터페이스(memory interface), 에러 정정부와 같은 구성 요소들을 포함할 수 있다.
메모리 컨트롤러(2100) 및 메모리 장치(2200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 메모리 컨트롤러(2100) 및 메모리 장치(2200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro, eMMC), SD 카드(SD, miniSD, microSD, SDHC), 범용 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템이 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 도면이다.
도 10을 참조하면, SSD 시스템(3000)은 호스트(3100) 및 SSD(3200)를 포함한다. SSD(3200)는 신호 커넥터(3001)를 통해 호스트(3100)와 신호(SIG)를 주고받고, 전원 커넥터(3002)를 통해 전원(PWR)을 입력 받을 수 있다. SSD(3200)는 SSD 컨트롤러(3210), 복수의 플래시 메모리들(3221~322n), 보조 전원 장치(3230), 및 버퍼 메모리(3240)를 포함할 수 있다.
실시 예에서, SSD 컨트롤러(3210)는 도 1을 참조하여 설명된 메모리 컨트롤러(1100)의 기능을 수행할 수 있다.
SSD 컨트롤러(3210)는 호스트(3100)로부터 수신된 신호(SIG)에 응답하여 복수의 플래시 메모리들(3221~322n)을 제어할 수 있다. 예시적으로, 신호(SIG)는 호스트(3100) 및 SSD(3200)의 인터페이스에 기반된 신호들일 수 있다.
보조 전원 장치(3230)는 전원 커넥터(3002)를 통해 호스트(3100)와 연결될 수 있다. 보조 전원 장치(3230)는 호스트(3100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(3230)는 호스트(3100)로부터의 전원 공급이 원활하지 않을 경우, SSD(3200)의 전원을 제공할 수 있다. 예시적으로, 보조 전원 장치(3230)는 SSD(3200) 내에 위치할 수도 있고, SSD(3200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(3230)는 메인 보드에 위치하며, SSD(3200)에 보조 전원을 제공할 수도 있다.
버퍼 메모리(3240)는 SSD(3200)의 버퍼 메모리로 동작할 수 있다. 예를 들어, 버퍼 메모리(3240)는 호스트(3100)로부터 수신된 데이터 또는 복수의 플래시 메모리들(3221~322n)로부터 수신된 데이터를 임시 저장하거나, 플래시 메모리들(3221~322n)의 메타 데이터(예를 들어, 매핑 테이블)를 임시 저장할 수 있다. 버퍼 메모리(3240)는 DRAM, SRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, GRAM 등과 같은 휘발성 메모리를 포함할 수 있다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템이 적용된 사용자 시스템을 보여주기 위한 도면이다.
도 11을 참조하면, 사용자 시스템(4000)은 애플리케이션 프로세서(4100), 메모리 모듈(4200), 네트워크 모듈(4300), 스토리지 모듈(4400), 및 사용자 인터페이스(4500)를 포함한다.
애플리케이션 프로세서(4100)는 사용자 시스템(4000)에 포함된 구성 요소들, 운영체제(OS; Operating System), 또는 사용자 프로그램 등을 구동시킬 수 있다. 예시적으로, 애플리케이션 프로세서(4100)는 사용자 시스템(4000)에 포함된 구성 요소들을 제어하는 컨트롤러들, 인터페이스들, 그래픽 엔진 등을 포함할 수 있다. 애플리케이션 프로세서(4100)는 시스템-온-칩(SoC; System-on-Chip)으로 제공될 수 있다.
메모리 모듈(4200)은 사용자 시스템(4000)의 주 메모리, 동작 메모리, 버퍼 메모리, 또는 캐쉬 메모리로 동작할 수 있다. 메모리 모듈(4200)은 DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, LPDDR SDARM, LPDDR3 SDRAM, LPDDR3 SDRAM 등과 같은 휘발성 랜덤 액세스 메모리 또는 PRAM, ReRAM, MRAM, FRAM 등과 같은 비휘발성 랜덤 액세스 메모리를 포함할 수 있다. 예시적으로 애플리케이션 프로세서(4100) 및 메모리 모듈(4200)은 POP(Package on Package)를 기반으로 패키지화되어 하나의 반도체 패키지로 제공될 수 있다.
네트워크 모듈(4300)은 외부 장치들과 통신을 수행할 수 있다. 예시적으로, 네트워크 모듈(4300)은 CDMA(Code Division Multiple Access), GSM(Global System for Mobile communication), WCDMA(wideband CDMA), CDMA-2000, TDMA(Time Dvision Multiple Access), LTE(Long Term Evolution), Wimax, WLAN, UWB, 블루투스, Wi-Fi 등과 같은 무선 통신을 지원할 수 있다. 예시적으로, 네트워크 모듈(4300)은 애플리케이션 프로세서(4100)에 포함될 수 있다.
스토리지 모듈(4400)은 데이터를 저장할 수 있다. 예를 들어, 스토리지 모듈(4400)은 애플리케이션 프로세서(4100)로부터 수신한 데이터를 저장할 수 있다. 또는 스토리지 모듈(4400)은 스토리지 모듈(4400)에 저장된 데이터를 애플리케이션 프로세서(4100)로 전송할 수 있다. 예시적으로, 스토리지 모듈(4400)은 PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), NAND flash, NOR flash, 3차원 구조의 NAND 플래시 등과 같은 비휘발성 반도체 메모리 소자로 구현될 수 있다. 예시적으로, 스토리지 모듈(4400)은 사용자 시스템(4000)의 메모리 카드, 외장형 드라이브 등과 같은 탈착식 저장 매체(removable drive)로 제공될 수 있다.
예시적으로, 스토리지 모듈(4400)은 복수의 비휘발성 메모리 장치들을 포함할 수 있고, 복수의 비휘발성 메모리 장치들은 도 1에서 설명된 비휘발성 메모리(1300)와 동일하게 동작할 수 있다. 스토리지 모듈(4400)은 도 1을 참조하여 설명된 메모리 시스템(1000)과 동일하게 동작할 수 있다.
사용자 인터페이스(4500)는 애플리케이션 프로세서(4100)에 데이터 또는 명령어를 입력하거나 또는 외부 장치로 데이터를 출력하는 인터페이스들을 포함할 수 있다. 예시적으로, 사용자 인터페이스(4500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. 사용자 인터페이스(4500)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모니터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다.
100: 호스트 1000: 메모리 시스템
1100: 메모리 컨트롤러 1110: 전원 감지부
1120: 프로세서부 1200: 휘발성 메모리
1300: 비휘발성 메모리

Claims (17)

  1. 비휘발성 메모리 영역;
    데이터를 임시로 저장하는 버퍼 메모리 영역; 및
    서든 파워 오프에 응답하여 상기 버퍼 메모리 영역에 저장된 데이터를 상기 비휘발성 메모리 영역에 저장하고, 상기 서든 파워 오프를 감지했음을 나타내는 인터럽트 신호를 각각 출력하는 복수의 코어들;을 포함하는 메모리 시스템.
  2. 제 1항에 있어서,
    외부에서 인가되는 전원이 기준 값 미만인 경우, 로우(low) 상태의 파워 신호를 상기 복수의 코어들로 출력하는 전원 감지부;를 더 포함하는 메모리 시스템.
  3. 제 2항에 있어서, 상기 복수의 코어들은,
    상기 로우(low) 상태의 파워 로스 신호가 기준 시간 이상 입력되는 경우, 상기 서든 파워 오프를 유효로 판단하는 메모리 시스템.
  4. 제 2항에 있어서, 상기 복수의 코어들은 상기 로우(low) 상태의 파워 로스 신호가 기준 시간 미만으로 입력되는 경우, 상기 서든 파워 오프를 무효로 판단하는 메모리 시스템.
  5. 제 1항에 있어서, 상기 복수의 코어들은,
    상기 복수의 코어들 중 어느 하나의 코어가 출력한 상기 인터럽트 신호에 응답하여, 수행 중이던 태스크(task)가 완료되면 상기 버퍼 메모리 영역에 저장된 데이터를 상기 비휘발성 메모리 영역에 저장하는 메모리 시스템.
  6. 제 1항에 있어서, 상기 버퍼 메모리 영역은,
    에스램(SRAM) 또는 디램(DRAM)을 포함하는 메모리 시스템.
  7. 제 5항에 있어서, 상기 복수의 코어들은,
    상기 버퍼 메모리 영역에 저장된 데이터를 상기 비휘발성 메모리 영역에 포함된 서로 다른 메모리 블록에 각각 저장하는 메모리 시스템.
  8. 제 1항에 있어서, 상기 버퍼 메모리에 저장된 데이터는,
    맵핑 데이터, 호스트 관련 데이터, 펌웨어 관련 데이터를 포함하는 메모리 시스템.
  9. 외부에서 인가되는 전원의 변동을 감지하고, 상기 전원이 기준 값 미만인 경우 로우(low) 상태의 파워 신호를 프로세서부에 제공하는 전원 감지부; 및
    각각 우선 순위에 따라 독립적으로 태스크를 수행하고, 서든 파워 오프에 응답하여 시스템 데이터를 비휘발성 메모리 영역에 저장하는 덤프 동작을 수행하는 복수의 코어들을 포함하는 프로세서부;를 포함하는 메모리 컨트롤러.
  10. 제 9항에 있어서, 상기 복수의 코어들은,
    상기 전원 감지부로부터 상기 로우(low) 상태의 파워 신호를 수신하고, 나머지 코어들에 상기 서든 파워 오프 발생에 대한 정보를 제공하는 신호 제어부;
    상기 신호 제어부로부터 입력되는 상기 로우(low) 상태의 파워 신호가 기준 시간 이상 입력되는 경우 상기 서든 파워 오프의 발생을 감지하는 서든 파워 오프 감지부; 및
    태스크(task)를 수행하는 동작 제어부;를 포함하는 메모리 컨트롤러.
  11. 제 10항에 있어서, 상기 신호 제어부는,
    상기 동작 제어부가 상기 서든 파워 오프를 감지하는 동작보다 높은 우선 순위의 태스크(task)를 수행하고 있는 경우, 상기 로우(low) 상태의 파워 신호를 수신하지 않는 메모리 컨트롤러.
  12. 제 10항에 있어서, 상기 복수의 코어들에 각각 포함된 동작 제어부는,
    메모리 장치에 포함된 메모리 영역들 중, 서로 다른 메모리 영역을 각각 제어하는 메모리 컨트롤러.
  13. 제 10항에 있어서, 상기 서든 파워 오프 발생에 대한 정보는,
    상기 덤프 동작을 수행하도록 상기 나머지 코어들에 제공하는 인터럽트 신호를 포함하는 메모리 컨트롤러.
  14. 제 9항에 있어서, 상기 덤프 동작은,
    버퍼 메모리에 저장된 데이터를 상기 비휘발성 메모리 영역에 저장하도록 메모리 장치를 제어하는 동작인 메모리 컨트롤러.
  15. 제 10항에 있어서,
    상기 서든 파워 오프를 감지한 코어의 신호 제어부는 상기 나머지 코어들의 신호 제어부에 상기 서든 파워 오프 발생에 대한 정보를 제공하고,
    상기 서든 파워 오프를 감지한 코어의 동작 제어부는 상기 덤프 동작을 수행하고,
    상기 나머지 코어들의 동작 제어부는 상기 나머지 코어들의 신호 제어부가 수신한 상기 서든 파워 오프 발생에 대한 정보에 응답하여 상기 덤프 동작을 수행하는 메모리 컨트롤러.
  16. 제 15항에 있어서, 상기 덤프 동작은,
    연속성이 보장되지 않아도 되는 노멀 태스크 보다 우선 순위가 높은 태스크(task)인 메모리 컨트롤러.
  17. 복수의 비휘발성 메모리 영역들;
    시스템 데이터를 저장하는 휘발성 메모리 영역; 및
    상기 복수의 비휘발성 메모리 영역들에 각각 데이터를 저장하는 복수의 코어들;을 포함하고,
    상기 복수의 코어들 중 서든 파워 오프의 감지를 실패한 코어는,
    상기 복수의 코어들 중 어느 하나의 코어가 감지한 서든 파워 오프에 응답하여 상기 시스템 데이터를 상기 복수의 비휘발성 메모리 영역들에 저장하는 메모리 시스템.
KR1020220081479A 2022-07-01 2022-07-01 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법 KR20240003648A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220081479A KR20240003648A (ko) 2022-07-01 2022-07-01 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법
US18/081,688 US20240004578A1 (en) 2022-07-01 2022-12-15 Memory system and method of operating memory controller included in the memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220081479A KR20240003648A (ko) 2022-07-01 2022-07-01 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법

Publications (1)

Publication Number Publication Date
KR20240003648A true KR20240003648A (ko) 2024-01-09

Family

ID=89433150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220081479A KR20240003648A (ko) 2022-07-01 2022-07-01 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법

Country Status (2)

Country Link
US (1) US20240004578A1 (ko)
KR (1) KR20240003648A (ko)

Also Published As

Publication number Publication date
US20240004578A1 (en) 2024-01-04

Similar Documents

Publication Publication Date Title
US11537316B2 (en) Data storage device for storing data in sequential data area and method of operating the same
US11861359B2 (en) Storage device and method of operating the same
US11461226B2 (en) Storage device including memory controller
KR20210144180A (ko) 스토리지 장치 및 그 동작 방법
US11204698B2 (en) Memory controller to set operating environment of memory device, method of operating the same and storage device including the same
US11361803B2 (en) Memory device and operating method of the memory device
US11775211B2 (en) Memory controller and method of operating the same
CN112306783A (zh) 存储器控制器及其操作方法
KR20230037240A (ko) 호스트 장치, 메모리 컨트롤러 및 이를 포함하는 컴퓨팅 시스템
US11055020B2 (en) Data storage device sharing operations with another data storage device and method of operating the same
US11960733B2 (en) Memory controller and method of operating the same
US11934702B2 (en) Computing system for optimal write and method of operating the same
US20220171542A1 (en) Memory controller and method of operating the same
US11436148B2 (en) Memory controller and method of operating the same
CN115576869A (zh) 存储装置及其操作方法
KR20220053973A (ko) 메모리 컨트롤러 및 그 동작 방법
US20240004578A1 (en) Memory system and method of operating memory controller included in the memory system
US20230103797A1 (en) Memory controller and method of operating the same
US20230305741A1 (en) Storage device and operating method thereof
US20240256177A1 (en) Electronic device including storage device and controller and operating method thereof
US20220391133A1 (en) Memory controller and memory system including the same
KR20240015513A (ko) 메모리 시스템 및 그 동작 방법
KR20220157155A (ko) 스토리지 장치 및 그 동작 방법
KR20230050012A (ko) 스토리지 장치 및 그 동작 방법
KR20220169397A (ko) 컴퓨팅 시스템 및 그 동작 방법