KR102278337B1 - 메모리장치의 스케줄러 및 스케줄링 방법 - Google Patents

메모리장치의 스케줄러 및 스케줄링 방법 Download PDF

Info

Publication number
KR102278337B1
KR102278337B1 KR1020170051542A KR20170051542A KR102278337B1 KR 102278337 B1 KR102278337 B1 KR 102278337B1 KR 1020170051542 A KR1020170051542 A KR 1020170051542A KR 20170051542 A KR20170051542 A KR 20170051542A KR 102278337 B1 KR102278337 B1 KR 102278337B1
Authority
KR
South Korea
Prior art keywords
storage
commands
pattern
command
storage pattern
Prior art date
Application number
KR1020170051542A
Other languages
English (en)
Other versions
KR20180118839A (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 KR1020170051542A priority Critical patent/KR102278337B1/ko
Priority to US15/830,426 priority patent/US10678438B2/en
Publication of KR20180118839A publication Critical patent/KR20180118839A/ko
Application granted granted Critical
Publication of KR102278337B1 publication Critical patent/KR102278337B1/ko

Links

Images

Classifications

    • G06F9/3855
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/0625Power saving in 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • 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
    • 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)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

메모리장치의 스케줄러는, 각각이 명령들의 처리 순서가 정의된 복수개의 저장패턴들을 갖는 패턴저장부와, 상기 패턴저장부의 저장패턴들 중 하나의 저장패턴을 선택하고, 선택된 저장패턴의 명령처리순서대로 명령이 수행되도록 스케줄링하는 저장패턴 선택부를 포함한다.

Description

