KR20210060253A - 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 - Google Patents

메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20210060253A
KR20210060253A KR1020190148089A KR20190148089A KR20210060253A KR 20210060253 A KR20210060253 A KR 20210060253A KR 1020190148089 A KR1020190148089 A KR 1020190148089A KR 20190148089 A KR20190148089 A KR 20190148089A KR 20210060253 A KR20210060253 A KR 20210060253A
Authority
KR
South Korea
Prior art keywords
memory
channel
parameter
channels
reception
Prior art date
Application number
KR1020190148089A
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 KR1020190148089A priority Critical patent/KR20210060253A/ko
Priority to US17/078,194 priority patent/US11531630B2/en
Priority to CN202011238027.6A priority patent/CN112820337A/zh
Publication of KR20210060253A publication Critical patent/KR20210060253A/ko
Priority to US18/050,098 priority patent/US12013797B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • 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
    • 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/0614Improving the reliability 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/0653Monitoring storage devices or 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

본 개시의 기술적 사상에 따른 복수의 메모리 칩들을 구비한 메모리 장치를 포함하는 메모리 시스템의 동작 방법은, 메모리 칩의 복수의 동작 상태들 각각의 소비 전력에 대한 정보를 기초로, 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 개수를 정의하는 파라미터를 설정하는 단계, 복수의 메모리 칩들 각각의 동작 상태에 대한 정보를 획득하는 단계 및 파라미터 및 동작 상태에 대한 정보를 기초로 복수의 메모리 칩들 각각에 대응하는 복수의 채널들의 데이터 송수신을 스케줄링하는 단계를 포함할 수 있다.

Description

