KR20240052174A - 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법 - Google Patents

스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법 Download PDF

Info

Publication number
KR20240052174A
KR20240052174A KR1020220131880A KR20220131880A KR20240052174A KR 20240052174 A KR20240052174 A KR 20240052174A KR 1020220131880 A KR1020220131880 A KR 1020220131880A KR 20220131880 A KR20220131880 A KR 20220131880A KR 20240052174 A KR20240052174 A KR 20240052174A
Authority
KR
South Korea
Prior art keywords
read request
read
memory
function
performance requirement
Prior art date
Application number
KR1020220131880A
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 KR1020220131880A priority Critical patent/KR20240052174A/ko
Priority to US18/190,979 priority patent/US20240126682A1/en
Publication of KR20240052174A publication Critical patent/KR20240052174A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem

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)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 기술은 스토리지 장치에 관한 것으로, 본 기술에 따른 스토리지 장치는 외부로부터 데이터 및 특정 동작을 지시하는 커맨드를 수신하는 복수의 메모리 다이들 및 제1 펑션으로부터 제1 리드 요청을 수신하고 상기 제1 리드 요청에 따른 리드 동작을 수행하도록 상기 복수의 메모리 다이들 중 적어도 하나의 메모리 다이를 제어하고, 상기 제1 리드 요청의 처리가 완료되기 전에 제2 펑션으로부터 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하면, 상기 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 상기 제2 펑션의 성능 요구 정보의 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하고 상기 제2 리드 요청에 따른 리드 동작을 수행하도록 상기 복수의 메모리 다이들을 제어하는 메모리 제어부를 포함할 수 있다.

Description