메모리장치의 스케줄러 및 스케줄링 방법{Scheduler and scheduling method in memory apparatus}
본 개시의 여러 실시예들은 메모리장치의 스케줄러 및 스케줄링 방법에 관한 것이다.
최근 휴대폰과 같은 휴대용(portable) 기기가 생활 필수품화 되면서 반도체를 이용한 메모리 소자에 대한 수요가 급증하고 있다. 이와 같은 메모리 기술은 디램(DRAM)으로 대표되는 휘발성 메모리와, 비휘발성 메모리로 나누어 볼 수 있다. 특히 다양한 휴대용 기기들에서 대용량의 비휘발성 메모리를 요구하는 경향이 증가하면서, 전력이 공급되지 않아도 데이터를 보존할 수 있는 비휘발성 메모리에 대한 적용 범위가 점점 확대되고 있다. 차세대 비휘발성 메모리로 주목받고 있는 메모리로는 강유전체 메모리(FeRAM), 자기메모리(MRAM), 저항형메모리(RRAM), 상변화메모리(PCM) 등이 있다.
이 중 상변화메모리(PCM)는, 다른 차세대 비휘발성 메모리에 비해 단순한 구조를 가지면서 휘발성 메모리인 디램(DRAM)이 가지고 있는 빠른 입출력 속도와 저렴한 생산 비용 등의 장점을 갖고 있는 것으로 알려져 있다. 상변화메모리(PCM)는 특정 물질의 비정질상(amorphous phase)과 결정상(crystalline phase)의 전기 전도도 차이를 이용하여 정보를 저장하고 판독하는 메모리 소자이다. 이와 같은 상변화메모리(PCM)의 셀(cell)에 데이터를 저장하기 위한 쓰기 동작을 위해서는, 상변화 활성영역 재료의 상변화를 유도하기 위해 일정 크기 이상의 전류 펄스가 일정 시간 이상 동안 흐르도록 해 주어야 한다. 이에 따라 상변화메모리(PCM)의 셀에 대한 쓰기 및 읽기 동작시 소모되는 전력의 크기는 다른 차세대 비휘발성 메모리들보다 큰 것으로 알려져 있다.
상변화메모리(PCM)의 동작 성능을 향상시키기 위해, 큐(queues), 파이프라인(pipelines), 및 병렬 동작(parallel operations)을 이용하여 독립적으로 작동되는 ??티 동작(multiple operations)이 허용될 수 있다. 이와 같은 멀티 동작이 효율적으로 이루어지도록 하기 위해서, 동작 명령의 순서를 적절하게 재배치하는 스케줄링 과정이 요구된다. 그런데 이와 같은 스케줄링 과정에서 상변화메모리(PCM)의 동작을 수행하는데 소모되는 전력량이 한계 전력량이 넘지 않도록 할 필요가 있다. 이를 위해 상변화메모리(PCM)의 모든 동작에 걸쳐서 전력량을 계산하여야 하며, 한계 전력량이 넘을 위험이 있는 경우 일부 동작이 완료될 때까지 후속 동작이 대기하여야 하는 제약이 있다.
본 출원이 해결하고자 하는 과제는, 메모리소자에 대한 명령을 수행하는데 있어서, 전력 소모량을 계산할 필요 없이 한계 전력량을 넘지 않도록 스케줄링할 수 있는 메모리장치의 스케줄러 및 스케줄링 방법을 제공하는 것이다.
본 개시의 일 예에 따른 메모리장치의 스케줄러는, 각각이 명령들의 처리 순서가 정의된 복수개의 저장패턴들을 갖는 패턴저장부와, 그리고 상기 패턴저장부의 저장패턴들 중 하나의 저장패턴을 선택하고, 선택된 저장패턴의 명령처리순서대로 명령이 수행되도록 스케줄링하는 저장패턴 선택부를 포함한다.
본 개시의 일 예에 따른 메모리장치의 스케줄링 방법은, 각각이 명령들의 처리 순서가 정의된 복수개의 저장패턴들을 준비하는 단계와, 상기 패턴저장부의 저장패턴들 중 하나의 저장패턴을 선택하는 단계와, 그리고 선택된 저장패턴의 명령처리순서대로 명령이 수행되도록 스케줄링하는 단계를 포함한다.
여러 실시예들에 따르면, 전력 소모량을 계산할 필요 없이 멀티 동작을 수행하는데 있어서 한계 전력량을 넘지 않도록 상변화메모리셀의 동작을 스케줄링할 수 있다는 이점이 제공된다.
도 1은 메모리소자 및 메모리컨트롤러를 갖는 메모리장치의 일 예를 나타내 보인 블록도이다.
도 2는 도 1의 메모리소자를 구성하는 상변화메모리셀의 상태에 따른 등가회로를 나타내 보인 도면이다.
도 3은 본 개시의 일 예에 따른 메모리장치의 스케줄러를 나타내 보인 블록도이다.
도 4는 도 3의 패턴저장부의 패턴리스트의 일 예를 나타내 보인 도면이다.
도 5는 본 개시의 일 예에 따른 메모리장치의 스케줄링 방법을 설명하기 위해 나타내 보인 플로챠트이다.
본 출원의 예의 기재에서 "제1" 및 "제2"와 같은 기재는 부재를 구분하기 위한 것이며, 부재 자체를 한정하거나 특정한 순서를 의미하는 것으로 사용된 것은 아니다. 또한, 어느 부재의 "상"에 위치하거나 "상부", "하부", 또는 "측면"에 위치한다는 기재는 상대적인 위치 관계를 의미하는 것이지 그 부재에 직접 접촉하거나 또는 사이 계면에 다른 부재가 더 도입되는 특정한 경우를 한정하는 것은 아니다. 또한, 어느 한 구성 요소가 다른 구성 요소에 "연결되어 있다"거나 "접속되어 있다"의 기재는, 다른 구성 요소에 전기적 또는 기계적으로 직접 연결되어 있거나 또는 접속되어 있을 수 있으며, 또는, 중간에 다른 별도의 구성 요소들이 개재되어 연결 관계 또는 접속 관계를 구성할 수도 있다.
도 1은 메모리소자(110) 및 메모리컨트롤러(120)를 갖는 메모리장치(100)의 일 예를 나타내 보인 블록도이다. 그리고 도 2는 도 1의 메모리소자(110)를 구성하는 상변화메모리셀의 상태에 따른 등가회로를 나타내 보인 도면이다. 도 1을 참조하면, 메모리장치(100)는, 메모리소자(110) 및 메모리컨트롤러(120)를 포함하여 구성될 수 있다. 일 예에서 메모리소자(110)는 상변화메모리(PCM)일 수 있다. 다른 예에서 메모리소자(110)는 유전체 메모리(FeRAM), 자기메모리(MRAM), 저항형메모리(RRAM)와 같은 비휘발성 메모리(non-volatile memory)일 수 있다. 본 실시예에서는 메모리소자(110)가 상변화메모리(PCM)인 경우를 예로 들어 설명하기로 한다. 상변화메모리(PCM)는, 복수개의 상변화메모리셀들이 어레이로 배열됨으로써 구성될 수 있다. 상변화메모리셀은, 상변화물질을 이용하여 구현될 수 있다. 상변화물질은, 온도 변화에 따라 결정상태와 비정질상태 사이에서 스위칭됨으로써 저항이 변화하는 칼코겐화합물(chalcogenide)을 이용한다. 일 예에서 칼코겐화합물은, 저매니움(Ge), 안티모디(Sb), 및 텔루리움(Te)의 합금(alloy)일 수 있다. 이 합금은 높은 용융점(melting point)을 가지며, 용융점으로부터 냉각될 때 비정질상태가 된다. 비정질상태의 합금이 가열되면, 결정화 온도(crystallization temperature)보다 낮은 온도에서 결정화상태로 변환된다. 결정화 온도는 용융점보다 낮다. 이와 같은 가열은, 합금을 통해 전류를 흘림으로써 제공될 수 있다. 상태 변화는 급속하게 발생될 수 있는데, 일 예에서 대략 5 나노초(nanoseconds)가 소요된다.
도 2에 나타낸 바와 같이, 일 예에 따른 상변화메모리셀(10)은, 비트라인(BL)과 그라운드 사이에서 직렬로 배치되는 결정 상태(crystalline state)의 합금저항체(alloy resistor)(11) 및 선택트랜지스터(12)로 구성될 수 있다. 합금저항체(11)가 결정 상태인 경우 비저항(resistivity)은 낮다. 이 결정 상태는 로직 하이(high) 또는 1을 나타낼 수 있다. 워드라인(WL)에 선택트랜지스터(12)를 턴 온 시키는 워드라인전압을 인가하면, 비트라인(BL) 전압은 선택트랜지스터(12) 및 합금저항체(11)를 통해 높은 사전충전된(precharged) 상태에서 그라운드로 당겨진다. 합금저항체(11)에 높은 전류를 흘리면, 합금저항체(11)는 결정상태에서 비정질상태로 변환될 수 있다. 높은 전류는 합금저항체(11)에서 저항성 열(resistive heating)을 발생시키고, 그 결과 용융 온도까지 급속하게 도달되면, 결정은 액체 상태로 용융된다. 전류 공급을 중단하여 급격하게 냉각시키면, 냉각되는 동안 결정들이 성장할 시간이 없으므로 합금저항체(11)는 비정질 상태로 고체화된다.
다른 예에 따른 상변화메모리셀(20)은, 비트라인(BL)과 그라운드 사이에서 직렬로 배치되는 비정질상태(amorphous state)의 합금저항체(21) 및 선택트랜지스터(22)로 구성될 수 있다. 합금저항체(21)가 비정질상태인 경우 비저항(resistivity)은 높다. 이 결정 상태는 로직 로우(low) 또는 0을 나타낼 수 있다. 워드라인(WL)에 선택트랜지스터(22)를 턴 온 시키는 워드라인전압을 인가하면, 합금저항체(21)의 높은 저항으로 인해 선택트랜지스터(22)를 통하는 전류가 제한되고, 이에 따라 비트라인(BL) 전압은, 하이 또는 사전충전된 상태를 유지한다. 합금저항체(21)에 낮은 전류를 오랜 시간 동안 흘리면, 결정화 온도에 도달되거나 넘을 수 있다. 그러나 더 높은 용융 온도에 도달할 정도로 전류가 충분하지 않으므로, 비정질상태의 합금은 오랜 시간에 걸쳐 결정화되기 시작한다.
이와 같이 상변화메모리셀에 대한 로직 1에서 로직 0으로 쓰기 동작을 수행하는 경우에는 합금저항체에 높은 전류를 상대적으로 짧은 시간에 공급해야 한다. 반면에 상변화메모리셀에 대한 로직 0에서 로직 1로 쓰기 동작을 수행하는 경우에는 합금저항체에 낮은 전류를 상대적으로 긴 시간 동안 공급해야 한다. 따라서 두 경우에서 소모되는 전력량을 다를 수 있다. 상변화메모리셀에 대한 읽기 동작을 수행하는 경우에는, 쓰기 동작에서 사용되는 낮은 전류보다도 더 낮은 전류를 사용한다. 따라서 읽기 동작에서 소모되는 전력량은 쓰기 동작에서 소모되는 전력량보다 낮다.
다시 도 1을 참조하면, 메모리 컨트롤러(120)는, 호스트(Host)로부터의 읽기 명령 또는 쓰기 명령을 요청받고, 이에 응답하여 메모리소자(110)를 제어하여 요청된 동작을 수행한다. 이를 위해 메모리 컨트롤러(120)는, 호스트 인터페이스(Host Interface)(121), 웨어-레벨러/ECC 컨트롤러(Wear-Leverler/ECC Controller)(122), 스케줄러(Scheduler)(123), 및 메모리 인터페이스(Memory Interface)(124)를 포함하여 구성될 수 있다. 호스트 인터페이스(121)는 호스트(Host)와의 인터페이싱을 수행한다. 웨어-레벨러/ECC 컨트롤러(122)는 메모리소자(110)에 대한 웨어-레벨링 동작을 제어하고, 데이터 읽기 및 쓰기 과정에서 데이터에 대한 에러정정 동작을 제어한다. 스케줄러(123)는 호스트(Host)로부터의 요청 명령들에 대한 처리순서를 정하고, 정해진 처리순서대로 요청 명령이 수행되도록 한다. 메모리 인터페이스(124)는 메모리소자(110)와의 인터페이싱을 수행한다.
도 3은 본 개시의 일 예에 따른 메모리장치(100)의 스케줄러(123)를 나타내 보인 블록도이다. 그리고 도 4는 도 3의 패턴저장부(220)에 저장되어 있는 패턴리스트(221)의 일 예를 나타내 보인 도면이다. 먼저 도 3을 참조하면, 스케줄러(123)는, 명령큐(Instruction Queue)(210)와, 패턴저장부(220)와, 저장패턴선택부(Pattern Selector)(230)와, 패턴카운터(Pattern Counter)(240)와, 그리고 상태모니터(Status Monitor)(250)를 포함하여 구성될 수 있다. 명령큐(210)에는 호스트 인터페이스(Host Interface)(121)를 통해 호스트로부터 전송된 읽기 명령 및 쓰기 명령이 순차적으로 저장된다. 패턴저장부(220)는, 복수개의 저장패턴들(Pattern A- Pattern C)이 저장되어 있는 패턴 리스트(Pattern List)를 포함한다. 저장패턴들(Pattern A- Pattern C) 각각은, 복수개의 읽기 명령들이거나, 또는 복수개의 쓰기 명령들이 나열되어 구성될 수 있다. 저장패턴들(Pattern A- Pattern C) 각각은, 읽기 명령 및 쓰기 명령의 조합이 나열되어 구성될 수도 있다. 어느 경우이던지 저장패턴들(Pattern A- Pattern C) 각각은, 구성되는 명령 순서대로 동작이 수행될 경우 소모되는 전력량이 한계 전력량을 넘지 않도록 하는 조건으로 구성된다.
도 4에 나타낸 바와 같이, 일 예에서 패턴리스트(221)는, 각각이 2개 내지 4개의 명령들이 배열되는 제1 내지 제4 저장패턴들(221A-221C)을 가질 수 있다. 본 예에서의 제1 내지 제4 저장패턴들(221A-221C)은 하나의 예시로서, 각각의 저장패턴을 구성하는 명령들의 조합 및 배열 순서는, 최대 전력소모량을 넘지 않는 한 다양하게 설정될 수 있다. 제1 저장패턴(Pattern A)(221A)은 4개의 읽기 명령들(R) 만으로 구성될 수 있다. 이에 따라 제1 저장패턴(Pattern A)(221A)에 의해 스케줄링이 이루어지는 경우, 4개의 읽기 명령들(R)이 동작 클럭에 동기되어 순차적으로 수행된다. 도 2를 참조하여 설명한 바와 같이, 상변화메모리셀의 읽기 동작에서 소모되는 전력량은 쓰기 동작에서 소모되는 전력량보다 작다. 따라서 제1 저장패턴(Pattern A)(221A)에 의해 정의된 바와 같이 4번의 읽기 명령들(R)이 순차적으로 수행되더라도, 소모되는 전력량은 한계 전력량을 넘지 않는다.
제2 저장패턴(Pattern B)(221B)은 2개의 쓰기 명령들(W) 만으로 구성될 수 있다. 이 경우 쓰기 명령들(W) 사이에는 비동작명령(NOP)이 배치될 수 있다. 여기서 비동작명령(NOP)은 쓰기 및 읽기 동작 모두 수행되지 않는 구간을 지정한다. 제2 저장패턴(Pattern B)(221B)에 의해 스케줄링이 이루어지는 경우, 첫번째 동작 클럭에서 첫번째 쓰기 동작이 시작되고, 두번째 동작 클럭에서는 쓰기 동작 및 읽기 동작이 모두 수행되지 않는다. 세번째 동작 클럭에서 두번째 쓰기 동작이 시작되며, 네번째 동작 클럭에서는 쓰기 동작 및 읽기 동작이 모두 수행되지 않는다. 제2 저장패턴(Pattern B)(221B)이 상대적으로 높은 전력을 소모하는 쓰기 명령(W)을 2개 포함하고 있지만, 쓰기 명령(W) 다음에 비동작명령(NOP)에 의해 어떤 명령도 수행되지 않으므로, 제2 저장패턴(Pattern B)(221B)에 의해 정의된 동작을 수행하는 동안 소모되는 전력량은 한계 전력량을 넘지 않는다.
제3 저장패턴(Pattern C)(221C)은 한 개의 쓰기 명령(W) 및 세 개의 읽기 명령(R)으로 구성될 수 있다. 제3 저장패턴(Pattern C)(221C)에 의해 스케줄링이 이루어지는 경우, 첫번째 동작 클럭에서 쓰기 동작이 수행되고, 두번째 동작 클럭에서 네번째 동작 클럭에 이르기까지 읽기 동작이 순차적으로 수행된다. 이 경우에도 제3 저장패턴(Pattern C)(221C)에 의해 정의된 동작을 수행하는 동안 소모되는 전력량은 한계 전력량을 넘지 않는다. 그러나 제3 저장패턴(Pattern C)(221C)의 경우 비동작명령(NOP)을 포함하지 않은 상태에서 상대적으로 높은 전력을 소모하는 쓰기 명령(W)을 포함함으로써 다른 저장패턴들에 비하여 높은 전력 소모량을 나타낼 수 있다. 따라서 제3 저장패턴(Pattern C)(221C)에 의한 스케줄링이 이루어지는 경우, 저장패턴에서 쓰기 명령(W)으로 시작되도록 구성된 저장패턴은 제3 저장패턴(Pattern C)(221C) 다음에 스케줄링되도록 선택되지 않도록 한다.
저장패턴선택부(230)는, 명령큐(210) 내에 저장되어 있는 명령들의 상태에 관한 정보를 입력받는다. 그리고 명령큐(210)에 저장되어 있는 명령들을 분석하여 패턴리스트(221)에 저장되어 있는 복수개의 저장패턴들(Pattern A- Pattern C) 중 하나의 저장패턴을 선택한다. 저장패턴을 선택한 후에는 선택된 저장패턴에 대한 정보를 출력하여 선택된 저장패턴의 명령처리순서대로 명령이 수행되도록 한다. 저장패턴의 선택은 특정 조건에 의해 수행될 수 있다. 일 예에서 명령큐(210)에 나열되어 있는 명령들 중 읽기 명령과 쓰기 명령의 비율에 따라 저장패턴을 선택할 수 있다. 즉 명령큐(210)에 나열되어 있는 명령들 중 읽기 명령이 쓰기 명령보다 많은 경우 읽기 명령 위주로 정의된 저장패턴이 선택될 수 있다. 반면에 명령큐(210)에 나열되어 있는 명령들 중 쓰기 명령이 읽기 명령보다 많은 경우 쓰기 명령 위주로 정의된 저장패턴이 선택될 수 있다.
패턴카운터(240)는, 저장패턴선택부(230)에 의해 선택된 저장패턴에 대한 정보를 입력받는다. 패턴카운터(240)는, 선택된 저장패턴을 카운팅하여 패턴리스트(221) 내의 저장패턴들이 사용된 회수를 저장한다. 또한 패턴카운터(240)는, 선택된 저장패턴에 의해 정의된 명령 순서대로 동작이 이루어지도록 명령큐(210) 내에 나열되어 있는 명령들을 스케줄링한다. 명령큐(210)는, 패턴카운터(240)에 의해 선택된 저장패턴에 의해 정의된 명령 순서대로 읽기 명령 및/또는 쓰기 명령을 메모리인터페이스(도 1의 124)를 통해 메모리소자(도 1의 110)로 전송한다.
상태모니터(250)는, 명령큐(210)의 상태를 모니터링(monitoring)하고, 명령큐(210) 내에 나열되어 있는 명령들의 상태에 관한 정보를 저장패턴선택부(230)에 입력시킨다. 일 예에서 호스트로부터 읽기 명령 또는 쓰기 명령이 스케줄러(123)의 명령큐(210)에 전송될 때마다, 상태모니터(250)는 명령큐(210)의 명령들의 배열 상태에 관한 정보를 입력받고, 저장되어 있던 명령들의 상태에 관한 정보를 업데이트한다. 그리고 업데이트된 명령들의 상태 정보를 저장패턴선택부(230)로 입력시킨다.
도 5는 본 개시의 일 예에 따른 메모리장치(100)의 스케줄링 방법을 설명하기 위해 나타내 보인 플로챠트이다. 도 5를 도 3 및 도 4와 함께 참조하면, 저장패턴선택부(230)는 상태모니터(250)로부터 입력되는 명령큐(210)의 명령들의 상태 정보를 입력받아 분석한다(단계 310). 분석 과정에서는 여러 방법들이 포함될 수 있으며, 본 예에서는 읽기 명령과 쓰기 명령의 비율 조건(읽기 명령 개수/쓰기 명령 개수)에 의해 저장패턴을 선택하는 경우를 예로 들기로 한다. 명령큐(210)에는 호스트로부터 전송되어 수행해야 할 동작들에 대한 명령들이 누적되어 저장된다. 이 명령들은 읽기 명령들 및 쓰기 명령들을 포함할 수 있다. 일 예에서 명령큐(210)에 배열되어 있는 읽기 명령들의 개수가 쓰기 명령들의 개수보다 더 많거나 더 적을 수도 있다. 다른 예에서 명령큐(210)에 배열되어 있는 명령들이 모두 읽기 명령들만 포함하거나, 또는 모두 쓰기 명령들만 포함할 수 있다.
단계 310에서 읽기 명령과 쓰기 명령의 비율을 계산한 결과 그 비율이 기설정된 제1 기준값을 넘는지의 여부를 판단한다(단계 320). 제1 기준값은 패턴리스트(221)에 저장되어 있는 저장패턴들에 따라 다양한 값을 가질 수 있다. 도 4에 나타낸 바와 같이, 저장패턴들(221A-221C) 중 읽기 명령(R)만으로 구성되는 제1 저장패턴(221A)이 4개의 읽기 명령들(R)을 포함하는 경우, 제1 기준값은 읽기 명령들(R)의 개수와 동일하게 "4"로 정의될 수 있다. 단계 320의 판단에서 읽기 명령과 쓰기 명령의 비율이 4를 넘는 경우, 즉 쓰기 명령 하나당 읽기 명령이 네 개가 있는 비율로 명령큐(210) 내의 명령들이 배열되어 있는 읽기 우세(read dominant) 조건인 경우, 읽기 명령(R)으로만 구성되는 제1 저장패턴(221A)을 선택한다(단계 330). 제1 저장패턴(221A)을 선택한 후에는 단계 370의 스케줄링을 수행한다.
단계 310에서 읽기 명령과 쓰기 명령의 비율을 계산한 결과 그 비율이 기설정된 제1 기준값인 "4"를 넘지 않는 경우, 비율이 기설정된 제2 기준값보다 작은지의 여부를 판단한다(단계 340). 제2 기준값도, 제1 기준값과 유사하게 패턴리스트(221)에 저장되어 있는 저장패턴들에 따라 다양한 값을 가질 수 있다. 도 4에 나타낸 바와 같이, 저장패턴들(221A-221C) 중 쓰기 명령(W)만으로 구성되는 제2 저장패턴(221B)이 2개의 쓰기 명령들(W)을 포함하는 경우, 제2 기준값은 쓰기 명령들(W)의 개수와 동일하게 "2"로 정의될 수 있다. 단계 340의 판단에서 읽기 명령과 쓰기 명령의 비율이 2보다 작은 경우, 즉 쓰기 명령 하나당 읽기 명령이 1개 이하가 있는 비율로 명령큐(210) 내의 명령들이 배열되어 있는 쓰기 우세(write dominant) 조건인 경우, 쓰기 명령(W)으로만 구성되는 제2 저장패턴(221A)을 선택한다(단계 350). 제2 저장패턴(221B)을 선택한 후에는 단계 370의 스케줄링을 수행한다.
단계 340의 판단 결과, 읽기 명령과 쓰기 명령의 비율이 기설정된 제2 기준값보다 작지 않은 경우는, 읽기 명령(R)과 쓰기 명령(W)의 비율이 제2 기준값인 "2" 이상이고 제1 기준값인 "4" 이하인 경우이다. 즉 읽기 명령(R)과 쓰기 명령(W)이 2:1 내지 4:1의 비율로 모두 포함되는 경우이다. 이 경우 복수개의 읽기 명령들(R)과 하나의 쓰기 명령(W)으로 구성되는 저장패턴을 선택한다. 도 4에 나타낸 바와 같이, 저장패턴들(221A-221C) 중 제3 저장패턴(221C)은 하나의 쓰기 명령(W) 및 세개의 읽기 명령(R)으로 구성된다. 따라서 단계 340의 판단 결과, 읽기 명령과 쓰기 명령의 비율이 기설정된 제2 기준값보다 작지 않은 경우 제3 저장패턴(221C)을 선택한다(단계 360). 제3 저장패턴(221C)을 선택한 후에는 단계 370의 스케줄링을 수행한다.
단계 330에서 제1 저장패턴(221A)을 선택하거나, 단계 340에서 제2 저장패턴(221B)을 선택하거나, 또는 단계 360에서 제3 저장패턴(221C)을 선택한 후에는, 선택된 저장패턴에서 정의된 명령처리순서에 따라 스케줄링이 수행되도록 한다(단계 370). 이를 위해 먼저 저장패턴선택부(230)는, 패턴카운터(240)에 선택된 저장패턴에 대한 정보를 제공한다. 패턴카운터(240)는 제공된 저장패턴 정보에 따라 정의된 명령처리순서대로 동작이 이루어지도록 명령큐(210) 내에 나열되어 있는 명령들을 스케줄링한다. 명령큐(210)는, 패턴카운터(240)에 의해 정해진 스케줄링에 따라 읽기 명령 및/또는 쓰기 명령을 메모리인터페이스(도 1의 124)를 통해 메모리소자(도 1의 110)로 전송한다.
상술한 바와 같이 본 출원의 실시 형태들을 도면들을 예시하며 설명하지만, 이는 본 출원에서 제시하고자 하는 바를 설명하기 위한 것이며, 세밀하게 제시된 형상으로 본 출원에서 제시하고자 하는 바를 한정하고자 한 것은 아니다.
100...메모리장치 110...메모리소자
120...메모리컨트롤러 121...호스트 인터페이스
122...웨어-레벨러/ECC 컨트롤러 123...스케줄러
124...메모리 인터페이스

