KR20190088734A - 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 - Google Patents

메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20190088734A
KR20190088734A KR1020180007195A KR20180007195A KR20190088734A KR 20190088734 A KR20190088734 A KR 20190088734A KR 1020180007195 A KR1020180007195 A KR 1020180007195A KR 20180007195 A KR20180007195 A KR 20180007195A KR 20190088734 A KR20190088734 A KR 20190088734A
Authority
KR
South Korea
Prior art keywords
command
normal
time
suspend
control unit
Prior art date
Application number
KR1020180007195A
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 KR1020180007195A priority Critical patent/KR20190088734A/ko
Priority to US16/119,575 priority patent/US10705757B2/en
Priority to CN201811109225.5A priority patent/CN110059032B/zh
Publication of KR20190088734A publication Critical patent/KR20190088734A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/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

본 기술은 노말 커맨드들(normal commands) 및 서스펜드 커맨드(suspend command)의 실행 순서를 결정하는 커맨드 큐 제어부; 상기 커맨드 큐 제어부로부터 상기 노말 커맨드들을 전송받고, 상기 노말 커맨드들에 추가 동작 시간을 각각 부여하여 커맨드 및 시간 정보를 출력하는 커맨드 시간 제어부; 상기 커맨드 및 시간 정보를 상기 노말 커맨드들에 각각 매칭하여 저장하고, 종료 신호를 출력하는 커맨드 시간 테이블; 및 상기 커맨드 큐 제어부로부터 상기 노말 커맨드들 또는 상기 서스펜드 커맨드를 수신하고, 채널을 통해 상기 노말 커맨드들 또는 상기 서스펜드 커맨드를 메모리 장치로 전송하는 입출력 인터페이스를 포함하는 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템을 포함한다.

Description