스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법{STORAGE DEVICE, ELECTRONIC DEVICE INCLUDING STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로 본 발명은 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법에 관한 것이다.
스토리지 장치는 컴퓨터나 스마트폰 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 데이터를 저장하는 메모리 장치와 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치 (Volatile Memory)와 비휘발성 메모리 장치 (Non Volatile Memory)로 구분될 수 있다.
휘발성 메모리 장치는 전원이 공급되는 동안에만 데이터를 저장하고, 전원 공급이 차단되면 저장된 데이터가 소멸되는 메모리 장치일 수 있다. 휘발성 메모리 장치에는 정적 랜덤 액세스 메모리 (Static Random Access Memory; SRAM), 동적 랜덤 액세스 메모리 (Dynamic Random Access Memory; DRAM) 등이 포함될 수 있다.
비휘발성 메모리 장치는 전원이 차단되어도 데이터가 소멸되지 않는 메모리 장치로서, 롬(Read Only Memory; ROM), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM) 및 플래시 메모리(Flash Memory) 등이 있다.
본 발명의 실시 예는 리드 요청에 따른 레이턴시를 감소시키는 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법을 제공한다.
본 발명의 실시 예에 따른 스토리지 장치는 외부로부터 데이터 및 특정 동작을 지시하는 커맨드를 수신하는 복수의 메모리 다이들 및 제1 펑션으로부터 제1 리드 요청을 수신하고 상기 제1 리드 요청에 따른 리드 동작을 수행하도록 상기 복수의 메모리 다이들 중 적어도 하나의 메모리 다이를 제어하고, 상기 제1 리드 요청의 처리가 완료되기 전에 제2 펑션으로부터 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하면, 상기 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 상기 제2 리드 요청의 성능 요구 정보의 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하고 상기 제2 리드 요청에 따른 리드 동작을 수행하도록 상기 복수의 메모리 다이들을 제어하는 메모리 제어부를 포함할 수 있다.
본 발명의 실시 예에 따라 복수의 메모리 다이들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은, 제1 펑션으로부터 제1 리드 요청을 수신하고 상기 복수의 메모리 다이들 중 적어도 하나의 메모리 다이에 대하여 상기 제1 리드 요청에 따른 리드 동작을 수행하는 단계, 상기 제1 리드 요청의 처리가 완료되기 전에 제2 펑션으로부터 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하는 단계, 상기 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 상기 제2 펑션의 성능 요구 정보의 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하는 단계, 및 상기 제2 리드 요청에 따른 리드 동작을 수행하도록 상기 메모리 장치를 제어하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 컨트롤러는, 복수의 펑션들의 성능 요구 정보를 저장하는 성능 요구 정보 저장부, 상기 복수의 펑션들 중 제1 펑션으로부터 제1 리드 요청을 수신하는 스케쥴러, 및 상기 제1 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치의 적어도 하나의 메모리 다이를 제어하는 메모리 제어부를 포함하고, 상기 스케쥴러는, 상기 제1 리드 요청의 처리가 완료되기 전에 상기 복수의 펑션들 중 제2 펑션으로부터 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하면, 상기 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 상기 제2 펑션의 성능 요구 정보의 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하고 상기 제2 리드 요청에 따른 리드 동작을 수행하도록 상기 메모리 장치를 제어할 수 있다.
본 기술에 따르면 리드 요청에 따른 레이턴시를 감소시키는 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 호스트 장치 및 스토리지 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 실시 예에 따라 스토리지 장치가 호스트 장치로부터 수신한 리드 요청을 처리하는 순서를 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 성능 요구 정보 저장부에 저장된 성능 요구 정보 테이블을 설명하기 위한 도면이다.
도 5a는 본 발명의 일 실시 예에 따른 제2 리드 요청의 제1 잔여 시간을 설명하기 위한 도면이다.
도 5b는 본 발명의 일 실시 예에 따른 제2 리드 요청의 제2 잔여 시간을 설명하기 위한 도면이다.
도 5c는 본 발명의 일 실시 예에 따른 제2 리드 요청의 제3 잔여 시간을 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 제1 리드 요청에 따른 리드 동작을 중단하고 제2 리드 요청을 처리하는 것을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 스토리지 장치의 동작 흐름도이다.
도 8은 본 발명의 실시 예에 따른 스토리지 장치가 적용된 SSD(Solid State Drive) 시스템을 보여주는 블록도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)을 설명하기 위한 도면이다.
도 1을 참조하면, 컴퓨팅 시스템(10)은 스토리지 장치(100) 및 호스트 장치(101)를 포함할 수 있다. 스토리지 장치(100) 및 호스트 장치(101)는 다양한 인터페이스를 통하여 유/무선 통신을 수행할 수 있다.
호스트 장치(101)는 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 (NonVolatile 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) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 스토리지 장치(100)와 통신할 수 있다.
본 명세서에서, 설명의 편의상 스토리지 장치(100)와 호스트 장치(101)는 UFS 통신 인터페이스에 따라 데이터 통신을 수행하는 것으로 설명하나 본 발명의 실시 예들은 UFS 통신 인터페이스에 따라 데이터 통신을 수행하는 것에 한정되지 않는다. 구체적으로, 스토리지 장치(100)와 호스트 장치(101)는 프로토콜 정보 유닛(Protocol Information Unit, 이하에서 PIU)으로 정의되는 커맨드를 이용하여 데이터 통신을 수행할 수 있다. PIU는 미리 정해진 규약에 따라 생성된 일종의 데이터 패킷일 수 있다.
PIU는 호스트 장치(101) 또는 스토리지 장치(100)가 어떤 동작의 수행을 요청하거나, 지시하거나 응답하는 커맨드일 수 있다. 실시 예에서, 용도와 목적에 따라 다양한 PIU가 정의될 수 있다. 예를 들어, PIU는 쿼리 요청 PIU(Query Request PIU), 커맨드 PIU(Command PIU), 응답 PIU(Response PIU), 데이터 아웃 PIU(Data Out PIU), 데이터 인 PIU(Data In PIU) 및 전달 준비 PIU(Ready To Transfer PIU) 중 어느 하나일 수 있다.
실시 예에서, 쿼리 요청 PIU(Query Request PIU)는 스토리지 장치(100)의 여러가지 파라미터를 제공하는 디바이스 디스크립터(Device Descriptor)를 포함할 수 있다. 디바이스 디스크립터(Device Descriptor)는 스토리지 장치(100)가 어드밴스드 RPMB(replay protection memory block) 모드를 지원하는 스토리지 장치(100)인지를 나타내는 정보를 포함할 수 있다.
가장 작은 단위의 PIU의 크기는 32바이트일 수 있고, PIU의 최대 크기는 65,600바이트일 수 있다. PIU의 포맷은 그 종류에 따라 서로 다른 크기를 가질 수 있다. 호스트 장치(101)의 하드웨어 구성은 도 2에서 후술한다.
스토리지 장치(100)는 휴대폰, 스마트폰, MP3 플레이어, 랩탑(Laptop) 컴퓨터, 데스크탑 컴퓨터, 게임기, TV, 태블릿 PC 또는 차량용 인포테인먼트(in-vehicle infotainment) 시스템 등과 같이 호스트 장치(101)의 제어에 따라 데이터를 저장하는 장치일 수 있다. 또한, 스토리지 장치(100)는 서버, 데이터 센터 등과 같이 한 곳에 고용량의 데이터를 저장하는 호스트 장치(101)의 제어에 따라 데이터를 저장하는 장치일 수 있다.
스토리지 장치(100)는 호스트 장치(101)와의 통신 방식인 호스트 인터페이스에 따라서 다양한 종류의 스토리지 장치들 중 어느 하나로 제조될 수 있다. 예를 들어, 스토리지 장치(100)는 SSD(solid-state drive), MMC, eMMC, RS-MMC, micro-MMC 형태의 멀티 미디어 카드(multi-media card), SD, mini-SD, micro-SD 형태의 시큐어 디지털 카드(secure digital card), 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) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구성될 수 있다.
스토리지 장치(100)는 다양한 종류의 패키지(package) 형태들 중 어느 하나로 제조될 수 있다. 예를 들어, 스토리지 장치(100)는 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)의 하드웨어 구성은 도 2에서 후술한다.
도 2는 도 1의 호스트 장치(101) 및 스토리지 장치(100)를 설명하기 위한 도면이다.
도 2를 참조하면, 호스트 장치(101) 및 스토리지 장치(100)는 다양한 하드웨어 구성을 포함할 수 있다.
호스트 장치(101)는 복수의 펑션들(제1 평션(101-1), 제2 펑션(101-2), 제3 펑션(101-3), …, 제n 펑션(101-n))을 포함할 수 있다. 복수의 펑션들은 스토리지 장치(100)에 의해 논리적으로 구분된 복수의 호스트 장치(101)들로 인식될 수 있다. 일 예에서, 스토리지 장치(100)는 제1 펑션(101-1) 및 제2 펑션(101-2)을 논리적으로 구분된 복수의 호스트 장치(101)들로 식별할 수 있다. 여기서, “펑션”은 “물리 기능” 또는 "기능”으로 표현될 수 있다.
스토리지 장치(100)는 메모리 컨트롤러(110) 및 메모리 장치(120)를 포함할 수 있다. 메모리 컨트롤러(110)는 스케쥴러(111), 성능 요구 정보 저장부(112) 및 메모리 제어부(113)를 포함할 수 있다. 일 실시 예에서, 스케쥴러(111) 및 메모리 제어부(113)는 하나의 칩 내에서 서로 다른 기능을 수행하는 제어 로직에 해당할 수 있다. 즉, 스케쥴러(111) 및 메모리 제어부(113)는 하나의 집적 회로로 구성될 수 있다.
메모리 컨트롤러(110)는 스토리지 장치(100)의 전반적인 동작을 제어할 수 있다.
스토리지 장치(100)에 전원이 인가되면, 메모리 컨트롤러(110)는 펌웨어(firmware, FW)를 실행할 수 있다. 메모리 장치(120)가 플래시 메모리 장치인 경우, 메모리 컨트롤러(110)는 호스트 장치(101)와 메모리 장치(120) 간의 통신을 제어하기 위한 플래시 변환 레이어(Flash Translation Layer, FTL)와 같은 펌웨어를 실행할 수 있다.
일 실시 예에서, 메모리 컨트롤러(110)는 호스트 장치(101)로부터 데이터와 논리 블록 어드레스(Logical Block Address, LBA)를 입력 받고, 논리 블록 어드레스를 메모리 장치(120)에 포함된 데이터가 저장될 메모리 셀들의 주소를 나타내는 물리 블록 어드레스(Physical Block Address, PBA)로 변환할 수 있다.
스케쥴러(111)는 호스트 장치(101)가 포함하는 복수의 펑션들(101-1 내지 101-n)로부터 수신한 리드 요청의 동작 순서를 유지하거나 변경할 수 있다. 일 예에서, 스케쥴러(111)는 복수의 펑션들(101-1 내지 101-n)로부터 복수의 리드 요청들을 수신한 경우, 성능 요구 정보 저장부(112)에 저장된 성능 요구 정보 및 메모리 제어부(113)으로부터 수신한 잔여 시간 정보를 이용하여 리드 요청들의 중단 및 수행에 관한 요청을 메모리 제어부(113)에 제공할 수 있다. 본 개시에서 “성능 요구 정보”는 "레이턴시” 또는 “latency”일 수 있다. 스케쥴러(111)의 구체적인 동작은 도 3에서 후술한다.
성능 요구 정보 저장부(112)는 호스트 장치(101)가 포함하는 복수의 펑션들(101-1 내지 101-n) 각각의 성능 요구 정보를 저장할 수 있다. 성능 요구 정보는 호스트 장치(101)가 포함하는 복수의 펑션들(101-1 내지 101-n) 마다 상이할 수 있다. 즉, 복수의 펑션들(101-1 내지 101-n)의 성능 요구 정보는 복수의 펑션들(101-1 내지 101-n)마다 상이한 값을 가질 수 있다.
메모리 제어부(113)는 호스트 장치(101)의 요청(request)에 따라 프로그램 동작, 리드 동작 또는 소거 동작 등을 수행하도록 메모리 장치(120)를 제어할 수 있다. 프로그램 동작 시, 메모리 제어부(113)는 프로그램 커맨드, 물리 블록 어드레스 및 데이터를 메모리 장치(120)에 제공할 수 있다. 리드 동작 시, 메모리 제어부(113)는 리드 커맨드 및 물리 블록 어드레스를 메모리 장치(120)에 제공할 수 있다. 소거 동작 시, 메모리 제어부(113)는 소거 커맨드 및 물리 블록 어드레스를 메모리 장치(120)에 제공할 수 있다.
일 실시 예에서, 메모리 제어부(113)는 호스트 장치(101)로부터의 요청과 무관하게 자체적으로 커맨드, 어드레스 및 데이터를 생성하고, 메모리 장치(120)에 전송할 수 있다. 예를 들어, 메모리 제어부(113)는 웨어 레벨링(wear leveling), 리드 리클레임(read reclaim), 가비지 컬렉션(garbage collection) 등을 수행하는데 수반되는 프로그램 동작, 리드 동작 및 소거 동작들을 수행하기 위한 커맨드, 어드레스 및 데이터를 메모리 장치(120)로 제공할 수 있다.
일 실시 예에서, 메모리 제어부(113)가 적어도 둘 이상의 메모리 장치(120)들을 제어할 수 있다. 이 경우, 메모리 제어부(113)는 동작 성능의 향상을 위해 메모리 장치(120)들을 인터리빙 방식에 따라 제어할 수 있다. 인터리빙 방식은 적어도 둘 이상의 메모리 장치(120)들에 대한 동작이 중첩되도록 제어하는 방식일 수 있다.
메모리 장치(120)는 데이터를 저장하는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이(미도시)를 포함할 수 있다.
메모리 셀들은 각각 하나의 데이터 비트를 저장하는 싱글 레벨 셀(Single Level Cell; SLC), 두 개의 데이터 비트들을 저장하는 멀티 레벨 셀(Multi Level Cell; MLC), 세 개의 데이터 비트들을 저장하는 트리플 레벨 셀(Triple Level Cell; TLC) 또는 네 개의 데이터 비트를 저장할 수 있는 쿼드 레벨 셀(Quad Level Cell; QLC)로 구성될 수 있다.
메모리 셀 어레이(미도시)는 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록은 복수의 메모리 셀들을 포함할 수 있다. 각 메모리 블록은 복수의 페이지들을 포함할 수 있다. 실시 예에서, 페이지는 메모리 장치(120)에 데이터를 저장하거나, 메모리 장치(120)에 저장된 데이터를 리드하는 단위일 수 있다. 메모리 블록은 데이터를 지우는 단위일 수 있다.
실시 예에서, 메모리 장치(120)는 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 flash memory), 노아 플래시 메모리(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) 등이 될 수 있다. 본 명세서에서는 설명의 편의를 위해, 메모리 장치(120)가 낸드 플래시 메모리인 경우를 가정하여 설명한다.
메모리 장치(120)는 메모리 컨트롤러(110)로부터 커맨드 및 어드레스를 수신하고, 메모리 셀 어레이 중 어드레스에 의해 선택된 영역을 액세스하도록 구성된다. 메모리 장치(120)는 어드레스에 의해 선택된 영역에 대해 커맨드가 지시하는 동작을 수행할 수 있다. 예를 들면, 메모리 장치(120)는 쓰기 동작 (프로그램 동작), 리드 동작 및 소거 동작을 수행할 수 있다. 프로그램 동작 시에, 메모리 장치(120)는 어드레스에 의해 선택된 영역에 데이터를 프로그램 할 것이다. 리드 동작 시에, 메모리 장치(120)는 어드레스에 의해 선택된 영역으로부터 데이터를 읽을 것이다. 소거 동작 시에, 메모리 장치(120)는 어드레스에 의해 선택된 영역에 저장된 데이터를 소거할 것이다.
메모리 장치(120)는 복수의 메모리 다이들(제1 메모리 다이(120-1), 제2 메모리 다이(120-2), 제3 메모리 다이(120-3), … , 제n 메모리 다이(120-n))를 포함할 수 있다. 각 메모리 다이들은 복수의 메모리 블록들을 포함할 수 있다. 일 예에서, 복수의 펑션들(101-1 내지 101-n)은 각각 서로 다른 메모리 다이들에 대한 리드 요청을 제공할 수 있다. 다른 예에서, 복수의 펑션들(101-1 내지 101-n)은 복수의 메모리 다이들(120-1 내지 120-n) 중 어느 하나의 메모리 다이에 대한 리드 요청을 제공할 수 있다.
도 3은 본 발명의 실시 예에 따라 스토리지 장치(100)가 호스트 장치(101)로부터 수신한 리드 요청을 처리하는 순서를 설명하기 위한 도면이다.
도 3을 참조하면, 스케쥴러(111)는 잔여 시간 정보 및 성능 요구 정보의 비교 결과에 기반하여 제1 펑션(101-1)으로부터 수신한 제1 리드 요청 및 제2 펑션(101-2)으로부터 수신한 제2 리드 요청 중 어느 요청을 먼저 처리할지 여부를 결정할 수 있다.
스케쥴러(111)는 제1 펑션(101-1)으로부터 제1 리드 요청을 수신하고, 제2 펑션(101-2)으로부터 제2 리드 요청을 수신할 수 있다. 제1 펑션(101-1) 및 제2 펑션(101-2)은 도 1을 참조하여 도시된 호스트 장치(101)가 스토리지 장치(100)를 기준으로 논리적으로 구분된 호스트 장치(101)들일 수 있다.
스케쥴러(111)는 제1 펑션(101-1)으로부터 제1 리드 요청 및 제2 펑션(101-2)으로부터 수신한 제2 리드 요청을 수신한 순서에 따라 처리할 수 있다. 즉, 스케쥴러(111)는 제1 리드 요청 및 제2 리드 요청 중 먼저 수신된 리드 요청을 먼저 처리할 수 있다.
스케쥴러(111)는 성능 요구 정보 저장부(112)로부터 성능 요구 정보를 획득할 수 있다. 성능 요구 정보 저장부(112)에는 제1 펑션(101-1)의 성능 요구 정보 및 제2 펑션(101-2)의 성능 요구 정보가 저장될 수 있다. 제1 펑션(101-1)의 성능 요구 정보 및 제2 펑션(101-2)의 성능 요구 정보는 제1 펑션(101-1)의 요구에 따라 미리 지정된 값일 수 있다. 따라서, 제1 펑션(101-1)의 성능 요구 정보 및 제2 펑션(101-2)의 성능 요구 정보는 제1 리드 요청 또는 제2 리드 요청이 처리되는 동안 일정한 값일 수 있다.
스케쥴러(111)는 메모리 제어부(113)로부터 잔여 시간 정보를 획득할 수 있다. 잔여 시간 정보는 스케쥴러(111)가 제2 펑션(101-2)로부터 수신한 제2 리드 요청이 처리될 때까지 소요되는 잔여 시간에 관한 정보일 수 있다. 일 예에서, 제2 리드 요청이 처리될 때까지 소요되는 잔여 시간은 스케쥴러(111)가 제2 펑션(101-2)으로부터 제2 리드 요청을 수신한 시점에 따라 변경될 수 있다.
스케쥴러(111)는 성능 요구 정보 저장부(112)로부터 획득한 제2 펑션(101-2)의 성능 요구 정보 및 메모리 제어부(113)로부터 획득한 제2 리드 요청의 잔여 시간 정보를 비교한 결과에 기반하여 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하라는 요청을 메모리 제어부(113)에 제공할 수 있다. 일 예에서, 스케쥴러(111)는 제2 펑션(101-2)의 성능 요구 정보 및 제2 리드 요청의 잔여 시간 정보를 비교한 결과 제2 펑션(101-2)의 성능이 충족되기 위하여 요구되는 시간보다 제2 리드 요청의 잔여 시간이 더 큰 경우에는, 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하라는 요청을 메모리 제어부(113)에 제공할 수 있다. 다른 예에서, 스케쥴러(111)는 제2 펑션(101-2)의 성능 요구 정보 및 제2 리드 요청의 잔여 시간 정보를 비교한 결과 제2 펑션(101-2)의 성능이 충족되기 위하여 요구되는 시간보다 제2 리드 요청의 잔여 시간이 더 작은 경우에는, 제1 리드 요청에 따른 처리가 완료될 때까지 제2 리드 요청을 수행하라는 요청을 메모리 제어부(113)에 제공하지 않을 수 있다. 즉, 제2 펑션(101-2)의 성능 요구 정보 및 제2 리드 요청의 잔여 시간 정보를 비교한 결과 제2 펑션(101-2)의 성능이 충족되기 위하여 요구되는 시간보다 제2 리드 요청의 잔여 시간이 더 작은 경우에는 메모리 제어부(113)는 추가적인 요청을 수신하지 않았으므로, 제1 리드 요청의 처리를 중단하지 않고 제1 리드 요청에 따른 리드 동작을 계속해서 수행할 수 있다.
메모리 제어부(113)는 스케쥴러(111)로부터 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하라는 요청을 수신하는 것에 기반하여 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)가 포함하는 적어도 하나의 메모리 다이(예: 제1 메모리 다이(120-1))를 제어할 수 있다. 다른 예에서, 메모리 제어부(113)는 스케쥴러(111)로부터 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하라는 요청을 수신하지 않는 것에 기반하여 제1 리드 요청의 처리를 위하여 메모리 장치(120)가 포함하는 적어도 하나의 메모리 다이(예: 제1 메모리 다이(120-1))를 제어할 수 있다.
도 4는 본 발명의 실시 예에 따른 성능 요구 정보 저장부(112)에 저장된 성능 요구 정보 테이블(1121)을 설명하기 위한 도면이다.
도 4를 참조하면, 성능 요구 정보 저장부(112)는 도 2를 참조하여 도시된 복수의 펑션들(101-1 내지 101-n)에 관한 성능 요구 정보를 저장할 수 있다.
성능 요구 정보 저장부(112)는 복수의 펑션들(제1 펑션, 제2 펑션, 제3 펑션, … , 제n 펑션)의 성능 요구 정보에 관한 테이블을 저장할 수 있다. 일 예에서, 제1 펑션의 성능 요구 정보는 t1의 값을 가질 수 있고, 제2 펑션의 성능 요구 정보는 t2의 값을 가질 수 있다.
일 실시 예에서, 제1 펑션의 성능 요구 정보가 가지는 값인 t1 및 제2 펑션의 성능 요구 정보가 가지는 값인 t2는 서로 다른 값일 수 있다. 일 예에서, 도 2 및 도 3을 참조하여 도시된 제1 펑션(101-1)의 성능 요구 정보가 가지는 값인 t1은 도 2 및 도 3을 참조하여 도시된 제2 펑션(101-2)의 성능 요구 정보가 가지는 값인 t2보다 클 수 있다. 예를 들어, t1은 1ms이고 t2는 300μs일 수 있다.
도 5a는 본 발명의 일 실시 예에 따른 제2 리드 요청의 제1 잔여 시간(511)을 설명하기 위한 도면이다. 도 5b는 본 발명의 일 실시 예에 따른 제2 리드 요청의 제2 잔여 시간(521)을 설명하기 위한 도면이다. 도 5c는 본 발명의 일 실시 예에 따른 제2 리드 요청의 제3 잔여 시간(531)을 설명하기 위한 도면이다.
도 5a, 도 5b 또는 도 5c를 참조하면, 도 3을 참조하여 도시된 제1 펑션(101-1)으로부터 스케쥴러(111)가 수신한 제1 리드 요청의 처리가 진행 중인 상태에서 제2 펑션(101-2)으로부터 스케쥴러(111)가 제2 리드 요청을 수신하는 시점에 따라 제2 리드 요청의 잔여 시간은 변경될 수 있다. 일 예에서, 즉, 제2 리드 요청의 잔여 시간 정보는 제1 리드 요청의 수행 정도에 따라 결정될 수 있다.
도 5a의 실시 예에 따르면, 도 3을 참조하여 도시된 스케쥴러(111)가 제1 리드 요청을 수신한 후 제1 리드 요청에 따른 리드 동작이 수행되는 동안 스케쥴러(111)가 제2 리드 요청을 수신하는 경우, 제2 리드 요청의 잔여 시간인 제1 잔여 시간(511)은 제1 리드 요청에 따른 리드 동작의 잔여 처리 시간(ta1) 및 제2 리드 요청에 따른 리드 동작의 처리 시간(tc1)의 합과 같을 수 있다. 다른 실시 예에서, 제1 리드 요청에 따른 리드 동작이 페일됨에 따라 제1 리드 요청에 대한 디펜스 알고리즘 동작이 수행되는 경우, 제1 잔여 시간(511)은 제1 리드 요청에 따른 리드 동작의 잔여 처리 시간(ta1), 제1 리드 요청에 대한 디펜스 알고리즘 동작의 처리 시간(tb1) 및 제2 리드 요청에 따른 리드 동작의 처리 시간(tc1)의 합과 같을 수 있다. 디펜스 알고리즘 동작은 리드 동작이 페일된 경우에 메모리 컨트롤러(110)에 의하여 수행되는 동작을 모두 포함할 수 있다. 예를 들어, 디펜스 알고리즘 동작은 리드 리트라이(read retry), 소프트 디코딩(soft decoding) 또는 이부스트(eboost) 동작일 수 있다. 리드 리트라이 동작은 리드 리트라이 테이블(RRT)을 이용하여 수행될 수 있다. 소프트 디코딩 동작은 오류 정정 코드(error correction code)를 이용하여 수행될 수 있다. 이부스트 동작은 최적 리드 레벨 서치 동작일 수 있다.
도 5b의 실시 예에 따르면, 도 3을 참조하여 도시된 스케쥴러(111)가 제1 리드 요청을 수신한 후 제1 리드 요청에 따른 리드 동작이 페일됨에 따라 제2 리드 요청에 대한 디펜스 알고리즘 동작이 수행되는 동안 스케쥴러(111)가 제2 리드 요청을 수신하는 경우, 제2 리드 요청의 잔여 시간인 제2 잔여 시간(521)은 제1 리드 요청에 대한 디펜스 알고리즘 동작의 잔여 처리 시간(tb2) 및 제2 리드 요청에 따른 리드 동작의 처리 시간(tc2)의 합과 같을 수 있다.
도 5c의 실시 예에 따르면, 도 3을 참조하여 도시된 스케쥴러(111)가 제1 리드 요청을 수신한 후 제1 리드 요청에 따른 리드 동작이 페일됨에 따라 제1 리드 요청에 대한 디펜스 알고리즘 동작이 수행되는 동안 스케쥴러(111)가 수신한 제2 리드 요청에 따른 리드 동작이 페일됨에 따라 제2 리드 요청에 대한 디펜스 알고리즘 동작도 함께 수행되는 되는 경우, 제2 리드 요청의 잔여 시간인 제3 잔여 시간(531)은 제1 리드 요청에 대한 디펜스 알고리즘 동작의 잔여 처리 시간(tb3), 제2 리드 요청에 따른 리드 동작의 처리 시간(tc3) 및 제2 리드 요청에 대한 디펜스 알고리즘 동작의 처리 시간(td3)의 합과 같을 수 있다.
도 6은 본 발명의 실시 예에 따른 제1 리드 요청에 따른 리드 동작을 중단하고 제2 리드 요청을 처리하는 것을 설명하기 위한 도면이다.
도 6을 참조하면, 제1 리드 요청에 따른 리드 동작을 중단하는 경우 제2 리드 요청을 처리하고, 제2 리드 요청에 따른 리드 동작이 완료되는 경우 다시 제1 리드 요청에 따른 리드 동작을 재개할 수 있다. 제1 그래프(610)는 제1 리드 요청에 따른 리드 동작 순서를 도시하고, 제2 그래프(620)는 제2 리드 요청에 따른 리드 동작 순서를 도시한다.
도 3을 참조하여 도시된 스케쥴러(111)가 제1 펑션(101-1)으로부터 제1 시점(631)에서 제1 리드 요청을 수신한 경우 메모리 제어부(113)는 제1 구간(611)에서 제1 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)를 제어할 수 있다. 일 예에서, 메모리 제어부(113)는 제1 시점(631)과 동시에 제1 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)를 제어할 수 있다. 다른 예에서, 메모리 제어부(113)는 제1 시점(631)으로부터 일정한 시간이 경과한 시점에 제1 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)를 제어할 수 있다.
스케쥴러(111)는 제2 시점(632)에 도 3을 참조하여 도시된 제2 펑션(101-2)으로부터 제2 리드 요청을 수신할 수 있다. 제2 시점(632)에 제2 펑션(101-2)으로부터 제2 리드 요청을 수신한 스케쥴러(111)는 제4 구간(621) 중 적어도 일부에서 제2 리드 요청에 따른 리드 동작을 수행하라는 요청을 메모리 제어부(113)에 제공할 수 있다. 일 예에서, 제2 시점(632)에서 제2 리드 요청을 수신한 스케쥴러(111)는 제3 시점(633)에서 제1 리드 요청에 따른 리드 동작을 중단한 이후에 제2 리드 요청에 따른 리드 동작을 수행하라는 요청을 메모리 제어부(113)에 제공할 수 있다. 다른 예에서, 제2 시점(632)에서 제2 리드 요청을 수신한 스케쥴러(111)는 제3 시점(633)에서 제1 리드 요청에 따른 리드 동작을 중단함과 동시에 제2 리드 요청에 따른 리드 동작을 수행하라는 요청을 메모리 제어부(113)에 제공할 수 있다.
스케쥴러(111)는 도 3을 참조하여 도시된 제2 펑션(101-2)의 성능 요청 정보 및 제2 리드 요청의 잔여 시간의 비교 결과에 기반하여 제3 시점(633)에서 제1 리드 요청에 따른 리드 동작을 중단하라는 요청을 메모리 제어부(113)에 제공할 수 있다. 제2 시점(632)에 스케쥴러(111)로부터 제1 리드 요청에 따른 리드 동작을 중단하라는 요청을 제공받은 메모리 제어부(113)는 제1 리드 요청에 따른 리드 동작을 수행하고 있는 적어도 하나의 메모리 다이(예: 도 3에 도시된 제1 메모리 다이(120-1))가 리드 동작을 중단하도록 메모리 장치(120)를 제어할 수 있다. 이로써, 제2 구간(612)에서는 제1 리드 요청에 따른 리드 동작이 수행되지 않을 수 있다.
제4 시점(634)에서 제2 리드 요청에 따른 리드 동작이 종료될 수 있다. 일 예에서, 제4 시점(634)에서 제2 리드 요청의 처리에 따라 메모리 제어부(113)는 제2 리드 요청에 대응되는 적어도 하나의 메모리 다이로부터 데이터를 획득하고, 획득된 데이터를 제2 펑션(101-2)에 제공할 수 있다.
제5 시점(635)에서, 중단된 제1 리드 요청에 따른 리드 동작이 재개될 수 있다. 일 예에서, 제5 시점(635)에서 스케쥴러(111)는 제1 리드 요청에 따른 리드 동작을 재개하라는 요청을 메모리 제어부(113)에 제공할 수 있다. 제5 시점(635)에서 스케쥴러(111)로부터 제1 리드 요청에 따른 리드 동작을 재개하라는 요청을 수신한 메모리 제어부(113)는 제3 구간(613)에서 제1 리드 요청에 따른 리드 동작을 재개 또는 수행하도록 메모리 장치(120)를 제어할 수 있다.
제6 시점(636)에서, 제1 리드 요청에 따른 리드 동작이 종료될 수 있다. 일 예에서, 제6 시점(636)에서 제1 리드 요청의 처리에 따라 메모리 제어부(113)는 제1 리드 요청에 대응되는 적어도 하나의 메모리 다이로부터 데이터를 획득하고, 획득된 데이터를 제1 펑션(101-1)에 제공할 수 있다.
도 7은 본 발명의 실시 예에 따른 스토리지 장치(100)의 동작 흐름도이다.
도 7을 참조하면, 스토리지 장치(100)는 성능 요구 정보 및 잔여 시간 정보의 비교 결과에 기반하여 제1 리드 요청 또는 제2 리드 요청 중 어느 하나를 우선적으로 처리할 수 있다. 도 7에 설명된 하드웨어 구성들은 도 3에 설명된 하드웨어 구성들에 대응될 수 있다.
동작 S701에서, 메모리 컨트롤러(110)는 제1 펑션(101-1)으로부터 제1 리드 요청을 수신하고 제1 리드 요청에 따른 리드 동작을 수행하도록 적어도 하나의 메모리 다이를 제어할 수 있다. 일 예에서, 메모리 컨트롤러(110)가 포함하는 스케쥴러(111)는 제1 펑션(101-1)으로부터 제1 리드 요청을 수신하여 제1 리드 요청에 따른 리드 동작을 수행하라는 요청을 메모리 제어부(113)에 제공할 수 있다. 스케쥴러(111)로부터 제1 리드 요청에 따른 리드 동작을 수행하라는 요청을 수신한 메모리 제어부(113)는 제1 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)가 포함하는 적어도 하나의 메모리 다이(예: 도 3에 도시된 제1 메모리 다이(120-1))를 제어할 수 있다.
동작 S703에서, 메모리 컨트롤러(110)는 제1 리드 요청의 처리가 완료되기 전에 제2 펑션(101-2)으로부터 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하였는지 여부를 판단할 수 있다. 일 예에서, 메모리 컨트롤러(110)가 포함하는 스케쥴러(111)는 제1 리드 요청의 처리가 완료되기 전에 제2 펑션(101-2)으로부터 적어도 하나의 메모리 다이(예: 도 3에 도시된 제1 메모리 다이(120-1))에 대한 제2 리드 요청을 수신하였는지 여부를 판단할 수 있다. 일 예에서, 스케쥴러(111)는 제1 리드 요청에 따른 리드 동작의 처리가 완료되기 전에 제2 리드 요청을 수신한 것으로 판단한 경우 동작 S705의 동작을 수행할 수 있다. 다른 예에서, 스케쥴러(111)는 제1 리드 요청에 따른 리드 동작의 처리가 완료되기 전에 제2 리드 요청을 수신하지 않은 것으로 판단한 경우 제1 리드 요청의 처리를 중단하지 않고 제1 리드 요청에 따른 리드 동작이 계속 수행될 수 있다. 이 경우, 메모리 컨트롤러(110)는 동작 S711을 수행할 수 있다.
동작 S705에서, 동작 S703이 충족되는 경우 메모리 컨트롤러(110)는 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 제2 리드 요청의 성능 요구 정보의 비교 결과에 기반하여 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)를 제어할 수 있다.
일 예에서, 메모리 컨트롤러(110)가 포함하는 스케쥴러(111)는 메모리 제어부(113)로부터 획득한 제2 리드 요청의 잔여 시간 정보 및 성능 요구 정보 저장부(112)로부터 획득한 제2 펑션의 성능 요구 정보의 비교 결과에 기반하여 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)가 포함하는 적어도 하나의 메모리 다이(예: 도 3의 제1 메모리 다이(120-1))를 제어할 수 있다. 예를 들어, 제2 펑션의 성능이 유지되기 위하여 제2 리드 요청이 처리되어야 할 시간보다 제2 리드 요청의 수행이 완료되기까지 소요되는 시간이 긴 경우에는, 스케쥴러(111)는 제1 리드 요청의 처리를 중단하고 제2 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치(120)가 포함하는 적어도 하나의 메모리 다이(예: 도 3의 제1 메모리 다이(120-1))를 제어할 수 있다.
동작 S707에서, 메모리 컨트롤러(110)는 제2 리드 요청에 따른 리드 동작의 수행을 완료할 수 있다.
동작 S709에서, 메모리 컨트롤러(110)는 제1 리드 요청에 따른 리드 동작을 재개할 수 있다.
동작 S711에서, 메모리 컨트롤러(110)는 제1 리드 요청에 따른 리드 동작의 수행을 완료할 수 있다.
도 8은 본 발명의 실시 예에 따른 스토리지 장치가 적용된 SSD(Solid State Drive) 시스템을 보여주는 블록도이다.
도 8을 참조하면, SSD 시스템(1000)은 호스트(1010) 및 SSD(1020)를 포함한다. SSD(1020)는 신호 커넥터(1001)를 통해 호스트(1010)와 신호를 주고 받고, 전원 커넥터(1002)를 통해 전원을 입력 받는다. SSD(1020)는 SSD 컨트롤러(1021), 복수의 메모리들(1022-1~1022-n), 보조 전원 장치(1023), 및 버퍼 메모리(1024)를 포함한다.
본 발명의 실시 예에 따르면, SSD 컨트롤러(1021)는 도 2를 참조하여 설명된 메모리 컨트롤러(110)의 기능을 수행할 수 있다.
SSD 컨트롤러(1021)는 호스트(1010)로부터 수신된 신호에 응답하여 복수의 메모리들(1022-1~1022-n)을 제어할 수 있다.
보조 전원 장치(1023)는 전원 커넥터(1002)를 통해 호스트(1010)와 연결된다. 보조 전원 장치(1023)는 호스트(1010)로부터 전원을 입력 받고, 충전할 수 있다. 보조 전원 장치(1023)는 호스트(1010)로부터의 전원 공급이 원활하지 않을 경우, SSD(1020)의 전원을 제공할 수 있다. 예시적으로, 보조 전원 장치(1023)는 SSD(1020) 내에 위치할 수도 있고, SSD(1020) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(1023)는 메인 보드에 위치하며, SSD(1020)에 보조 전원을 제공할 수도 있다.
버퍼 메모리(1024)는 SSD(1020)의 버퍼 메모리(1024)로 동작한다. 예를 들어, 버퍼 메모리(1024)는 호스트(1010)로부터 수신된 데이터 또는 복수의 메모리들(1022-1~1022-n)로부터 수신된 데이터를 임시 저장하거나, 메모리들(1022-1~1022-n)의 메타 데이터(예를 들어, 매핑 테이블)를 임시 저장할 수 있다. 버퍼 메모리(1024)는 DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, GRAM 등과 같은 휘발성 메모리 또는 FRAM, ReRAM, STT-MRAM, PRAM 등과 같은 비휘발성 메모리들을 포함할 수 있다.
100: 스토리지 장치
101: 호스트 장치
110: 메모리 컨트롤러
111: 스케쥴러
112: 성능 요구 정보 저장부
113: 메모리 제어부
120: 메모리 장치