Claims (17)

  1. 각각이 명령들의 처리 순서가 정의된 복수개의 저장패턴들을 갖는 패턴저장부; 및
    상기 패턴저장부의 저장패턴들 중 하나의 저장패턴을 선택하고, 선택된 저장패턴의 명령처리순서대로 명령이 수행되도록 스케줄링하는 저장패턴 선택부를 포함하되,
    상기 복수개의 저장패턴들은, 복수개의 읽기 명령들의 처리순서가 정의된 제1 저장패턴과, 복수개의 쓰기 명령들의 처리순서가 정의된 제2 저장패턴과, 그리고 읽기 명령 및 쓰기 명령이 조합된 명령들의 처리순서가 정의된 제3 저장패턴을 포함하며, 그리고
    상기 저장패턴 선택부는, 상기 제2 또는 제3 저장패턴을 선택하여 스케줄링을 수행한 후, 다음 스케줄링을 위해 선택하는 저장패턴에서 쓰기 명령으로 시작되도록 구성된 저장패턴은 제외되도록 하는 메모리장치의 스케줄러.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 복수개의 저장패턴들 각각은, 상기 명령들의 처리 순서대로 동작이 이루어지는 동안 한계 전력량이 넘지 않도록 구성되는 메모리장치의 스케줄러.
  3. 삭제
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 제2 저장패턴은, 상기 쓰기 명령들 사이에 읽기 및 쓰기 동작이 수행되지 않도록 하는 비동작명령이 배치되도록 구성되는 메모리장치의 스케줄러.
  5. 삭제
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    호스트로부터 전송되는 읽기 명령 및 쓰기 명령이 순차적으로 저장되는 명령큐를 더 포함하는 메모리장치의 스케줄러.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 저장패턴 선택부는, 상기 명령큐에 저장되어 있는 명령들의 분포에 따라 상기 패턴저장부의 저장패턴들 중 하나의 저장패턴을 선택하는 메모리장치의 스케줄러.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제7항에 있어서,
    상기 저장패턴 선택부는,
    상기 명령큐에 저장되어 있는 명령들 중 읽기 명령이 쓰기 명령보다 많은 경우 상기 저장패턴들 중 읽기 명령 위주로 정의된 저장패턴을 선택하고,
    상기 명령큐에 저장되어 있는 명령들 중 쓰기 명령이 읽기 명령보다 많은 경우 상기 저장패턴들 중 쓰기 명령 위주로 정의된 저장패턴을 선택하는 메모리장치의 스케줄러.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 명령큐에 저장되어 있는 명령들의 상태에 관한 정보를 상기 저장패턴선택부에 입력시키는 상태모니터를 더 포함하는 메모리장치의 스케줄러.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 저장패턴선택부에 의해 선택된 저장패턴에 의해 정의된 명령 순서대로 동작이 이루어지도록 상기 명령큐에 저장되어 있는 명령들을 스케줄링하는 패턴카운터를 더 포함하는 메모리장치의 스케줄러.
  11. 각각이 명령들의 처리 순서가 정의된 복수개의 저장패턴들을 준비하되, 상기 복수개의 저장패턴들은, 복수개의 읽기 명령들의 처리순서가 정의된 제1 저장패턴과, 복수개의 쓰기 명령들의 처리순서가 정의된 제2 저장패턴과, 그리고 읽기 명령 및 쓰기 명령이 조합된 명령들의 처리순서가 정의된 제3 저장패턴을 포함하는 단계;
    상기 복수개의 저장패턴들 중 하나의 저장패턴을 선택하는 단계; 및
    선택된 저장패턴의 명령처리순서대로 명령이 수행되도록 스케줄링하는 단계를 포함하되,
    상기 복수개의 저장패턴들 중 하나의 저장패턴을 선택하는 단계는, 이전 스케줄링에서 선택된 저장패턴이 상기 제2 또는 제3 저장패턴인 경우, 쓰기 명령으로 시작되도록 구성된 저장패턴을 제외한 나머지 저장패턴들 중 하나는 선택하여 수행하는 메모리장치의 스케줄링 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 복수개의 저장패턴들 각각은, 상기 명령들의 처리 순서대로 동작이 이루어지는 동안 한계 전력량이 넘지 않도록 구성되는 메모리장치의 스케줄링 방법.
  13. 삭제
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 제2 저장패턴은, 상기 쓰기 명령들 사이에 읽기 및 쓰기 동작이 수행되지 않도록 하는 비동작명령이 배치되도록 구성되는 메모리장치의 스케줄링 방법.
  15. 삭제
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 복수개의 저장패턴들 중 하나의 저장패턴을 선택하기 전에 명령큐에 저장되어 있는 명령들의 분포를 분석하는 단계를 더 포함하는 메모리장치의 스케줄링 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서,
    상기 복수개의 저장패턴들 중 하나의 저장패턴을 선택하는 단계는,
    상기 명령큐에 저장되어 있는 명령들 중 읽기 명령이 쓰기 명령보다 많은 경우 상기 저장패턴들 중 읽기 명령 위주로 정의된 저장패턴을 선택하고,
    상기 명령큐에 저장되어 있는 명령들 중 쓰기 명령이 읽기 명령보다 많은 경우 상기 저장패턴들 중 쓰기 명령 위주로 정의된 저장패턴을 선택하는 메모리장치의 스케줄링 방법.