메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템{Memory interface and memory controller having the same, and memory system having the same}
본 발명은 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 관한 것으로, 보다 구체적으로는 노말 커맨드(normal command) 및 서스펜드 커맨드(suspend command)를 관리하는 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 관한 것이다.
메모리 시스템(memory system)은 메모리 장치(memory device) 및 메모리 컨트롤러(memory controller)를 포함할 수 있다.
메모리 장치는 데이터를 저장하거나, 저장된 데이터를 출력할 수 있다. 예를 들면, 메모리 장치는 전원 공급이 차단되면 저장된 데이터가 소멸되는 휘발성 메모리 장치로 이루어지거나, 전원 공급이 차단되더라도 저장된 데이터가 유지되는 비휘발성 메모리 장치로 이루어질 수 있다.
메모리 컨트롤러는 호스트(host)와 메모리 장치 사이의 데이터 통신을 제어할 수 있다.
호스트는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 메모리 컨트롤러를 통해 메모리 장치와 통신할 수 있다. 호스트와 메모리 시스템 간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스들이 포함될 수 있다.
본 발명의 실시예는 노말 커맨드(normal command)에 동작 시간(operation time)을 설정함으로써, 추후에 서스펜드 커맨드(suspend command)를 실행(execute)해야 하는 경우 상기 동작 시간만큼 상기 노말 커맨드를 더 실행시킨 후 상기 서스펜드 커맨드를 실행하도록 커맨드를 관리하는 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 관한 것이다.
본 발명의 실시예에 따른 메모리 인터페이스는, 노말 커맨드들(normal commands) 및 서스펜드 커맨드(suspend command)의 실행 순서를 결정하는 커맨드 큐 제어부; 상기 커맨드 큐 제어부로부터 상기 노말 커맨드들을 전송받고, 상기 노말 커맨드들에 추가 동작 시간을 각각 부여하여 커맨드 및 시간 정보를 출력하는 커맨드 시간 제어부; 상기 커맨드 및 시간 정보를 상기 노말 커맨드들에 각각 매칭하여 저장하고, 종료 신호를 출력하는 커맨드 시간 테이블; 및 상기 커맨드 큐 제어부로부터 상기 노말 커맨드들 또는 상기 서스펜드 커맨드를 수신하고, 채널을 통해 상기 노말 커맨드들 또는 상기 서스펜드 커맨드를 메모리 장치로 전송하는 입출력 인터페이스를 포함한다.
본 발명의 실시예에 따른 메모리 컨트롤러는, 호스트(host)의 요청에 따라 노말 커맨드 또는 서스펜드 커맨드를 생성하는 중앙 처리 장치; 및 상기 노말 커맨드 또는 상기 서스펜드 커맨드를 메모리 장치로 전송하는 메모리 인터페이스를 포함하며, 상기 메모리 인터페이스는, 상기 노말 커맨드가 수신되면 상기 노말 커맨드에 추가 동작 시간을 부여한 후, 상기 노말 커맨드를 상기 메모리 장치에 전송하고, 상기 서스펜드 커맨드가 수신되면, 상기 추가 동작 시간 동안 상기 노말 커맨드를 더 실행시킨 후, 상기 서스펜드 커맨드를 상기 메모리 장치에 전송한다.
본 발명의 실시예에 따른 메모리 시스템은, 데이터가 저장되는 메모리 장치; 및 호스트의 요청에 따라 노말 커맨드 또는 서스펜드 커맨드를 생성하고, 상기 노말 커맨드 또는 상기 서스펜드 커맨드를 채널을 통해 상기 메모리 장치로 전송하는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는, 상기 노말 커맨드가 생성되면 상기 노말 커맨드에 추가 동작 시간을 부여한 후, 상기 노말 커맨드를 상기 메모리 장치로 전송하고, 상기 서스펜드 커맨드가 생성되면, 상기 추가 동작 시간만큼 상기 서스펜드 커맨드를 지연시킨 후에 상기 서스펜드 커맨드를 상기 메모리 장치로 전송한다.
본 기술은 서스펜드 커맨드를 실행해야 하는 경우, 이미 수행 중이던 노말 커맨드를 미리 설정된 동작 시간만큼 추가적으로 실행시킨 후에 서스펜드 커맨드를 실행시킴으로써, 서스펜드 커맨드로 인해 노말 커맨드의 실행이 계속 지연되는 현상을 방지할 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 메모리 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 메모리 인터페이스를 구체적으로 설명하기 위한 도면이다.
도 4는 도 3의 커맨드 큐 제어부를 구체적으로 설명하기 위한 도면이다.
도 5는 도 3의 커맨드 시간 제어부를 구체적으로 설명하기 위한 도면이다.
도 6 및 도 7은 도 3의 커맨드 시간 테이블의 실시예들을 설명하기 위한 도면들이다.
도 8은 본 발명의 실시예에 따라 노말 커맨드를 실행시키는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따라 서스펜드 커맨드를 실행시키는 방법을 설명하기 위한 도면이다.
도 10은 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 11은 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 12는 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 13은 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(Memory System; 1000)은 데이터가 저장되는 메모리 장치(Memory Device; 1100)와, 호스트(Host; 2000)의 제어에 따라 메모리 장치(1100)를 제어하는 메모리 컨트롤러(Memory Controller; 1200)를 포함할 수 있다.
호스트(2000)는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 메모리 시스템(1000)과 통신할 수 있다. 또한 호스트(2000)와 메모리 시스템(1000) 간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 인터페이스 프로토콜들이 더 포함될 수 있다.
메모리 컨트롤러(1200)는 메모리 시스템(1000)의 동작을 전반적으로 제어하며, 호스트(2000)와 메모리 장치(1100) 사이의 데이터 교환을 제어할 수 있다. 예를 들면, 메모리 컨트롤러(1200)는 호스트(2000)와 메모리 장치(1100) 사이에서 커맨드(command; CMD), 어드레스(address) 및 데이터(data)가 통신될 수 있도록 수신된 정보를 변환하고 및 변환된 정보를 저장 및 출력할 수 있다. 예를 들면, 메모리 컨트롤러(1200)는 프로그램, 리드 또는 소거 동작이 수행되도록 메모리 장치(1100)를 제어할 수 있다. 실시예에 따라, 메모리 장치(1100)는 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) 또는 플래시 메모리(FLASH Memory)를 포함할 수 있다.
메모리 컨트롤러(1200)는 일반적으로 실행되는 노말 커맨드(normal command)를 커맨드 큐에 따라 순차적으로 실행시킬 수 있다. 또한, 메모리 컨트롤러(1200)는 서스펜드 커맨드(suspend command)를 사용하여 노말 커맨드보다 우선 적으로 특정 동작이 수행되도록 메모리 장치(1100)를 제어할 수 있다. 본 실시예에 따른 메모리 컨트롤러(1200)는 노말 커맨드들 각각에 추가 동작 시간을 부여하고, 서스펜드 커맨드를 실행할 때 노말 커맨드들에 대응되는 동작이 추가 동작 시간 동안 더 수행되도록 커맨드를 제어할 수 있다.
도 2는 도 1의 메모리 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 2를 참조하면, 메모리 컨트롤러(1200)는 호스트(2000)와 메모리 장치(1100) 사이의 통신을 제어하기 위하여 버퍼 메모리(BUFFER MEMORY; 1210), 중앙 처리 장치(central processing unit; CPU; 1220), 내부 메모리(INTERNAL MEMORY; 1230), 호스트 인터페이스(HOST INTERFACE; 1240), 에러 정정 회로(Error Correction Circuit; ECC; 1250) 및 모리 인터페이스(MEMORY INTERFACE; 1260)를 포함할 수 있다. 버퍼 메모리(1210), 중앙 처리 장치(1220), 내부 메모리(1230), 호스트 인터페이스(1240), 에러 정정 회로(1250) 및 메모리 인터페이스(1260)는 버스(bus; 1270)를 통해 서로 통신할 수 있으며, 메모리 인터페이스(1260)는 채널(channel; 1280)을 통해 메모리 장치(1100)와 통신할 수 있다.
버퍼 메모리(1210)는 메모리 컨트롤러(1200)와 메모리 장치(1100) 사이에서 송수신되는 데이터를 임시로 저장할 수 있다. 예를 들면, 프로그램 동작 시, 프로그램될 데이터는 메모리 장치(1100)에 전송되기 이전에 버퍼 메모리(1210)에 임시로 저장될 수 있으며, 이때 저장된 데이터를 메모리 장치(1100)에서 프로그램 동작이 페일된 경우 재 사용될 수 있다. 또한, 리드 동작 시, 메모리 장치(1100)로부터 리드된 데이터를 버퍼 메모리(1210)에 임시로 저장될 수 있다. 예를 들면, 리드 동작 시 버퍼 메모리(1210)에 정해진 용량의 리드된 데이터가 임시로 저장되면, 리드된 데이터는 호스트 인터페이스(1240)를 통해 호스트(2000)로 출력될 수 있다.
중앙 처리 장치(1220)는 메모리 장치(1100)를 제어하기 위한 각종 연산을 수행하거나 펌웨어(firmware)를 수행할 수 있다. 또한, 중앙 처리 장치(1220)는 호스트(2000)로부터 수신된 노말 요청들(normal requests)에 응답하여 노말 커맨드(normal command)를 생성하거나, 서스펜드 요청(suspend request)에 응답하여 서스펜드 커맨드(suspend command)를 생성할 수 있다.
내부 메모리(1230)는 메모리 컨트롤러(1200)의 동작에 필요한 다양한 시스템 정보들을 저장할 수 있는 저장 장치(storage device)로 사용될 수 있다. 예를 들면, 내부 메모리(1230)는 SRAM으로 구현될 수 있다. 내부 메모리(1230)는 메모리 시스템(1000)의 동작에 필요한 다양한 시스템 정보가 저장된 테이블을 포함할 수 있다.
호스트 인터페이스(1240)는 중앙 처리 장치(1220)의 제어에 따라 메모리 시스템(1000)과 접속되는 외부의 호스트(2000)와 통신하도록 구성될 수 있다. 예를 들면, 호스트 인터페이스(1240)는 호스트(2000)로부터 기입 커맨드(write command), 데이터 및 기입 커맨드에 대응하는 논리 어드레스(logical address)를 수신할 수 있다. 또한 호스트 인터페이스(1240)는 호스트(2000)로부터 리드 커맨드(read command) 및 리드 커맨드에 대응하는 논리 어드레스(logical address)를 수신할 수 있다.
에러 정정 회로(1250)는 메모리 장치(1100)로부터 리드된 데이터에 포함되어 있는 에러를 검출하거나 정정할 수 있다. 예를 들면, 에러 정정 회로(1250)는 메모리 인터페이스(1260)를 통해 메모리 장치(1100)에 기입될 데이터에 기반하여 에러 정정 인코딩(ECC encoding) 동작을 수행할 수 있다. 에러 정정 인코딩 동작이 수행된 데이터는 메모리 인터페이스(1260)를 통해 메모리 장치(1100)로 전달될 수 있다. 또한, 에러 정정 회로(1250)는 메모리 인터페이스(1260)를 통해 메모리 장치(1100)로부터 수신되는 데이터에 대해 에러 정정 디코딩(ECC decoding)을 수행할 수 있다. 에러 정정 회로(1250)는 보즈-초두리-오켄젬 코드(BCH code) 또는 저밀도 패리티 체크 코드(LDPC code)에 기초하여 에러 정정 동작을 수행할 수 있다.
메모리 인터페이스(1260)는 중앙 처리 장치(1220)의 제어에 따라 메모리 장치(1100)와 통신하도록 구성될 수 있다. 본 실시예에서는, 메모리 인터페이스(1260)는 중앙 처리 장치(1220)로부터 수신된 커맨드들(commands), 예를 들면 노말 커맨드들을 큐잉(queueing)할 수 있다. 또한, 메모리 인터페이스(1260)는 노말 커맨드들 각각에 대하여 추가 동작 시간을 설정할 수 있다. 추가 동작 시간은 서스펜드 커맨드가 수신되더라도 노말 커맨드의 실행 시간을 일정시간 동안 보장하기 위하여 설정될 수 있다.
도 3은 본 발명의 실시예에 따른 메모리 인터페이스를 구체적으로 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 인터페이스(1260)는 커맨드 큐 제어부(CMD Queue Controller; 61), 커맨드 시간 제어부(CMD Time Controller; 62), 커맨드 시간 테이블(CMD Time Table; 63) 및 입출력 인터페이스(I/O Interface; 64)를 포함할 수 있다.
커맨드 큐 제어부(61)는 버스(1270)를 통해 노말 커맨드 또는 서스펜드 커맨드를 수신할 수 있다. 커맨드 큐 제어부(61)는 다수의 노말 커맨드들을 순차적으로 수신하고, 실행 순서에 따라 노말 커맨드들을 큐잉(queueing)할 수 있다. 커맨드 큐 제어부(61)는 큐잉된 노말 커맨드들을 커맨드 시간 제어부(62)로 순차적으로 출력할 수 있다. 또한, 커맨드 큐 제어부(61)는 서스펜드 커맨드가 수신되면, 노말 커맨드들의 큐잉 순서에 관계 없이 서스펜드 커맨드를 커맨드 시간 테이블(63)로 즉시 출력할 수 있다.
커맨드 시간 제어부(62)는 커맨드 큐 제어부(61)로부터 수신된 노말 커맨드들 각각에 추가 동작 시간을 부여하고, 노말 커맨드들과 추가 동작 시간이 포함된 정보를 커맨드 시간 테이블(63)로 전송할 수 있다. 이하에서 상기 정보는 ‘커맨드 및 시간 정보’로 칭하기로 한다.
커맨드 시간 테이블(63)은 커맨드 시간 제어부(62)로부터 커맨드 및 시간 정보를 수신받고, 노말 커맨드에 매칭되는 추가 동작 시간을 각각 저장할 수 있다. 커맨드 시간 테이블(63)은 노말 커맨드에 대한 커맨드 및 시간 정보를 저장한 후 커맨드 큐 제어부(61)에 종료 신호를 출력할 수 있다. 또한, 커맨드 시간 테이블(63)은 커맨드 큐 제어부(61)로부터 서스펜드 커맨드를 수신하면, 테이블에 저장된 커맨드 및 시간 정보에 따라 추가 동작 시간이 지난 후에 커맨드 큐 제어부(61)에 종료 신호를 출력할 수 있다.
종료 신호가 커맨드 큐 제어부(61)에 입력되면, 커맨드 큐 제어부(61)는 종료 신호에 대응되는 노말 커맨드 또는 서스펜드 커맨드를 입출력 인터페이스(64)로 전송할 수 있다. 예를 들면, 커맨드 큐 제어부(61)는 종료 신호가 수신될 때마다 노말 커맨드를 입출력 인터페이스(64)에 순차적으로 출력하거나, 서스펜드 커맨드를 입출력 인터페이스(64)에 출력할 수 있다.
커맨드 시간 테이블(63)에 저장된 추가 동작 시간과 이에 매칭된 노말 커맨드는, 메모리 장치(1100)에서 노말 커맨드에 대한 동작이 종료되면 삭제될 수 있다.
입출력 인터페이스(64)는 커맨드 큐 제어부(61)로부터 노말 커맨드 또는 서스펜드 커맨드를 수신하면, 채널(1280)을 통해 노말 커맨드 또는 서스펜드 커맨드를 출력할 수 있다.
채널(1280)을 통해 노말 커맨드 또는 서스펜드 커맨드를 수신한 메모리 장치는 해당 커맨드를 실행할 수 있다.
상술한 메모리 인터페이스(1260)의 구성들을 보다 상세히 설명하면 다음과 같다.
도 4는 도 3의 커맨드 큐 제어부를 구체적으로 설명하기 위한 도면이다.
도 4를 참조하면, 커맨드 큐 제어부(61)는 버스(도 3의 1270)를 통해 수신된 노말 커맨드들(1N_CMD~aN_CMD; a는 양의 정수)의 큐(queue)를 관리할 수 있다. 예를 들면, 버스(1270)를 통해 수신된 제1 내지 제a 노말 커맨드들(1N_CMD~aN_CMD)을 순서에 따라 순차적으로 출력할 수 있다(T41).
제1 내지 제a 노말 커맨드들(1N_CMD~aN_CMD)이 순차적으로 출력될 때, 중요도가 높은 서스펜드 커맨드(S_CMD)가 수신되면, 커맨드 큐 제어부(61)는 다음 순번의 노말 커맨드를 출력하지 않고 서스펜드 커맨드(S_CMD)를 우선적으로 출력할 수 있다(T42). 예를 들면, 버스(1270)를 통해 수신된 노말 커맨드는 커맨드 시간 제어부(도 3의 62)로 출력되며, 종료 신호가 수신되면 커맨드 시간 제어부(62)에 출력된 동일한 노말 커맨드는 입출력 인터페이스(도 3의 64)로 출력될 수 있다. 또한, 버스(1270)를 통해 서스펜드 커맨드(S_CMD)가 수신되면, 커맨드 큐 제어부(61)는 서스펜드 커맨드(S_CMD)를 커맨드 시간 제어부(62)가 아닌 커맨드 시간 테이블(도 3의 63)로 출력할 수 있다. 서스펜드 커맨드(S_CMD)가 커맨드 시간 테이블(63)에 출력된 이후에 종료 신호가 수신되면, 커맨드 큐 제어부(61)는 서스펜드 커맨드(S_CMD)를 입출력 인터페이스(64)로 출력할 수 있다.
도 5는 도 3의 커맨드 시간 제어부를 구체적으로 설명하기 위한 도면이다.
도 5를 참조하면, 커맨드 시간 제어부(62)는 커맨드 큐 제어부(도 3의 61)로부터 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD)이 수신되면, 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD) 각각에 추가 동작 시간(1Min_T ~ aMin_T)을 부여할 수 있다. 추가 동작 시간(1Min_T ~ aMin_T)은 서스펜드 커맨드가 수신될 때, 현재 실행 중인 노말 커맨드가 추가적으로 실행되는 시간을 의미한다.
예를 들면, 커맨드 시간 제어부(62)는 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD)에 제1 내지 제a 추가 동작 시간(1Min_T ~ aMin_T)을 각각 부여하고, 추가 동작 시간(1Min_T ~ aMin_T)이 부여된 커맨드 및 시간 정보(1N_CMD+1Min_T ~ aN_CMD+aMin_CMD)를 순차적으로 출력할 수 있다. 즉, 노말 커맨드들(1N_CMD~aN_CMD) 각각에 부여되는 추가 동작 시간은 노말 커맨드가 메모리 장치에서 실행 중일 때 서스펜드 커맨드(S_CMD)가 수신되면, 실행중인 노말 커맨드가 즉시 중단되지 않고 설정된 추가 동작 시간만큼 더 실행되도록 하는 데 사용될 수 있다.
추가 동작 시간(1Min_T ~ aMin_T)은 메모리 시스템(1000)에 따라 다르게 설정될 수 있다. 예를 들면, 추가 동작 시간(1Min_T ~ aMin_T)은 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD) 각각에 모두 동일한 시간으로 설정되거나, 서로 다른 시간으로 설정될 수 있다. 예를 들면, 추가 동작 시간(1Min_T ~ aMin_T)은 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD)의 특성에 따라 각각 설정될 수 있다. 예를 들면, 추가 동작 시간(1Min_T ~ aMin_T)은 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD)의 중요도에 따라 다르게 설정될 수 있다. 예를 들면, 추가 동작 시간(1Min_T ~ aMin_T)은 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD)에 따라 일부 노말 커맨드들에 설정되고 나머지 노말 커맨드들에는 설정되지 않을 수도 있다. 상술한 제1 내지 제a 노말 커맨드들(1N_CMD ~ aN_CMD)의 특성 또는 중요도는 메모리 시스템(1000)에 따라 다를 수 있다.
도 6 및 도 7은 도 3의 커맨드 시간 테이블(63)의 실시예들을 설명하기 위한 도면들이다. 도 6은 일 실시예에 따른 커맨드 시간 테이블(63a)을 설명하기 위한 도면이고, 도 7은 다른 실시예에 따른 커맨드 시간 테이블(63b)을 설명하기 위한 도면이다.
도 6을 참조하면, 커맨드 시간 테이블(63a)은 정보 테이블(31a)과 종료 신호 출력부(E_SG Generator; 32)를 포함할 수 있다.
정보 테이블(31a)에는 커맨드(CMD) 정보 및 시간(Time) 정보가 서로 매칭된 데이터가 저장될 수 있다. 예를 들면, 정보 테이블(31a)에는 제1 노말 커맨드(1N_CMD)와 제1 추가 동작 시간(1Min_T)이 서로 매칭된 데이터가 저장될 수 있고, 제2 노말 커맨드(2N_CMD)와 제2 추가 동작 시간(2Min_T)이 서로 매칭된 데이터가 저장될 수 있으며, 이러한 방식으로 제a 노말 커맨드(aN_CMD)와 제a 추가 동작 시간(aMin_T)이 서로 매칭된 데이터가 저장될 수 있다.
종료 신호 출력부(32)는 커맨드 시간 테이블(63a)에 입력된 정보가 정보 테이블(31a)에 저장되면, 테이블에 정보가 저장되었음을 알리기 위한 종료 신호(end signal)를 출력할 수 있다.
도 7을 참조하면, 커맨드 시간 테이블(63b)은 정보 테이블(31b)과 종료 신호 출력부(E_SG Generator; 32)를 포함할 수 있다. 도 7의 실시예에 따른 커맨드 시간 테이블(63b)은 도 6의 정보 테이블(31a)에 저장되는 정보에 차이가 있으며, 나머지 구성은 도 6의 커맨드 시간 테이블(63a)과 유사하다.
도 7의 커맨드 시간 테이블(63b)에는 다이(DIE) 정보, 커맨드(CMD) 정보 및 시간(Time) 정보가 서로 매칭된 데이터가 저장될 수 있다. 예를 들면, 메모리 컨트롤러(도 2의 1200)가 제어하는 메모리 장치(도 2의 1100)가 다수인 경우, 메모리 인터페이스(도 2의 1260)에는 다수의 채널들(도 2의 1280)이 연결될 수 있고, 채널들(1280) 각각에는 다수의 메모리 장치(1100)들이 연결될 수 있다. 각각의 메모리 장치(1100)들을 다이(DIE)라고 한다면, 각각의 다이(DIE)에서 실행중인 커맨드(CMD)도 다양할 수 있다.
따라서, 이러한 구조로 이루어진 메모리 시스템(1000)에서는 커맨드 시간 테이블(63b)에 다이(DIE)의 정보가 저장될 수 있다. 예를 들면, 정보 테이블(31b)에는 제1 다이(1DIE), 제1 노말 커맨드(1N_CMD) 및 제1 추가 동작 시간(1Min_T)이 서로 매칭된 데이터가 저장될 수 있다. 즉, 제1 다이(1DIE)에서 실행중인 커맨드(CMD)가 제1 노말 커맨드(1N_CMD)인 경우, 제1 노말 커맨드(1N_CMD)에는 제1 추가 동작 시간(1Min_T)이 부여되어 저장될 수 있다. 이 경우, 제1 다이(1DIE)에 대한 서스펜드 커맨드가 수신되면, 제1 노말 커맨드(1N_CMD)는 즉시 종료되지 않고, 제1 추가 동작 시간(1Min_T)만큼 더 실행된 후에 종료될 수 있다. 이러한 방식으로 제a 다이(aDIE)에서 실행중인 커맨드(CMD)가 제a 노말 커맨드(aN_CMD)인 경우, 제a 노말 커맨드(aN_CMD)에는 제a 추가 동작 시간(aN_CMD)이 부여되어 저장될 수 있다.
종료 신호 출력부(32)는 커맨드 시간 테이블(63b)에 입력된 정보가 정보 테이블(31b)에 저장되면, 테이블에 정보가 저장되었음을 알리기 위한 종료 신호(end signal)를 출력할 수 있다.
도 8은 본 발명의 실시예에 따라 노말 커맨드를 실행시키는 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 버스(1270)를 통해 제1 노말 커맨드(1N_CMD)가 메모리 인터페이스(1260)에 입력되면, 커맨드 큐 제어부(61)는 제1 노말 커맨드(1N_CMD)를 내부에 임시로 저장할 수 있다. 이어서, 커맨드 큐 제어부(61)는 제1 노말 커맨드(1N_CMD)를 커맨드 시간 제어부(62)로 전송할 수 있다.
커맨드 시간 제어부(62)는 제1 노말 커맨드(1N_CMD)에 제1 추가 동작 시간(1Min_T)을 부여하고, 제1 노말 커맨드(1N_CMD)에 대한 제1 커맨드 및 시간 정보(1N_CMD+1Min_T)를 출력할 수 있다.
커맨드 시간 제어부(62)에서 출력된 제1 커맨드 및 시간 정보(1N_CMD+1Min_T)는 커맨드 시간 테이블(63)에 입력될 수 있다. 제1 커맨드 및 시간 정보(1N_CMD+1Min_T)가 커맨드 시간 테이블(63)에 저장되면 커맨드 시간 테이블(63)은 종료 신호(E_SG)를 커맨드 큐 제어부(61)로 출력할 수 있다.
커맨드 큐 제어부(61)는 종료 신호(E_SG)가 수신되면, 임시로 저장된 제1 노말 커맨드(aN_CMD)를 입출력 인터페이스(64)로 전송할 수 있다.
입출력 인터페이스(64)는 커맨드 큐 제어부(61)로부터 수신한 제1 노말 커맨드(aN_CMD)를 채널(1280)을 통해 메모리 장치(도 2의 1100)로 전송할 수 있다.
메모리 장치(1100)는 채널(1280)을 통해 제1 노말 커맨드(1N_CMD)가 수신되면, 제1 노말 커맨드(1N_CMD)를 실행할 수 있다.
메모리 장치(1100)가 제1 노말 커맨드(1N_CMD)를 실행하는 동안 서스펜드 커맨드가 발생한 경우, 서프센드 커맨드는 다음과 같은 순서에 따라 실행될 수 있다.
도 9는 본 발명의 실시예에 따라 서스펜드 커맨드를 실행시키는 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 버스(1270)를 통해 서스펜드 커맨드(S_CMD)가 메모리 인터페이스(1260)에 입력되면, 커맨드 큐 제어부(61)는 서스펜드 커맨드(S_CMD)를 내부에 임시로 저장할 수 있다. 이어서, 커맨드 큐 제어부(61)는 서스펜드 커맨드(S_CMD)를 커맨드 시간 테이블(63)로 전송할 수 있다.
서스펜드 커맨드(S_CMD)가 커맨드 시간 테이블(63)에 입력되면, 커맨드 시간 테이블(63)은 메모리 장치(1100)가 현재 실행중인 노말 커맨드를 찾고, 찾아진 노말 커맨드 정보에 매칭된 추가 동작 시간이 있는지를 판단할 수 있다.
추가 동작 시간에 대한 정보가 없으면, 커맨드 시간 테이블(63)은 즉시 종료 신호(E_SG)를 출력할 수 있다. 만약, 추가 동작 시간에 대한 정보가 있으면, 커맨드 시간 테이블(63)은 해당 추가 동작 시간만큼 지연된 시간 후에 종료 신호(E_SG)를 출력할 수 있다. 예를 들면, 메모리 장치(1100)가 제1 노말 커맨드(1N_CMD)를 실행 중이고, 제1 노말 커맨드(1N_CMD)에 제1 추가 동작 시간(1Min_T)이 매칭된 경우, 커맨드 시간 테이블(63)은 제1 추가 동작 시간(1Min_T)이 지난 후에 종료 신호(E_SG)를 출력할 수 있다.
이에 따라, 메모리 장치(1100)는 서스펜드 커맨드(S_CMD)가 발생하더라도 현재 실행 중인 제1 노말 커맨드(1N_CMD)의 동작을 즉시 종료하지 않고 제1 추가 동작 시간(1Min_T)만큼 해당 동작을 더 수행할 수 있다.
커맨드 시간 테이블(63)이 종료 신호(E_SG)를 출력하면, 출력된 종료 신호(E_SG)는 커맨드 큐 제어부(61)에 입력될 수 있다.
커맨드 큐 제어부(61)는 종료 신호(E_SG)가 입력되면, 임시로 저장된 서스펜드 커맨드(S_CMD)를 입출력 인터페이스(64)로 전송할 수 있다.
입출력 인터페이스(64)는 커맨드 큐 제어부(61)로부터 수신한 서스펜드 커맨드(S_CMD)를 채널(1280)을 통해 메모리 장치(1100)로 전송할 수 있다.
상술한 실시예에 따라, 노말 커맨드에 추가 동작 시간이 부여됨으로써, 서스펜드 커맨드가 발생하더라도 노말 커맨드가 추가적으로 실행될 수 있는 최소 시간이 보장됨으로써, 노말 커맨드가 무한대로 지연되는 현상을 방지할 수 있다.
도 10은 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 10을 참조하면, 메모리 시스템(Memory System; 30000)은 이동 전화기(cellular phone), 스마트폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant) 또는 무선 통신 장치로 구현될 수 있다. 메모리 시스템(30000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함할 수 있다. 메모리 컨트롤러(1200)는 프로세서(Processor; 3100)의 제어에 따라 메모리 장치(1100)의 데이터 액세스 동작, 예컨대 프로그램(program) 동작, 소거(erase) 동작 또는 리드(read) 동작 등을 제어할 수 있다.
메모리 장치(1100)에 프로그램된 데이터는 메모리 컨트롤러(1200)의 제어에 따라 디스플레이(Display; 3200)를 통하여 출력될 수 있다.
무선 송수신기(RADIO TRANSCEIVER; 3300)는 안테나(ANT)를 통하여 무선 신호를 주고받을 수 있다. 예컨대, 무선 송수신기(3300)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(3100)에서 처리(process)될 수 있는 신호로 변경할 수 있다. 따라서, 프로세서(3100)는 무선 송수신기(3300)로부터 출력된 신호를 처리(process)하고 처리(process)된 신호를 메모리 컨트롤러(1200) 또는 디스플레이(3200)로 전송할 수 있다. 메모리 컨트롤러(1200)는 프로세서(3100)에 의하여 처리(process)된 신호를 메모리 장치(1100)에 전송할 수 있다. 또한, 무선 송수신기(3300)는 프로세서(3100)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. 입력 장치(Input Device; 3400)는 프로세서(3100)의 동작을 제어하기 위한 제어 신호 또는 프로세서(3100)에 의하여 처리(process)될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad) 또는 키보드로 구현될 수 있다. 프로세서(3100)는 메모리 컨트롤러(1200)로부터 출력된 데이터, 무선 송수신기(3300)로부터 출력된 데이터, 또는 입력 장치(3400)로부터 출력된 데이터가 디스플레이(3200)를 통하여 출력될 수 있도록 디스플레이(3200)의 동작을 제어할 수 있다.
실시 예에 따라, 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(3100)의 일부로서 구현될 수 있고 또한 프로세서(3100)와 별도의 칩으로 구현될 수 있다.
도 11은 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 11을 참조하면, 메모리 시스템(Memory System; 40000)은 PC(personal computer), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
메모리 시스템(40000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함할 수 있다.
프로세서(Processor; 4100)는 입력 장치(Input Device; 4200)를 통하여 입력된 데이터에 따라 메모리 장치(1100)에 저장된 데이터를 디스플레이(Display; 4300)를 통하여 출력할 수 있다. 예컨대, 입력 장치(4200)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
프로세서(4100)는 메모리 시스템(40000)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(1200)의 동작을 제어할 수 있다. 실시 예에 따라 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(4100)의 일부로서 구현되거나, 프로세서(4100)와 별도의 칩으로 구현될 수 있다.
도 12는 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 12를 참조하면, 메모리 시스템(50000)은 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트 폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
메모리 시스템(50000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 데이터 처리 동작, 예컨대 프로그램 동작, 소거 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함한다.
메모리 시스템(50000)의 이미지 센서(Image Sensor; 5200)는 광학 이미지를 디지털 신호들로 변환할 수 있고, 변환된 디지털 신호들은 프로세서(Processor; 5100) 또는 메모리 컨트롤러(1200)로 전송될 수 있다. 프로세서(5100)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(Display; 5300)를 통하여 출력되거나 메모리 컨트롤러(1200)를 통하여 메모리 장치(1100)에 저장될 수 있다. 또한, 메모리 장치(1100)에 저장된 데이터는 프로세서(5100) 또는 메모리 컨트롤러(1200)의 제어에 따라 디스플레이(5300)를 통하여 출력될 수 있다.
실시 예에 따라 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(5100)의 일부로서 구현되거나 프로세서(5100)와 별개의 칩으로 구현될 수 있다.
도 13은 도 2에 도시된 메모리 컨트롤러 및 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 13을 참조하면, 메모리 시스템(Memory System; 70000)은 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 메모리 시스템(70000)은 메모리 장치(1100), 메모리 컨트롤러(1200) 및 카드 인터페이스(Card Interface; 7100)를 포함할 수 있다.
메모리 컨트롤러(1200)는 메모리 장치(1100)와 카드 인터페이스(7100) 사이에서 데이터의 교환을 제어할 수 있다. 실시 예에 따라, 카드 인터페이스(7100)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
카드 인터페이스(7100)는 호스트(HOST; 60000)의 프로토콜에 따라 호스트(60000)와 메모리 컨트롤러(1200) 사이에서 데이터 교환을 인터페이스할 수 있다. 실시 예에 따라 카드 인터페이스(7100)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스(7100)는 호스트(60000)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어 또는 신호 전송 방식을 의미할 수 있다.
메모리 시스템(70000)이 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(60000)의 호스트 인터페이스(6200)와 접속될 때, 호스트 인터페이스(6200)는 마이크로프로세서(Microprocessor; μP; 6100)의 제어에 따라 카드 인터페이스(7100)와 메모리 컨트롤러(1200)를 통하여 메모리 장치(1100)와 데이터 통신을 수행할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
2000: 호스트 1000: 메모리 시스템
1100: 메모리 장치 1200: 메모리 컨트롤러
1210: 버퍼 메모리 1220: 중앙 처리 장치
1230: 내부 메모리 1240: 호스트 인터페이스
1250: 에러 정정 회로 1260: 메모리 인터페이스
61: 커맨드 큐 제어부 62: 커맨드 시간 제어부
63: 커맨드 시간 테이블 64: 입출력 인터페이스

Claims (20)

  1. 노말 커맨드들(normal commands) 및 서스펜드 커맨드(suspend command)의 실행 순서를 결정하는 커맨드 큐 제어부;
    상기 커맨드 큐 제어부로부터 상기 노말 커맨드들을 전송받고, 상기 노말 커맨드들에 추가 동작 시간을 각각 부여하여 커맨드 및 시간 정보를 출력하는 커맨드 시간 제어부;
    상기 커맨드 및 시간 정보를 상기 노말 커맨드들에 각각 매칭하여 저장하고, 종료 신호를 출력하는 커맨드 시간 테이블; 및
    상기 커맨드 큐 제어부로부터 상기 노말 커맨드들 또는 상기 서스펜드 커맨드를 수신하고, 채널을 통해 상기 노말 커맨드들 또는 상기 서스펜드 커맨드를 메모리 장치로 전송하는 입출력 인터페이스를 포함하는 메모리 인터페이스.
  2. 제1항에 있어서,
    상기 커맨드 큐 제어부는,
    상기 노말 커맨드들이 수신되면, 상기 노말 커맨드들을 임시로 저장하고,
    상기 노말 커맨드들을 상기 커맨드 시간 제어부에 순차적으로 전송하고,
    상기 종료 신호에 응답하여 상기 노말 커맨드들을 상기 입출력 인터페이스로 순차적으로 전송하는 메모리 인터페이스.
  3. 제1항에 있어서,
    상기 커맨드 큐 제어부는,
    상기 노말 커맨드들을 상기 커맨드 시간 제어부로 순차적으로 출력한 후,
    상기 종료 신호가 수신될 때마다 상기 노말 커맨드들을 상기 입출력 인터페이스로 순차적으로 전송하는 메모리 인터페이스.
  4. 제1항에 있어서,
    상기 커맨드 큐 제어뷰는,
    상기 서스펜드 커맨드가 수신되면, 상기 노말 커맨드들의 출력 순서에 관계없이 상기 서스펜드 커맨드를 우선적으로 출력하는 메모리 인터페이스.
  5. 제1항에 있어서,
    상기 커맨드 큐 제어부는,
    상기 노말 커맨드들이 수신되면 상기 노말 커맨드들을 상기 커맨드 시간 제어부로 순차적으로 전송하고,
    상기 서스펜드 커맨드가 수신되면 상기 서스펜드 커맨드를 상기 커맨드 시간 테이블로 전송하는 메모리 인터페이스.
  6. 제1항에 있어서,
    상기 커맨드 시간 제어부는,
    상기 노말 커맨드들의 특성 또는 중요도에 따라 상기 추가 동작 시간을 각각 부여하는 메모리 인터페이스.
  7. 제6항에 있어서,
    상기 커맨드 시간 제어부는,
    상기 노말 커맨드들에 상기 추가 동작 시간을 모두 동일하게 부여하거나,
    상기 노말 커맨드들 중 일부에 상기 추가 동작 시간을 부여하고, 나머지 노말 커맨드들에는 상기 추가 동작 시간을 부여하지 않는 메모리 인터페이스.
  8. 제7항에 있어서,
    상기 커맨드 시간 제어부는,
    상기 노말 커맨드들의 상기 특성 및 중요도에 따라 상기 추가 동작 시간을 부여하거나 부여하지 않는 메모리 인터페이스.
  9. 제1항에 있어서,
    상기 커맨드 시간 테이블은,
    상기 노말 커맨드들에 상기 추가 동작 시간이 각각 매칭된 커맨드 및 시간 정보가 저장되는 정보 테이블; 및
    상기 정보 테이블에 상기 커맨드 및 시간 정보가 저장될 때마다 상기 종료 신호를 출력하는 메모리 인터페이스.
  10. 제1항에 있어서,
    상기 커맨드 시간 테이블은,
    상기 서스펜드 커맨드가 수신되면, 상기 노말 커맨드에 매칭된 상기 추가 동작 시간이 지난 후에 상기 종료 신호를 출력하는 메모리 인터페이스.
  11. 호스트(host)의 요청에 따라 노말 커맨드 또는 서스펜드 커맨드를 생성하는 중앙 처리 장치; 및
    상기 노말 커맨드 또는 상기 서스펜드 커맨드를 메모리 장치로 전송하는 메모리 인터페이스를 포함하며,
    상기 메모리 인터페이스는,
    상기 노말 커맨드가 수신되면 상기 노말 커맨드에 추가 동작 시간을 부여한 후, 상기 노말 커맨드를 상기 메모리 장치에 전송하고,
    상기 서스펜드 커맨드가 수신되면, 상기 추가 동작 시간 동안 상기 노말 커맨드를 더 실행시킨 후, 상기 서스펜드 커맨드를 상기 메모리 장치에 전송하는 메모리 컨트롤러.
  12. 제11항에 있어서,
    상기 메모리 인터페이스는,
    상기 노말 커맨드 또는 상기 서스펜드 커맨드의 출력 순서를 제어하는 커맨드 큐 제어부;
    상기 노말 커맨드에 따라 상기 추가 동작 시간을 부여하는 커맨드 시간 제어부;
    상기 노말 커맨드와 상기 추가 동작 시간이 매칭된 정보를 저장하고, 상기 서스펜드 커맨드가 수신되면 상기 추가 동작 시간 동안 상기 서스펜드 커맨드를 지연시키는 커맨드 시간 테이블; 및
    상기 커맨드 큐 제어부로부터 수신되는 상기 노말 커맨드 또는 상기 서스펜드 커맨드를 상기 메모리 장치로 전송하는 입출력 인터페이스를 포함하는 메모리 컨트롤러.
  13. 제12항에 있어서,
    상기 커맨드 큐 제어부는,
    상기 노말 커맨드가 수신되면 상기 노말 커맨드를 임시로 저장한 후, 상기 노말 커맨드를 상기 커맨드 시간 제어부로 전송하고,
    상기 서스펜드 커맨드가 수신되면 상기 서스펜드 커맨드를 임시로 저장한 후, 상기 서스펜드 커맨드를 상기 커맨드 시간 테이블로 전송하는 메모리 컨트롤러.
  14. 제12항에 있어서,
    상기 커맨드 시간 제어부는,
    상기 노말 커맨드의 특성 또는 중요도에 따라 상기 추가 동작 시간을 부여하는 메모리 컨트롤러.
  15. 제12항에 있어서,
    상기 커맨드 시간 제어부는,
    상기 노말 커맨드의 특성 또는 중요도에 따라 상기 추가 동작 시간을 부여하거나 부여하지 않는 메모리 컨트롤러.
  16. 제12항에 있어서,
    상기 커맨드 시간 테이블은,
    상기 노말 커맨드에 상기 추가 동작 시간이 각각 커맨드 및 시간 정보가 저장되는 정보 테이블; 및
    상기 정보 테이블에 상기 커맨드 및 시간 정보가 저장될 때마다 상기 종료 신호를 출력하는 메모리 컨트롤러.
  17. 제12항에 있어서,
    상기 커맨드 시간 테이블은,
    상기 서스펜드 커맨드가 수신되면, 상기 노말 커맨드에 매칭된 상기 추가 동작 시간 동안 상기 서스펜드 커맨드를 지연시키고, 상기 추가 동작 시간이 지나면 상기 종료 신호를 출력하는 메모리 컨트롤러.
  18. 데이터가 저장되는 메모리 장치; 및
    호스트의 요청에 따라 노말 커맨드 또는 서스펜드 커맨드를 생성하고, 상기 노말 커맨드 또는 상기 서스펜드 커맨드를 채널을 통해 상기 메모리 장치로 전송하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는,
    상기 노말 커맨드가 생성되면 상기 노말 커맨드에 추가 동작 시간을 부여한 후, 상기 노말 커맨드를 상기 메모리 장치로 전송하고,
    상기 서스펜드 커맨드가 생성되면, 상기 추가 동작 시간만큼 상기 서스펜드 커맨드를 지연시킨 후에 상기 서스펜드 커맨드를 상기 메모리 장치로 전송하는 메모리 시스템.
  19. 제18항에 있어서,
    상기 메모리 컨트롤러는,
    상기 노말 커맨드의 특성 또는 중요도에 따라 상기 추가 동작 시간을 부여하는 메모리 시스템.
  20. 제18항에 있어서,
    상기 메모리 컨트롤러는,
    상기 메모리 장치에서 상기 노말 커맨드가 실행되는 도중에 상기 서스펜드 커맨드가 생성되면,
    상기 메모리 장치에서 상기 노말 커맨드가 상기 추가 동작 시간동안 더 실행되도록 상기 서스펜드 커맨드의 출력을 지연시키고,
    상기 추가 동작 시간이 지나면 상기 서스펜드 커맨드를 상기 메모리 장치로 전송하는 메모리 시스템.
KR1020180007195A 2018-01-19 2018-01-19 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 KR20190088734A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180007195A KR20190088734A (ko) 2018-01-19 2018-01-19 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US16/119,575 US10705757B2 (en) 2018-01-19 2018-08-31 Memory interface, memory controller having the memory interface, and memory system having the memory controller
CN201811109225.5A CN110059032B (zh) 2018-01-19 2018-09-21 存储器接口及具有存储器接口的存储器控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180007195A KR20190088734A (ko) 2018-01-19 2018-01-19 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20190088734A true KR20190088734A (ko) 2019-07-29

Family

ID=67299205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180007195A KR20190088734A (ko) 2018-01-19 2018-01-19 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템

Country Status (3)

Country Link
US (1) US10705757B2 (ko)
KR (1) KR20190088734A (ko)
CN (1) CN110059032B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11342013B2 (en) 2020-10-27 2022-05-24 SK Hynix Inc. Memory system and operating method to set target command delay time to merge and process read commands
US11941294B2 (en) 2021-06-08 2024-03-26 SK Hynix Inc. Memory controller for controlling suspension of operation and method of operating the same

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200098336A (ko) * 2019-02-12 2020-08-20 삼성전자주식회사 서스펜드 모드를 제어하는 방법 및 이를 포함하는 메모리 컨트롤러
US10871923B2 (en) * 2019-03-06 2020-12-22 Micron Technology, Inc. Management of program suspend and resume operations of a memory sub-system
KR20210061171A (ko) * 2019-11-19 2021-05-27 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN116830076A (zh) 2022-01-28 2023-09-29 辉达公司 用于高效模除法和模求逆的技术、设备和指令集架构

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797468B2 (en) 2006-10-31 2010-09-14 Hewlett-Packard Development Company Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
KR101662824B1 (ko) * 2009-07-08 2016-10-06 삼성전자주식회사 고체 상태 드라이브 장치 및 그것의 구동 방법
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
KR101962874B1 (ko) * 2012-04-24 2019-03-27 삼성전자주식회사 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법
KR20150017526A (ko) 2013-08-07 2015-02-17 삼성전자주식회사 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법
KR102226367B1 (ko) * 2014-01-02 2021-03-12 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템
KR102624606B1 (ko) * 2016-07-04 2024-01-15 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10528268B2 (en) * 2017-09-12 2020-01-07 Toshiba Memory Corporation System and method for channel time management in solid state memory drives

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11342013B2 (en) 2020-10-27 2022-05-24 SK Hynix Inc. Memory system and operating method to set target command delay time to merge and process read commands
US11941294B2 (en) 2021-06-08 2024-03-26 SK Hynix Inc. Memory controller for controlling suspension of operation and method of operating the same

Also Published As

Publication number Publication date
US10705757B2 (en) 2020-07-07
CN110059032A (zh) 2019-07-26
US20190227736A1 (en) 2019-07-25
CN110059032B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
KR20190088734A (ko) 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10445228B2 (en) Methods and apparatuses for requesting ready status information from a memory
US9563368B2 (en) Embedded multimedia card and method of operating the same
KR101626084B1 (ko) 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
US7620747B1 (en) Software based native command queuing
US11061607B2 (en) Electronic system having host and memory controller, and operating method thereof
US11294814B2 (en) Memory system having a memory controller and a memory device having a page buffer
US20220350655A1 (en) Controller and memory system having the same
KR20190098394A (ko) 메모리 컨트롤러 및 그 동작 방법
US11309050B2 (en) Memory controller and memory system having the same
US10847194B2 (en) Input/output circuit and memory device having the same
US10692585B2 (en) Memory system for error test
KR20180023311A (ko) 데이터 저장 장치
TW202011203A (zh) 指令處理方法及使用所述方法的儲存控制器
KR20190099879A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20170141468A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190051581A (ko) 범용 비동기 송수신 부 및 이를 포함하는 메모리 컨트롤러 및 메모리 시스템
US11237954B2 (en) Controller and data storage system having the same
KR20190118428A (ko) 컨트롤러 및 이를 포함하는 메모리 시스템
EP4287029A1 (en) Storage system and operation method therefor
KR20240032362A (ko) 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR20200128873A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20150082930A (ko) 데이터 저장 장치 및 그것의 동작 방법