Claims (20)

  1. 외부로부터 데이터 및 특정 동작을 지시하는 커맨드를 수신하는 복수의 메모리 다이들; 및
    제1 펑션으로부터 제1 리드 요청을 수신하고 상기 제1 리드 요청에 따른 리드 동작을 수행하도록 상기 복수의 메모리 다이들 중 적어도 하나의 메모리 다이를 제어하고, 상기 제1 리드 요청의 처리가 완료되기 전에 제2 펑션으로부터 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하면, 상기 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 상기 제2 펑션의 성능 요구 정보의 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하고 상기 제2 리드 요청에 따른 리드 동작을 수행하도록 상기 복수의 메모리 다이들을 제어하는 메모리 컨트롤러;를 포함하는 스토리지 장치.
  2. 제 1항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1 펑션의 성능 요구 정보 및 상기 제2 펑션의 성능 요구 정보를 저장하는 성능 요구 정보 저장부;
    상기 제2 리드 요청의 잔여 시간 정보 및 상기 성능 요구 정보 저장부로부터 획득한 상기 제2 펑션의 성능 요구 정보를 비교하고, 상기 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하고 상기 제2 리드 요청에 따른 리드 동작을 수행하라는 신호를 생성하는 스케쥴러; 및
    상기 스케쥴러가 생성한 상기 신호를 수신하여 상기 제1 리드 요청의 처리를 중단하고 상기 제2 리드 요청을 처리하도록 상기 적어도 하나의 메모리 다이를 제어하는 메모리 제어부;를 포함하는 스토리지 장치.
  3. 제 2항에 있어서, 상기 스케쥴러는,
    상기 메모리 제어부로부터 상기 제2 리드 요청의 잔여 시간 정보를 획득하는 스토리지 장치.
  4. 제 3항에 있어서,
    상기 제1 펑션 및 상기 제2 펑션은 상기 스토리지 장치에 의하여 논리적으로 구분된 복수의 호스트 장치들로 식별되는 스토리지 장치.
  5. 제 3항에 있어서,
    상기 성능 요구 정보는 상기 스토리지 장치가 부팅(booting)되는 경우 초기화되는 스토리지 장치.
  6. 제 3항에 있어서,
    상기 제1 펑션의 성능 요구 정보 및 상기 제2 펑션의 성능 요구 정보는 상이한 값을 가지는 스토리지 장치.
  7. 제 3항에 있어서,
    상기 제2 리드 요청의 잔여 시간 정보는 상기 제1 리드 요청에 따른 리드 동작의 잔여 수행 시간 및 상기 제2 리드 요청에 따른 리드 동작의 수행 시간에 대한 정보를 포함하는 스토리지 장치.
  8. 제 3항에 있어서, 상기 스케쥴러는,
    상기 제1 리드 요청에 따른 리드 동작이 페일됨에 따라 제1 리드 요청에 대한 디펜스 알고리즘 동작이 진행 중인 경우에 상기 제2 펑션으로부터 상기 제2 리드 요청을 수신하는 스토리지 장치.
  9. 제 8항에 있어서,
    상기 제2 리드 요청의 잔여 시간 정보는 상기 제1 리드 요청에 대한 디펜스 알고리즘 동작의 잔여 수행 시간 및 상기 제2 리드 요청에 따른 리드 동작의 수행 시간에 대한 정보를 포함하는 스토리지 장치.
  10. 제 8항에 있어서,
    상기 제2 리드 요청의 잔여 시간 정보는 상기 제1 리드 요청에 대한 디펜스 알고리즘 동작의 잔여 수행 시간, 상기 제2 리드 요청에 따른 리드 동작의 수행 시간 및 상기 제2 리드 요청에 대한 디펜스 알고리즘 동작의 수행 시간에 대한 정보를 포함하는 스토리지 장치.
  11. 복수의 메모리 다이들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법에 있어서,
    제1 펑션으로부터 제1 리드 요청을 수신하고 상기 복수의 메모리 다이들 중 적어도 하나의 메모리 다이에 대하여 상기 제1 리드 요청에 따른 리드 동작을 수행하는 단계;
    상기 제1 리드 요청의 처리가 완료되기 전에 제2 펑션으로부터 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하는 단계;
    상기 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 상기 제2 펑션의 성능 요구 정보의 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하는 단계; 및
    상기 제2 리드 요청에 따른 리드 동작을 수행하도록 상기 메모리 장치를 제어하는 단계;를 포함하는 메모리 컨트롤러의 동작 방법.
  12. 제 11항에 있어서,
    상기 제2 리드 요청의 잔여 시간 정보는 상기 제1 리드 요청에 따른 리드 동작의 잔여 수행 시간 및 상기 제2 리드 요청에 따른 리드 동작의 수행 시간에 대한 정보를 포함하는 메모리 컨트롤러의 동작 방법.
  13. 제 11항에 있어서, 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하는 단계는,
    상기 제1 리드 요청에 따른 리드 동작이 페일됨에 따라 제1 리드 요청에 대한 디펜스 알고리즘 동작이 진행 중인 경우에 상기 제2 펑션으로부터 상기 제2 리드 요청을 수신하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  14. 제 13항에 있어서,
    상기 제2 리드 요청의 잔여 시간 정보는 상기 제1 리드 요청에 대한 디펜스 알고리즘 동작의 잔여 수행 시간 및 상기 제2 리드 요청에 따른 리드 동작의 수행 시간에 대한 정보를 포함하는 메모리 컨트롤러의 동작 방법.
  15. 제 13항에 있어서,
    상기 제2 리드 요청의 잔여 시간 정보는 상기 제1 리드 요청에 대한 디펜스 알고리즘 동작의 잔여 수행 시간, 상기 제2 리드 요청에 따른 리드 동작의 수행 시간 및 상기 제2 리드 요청에 대한 디펜스 알고리즘 동작의 수행 시간에 대한 정보를 포함하는 메모리 컨트롤러의 동작 방법.
  16. 복수의 펑션들의 성능 요구 정보를 저장하는 성능 요구 정보 저장부;
    상기 복수의 펑션들 중 제1 펑션으로부터 제1 리드 요청을 수신하는 스케쥴러; 및
    상기 제1 리드 요청에 따른 리드 동작을 수행하도록 메모리 장치의 적어도 하나의 메모리 다이를 제어하는 메모리 제어부;를 포함하고,
    상기 스케쥴러는, 상기 제1 리드 요청의 처리가 완료되기 전에 상기 복수의 펑션들 중 제2 펑션으로부터 상기 적어도 하나의 메모리 다이에 대한 제2 리드 요청을 수신하면, 상기 제1 리드 요청의 수행 정도에 따라 결정되는 제2 리드 요청의 잔여 시간 정보 및 상기 제2 펑션의 성능 요구 정보의 비교 결과에 기반하여 상기 제1 리드 요청의 처리를 중단하고 상기 제2 리드 요청에 따른 리드 동작을 수행하도록 상기 메모리 장치를 제어하는 메모리 컨트롤러.
  17. 제 16항에 있어서, 상기 스케쥴러는,
    상기 성능 요구 정보 저장부로부터 상기 제2 펑션의 성능 요구 정보를 획득하는 메모리 컨트롤러.
  18. 제 17항에 있어서,
    상기 제1 펑션의 성능 요구 정보 및 상기 제2 펑션의 성능 요구 정보는 상이한 값을 가지는 메모리 컨트롤러.
  19. 제 17항에 있어서,
    상기 제2 리드 요청의 잔여 시간 정보는 상기 제1 리드 요청에 따른 리드 동작의 잔여 수행 시간 및 상기 제2 리드 요청에 따른 리드 동작의 수행 시간에 대한 정보를 포함하는 메모리 컨트롤러.
  20. 제 17항에 있어서,
    상기 성능 요구 정보는 상기 메모리 컨트롤러를 포함하는 스토리지 장치가 부팅(booting)되는 경우 초기화되는 메모리 컨트롤러.
KR1020220131880A 2022-10-14 2022-10-14 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법 KR20240052174A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220131880A KR20240052174A (ko) 2022-10-14 2022-10-14 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법
US18/190,979 US20240126682A1 (en) 2022-10-14 2023-03-28 Storage device, electronic device including the same, and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220131880A KR20240052174A (ko) 2022-10-14 2022-10-14 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20240052174A true KR20240052174A (ko) 2024-04-23

Family

ID=90626324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220131880A KR20240052174A (ko) 2022-10-14 2022-10-14 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법

Country Status (2)

Country Link
US (1) US20240126682A1 (ko)
KR (1) KR20240052174A (ko)

Also Published As

Publication number Publication date
US20240126682A1 (en) 2024-04-18

Similar Documents

Publication Publication Date Title
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
US11461226B2 (en) Storage device including memory controller
US11861359B2 (en) Storage device and method of operating the same
US20230418485A1 (en) Host device, storage device, and electronic device
US12067272B2 (en) Storage device and power management method thereof
US11775211B2 (en) Memory controller and method of operating the same
US12056359B2 (en) Storage device, electronic device including storage device, and operating method thereof
US11455249B2 (en) Storage device for performing dump operation, method of operating storage device, computing system including storage device and host device for controlling storage device, and method of operating computing system
US11520519B2 (en) Storage device and method of operating the same
US12056390B2 (en) Memory controller, storage device, and host device
US20240126682A1 (en) Storage device, electronic device including the same, and operating method thereof
US12056356B2 (en) Storage device, electronic device including the same, and operating method thereof
US20240020252A1 (en) Computing system and operating method thereof
US20240012564A1 (en) Memory controller and storage device including the same
US20240004578A1 (en) Memory system and method of operating memory controller included in the memory system
US12007887B2 (en) Method and system for garbage collection
US20230305741A1 (en) Storage device and operating method thereof
US20230103797A1 (en) Memory controller and method of operating the same
US20240045806A1 (en) Storage device, electronic device including the same, and operating method thereof
US20240037023A1 (en) Storage device and method of operating the same
KR20230063857A (ko) 스토리지 장치 및 전자 장치
KR20240121547A (ko) 메모리 시스템 및 그것의 동작 방법
KR20220159269A (ko) 스토리지 장치 및 그 동작 방법
KR20220159268A (ko) 호스트 장치, 스토리지 장치 및 전자 장치
KR20230011214A (ko) 스토리지 장치 및 이의 동작 방법