KR1020170051542A 2017-04-21 2017-04-21 메모리장치의 스케줄러 및 스케줄링 방법 KR102278337B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170051542A KR102278337B1 (ko) 2017-04-21 2017-04-21 메모리장치의 스케줄러 및 스케줄링 방법
US15/830,426 US10678438B2 (en) 2017-04-21 2017-12-04 Schedulers and scheduling methods related to memory systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170051542A KR102278337B1 (ko) 2017-04-21 2017-04-21 메모리장치의 스케줄러 및 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20180118839A KR20180118839A (ko) 2018-11-01
KR102278337B1 true KR102278337B1 (ko) 2021-07-19

Family

ID=63852357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170051542A KR102278337B1 (ko) 2017-04-21 2017-04-21 메모리장치의 스케줄러 및 스케줄링 방법

Country Status (2)

Country Link
US (1) US10678438B2 (ko)
KR (1) KR102278337B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021140311A (ja) 2020-03-03 2021-09-16 キオクシア株式会社 メモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020053921A1 (en) 2000-10-18 2002-05-09 Ando Electric Co., Ltd. Semiconductor test apparatus and control method therefor
US20090016137A1 (en) * 2007-07-10 2009-01-15 Ibrahim Hur Memory Controller with Programmable Regression Model for Power Control
US20160070918A1 (en) * 2013-03-28 2016-03-10 Irdeto B.V. Obfuscating access to a data store by a software application

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5733860B2 (ja) * 2008-07-10 2015-06-10 ロケティック テクノロジーズ リミテッド 依存問題の効率的並列計算
KR101135313B1 (ko) 2010-04-23 2012-04-17 성균관대학교산학협력단 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
KR20140032789A (ko) 2012-09-07 2014-03-17 삼성전자주식회사 불휘발성 메모리 장치의 컨트롤러 및 그것의 커멘드 스케줄링 방법
US9281046B2 (en) 2013-10-08 2016-03-08 Advanced Micro Devices, Inc. Data processor with memory controller for high reliability operation and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020053921A1 (en) 2000-10-18 2002-05-09 Ando Electric Co., Ltd. Semiconductor test apparatus and control method therefor
US20090016137A1 (en) * 2007-07-10 2009-01-15 Ibrahim Hur Memory Controller with Programmable Regression Model for Power Control
US20160070918A1 (en) * 2013-03-28 2016-03-10 Irdeto B.V. Obfuscating access to a data store by a software application

Also Published As

Publication number Publication date
KR20180118839A (ko) 2018-11-01
US10678438B2 (en) 2020-06-09
US20180307411A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
CN101093723B (zh) 使用温控置位脉冲进行编程的存储单元
US9613690B2 (en) Resistive memory device and operation method thereof
US7593255B2 (en) Integrated circuit for programming a memory element
EP1927990A2 (en) Resistive memory including selective refresh operation
JP2008152904A (ja) リフレッシュ動作を含む抵抗メモリ
US11727985B2 (en) Method of operating resistive memory device to increase read margin
US20120155161A1 (en) Three-terminal ovonic threshold switch as a current driver in a phase change memory
EP2048668A1 (en) Integrated circuit including a memory having a data inversion circuit
JP2009054274A (ja) 可変抵抗メモリ装置及びその動作方法並びに可変抵抗メモリシステム
JP2008171541A (ja) 相変化メモリの駆動方法とシステム
CN101140800A (zh) 利用来自存取器件的电流编程的存储器单元
JP2008165964A (ja) 電力消費を制限するメモリ
US20090310401A1 (en) Integrated circuit including a memory element programmed using a seed pulse
KR20090086816A (ko) 상변화 메모리 장치, 그것의 기록 방법, 그리고 그것을포함하는 시스템
TWI724309B (zh) 半導體記憶裝置
US8467239B2 (en) Reversible low-energy data storage in phase change memory
KR102401183B1 (ko) 메모리 장치 및 그 동작 방법
US8250289B2 (en) Phase-change random access memory and method of setting boot block therein
TW201117357A (en) Semiconductor storage device and method for manufacturing same
KR20180043431A (ko) 저항성 메모리 장치 및 이를 포함하는 메모리 시스템
KR102278337B1 (ko) 메모리장치의 스케줄러 및 스케줄링 방법
CN111681695B (zh) 半导体存储装置
US10706920B2 (en) Memory device
CN112447205B (zh) 半导体存储装置
US8717810B2 (en) Phase change memory device and computing system having the same

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant