KR102588143B1 - 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법 - Google Patents

메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법 Download PDF

Info

Publication number
KR102588143B1
KR102588143B1 KR1020180135850A KR20180135850A KR102588143B1 KR 102588143 B1 KR102588143 B1 KR 102588143B1 KR 1020180135850 A KR1020180135850 A KR 1020180135850A KR 20180135850 A KR20180135850 A KR 20180135850A KR 102588143 B1 KR102588143 B1 KR 102588143B1
Authority
KR
South Korea
Prior art keywords
signal
channel
memory
memory controller
data
Prior art date
Application number
KR1020180135850A
Other languages
English (en)
Other versions
KR20200053051A (ko
Inventor
김선봉
황미나
심호준
이광구
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180135850A priority Critical patent/KR102588143B1/ko
Priority to US16/414,181 priority patent/US11086563B2/en
Priority to CN201910846434.6A priority patent/CN111158581B/zh
Publication of KR20200053051A publication Critical patent/KR20200053051A/ko
Application granted granted Critical
Publication of KR102588143B1 publication Critical patent/KR102588143B1/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/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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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

Abstract

본 발명은 메모리 및 메모리 컨트롤러를 포함한다. 메모리는 데이터를 저장한다. 메모리 컨트롤러는 외부 장치로부터 제 1 채널을 통해 메모리로 데이터를 요청하기 위한 제 1 신호를 수신하고, 제 1 신호에 기초하여 메모리로부터 데이터를 획득하고, 제 1 신호가 수신된 시각과 데이터가 획득된 시각 사이의 시간 간격이 제 1 기준 간격보다 큰 경우 데이터가 외부 장치로 전달되도록 데이터를 제 1 채널과 상이한 제 2 채널을 통해 출력한다.

Description

메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법 {STORAGE DEVICE INCLUDING MEMORY CONTROLLER AND METHOD OF OPERATING ELECTRONIC SYSTME INCLUDING MEMORY}
본 발명은 전자 장치 및 전자 시스템에 관한 것으로, 좀 더 상세하게는 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법에 관한 것이다.
반도체 기술이 발전함에 따라 전자 장치의 기능이 다양해지고 있다. 스토리지 장치는 전자 장치가 기능을 수행하기 위해 필요한 동작들을 제공한다. 구체적으로, 스토리지 장치는 전자 장치가 기능을 수행하기 위해 필요한 데이터를 제공하거나, 전자 장치가 기능을 수행하기 위해 처리한 데이터를 저장한다.
스토리지 장치는 전자 장치의 내부 또는 외부에 위치한다. 스토리지 장치가 전자 장치의 내부에 위치하는 경우, 전자 장치는 호스트 장치를 이용하여 스토리지 장치에 접근한다. 호스트 장치는 CPU(Central Processing Unit), AP(Application Processor), GPU(Graphic Processing Unit)와 같은 프로세서일 수 있다.
전자 장치의 기능이 증가하면서, 스토리지 장치가 처리해야 할 데이터의 양이 증가하고 있다. 또한, 전자 장치가 다양한 기능을 수행하게 되면서, 다수의 호스트 장치가 하나의 스토리지 장치에 동시에 접근하는 경우가 증가하고 있다. 스토리지 장치가 처리해야 할 데이터의 양 및 스토리지 장치에 동시에 접근하는 호스트 장치가 증가하면서, 호스트 또는 전자 장치가 스토리지 장치로부터 동작들을 제공받는데 소요되는 시간이 길어지고 있다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명의 목적은 호스트로 응답 신호를 송신하는 것의 지연을 감소 또는 최소화하는 스토리지 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 스토리지 장치는 메모리 및 메모리 컨트롤러를 포함할 수 있다. 메모리는 데이터를 저장할 수 있다. 메모리 컨트롤러는 외부 장치로부터 제 1 채널을 통해 메모리로 데이터를 요청하기 위한 제 1 신호를 수신하고, 제 1 신호에 기초하여 메모리로부터 데이터를 획득하고, 제 1 신호가 수신된 시각과 데이터가 획득된 시각 사이의 시간 간격이 제 1 기준 간격보다 큰 경우 데이터가 외부 장치로 전달되도록 데이터를 제 1 채널과 상이한 제 2 채널을 통해 출력할 수 있다.
본 발명의 다른 실시 예에 따른 스토리지 장치는 메모리 및 메모리 컨트롤러를 포함할 수 있다. 메모리는 데이터를 저장할 수 있다. 메모리가 제 1 동작을 수행하는 동안 메모리에서 수행될 제 2 동작을 지시하는 제 1 신호를 외부 장치로부터 제 1 채널을 통해 수신하는 경우, 제 1 신호에 기초하는 제 2 신호가 외부 장치로 전달되도록 제 2 신호를 제 1 채널과 상이한 제 2 채널을 통해 출력할 수 있다.
본 발명의 또 다른 실시 예에 따른 메모리를 포함하는 전자 시스템을 동작시키는 방법은 호스트로부터 제 1 채널을 통해 제 1 신호를 수신하는 단계; 제 1 신호에 기초하여 메모리에 저장된 데이터를 요청하기 위한 제 2 신호를 메모리로 출력하는 단계; 제 2 신호에 기초하여 메모리로부터 데이터를 획득하는 단계; 및 제 1 신호가 수신된 시각과 제 2 신호가 출력된 시각 사이의 시간 간격이 기준 간격보다 큰 경우 데이터가 호스트로 전달되도록 데이터를 제 1 채널과 상이한 제 2 채널을 통해 출력하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따르면, 메모리 컨트롤러는 응답 신호를 호스트로 빠르게 전송할 수 있다. 따라서, 메모리 컨트롤러는 호스트로 응답 신호를 송신하는 것의 지연을 감소 또는 최소화할 수 있다.
도 1은 스토리지 장치를 포함하는 전자 시스템을 보여주는 블록도이다.
도 2는 도 1의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 3은 도 1의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 4는 본 발명의 실시 예에 따른 전자 시스템을 보여주는 블록도이다.
도 5는 도 4의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 6은 도 4의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 7은 도 4의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 8은 본 발명의 실시 예에 따른 전자 시스템을 보여주는 블록도이다.
도 9는 채널에 대한 데이터를 설명하기 위한 개념도이다.
도 10은 도 8에 도시된 채널 컨트롤러를 보여주는 블록도이다.
도 11은 도 8의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 12는 도 8의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 13은 도 8의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 스토리지 장치를 포함하는 전자 시스템을 보여주는 블록도이다.
전자 시스템(1000)은 하나 이상의 호스트(110, 120, 130), 스위치 장치(200), 및 스토리지 장치(300)를 포함할 수 있다. “호스트”는 스위치 장치(200)를 통해 스토리지 장치(300)로 액세스할 수 있는 어떠한 종류의 장치 또는 개체이든 될 수 있다. 이하 설명들에서, 전자 시스템(1000)은 3개의 호스트(110, 120, 130)를 포함하는 것으로 설명되나 본 발명은 이에 한정되지 않고, 전자 시스템(1000)은 하나 이상의 호스트를 포함할 수 있다.
전자 시스템(1000)은 데스크탑 PC(Personal Computer), 노트북, 태블릿, 스마트 폰 등과 같은 전자 장치들 중 하나이거나, 전자 장치들의 조합으로 구성될 수 있다. 전자 시스템(1000)이 하나의 전자 장치로 구성되는 경우, 호스트들(110, 120, 130)은 CPU(Central Processing Unit), AP(Application Processor), GPU(Graphic Processing Unit)와 같은 프로세서일 수 있다. 전자 시스템(1000)이 전자 장치들의 조합으로 구성되는 경우, 호스트들(110, 120, 130)은 데스크탑 PC(Personal Computer), 노트북, 태블릿, 스마트 폰 등과 같은 전자 장치일 수 있다. 예로서, 전자 시스템(1000)은 메모리 중심 시스템(memory centric system)일 수 있다.
호스트들(110, 120, 130)은 스토리지 장치(300)에서 수행되는 동작을 요청할 수 있다. 호스트들(110, 120, 130)은 스토리지 장치(300)로 동작(예컨대, 읽기 동작, 쓰기 동작, 소거 동작 등)을 지시하기 위해 스토리지 장치(300)로 신호들(s10, s20, s30)을 전송할 수 있다. 신호들(s10, s20, s30)은 스토리지 장치(300)에서 수행될 동작과 관련되는 커맨드 및/또는 데이터를 포함할 수 있다.
호스트들(110, 120, 130)은 채널들(VC10, VC20, VC30)을 통해 스토리지 장치(300)로 신호들(s10, s20, s30)을 출력할 수 있다. 채널들(VC10, VC20, VC30)은 호스트들(110, 120, 130)과 스토리지 장치(300) 사이에서 신호를 송신 및 수신하기 위한 통신 경로들을 제공할 수 있다. 예로서, 채널들(VC10, VC20, VC30)은 비동기 전송 방식(asynchronous transfer mode)으로 신호들이 전송되는 가상 채널(virtual channel)일 수 있다. 신호들(s10, s20, s30)은 스위치 장치(200)를 통해 스토리지 장치(300)로 수신될 수 있다. 스위치 장치(200)는 채널들(VC10, VC20, VC30)에 의해 제공되는 통신 경로들 상에 있을 수 있다.
스토리지 장치(300)는 메모리 컨트롤러(310) 및 메모리(350)를 포함할 수 있다. 스토리지 장치(300)는 호스트들(110, 120, 130)로부터 출력된 신호들(s10, s20, s30)을 수신할 수 있다.
메모리 컨트롤러(310)는 신호들(s10, s20, s30)을 수신할 수 있다. 메모리 컨트롤러(310)는 수신된 신호들(s10, s20, s30)에 따라 메모리(350)를 제어할 수 있다. 메모리 컨트롤러(310)는 메모리(350)가 수신된 신호들(s10, s20, s30)이 지시하는 동작들을 수행하도록 메모리(350)를 제어할 수 있다.
메모리(350)는 불휘발성 메모리 및/또는 휘발성 메모리를 포함하거나 이들의 조합으로 구성될 수 있다. 메모리(350)는 불휘발성 메모리 및/또는 휘발성 메모리가 결합된 메모리 풀(memory pool)일 수 있다. 휘발성 메모리는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리일 수 있다. 휘발성 메모리는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등을 포함할 수 있다. 불휘발성 메모리는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함할 수 있다.
메모리(350)는 메모리 컨트롤러(310)의 제어에 따라, 수신된 신호들(s10, s20, s30)이 지시하는 동작들을 수행할 수 있다. 예로서, 메모리(350)는 메모리 컨트롤러(310)의 제어에 따라 데이터를 저장하거나, 저장된 데이터를 메모리 컨트롤러(310)로 출력할 수 있다.
메모리 컨트롤러(310)는 메모리(350)가 수신된 신호들(s10, s20, s30)이 지시하는 동작들을 완료한 경우, 신호들(s10, s20, s30)에 대응하는 신호들(s11, s21, s31)을 채널들(VC10, VC20, VC30)을 통해 전송할 수 있다. 신호들(s11, s21, s31)은 신호들(s10, s20, s30)에 대한 응답 및/또는 관련 데이터를 포함할 수 있다. 예로서, 메모리 컨트롤러(310)는 신호(s10)가 채널(VC10)을 통해 수신된 경우, 신호(s10)에 대응하는 신호(s11)를 채널(VC10)을 통해 출력할 수 있다.
스위치 장치(200)는 포트들(210, 250)을 포함할 수 있다. 스위치 장치(200)는 파이버 채널(Fiber channel)을 망으로 구성하는 패브릭 스위치(Fabric switch)를 포함할 수 있다. 예로서, 스위치 장치(200)는 PCIe(PCI express), CCIX, Gen-z 등의 인터페이싱 방식을 이용할 수 있다. 본 발명은 이에 한정되지 않는다.
이하 설명들에서, 스위치 장치(200)는 2개의 포트들(210, 250)을 포함하는 것으로 설명되나 본 발명은 이에 한정되지 않고, 스위치 장치(200)는 하나 이상의 포트를 포함할 수 있다. 또한, 호스트들(110, 120, 130)로부터 출력된 신호들(s10, s20, s30)은 포트(210)로 전송되고, 스토리지 장치(300)로부터 출력된 신호들(s11, s21, s31)은 포트(250)로 전송되는 것으로 설명되나 본 발명은 이에 한정되지 않고, 신호들(s10, s20, s30) 및 신호들(s11, s21, s31)은 각각 상이한 포트로 전송되거나 상이한 포트로부터 출력될 수 있다.
신호들(s10, s20, s30) 및 신호들(s11, s21, s31)은 스위치 장치(200)를 통해 각각 스토리지 장치(300) 및 호스트들(110, 120, 130)로 전송될 수 있다. 구체적으로, 포트(210)는 호스트들(110, 120, 130)로부터 출력된 신호들(s10, s20, s30)을 수신할 수 있다. 포트(210)는 수신된 신호들(s10, s20, s30)을 포트(250)로 출력할 수 있다. 포트(250)는 신호들(s10, s20, s30)을 수신할 수 있다. 포트(250)는 수신된 신호들(s10, s20, s30)을 스토리지 장치(300)로 출력할 수 있다.
포트(250)는 스토리지 장치(300)로부터 출력된 신호들(s11, s21, s31)을 수신할 수 있다. 포트(250)는 수신된 신호들(s11, s21, s31)을 포트(210)로 출력할 수 있다. 포트(210)는 신호들(s11, s21, s31)을 수신할 수 있다. 포트(210)는 수신된 신호들(s11, s21, s31)을 호스트들(110, 120, 130)로 출력할 수 있다.
도 2는 도 1의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 2는 메모리(350)가 동작하지 않는 도중에 메모리 컨트롤러(310)로 신호(s12)가 수신되는 경우, 도 1에 도시된 호스트(110), 메모리 컨트롤러(310), 및 메모리(350) 사이에서 전송되는 신호들(s12, s13, s14, s15)을 도시한다.
S110 동작에서, 호스트(110)는 신호(s12)를 채널(VC0)을 통해 메모리 컨트롤러(310)로 출력할 수 있다. 신호(s12)는 메모리(350)가 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. 메모리 컨트롤러(310)는 신호(s12)를 수신할 수 있다.
메모리(350)가 동작하지 않는 도중에 메모리 컨트롤러(310)로 신호(s12)가 수신되는 경우, S120 동작에서, 메모리 컨트롤러(310)는 신호(s12)에 기초하여 신호(s13)를 메모리(350)로 출력할 수 있다. 신호(s13)는 메모리(350)가 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. 메모리(350)는 신호(s13)를 수신할 수 있다. 메모리 컨트롤러(310)가 신호(s12)를 수신한 시각과 메모리 컨트롤러(310)가 신호(s13)를 출력한 시각 사이에 기준 지연 간격(r0)이 있을 수 있다. 기준 지연 간격(r0)은 도 3을 참조하여 자세하게 설명될 것이다.
S130 동작에서, 메모리(350)는 신호(s13)에 기초하여 신호(s13)가 지시하는 동작을 수행할 수 있다.
S140 동작에서, 메모리(350)는 동작이 완료되는 경우 신호(s14)를 메모리 컨트롤러(310)로 출력할 수 있다. 신호(s14)는 메모리(350)가 동작을 완료하였다는 정보를 포함할 수 있다. 예로서, 메모리(350)는 읽기 동작이 완료되는 경우 신호(s14)를 메모리 컨트롤러(310)로 출력할 수 있다. 메모리가 읽기 동작을 수행한 경우, 신호(s14)는 읽기 동작에 의해 독출된 데이터를 포함할 수 있다. 메모리 컨트롤러(310)는 신호(s14)를 수신할 수 있다. 메모리 컨트롤러(310)가 신호(s12)를 수신한 시각과 메모리 컨트롤러(310)가 신호(s14)를 수신한 시각 사이에 기준 동작 간격(a0)이 있을 수 있다. 기준 동작 간격(a0)은 도 3을 참조하여 자세하게 설명될 것이다.
S150 동작에서, 메모리 컨트롤러(310)는 신호(s14)에 기초하여 신호(s15)를 호스트(110)로 출력할 수 있다.
예로서, 호스트(110)는 메모리(350)로 읽기 동작을 지시하기 위한 신호(s12)를 출력할 수 있다(S110). 즉, 호스트(110)는 메모리(350)로 데이터를 요청하기 위한 신호(s12)를 출력할 수 있다. 메모리 컨트롤러(310)는 신호(s12)에 기초하여 신호(s13)를 메모리(350)로 출력할 수 있다(S120). 신호(s13)는 메모리(350)로 데이터를 요청하기 위한 신호일 수 있다. 메모리(350)는 신호(s13)에 응답하여 데이터를 독출할 수 있다(S130). 메모리(350)가 읽기 동작을 완료한 이후에 메모리 컨트롤러(310)는 메모리(350)로부터 신호(s14)를 수신할 수 있다(S140). 신호(s14)는 메모리(350)로부터 독출된 데이터를 포함할 수 있다. 즉, 메모리 컨트롤러(310)는 메모리(350)로부터 데이터를 획득할 수 있다. 메모리 컨트롤러(310)는 독출된 데이터를 포함하는 신호(s15)를 호스트(110)로 출력할 수 있다(S150).
본 발명은 이에 한정되지 않고, 메모리 컨트롤러(310)는 신호(s14)가 수신되기 이전에 신호들(s12, s13)에 기초하여 신호(s15)를 메모리(350)로 출력할 수 있다. 메모리 컨트롤러(310)는 신호(s13)를 출력한 이후에 신호(s15)를 메모리(350)로 출력할 수 있다.
예로서, 호스트(110)는 메모리(350)로 쓰기 동작을 지시하기 위한 신호(s12)를 출력할 수 있다(S110). 메모리 컨트롤러(310)는 신호(s12)에 기초하여 신호(s13)를 메모리(350)로 출력할 수 있다(S120). 신호(s13)는 메모리(350)가 쓰기 동작을 수행하도록 하기 위한 커맨드 및 데이터를 포함할 수 있다. 이 경우, 메모리 컨트롤러(310)는 신호(s13)를 출력한 이후에 곧바로 신호(s15)를 호스트(110)로 출력할 수 있다(S150). 또는, 메모리 컨트롤러(310)는 메모리(350)에 저장될 데이터를 메모리 컨트롤러(310)의 내부 버퍼에 일시적으로 저장한 후에 신호(s15)를 호스트(110)로 출력할 수 있다. 다만, 본 발명의 설명의 편의를 위해 이하 설명들에서, 메모리 컨트롤러(310)는 메모리(350)가 동작을 완료한 이후에 신호들(s12, s14)에 기초하여 신호(s15)를 출력하는 것으로 가정된다.
도 3은 도 1의 전자 시스템의 동작을 설명하기 위한 흐름도이다.
도 3은 메모리(350)가 제 1 동작을 수행하는 도중에 메모리 컨트롤러(310)로 신호(s16)가 수신되는 경우, 도 1에 도시된 호스트(110), 메모리 컨트롤러(310), 및 메모리(350) 사이에서 전송되는 신호들(s16, s17, s18, s19)을 도시한다. 제 1 동작은 리클레임(reclaim) 동작, 리프레시(refresh) 동작 및 소거 동작 등일 수 있으나, 본 발명은 이에 한정되지 않는다.
S210 동작에서, 호스트(110)는 신호(s16)를 메모리 컨트롤러(310)로 출력할 수 있다. 신호(s16)는 메모리(350)가 제 2 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. 예로서, 제 2 동작은 메모리(350)에 대한 읽기 동작, 쓰기 동작 등일 수 있다. 메모리 컨트롤러(310)는 신호(s16)를 수신할 수 있다.
S220 동작에서, 메모리(350)는 제 1 동작을 수행할 수 있다. 메모리(350)는 메모리 컨트롤러(310)로 신호(s16)가 수신된 때에 제 1 동작을 수행 중일 수 있다.
메모리(350)가 제 1 동작을 수행하는 도중에 메모리 컨트롤러(310)로 신호(s16)가 수신되는 경우, S230 동작에서, 메모리 컨트롤러(310)는 메모리(350)가 제 1 동작을 완료할 때까지 대기할 수 있다.
메모리(350)가 제 1 동작을 완료한 경우, S240 동작에서, 메모리 컨트롤러(310)는 신호(s16)에 기초하여 신호(s17)를 메모리(350)로 출력할 수 있다. 신호(s17)는 메모리(350)가 제 2 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. 메모리(350)는 신호(s17)를 수신할 수 있다. 메모리 컨트롤러(310)가 신호(s16)를 수신한 시각과 메모리 컨트롤러(310)가 신호(s17)를 출력한 시각 사이에 지연 간격(r1)이 있을 수 있다.
S250 동작에서, 메모리(350)는 신호(s17)에 기초하여 제 2 동작을 수행할 수 있다.
S260 동작에서, 메모리(350)는 제 2 동작이 완료되는 경우 신호(s18)를 메모리 컨트롤러(310)로 출력할 수 있다. 신호(s18)는 메모리(350)가 제 2 동작을 완료하였다는 정보 및/또는 관련 데이터를 포함할 수 있다. 메모리 컨트롤러(310)는 신호(s18)를 수신할 수 있다. 메모리 컨트롤러(310)가 신호(s16)를 수신한 시각과 메모리 컨트롤러(310)가 신호(s18)를 수신하는 시각 사이에 동작 간격(a1)이 있을 수 있다.
S270 동작에서, 메모리 컨트롤러(310)는 신호(s18)에 기초하여 신호(s19)를 호스트(110)로 출력할 수 있다.
메모리(350)가 제 1 동작을 수행하는 도중에 메모리 컨트롤러(310)로 신호(s16)가 수신되는 경우, 메모리(350)는 수행 중이던 제 1 동작을 완료한 이후에 호스트(110)로부터 요청된 제 2 동작을 수행할 수 있다. 따라서, 지연 간격(r1) 및 동작 간격(a1)이 각각 기준 지연 간격(r0) 및 기준 동작 간격(a0)보다 커질 수 있다. 동작 간격의 차(a1-a0)는 지연 간격 차(r1-r0)와 동일하거나 비례할 수 있다.
이하 설명들에서, 기준 지연 간격은 메모리(350)가 동작하지 않는 도중에 메모리 컨트롤러(310)로 신호(s12)가 수신되는 경우, 메모리 컨트롤러(310)가 신호(s12)를 수신한 시각과 메모리 컨트롤러(310)가 신호(s13)를 출력한 시각 사이의 시간 간격을 의미한다. 기준 동작 간격은 메모리(350)가 동작하지 않는 도중에 메모리 컨트롤러(310)로 신호(s12)가 수신되는 경우, 메모리 컨트롤러(310)가 신호(s12)를 수신한 시각과 메모리 컨트롤러(310)가 신호(s14)를 수신하는 시각 사이의 시간 간격을 의미한다.
신호(s19)는 동작 간격의 차(a1-a0)만큼 신호(s15)보다 늦게 메모리 컨트롤러(310)로부터 출력될 수 있다. 따라서, 신호(s19)는 동작 간격의 차(a1-a0)만큼 신호(s15)보다 늦게 호스트(110)로 수신될 수 있다. 이 경우, 스토리지 장치(300)의 QoS(Quality of Service)가 저하될 수 있다.
따라서, 실시 예들은 호스트(110)로 신호(s19)를 송신하는 것의 지연을 감소 또는 최소화하기 위해 구현될 수 있다. 이하 설명들에서, 메모리(350)가 동작을 수행하는 도중에 호스트(110)로부터 메모리 컨트롤러(310)로 수신된 신호에 대응하여 메모리 컨트롤러(310)로부터 호스트(110)로 출력되는 신호는 지연된 신호라고 표현된다.
도 4는 본 발명의 실시 예에 따른 전자 시스템을 보여주는 블록도이다. 도 4는 메모리(350a)가 동작을 수행하는 도중에 메모리 컨트롤러(310a)가 신호(s40)를 수신한 경우의 메모리 컨트롤러(310a)의 동작에 관하여 설명하기 위해 도시된 것이다.
도 4에 도시된 전자 시스템(1000a)의 구성 요소들(110a, 120a, 130a, 200a, 210a, 250a, 300a, 310a, 350a)은 도 1에 도시된 전자 시스템(1000)의 구성 요소들(110, 120, 130, 200, 210, 250, 300, 310, 350)과 대응하는 동작들을 제공할 수 있다. 다만, 메모리 컨트롤러(310a)는 메모리 컨트롤러(300)와 달리 지연 간격, 동작 간격 및 메모리(350a)의 동작 상태 등을 고려하여 신호(s41)를 출력할 수 있다. 아래에서, 전자 시스템(1000a)은 전자 시스템(1000)과의 차이점 위주로 설명되고, 중복되는 설명은 생략된다.
호스트(110a)는 채널(VC0)을 통해 신호(s40)를 메모리 컨트롤러(310a)로 출력할 수 있다. 메모리 컨트롤러(310a)는 채널(VC0)을 통해 신호(s40)를 수신할 수 있다. 메모리 컨트롤러(310a)는 신호(s40)에 응답하여 신호(s41)를 호스트(110a)로 출력할 수 있다.
메모리 컨트롤러(310a)는 지연 간격, 동작 간격 및 메모리(350a)의 동작 상태 중 하나 이상을 고려하여 신호(s41)를 채널(VC0)와 상이한 채널(VC2)을 통해 전송할 수 있다.
메모리 컨트롤러(310a)는 메모리(350a)의 동작 상태를 모니터링 할 수 있다. 메모리 컨트롤러(310a)는 메모리(350a)가 동작을 수행하는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우 신호(s41)를 채널(VC2)을 통해 전송할 수 있다. 메모리 컨트롤러(310a)가 메모리(350a)의 동작 상태를 모니터링 하는 방법은 도 5 및 도 6을 참조하여 자세하게 설명될 것이다.
도 2 및 도 3을 참조하여 설명된 것처럼, 메모리(350a)가 동작을 수행하는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우 지연 간격 및 동작 간격은 각각 기준 지연 간격 및 기준 동작 간격보다 커질 수 있다.
메모리 컨트롤러(310a)는 지연 간격을 카운팅 할 수 있다. 메모리 컨트롤러(310a)는 카운팅된 지연 간격을 기준 지연 간격과 비교할 수 있다. 메모리 컨트롤러(310a)는 카운팅된 지연 간격이 기준 지연 간격보다 큰 경우 신호(s41)를 채널(VC2)을 통해 전송할 수 있다.
메모리 컨트롤러(310a)는 동작 간격을 카운팅 할 수 있다. 메모리 컨트롤러(310a)는 카운팅된 동작 간격을 기준 동작 간격(a0)과 비교할 수 있다. 메모리 컨트롤러(310a)는 카운팅된 동작 간격이 기준 동작 간격보다 큰 경우 신호(s41)를 채널(VC2)을 통해 전송할 수 있다.
본 발명은 이에 한정되지 않고, 메모리 컨트롤러(310a)는 채널들(VC1, VC2)중 하나의 채널을 선택하여 선택된 채널을 통해 신호(s41)를 출력할 수 있다. 메모리 컨트롤러(310a)가 채널을 선택하는 방법은 도 5 및 도 6을 참조하여 자세하게 설명될 것이다.
채널(VC0)을 통해 데이터가 전송되는 속도보다 채널(VC1) 또는 채널(VC2)을 통해 데이터가 전송되는 속도가 빠를 수 있다. 또한, 채널(VC1)을 통해 데이터가 전송되는 속도는 채널(VC2)을 통해 데이터가 전송되는 속도보다 빠르거나 동일 할 수 있다. 이하 설명들에서, 채널(VC1)을 통해 데이터가 전송되는 속도는 채널(VC2)을 통해 데이터가 전송되는 속도보다 빠른 것으로 가정한다.
호스트(110a)는 일반적으로 채널(VC0)을 통해 데이터를 전송할 수 있다. 따라서, 채널(VC0)을 통해 전송되는 데이터의 양은 채널(VC1) 또는 채널(VC2)을 통해 전송되는 데이터의 양보다 많을 수 있다. 채널(VC0)을 통해 전송되는 데이터의 양이 증가하는 경우, 채널(VC0)을 통해 전송되는 데이터간에 충돌이 발생하거나 채널(VC0)을 통해 데이터가 전송되는 속도가 느려질 수 있다. 따라서, 스토리지 장치(300a)는 데이터를 호스트(110a)로 빨리 전달하고자 하는 경우 채널(VC1) 또는 채널(VC2)을 통해 데이터를 출력할 수 있다.
호스트들(110, 110a)은 데이터(s10, s40)를 전송하기 위해 채널(VC0)을 선택할 수 있다. 호스트들(110, 110a)은 선택된 채널(VC0)을 통해 데이터(s10, s40)를 전송할 수 있다. 일반적으로, 스토리지 장치(300)는 호스트(110)로부터 선택된 채널(VC0)을 통해 데이터(s11)를 출력할 수 있다.
반면, 스토리지 장치(300a)는 메모리(350a)가 동작을 수행하는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우, 채널들(VC1, VC2)중 하나의 채널을 선택할 수 있다. 스토리지 장치(300a)는 선택된 채널을 통해 데이터(s41)를 출력할 수 있다. 즉, 스토리지 장치(300a)는 데이터(s41)를 채널(VC1) 또는 채널(VC2)을 통해 출력함으로써, 길어진 지연 시간 및 길어진 동작 시간을 보상할 수 있다. 이와 관련하여 도 5를 참조하여 자세하게 설명될 것이다.
호스트(110a)는 채널(VC2)을 통해 신호(s41)를 수신할 수 있다. 호스트(110a)는 채널들(VC1, VC2)과 관련된 데이터를 저장할 수 있다. 저장된 데이터는 채널(VC1) 또는 채널(VC2)로 수신되는 신호는 지연된 신호라는 것을 나타낼 수 있다. 호스트(110a)는 저장된 데이터에 기초하여 신호(s41)를 지연된 신호로 판단할 수 있다.
도 5는 도 4의 전자 시스템의 동작을 설명하기 위한 흐름도이다. 본 발명의 이해를 돕기 위해 도 4가 함께 참조된다.
도 5를 참조하여 메모리 컨트롤러(310a)가 메모리(350a)의 동작 상태를 모니터링 하는 방법이 설명된다. 또한, 도 5를 참조하여 메모리 컨트롤러(310a)가 메모리(350a)의 동작 상태, 지연 간격 및 동작 간격에 따라 채널들(VC1, VC2) 중 하나를 선택하는 방법이 설명된다.
S310 동작에서, 호스트(110a)는 신호(s40)를 메모리 컨트롤러(310a)로 출력할 수 있다. 호스트(110a)는 신호(s40)를 채널(VC0)을 통해 포트(210a)로 출력할 수 있다. 신호(s40)는 메모리(350a)가 제 2 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. 포트(210a)는 신호(s40)를 수신할 수 있다.
S315 동작에서, 포트(210a)는 수신된 신호(s40)를 채널(VC0)을 통해 포트(250a)로 출력할 수 있다. 포트(250a)는 신호(s40)를 수신할 수 있다.
S320 동작에서, 포트(250a)는 수신된 신호(s40)를 채널(VC0)을 통해 메모리 컨트롤러(310a)로 출력할 수 있다. 메모리 컨트롤러(310a)는 신호(s40)를 수신할 수 있다.
S325 동작에서, 메모리(350a)는 신호(m1)를 메모리 컨트롤러(310a)로 출력할 수 있다. 신호(m1)는 메모리(350a)가 제 1 동작을 시작한다는 정보를 포함할 수 있다. 메모리 컨트롤러(310a)는 신호(m1)를 수신할 수 있다. 메모리 컨트롤러(310a)는 신호(m1)에 기초하여 제 1 동작을 시작하는 메모리(350a)의 동작 상태를 모니터링 할 수 있다.
S330 동작에서, 메모리(350a)는 제 1 동작을 수행할 수 있다.
메모리(350a)가 제 1 동작을 수행하는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우, S335 동작에서, 메모리 컨트롤러(310a)는 신호(m1)에 기초하여 메모리(350a)가 제 1 동작을 완료할 때까지 대기할 수 있다.
메모리(350a)가 제 1 동작을 수행하는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우, 메모리 컨트롤러(310a)는 신호(m1)에 기초하여 신호(s41)를 채널들(VC1, VC2) 중 하나의 채널을 통해 출력할 수 있다. 메모리 컨트롤러(310a)는 메모리(350a)가 동작하지 않는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우 신호(s41)를 채널(VC0)을 통해 출력할 수 있다.
메모리 컨트롤러(310a)는 신호(m1)에 기초하여 채널들(VC1, VC2) 중 하나의 채널을 선택할 수 있다. 신호(m1)는 메모리(350a)가 시작하는 제 1 동작의 종류에 대한 정보를 포함할 수 있다. 메모리 컨트롤러(310a)는 제 1 동작의 종류에 기초하여 채널(VC1) 또는 채널(VC2)을 선택할 수 있다. 예로서, 메모리 컨트롤러(310a)는 제 1 동작이 소거 동작인 경우 채널(VC1)을 선택하고, 제 1 동작이 읽기 동작인 경우 채널(VC2)을 선택할 수 있다. 소거 동작은 읽기 동작보다 수행하는데 더 많은 시간이 소요될 수 있다. 메모리 컨트롤러(310a)는 제 1 동작이 소거 동작인 경우 데이터를 좀 더 빠르게 전송하기 위해 채널(VC2) 대신 채널(VC1)을 선택할 수 있다.
S340 동작에서, 메모리(350a)는 제 1 동작을 완료할 수 있다. 메모리(350a)는 신호(m2)를 메모리 컨트롤러(310a)로 출력할 수 있다. 메모리 컨트롤러(310a)는 신호(m2)를 수신할 수 있다. 신호(m2)는 메모리(350a)가 제 1 동작을 완료하였다는 정보를 포함할 수 있다. 메모리 컨트롤러(310a)는 신호(m2)에 기초하여 제 1 동작을 완료한 메모리(350a)의 동작 상태를 모니터링 할 수 있다.
S345 동작에서, 메모리 컨트롤러(310a)는 신호(s40)에 기초하여 신호(s42)를 메모리(350a)로 출력할 수 있다. 신호(s42)는 메모리(350a)로 제 2 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. 메모리(350a)는 신호(s42)를 수신할 수 있다.
메모리 컨트롤러(310a)는 신호들(s40, s42)에 기초하여 지연 간격(r2)을 카운팅 할 수 있다. 메모리 컨트롤러(310a)는 기준 지연 간격에 대한 정보를 포함할 수 있다. 기준 지연 간격은 도 2를 참조하여 설명된 기준 지연 간격(r0)일 수 있다. 메모리 컨트롤러(310a)는 기준 지연 간격과 지연 간격(r2)을 비교할 수 있다. 메모리 컨트롤러(310a)는 지연 간격(r2)이 기준 지연 간격보다 큰 경우, 신호(s41)를 채널들(VC1, VC2) 중 하나의 채널을 통해 출력할 수 있다. 메모리 컨트롤러(310a)는 지연 간격(r2)이 기준 지연 간격 이하(또는, 미만)인 경우 신호(s41)를 채널(VC0)을 통해 출력할 수 있다.
메모리 컨트롤러(310a)는 제 1 기준 지연 간격 및 제 2 기준 지연 간격에 대한 정보를 포함할 수 있다. 제 1 기준 지연 간격은 제 2 기준 지연 간격보다 클 수 있다. 제 2 기준 지연 간격은 도 2를 참조하여 설명된 기준 지연 간격(r0)일 수 있다. 메모리 컨트롤러(310a)는 지연 간격(r2), 제 1 기준 지연 간격 및 제 2 기준 지연 간격에 기초하여 채널들(VC1, VC2) 중 하나의 채널을 선택할 수 있다. 메모리 컨트롤러(310a)는 지연 간격(r2)이 제 1 기준 지연 간격보다 큰 경우 채널(VC1)을 선택할 수 있다. 메모리 컨트롤러(310a)는 지연 간격(r2)이 제 1 기준 지연 간격보다 작고, 제 2 기준 지연 간격보다 큰 경우 채널(VC2)을 선택할 수 있다. 메모리 컨트롤러(310a)는 지연 간격(r2)이 제 1 기준 지연 간격보다 큰 경우 데이터를 좀 더 빠르게 전송하기 위해 채널(VC2) 대신 채널(VC1)을 선택할 수 있다.
S350 동작에서, 메모리(350a)는 신호(s42)에 기초하여 제 2 동작을 수행할 수 있다.
S355 동작에서, 메모리(350a)는 제 2 동작이 완료되는 경우 신호(s43)를 메모리 컨트롤러(310a)로 출력할 수 있다. 메모리 컨트롤러(310a)는 신호(s43)를 수신할 수 있다. 신호(s43)는 메모리(350a)가 제 2 동작을 완료하였다는 정보 및/또는 관련 데이터를 포함할 수 있다.
메모리 컨트롤러(310a)는 신호들(s40, s43)에 기초하여 동작 간격(a2)을 카운팅 할 수 있다. 메모리 컨트롤러(310a)는 기준 동작 간격에 대한 정보를 포함할 수 있다. 기준 동작 간격은 도 2를 참조하여 설명된 동작 간격(a0)일 수 있다. 메모리 컨트롤러(310a)는 기준 동작 간격과 동작 간격(a2)을 비교할 수 있다. 메모리 컨트롤러(310a)는 동작 간격(a2)이 기준 동작 간격보다 큰 경우, 신호(s41)를 채널들(VC1, VC2) 중 하나의 채널을 통해 출력할 수 있다. 메모리 컨트롤러(310a)는 동작 간격(a2)이 기준 동작 간격 이하(또는, 미만)인 경우 신호(s41)를 채널(VC0)을 통해 출력할 수 있다.
메모리 컨트롤러(310a)는 제 1 기준 동작 간격 및 제 2 기준 동작 간격에 대한 정보를 포함할 수 있다. 제 1 기준 동작 간격은 제 2 기준 동작 간격보다 클 수 있다. 제 2 기준 동작 간격은 도 2를 참조하여 설명된 기준 동작 간격(a0)일 수 있다. 메모리 컨트롤러(310a)는 동작 간격(a2), 제 1 기준 동작 간격 및 제 2 기준 동작 간격에 기초하여 채널들(VC1, VC2) 중 하나의 채널을 선택할 수 있다. 메모리 컨트롤러(310a)는 동작 간격(a2)이 제 1 기준 동작 간격보다 큰 경우 채널(VC1)을 선택할 수 있다. 메모리 컨트롤러(310a)는 동작 간격(a2)이 제 1 기준 동작 간격보다 작고, 제 2 기준 동작 간격보다 큰 경우 채널(VC2)을 선택할 수 있다. 메모리 컨트롤러(310a)는 동작 간격(a2)이 제 1 기준 동작 간격보다 큰 경우 데이터를 좀 더 빠르게 전송하기 위해 채널(VC2) 대신 채널(VC1)을 선택할 수 있다.
S360 동작에서, 메모리 컨트롤러(310a)는 신호(s43)에 기초하여 신호(s41)를 포트(250a)로 출력할 수 있다. 이하, 메모리 컨트롤러(310a)는 S325 내지 S355 동작을 통해 채널(VC2)을 선택한 것으로 가정된다. 메모리 컨트롤러(310a)는 신호(s41)를 채널(VC2)을 통해 포트(250a)로 출력할 수 있다. 포트(250a)는 신호(s41)를 수신할 수 있다.
S365 동작에서, 포트(250a)는 수신된 신호(s41)를 채널(VC2)을 통해 포트(210a)로 출력할 수 있다. 포트(210a)는 신호(s41)를 수신할 수 있다.
S370 동작에서, 포트(210a)는 수신된 신호(s41)를 채널(VC2)을 통해 호스트(110a)로 출력할 수 있다. 호스트(110a)는 신호(s41)를 채널(VC2)를 통해 수신할 수 있다.
따라서, 스토리지 장치(300a)는 데이터(s41)를 채널(VC1) 또는 채널(VC2)을 통해 출력함으로써, 길어진 지연 시간 및 길어진 동작 시간을 보상할 수 있다. 구체적으로, 도 3을 참조하여 설명된 것처럼, 신호(s19)는 동작 간격의 차(a1-a0)만큼 신호(s15)보다 늦게 메모리 컨트롤러(310)로부터 출력될 수 있다. 따라서, 신호(s19)는 동작 간격의 차(a1-a0)만큼 신호(s15)보다 늦게 호스트(110)로 수신될 수 있다.
도 5를 참조하여 설명된 것처럼, 신호(s41)는 동작 간격의 차(a2-a0)만큼 신호(s15)보다 늦게 메모리 컨트롤러(310a)로부터 출력될 수 있다. 반면, 신호(s19)와 달리, 신호(s41)가 호스트(110a)로 수신된 시각과 신호(s15)가 호스트(110)로 수신된 시각 사이의 간격은 동작 간격의 차(a2-a0)보다 작을 수 있다.도 6은 도 4의 전자 시스템의 동작을 설명하기 위한 흐름도이다. 본 발명의 이해를 돕기 위해 도 4 및 도 5가 함께 참조된다.
도 6에 도시된 동작들(S410~S420, S440~S475)은 도 5에 도시된 동작들(S310~S320, S335~S370)에 대응할 수 있다. 도 6에 도시된 메모리(351a)는 도 4 및 도 5에 도시된 메모리(350a)와 유사한 동작들을 제공할 수 있다. 다만, 메모리(351a)는 메모리(350a)와 달리 메모리 컨트롤러(310a)로부터 신호(s44)를 수신한 이후에, 메모리(351a)의 동작 상태에 대한 정보를 포함하는 신호(s45)를 출력할 수 있다. 아래에서, 도 6에 도시된 흐름도는 도 5에 도시된 흐름도와의 차이점 위주로 설명되고, 중복되는 설명은 생략된다.
S425 동작에서, 메모리(351a)는 제 1 동작을 수행할 수 있다.
메모리(351a)가 제 1 동작을 수행하는 도중에, S420 동작에서, 메모리 컨트롤러(310a)가 채널(VC0)을 통해 신호(s40)를 수신할 수 있다.
S430 동작에서, 메모리 컨트롤러(310a)는 신호(s40)에 기초하여 신호(s44)를 메모리(351a)로 출력할 수 있다. 신호(s44)는 메모리(351a)가 제 2 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. 메모리(351a)는 제 1 동작을 수행하는 도중에 신호(s45)를 수신할 수 있다.
메모리(351a)가 제 1 동작을 수행하는 경우, S435 동작에서, 메모리(351a)는 신호(s45)를 메모리 컨트롤러(310a)로 출력할 수 있다. 신호(s45)는 메모리(351a)가 제 1 동작을 수행 중이라는 정보를 포함할 수 있다. 메모리 컨트롤러(310a)는 신호(s45)를 수신할 수 있다. 메모리 컨트롤러(310a)는 신호(s45)에 기초하여 제 1 동작을 수행하는 메모리(351a)의 동작 상태를 모니터링 할 수 있다. S440 동작에서, 메모리 컨트롤러(310a)는 신호(s45)에 기초하여 메모리(351a)가 제 1 동작을 완료할 때까지 대기할 수 있다.
S460 동작에서, 메모리 컨트롤러(310a)는 채널들(VC1, VC2) 중 하나의 채널을 통해 신호(s41)를 출력할 수 있다. 예로서, 메모리 컨트롤러(310a)는 신호(s45)에 기초하여 메모리(351a)의 동작 상태를 모니터링 할 수 있다. 메모리 컨트롤러(310a)는 신호(s40)가 수신된 시점에서의 메모리(351a)의 동작 상태에 따라 채널들(VC1, VC2) 중 하나의 채널을 선택할 수 있다.
다른 예로서, 메모리 컨트롤러(310a)는 신호들(s40, s47)에 기초하여 지연 간격(r3)을 카운팅 할 수 있다. 메모리 컨트롤러(310a)는 지연 간격(r3)과 기준 지연 간격을 비교하여 채널들(VC1, VC2) 중 하나의 채널을 선택할 수 있다. 또 다른 예로서, 메모리 컨트롤러(310a)는 신호들(s40, s48)에 기초하여 동작 간격(a3)을 카운팅 할 수 있다. 메모리 컨트롤러(310a)는 동작 간격(a3)과 기준 동작 간격을 비교하여 채널들(VC1, VC2) 중 하나의 채널을 선택할 수 있다.
도 7은 도 4의 전자 시스템의 동작을 설명하기 위한 흐름도이다. 본 발명의 이해를 돕기 위해 도 5가 함께 참조된다.
S510 동작에서, 호스트(110a)는 채널(VC0)를 통해 신호(s40)를 메모리 컨트롤러(310a)로 출력할 수 있다. 메모리 컨트롤러(310a)는 채널(VC0)를 통해 신호(s40)를 수신할 수 있다. 신호(s40)는 메모리(350a)가 제 2 동작을 수행하도록 하기 위한 커맨드 및/또는 데이터를 포함할 수 있다. S510 동작은 도 5에 도시된 S310 동작 내지 S320 동작에 대응할 수 있다.
S515 동작에서, 메모리 컨트롤러(310a)는 메모리(350a)의 동작 상태를 모니터링 할 수 있다. S515 동작은 도 5에 도시된 S325 동작 또는 도 6에 도시된 S435 동작에 대응할 수 있다. 메모리 컨트롤러(310a)가 메모리(350a)의 동작 상태를 모니터링하는 방법은 도 5 및 도 6을 참조하여 설명되었으므로 이하 생략된다.
메모리(350a)가 제 1 동작을 수행하는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우, S520 동작에서, 메모리 컨트롤러(310a)는 메모리(350a)가 제 1 동작을 완료할 때까지 대기할 수 있다. S510 동작은 도 5에 도시된 S335 동작 또는 도 6에 도시된 S440 동작에 대응할 수 있다.
S525 동작에서, 메모리(350a)는 제 1 동작을 완료할 수 있다. 도 5를 참조하여 설명된 것처럼, 메모리(350a)는 제 1 동작을 완료하는 경우, 신호(m2)를 메모리 컨트롤러(310a)로 출력할 수 있다. 신호(m2)는 메모리(350a)가 제 1 동작을 완료하였다는 정보를 포함할 수 있다. 메모리 컨트롤러(310a)는 신호(m2)에 기초하여 제 1 동작을 완료한 메모리(350a)의 동작 상태를 모니터링 할 수 있다. S525 동작은 도 5에 도시된 S340 동작 또는 도 6에 도시된 S445 동작에 대응할 수 있다.
메모리(350a)가 제 1 동작을 완료한 경우, S530 동작에서, 메모리 컨트롤러(310a)는 메모리(350a)가 제 2 동작을 수행하도록 메모리(350a)를 제어할 수 있다. 메모리(350a)는 메모리 컨트롤러(310a)의 제어에 따라 제 2 동작을 수행할 수 있다. S525 동작은 도 5에 도시된 S345 동작 내지 S350 동작에 대응할 수 있다.
S535 동작에서, 메모리(350a)는 제 2 동작을 완료할 수 있다. 도 5를 참조하여 설명된 것처럼, 메모리(350a)는 제 2 동작을 완료하는 경우, 신호(s43)를 메모리 컨트롤러(310a)로 출력할 수 있다. 신호(s43)는 메모리(350a)가 제 2 동작을 완료하였다는 정보를 포함할 수 있다. 메모리 컨트롤러(310a)는 신호들(s40, s43)에 기초하여 동작 간격(a2)을 카운팅 할 수 있다. S535 동작은 도 5에 도시된 S355 동작 또는 도 6에 도시된 S460 동작에 대응할 수 있다.
S540 동작에서, 메모리 컨트롤러(310a)는 제 1 기준 동작 간격과 동작 간격(a2)을 비교할 수 있다.
동작 간격(a2)이 제 1 기준 동작 간격보다 큰 경우, S545 동작에서, 메모리 컨트롤러(310a)는 채널들(VC1, VC2) 중 채널(VC1)을 선택할 수 있다. 메모리 컨트롤러(310a)는 신호(s41)를 채널(VC1)을 통해 출력할 수 있다.
동작 간격(a2)이 제 1 기준 동작 간격보다는 작은 경우, S555 동작에서, 메모리 컨트롤러(310a)는 채널들(VC1, VC2) 중 채널(VC2)을 선택할 수 있다. 메모리 컨트롤러(310a)는 신호(s41)를 채널(VC2)을 통해 출력할 수 있다. S540 동작 내지 S550 동작은 도 5에 도시된 S360 동작에 대응할 수 있다.
S540 동작 내지 S550 동작을 참조하여 메모리 컨트롤러(310a)가 동작 간격(a2)에 기초하여 채널들(VC1, VC2) 중 하나의 채널을 선택하는 방법이 설명되었지만, 본 발명은 이에 한정되지 않는다. 도 5 및 도 6을 참조하여 설명된 것처럼, 메모리 컨트롤러(310a)는 메모리(350a)의 동작 상태, 지연 간격(r2), 동작 간격(a2) 중 하나 이상에 기초하여 채널들(VC1, VC2) 중 하나의 채널을 선택하도록 구성될 수 있다.
메모리(350a)가 동작하지 않는 도중에 메모리 컨트롤러(310a)로 신호(s40)가 수신되는 경우, S560 동작에서, 메모리 컨트롤러(310a)는 메모리(350a)가 제 2 동작을 수행하도록 메모리(350a)를 제어할 수 있다. 메모리(350a)는 메모리 컨트롤러(310a)의 제어에 따라 제 2 동작을 수행할 수 있다. S560 동작은 S530 동작과 실질적으로 동일할 수 있다.
S565 동작에서, 메모리(350a)는 제 2 동작을 완료할 수 있다. S565 동작은 S535 동작과 실질적으로 동일할 수 있다. 메모리(350a)는 제 2 동작을 완료하는 경우, 제 2 동작을 완료하였다는 정보를 포함하는 신호를 메모리 컨트롤러(310a)로 출력할 수 있다.
S570 동작에서, 메모리 컨트롤러(310a)는 메모리(350a)로부터 수신된 신호에 기초하여 신호(s41)를 채널(VC0)을 통해 출력할 수 있다.
S575 동작에서, 신호(s41)는 호스트(110a)로 전송될 수 있다. 호스트(110a)는 메모리 컨트롤러(310a)로부터 출력된 신호(s41)를 수신할 수 있다.
도 8은 본 발명의 실시 예에 따른 전자 시스템을 보여주는 블록도이다. 도 8은 메모리(350b)가 동작을 수행하는 도중에 메모리 컨트롤러(310b)가 호스트(110b)로부터 신호(s50)를 수신한 경우에 관하여 도시한 것이다.
도 8에 도시된 전자 시스템(1000b)의 구성 요소들(110b, 120b, 130b, 200b, 210b, 250b, 300b, 310b, 350b)은 도 4에 도시된 전자 시스템(1000a)의 구성 요소들(110a, 120a, 130a, 200a, 210a, 250a, 300a, 310a, 350a)과 대응하는 동작들을 제공할 수 있다. 다만, 포트(210b)는 포트(210a)와 달리 채널 컨트롤러(215b)를 포함할 수 있다. 아래에서, 전자 시스템(1000b)은 전자 시스템(1000a)과의 차이점 위주로 설명되고, 중복되는 설명은 생략된다.
호스트(110b)는 채널(VC0)을 통해 신호(s50)를 메모리 컨트롤러(310b)로 출력할 수 있다. 메모리 컨트롤러(310b)는 채널(VC0)을 통해 신호(s50)를 수신할 수 있다. 메모리 컨트롤러(310b)는 신호(s50)에 응답하여 신호(s51)를 출력할 수 있다. 메모리 컨트롤러(310b)는 신호(s51)를 채널(VC2)을 통해 포트(250b)로 출력할 수 있다.
메모리 컨트롤러(310b)는 신호(s51)를 채널(VC2)을 통해 출력하는 경우 채널(VC0)에 대한 데이터를 신호(s51)에 포함시킬 수 있다. 채널(VC0)에 대한 데이터는 도 9를 참조하여 자세하게 설명될 것이다.
포트(250b)는 신호(s51)를 채널(VC2)을 통해 수신할 수 있다. 포트(250b)는 신호(s51)를 채널(VC2)을 통해 출력할 수 있다.
포트(250b)는 채널 컨트롤러(215b)를 포함할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 채널(VC2)을 통해 수신할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 분석할 수 있다. 신호(s51)는 채널(VC0)에 대한 데이터를 포함할 수 있다. 채널 컨트롤러(215b)는 채널(VC0)에 대한 데이터에 기초하여 신호(s51)가 전송되는 채널을 채널(VC2)로부터 채널(VC0)로 변경할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 채널(VC0)을 통해 출력할 수 있다.
채널 컨트롤러(215b)가 신호(s51)를 채널(VC0)을 통해 출력함으로써, 호스트(110b)는 신호(s51)를 채널(VC0)을 통해 수신할 수 있다. 따라서, 호스트(110b)는 호스트(110a)와 달리 채널들(VC1, VC2)과 관련된 데이터를 저장하지 않을 수 있다.
도 9는 채널에 대한 데이터를 설명하기 위한 개념도이다.
메모리 컨트롤러(310b)는 신호(s51)를 채널(VC2)을 통해 출력하는 경우 채널(VC0)에 대한 데이터를 신호(s51)에 포함시킬 수 있다.
채널들(VC0~VC2)에 대한 데이터는 신호에 포함되는 필드들 중 TC 필드(Traffic Class Field), 예약 필드(Reserved Field) 등에 저장될 수 있으나, 본 발명은 이에 한정되지 않는다. 이하, 채널들(VC0~VC2)에 대한 데이터는 채널 데이터로 표현된다.
채널 데이터는 각각 채널들(VC0~VC2)과 매핑될 수 있다. 예로서, 채널 데이터(TC0~TC4)는 채널(VC0)과 매핑될 수 있다. 채널 데이터(TC5~TC6)는 채널(VC1)과 매핑될 수 있다. 채널 데이터(TC7)는 채널(VC2)과 매핑될 수 있다. 호스트(110b), 메모리 컨트롤러(310b), 포트들(250a, 250b), 및 채널 컨트롤러(215b)는 채널 데이터 및 채널들(VC0~VC2) 간의 매칭 관계에 대한 매핑 정보를 저장할 수 있다.
호스트(110b)는 신호(s50)를 채널(VC0)을 통해 출력하는 경우, 채널(VC0)에 대응하는 채널 데이터(TC0~TC4 중 하나)를 신호(s50)에 포함시킬 수 있다. 이하, 신호(s50)는 채널 데이터(TC4)를 포함하는 것으로 가정된다. 채널 데이터(TC4)는 신호(s50)가 채널(VC0)을 통해 전송됨을 나타낼 수 있다.
도 4에 도시된 메모리 컨트롤러(310a)는 신호(s41)를 채널(VC2)을 통해 출력하는 경우, 신호(s41)에 채널 데이터(TC7)를 포함시킬 수 있다. 채널 데이터(TC7)는 신호(s41)가 채널(VC2)을 통해 전송됨을 나타낼 수 있다.
반면, 메모리 컨트롤러(310b)는 신호(s51)를 채널(VC2)을 통해 출력하는 경우, 신호(s51)에 채널 데이터(TC4, TC7)를 포함시킬 수 있다. 채널 데이터(TC7)는 신호(s51)가 채널(VC2)을 통해 전송됨을 나타낼 수 있다. 채널 데이터(TC4)는 신호(s51)에 대응하는 신호(s50)가 채널(VC0)을 통해 호스트(110b)로부터 출력됨을 나타낼 수 있다.
포트(215b)는 채널(VC2)을 통해 신호(s51)를 수신할 수 있다. 포트(215b)는 신호(s51)에 포함된 채널 데이터(TC4)를 분석할 수 있다. 포트(215b)는 채널 데이터(TC4) 및 매핑 정보에 기초하여 신호(s51)를 채널(VC0)을 통해 출력할 수 있다. 다만, 도 9를 참조하여 설명된 채널에 대한 데이터는 본 발명의 이해를 돕기 위한 실시 예에 해당되고, 채널에 대한 데이터는 채널 데이터에 한정되거나, TC 필드 또는 예약 필드에 포함되는 것으로 한정되지 않는다.
도 10은 도 8에 도시된 채널 컨트롤러를 보여주는 블록도이다.
도 8 및 도 9를 참조하여 설명된 것처럼, 채널 컨트롤러(215b)는 신호(s51)를 채널(VC2)을 통해 수신할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 분석할 수 있다. 채널 컨트롤러(215b)는 채널 데이터(TC4) 및 매핑 정보에 기초하여 신호(s51)가 전송되는 채널을 채널(VC2)로부터 채널(VC0)로 변경할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 채널(VC0)을 통해 출력할 수 있다. 이하, 중복되는 설명은 생략된다.
도 11은 도 8의 전자 시스템의 동작을 설명하기 위한 흐름도이다. 본 발명의 이해를 돕기 위해 도 8이 함께 참조된다.
도 11에 도시된 동작들(S610~S665)은 도 5에 도시된 동작들(S310~S365)에 대응할 수 있다. 도 11에 도시된 지연 간격(r4) 및 동작 간격(a4)는 도 5에 도시된 지연 간격(r2) 및 동작 간격(a2)에 대응할 수 있다. 아래에서, 도 6에 도시된 흐름도는 동작들(S670, S675) 위주로 설명되고, 중복되는 설명은 생략된다.
S665 동작에서, 채널 컨트롤러(215b)는 신호(s51)를 채널(VC2)을 통해 수신할 수 있다.
S670 동작에서, 채널 컨트롤러(215b)는 신호(s51)를 분석할 수 있다. 채널 컨트롤러(215b)는 채널 데이터(TC4) 및 매핑 정보에 기초하여 신호(s51)가 전송되는 채널을 채널(VC2)로부터 채널(VC0)로 변경할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 채널(VC0)을 통해 출력할 수 있다.
S675 동작에서, 호스트(110b)는 신호(s51)를 채널(VC0)을 통해 수신할 수 있다.
도 12는 도 8의 전자 시스템의 동작을 설명하기 위한 흐름도이다. 본 발명의 이해를 돕기 위해 도 8이 함께 참조된다.
도 12에 도시된 동작들(S710~S770)은 도 6에 도시된 동작들(S410~S470)에 대응할 수 있다. 도 11에 도시된 지연 간격(r5) 및 동작 간격(a5)는 도 6에 도시된 지연 간격(r3) 및 동작 간격(a3)에 대응할 수 있다. 도 12에 도시된 메모리(351b)는 도 6에 도시된 메모리(351a)와 유사한 동작들을 제공할 수 있다. 아래에서, 도 12에 도시된 흐름도는 동작(S775) 위주로 설명되고, 중복되는 설명은 생략된다.
S770 동작에서, 채널 컨트롤러(215b)는 신호(s51)를 채널(VC2)을 통해 수신할 수 있다.
S775 동작에서, 채널 컨트롤러(215b)는 신호(s51)를 분석할 수 있다. 채널 컨트롤러(215b)는 채널 데이터(TC4) 및 매핑 정보에 기초하여 신호(s51)가 전송되는 채널을 채널(VC2)로부터 채널(VC0)로 변경할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 채널(VC0)을 통해 출력할 수 있다.
S780 동작에서, 호스트(110b)는 신호(s51)를 채널(VC0)을 통해 수신할 수 있다.
도 13은 도 8의 전자 시스템의 동작을 설명하기 위한 흐름도이다. 본 발명의 이해를 돕기 위해 도 8 및 도 9가 함께 참조된다.
도 13에 도시된 동작들(S810~S870)은 도 7에 도시된 동작들(S510~S570)에 대응할 수 있다. 아래에서, 도 13에 도시된 흐름도는 동작들(S875 내지 S880) 위주로 설명되고, 중복되는 설명은 생략된다.
S875 동작에서, 채널 컨트롤러(215b)는 신호(s51)를 채널(VC2)을 통해 수신할 수 있다. 채널 컨트롤러(215b)는 신호(s51)가 전송되는 채널을 채널(VC2) 또는 채널(VC1)로부터 채널(VC0)로 변경할 수 있다. 채널 컨트롤러(215b)는 신호(s51)를 채널(VC0)을 통해 출력할 수 있다.
S880 동작에서, 호스트(110b)는 신호(s51)를 채널(VC0)을 통해 수신할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.

Claims (10)

  1. 데이터를 저장하는 메모리; 및
    외부 장치로부터 제 1 채널을 통해 상기 메모리로 상기 데이터를 요청하기 위한 제 1 신호를 수신하고, 상기 제 1 신호에 기초하여 상기 메모리로부터 상기 데이터를 획득하고, 상기 제 1 신호가 수신된 시각과 상기 데이터가 획득된 시각 사이의 시간 간격이 제 1 기준 간격보다 큰 경우 상기 데이터가 상기 외부 장치로 전달되도록 상기 데이터를 상기 제 1 채널과 상이한 제 2 채널을 통해 출력하도록 구성되는 메모리 컨트롤러를 포함하고,
    상기 제 2 채널을 통해 데이터를 전송하는 제 1 속도는 상기 제 1 채널을 통해 데이터를 전송하는 제 2 속도보다 빠른 스토리지 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 시간 간격이 제 2 기준 간격보다 큰 경우 상기 데이터를 제 3 채널을 통해 출력하고, 상기 시간 간격이 상기 제 2 기준 간격보다 작고 상기 제 1 기준 간격보다 큰 경우 상기 제 2 채널을 통해 상기 데이터를 출력하도록 더 구성되고,
    상기 제 2 기준 간격은 상기 제 1 기준 간격보다 크고,
    상기 제 3 채널은 상기 제 1 채널 및 상기 제 2 채널과 상이한 스토리지 장치.
  4. 데이터를 저장하는 메모리; 및
    상기 메모리가 제 1 동작을 수행하는 동안 상기 메모리에서 수행될 제 2 동작을 지시하는 제 1 신호를 외부 장치로부터 제 1 채널을 통해 수신하는 경우, 상기 제 1 신호에 기초하는 제 2 신호가 상기 외부 장치로 전달되도록 상기 제 2 신호를 상기 제 1 채널과 상이한 제 2 채널을 통해 출력하도록 구성되는 메모리 컨트롤러를 포함하고,
    상기 제 2 채널을 통해 데이터를 전송하는 제 1 속도는 상기 제 1 채널을 통해 데이터를 전송하는 제 2 속도보다 빠른 스토리지 장치.
  5. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 상기 메모리가 동작하지 않는 도중에 상기 제 1 신호를 수신하는 경우 상기 제 2 신호가 상기 외부 장치로 전달되도록 상기 제 2 신호를 상기 제 1 채널을 통해 출력하도록 구성되는 스토리지 장치.
  6. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 1 신호에 기초하여 상기 메모리로 상기 제 2 동작을 지시하는 제 3 신호를 상기 메모리로 출력하고, 상기 제 3 신호에 기초하여 상기 메모리가 상기 제 2 동작을 완료한 경우, 상기 제 2 신호를 출력하도록 구성되는 스토리지 장치.
  7. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 1 신호에 기초하여 상기 메모리로 상기 제 2 동작을 지시하는 제 4 신호를 출력하고, 상기 메모리가 상기 제 2 동작을 완료하기 이전에 상기 제 4 신호에 기초하여 상기 제 2 신호를 출력하도록 구성되는 스토리지 장치.
  8. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 2 신호가 상기 제 2 채널을 통해 스위치 장치로 수신되고 상기 제 2 신호가 상기 제 1 채널을 통해 상기 스위치 장치로부터 출력되도록 상기 제 2 신호를 상기 스위치 장치로 출력하도록 구성되는 스토리지 장치.
  9. 제 8 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 2 신호가 상기 제 1 채널에 대한 채널 데이터에 기초하여 상기 스위치 장치로부터 상기 제 1 채널을 통해 상기 외부 장치로 출력되도록 상기 채널 데이터를 포함하여 상기 제 2 신호를 출력하도록 구성되는 스토리지 장치.
  10. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 상기 메모리로부터 상기 제 1 동작의 종류에 대한 데이터를 수신하고, 상기 제 1 동작의 상기 종류에 따라 상기 제 2 채널 및 상기 제 2 채널과 상이한 제 3 채널 중 하나의 채널을 선택하여 상기 제 2 신호를 상기 선택된 하나의 채널을 통해 출력하도록 더 구성되는 스토리지 장치.
KR1020180135850A 2018-11-07 2018-11-07 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법 KR102588143B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180135850A KR102588143B1 (ko) 2018-11-07 2018-11-07 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법
US16/414,181 US11086563B2 (en) 2018-11-07 2019-05-16 Storage device including a memory controller and a method of operating an electronic system including memory
CN201910846434.6A CN111158581B (zh) 2018-11-07 2019-09-06 包括存储器控制器的存储设备及电子系统的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180135850A KR102588143B1 (ko) 2018-11-07 2018-11-07 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법

Publications (2)

Publication Number Publication Date
KR20200053051A KR20200053051A (ko) 2020-05-18
KR102588143B1 true KR102588143B1 (ko) 2023-10-13

Family

ID=70457768

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180135850A KR102588143B1 (ko) 2018-11-07 2018-11-07 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법

Country Status (2)

Country Link
US (1) US11086563B2 (ko)
KR (1) KR102588143B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219171A1 (en) * 2010-03-05 2011-09-08 248 SolidState, Inc Virtual channel support in a nonvolatile memory controller

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2929991B2 (ja) * 1996-01-29 1999-08-03 日本電気株式会社 最適化クレジット制御方法
US6393506B1 (en) 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture
EP1661335B1 (en) * 2003-08-26 2013-10-16 Philips Intellectual Property & Standards GmbH Point-to-multipoint data transmission
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US20050254085A1 (en) 2004-05-12 2005-11-17 Koji Oshikiri Image forming system
US8006017B2 (en) 2004-12-21 2011-08-23 Intel Corporation Stream priority
US20090154426A1 (en) * 2005-08-09 2009-06-18 Freescale Semiconductor, Inc. Handover based on a quality of service metric obtained from a mac layer of a received signal
US7536489B2 (en) 2005-08-30 2009-05-19 Ricoh Company Limited Information processing system for determining payload size based on packet-to-payload size ratio
US20080212537A1 (en) * 2005-10-06 2008-09-04 Dror Bukai Data Packet Handover Control
US8392667B2 (en) 2008-12-12 2013-03-05 Nvidia Corporation Deadlock avoidance by marking CPU traffic as special
US8144582B2 (en) 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
DE102009023485A1 (de) * 2009-06-02 2010-12-09 T-Mobile International Ag Verfahren zur Übertragung von Echtzeit-Datenpaketen in konvergenten Netzen
KR20120097862A (ko) * 2011-02-25 2012-09-05 삼성전자주식회사 데이터 저장 시스템 및 그의 데이터 맵핑 방법
EP3097671B1 (en) 2015-02-18 2021-05-19 Intel Corporation Traffic class arbitration based on priority and bandwidth allocation
US9860841B2 (en) 2015-08-20 2018-01-02 Apple Inc. Communications fabric with split paths for control and data packets
US10025531B2 (en) 2015-09-10 2018-07-17 HoneycombData Inc. Reducing read command latency in storage devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219171A1 (en) * 2010-03-05 2011-09-08 248 SolidState, Inc Virtual channel support in a nonvolatile memory controller

Also Published As

Publication number Publication date
KR20200053051A (ko) 2020-05-18
US20200142632A1 (en) 2020-05-07
CN111158581A (zh) 2020-05-15
US11086563B2 (en) 2021-08-10

Similar Documents

Publication Publication Date Title
US9021217B2 (en) Communication apparatus, load distribution method, and recording medium
KR102430209B1 (ko) 저장 장치 및 저장 장치에 포함된 컨트롤러들
US11074011B2 (en) Solid state drive latency estimation interface for host performance tuning
US10346205B2 (en) Method of sharing a multi-queue capable resource based on weight
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
US20180004452A1 (en) Technologies for providing dynamically managed quality of service in a distributed storage system
US11036412B2 (en) Dynamically changing between latency-focused read operation and bandwidth-focused read operation
EP2625618B1 (en) Memory controllers, systems, and methods for applying page management policies based on stream transaction information
CN107562369B (zh) 存储器控制器、存储缓冲器芯片和存储系统
US20170004101A1 (en) Data copying method, direct memory access controller, and computer system
US10089266B2 (en) Power saving feature for storage subsystems
US10951741B2 (en) Computer device and method for reading or writing data by computer device
US20120311264A1 (en) Data management method, device, and data chip
WO2023103704A1 (zh) 数据处理方法、存储介质和处理器
JP6523707B2 (ja) ラップ読出しから連続読出しを行うメモリサブシステム
EP2979193B1 (en) Shared memory system
US20230062167A1 (en) Write request thresholding
US20160098212A1 (en) Information processor apparatus, memory control device, and control method
KR102588143B1 (ko) 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법
EP3287900B1 (en) Write request processing method and memory controller
CN111158581B (zh) 包括存储器控制器的存储设备及电子系统的操作方法
US10621115B2 (en) System and method for communication link management in a credit-based system
KR102260820B1 (ko) 대칭적 인터페이스 기반 인터럽트 신호 처리 장치 및 방법
US20170242821A1 (en) Acknowledgement-less canary-based completion protocol
CN117873931A (zh) 一种数据处理系统、方法及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right