[go: up one dir, main page]

KR102725762B1 - 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 - Google Patents

메모리 컨트롤러 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR102725762B1
KR102725762B1 KR1020190013293A KR20190013293A KR102725762B1 KR 102725762 B1 KR102725762 B1 KR 102725762B1 KR 1020190013293 A KR1020190013293 A KR 1020190013293A KR 20190013293 A KR20190013293 A KR 20190013293A KR 102725762 B1 KR102725762 B1 KR 102725762B1
Authority
KR
South Korea
Prior art keywords
command
temperature
memory
score
operation mode
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020190013293A
Other languages
English (en)
Other versions
KR20200095679A (ko
Inventor
진영재
김주영
박용상
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020190013293A priority Critical patent/KR102725762B1/ko
Priority to US16/659,129 priority patent/US11106559B2/en
Priority to CN201911067389.0A priority patent/CN111522504B/zh
Publication of KR20200095679A publication Critical patent/KR20200095679A/ko
Application granted granted Critical
Publication of KR102725762B1 publication Critical patent/KR102725762B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0683Plurality of storage devices
    • 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
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 기술은 그룹별로 구분된 메모리 장치의 온도 상태를 온도 스코어로서 업데이트하도록 구성된 온도 모니터; 및 상기 온도 스코어를 이용하여 커맨드 스코어를 업데이트하며, 현재 동작 모드에 맞도록 상기 커맨드 스코어의 우선순위를 변경하도록 구성된 스케줄러를 포함할 수 있다.

Description

메모리 컨트롤러 및 이를 포함하는 메모리 시스템{MEMORY CONTROLLER AND MEMORY SYSTEM INCLUDING THE SAME}
본 발명은 반도체 회로에 관한 것으로서, 특히 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 관한 것이다.
메모리 시스템(Memory System)은 데이터가 저장되는 메모리 장치(Memory Device)와, 메모리 장치를 제어하는 메모리 컨트롤러(Memory Controller)를 포함할 수 있다.
메모리 장치는 전원 공급이 중단되더라도 데이터가 소실되지 않는 비휘발성 메모리 장치(Nonvolatile Memory Device)와, 전원 공급이 중단되면 데이터가 소실되는 휘발성 메모리 장치(Volatile Memory Device)를 포함할 수 있다. 메모리 시스템에 따라 메모리 장치는 비휘발성 메모리 장치로 이루어지거나 휘발성 메모리 장치로 이루어질 수 있다.
메모리 컨트롤러는 호스트(Host)와 메모리 장치 사이에서 통신할 수 있다. 예를 들면, 메모리 컨트롤러는 호스트로부터 요청(request)이 수신되면, 수신된 요청을 수행하기 위해 메모리 장치를 제어할 수 있다. 예를 들면, 메모리 컨트롤러는 호스트로부터 라이트 요청(write request)이 수신되면, 메모리 장치를 제어하기 위한 라이트 커맨드를 생성하고, 라이트 커맨드와 호스트로부터 수신된 데이터를 메모리 장치에 순차적으로 전송할 수 있다. 또한, 메모리 컨트롤러를 호스트로부터 리드 요청(read request)과 논리 어드레스(logical address)가 수신되면, 메모리 장치를 제어하기 위한 리드 커맨드를 생성한 후, 리드 커맨드와 논리 어드레스에 대응되는 물리 어드레스(physical address)를 메모리 장치에 순차적으로 전송할 수 있다.
메모리 장치는 대용량화 및 고집적화로 인해 다수의 메모리 셀들을 포함할 수 있으나, 이로 인해 메모리 장치의 특정 영역의 온도가 높아지는 발열 현상이 발생할 수 있다. 발열은 메모리 장치의 성능 및 수명 저하를 일으킬 수 있으므로, 메모리 시스템의 신뢰성을 저하시키는 원인이 될 수 있다.
본 발명의 실시예는 반도체 장치의 온도 및 성능을 고려하여 효율적인 명령 스케줄링이 가능한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템을 제공한다.
본 발명의 실시예는 그룹별로 구분된 메모리 장치의 온도 상태를 온도 스코어로서 업데이트하도록 구성된 온도 모니터; 및 상기 온도 스코어를 이용하여 커맨드 스코어를 업데이트하며, 현재 동작 모드에 맞도록 상기 커맨드 스코어의 우선순위를 변경하도록 구성된 스케줄러를 포함할 수 있다.
본 발명의 실시예는 호스트로부터 요청들을 수신하고, 메모리 장치로부터 리드된 데이터를 상기 호스트로 출력하는 호스트 인터페이스; 및 상기 메모리 장치의 온도 상태를 업데이트하고, 상기 요청들이 수신되면 상기 온도 상태 및 현재 설정된 동작 모드에 따라 상기 메모리 장치에 제공될 커맨드들의 발행 순서를 변경하도록 구성된 커맨드/어드레스 컨트롤러를 포함할 수 있다.
본 기술은 반도체 장치의 온도 및 성능을 고려하여 효율적인 명령 스케줄링이 가능하다.
도 1은 본 발명의 실시예에 따른 메모리 시스템의 구성을 나타낸 도면,
도 2는 도 1의 메모리 장치의 실시예의 구성을 나타낸 도면,
도 3은 본 발명의 실시예에 따른 멀티 스택 구조의 메모리 장치의 구성을 나타낸 도면,
도 4는 도 1의 메모리 컨트롤러의 실시예의 구성을 나타낸 도면,
도 5는 도 4의 커맨드/어드레스 컨트롤러의 실시예의 구성을 나타낸 도면,
도 6은 도 5의 스케줄러의 구성을 나타낸 도면,
도 7은 커맨드 스코어 테이블의 구성을 나타낸 도면,
도 8은 도 5의 온도 모니터의 구성을 나타낸 도면,
도 9는 도 8의 온도 스코어 테이블의 구성을 나타낸 도면,
도 10은 본 발명의 실시예에 따른 커맨드 스케줄링 동작을 설명하기 위한 도면,
도 11은 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예의 구성을 나타낸 도면,
도 12는 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예의 구성을 나타낸 도면,
도 13은 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예의 구성을 나타낸 도면이고,
도 14는 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예의 구성을 나타낸 도면이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 메모리 시스템의 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 메모리 시스템(1000)은 데이터가 저장되는 메모리 장치(Memory Device; 1100)와, 호스트(Host; 2000)와 메모리 장치(1100) 사이에서 통신하는 메모리 컨트롤러(memory Controller; 1200)를 포함할 수 있다.
메모리 장치(1100)는 전원 공급이 중단되더라도 저장된 데이터가 소실되지 않는 비휘발성 메모리 장치(Nonvolatile Memory Device) 또는 전원 공급이 중단되면 저장된 데이터가 소실되는 휘발성 메모리 장치(Volatile Memory Device)로 이루어질 수 있다.
메모리 장치(1100)는 데이터가 저장되는 다수의 메모리 셀들을 포함하며, 메모리 셀들은 다양한 그룹 단위로 구분될 수 있다.
메모리 장치(1100)는 예를 들어, 하나 이상의 상위 레벨 메모리 그룹(High Level Memory Group)을 포함할 수 있고, 상위 레벨 메모리 그룹은 하나 이상의 중간 레벨 메모리 그룹(Middle Level Memory Group)을 포함할 수 있으며, 중간 레벨 메모리 그룹은 하나 이상의 하위 레벨 메모리 그룹(Low Level Memory Group)을 포함할 수 있다.
메모리 시스템(1000)에는 버퍼 메모리(Buffer Memory; 1300)가 더 포함될 수 있다. 버퍼 메모리(1300)는 호스트(2000)와 메모리 장치(1100) 사이의 데이터 교환을 제어하거나, 메모리 장치(1100)의 제어를 위한 시스템 데이터를 일시적으로 저장하기 위해 사용될 수 있다.
버퍼 메모리(1300)는 메모리 컨트롤러(1200)의 동작 메모리 또는 캐시 메모리로 사용될 수 있다. 또한, 버퍼 메모리(1300)는 메모리 컨트롤러(1200)가 실행하는 코드들 및 커맨드들을 일시적으로 저장할 수 있다.
버퍼 메모리(1300)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), DDR4 SDRAM, LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR) 또는 RDRAM(Rambus Dynamic Random Access Memory)을 포함할 수 있다.
호스트(2000)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 메모리 시스템(1000)과 통신할 수 있다.
메모리 컨트롤러(1200)는 메모리 시스템(1000)의 동작을 전반적으로 제어하며, 호스트(2000)와 메모리 장치(1100) 사이의 데이터 교환을 제어할 수 있다.
메모리 컨트롤러(1200)는 호스트(2000)로부터 입력된 데이터를 버퍼 메모리(1300)에 일시 저장하고, 이후 버퍼 메모리(1300)에 일시 저장된 데이터를 메모리 장치(1100)로 전송하여 저장할 수 있다.
메모리 컨트롤러(1200)는 호스트(2000)로부터 데이터와 논리 어드레스(logical address)를 입력 받고, 논리 어드레스를 메모리 장치(1100)의 물리 어드레스(physical address)로 변환할 수 있다. 또한 메모리 컨트롤러(1200)는 논리 어드레스와 물리 어드레스 간의 맵핑(mapping) 관계를 구성하는 논리-물리 어드레스 맵핑 정보(logical-physical address mapping information)를 버퍼 메모리(1300)에 저장할 수도 있다.
메모리 컨트롤러(1200)는 메모리 장치(1100)의 그룹 별 즉, 상위 레벨 메모리 그룹, 중간 레벨 메모리 그룹 및 하위 레벨 메모리 그룹 별로 온도 상태를 실시간으로 업데이트하여 생성한 온도 스코어를 포함하는 커맨드 스코어에 따라 커맨드들의 발행(issue) 순서를 조정할 수 있다.
메모리 컨트롤러(1200)는 동작 모드에 따라 커맨드 스코어의 우선순위 즉, 커맨드 스코어의 세부 항목들의 우선순위를 변경할 수 있다.
예를 들어, 본 발명의 실시예에 따른 메모리 시스템(1000)은 제 1 동작 모드(Low Temperature Mode: 이하, LT) 또는 제 2 동작 모드(Short Latency Mode: SL)로 동작할 수 있다.
제 1 동작 모드(LT)는 메모리 장치(1100)의 온도 저하를 최우선으로 하는 동작 모드 즉, 안정적인 동작을 최우선으로 한 동작 모드이다.
제 2 동작 모드(SL)는 메모리 장치(1100)의 동작 속도를 최우선으로 하는 동작 모드이다.
도 2는 도 1의 메모리 장치의 실시예의 구성을 나타낸 도면이다.
도 2에 도시된 바와 같이, 메모리 장치(1100)는 하나 이상의 상위 레벨 메모리 그룹(High Level Memory Group: HLMG)을 포함할 수 있고, 상위 레벨 메모리 그룹(HLMG)은 하나 이상의 중간 레벨 메모리 그룹(Middle Level Memory Group: MLMG)을 포함할 수 있고, 중간 레벨 메모리 그룹(MLMG)은 하나 이상의 하위 레벨 메모리 그룹(Low Level Memory Group: LLMG)을 포함할 수 있다.
하위 레벨 메모리 그룹(LLMG)에는 다수의 메모리 셀들이 포함될 수 있다.
상위 레벨 메모리 그룹(HLMG), 중간 레벨 메모리 그룹(MLMG) 및 하위 레벨 메모리 그룹(LLMG)은 서로 다른 어드레스에 의해 서로 구분될 수 있으며 관리될 수 있다.
상위 레벨 메모리 그룹(HLMG), 중간 레벨 메모리 그룹(MLMG) 및 하위 레벨 메모리 그룹(LLMG)은 각 영역들을 구분하기 위한 명칭이므로, 상술한 명칭 외에도 저장 영역의 명칭은 랭크(rank), 슬라이스(slice), 채널(channel), 플래인(plane), 뱅크 그룹(bank group), 뱅크(bank) 등과 같이 다양하게 표현될 수 있다. 이하 설명되는 본 실시예에서는 상위 레벨 메모리 그룹(HLMG), 중간 레벨 메모리 그룹(MLMG) 및 하위 레벨 메모리 그룹(LLMG)을 실시예로써 설명하지만, 저장 영역의 명칭은 이에 제한되지 않는다.
예를 들어, 상위 레벨 메모리 그룹(HLMG)은 랭크, 슬라이스, 채널 또는 플래인이 될 수 있고, 중간 레벨 메모리 그룹(MLMG)은 뱅크 그룹이 될 수 있으며, 하위 레벨 메모리 그룹(LLMG)은 뱅크가 될 수 있다.
도 3은 본 발명의 실시예에 따른 멀티 스택 구조의 메모리 장치의 구성을 나타낸 도면이다.
도 3을 참조하면, 본 발명의 실시예에 따른 멀티 스택 구조의 메모리 장치(1100)는 적층된 다수의 상위 레벨 메모리 그룹들(HLMG) 예를 들어, 제 1 내지 제 8 상위 레벨 메모리 그룹들(HLMG1~HLMG8)을 포함할 수 있다.
제 1 내지 제 8 상위 레벨 메모리 그룹들(HLMG1~HLMG8) 각각에는 도 2를 참조하여 설명한 바와 같이, 적어도 하나의 중간 레벨 메모리 그룹(MLMG) 및 적어도 하나의 하위 레벨 메모리 그룹(LLMG)을 포함할 수 있다.
도 4는 도 1의 메모리 컨트롤러의 실시예의 구성을 나타낸 도면이다.
도 4를 참조하면, 메모리 컨트롤러(1200)는 내부 메모리(Internal Memory; 210), 중앙 처리 장치(Central Processing Unit; 220), 커맨드/어드레스 컨트롤러(CMD/ADD Controller; 230), 호스트 인터페이스(Host Interface; 240), 버퍼 인터페이스(Buffer Interface; 250) 및 메모리 인터페이스(Memory Interface; 260)를 포함할 수 있다.
내부 메모리(210)는 메모리 컨트롤러(1200)의 동작에 필요한 다양한 시스템 정보들을 저장할 수 있으며, 이 외에도 메모리 시스템(1000)의 동작에 필요한 어드레스 맵핑 정보, 디버깅(debugging) 정보 등을 저장할 수 있다. 예를 들면, 내부 메모리(210)는 SRAM으로 구현될 수 있다.
중앙 처리 장치(220)는 메모리 장치(1100)를 제어하기 위한 각종 연산을 수행하거나 펌웨어(firmware)를 수행할 수 있다. 중앙 처리 장치(220)는 호스트(2000)로부터 수신된 요청(request)을 커맨드/어드레스 컨트롤러(230)로 전송할 수 있다. 중앙 청리 장치(220)는 내부 메모리(210), 커맨드/어드레스 컨트롤러(230), 호스트 인터페이스(240), 버퍼 인터페이스(250) 및 메모리 인터페이스(260)를 전반적으로 제어할 수 있다.
호스트 인터페이스(240)는 중앙 처리 장치(220)의 제어에 따라 메모리 시스템(1000)과 접속되는 호스트(2000)와 통신하도록 구성될 수 있다.
버퍼 인터페이스(250)는 메모리 컨트롤러(1200)의 외부에 버퍼 메모리(1300)가 배치된 경우, 중앙 처리 장치(220)의 제어에 따라 버퍼 메모리(1300)에 정보를 전송하거나, 버퍼 메모리(1300)에 저장된 정보를 중앙 처리 장치(220)로 전송할 수 있다.
메모리 인터페이스(260)는 중앙 처리 장치(220)의 제어에 따라 메모리 장치(1100)와 통신하도록 구성될 수 있다. 예를 들면, 메모리 인터페이스(260)는 중앙 처리 장치(220)의 제어에 따라 커맨드, 어드레스 및 데이터를 메모리 장치(1100)로 전송할 수 있고, 메모리 장치(1100)로부터 리드된 데이터를 중앙 처리 장치(220)로 전송할 수 있다.
중앙 처리 장치(220)는 버스(bus; 270)를 통해 내부 메모리(210), 커맨드/어드레스 컨트롤러(230), 호스트 인터페이스(240), 버퍼 인터페이스(250) 및 메모리 인터페이스(260) 간 데이터를 전송할 수 있다.
커맨드/어드레스 컨트롤러(230), 호스트 인터페이스(240) 및 메모리 인터페이스(260)는 버스(270)를 통하지 않고 독립적으로 서로 통신할 수도 있다.
예를 들면, 커맨드/어드레스 컨트롤러(230)와 호스트 인터페이스(240)는 버스(270)를 통하지 않고 서로 직접 통신할 수 있고, 커맨드/어드레스 컨트롤러(230)와 메모리 인터페이스(260)도 버스(270)를 통하지 않고 서로 직접 통신할 수 있으며, 호스트 인터페이스(240)와 메모리 인터페이스(260)도 버스(270)를 통하지 않고 서로 직접 통신할 수 있다.
커맨드/어드레스 컨트롤러(230)는 온도 스코어를 포함하는 커맨드 스코어에 따라 커맨드들의 발행(issue) 순서를 조정할 수 있다.
커맨드/어드레스 컨트롤러(230)는 제 1 동작 모드(LT)와 제 2 동작 모드(SL)각각에 맞도록 커맨드 스코어의 우선순위 즉, 커맨드 스코어의 세부 항목들의 우선순위를 변경할 수 있다.
도 5는 도 4의 커맨드/어드레스 컨트롤러의 실시예의 구성을 나타낸 도면이다.
도 5에 도시된 바와 같이, 호스트 인터페이스(240)는 요청 버퍼(RQ Buffer; 11), 데이터 입력 버퍼(DATA Input Buffer; 12) 및 데이터 출력 버퍼(DATA Output Buffer; 13)를 포함할 수 있다.
요청 버퍼(11)는 호스트(2000)로부터 요청들을 수신받아 임시로 저장하고, 수신된 요청들을 순차적으로 메모리 컨트롤러(1200)에 전송할 수 있다. 예를 들면, 요청 버퍼(11)는 중앙 처리 장치(220)의 제어에 따라 임시 저장된 요청들을 커맨드/어드레스 컨트롤러(230)로 순차적으로 전송할 수 있다.
호스트(2000)로부터 수신되는 요청에는 명령 및 논리 어드레스가 포함될 수 있다.
데이터 입력 버퍼(12)는 호스트(2000)로부터 수신되는 데이터를 임시로 저장하고, 중앙 처리 장치(220)의 제어에 따라 데이터를 메모리 인터페이스(260)로 전송할 수 있다.
데이터 출력 버퍼(13)는 메모리 인터페이스(260)로부터 수신된 데이터를 임시로 저장하고, 중앙 처리 장치(220)의 제어에 따라 수신된 데이터를 호스트(2000)로 출력할 수 있다. 예를 들면, 리드 동작 시 메모리 장치(1100)로부터 리드된 데이터는 메모리 인터페이스(260)를 통해 수신되고, 메모리 인터페이스(260)에서 데이터 출력 버퍼(13)로 데이터가 전송되면, 데이터 출력 버퍼(13)는 데이터를 호스트(2000)로 출력할 수 있다.
커맨드/어드레스 컨트롤러(230)는 스케줄러(Scheduler; 310), 커맨드 생성부(CMD Generator; 320), 스테이트 머신(State Machine; 330) 및 온도 모니터(Temperature Monitor; 340)를 포함할 수 있다.
스케줄러(310)는 온도 모니터(340)의 온도 스코어들 중에서 호스트(2000)로부터 수신된 논리 어드레스에 해당하는 온도 스코어를 이용하여 자신의 커맨드 스코어를 업데이트하고, 현재 동작 모드(LT or SL)에 맞도록 커맨드 스코어의 우선순위 즉, 커맨드 스코어의 세부 항목들의 우선순위를 변경할 수 있다.
스케줄러(310)는 스테이트 머신(330)으로부터 제공된 메모리 장치(1100)의 상태 정보를 참조하여 커맨드들의 발행 순서를 조정할 수 있다.
예를 들어, 스케줄러(310)는 스테이트 머신(330)으로부터 제공된 상태 정보에 따라 현재 커맨드 스코어에 스케줄된 커맨드를 메모리 장치(1100)가 실행할 수 없을 경우 커맨드들의 발행 순서를 조정할 수 있다.
커맨드 생성부(320)는 커맨드 스코어를 수신받고, 커맨드 스코어에 대응되는 커맨드 및 물리 어드레스를 생성하고, 생성된 커맨드 및 물리 어드레스를 메모리 인터페이스(260)와 온도 모니터(340)에 전송할 수 있다. 여기서 물리 어드레스는 버퍼 메모리(도 1의 1300)에 저장된 맵 테이블로부터 수신된 어드레스일 수 있다.
스테이트 머신(330)은 메모리 장치(1100)의 현재 동작 상태(예를 들어, idle, refresh, active, read, write, power-down 등)를 업데이트하고, 업데이트된 동작 상태를 상태 정보로서 스케줄러(310)에 제공할 수 있다.
온도 모니터(340)는 커맨드/어드레스 생성부(320)로부터 수신된 커맨드 및 물리 어드레스에 따른 카운트 값을 메모리 장치(1100)의 그룹 별 즉, 상위 레벨 메모리 그룹(HLMG), 중간 레벨 메모리 그룹(MLMG)) 및 하위 레벨 메모리 그룹(LLMG) 별로 실시간으로 업데이트하고, 업데이트 결과를 온도 스코어로서 저장 및 출력할 수 있다.
도 6은 도 5의 스케줄러의 구성을 나타낸 도면이다.
도 6을 참조하면, 스케줄러(310)는 커맨드 스코어 생성회로(21) 및 복수의 스케줄 회로 예를 들어, 제 1 내지 제 3 스케줄 회로(22 - 24)를 포함할 수 있다.
커맨드 스코어 생성회로(21)는 메모리 장치(1100)의 그룹 별로 구분되는 커맨드 스코어들을 생성하여 커맨드 스코어 테이블로서 저장할 수 있다.
커맨드 스코어 테이블의 커맨드 스코어들 각각은 온도 스코어를 포함할 수 있다.
커맨드 스코어 생성회로(21)는 카운터/디코더(26)를 포함할 수 있다.
카운터/디코더(26)는 요청(RQ)에 포함된 논리 어드레스를 디코딩 및 카운트하여 카운트 값(CNT)을 생성할 수 있다.
커맨드 스코어 생성회로(21)는 온도 스코어 테이블의 온도 스코어들(HTS, MTS, LTS) 중에서 디코딩된 어드레스에 해당하는 온도 스코어를 읽어 들여 커맨드 스코어 테이블을 업데이트할 수 있다.
온도 스코어들(HTS, MTS, LTS) 중에서 제 1 온도 스코어(HTS)는 커맨드에 해당하는 상위 레벨 메모리 그룹(HLMG)에 대응되는 온도 스코어이고, 제 2 온도 스코어(MTS)는 커맨드에 해당하는 중간 레벨 메모리 그룹(MLMG)에 대응되는 온도 스코어이며, 제 3 온도 스코어(LTS)는 커맨드에 해당하는 하위 레벨 메모리 그룹(LLMG)에 대응되는 온도 스코어이다.
제 1 내지 제 3 스케줄 회로(22 - 24)는 대기중인 커맨드들 중에서 동작 모드 구분신호(LT/SL)에 따라 변경된 커맨드 스코어의 우선순위에 해당하는 커맨드를 발행할 수 있다.
동작 모드 구분신호(LT/SL)는 현재 동작 모드가 제 1 동작 모드(LT)와 제 2 동작 모드(SL) 중에서 어떤 모드인지 구분할 수 있는 신호로서, 도 1의 버퍼 메모리(1300), 도 4의 내부 메모리(210)와 스테이트 머신(330) 중에서 적어도 하나에 저장될 수 있으며, 외부 제어에 따라 동작 모드 구분신호(LT/SL)의 값이 변경될 수 있다.
제 1 스케줄 회로(22)는 커맨드 스코어의 온도 스코어들 즉, 제 1 내지 제 3 온도 스코어(HTS, MTS, LTS) 중에서 제 1 온도 스코어(HTS)에 따라 커맨드를 발행할 수 있다.
예를 들어, 커맨드 스코어의 우선순위 중에서 온도 스코어의 우선순위가 가장 높은 상태인 경우, 제 1 스케줄 회로(22)는 대기중인 커맨드들의 제 1 온도 스코어들(HTS) 중에서 가장 낮은 값을 갖는 제 1 온도 스코어(HTS)에 대응되는 커맨드를 발행할 수 있다.
제 2 스케줄 회로(23)는 커맨드 스코어의 온도 스코어들 즉, 제 1 내지 제 3 온도 스코어(HTS, MTS, LTS) 중에서 제 2 온도 스코어(MTS)에 따라 커맨드를 발행할 수 있다.
예를 들어, 커맨드 스코어의 우선순위 중에서 온도 스코어의 우선순위가 가장 높은 상태인 경우, 제 2 스케줄 회로(23)는 대기중인 커맨드들의 제 2 온도 스코어들(MTS) 중에서 가장 낮은 값을 갖는 제 2 온도 스코어(MTS)에 대응되는 커맨드를 발행할 수 있다.
제 3 스케줄 회로(24)는 커맨드 스코어의 온도 스코어들 즉, 제 1 내지 제 3 온도 스코어(HTS, MTS, LTS) 중에서 제 3 온도 스코어(LTS)에 따라 커맨드를 발행할 수 있다.
예를 들어, 커맨드 스코어의 우선순위 중에서 온도 스코어의 우선순위가 가장 높은 상태인 경우, 제 3 스케줄 회로(24)는 대기중인 커맨드들의 제 3 온도 스코어들(LTS) 중에서 가장 낮은 값을 갖는 제 3 온도 스코어(LTS)에 대응되는 커맨드를 발행할 수 있다.
도 7은 커맨드 스코어 테이블의 구성을 나타낸 도면이다.
도 7을 참조하면, 커맨드 스코어 테이블은 복수의 커맨드 스코어들을 포함할 수 있다.
각 커맨드 스코어는 복수의 세부 항목들 즉, 커맨드 아이디(CMD ID), 타임 아웃(Time Out: TO), 제 1 내지 제 3 온도 스코어(HTS, MTS, LTS), 상위(High Priority: HP) 및 기아상태(Starvation: STRV)를 포함할 수 있다.
커맨드 아이디(CMD ID)는 각 커맨드에 대하여 호스트(2000)가 부여한 고유번호이다.
기아상태(STRV)는 해당 커맨드의 발행이 지연되었음을 정의하며, 기아상태(STRV)의 값이 설정 값을 초과하면 타임 아웃(Time Out: TO)이 체크될 수 있다.
상위(High Priority: HP)는 메모리의 종류에 따라 메모리의 고성능 동작에 적합한 정도를 나타낼 수 있다.
이때 제 1 동작 모드(LT)의 우선순위는 TO>HTS>MTS>LTS>HP가 될 수 있으며, 제 2 동작 모드(SL)의 우선순위는 TO>HP가 될 수 있다.
본 발명의 실시예에서는 제 1 동작 모드(LT)와 제 2 동작 모드(SL)의 예를 들었지만, 필요에 따라 제 1 동작 모드(LT)와 제 2 동작 모드(SL)를 혼용한 제 3 동작 모드도 적용될 수 있다.
제 3 동작 모드는 TO>HTS>HP 또는 TO>HTS>MTS>HP의 우선순위를 갖도록 할 수 있다.
도 8은 도 5의 온도 모니터의 구성을 나타낸 도면이다.
도 8을 참조하면, 온도 모니터(340)는 어드레스 디코더(51), 커맨드 디코더(52) 및 온도 스코어 생성회로(53)를 포함할 수 있다.
어드레스 디코더(51)는 커맨드/어드레스 생성부(320)로부터 수신받은 물리 어드레스(ADD)를 디코딩하여 디코딩된 어드레스(D_ADD)로 출력할 수 있다.
디코딩된 어드레스(D_ADD)는 상위 레벨 메모리 그룹(HLMG), 중간 레벨 메모리 그룹(MLMG) 및 하위 레벨 메모리 그룹(LLMG)을 구분하기 위한 어드레스일 수 있다.
커맨드 디코더(52)는 커맨드/어드레스 생성부(320)로부터 수신받은 커맨드(CMD)를 디코딩하여 디코딩된 커맨드(D_CMD)로 출력할 수 있다.
디코딩된 커맨드(D_CMD)는 각각의 서로 다른 동작들로 구분되는 커맨드일 수 있다.
온도 스코어 생성회로(53)는 디코딩된 어드레스(D_ADD), 디코딩된 커맨드(D_CMD) 및 카운트 값(CNT)에 따라 상위 레벨 메모리 그룹(HLMG), 중간 레벨 메모리 그룹(MLMG) 및 하위 레벨 메모리 그룹(LLMG)의 제 1 내지 제 3 온도 스코어(HTS, MTS, LTS) 값들을 업데이트할 수 있다.
도 9는 온도 스코어 테이블의 구성을 나타낸 도면이다.
도 9를 참조하면, 온도 스코어 테이블은 상위 레벨 메모리 그룹(HLMG), 중간 레벨 메모리 그룹(MLMG) 및 하위 레벨 메모리 그룹(LLMG) 별 카운트 값(CNT)이 저장될 수 있으며, 저장된 카운트 값(CNT)들이 제 1 내지 제 3 온도 스코어(HTS, MTS, LTS)로서 사용될 수 있다.
예를 들면, 메모리 장치(1100) 내에 제 1 내지 제 4 상위 레벨 메모리 그룹(HLMG1-4)이 포함되고, 제 1 내지 제 4 상위 레벨 메모리 그룹(HLMG1-4) 각각에 제 1 내지 제 4 중간 레벨 메모리 그룹(MLMG1-4)이 포함되고, 제 1 내지 제 4 중간 레벨 메모리 그룹(MLMG1-4) 각각에 제 1 내지 제 8 하위 레벨 메모리 그룹(LLMG1-8)이 포함된다고 가정한다.
카운트 값(CNT)은 제 1 내지 제 8 하위 레벨 메모리 그룹(LLMG1-8) 각각에 대응되어 업데이트될 수 있다. 예를 들면, 제 1 상위 레벨 메모리 그룹(HLMG1)의 제 1 중간 레벨 메모리 그룹(MLMG1)의 제 1 하위 레벨 메모리 그룹(LLMG1)의 카운트 값(CNT)이 디코딩된 커맨드(D_CMD)에 따라 증가할 수 있다. 즉, 디코딩된 어드레스(D_ADD)는 업데이트 대상 어드레스를 선택할 수 있고, 디코딩된 커맨드(D_CMD)에 따라 업데이트 대상 어드레스에 해당하는 메모리 그룹의 발열 정도가 결정될 수 있다. 예를 들면, 리드 동작보다 라이트 동작을 수행하는 경우에 발열이 높다고 가정하면, 디코딩된 커맨드(D_CMD)가 라이트 동작에 대응되는 커맨드인 경우 카운트 값(CNT)은 상대적으로 많이 높아질 수 있고, 리드 동작에 대응되는 커맨드인 경우 카운트 값(CNT)은 상대적으로 적게 높아질 수 있다.
즉, 하위 레벨부터 상위 레벨까지 메모리 그룹들의 합산된 카운트 값이 높을수록 해당 메모리 그룹의 온도가 높다는 의미이다.
도 10은 본 발명의 실시예에 따른 커맨드 스케줄링 동작을 설명하기 위한 도면이다.
도 10을 참조하면, 호스트(2000)에서 요청(RQ)이 입력되면(S11), 커맨드 스코어 테이블의 상위 항목(HP)을 업데이트한다(S12).
메모리 시스템의 동작 모드가 제 1 동작 모드(LT) 또는 제 2 동작 모드(SL)인지 판단한다(S13).
기 언급한 바와 같이, 제 1 동작 모드(LT)의 우선순위는 TO>HTS>MTS>LTS>HP가 될 수 있으며, 제 2 동작 모드(SL)의 우선순위는 TO>HP가 될 수 있다. 또한 제 3 동작 모드는 TO>HTS>HP 또는 TO>HTS>MTS>HP의 우선순위를 갖도록 할 수 있다.
판단 결과(S13), 메모리 시스템의 동작 모드가 제 1 동작 모드(LT)이면 온도 스코어 테이블의 온도 스코어들(HTS, MTS, LTS) 중에서 디코딩된 어드레스에 해당하는 온도 스코어를 읽어 들여 커맨드 스코어 테이블에 포함된 온도 스코어를 업데이트한다(S14).
커맨드 스코어 테이블에 타임 아웃 항목(TO)이 존재하는지 즉, 체크되어 있는지 판단한다(S15).
판단 결과(S15), 커맨드 스코어 테이블에 타임 아웃 항목(TO)이 존재하면 해당 커맨드를 발행한다(S20).
한편, 판단 결과(S15), 커맨드 스코어 테이블에 타임 아웃 항목(TO)이 존재하지 않으면, 대기중인 커맨드들 중에서 가장 낮은 제 1 온도 스코어(HTS)에 해당하는 커맨드를 발행한다(S16).
이어서 대기중인 커맨드들 중에서 가장 낮은 제 2 온도 스코어(MTS)에 해당하는 커맨드를 발행한다(S17).
그리고 대기중인 커맨드들 중에서 가장 낮은 제 3 온도 스코어(LTS)에 해당하는 커맨드를 발행한다(S18).
이어서 단계들(S16 - S18)에서 발행된 커맨드들 중에서 가장 낮은 온도 스코어를 갖는 커맨드를 발행한다(S22).
단계들(S16 - S18)에서 커맨드들이 발행된 이후에는 가장 높은 상위(HP)에 해당하는 커맨드를 발행한다(S21).
한편, 판단 결과(S13), 메모리 시스템의 동작 모드가 제 2 동작 모드(SL)이면 커맨드 스코어 테이블에 타임 아웃 항목(TO)이 존재하는지 즉, 체크되어 있는지 판단한다(S19).
판단 결과(S19), 커맨드 스코어 테이블에 타임 아웃 항목(TO)이 존재하면 해당 커맨드를 발행한다(S20).
판단 결과(S19), 커맨드 스코어 테이블에 타임 아웃 항목(TO)이 존재하지 않으면, 가장 높은 상위(HP)에 해당하는 커맨드를 발행한다(S21).
한편, 기 언급한 제 3 동작 모드의 경우, 상술한 단계들(S16 - S18) 중에서 일부만(S16 또는 S16 및 S17)을 적용하고, 가장 높은 상위(HP)에 해당하는 커맨드를 발행할 수 있다(S21).
도 11은 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예의 구성을 나타낸 도면이다.
도 11을 참조하면, 메모리 시스템(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)는 호스트로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. 입력 장치(Input Device; 3400)는 프로세서(3100)의 동작을 제어하기 위한 제어 신호 또는 프로세서(3100)에 의하여 처리(process)될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad) 또는 키보드로 구현될 수 있다. 프로세서(3100)는 메모리 컨트롤러(1200)로부터 출력된 데이터, 무선 송수신기(3300)로부터 출력된 데이터, 또는 입력 장치(3400)로부터 출력된 데이터가 디스플레이(3200)를 통하여 출력될 수 있도록 디스플레이(3200)의 동작을 제어할 수 있다.
도 12는 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 12를 참조하면, 메모리 시스템(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)의 동작을 제어할 수 있다.
도 13은 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 13을 참조하면, 메모리 시스템(Memory System; 50000)은 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트 폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
메모리 시스템(50000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 데이터 처리 동작, 예컨대 프로그램 동작, 소거 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함할 수 있다.
메모리 시스템(50000)의 이미지 센서(Image Sensor; 5200)는 광학 이미지를 디지털 신호들로 변환할 수 있고, 변환된 디지털 신호들은 프로세서(Processor; 5100)로 전송될 수 있다. 프로세서(5100)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(Display; 5300)를 통하여 출력되거나 메모리 컨트롤러(1200)를 통하여 메모리 장치(1100)에 저장될 수 있다. 또한, 메모리 장치(1100)에 저장된 데이터는 프로세서(5100)의 제어에 따라 디스플레이(5300)를 통하여 출력될 수 있다.
도 14는 도 1에 도시된 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 14를 참조하면, 메모리 시스템(Memory System; 70000)은 메모리 카드(memory 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)가 사용하는 프로토콜을 지원하는 하드웨어이거나, 상기 하드웨어에 탑재된 소프트웨어 또는 신호 전송 방식을 의미할 수 있다.
호스트(60000)는 마이크로 프로세서(micro process; μP; 6100) 및 호스트 인터페이스(Host Interface; 6200)를 포함할 수 있다. 마이크로 프로세서(6100)는 호스트(60000)의 전반적인 동작을 제어할 수 있으며, 호스트 인터페이스(6200)를 통해 메모리 시스템(70000)과 통신할 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (17)

  1. 그룹별로 구분된 메모리 장치의 온도 상태를 온도 스코어들로서 업데이트하도록 구성된 온도 모니터;
    어드레스에 따라 커맨드 스코어를 생성하도록 구성된 커맨드 스코어 생성회로; 및
    대기중인 커맨드들 중에서 현재 설정된 동작 모드에 따라 변경된 상기 커맨드 스코어의 우선순위에 해당하는 커맨드를 발행하며, 상기 동작 모드가 제 1 동작 모드이면 상기 온도 스코어들 및 상위 항목 중에서 상기 온도 스코어들에 우선순위를 두어 동작하고, 상기 동작 모드가 제 2 동작 모드이면 상기 온도 스코어들 및 상위 항목 중에서 상기 상위 항목에 우선순위를 두어 동작하도록 구성된 스케줄러를 포함하는 메모리 컨트롤러.
  2. 제 1 항에 있어서,
    상기 온도 모니터는
    외부의 요청에 따라 생성된 어드레스를 디코딩하여 디코딩된 어드레스를 출력하는 어드레스 디코더,
    상기 요청에 따라 생성된 커맨드를 디코딩하여 디코딩된 커맨드를 출력하는 커맨드 디코더, 및
    어드레스 카운트 값을 상기 디코딩된 어드레스 및 상기 디코딩된 커맨드에 따라 상기 메모리 장치의 그룹 별로 구분하여 상기 온도 스코어들로서 업데이트하도록 구성된 온도 스코어 생성회로를 포함하는 메모리 컨트롤러.
  3. 제 2 항에 있어서,
    상기 온도 스코어 생성회로는
    온도 스코어 테이블을 포함하고,
    상기 온도 스코어 테이블은 상기 메모리 장치를 상위 레벨 메모리 그룹, 중간 레벨 메모리 그룹 및 하위 레벨 메모리 그룹으로 구분하고, 각 그룹별로 상기 온도 스코어들을 구분하여 저장하도록 구성된 메모리 컨트롤러.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 커맨드 스코어는
    상기 온도 스코어들 및 상위(High Priority) 항목을 포함하는 메모리 컨트롤러.
  6. 제 5 항에 있어서,
    상기 스케줄러는
    상기 온도 스코어들 중에서 자신에 해당하는 어느 하나에 따라 상기 커맨드 스코어의 우선순위에 해당하는 커맨드를 발행하도록 구성되는 메모리 컨트롤러.
  7. 삭제
  8. 제 1 항에 있어서,
    상기 스케줄러는
    상기 동작 모드가 제 3 동작 모드이면 상기 온도 스코어들 중에서 일부는 상기 상위 항목에 비해 높은 우선순위를 두고, 상기 온도 스코어들 중에서 나머지는 상기 상위 항목에 비해 낮은 우선순위를 두어 동작하도록 구성되는 메모리 컨트롤러.
  9. 호스트로부터 요청들을 수신하고, 메모리 장치로부터 리드된 데이터를 상기 호스트로 출력하는 호스트 인터페이스; 및
    상기 메모리 장치의 온도 상태를 업데이트하고, 상기 요청들이 수신되면 상기 온도 상태 및 현재 설정된 동작 모드에 따라 상기 메모리 장치에 제공될 커맨드들의 발행 순서를 변경하도록 구성된 커맨드/어드레스 컨트롤러를 포함하고,
    상기 커맨드/어드레스 컨트롤러는
    스케줄러 및 카운트 값에 따라 상기 메모리 장치의 온도 상태를 온도 스코어들로서 업데이트하도록 구성된 온도 모니터를 포함하며,
    상기 스케줄러는 어드레스에 따라 커맨드 스코어를 생성하도록 구성된 커맨드 스코어 생성회로, 및 대기중인 커맨드들 중에서 현재 설정된 동작 모드에 따라 변경된 상기 커맨드 스코어의 우선순위에 해당하는 커맨드를 발행하며, 상기 동작 모드가 제 1 동작 모드이면 상기 온도 스코어들 및 상위 항목 중에서 상기 온도 스코어들에 우선순위를 두어 동작하고, 상기 동작 모드가 제 2 동작 모드이면 상기 온도 스코어들 및 상위 항목 중에서 상기 상위 항목에 우선순위를 두어 동작하도록 구성된 복수의 스케줄 회로들을 포함하는 메모리 컨트롤러.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 온도 모니터는
    상기 요청에 따라 생성된 어드레스를 디코딩하여 디코딩된 어드레스를 출력하는 어드레스 디코더,
    상기 요청에 따라 생성된 커맨드를 디코딩하여 디코딩된 커맨드를 출력하는 커맨드 디코더, 및
    상기 카운트 값을 상기 디코딩된 어드레스 및 상기 디코딩된 커맨드에 따라 상기 메모리 장치의 그룹 별로 구분하여 상기 온도 스코어로서 업데이트하도록 구성된 온도 스코어 생성회로를 포함하는 메모리 컨트롤러.
  12. 제 11 항에 있어서,
    상기 온도 스코어 생성회로는
    온도 스코어 테이블을 포함하고,
    상기 온도 스코어 테이블은 상기 메모리 장치를 상위 레벨 메모리 그룹, 중간 레벨 메모리 그룹 및 하위 레벨 메모리 그룹으로 구분하고, 각 그룹별로 상기 온도 스코어를 구분하여 저장하도록 구성된 메모리 컨트롤러.
  13. 삭제
  14. 제 9 항에 있어서,
    상기 커맨드 스코어는
    메모리 장치의 그룹 별로 구분된 온도 스코어들 및 상위(High Priority) 항목을 포함하는 메모리 컨트롤러.
  15. 제 14 항에 있어서,
    상기 복수의 스케줄 회로들은
    상기 온도 스코어들 중에서 자신에 해당하는 어느 하나에 따라 상기 커맨드 스코어의 우선순위에 해당하는 커맨드를 발행하도록 구성되는 메모리 컨트롤러.
  16. 삭제
  17. 제 9 항에 있어서,
    상기 스케줄러는
    상기 동작 모드가 제 3 동작 모드이면 상기 온도 스코어들 중에서 일부는 상기 상위 항목에 비해 높은 우선순위를 두고, 상기 온도 스코어들 중에서 나머지는 상기 상위 항목에 비해 낮은 우선순위를 두어 동작하도록 구성되는 메모리 컨트롤러.
KR1020190013293A 2019-02-01 2019-02-01 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 Active KR102725762B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190013293A KR102725762B1 (ko) 2019-02-01 2019-02-01 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US16/659,129 US11106559B2 (en) 2019-02-01 2019-10-21 Memory controller and memory system including the memory controller
CN201911067389.0A CN111522504B (zh) 2019-02-01 2019-11-04 存储器控制器以及包括存储器控制器的存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190013293A KR102725762B1 (ko) 2019-02-01 2019-02-01 메모리 컨트롤러 및 이를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20200095679A KR20200095679A (ko) 2020-08-11
KR102725762B1 true KR102725762B1 (ko) 2024-11-05

Family

ID=71836507

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190013293A Active KR102725762B1 (ko) 2019-02-01 2019-02-01 메모리 컨트롤러 및 이를 포함하는 메모리 시스템

Country Status (3)

Country Link
US (1) US11106559B2 (ko)
KR (1) KR102725762B1 (ko)
CN (1) CN111522504B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526306B1 (en) * 2021-05-18 2022-12-13 Micron Technology, Inc. Command scheduling in a memory subsystem according to a selected scheduling ordering
KR20250033813A (ko) * 2023-09-01 2025-03-10 삼성전자주식회사 메모리 디바이스들 및 메모리 디바이스들의 동작 모드 조절 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170177045A1 (en) * 2015-12-09 2017-06-22 Research & Business Foundation Sungkyunkwan University Thermal management apparatus and method using dynamic thermal margin, and semiconductor processor device, non-volatile data storage device and access control method using the same
US20170285944A1 (en) * 2016-03-30 2017-10-05 Kabushiki Kaisha Toshiba Perform read or write on a non-volatile memory having a pending read or write based on temperature thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956098A (zh) * 2005-08-02 2007-05-02 株式会社瑞萨科技 半导体存储装置
CA2578890C (en) * 2006-02-15 2012-12-18 Acuity Brands, Inc. System and apparatus with self-diagnostic and emergency alert voice capabilities
CA2710269C (en) * 2009-08-11 2012-05-22 Certusview Technologies, Llc Locating equipment communicatively coupled to or equipped with a mobile/portable device
EP2584273A1 (en) * 2011-10-17 2013-04-24 Danfoss A/S Temperature controlling system and method of operating a temperature controlling system
JP5335155B1 (ja) * 2013-02-04 2013-11-06 善郎 水野 温度計の管理システム
US10133483B2 (en) * 2015-04-28 2018-11-20 Sandisk Technologies Llc Memory system and method for differential thermal throttling
KR20180043924A (ko) * 2016-10-21 2018-05-02 에스케이하이닉스 주식회사 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템
KR102568896B1 (ko) 2018-04-19 2023-08-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170177045A1 (en) * 2015-12-09 2017-06-22 Research & Business Foundation Sungkyunkwan University Thermal management apparatus and method using dynamic thermal margin, and semiconductor processor device, non-volatile data storage device and access control method using the same
US20170285944A1 (en) * 2016-03-30 2017-10-05 Kabushiki Kaisha Toshiba Perform read or write on a non-volatile memory having a pending read or write based on temperature thereof

Also Published As

Publication number Publication date
CN111522504A (zh) 2020-08-11
KR20200095679A (ko) 2020-08-11
US11106559B2 (en) 2021-08-31
US20200250060A1 (en) 2020-08-06
CN111522504B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
US11269560B2 (en) Memory controller managing temperature of memory device and memory system having the memory controller
US11061607B2 (en) Electronic system having host and memory controller, and operating method thereof
US10991446B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
JP6373559B2 (ja) メモリ装置及びメモリ装置の動作方法
US20220350655A1 (en) Controller and memory system having the same
KR102523327B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
JP2021034052A (ja) 異種メモリを有するメモリシステム、これを含むコンピュータシステム及びそのデータ管理方法
KR102725762B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10318418B2 (en) Data storage in a mobile device with embedded mass storage device
US20230384936A1 (en) Storage device, electronic device including storage device, and operating method thereof
KR20190051530A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
US12056390B2 (en) Memory controller, storage device, and host device
US20190278716A1 (en) Memory controller and operating method thereof
KR102833711B1 (ko) 컨트롤러 및 이를 포함하는 메모리 시스템
US20240289034A1 (en) Computing system and method of operating the same
KR102732866B1 (ko) 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
TW202403556A (zh) 記憶體系統及其操作方法
CN119536663A (zh) 一种存储装置及其数据处理方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190201

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20220111

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20190201

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240103

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20240802

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20241030

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20241031

End annual number: 3

Start annual number: 1

PG1601 Publication of registration