메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법{MEMORY CONTROLLER, MEMORY SYSTEM AND OPERATIONG METHOD OF THE SAME}
본 개시의 기술적 사상은 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법에 관한 것으로서, 구체적으로 메모리 칩들의 동작 상태에 대한 정보를 이용하여 메모리 칩들과 메모리 컨트롤러를 연결하는 복수의 채널들의 데이터 송수신을 스케줄링하는 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법에 관한 것이다.
종래의 복수의 메모리 칩들과 메모리 컨트롤러를 연결하는 복수의 채널들을 갖는 메모리 시스템은 메모리 칩들의 상태와 무관하게 채널들 중 일부를 동작하지 못하게 막거나, 동작 주파수를 낮추는 등의 비효율적인 방법으로 전력을 관리하였다. 이와 같은 방식은 Qos(Quality of Service) 관점에서 심각한 성능 저하는 물론이고, 전력 사용량을 상황에 따라 동적으로 조절할 수 없으므로, 메모리 시스템의 전체 소비 전력이 허용된 전력량을 순간적으로 초과하는 경우를 유발하는 문제점이 있다.
본 개시의 기술적 사상은 복수의 칩들의 동작 상태를 기초로 복수의 채널들의 데이터 송수신을 스케줄링함으로써, 전체 소비 전력이 허용된 전력 수준을 초과하여 전체 시스템에 문제가 발생하는 것을 방지하고, 메모리 유틸라이제이션(utilization)을 극대화할 수 있는 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 칩들을 구비한 메모리 장치를 포함하는 메모리 시스템의 동작 방법은, 메모리 칩의 복수의 동작 상태들 각각의 소비 전력에 대한 정보를 기초로, 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 개수를 정의하는 파라미터를 설정하는 단계, 복수의 메모리 칩들 각각의 동작 상태에 대한 정보를 획득하는 단계 및 파라미터 및 동작 상태에 대한 정보를 기초로 복수의 메모리 칩들 각각에 대응하는 복수의 채널들의 데이터 송수신을 스케줄링하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 메모리 시스템은, 복수의 메모리 칩들을 포함하는 메모리 장치, 메모리 장치의 동작을 제어하는 메모리 컨트롤러 및 복수의 메모리 칩들 각각과 메모리 컨트롤러를 연결하는 복수의 채널들을 포함하고, 메모리 컨트롤러는, 복수의 메모리 칩들 각각의 동작 상태들을 확인하고, 메모리 칩의 복수의 동작 상태들 각각의 소비 전력에 대한 정보를 기초로, 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 개수를 정의하도록 설정된 파라미터 및 확인한 동작 상태들을 이용하여 복수의 채널들의 데이터 송수신을 스케줄링할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 칩들을 포함하는 메모리 장치의 동작을 제어하는 메모리 컨트롤러는, 복수의 메모리 칩들 각각과 메모리 컨트롤러를 연결하는 복수의 채널들을 통해 데이터를 송수신하는 메모리 인터페이스, 메모리 인터페이스로부터 제1 채널을 통한 데이터 송수신의 승인 요청을 수신한 경우, 복수의 메모리 칩들 각각의 동작 상태에 대한 정보를 획득하고, 메모리 칩의 복수의 동작 상태들 각각의 소비 전력을 기초로, 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 개수를 정의하도록 설정된 파라미터 및 동작 상태에 대한 정보를 기초로 제1 채널의 승인 여부를 결정하고, 결정 결과를 메모리 인터페이스에 제공하는 채널 중재 모듈을 포함할 수 있다.
본 개시의 예시적 실시예에 따른 메모리 컨트롤러, 메모리 시스템 및 이의동작 방법에 의하면, 복수의 메모리 칩들의 동작 상태 및 동작별 소비 전력에 대한 정보를 기초로 설정된 파라미터를 이용하여 복수의 채널들의 데이터 송수신을 스케줄링할 수 있으므로, 메모리 시스템의 동작 상태에 적합한 방식에 따라 동적으로(dynamically) 전력을 관리할 수 있고, 메모리 유틸라이제이션(utilization)을 극대화할 수 있다. 이에 따라, 전체 시스템의 안정성을 유지하고, 높은 QoS(Quality of Service)를 확보할 수 있다.
도 1은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2a 및 도 2b는 본 개시의 일 실시예에 따른 파라미터 테이블을 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 복수의 메모리 칩들의 동작 상태에 대한 정보를 나타내는 도면이다.
도 4a 내지 도 4c는 메모리 칩의 동작별 채널의 데이터 송수신을 스케줄링하는 방법을 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 6은 본 개시의 일 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 7은 본 개시의 일 실시예에 따른 채널 중재 모듈을 나타내는 블록도이다.
도 8a 및 도 8b는 본 개시의 일 실시예에 따른 잡 스케줄을 생성하는 방법을 나타내는 도면이다.
도 9는 본 개시의 일 실시예에 따른 채널의 데이터 송수신을 스케줄링하는 방법을 나타내는 도면이다.
도 10은 본 개시의 일 실시예에 따른 복수의 채널들의 데이터 송수신을 스케줄링하는 방법을 나타내는 순서도이다.
도 11은 본 개시의 일 실시예에 따른 복수의 채널들의 데이터 송수신을 스케줄링하는 방법을 나타내는 순서도이다.
도 12는 본 개시의 일 실시예에 따른 대상 채널의 승인 여부를 결정하는 방법을 나타내는 순서도이다.
도 13은 본 개시의 일 실시예에 따른 대상 채널의 승인 여부를 결정하는 방법을 나타내는 순서도이다.
도 14는 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 1은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 1을 참조하면, 컴퓨팅 시스템(10)은 호스트(100) 및 메모리 시스템(200)을 포함할 수 있다. 또한, 메모리 시스템(200)은 메모리 컨트롤러(210) 및 메모리 장치(220)를 포함할 수 있다.
호스트(100)는 메모리 동작에 대한 커맨드(CMD) 또는 커맨드(CMD)와 관련된 데이터(DATA)를 제공할 수 있다. 예컨대, 호스트(100)는 메모리 시스템(200)으로 데이터의 기록 또는 독출 요청을 제공할 수 있다. 또한, 호스트(100)로부터의 데이터 소거 요청에 따라, 메모리 시스템(200)은 호스트(100)로부터 지시되는 영역의 데이터에 대한 소거 동작을 수행할 수 있다. 일 실시예에서, 호스트(100)는 CPU, 프로세서, 마이크로프로세서 또는 어플리케이션 프로세서(Application Processor, AP) 등에 해당할 수 있다. 일 실시예에 따라, 호스트(100)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있다. 한편, 도 1에서는 호스트(100)와 메모리 시스템(200) 간의 커맨드(CMD) 또는 데이터(DATA)의 송수신이 별도의 채널들을 통해 수행되는 것으로 도시되었으나, 이는 이해를 돕기 위한 것이며, 실시예에 따라 단일 채널을 통해 수행될 수 있다.
메모리 시스템(200)은 호스트(100)로부터의 요청에 따라 데이터를 저장하기 위한 저장 매체들을 포함할 수 있다. 일 예로서, 메모리 시스템(200)은 하나 이상의 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함할 수 있다. 그러나, 본 개시는 이에 한정되지 않고, 메모리 시스템(200)은 임베디드 멀티미디어 카드(embedded multimedia card, eMMC), 유니버셜 플래시 스토리지(universal flash storage, UFS), 또는 CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등 다양한 종류의 장치로 구현될 수 있다.
메모리 시스템(200)이 SSD를 포함하는 경우, 메모리 장치(220)는 데이터를 불휘발성하게 저장하는 다수 개의 플래시 메모리 칩들(예컨대, NAND 메모리 칩들)을 포함할 수 있다. 또는, 메모리 장치(220)는 하나의 플래시 메모리 장치에 해당할 수도 있으며, 또는 메모리 장치(220)는 하나 이상의 플래시 메모리 칩들을 포함하는 메모리 카드를 포함할 수도 있다.
메모리 시스템(200)이 플래시 메모리를 포함할 때, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 상기 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역을 가지는 메모리 셀들의 어레이들, 또는 상기 메모리 셀들의 동작과 관련된 회로로서 상기 기판상에 또는 상기 기판 내에 형성된 회로의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 "모놀리식"은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다.
본 개시의 기술적 사상에 의한 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 Vertical NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다.
미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
다른 예로서, 메모리 시스템(200)은 다른 다양한 종류의 메모리들을 포함할 수도 있다. 예를 들어, 메모리 시스템(200)은 불휘발성 메모리를 포함할 수 있으며, 불휘발성 메모리는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM), 나노튜브 RAM(Nanottube RAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory) 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory) 등 다양한 종류의 메모리가 적용될 수 있다.
메모리 컨트롤러(210)는 메모리 장치(220)에 대해 데이터 기록 및 독출 등의 메모리 동작을 제어할 수 있다. 메모리 컨트롤러(210)는 하나 이상의 채널을 통해 메모리 장치(220)에 대한 메모리 동작을 제어할 수 있다. 일 예로서, 메모리 컨트롤러(210)는 n 개(n은 자연수)의 채널들(CH1 ~ CHn)을 통해 메모리 장치(220)에 연결되어 데이터를 기록하거나 독출할 수 있다. 메모리 컨트롤러(210)는 서로 다른 채널에 연결된 메모리 장치(220)를 병렬하게 제어할 수 있다.
일 실시예에 따라, 메모리 장치(220)는 다수의 메모리 칩들을 포함할 수 있다. 메모리 장치(220)는 n 개의 채널들(CH1 ~ CHn) 각각에 대응하여 하나 이상의 메모리 칩을 포함할 수 있다. 메모리 컨트롤러(210)는 호스트(100)로부터의 커맨드(CMD, 또는 요청)에 따라 n 개의 채널들(CH1 ~ CHn) 각각에 대한 커맨드(CMD)를 큐잉하고, 커맨드(CMD) 또는 커맨드(CMD)와 관련된 데이터(DATA)를 n 개의 채널들(CH1 ~ CHn)을 통해 메모리 장치(220)와 송수신할 수 있다.
본 개시의 일 실시예에 따라, 메모리 컨트롤러(210)는 n 개의 채널들(CH1 ~ CHn)을 중재하는 채널 중재 모듈(211)을 포함할 수 있다. 채널 중재 모듈(211)은 다양한 형태로 구현되어 메모리 컨트롤러(210)에 구비될 수 있다. 예컨대, 채널 중재 모듈(211)은 복수의 채널들을 중재하는 회로와 같은 하드웨어(HW)로 구현될 수 있다. 또는, 채널 중재 모듈(211)은 프로그램을 포함하는 소프트웨어(SW)로 구현될 수 있으며, 프로세싱 유닛이 동작 메모리에 로딩된 채널 중재 모듈(211)을 실행함에 의해 복수의 채널들의 중재와 관련된 각종 처리를 수행할 수 있다. 또는, 채널 중재 모듈(211)은 하드웨어(HW)와 소프트웨어(SW)의 조합으로 구현될 수 있다. 또한, 도 1에는 채널 중재 모듈(211)이 메모리 컨트롤러(210) 내에 구비되는 것으로 도시되었으나, 본 개시의 실시예는 이에 한하지 않는다. 일 예로서, 채널 중재 모듈(211)은 메모리 시스템(200) 내에서 메모리 컨트롤러(210)의 외부에 배치되어도 무방하다.
채널 중재 모듈(211)은 메모리 컨트롤러(210)와 메모리 장치(220)를 연결하는 복수의 채널들을 중재하는 기능을 지원할 수 있다. 일 예로서, 채널 중재 모듈(211)은 메모리 장치(220)의 복수의 메모리 칩들의 동작 상태를 확인하고, 확인한 동작 상태와 동작별 소비 전력에 대한 정보를 기초로 n 개의 채널들(CH1 ~ CHn)을 중재할 수 있다.
예컨대, 채널 중재 모듈(211)은 복수의 메모리 칩들의 동작 상태 및 동작별 소비 전력에 대한 정보를 기초로 전체 소비 전력(가령, 메모리 시스템(200) 또는 메모리 장치(220)의 소비 전력)을 계산할 수 있고, 큐잉된 커맨드(CMD)에 대응하는 메모리 동작을 추가적으로 수행하는 경우에 전체 소비 전력이 허용된 전력량을 초과할지를 예상할 수 있다. 만약 전체 소비 전력이 허용된 전력량을 초과할 것으로 예상되는 경우, 채널 중재 모듈(211)은 해당 커맨드(CMD)의 전송을 보류하는 것으로 결정하고, 해당 커맨드(CMD)에 대응하는 채널의 데이터 송수신을 제한할 수 있다. 반면, 전체 소비 전력이 허용된 전력량을 초과하지 않을 것으로 예상되는 경우, 채널 중재 모듈(211)은 해당 커맨드(CMD)를 전송하는 것으로 결정하고, 해당 커맨드(CMD)에 대응하는 채널의 송수신을 허용할 수 있다.
이에 따라, 메모리 컨트롤러(210)가 복수의 커맨드(CMD)들을 메모리 장치(220)로 전송함에 따라, 메모리 장치(220)가 상기 복수의 커맨드(CMD)들에 대응하는 메모리 동작(또는, 커맨드 처리)들을 병렬적으로 수행하는 과정에서 소비 전력이 허용된 전력량을 초과하는 상황을 방지할 수 있다.
메모리 칩의 동작은 프로그램(program) 동작, 독출(read) 동작, 소거(erase) 동작 및 아이들(idle) 상태 중 적어도 하나를 포함할 수 있다. 그리고 상기 프로그램 동작의 경우, 세부적인 동작들로 구분될 수 있다. 예컨대, 프로그램 동작은 프로그램 커맨드(CMD) 및 데이터(DATA)가 채널을 통해 메모리 칩으로 입력되고, 입력된 프로그램 커맨드(CMD) 및 데이터(DATA)가 메모리 칩에 포함된 입출력 버퍼(미도시)에 버퍼링되는 동작에 대응하는 데이터 입출력 동작(설명의 편의를 위해, 제1 프로그램 동작으로 지칭한다), 그리고 실제 메모리 칩에 포함된 입출력 버퍼에 버퍼링된 데이터(DATA)가 메모리 셀 어레이에 프로그램 또는 기입되는 동작에 대응하는 데이터 기입 동작(설명의 편의를 위해, 제2 프로그램 동작으로 지칭한다)으로 구분될 수 있다. 전술한 제1 프로그램 동작 및 제2 프로그램 동작은 각각 전체 프로그램 동작의 일부를 구성하나, 양 동작 간의 소비 전력의 차이가 크기 때문에 구별될 수 있다.
한편, 전술한 메모리 칩의 동작의 종류는 일 실시예에 불과하며, 본 개시의 실시예는 이에 한하지 않는다. 일 예로서, 독출 동작의 경우, 메모리 셀 어레이로부터 데이터(DATA)가 독출되는 동작과 독출된 데이터(DATA)가 채널을 통해 메모리 컨트롤러(210)로 입력되는 동작으로 구분될 수 있다.
변경 가능한 실시예에 따르면, 채널 중재 모듈(211)은 동작별 소비 전력에 대한 정보를 기초로 파라미터를 설정하고, 설정한 파라미터 및 복수의 메모리 칩들의 동작 상태를 이용하여 n 개의 채널들(CH1 ~ CHn)을 중재할 수 있다. 파라미터는 전체 소비 전력이 기설정된 전력량, 즉, 허용된 전력량을 초과하지 않도록 하는 범위 내에서 각 메모리 동작을 병렬적으로 수행할 수 있는 메모리 칩의 개수일 수 있다. 예컨대, 파라미터는 전체 소비 전력이 허용된 전력량을 초과하지 않도록 하는 범위 내에서 병렬적으로 제1 프로그램 동작을 수행할 수 있는 메모리 칩의 최대 개수일 수 있다. 메모리 칩의 동작은 제1 프로그램 동작 외에도 제2 프로그램 동작, 독출 동작 및 소거 동작 등을 포함할 수 있으므로, 이와 같은 동작들 각각에 대해서도 서로 다른 파라미터들이 설정될 수 있다. 그리고 전술한 복수의 파라미터들은 하나의 파라미터 테이블에 포함될 수 있다. 한편, 파라미터를 설정하는 방법은 전술한 예에 한하지 않는다.
파라미터를 이용하여 중재하는 일 예로서, 채널 중재 모듈(211)은 파라미터에 대응하는 개수의 채널들에 대하여 데이터 송수신을 허용할 수 있다. 예컨대, 채널 중재 모듈(211)은 현재 동작을 수행 중인 메모리 칩에 대응하는 채널들을 포함하여, 파라미터에 대응하는 개수의 채널들에 대하여 데이터 송수신을 허용할 수 있다. 즉, 채널 중재 모듈(211)은 현재 동작을 수행 중인 메모리 칩들의 개수가 파라미터 보다 작은 경우, 큐잉된 커맨드(CMD)에 대응하는 채널의 데이터 송수신을 허용할 수 있다. 반면, 채널 중재 모듈(211)은 동작을 수행 중인 메모리 칩들의 개수가 파라미터와 같은 경우, 큐잉된 커맨드(CMD)에 대응하는 채널의 송수신을 허용하지 않을 수 있다.
이에 따라, 채널 중재 모듈(211)은 소비 전력을 계산하지 않고도 미리 설정된 파라미터와의 비교를 통해 메모리 시스템(200)의 소비 전력을 관리할 수 있으므로, 연산량이 감소될 수 있다.
전술한 본 개시의 실시예에 따른 컴퓨팅 시스템(10)은, 메모리 장치(220) 내 복수의 칩들의 동작 상태에 대한 정보 및 동작별 소비 전력에 대한 정보(또는 이를 기초로 설정된 파라미터)를 기초로 복수의 채널들의 데이터 송수신을 스케줄링함으로써, 메모리 유틸라이제이션(utilization)을 극대화할 수 있다. 따라서, 본 개시의 실시예에 따른 컴퓨팅 시스템(10)은 메모리 장치(220)의 동작 상태와 무관하게 채널의 일부를 동작하지 못하게 막거나, 동작 주파수를 낮추는 등의 효율적이지 못한 종래의 전력 관리 방법에 비해, 보다 높은 시스템 성능을 보장할 수 있으며, 전체 소비 전력이 허용된 전력 수준을 초과하여 전체 시스템에 문제가 발생하는 것을 방지하여 높은 QoS(Quality of Service)를 확보할 수 있다.
도 2a 및 도 2b는 본 개시의 일 실시예에 따른 파라미터 테이블을 나타내는 도면이다.
도 2a를 참조하면, 파라미터 테이블(Table A)은 메모리 칩의 각각의 동작 또는 동작의 조합별로 서로 다른 파라미터들을 포함할 수 있다. 메모리 칩의 각각의 동작은 상기 도 1과 관련하여 전술한 제1 프로그램 동작(PG), 제2 프로그램 동작(tPROG), 독출 동작(RD) 및 소거 동작(ER) 중 적어도 하나를 포함할 수 있으며, 메모리 칩의 동작의 조합은 제1 프로그램 동작(PG) 및 소거 동작(ER)의 조합, 소거 동작(ER) 및 독출 동작(RD)의 조합, 제1 프로그램 동작(PG) 및 독출 동작(RD)의 조합, 또는 제1 프로그램 동작(PG), 소거 동작(ER) 및 독출 동작(RD)의 조합 중 적어도 하나를 포함할 수 있다. 한편, 메모리 칩의 각각의 동작 또는 동작의 조합은 전술한 예에 한하지 않는다.
그리고 파라미터 테이블(Table A)의 열은 상기 각각의 동작 및 동작의 조합들에 대응하는 파라미터들(제1 파라미터 내지 제8 파라미터)을 나타낸다. 예컨대, 파라미터 테이블(Table A)에서 제1 파라미터는 제1 프로그램 동작(PG)에 대응하는 파라미터이고, 제6 파라미터는 제1 프로그램 동작(PG) 및 독출 동작(RD)의 조합에 대응하는 파라미터이고, 제8 파라미터는 제1 프로그램 동작(PG), 소거 동작(ER) 및 독출 동작(RD)의 조합에 대응하는 파라미터를 나타낼 수 있다.
그리고 파라미터 테이블(Table A)의 행은 해당 파라미터에 대응하는 동작을 수행할 수 있는 메모리 칩의 개수를 표시할 수 있다. 예컨대, 파라미터 테이블(Table A)에서 제1 프로그램 동작(PG)에 대응하는 제1 파라미터의 X1은, 제1 프로그램 동작(PG)을 수행할 수 있는 메모리 칩의 최대 개수를 의미할 수 있다. 또한, 제1 프로그램 동작(PG) 및 소거 동작(ER)의 조합에 대응하는 제5 파라미터의 X3 및 Y2는 각각 제1 프로그램 동작(PG)을 수행할 수 있는 메모리 칩의 최대 개수와 소거 동작(ER)을 수행할 수 있는 메모리 칩의 최대 개수를 의미할 수 있다.
도 1의 채널 중재 모듈(211)은 파라미터 테이블(Table A) 중에서, 현재 메모리 칩들의 동작에 대응하는 파라미터를 확인하고, 해당 파라미터에 대응하는 개수의 채널들에 대하여 데이터 송수신을 승인할 수 있다. 예컨대, 채널 중재 모듈(211)은 현재 메모리 칩들이 제1 프로그램 동작(PG)을 수행하는 경우, 그에 대응하는 파라미터로 X1(가령, 3)를 확인하고, X1에 대응하는 개수의 채널들(가령, 3개의 채널들)에 대하여 송수신을 승인할 수 있다.
한편, 전술한 예와 같은 파라미터 테이블은 복수 개 설정될 수 있다. 일 실시예로서, 온도 범위에 따라 서로 다른 파라미터 테이블들이 설정될 수 있다. 메모리 칩의 동작에 따른 소비 전력은 메모리 시스템의 온도에 따라 차이가 발생할 수 있다. 따라서, 메모리 시스템의 온도에 적합한 전력 관리를 수행하기 위해, 채널 중재 모듈(211)은 온도 범위에 따라 서로 다른 파라미터 테이블을 설정하고, 메모리 시스템의 온도에 대응하는 파라미터 테이블을 이용하여 복수의 채널들의 송수신을 스케줄링할 수 있다.
도 2b를 참조하면, 파라미터 테이블(Table B)은 파라미터 테이블(Table A)의 온도 범위(A)와는 다른 범위의 온도 범위(B)에 대응할 수 있다. 파라미터 테이블(Table B)도 파라미터 테이블(Table A)과 같이, 열은 상기 각각의 동작 및 동작의 조합들에 대응하는 파라미터들(제1 파라미터 내지 제8 파라미터)을 나타낼 수 있으며, 행은 해당 파라미터에 대응하는 동작을 수행할 수 있는 메모리 칩의 개수를 표시할 수 있다. 그리고 온도 범위(B)는 온도 범위(A)보다 높거나 낮은 온도 범위일 수 있으며, 온도 범위(B)가 온도 범위(A)보다 높은 온도 범위인 경우, 파라미터 테이블(Table B)에 포함된 파라미터들은 파라미터 테이블(Table A)에 포함된 파라미터들에 비해 전반적으로 적은 개수를 가질 수 있다.
도 1의 채널 중재 모듈(211)은 복수의 파라미터 테이블들(가령, Table A 및 Table B) 중에서 현재의 메모리 시스템의 온도에 대응하는 파라미터 테이블(Table B)을 확인하고, 파라미터 테이블(Table B) 중에서, 현재 메모리 칩들의 동작에 대응하는 파라미터를 확인하고, 해당 파라미터에 대응하는 개수의 채널들에 대하여 데이터 송수신을 승인할 수 있다.
한편, 도 2b와 관련하여, 메모리 시스템의 온도를 고려하여 전력을 관리하기 위해, 채널 중재 모듈(211)이 온도 범위에 따라 복수의 파라미터 테이블들을 생성하는 것으로 설명하였지만, 본 개시는 이에 한하지 않는다. 일 예로서, 채널 중재 모듈(211)은 기준 온도와 현재 온도를 이용하여 기존의 파라미터 테이블을 보정하는 방식으로 전력을 관리할 수도 있다.
도 3은 본 개시의 일 실시예에 따른 복수의 메모리 칩들의 동작 상태에 대한 정보를 나타내는 도면이다.
도 3을 참조하면, 메모리 장치에 포함된 8개의 메모리 칩들(Chip 1 내지 Chip 8)에 대한 동작 상태를 나타내는 동작 상태 정보(Operation Status Info)를 확인할 수 있다. 도 3을 도시하고 설명함에 있어서, 메모리 칩들이 8개인 것으로 도시하고 설명하였지만, 메모리 칩들은 8개보다 적거나 많도록 구현될 수 있다.
일 실시예로서, 메모리 칩들의 동작 상태에 대한 정보는 하나 이상의 비트를 포함하는 정보일 수 있다. 예컨대, 동작 상태 정보(Status Info)가 각 메모리 칩에 대하여 3 비트 이상의 값을 갖는 경우, 각 값들은 제1 프로그램 동작, 제2 프로그램 동작, 독출 동작, 소거 동작 및 아이들 상태 중 적어도 하나를 나타내는 값을 가질 수 있다.
도 3을 참조하면, 8개의 메모리 칩들(Chip 1 내지 Chip 8) 중 제1 칩(Chip 1) 및 제8 칩(CH8)이 제1 프로그램 동작(PG)을 수행 중이고, 제4 칩(Chip 4)이 독출 동작(RD)을 수행 중이며, 나머지 칩들(Chip 2, Chip 3, Chip 5, Chip 6 및 Chip 7)은 아이들 상태(ID)임을 확인할 수 있다.
도 4a 내지 도 4c는 메모리 칩의 동작별 채널의 데이터 송수신을 스케줄링하는 방법을 나타내는 도면이다. 도 4a 내지 도 4c는 시간에 따른 복수의 채널들(CH1 내지 CH8)별 커맨드의 송신을 나타내는 도면이다. 도 1 내지 도 3을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
도 4a는 복수의 메모리 칩들이 제1 프로그램 동작(PG)을 수행하는 경우의 실시예를 나타낸다. 본 개시의 일 실시예에 따른 채널 중재 모듈(211)은 메모리 칩들이 제1 프로그램 동작을 수행 중인 것을 확인하면, 제1 프로그램 동작(PG)에 대응하는 파라미터로 X1을 확인할 수 있다. 그리고 채널 중재 모듈(211)은 X1에 대응하는 개수의 채널들에 대하여 데이터 송수신을 승인할 수 있다.
예컨대, 제1 프로그램 동작(PG)에 대응하는 파라미터 X1이 6인 경우, 채널 중재 모듈(211)은 총 6개의 채널에 대하여 송수신을 승인할 수 있다. 도 3A를 참조하면, 채널 중재 모듈(211)은 제1 시점(t1)에서 제1 채널(CH1) 및 제4 채널(CH4)의 송수신의 승인을 요청하는 요청 신호를 수신할 수 있다. 채널 중재 모듈(211)은 제1 시점(t1)에서 제1 프로그램 동작(PG)을 수행하는 메모리 칩에 대응하는 채널이 없으므로, 제1 채널(CH1) 및 제4 채널(CH4)의 송수신을 승인할 수 있다. 그리고 채널 중재 모듈(211)은 제1 시점(t1) 및 제2 시점(t2) 사이에 제3 채널(CH3), 제6 채널(CH 6), 제2 채널(CH2) 및 제7 채널(CH7)에 대해서 순차적으로 송수신을 승인할 수 있다. 송수신이 승인된 채널에 대응하는 메모리 칩들은 제1 프로그램 동작(PG)을 수행할 수 있다.
한편, 채널 중재 모듈(211)은 제2 시점(t2)에서 제1 프로그램 동작(PG)을 수행하는 메모리 칩에 대응하는 채널이 총 6개이므로, 제5 채널(CH5) 및 제8 채널(CH8)에 대하여 송수신을 승인할 수 없다. 이에 따라, 제5 채널(CH5) 및 제8 채널(CH8)을 통한 커맨드의 전송은 지연(pending)될 수 있다.
그리고 채널 중재 모듈(211)은 제3 시점(t3)에서 제1 채널(CH1) 및 제4 채널(CH4)에 대응하는 메모리 칩들의 제1 프로그램 동작(PG)이 완료된 것을 확인할 수 있다. 즉, 채널 중재 모듈(211)은 제3 시점(t3)에서 제1 프로그램 동작(PG)을 수행하는 메모리 칩에 대응하는 채널이 총 4개이므로, 커맨드 전송이 지연된 채널들인 제5 채널(CH5) 및 제8 채널(CH8)에 대하여 송수신을 승인할 수 있다.
도 4b는 복수의 메모리 칩들이 제1 프로그램 동작(PG) 및 제2 프로그램 동작(tPROG)을 수행하는 경우의 실시예를 나타낸다. 본 개시의 일 실시예에 따른 채널 중재 모듈(211)은 메모리 칩들이 제2 프로그램 동작(tPROG)을 수행 중인 것을 확인하면, 이에 대응하는 파라미터로 X2, X3을 확인할 수 있다. 그리고 채널 중재 모듈(211)은 확인한 파라미터 X2에 대응하는 개수의 채널들에 대하여 제1 프로그램 동작(PG)과 관련된 데이터의 송수신을 승인할 수 있고, 파라미터 X3에 대응하는 개수의 채널들에 대하여 제2 프로그램 동작(tPROG)과 관련된 데이터의 송수신을 승인할 수 있다.
예컨대, 제2 프로그램 동작(tPROG)에 대응하는 파라미터 X2가 1이고, 파라미터 X3이 3인 경우, 채널 중재 모듈(211)은 총 1개의 채널에 대하여 제1 프로그램 동작(PG)과 관련된 데이터의 송수신을 승인할 수 있고, 총 3개의 채널에 대하여 제2 프로그램 동작(tPROG)과 관련된 데이터의 송수신을 승인할 수 있다.
도 4b를 참조하면, 채널 중재 모듈(211)은 제4 시점(t4)에서 제2 프로그램 동작(tPROG)을 수행하는 메모리 칩에 대응하는 채널이 없으므로, 제1 채널(CH1) 내지 제3 채널(CH3)의 송수신을 승인할 수 있다. 그리고 채널 중재 모듈(211)은 제4 시점(t4)에서 제1 프로그램 동작(PG)을 수행하는 메모리 칩에 대응하는 채널이 없으므로, 제6 채널(CH6)의 송수신을 승인할 수 있다.
한편, 채널 중재 모듈(211)은 제5 시점(t5) 및 제6 시점(t6) 사이에서 제1 프로그램 동작(PG)을 수행하는 메모리 칩에 대응하는 채널이 총 1개이므로, 제4 채널(CH4), 제5 채널(CH5), 제7 채널(CH7) 및 제8 채널(CH8)에 대하여 송수신을 승인할 수 없다. 이에 따라, 제4 채널(CH4), 제5 채널(CH5), 제7 채널(CH7) 및 제8 채널(CH8)을 통한 커맨드의 전송은 지연(pending)될 수 있다.
그리고 채널 중재 모듈(211)은 제6 시점(t6)에서 제6 채널(CH6)에 대응하는 메모리 칩의 제1 프로그램 동작(PG)이 완료된 것을 확인할 수 있다. 즉, 채널 중재 모듈(211)은 제6 시점(t6)에서 제1 프로그램 동작(PG)을 수행하는 메모리 칩에 대응하는 채널이 총 0개이므로, 커맨드 전송이 지연된 채널들 중 하나에 대하여 송수신을 승인할 수 있다. 채널 중재 모듈(211)은 커맨드 전송이 지연된 채널들 중 송수신의 승인을 요청하는 요청 신호를 수신한 순서에 따라 송수신을 승인할 수 있다. 예컨대, 채널 중재 모듈(211)은 커맨드 전송이 지연된 채널들 제4 채널(CH4), 제5 채널(CH5), 제7 채널(CH7) 및 제8 채널(CH8) 중 먼저 수신된 요청 신호에 대응하는 제5 채널(CH5)에 대하여 송수신을 승인할 수 있다.
도 4c는 복수의 메모리 칩들이 제1 프로그램 동작(PG) 및 독출 동작(RD)을 수행하는 경우의 실시예를 나타낸다. 본 개시의 일 실시예에 따른 채널 중재 모듈(211)은 메모리 칩들이 제1 프로그램 동작(PG) 및 독출 동작(RD)을 수행 중인 것을 확인하면, 이에 대응하는 파라미터로 X5, Z3을 확인할 수 있다. 그리고 채널 중재 모듈(211)은 확인한 파라미터 X5에 대응하는 개수의 채널들에 대하여 제1 프로그램 동작(PG)과 관련된 데이터의 송수신을 승인할 수 있고, 파라미터 Z3에 대응하는 개수의 채널들에 대하여 독출 동작(RD)과 관련된 데이터의 송수신을 승인할 수 있다.
도 5는 본 개시의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 1 내지 도 5를 참조하면, 메모리 시스템(300)은 메모리 컨트롤러(310) 및 메모리 장치(320)를 포함할 수 있고, 메모리 컨트롤러(310)는 채널 중재 모듈(311) 및 메모리 인터페이스(313)를 포함할 수 있고, 메모리 장치(320)는 n 개의 메모리 칩들(321_1 내지 321_n)을 포함할 수 있다. 채널 중재 모듈(311)은 도 1의 채널 중재 모듈(211)에 대응할 수 있다.
메모리 인터페이스(313)는 메모리 컨트롤러(310)와 메모리 장치(320)의 n 개의 메모리 칩들(321_1 내지 321_n) 각각을 연결하는 n 개의 채널들(CH1 ~ CHn)을 통해 데이터를 송수신할 수 있다. 메모리 인터페이스(313)는 n 개의 채널들(CH1 ~ CHn) 각각에 대한 커맨드(CMD)를 큐잉할 수 있고, 메모리 컨트롤러(310)의 제어에 따라 n 개의 채널들(CH1 ~ CHn)을 통해 커맨드(CMD) 또는 데이터(DATA)를 송수신할 수 있다.
본 개시의 일 실시예에 따르면, 메모리 인터페이스(313)는 제1 채널(CH1)에 대하여 큐잉된 커맨드(CMD)를 전송하기에 앞서, 제1 채널(CH1)의 송수신의 승인을 요청하는 요청 신호(Req)를 채널 중재 모듈(311)에 전송할 수 있다. 그리고 채널 중재 모듈(311)로부터 요청 신호(Req)에 대응하는 승인 신호(Grant)를 수신한 경우, 메모리 인터페이스(313)는 제1 채널(CH1)을 통해 큐잉된 커맨드(CMD) 또는 상기 큐잉된 커맨드(CMD)와 관련된 데이터(DATA)를 송수신할 수 있다. 반면 채널 중재 모듈(311)로부터 요청 신호(Req)에 대응하는 승인 신호(Grant)를 수신하지 못한 경우, 메모리 인터페이스(313)는 제1 채널(CH1)을 통한 송수신을 보류할 수 있다.
본 개시의 일 실시예에 따르면, 채널 중재 모듈(311)은 요청 신호(Req)를 메모리 인터페이스(313)로부터 수신할 수 있다. 채널 중재 모듈(311)은 요청 신호(Req)를 수신하면 n 개의 메모리 칩들(321_1 내지 321_n) 각각의 동작 상태에 대한 정보(Status)를 획득할 수 있다. n 개의 메모리 칩들(321_1 내지 321_n) 각각의 동작 상태에 대한 정보(Status)는, n 개의 메모리 칩들(321_1 내지 321_n) 각각이 제1 프로그램 동작, 제2 프로그램 동작, 독출 동작, 소거 동작 또는 아이들 상태 중 어떤 동작 상태인지 나타내는 정보일 수 있다.
채널 중재 모듈(311)은 n 개의 메모리 칩들(321_1 내지 321_n) 각각의 동작 상태에 대한 정보(Status)를 다양한 방법을 통해 메모리 인터페이스(313)로부터 획득할 수 있다. 예컨대, 채널 중재 모듈(311)은 요청 신호(Req)를 수신하면 메모리 인터페이스(313)에 동작 상태에 대한 정보(Status)를 요청하고, 요청에 대응하여 메모리 인터페이스(313)로부터 상기 동작 상태에 대한 정보(Status)를 수신할 수 있다. 또는, 채널 중재 모듈(311)은 메모리 인터페이스(313)로부터 특정 하드웨어 구성을 통해 n 개의 메모리 칩들(321_1 내지 321_n) 각각의 동작 상태를 나타내는 신호들을 지속적으로 수신하고, 요청 신호(Req)를 수신하면 상기 신호들을 이용하여 동작 상태에 대한 정보(Status)를 생성할 수 있다. 또는, 채널 중재 모듈(311)은 요청 신호(Req)와 무관하게 메모리 인터페이스(313)로부터 동작 상태에 대한 정보를 주기적으로 수신할 수도 있다.
그리고 채널 중재 모듈(311)은 동작 상태에 대한 정보(Status)와 메모리 칩의 동작별 소비 전력을 기초로 설정된 파라미터(312)를 기초로 제1 채널(CH1)의 승인 여부를 결정할 수 있다. 파라미터(312)는 메모리 칩의 각 동작들 또는 이들의 조합별로 서로 다른 파라미터들을 포함할 수 있다. 일 예로서, 파라미터(312)는 전술한 도 3의 예와 같이, 허용된 전력량 내에서, 프로그램 동작, 독출 동작 또는 소거 동작 각각을 수행할 수 있는 메모리 칩의 최대 개수일 수 있으며, 프로그램 동작, 독출 동작 또는 소거 동작의 조합별로 조합에 포함된 동작 각각을 수행할 수 있는 메모리 칩의 개수일 수 있다.
파라미터(312)는 메모리 컨트롤러(310) 내 메모리(미도시) 또는 버퍼(미도시)에 저장되어 채널 중재 모듈(311)에 의해 독출되거나, 채널 중재 모듈(311) 내의 메모리(미도시)에 저장될 수 있다. 채널 중재 모듈(311) 또는 메모리 컨트롤러(310)는 동작별 소비 전력을 이용하여 파라미터(312)를 설정하고 저장할 수 있다.
동작 상태에 대한 정보(Status) 및 파라미터(312)를 이용하여 제1 채널(CH1)의 승인 여부를 결정하는 일 예로서, 채널 중재 모듈(311)은 먼저 동작 상태에 대한 정보(Status)를 기초로 파라미터(312) 중에서 현재 메모리 칩들(321_1 내지 321_n)의 동작에 대응하는 파라미터를 확인할 수 있다. 예컨대, 채널 중재 모듈(311)은 메모리 칩들(321_1 내지 321_n)이 제1 프로그램 동작을 수행하는 것을 확인한 경우, 제1 프로그램 동작에 대응하는 파라미터를 확인할 수 있다.
그리고 채널 중재 모듈(311)은 확인한 파라미터와 동작 상태에 대한 정보(Status)를 비교하여 현재 동작 중인 메모리 칩들의 개수가 상기 최대 개수에 도달했는지 확인할 수 있다. 만약 현재 동작 중인 메모리 칩들의 개수가 상기 최대 개수에 도달하지 않으면 큐잉된 커맨드(CMD)에 대한 동작을 메모리 칩이 추가적으로 수행하더라도 전체 소비 전력이 허용된 전력량을 초과하지 않으므로, 채널 중재 모듈(311)은 제1 채널(CH1)을 승인하는 것으로 결정할 수 있다. 반면 최대 개수에 도달한 경우, 채널 중재 모듈(311)은 전체 소비 전력이 허용된 전력량을 초과하는 것을 방지하기 위해 제1 채널(CH1)을 승인하지 않는 것으로 결정할 수 있다.
채널 중재 모듈(311)은 결정 결과를 메모리 인터페이스(313)에 전송할 수 있다. 예컨대, 채널 중재 모듈(311)은 제1 채널(CH1)을 승인하는 것으로 결정한 때에 승인 신호(Grant)를 메모리 인터페이스(313)에 전송할 수 있다. 반면, 채널 중재 모듈(311)은 제1 채널(CH1)을 승인하지 않는 것으로 결정한 때에는 승인 신호(Grant)를 메모리 인터페이스(313)에 전송하지 않을 수 있다.
한편, 본 개시의 일 실시예에 따르면, 메모리 인터페이스(313)는 상기 요청 신호(Req) 외에도 완료 신호(End)를 채널 중재 모듈(311)에 전송할 수 있다. 일 예로서, 메모리 인터페이스(313)는 n 개의 메모리 칩들(321_1 내지 321_n) 중 어느 하나의 동작이 완료되면 완료 신호(End)를 채널 중재 모듈(311)에 전송할 수 있다. 그리고 채널 중재 모듈(311)은 완료 신호(End)를 수신하면 제1 채널(CH1)에 대한 승인 여부를 다시 결정할 수 있다.
이는 앞서 요청 신호(Req)에 응답하여 제1 채널(CH1)에 대해 승인하지 않는 것으로 결정된 경우에서, n 개의 메모리 칩들(321_1 내지 321_n) 중 어느 하나의 동작이 완료됨에 따라, 제1 채널(CH1)에 큐잉된 커맨드(CMD)에 대응하는 동작을 수행하더라도 전체 소비 전력이 허용된 전력량을 초과하지 않는지를 다시 판단하기 위함이다. 한편, 요청 신호(Req)에 응답하여 제1 채널(CH1)에 대한 승인 신호(Grant)를 이미 전송한 경우에는, 상기 동작이 생략될 수 있다. 채널 중재 모듈(311)이 완료 신호(End)를 수신함에 따라 제1 채널의 승인 여부를 결정하는 동작은 전술한 제1 채널의 승인 여부를 결정하는 실질적으로 동작과 동일하므로, 중복된 설명은 생략한다.
도 6은 본 개시의 일 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 1 내지 도 6을 참조하면, 메모리 컨트롤러(400)는 호스트 인터페이스(410), 프로세서(420), 메모리(430), 온도 센서(440) 및 메모리 인터페이스(450)를 포함할 수 있다. 그리고 메모리(430)는 채널 중재 모듈(431)을 포함할 수 있다. 채널 중재 모듈(431)은 도 1, 도 5 또는 도 6의 채널 중재 모듈(211, 312, 431) 중 하나에 대응할 수 있다.
호스트 인터페이스(410)는 다양한 인터페이스를 통하여 호스트(HOST)와 통신할 수 있다. 일 실시예에 따라, 호스트 인터페이스(410)는 USB(Universal Serial Bus), MMC(MultiMediaCard), PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스를 통해 호스트(HOST)와 통신할 수 있다. 또한, SSD 등과 같은 메모리 시스템에 최적화된 인터페이스로서 NVMe(Non-Volatile Memory Express)가 제안되고 있으며, 본 개시의 호스트 인터페이스(410)에 NVMe 인터페이스가 적용될 수 있다.
본 개시의 일 실시예에 따르면, 호스트 인터페이스(410)는 호스트(HOST)로부터 호스트(HOST)의 사양(specification) 정보를 수신할 수 있다. 사양 정보는 기기 종류에 대한 정보, 모델 정보, 요구되는 메모리 시스템의 소비 전력량에 대한 정보 등을 포함할 수 있다. 한편, 사양 정보가 포함하는 정보는 이에 한하지 않는다.
그리고 채널 중재 모듈(431)은 수신한 호스트(HOST)의 사양 정보를 기초로 파라미터를 설정할 수 있다. 일 예로서, 호스트(HOST)의 종류에 따라 허용되는 전력량이 서로 다를 수 있다는 점에서, 채널 중재 모듈(431)은 호스트(HOST)의 사양 정보에 대응하는 허용 전력량을 기준으로 파라미터를 설정할 수 있다.
프로세서(420)는 중앙 처리 장치(CPU)나 마이크로 프로세서 등을 포함할 수 있으며, 메모리(430)에 저장된 명령어들(instructions)을 실행함으로써 메모리 컨트롤러(400)의 전반적인 동작을 제어할 수 있다. 도 6에는 하나의 프로세서(420)가 도시되었으나, 실시예에 따라 메모리 컨트롤러(400)는 복수의 프로세서(420)를 포함할 수 있다.
메모리(430)는 프로세서(420)의 제어에 따라 동작할 수 있고, DRAM, SRAM과 같은 휘발성 메모리로 구현되거나 PRAM, 플래시 메모리와 같은 비휘발성 메모리로 구현될 수 있다. 채널 중재 모듈(431)은 펌웨어 또는 소프트웨어로 구현될 수 있고, 메모리(430)에 로딩될 수 있다. 한편, 도 6에는 채널 중재 모듈(431)이 메모리(430) 내에 로딩되는 것으로 도시되었지만, 본 개시의 실시예는 이에 한하지 않는다. 일 예로서, 채널 중재 모듈(431)은 메모리 컨트롤러(400) 외부의 메모리(미도시)에 로딩될 수 있고, 하드웨어로 구현된 별도의 구성으로서 메모리 컨트롤러(400)의 내부 또는 외부에 배치될 수도 있다.
온도 센서(440)는 온도를 감지할 수 있다. 일 실시예로서, 온도 센서(440)는 메모리 컨트롤러(400) 내부에 배치되어 주변의 온도를 감지하고, 감지한 온도에 대응하는 전압을 온도 정보로서 출력할 수 있다. 한편, 도 6에는 온도 센서(440)가 메모리 컨트롤러(400) 내에 배치되는 것으로 도시되었지만, 본 개시의 실시예는 이에 한하지 않는다. 일 예로서, 온도 센서(440)는 메모리 장치의 내부 또는 외부의 인근에 배치되어 메모리 장치 주변의 온도를 감지할 수 있다. 또한, 도 6에는 하나의 온도 센서(440)가 도시되었으나, 실시예에 따라, 메모리 컨트롤러(400)는 복수의 온도 센서(440)를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 채널 중재 모듈(431)은 온도 범위에 따라 서로 다른 파라미터를 설정할 수 있다. 채널 중재 모듈(431)은 메모리 시스템의 온도에 따라 허용되는 전력량이 서로 다를 수 있다는 점에서, 각 온도 범위에 대응하는 허용 전력량을 기준으로 파라미터를 달리 설정할 수 있다. 예컨대, 채널 중재 모듈(431)은 온도가 상대적으로 높은 경우에 대하여 상대적으로 낮은 허용 전력량을 기준으로 파라미터를 설정할 수 있다.
그리고 채널 중재 모듈(431)은 메모리 인터페이스(450)로부터 특정 채널의 송수신의 승인을 요청하는 요청 신호를 수신하면, 온도 센서(440)로부터 온도 정보와 복수의 메모리 칩들의 동작 상태에 대한 정보를 획득할 수 있다. 그리고 채널 중재 모듈(431)은 획득한 온도 정보를 이용하여 복수의 파라미터 중에서 메모리 시스템의 온도에 대응하는 파라미터를 확인하고, 확인한 파라미터 및 메모리 장치의 복수의 메모리 칩들의 동작 상태를 이용하여 복수의 채널들의 데이터의 송수신을 스케줄링할 수 있다. 한편, 도 6에는 메모리 컨트롤러(400)가 온도 센서(440)를 구비하는 것으로 도시하였으나, 실시예에 따라 온도 센서(440)는 생략될 수도 있다.
본 개시의 예시적인 실시예에 따르면, 동작별 소비 전력뿐만 아니라 호스트의 사양 정보 또는 온도 정보를 추가적으로 고려하여 파라미터를 설정할 수 있고, 메모리 시스템의 상황에 부합하는 파라미터를 이용하여 복수의 채널들의 데이터 송수신을 제어함으로써, 보다 최적화된 메모리 시스템의 전력 관리가 수행될 수 있다.
도 7은 본 개시의 일 실시예에 따른 채널 중재 모듈을 나타내는 블록도이다.
도 1 내지 도 7을 참조하면, 채널 중재 모듈(500)은 파라미터(510), 중재 코어(520), 잡 스케줄러(530) 및 상태 검사기(540)를 포함할 수 있다. 파라미터(510)는 도 5의 파라미터(510)와 실질적으로 동일하므로, 중복된 설명은 생략한다.
본 개시의 일 실시예에 따르면, 메모리 인터페이스는 n 개의 메모리 칩들 각각에 대응하는 채널에 큐잉된 커맨드 각각에 대한 요청 신호(Req 1 내지 Req n)를 채널 중재 모듈(500)에 전송할 수 있고, n 개의 메모리 칩들 각각의 동작이 완료되면 완료 신호(End 1 내지 End n)를 채널 중재 모듈(500)에 전송할 수 있다. 이때, 요청 신호 및 완료 신호는 각각 대응하는 메모리 칩의 번호 또는 대응하는 메모리 칩에 대한 커맨드(또는 메모리 동작)에 대한 정보를 포함할 수 있다.
잡 스케줄러(530)는 메모리 인터페이스로부터 n 개의 메모리 칩들 각각에 대한 요청 신호(Req 1 내지 Req n) 또는 완료 신호(End 1 내지 End n)를 수신하면, 수신한 요청 신호(Req 1 내지 Req n) 또는 완료 신호(End 1 내지 End n)를 이용하여 잡 스케줄을 생성할 수 있다.
일 예로서, 잡 스케줄러(530)는 메모리 인터페이스로부터 복수의 요청 신호들을 수신하면, 요청 신호를 수신한 순서에 따라 요청 신호에 대응하는 잡들에 대한 잡 스케줄을 생성할 수 있다. 그리고 잡 스케줄러(530)는 메모리 인터페이스로부터 적어도 하나의 완료 신호를 수신하면, 수신한 완료에 대응하는 잡을 잡 스케줄에서 삭제할 수 있다. 잡 스케줄러(530)가 잡 스케줄을 생성하는 방법에 대한 구체적인 설명은 도 8a 및 도 8b와 관련하여 후술한다.
상태 검사기(540)는 n 개의 메모리 칩들 각각의 동작 상태 정보를 생성할 수 있다. 일 예로서, 상태 검사기(540)는 메모리 인터페이스로부터 특정 하드웨어 구성을 통해 n 개의 메모리 칩들 각각의 동작 상태를 나타내는 신호들(Status 1 내지 Status n)을 수신하고, 수신한 신호들을 이용하여 동작 상태에 대한 정보를 생성할 수 있다. 그리고 상태 검사기(540)는 생성한 동작 상태에 대한 정보를 중재 코어(520)에 제공할 수 있다.
중재 코어(520)는 복수의 채널들 중 송수신을 승인할 채널을 판단할 수 있다. 일 예로서, 중재 코어(520)는 잡 스케줄러(530)로부터 잡 스케줄을 수신하면 복수의 채널들 중 송수신을 승인할 채널의 판단이 필요한 것으로 보아, 상태 검사기(540)로부터 동작 상태에 대한 정보를 수신할 수 있다. 그리고 중재 코어(520)는 수신한 동작 상태에 대한 정보를 기초로 파라미터(510)로부터 상기 동작 상태에 대응하는 파라미터를 수신할 수 있다. 중재 코어(520)는 수신한 파라미터에 대응하는 개수의 채널들을 잡 스케줄의 순서에 따라 확인할 수 있다. 그리고 확인한 채널들 중에서 승인 신호(Grant)를 아직 수신하지 못한 채널이 존재하면, 해당 채널에게 승인 신호(Grant)를 전송할 수 있다.
예컨대, 중재 코어(520)는 동작 상태에 대한 정보를 기초로 현재 메모리 칩들이 수행하는 동작이 제1 프로그램 동작임을 확인하면, 제1 프로그램 동작에 대응하는 파라미터(도 2a에 따르면, X1)를 확인할 수 있다. 그리고 중재 코어(520)는 잡 스케줄의 순서에 따라 제1 프로그램 동작을 수행하는 X1개의 채널들을 순차적으로 확인하고, 해당 채널들 중에서 승인 신호(Grant)를 아직 수신하지 못한 채널이 존재하면, 해당 채널에게 승인 신호(Grant)를 전송할 수 있다.
한편, 도 7에서는 채널 중재 모듈(500)이 상태 검사기(540)를 포함하는 것으로 도시되었으나, 실시예에 따라 상태 검사기(540)는 생략될 수 있다. 이 경우, 채널 중재 모듈(500)은 간접적인 방법으로 메모리 칩들의 동작 상태를 확인할 수 있다. 일 예로서, 채널 중재 모듈(500)은 잡 스케줄과 승인 신호(Grant) 송신 이력 등을 이용하여 잡 스케줄에 포함되어 있고 승인 신호(Grant)를 수신한 메모리 칩의 경우, 잡 스케줄에 포함된 커맨드 정보를 기초로 해당 메모리 칩의 동작 상태를 유추할 수 있다. 또한, 채널 중재 모듈(500)은 잡 스케줄에 포함되어 있되 승인 신호(Grant)를 수신하지 않은 메모리 칩의 경우 아이들 상태인 것으로 유추할 수 있다. 또는, 채널 중재 모듈(500)은 호스트로부터 요청받은 잡들의 큐잉(queing) 상태를 이용하여 메모리 칩의 동작 상태를 유추할 수 있다.
본 개시의 일 실시예에 따르면, 채널 중재 모듈(500)은 잡 스케줄을 생성하고, 생성한 잡 스케줄의 순서에 따라 채널의 송수신 승인 여부를 결정함에 따라, 복수의 메모리 칩들에 대한 동작이 예견된 경우에도 순차적으로 복수의 채널들을 스케줄링할 수 있다.
도 8a 및 도 8b는 본 개시의 일 실시예에 따른 잡 스케줄을 생성하는 방법을 나타내는 도면이다.
본 개시의 일 실시예에 따른 잡 스케줄러(530)는, 메모리 인터페이스로부터 수신한 요청 신호들을 수신한 순서에 따라 요청 신호의 FIFO(First In First Out)(531)에 요청 신호들을 입력할 수 있다. 그리고 잡 스케줄러(530)는 메모리 인터페이스로부터 수신한 완료 신호를 수신한 순서에 따라 완료 신호의 FIFO(533)에 입력할 수 있다. 그리고 잡 스케줄러(530)는 요청 신호의 FIFO(531) 및 완료 신호의 FIFO(533)를 이용하여 잡 스케줄(535)을 생성할 수 있다.
이하에서는, 설명의 편의를 위해, 요청 신호의 FIFO(531)에 복수의 요청 신호들(Req 1, Req 3, Req 8 및 Req 4)이 입력되고, 'Req 1, Req 3, Req 8, Req4'의 순서로 잡 스케줄이 생성된 상황을 전제로, 잡 스케줄러(530)가 추가적으로 요청 신호 또는 완료 신호를 수신하여 잡 스케줄(535)을 생성하는 방법을 설명한다.
도 8a를 참조하면, 잡 스케줄러(530)는 메모리 인터페이스로부터 제2 요청 신호(Req 2)를 수신하고(①), 요청 신호의 FIFO(531)에 제2 요청 신호(Req 2)를 입력할 수 있다(②). 그리고 잡 스케줄러(530)는 linked list 또는 search tree와 같은 방식으로 잡 스케줄(535)을 생성할 수 있다. 예컨대, 잡 스케줄러(530)는 요청 신호의 FIFO(531)로부터 순차적으로 요청 신호를 가져와서 기존의 잡 스케줄(535)에 포함되어 있는지 확인하고, 새로운 요청 신호를 잡 스케줄(535)에 포함시킬 수 있다. 즉, 잡 스케줄러(530)는 요청 신호의 FIFO(531)로부터 새로운 요청 신호인 제2 요청 신호(Req 2)를 잡 스케줄(535)에 포함시킬 수 있다(③). 잡 스케줄러(530)는 상기와 같이 생성한 잡 스케줄(535)을 채널 중재 모듈(500)에 제공할 수 있다.
채널 중재 모듈(500)은 잡 스케줄(535)을 수신하면 상태 검사기(540)로부터 동작 상태에 대한 정보를 수신하고, 수신한 동작 상태에 대한 정보를 기초로 현재 메모리 칩들이 수행하는 동작이 제1 프로그램 동작(PG) 및 독출 동작(RD)임을 확인할 수 있다. 그리고 채널 중재 모듈(500)은 확인된 동작에 대응하는 파라미터로 전술한 도 2a의 파라미터 X4와 Z3을 확인할 수 있다.
예컨대, 파라미터 X4 및 Z3이 각각 3일 수 있다. 채널 중재 모듈(500)은 동작 상태에 대한 정보 또는 승인 신호(Grant)의 송신 이력 등을 기초로, 제1 요청(Req 1), 제3 요청(Req 3), 제8 요청(Req 8) 및 제4 요청(Req 4)에 대응하는 메모리 칩들이 이미 승인 신호(Grant)를 수신함에 따라 동작을 수행하고 있음을 확인할 수 있다. 따라서, 채널 중재 모듈(500)은 잡 스케줄(535)의 순서에 따라 승인 신호(Grant)를 수신하지 못한 제2 요청(Req 2)에 대응하는 채널의 송수신의 승인 여부를 결정할 수 있다. 현재 제1 프로그램 동작(PG)을 수행하는 채널은 3개이므로, 채널 중재 모듈(500)은 제2 요청(Req 2)에 대응하는 채널의 송수신을 승인하지 않는 것으로 결정할 수 있다.
도 8b를 참조하면, 잡 스케줄러(530)는 메모리 인터페이스로부터 제3 완료 신호(End 3)를 수신하고(④), 완료 신호의 FIFO(533)에 제3 완료 신호(End 3)를 입력할 수 있다(⑤). 그리고 잡 스케줄러(530)는 완료 신호의 FIFO(533)로부터 순차적으로 완료 신호를 가져와서 잡 스케줄(535)에 포함된 요청 신호들 중 상기 완료 신호에 대응하는 요청 신호를 삭제할 수 있다. 예컨대, 잡 스케줄러(530)는 완료 신호의 FIFO(533)로부터 새로운 완료 신호인 제3 완료 신호(End 3)를 가져와서 잡 스케줄(535)에 포함된 제3 요청 신호(Req 3)를 삭제할 수 있다(⑥). 또한, 도 8b는 도시되어 있지 않으나, 잡 스케줄러(530)는 요청 신호의 FIFO(531) 및 완료 신호의 FIFO(533)에서 제3 요청 신호(Req 3) 및 제3 완료 신호(End 3)를 삭제할 수 있다. 잡 스케줄러(530)는 상기와 같이 생성한 잡 스케줄(535)을 채널 중재 모듈(500)에 제공할 수 있다.
채널 중재 모듈(500)은 잡 스케줄(535)을 수신하면 상태 검사기(540)로부터 동작 상태에 대한 정보를 수신하고, 수신한 동작 상태에 대한 정보를 기초로 현재 메모리 칩들이 수행하는 동작이 제1 프로그램 동작(PG) 및 독출 동작(RD)임을 확인할 수 있다. 그리고 채널 중재 모듈(500)은 확인된 동작에 대응하는 파라미터로 전술한 도 2a의 파라미터 X4와 Z3을 확인할 수 있다.
예컨대, 파라미터 X4 및 Z3이 각각 3일 수 있다. 채널 중재 모듈(500)은 동작 상태에 대한 정보 또는 승인 신호(Grant)의 송신 이력 등을 기초로, 제1 요청(Req 1), 제8 요청(Req 8) 및 제4 요청(Req 4)에 대응하는 메모리 칩들이 승인 신호(Grant)를 수신함에 따라 동작을 수행하고 있음을 확인할 수 있다. 따라서, 채널 중재 모듈(500)은 잡 스케줄(535)의 순서에 따라 승인 신호(Grant)를 수신하지 못한 제2 요청(Req 2)에 대응하는 채널의 송수신의 승인 여부를 다시 결정할 수 있다. 현재 제1 프로그램 동작(PG)을 수행하는 채널은 2개이므로, 채널 중재 모듈(500)은 제2 요청(Req 2)에 대응하는 채널의 송수신을 승인하는 것으로 결정할 수 있다.
도 9는 본 개시의 일 실시예에 따른 채널의 데이터 송수신을 스케줄링하는 방법을 나타내는 도면이다.
도 1 내지 도 9를 참조하면, 메모리 시스템(700)은 메모리 컨트롤러(711) 및 메모리 장치(720)를 포함할 수 있고, 메모리 컨트롤러(711)는 채널 중재 모듈(711) 및 메모리 인터페이스(713)를 포함할 수 있고, 메모리 장치(720)는 n 개의 메모리 칩들(721_1 내지 721_n)을 포함할 수 있다. 일 실시예에 따라, 메모리 인터페이스(713)는 n 개의 메모리 칩들(721_1 내지 721_n) 각각을 연결하는 채널들에 대한 n 개의 핀(715_1 내지 715_n)을 포함할 수 있다. 상기 핀의 용어는 실시예에 따라 단자 또는 출력 핀 등으로 지칭될 수 있다.
본 개시의 일 실시예에 따르면, 채널 중재 모듈(711)은 복수의 채널들 중 송수신을 승인할 채널을 판단하고, 송수신을 승인할 채널들 중에서 승인 신호(Grant)를 아직 수신하지 못한 채널이 존재하는지 판단할 수 있다. 승인 신호(Grant)를 아직 수신하지 못한 채널이 존재하는 경우, 채널 중재 모듈(711)은 해당 채널에게 승인 신호(Grant)를 전송할 수 있다. 그리고 메모리 인터페이스(713)는 채널 중재 모듈(711)로부터 승인 신호(Grant)를 수신하면, 승인 신호(Grant)에 대응하는 채널에 큐잉된 커맨드(CMD)를 해당 채널을 통해 메모리 장치(720)에 전송할 수 있다.
예컨대, 채널 중재 모듈(711)이 송수신을 승인한 채널들 중에서 승인 신호(Grant)를 아직 수신하지 못한 채널로 제2 채널(CH2)을 확인한 경우, 제2 핀 (715_2)에 승인 신호(Grant)를 전송할 수 있고, 메모리 인터페이스(713)는 제2 채널(CH2)에 대하여 큐잉된 커맨드를 제2 핀(715_2)을 통해 제2 메모리 칩(721_2)에 전송할 수 있다. 그리고 제2 메모리 칩(721_2)은 수신한 커맨드에 대응하는 메모리 동작을 수행하고, 수행한 메모리 동작과 관련된 데이터를 다시 제2 핀(715_2)을 통해 메모리 컨트롤러(711)에 전송할 수 있다.
도 10은 본 개시의 일 실시예에 따른 복수의 채널들의 데이터 송수신을 스케줄링하는 방법을 나타내는 순서도이다.
본 실시예에 따른 복수의 채널들의 송수신을 스케줄링하는 방법은 도 1의 메모리 시스템(100), 도 5의 메모리 시스템(300) 또는 도 9의 메모리 시스템(700)에서 수행될 수 있다. 도 1 내지 도 9를 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
도 10을 참조하면, 메모리 시스템은 메모리 칩의 동작별 소비 전력에 대한정보를 기초로 파라미터를 설정할 수 있다(S11). 메모리 칩의 동작별 소비 전력에 대한 정보는 프로그램(program) 동작, 독출(read) 동작, 소거(erase) 동작 및 아이들(idle) 상태 중 적어도 하나의 동작의 소비 전력량을 포함할 수 있다. 그리고 상기 프로그램 동작의 경우, 세부적인 동작들로 구별될 수 있다. 예컨대, 프로그램 동작은 프로그램 커맨드 및 데이터가 채널을 통해 메모리 칩에 입력되고, 입력된 프로그램 커맨드 및 데이터가 메모리 칩에 포함된 입출력 버퍼에 버퍼링되는 동작에 대응하는 데이터 입출력 동작(설명의 편의를 위해, 제1 프로그램 동작으로 지칭한다), 그리고 실제 메모리 칩에 포함된 입출력 버퍼에 버퍼링된 데이터가 메모리 셀 어레이에 프로그램 또는 기입되는 동작에 대응하는 데이터 기입 동작(설명의 편의를 위해, 제2 프로그램 동작)으로 구별될 수 있다.
메모리 시스템은 전체 소비 전력이 기설정된 전력량, 즉, 허용된 전력량을 초과하지 않도록 하는 범위 내에서 각 메모리 동작을 병렬적으로 수행할 수 있는 메모리 칩의 개수를 파라미터로 설정할 수 있다. 또한, 메모리 시스템은 메모리 칩의 각각의 동작 또는 동작의 조합별로 파라미터를 설정할 수 있다.
예컨대, 메모리 시스템은 제1 프로그램 동작, 제2 프로그램 동작, 독출 동작, 소거 동작 각각에 대하여 허용된 전력량을 초과하지 않도록 하는 범위 내에서 해당 동작을 병렬적으로 수행할 수 있는 메모리 칩의 개수들을 파라미터들로 설정할 수 있다. 또한, 메모리 시스템은 제1 프로그램 동작, 제2 프로그램 동작, 독출 동작, 소거 동작들의 조합에 대하여 허용된 전력량을 초과하지 않도록 하는 범위 내에서 해당 조합에 포함된 동작별로 병렬적으로 수행할 수 있는 메모리 칩의 개수를 파라미터들로 설정할 수 있다.
메모리 시스템은 메모리 시스템의 온도 범위에 따라 서로 다른 파라미터를 설정할 수 있다. 예컨대, 메모리 시스템은 온도가 상대적으로 높은 경우에 대하여 상대적으로 낮은 허용 전력량을 기준으로 파라미터를 설정할 수 있다.
메모리 시스템은 호스트로부터 호스트의 사양(specification) 정보를 수신하고, 수신한 사양 정보 및 메모리 칩의 동작별 소비 전력을 기초로 파라미터를 설정할 수 있다. 사양 정보는 기기 종류에 대한 정보, 모델 정보, 요구되는 메모리 시스템의 소비 전력량에 대한 정보 등을 포함할 수 있다. 한편, 사양 정보가 포함하는 정보는 이에 한하지 않는다.
메모리 시스템은 복수의 메모리 칩들의 동작 상태에 대한 정보를 획득할 수 있다(S12). 메모리 칩의 동작 상태는 프로그램(program) 동작, 독출(read) 동작, 소거(erase) 동작 및 아이들(idle) 상태 중 적어도 하나를 포함할 수 있다. 그리고 메모리 시스템은 설정한 파라미터 및 동작 상태에 대한 정보를 기초로 복수의 채널들의 송수신을 제어할 수 있다(S13). 일 예로서, 메모리 시스템은 파라미터에 대응하는 개수의 채널들에 대하여 송수신을 승인할 수 있다. 예컨대, 메모리 시스템은 동작 상태에 대한 정보를 기초로 현재 동작을 수행 중인 것으로 파악되는 메모리 칩에 대응하는 채널들을 포함하여, 파라미터에 대응하는 개수의 채널들에 대하여 송수신을 승인할 수 있다.
도 11은 본 개시의 일 실시예에 따른 복수의 채널들의 데이터 송수신을 스케줄링하는 방법을 나타내는 순서도이다. 상세하게는, 도 11은 도 10의 S12 단계 및 S13 단계의 예시적인 실시예를 설명하기 위한 순서도이다. 이하에서 설명하는 동작들은 도 1, 도 5, 도 6, 도 7 및 도 9의 채널 중재 모듈(211, 311, 431, 500, 711) 중 하나에서 실행될 수 있다.
도 11을 참조하면, 채널 중재 모듈은 제1 채널을 통한 데이터 송수신의 승인 요청을 수신할 수 있다(S21). 그리고 채널 중재 모듈은 복수의 메모리 칩들의 동작 상태에 대한 정보를 획득할 수 있다(S22). 일 예로서, 채널 중재 모듈은 요청을 수신하면 메모리 인터페이스에 동작 상태에 대한 정보를 요청하고, 요청에 대응하여 메모리 인터페이스로부터 상기 동작 상태에 대한 정보를 수신할 수 있다. 또는, 채널 중재 모듈은 메모리 인터페이스로부터 특정 하드웨어 구성을 통해 메모리 칩들 각각의 동작 상태를 나타내는 신호들을 지속적으로 수신하고, 요청을 수신하면 상기 신호들을 이용하여 동작 상태에 대한 정보를 생성할 수 있다. 또는, 채널 중재 모듈은 요청의 수신과 무관하게 메모리 인터페이스로부터 동작 상태에 대한 정보를 주기적으로 수신할 수도 있다.
그리고 채널 중재 모듈은 설정한 파라미터 및 동작 상태에 대한 정보를 기초로 제1 채널의 승인 여부를 결정할 수 있다(S23). 그리고 채널 중재 모듈은 제1 채널의 승인 여부를 메모리 인터페이스에 제공할 수 있다(S24). 메모리 인터페이스는 수신한 제1 채널의 송수신이 승인되면 제1 채널을 통해 제1 메모리 칩과 데이터를 송수신하고, 제1 채널의 송수신이 승인되지 않으면 제1 채널을 통한 데이터의 송수신을 보류할 수 있다. 상기 S23 단계 및 S24 단계에 대하여 구체적인 설명은 도 12 및 도 13과 관련하여 이하에서 설명한다.
도 12는 본 개시의 일 실시예에 따른 대상 채널의 승인 여부를 결정하는 방법을 나타내는 순서도이다.
상세하게는, 도 12는 도 11의 S23 단계의 예시적인 실시예를 설명하기 위한 순서도이다. 이하에서 설명하는 동작들은 도 1, 도 5, 도 6, 도 7 및 도 9의 채널 중재 모듈(211, 311, 431, 500, 711) 중 하나에서 실행될 수 있다.
도 12를 참조하면, 채널 중재 모듈은 복수의 메모리 칩들의 동작에 대응하는 파라미터를 확인할 수 있다(S31). 일 예로서, 채널 중재 모듈은 복수의 메모리 칩들의 동작 상태에 대한 정보를 기초로, 현재 복수의 메모리 칩들이 수행하는 동작이 무엇인지 확인할 수 있다. 그리고 확인한 동작에 대응하는 파라미터를 확인할 수 있다. 예컨대, 채널 중재 모듈은 메모리 칩들이 제1 프로그램 동작을 수행하는 것을 확인한 경우, 제1 프로그램 동작에 대응하는 파라미터를 확인할 수 있다.
변형 가능한 실시예에 따라, 채널 중재 모듈이 온도 범위에 따라 서로 다른 파라미터들을 설정한 경우, 채널 중재 모듈은 온도 센서로부터 메모리 시스템의 온도 정보를 획득하고, 획득한 온도 정보에 대응하는 파라미터를 확인할 수 있다.
그리고 채널 중재 모듈은 확인한 동작을 수행하는 메모리 칩들의 개수가 확인한 파라미터와 동일한지 확인할 수 있다(S32). 만약 확인한 동작을 수행하는 메모리 칩들의 개수가 확인한 파라미터와 동일하면(S32-Y), 현재 동작 중인 메모리 칩들의 소비 전력량이 허용된 전력량에 도달함을 의미할 수 있다. 따라서 추가적인 메모리 칩의 동작 수행으로 인한 소비 전력의 초과를 방지하기 위해, 채널 중재 모듈은 제1 채널을 승인하지 않는 것으로 결정할 수 있다(S34).
반면 확인한 동작을 수행하는 메모리 칩들의 개수가 확인한 파라미터와 동일하지 않으면(S32-N), 현재 동작 중인 메모리 칩들의 소비 전력량이 허용된 전력량에 도달하지 않음을 의미할 수 있다. 따라서 채널 중재 모듈은 제1 채널을 승인하는 것으로 결정할 수 있다(S33).
도 13은 본 개시의 일 실시예에 따른 대상 채널의 승인 여부를 결정하는 방법을 나타내는 순서도이다. 상세하게는, 도 13은 도 12의 변형 가능한 실시예이다.
도 13을 참조하면, 채널 중재 모듈은 복수의 메모리 칩들의 잡 스케줄을 획득할 수 있다(S41). 채널 중재 모듈은 메모리 인터페이스로부터 복수의 메모리 칩들 각각에 대응하는 채널을 통한 데이터의 송수신을 요청하는 요청 신호 도는 복수의 메모리 칩들 각각의 동작이 완료됨을 나타내는 완료 신호를 이용하여 잡 스케줄을 생성할 수 있다.
일 예로서, 채널 중재 모듈은 메모리 인터페이스로부터 복수의 요청 신호들을 수신하면, 요청 신호를 수신한 순서에 따라 요청 신호에 대응하는 잡들에 대한 잡 스케줄을 생성할 수 있다. 그리고 채널 중재 모듈은 메모리 인터페이스로부터 적어도 하나의 완료 신호를 수신하면, 수신한 완료에 대응하는 잡을 잡 스케줄에서 삭제할 수 있다.
그리고 채널 중재 모듈은 복수의 메모리 칩들의 동작에 대응하는 파라미터를 확인할 수 있다(S42). 그리고 채널 중재 모듈은 확인한 파라미터 및 잡 스케줄을 이용하여 데이터 송수신을 승인할 채널을 확인할 수 있다(S43). 일 예로서, 채널 중재 모듈은 잡 스케줄의 순서에 따라 대응하는 채널들을 확인한 파라미터에 대응하는 개수만큼 확인할 수 있다. 예컨대, 복수의 메모리 칩들이 제1 프로그램 동작을 수행하고, 이에 대응하는 파라미터의 값이 3인 경우, 채널 중재 모듈은 잡 스케줄의 순서에 따라 제1 프로그램 동작에 대응하는 채널을 3개 확인할 수 있다.
그리고 채널 중재 모듈은 승인된 채널 중 제1 채널이 포함되는지 확인할 수 있다(S44). 만약 제1 채널이 포함되지 않은 경우(S44-N), 채널 중재 모듈은 제1 채널을 승인하지 않는 것으로 결정할 수 있다. 반면 제1 채널이 포함된 경우(S44-Y), 채널 중재 모듈은 제1 채널을 승인하는 것으로 결정할 수 있다.
한편, 제1 채널을 승인하지 않은 것으로 결정되었다 하더라도, 채널 중재 모듈은 기설정된 이벤트가 발생하면 제1 채널에 대한 데이터 송수신의 승인 여부를 다시 판단할 수 있다. 여기서 기설정된 이벤트는, 호스트로부터 새로운 요청이 수신되어, 채널 중재 모듈이 메모리 인터페이스로부터 상기 요청에 대응하는 채널에 대한 데이터 송수신의 요청을 수신하는 이벤트일 수 있다. 또는 기설정된 이벤트는 복수의 메모리 칩들 중 하나의 동작이 완료됨에 따라 채널 중재 모듈이 메모리 인터페이스로부터 완료 신호를 수신하는 이벤트일 수 있다. 이 경우, 채널 중재 이벤트는 수신한 요청 신호 또는 완료 신호를 반영하여 잡 스케줄을 업데이트하고, 업데이트한 잡 스케줄을 기초로 제1 채널에 대한 데이터의 송수신의 승인 여부를 다시 판단할 수 있다.
도 14는 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 14를 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1010), 메모리(1020), 메모리 시스템(1030), 모뎀(1040), 입출력 장치(1050) 및 파워 서플라이(1060)를 포함할 수 있다. 메모리 시스템(1030)은 채널 중재 모듈(1031)을 포함할 수 있다. 컴퓨팅 시스템(1000)은 데이터를 저장하는 메모리 시스템(1030)이 장착된 다양한 종류의 시스템일 수 있다. 일 예로서, 컴퓨팅 시스템(1000)은 서버 장치, 컴퓨터, 넷북(net-book), 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트 폰(smart phone), e-북(e-book), 네비게이션(navigation) 장치, 디지털 카메라(digital camera), 웨어러블(wearable) 장치, IoT(internet of things;) 장치, IoE(internet of everything:) 장치, e-북(e-book), VR(virtual reality) 장치 및 AR(augmented reality) 장치 등 다양한 종류의 시스템에 해당할 수 있다.
본 실시예에서, 메모리 시스템(1030)은 전술한 실시예 중 어느 하나의 실시예에 해당하는 메모리 시스템이 적용될 수 있다. 이에 따라, 메모리 시스템(1030) 내 복수의 칩들의 동작 상태 및 동작별 소비 전력에 대한 정보(또는 이를 기초로 설정된 파라미터)를 기초로 복수의 채널들의 데이터 송수신을 제어할 수 있으므로, 전체 소비 전력이 허용된 전력 수준을 초과하여 전체 시스템에 문제가 발생하는 것을 방지할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 메모리 칩들을 구비한 메모리 장치를 포함하는 메모리 시스템의 동작 방법으로서,
    메모리 칩의 복수의 동작 상태들 각각의 소비 전력에 대한 정보를 기초로, 상기 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 개수를 정의하는 파라미터를 설정하는 단계;
    상기 복수의 메모리 칩들 각각의 동작 상태에 대한 정보를 획득하는 단계; 및
    상기 파라미터 및 상기 동작 상태에 대한 정보를 기초로 상기 복수의 메모리 칩들 각각에 대응하는 복수의 채널들의 데이터 송수신을 스케줄링하는 단계;를 포함하는 방법.
  2. 제1항에 있어서,
    상기 파라미터를 설정하는 단계는,
    상기 소비 전력에 대한 정보를 이용하여, 전체 소비 전력이 기설정된 전력량을 초과하지 않도록, 상기 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 최대 개수를 상기 파라미터로 설정하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 파라미터를 설정하는 단계는,
    상기 메모리 칩의 복수의 동작 상태들 각각 또는 이들의 조합에 따라 서로 다른 파라미터들을 설정하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 복수의 채널들의 데이터 송수신을 스케줄링하는 단계는,
    상기 동작 상태에 대한 정보를 기초로 상기 복수의 메모리 칩들의 동작에 대응하는 파라미터를 확인하는 단계; 및
    상기 확인한 파라미터를 기초로 상기 복수의 채널들의 데이터 송수신을 스케줄링하는 단계;를 포함하는 것을 특징으로 하는 방법.
  5. 메모리 시스템에 있어서,
    복수의 메모리 칩들을 포함하는 메모리 장치;
    상기 메모리 장치의 동작을 제어하는 메모리 컨트롤러; 및
    상기 복수의 메모리 칩들 각각과 상기 메모리 컨트롤러를 연결하는 복수의 채널들;을 포함하고,
    상기 메모리 컨트롤러는,
    상기 복수의 메모리 칩들 각각의 동작 상태들을 확인하고, 메모리 칩의 복수의 동작 상태들 각각의 소비 전력에 대한 정보를 기초로, 상기 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 개수를 정의하도록 설정된 파라미터 및 상기 확인한 동작 상태들을 이용하여 상기 복수의 채널들의 데이터 송수신을 스케줄링하는 것을 특징으로 하는 메모리 시스템.
  6. 제5항에 있어서,
    상기 메모리 컨트롤러는,
    상기 파라미터 및 상기 확인한 동작 상태들을 이용하여, 전체 소비 전력이 기설정된 전력량을 초과하지 않도록, 데이터의 송수신을 승인할 채널의 개수를 판단하고, 상기 판단한 개수의 채널들에 대하여 송수신을 승인하는 것을 특징으로 하는 메모리 시스템.
  7. 제6항에 있어서,
    상기 메모리 컨트롤러는,
    상기 메모리 시스템의 잡들의 순서에 따라 대응하는 채널들을 상기 판단한 개수만큼 확인하고, 상기 확인한 채널들의 송수신을 승인하는 것을 특징으로 하는 메모리 시스템.
  8. 제7항에 있어서,
    상기 메모리 컨트롤러는,
    상기 송수신이 승인되지 않은 채널에 대응하는 잡을 지연하는 것을 특징으로 하는 메모리 시스템.
  9. 제5항에 있어서,
    상기 메모리 컨트롤러는,
    호스트로부터 새로운 요청을 수신하거나, 상기 복수의 메모리 칩들 중 적어도 하나의 동작이 완료되면, 송수신을 승인할 채널을 판단하는 것을 특징으로 하는 메모리 시스템.
  10. 복수의 메모리 칩들을 포함하는 메모리 장치의 동작을 제어하는 메모리 컨트롤러에 있어서,
    상기 복수의 메모리 칩들 각각과 상기 메모리 컨트롤러를 연결하는 복수의 채널들을 통해 데이터를 송수신하는 메모리 인터페이스;
    상기 메모리 인터페이스로부터 제1 채널을 통한 데이터 송수신의 승인 요청을 수신한 경우, 상기 복수의 메모리 칩들 각각의 동작 상태에 대한 정보를 획득하고, 메모리 칩의 복수의 동작 상태들 각각의 소비 전력을 기초로, 상기 복수의 동작 상태들 각각에 대하여 병렬 수행 가능한 메모리 칩들의 개수를 정의하도록 설정된 파라미터 및 상기 동작 상태에 대한 정보를 기초로 상기 제1 채널의 승인 여부를 결정하고, 상기 결정 결과를 상기 메모리 인터페이스에 제공하는 채널 중재 모듈;을 포함하는 메모리 컨트롤러.
KR1020190148089A 2019-11-18 2019-11-18 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 KR20210060253A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190148089A KR20210060253A (ko) 2019-11-18 2019-11-18 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법
US17/078,194 US11531630B2 (en) 2019-11-18 2020-10-23 Memory controller, memory system and operating method of the memory system for scheduling data access across channels of memory chips within the memory system
CN202011238027.6A CN112820337A (zh) 2019-11-18 2020-11-09 存储器控制器、存储器***和存储器***的操作方法
US18/050,098 US12013797B2 (en) 2019-11-18 2022-10-27 Memory controller, memory system and operating method of the memory system using a channel arbitration circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190148089A KR20210060253A (ko) 2019-11-18 2019-11-18 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210060253A true KR20210060253A (ko) 2021-05-26

Family

ID=75853088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190148089A KR20210060253A (ko) 2019-11-18 2019-11-18 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (2) US11531630B2 (ko)
KR (1) KR20210060253A (ko)
CN (1) CN112820337A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210060253A (ko) 2019-11-18 2021-05-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법
CN116032930A (zh) * 2021-10-27 2023-04-28 华为技术有限公司 网络存储方法、存储***、数据处理单元及计算机***

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546549A (en) 1994-06-01 1996-08-13 International Business Machines Corporation Multi-path channel (MPC) interface with user transparent, unbalanced, dynamically alterable computer input/output channels
US6732323B1 (en) 2000-10-12 2004-05-04 3Com Corporation Method of selecting initialization parameters for multi-channel data communication with forward error correction
JP4694040B2 (ja) * 2001-05-29 2011-06-01 ルネサスエレクトロニクス株式会社 半導体記憶装置
US6857055B2 (en) * 2002-08-15 2005-02-15 Micron Technology Inc. Programmable embedded DRAM current monitor
SE0400998D0 (sv) 2004-04-16 2004-04-16 Cooding Technologies Sweden Ab Method for representing multi-channel audio signals
US8190425B2 (en) 2006-01-20 2012-05-29 Microsoft Corporation Complex cross-correlation parameters for multi-channel audio
KR101005997B1 (ko) * 2009-01-29 2011-01-05 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8533403B1 (en) 2010-09-30 2013-09-10 Apple Inc. Arbitration unit for memory system
US9141568B2 (en) 2011-08-25 2015-09-22 Apple Inc. Proportional memory operation throttling
JP5961980B2 (ja) 2011-11-19 2016-08-03 ヤマハ株式会社 音響信号処理装置
US9223373B2 (en) 2012-03-21 2015-12-29 Hgst Technologies Santa Ana, Inc. Power arbitration for storage devices
SI2866354T1 (sl) 2013-10-25 2019-11-29 Vito Nv Vlaamse Instelling Voor Tech Onderzoek Nv Postopek in sistem za zagotavljanje pulzirane moči in podatkov na vodilu
FR3030774B1 (fr) 2014-12-19 2017-01-20 Thales Sa Procede de determination de parametres d'un filtre de compression et radar multivoies associe
US9711232B2 (en) 2015-09-22 2017-07-18 Samsung Electronics Co., Ltd. Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
US10509591B2 (en) 2017-05-18 2019-12-17 Sandisk Technologies Llc Distributed power management for non-volatile memory controllers using average and peak power credits allocated to memory channels
US10372373B1 (en) * 2018-01-29 2019-08-06 Western Digital Technologies, Inc. Adaptive power balancing for memory device operations
JP7013294B2 (ja) * 2018-03-19 2022-01-31 キオクシア株式会社 メモリシステム
US11687277B2 (en) * 2018-12-31 2023-06-27 Micron Technology, Inc. Arbitration techniques for managed memory
KR20210060253A (ko) 2019-11-18 2021-05-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법

Also Published As

Publication number Publication date
CN112820337A (zh) 2021-05-18
US12013797B2 (en) 2024-06-18
US20230084601A1 (en) 2023-03-16
US20210149828A1 (en) 2021-05-20
US11531630B2 (en) 2022-12-20

Similar Documents

Publication Publication Date Title
US10387081B2 (en) System and method for processing and arbitrating submission and completion queues
US10466904B2 (en) System and method for processing and arbitrating submission and completion queues
US10466903B2 (en) System and method for dynamic and adaptive interrupt coalescing
KR102358691B1 (ko) 저장 장치의 요청 방법 및 호스트의 커맨드 발행 방법
CN107179996B (zh) 数据存储装置和其操作方法
KR20190079831A (ko) 비동기적 동작 수행이 가능한 비휘발성 메모리 장치와 이를 포함하는 메모리 시스템, 그리고 이의 동작 수행 방법
JP2016122227A (ja) メモリシステムおよび情報処理システム
KR20130127274A (ko) 메모리 오퍼레이션 타이밍 제어 방법 및 이를 이용한 메모리 시스템
US10346052B2 (en) Memory system with priority processing and operating method thereof
US12013797B2 (en) Memory controller, memory system and operating method of the memory system using a channel arbitration circuit
US11797221B2 (en) Method of operating storage device for improving QoS latency and storage device performing the same
US20220350655A1 (en) Controller and memory system having the same
US20200042238A1 (en) Data storage device, method of operating the same, and storage system having the same
CN109284241A (zh) 存储等待时间信息的存储设备、处理器和计算***
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
KR20200076431A (ko) 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템
US20190354483A1 (en) Controller and memory system including the same
KR20190023196A (ko) 데이터 저장 장치
US20190138473A1 (en) Semiconductor devices including command priority policy management and related systems
CN109542336B (zh) 存储设备及其操作方法
KR20200073016A (ko) 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
EP4375839A1 (en) Method of operating storage device using program suspension control and storage device performing the same
US20230068365A1 (en) Storage package, storage device and method for operating the storage device
KR20220094726A (ko) 메모리 컨트롤러, 비휘발성 메모리 장치 및 그 스토리지 장치
KR20240077792A (ko) 프로그램 서스펜션 제어를 이용한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal