KR20170047468A - 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법 - Google Patents

메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법 Download PDF

Info

Publication number
KR20170047468A
KR20170047468A KR1020150147518A KR20150147518A KR20170047468A KR 20170047468 A KR20170047468 A KR 20170047468A KR 1020150147518 A KR1020150147518 A KR 1020150147518A KR 20150147518 A KR20150147518 A KR 20150147518A KR 20170047468 A KR20170047468 A KR 20170047468A
Authority
KR
South Korea
Prior art keywords
host
main memory
counter
memory
operating frequency
Prior art date
Application number
KR1020150147518A
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 KR1020150147518A priority Critical patent/KR20170047468A/ko
Priority to US15/223,568 priority patent/US10152114B2/en
Publication of KR20170047468A publication Critical patent/KR20170047468A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/20Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5004Voltage
    • 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

Abstract

본 발명에 따른 메모리 모듈은 메모리 장치, 카운터, SPD(Serial Presence Detect)를 포함할 수 있다. 메모리 장치는 호스트로부터 동작 주파수 및 동작 전압을 공급받을 수 있다. 카운터는 호스트로부터 전달된 커맨드 수를 카운트하고, 커맨드 수의 카운트 값을 호스트로 제공할 수 있다. SPD(Serial Presence Detect)는 카운트 값에 의해서 결정된 메모리 장치의 동작 주파수 및 동작 전압 정보를 수신하여 저장할 수 있다.

Description

메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법 {MEMORY MODULE MONITORING MEMORY OPERATION AND POWER MANAGEMENT METHOD THEREOF}
본 발명은 반도체 장치에 관한 것으로, 보다 상세하게는 메모리 모듈 및 그것의 전력 관리 방법에 관한 것이다.
기업 서버 시스템뿐 아니라 다른 전자 시스템들은 에너지 효율 및 에너지에 비례하는 컴퓨팅에 증가된 집중을 경험하고 있다. 서버 프로세서 및 워크로드(workload)의 용량 및 대역폭(bandwidth) 요구량을 고려해 볼 때 이러한 플랫폼들에서 메모리 전력 관리는 전체 효율에 결정적이다.
하지만, 현재 서버 시스템에서 쓰이는 메모리는 스마트폰에서 쓰이는 메모리와 달리 동작 중에 동작 주파수 및 동작 전압을 변경할 수가 없다. 따라서 기존의 방법으로는 서버 시스템에서 사용되는 메모리의 동작 주파수 및 동작 전압을 컨트롤하는 전력 관리 방법을 사용할 수 없다. 이에 서버 시스템의 효율적인 전력의 관리를 위해서, 하드웨어에 기반한 제어 방법 또는 소프트웨어 기반의 다양한 제어 방법들이 적용되고 있다.
본 발명의 목적은 서버 시스템에 있어 전력 효율을 높일 수 있는 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 메모리 모듈은 메모리 장치, 카운터, SPD(Serial Presence Detect)를 포함할 수 있다. 메모리 장치는 호스트로부터 동작 주파수 및 동작 전압을 공급받을 수 있다. 카운터는 호스트로부터 전달된 커맨드 수를 카운트하고, 커맨드 수의 카운트 값을 호스트로 제공할 수 있다. SPD(Serial Presence Detect)는 카운트 값에 의해서 결정된 메모리 장치의 동작 주파수 및 동작 전압 정보를 수신하여 저장할 수 있다.
본 발명의 실시 예에 따른 메인 메모리의 전력 관리 방법은 동작 플레그에 동기하여 메인 메모리의 피크 대역폭을 계산하는 단계, 피크 대역폭보다 메인 메모리의 동작 주파수가 높도록 메인 메모리의 동작 주파수 및 동작 전압을 결정하는 단계, 결정된 동작 주파수 및 동작 전압을 상기 메인 메모리의 SPD에 저장하는 단계를 포함할 수 있다.
이상과 같은 본 발명의 실시 예에 따르면, 효율적으로 반도체 메모리 동작 상태를 평가하는 방법 및 동작 상태를 통한 메모리 전력 관리 방법을 제공할 수 있다. 따라서 서버 운영 및 메모리 사용 효율을 극대화할 수 있고 데이터 센터(Data Center)의 TCO(Total Cost Ownership)를 낮출 수 있다.
더불어 LRDIMM의 버퍼 혹은 RDIMM의 RCD의 커맨드 카운터를 이용하여 메모리 최대 동작 대역폭를 모니터링하는 경우 하드웨어적으로 신호를 생성할 수 있다. 따라서 운영체제(OS)를 거치는 경우보다 신뢰성 있고 신속한 동작이 가능하다.
본 발명의 실시 예들은 제한적인 방법으로서가 아니라 예로서 도시되었으며, 첨부 도면에서 유사한 참조 번호는 유사한 요소를 참조한다.
도 1은 본 발명 실시 에에 따른 데이터 처리 장치의 블록도이다.
도 2는 본 발명의 개략적인 순서도이다.
도 3은 메모리 컨트롤러와 메인 메모리의 상호 동작을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 메인 메모리의 동작 주파수 및 동작 전압 조합의 예이다.
도 5는 도 2의 S120 단계의 예시를 보여주는 순서도이다.
도 6은 도 2의 S130 단계의 예시를 보여주는 순서도이다.
도 7은 본 발명의 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 8은 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 9는 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 10은 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 11은 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 12는 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 13은 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 14는 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 15는 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 16은 본 발명의 또 다른 실시 예로서 도 1의 메모리 모듈의 예시를 보여주는 블록도다.
도 17은 본 발명의 적용 예를 보여주는 블록도다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 디램(DRAM)을 사용하는 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명이 적용되는 데이터 처리 장치(100)의 개략적 블록도이다. 도 1을 참조하면, 데이터 처리 장치(100)는 호스트(110)와 메인 메모리(120)를 포함한다.
호스트(110)는 캐쉬 메모리(111), 레지스터(112), 인터페이스(113)를 포함할 수 있다. 또한, 호스트(110)는 데이터 버스 라인(130)을 통해 메인 메모리(120)와 연결된다.
호스트(110)는 데이터 프로세싱 동작 시에 메인 메모리(120)를 억세스하기 전에 캐쉬 메모리(111)를 먼저 억세스한다. 이 경우에 호스트(110)는 어드레스 및 제어 명령을 캐쉬 메모리(111)에 전달한다. 호스트(110)는 캐쉬 메모리(111)에 호스트(110)가 원하는 데이터나 명령이 있으면 캐쉬 히트(hit)에 따른 동작을 수행한다.
캐쉬 히트 시에는 캐쉬 메모리(111)로부터 출력된 타겟 데이터가 호스트(110)로 전달된다. 호스트(110)가 메인 메모리(120)에 비해 캐쉬 메모리(111)를 먼저 억세스하는 이유는 빈번하게 사용되는 메인 메모리(120)의 일부 데이터가 호스트(110)에 의해 캐쉬 메모리(111)에 일단 저장되어 있기 때문이다.
반면, 캐쉬 메모리(111)에 호스트(110)가 원하는 데이터나 명령이 없을 경우에는 호스트(110)는 캐쉬 미스(miss)에 따른 동작을 수행한다. 즉, 이 경우에 호스트(110)는 버스 라인(130)을 통해 메인 메모리(120)를 제어한다. 이에 따라 메인 메모리(120)로부터 출력된 데이터가 버스 라인(130)을 거쳐 호스트(110)로 전달된다. 호스트(110)가 메인 메모리(120)에 억세스 시에, 호스트(110)는 메인 메모리(120)와 클록, 데이터, 데이터 입력 및 출력을 위한 커맨드 정보를 교환한다.
캐쉬 메모리(111) 동작과 관련하여, 캐쉬 미스율은 호스트(110)가 메모리에 억세스하는 전체 횟수에 대한 캐쉬 부적중 횟수의 비율로 정의될 수 있다. 메모리 억세스 횟수는 호스트(110)가 명령과 프로그램의 실행을 위해 요구되는 데이터와 명령어를 읽어 오기 위해 메모리에 억세스한 전체 횟수로 정의된다. 캐쉬 부적중 횟수란 호스트(110)의 CPU에서 요청한 정보가 캐쉬 메모리(111)에서 발견되지 않은 횟수로 정의된다.
Figure pat00001
캐쉬 미스율이 높으면 호스트(110)가 메인 메모리(120)에 억세스해야 하는 횟수가 증가하기 때문에, 억세스 시간이 길어지고 실행 효율이 저하된다. 캐쉬 미스율은 호스트(110)의 메인 메모리(120)에의 접근 비율과 비례하므로 이 값을 모니터링하면 메인 메모리(120)의 동작 속도를 계산할 수 있다. 본 발명의 실시 예는 캐쉬 미스율을 이용한 메인 메모리(120)의 전력관리 방법에 관한 발명으로, 후술하는 도면들을 통해서 자세히 설명될 것이다.
레지스터(112)는 호스트(110)의 연산에 의해 만들어진 결과를 저장하는 역할을 한다. 본 발명에서 레지스터(112)는 호스트(110)의 부팅 시에 결정되는 메인 메모리(120)의 동작 주파수 및 동작 전압의 조합을 저장할 수 있다.
인터페이스(113)는 호스트(110)와 메인 메모리(120) 사이에 교환되는 데이터가 호스트(110) 내에서 가장 마지막에 거치는 블록이다. 즉, 인터페이스(113)는 데이터의 버퍼 역할을 한다. 또한, 인터페이스(113)는 호스트(110)와 메인 메모리(120) 사이에 교환되는 데이터 품질을 최적화하기 위해 데이터 처리 장치(100)의 부팅 시에 레벨링, 트레이닝 동작을 수행한다. 이를 통하여 인터페이스(113)는 인터페이스(113)의 동작 환경을 가변할 수 있다.
메인 메모리(120)는 SPD(121, Serial Presence Detect)를 포함할 수 있다. 메인 메모리(120)는 호스트(110)의 명령에 따라 호스트(110)와 클록, 커맨드, 데이터를 교환한다. SPD(121)는 메인 메모리(120)의 전압과 클록 주기에 대한 정보를 갖고 있다. SPD(121)는 호스트(110)의 요청에 의해 SPD 정보를 주거나 쓰는 동작을 한다. 본 발명의 실시 예에 따른 메인 메모리(120)의 구체적인 구성은 후술하는 도면에서 상세하게 설명될 것이다.
본 발명에서 메인 메모리(120)의 동작 대역폭은 호스트(110)의 커맨드에 의해 제어되는 메인 메모리(120)의 실제 데이터 전송 속도로 정의된다.
본 발명에서 메인 메모리(120)의 동작 주파수는 호스트(110)로부터 메인 메모리(120)에 제공되는 클록 주기로 정의한다.
이상에서는 본 발명의 구성과 일반적인 동작이 설명되었다.
데이터 처리 장치(100)에 있어 나타날 수 있는 워크로드의 경향은 메모리 집중 경향과 호스트 집중 경향의 두 가지가 있다. 데이터 처리 장치(100)의 워크로드가 메모리 집중 경향인 경우, 이러한 워크로드의 경향에서는 메모리 대역폭이 증가하면 시스템의 전체 성능이 개선된다. 반면에 데이터 처리 장치(100)의 워크로드가 메모리 집중 경향인 경우, 시스템의 전체 성능은 메모리 대역폭과 상관 관계가 적게 된다.
서버 시스템의 경우 서비스 중심적인 워크로드를 갖는다. 따라서 제공하는 서비스의 종류에 따라 워크로드가 정해지고 고정적인 경우가 일반적이다. 즉, 제공되는 서비스가 정해져 있으면 워크로드는 예측 가능하다. 그러므로 서버 시스템의 워크로드를 알 수 있다면, 데이터 처리 장치(100)는 워크로드에 적합하도록 메인 메모리(120)의 동작 주파수 및 전압을 가변할 수 있다. 이를 통해 데이터 처리 장치(100)는 효율적으로 시스템의 전력 관리를 할 수 있게 된다.
도 2는 본 발명의 실시 예에 따른 메인 메모리(120)의 동작 주파수 및 동작 전압의 조합을 결정하는 방법을 보여주는 개략적인 순서도이다. 도 2를 참조하면, 워크로드의 특징에 따른 메인 메모리(120)의 동작 주파수 및 동작 전압의 설정 방법이 게시된다.
S110 단계에서, 데이터 처리 장치(100)의 구동을 위해 전원이 제공되거나 리셋 절차가 진행될 수 있다. 이후 호스트(110)는 부팅 시퀀스 중에 메인 메모리(120)의 동작 주파수 및 동작 전압을 설정할 수 있다. 예를 들면 부팅 시퀀스 중의 하나인 POST(Power On Self-Test)에서, 메인 메모리(120)를 테스트하는 단계가 포함될 수 있다. 메인 메모리(120)를 테스트하는 과정 중에 호스트(110)가 메인 메모리(120)의 SPD(121)를 읽어올 수 있다. 그리고 호스트(110)는 SPD(121)에 규정된 동작 주파수 및 동작 전압으로 메인 메모리(120)를 설정할 수 있다.
S120 단계에서, 호스트(110)는 호스트(110)와 메인 메모리(120)의 동작 특성을 이용하여 메인 메모리(120)의 최대 동작 대역폭(이하, 피크 대역폭이라 칭함)을 모니터링한다.
S130 단계에서, 호스트(110)는 메인 메모리(120)의 피크 대역폭을 이용하여 워크로드에 적합한 SPD 설정 동작을 수행한다.
S140 단계에서, SPD(121)에 설정된 메인 메모리(120)의 동작 주파수 및 동작 전압 조건으로 메인 메모리(120)를 재부팅한다.
이하에서 각 단계가 자세히 설명될 것이다.
도 3은 도 2의 S110 단계에서 발생할 수 있는 호스트(110)와 메인 메모리(120)의 상호 동작을 보여주는 도면이다. 도 3을 참조하면, 호스트(110)는 메인 메모리(120)의 SPD(121)에 저장된 정보를 기초로 동작 주파수 및 동작 전압을 설정할 수 있다.
S111 단계에서, 데이터 처리 장치(100)의 부팅 절차의 진행 중에 호스트(110)는 메인 메모리(120)에게 SPD 정보를 요청한다.
S112 단계에서, 메인 메모리(120)는 호스트(110)의 요청에 응답하여 호스트(110)에 SPD 정보를 제공한다.
S113 단계에서, 호스트(110)는 수신된 SPD 정보에 따라서 메인 메모리(120)의 동작 주파수 및 동작 전압을 설정한다.
S114 단계에서, 메인 메모리(120)는 동작 주파수 및 동작 전압을 설정한 후 완료 시그널을 호스트(110)에 제공한다.
S115 단계에서, 호스트(110)는 메인 메모리(120)에 테스트 출력 패턴을 요청한다.
S116 단계에서, 메인 메모리(120)는 호스트(110)의 요청에 응답하여 테스트 출력 패턴을 호스트(110)에 제공한다.
S117 단계에서, 호스트(110)는 테스트 패턴의 출력 품질을 평가한다. 호스트(110)는 레벨링과 트레이닝을 통하여 메인 메모리(120)가 최적의 출력 특성을 갖도록 인터페이스(113)의 리시버 전압과 샘플링 타이밍을 설정한다.
상술한 절차에 의해서 측정된 출력 품질 값이 기준 품질을 만족하지 못한 경우, 호스트(110)는 메인 메모리(120)의 변경된 공급 전압을 제공하여 메인 메모리(120)의 출력 품질을 다시 평가한다. 반면에 측정된 메인 메모리(120)의 출력 품질 값이 기준 품질을 만족한 경우, 그 때의 동작 주파수 및 동작 전압을 호스트(110)의 레지스터(112)에 저장한다.
실시 예로 테스트 패턴의 출력 품질 평가 방식은 RMT(Rank Margin Tool)값을 이용한 평가 방식일 수 있다. 실시 예로 기준 품질은 Intel 가이드 라인일 수 있다.
상술한 메인 메모리(120)의 동작 주파수 및 동작 전압의 조합을 설정하는 단계는 메인 메모리(120)의 동작 주파수가 임계값(N) 이상이 될 때까지 반복하여 진행된다. 실시 예로 임계값(N)은 메인 메모리(120)가 동작할 수 있는 최대의 동작 주파수일 수 있다.
도 4는 호스트(110)가 제공할 수 있는 메인 메모리(120)의 동작 주파수 및 동작 전압 조합의 예이다. 예를 들어, 데이터 처리 장치(100)의 첫 번째 부팅 완료 후에 호스트(110)는 메인 메모리(120)를 최저 동작 대역폭인 1333Mbps로 설정하여 데이터 처리 장치(100)를 재부팅한다. 이 후 호스트(110)는 메인 메모리(120)의 공급 전압을 최저 전압부터 높여가며 메인 메모리(120)의 출력 품질을 평가한다. 결과적으로 1333Mbps에 대한 메인 메모리(120)의 최저 동작 전압인 1.1V를 찾는다. 호스트(110)의 레지스터(112)는 이 때의 클록 주기와 동작 전압을 조합(Combination) 1로 저장한다. 다음으로, 호스트(110)는 메인 메모리(120)의 동작 주파수를 1600Mbps로 증가시고 같은 절차를 반복한다. 호스트(110)의 레지스터(112)는 이 때의 최저 동작 전압인 1.1V를 찾아 조합(Combination) 2로 저장한다. 호스트(110)는 동일한 절차를 메인 메모리(120)가 동작할 수 있는 최대 주파수인 2133Mbps까지 반복한다.
이하에서 데이터 처리 장치(100)의 부팅이 완료가 된 후, 메인 메모리(120)의 피크 대역폭을 모니터링하는 단계(S120)의 실시 예가 구체적으로 설명될 것이다.
도 5는 도 2의 S120 단계에서 설명된 메인 메모리(120)의 피크 대역폭을 모니터링하는 방법의 실시 예를 보여주는 순서도이다. 도 5를 참조하면, 호스트(110)에 의해서 메인 메모리(120)의 피크 대역폭이 검출될 수 있다.
S121 단계에서, 호스트(110)는 호스트(110)의 동작 특성을 모니터링하여 특정 값(M)과 비교한다. 동작 특성이 특정 값(M) 이하인 경우(No 방향), 호스트(110)는 호스트(110)의 동작 특성을 계속 모니터링한다. 반면에 호스트(110)의 동작 특성이 특정 값(M) 이상인 경우(Yes 방향), 호스트(110)의 동작 절차는 S122 단계로 이동한다. 호스트(110)의 동작을 모니터링하는 시점을 선택하는 이유는, 호스트(110)의 동작 특성이 높은 구간에서 메인 메모리(120)의 대역폭를 모니터링하는 것이 효율적이기 때문이다. 호스트(110)의 동작 특성을 모니터링하는 시점을 선택하는 다른 이유는, 호스트(110)가 모든 동작 시간에 동작 특성을 모니터링하는 경우에 발생하는 비용 낭비를 줄이기 위함이다.
실시 예로서 호스트(110)의 동작 특성은 CPU의 사용률일 수 있다. CPU의 사용률이란 컴퓨터 프로그램이 CPU를 차지하여 일을 한 시간의 양으로 정의한다. 실시 예로서 호스트(110)의 동작 특성이 CPU의 사용률인 경우, 특정 값(M)이 80%일 수 있다.
S122 단계에서, 호스트(110)는 메인 메모리(120)의 동작 특성을 모니터링한다. 또한, 호스트(110)의 카운터(124)는 메인 메모리(120)의 동작 특성을 카운트한다. 메인 메모리(120)의 동작 특성은 메인 메모리(120)의 대역폭를 대변하는 특성이어야 할 것이다.
S123 단계에서, 호스트(110)의 레지스터(112)는 S122 단계에서 출력된 카운트 값(New)을 저장한다.
S124 단계에서, 호스트(110)의 비교기는 새로 카운트된 값(New)과 이전에 카운트된 값(Old)를 비교한다. 새로 카운트된 값(New)이 이전에 카운트된 값(Old) 보다 작은 경우(No 방향), 현재의 메인 메모리(120) 대역폭이 최대 값이 아니므로 절차는 S121 단계로 복귀하여 호스트(110)의 동작 특성을 다시 모니터링한다. 새로 카운트된 값(New)이 이전에 카운트된 값(Old)보다 큰 경우(Yes 방향), 호스트(110)는 다음 단계를 수행한다. 이 때의 새로 카운트된 값(New)은 현재까지 모니터링된 값 중 피크 대역폭를 대변한다고 할 수 있다.
S125 단계에서, 호스트(110)는 새로 카운트된 값(New)으로부터 메인 메모리(120)의 대역폭을 계산한다. 메인 메모리(120)의 대역폭은 모니터링되는 메인 메모리(120)의 동작 특성에 따라 다른 방식으로 계산될 것이다.
실시 예로서, 메인 메모리(120)의 동작 특성은 호스트(110)와 메인 메모리(120)에 교환되는 커맨드의 횟수일 수 있다. 예를 들어, 메인 메모리(120)의 버스트 랭스(Burst Length)가 1이라고 가정한다. 또한 메인 메모리(120)로 입력되는 읽기(Read) 커맨드가 1초 동안 10개가 입력되었다고 가정한다. 이 경우, 메인 메모리(120)는 1초 동안 10 bit의 데이터를 출력한다. 따라서 이 경우 메인 메모리(120)의 대역폭은 10bps로 계산된다.
실시 예로서, 메인 메모리(120)의 동작 특성은 호스트(110)와 메인 메모리(120)사이에 교환되는 데이터의 비트 수일 수 있다. 예를 들어, 호스트(110)와 메인 메모리(120) 사이에 교환되는 테이터의 비트수가 1초 동안 10개라 가정한다. 이 경우 메인 메모리(120)의 대역폭는 10bps로 계산된다.
실시 예로서, 메인 메모리(120)의 동작 특성은 호스트(110)와 메인 메모리(120) 사이에 교환되는 데이터 스트로브 신호(DQS)의 천이 횟수일 수 있다. 데이터 스트로브 신호(DQS)는 호스트(110)와 메인 메모리(120) 사이에 데이터 교환시 동시에 교환되는 일종의 클록 신호이다. 예를 들어, 호스트(110)와 메인 메모리(120) 사이에 교환되는 데이터 스트로브 신호(DQS)의 천이 횟수가 10회라 가정한다. 이 경우 메인 메모리(120)의 대역폭는 10bps로 계산된다.
실시 예로서 메인 메모리(120)의 동작 특성은 캐쉬 미스율일 수 있다. 예를 들어, 1초 동안 호스트(110)의 전체 메모리 억세스 횟수가 10회라고 가정하자. 이 때 캐쉬 미스율이 40%인 경우, 반대로 메인 메모리(120)의 억세스율은 40%가 된다. 따라서 메인 메모리(120)의 억세스 횟수는 10회의 40%인 4회가 된다. 메인 메모리(120)의 버스트 랭스(Burst Length)가 1이라 하면, 1초동안 메인 메모리(120)에서 호스트(110)로 송신되는 데이터 비트 수는 4개가 된다. 그러므로 메인 메모리(120)의 동작 대역폭은 4bps가 될 것이다.
S126 단계에서, 호스트(110)는 레지스터(112)의 이전에 카운트된 값(Old)을 새로 카운트된 값(New)으로 업데이트한다. 업데이트된 카운트 값(New)은 현재까지 모니터링된 피크 대역폭를 대변한다고 할 수 있다. 따라서 호스트(110)는 이 후에 새로 발생할 수 있는 메인 메모리(120)의 피크 대역폭를 반복적으로 모니터링할 수 있다.
도 6은 SPD를 설정하는 단계(S130)의 실시 예를 보여주는 순서도이다.
S131 단계에서, 호스트(110)는 호스트(110)의 동작 특성이 특정 값(M)이하인지 판단한다. 그 이유는 S120의 절차가 완료되어야 다음 절차(S130)를 진행할 수 있기 때문이다. 호스트(110)의 동작 특성이 특정 값(M) 이상인 경우(No 방향), 호스트(110)는 S131의 절차를 다시 수행한다. 반면에, 호스트(110)의 동작 특성이 특정 값(M) 이하인 경우(Yes 방향), 호스트(110)는 다음 단계를 진행한다.
S132 단계에서, 호스트(110)는 S120 단계에서 모니터링된 메인 메모리(120)의 피크 대역폭을 커버할 수 있도록 메인 메모리(120)의 동작 주파수 및 동작 전압을 결정한다. 예를 들어, S120 단계에서 모니터링된 피크 대역폭이 1800Mbps라 한다. 이 경우 호스트(110)는 도 4의 조합 중 메인 메모리(120)가 1800Mbps에서 충분히 동작할 수 있는 조합(Combination) 3을 선택할 것이다. 이 때 결정되는 메인 메모리(120)의 동작 대역폭는 1866Mbps이고 동작 전압은 1.2V가 될 것이다.
S133 단계에서, 호스트(110)는 S132 단계에서 정해진 메인 메모리(120)의 동작 주파수 및 동작 전압의 조합을 SPD(121)로 송신한다. SPD(121)는 정보를 받아서 저장한다.
S140 단계에서, S130 단계를 통해 설정된 동작 주파수 및 동작 전압 조건으로 메인 메모리(120)를 재부팅한다.
실시 예로서 호스트(110)의 동작 특성은 사용률일 수 있다. 실시 예로서 호스트(110)의 동작 특성이 사용률인 경우, S131에서 비교되는 특정 값이 80%일 수 있다.
이상에서 본 발명의 실시 예가 설명되었다. 실시 예는 다른 방식으로 구현되거나 적용될 수 있을 것이다. 본 발명의 핵심은 메인 메모리(120)의 동작 특성으로부터 메인 메모리(120)의 피크 대역폭을 계산하는 방법에 있다. 더불어, 메인 메모리(120)의 피크 대역폭으로부터 메인 메모리(120)의 동작 주파수 및 동작 전압을 설정하는 방법 또한 본 발명의 핵심이다.
이하에서 메인 메모리(120)의 동작 특성으로서 커맨드의 횟수와 데이터 교환 횟수를 사용하기 위한 실시 예가 설명될 것이다. 실시 예를 통하여, 메인 메모리(120)의 동작 특성이 모니터링될 수 있다.
도 7은 본 발명의 실시 예를 보여주는 블록도다. 실시 예로서 메인 메모리(120a)는 RDIMM(Registered DIMM)의 구조를 가질 수 있다. 본 구조의 메인 메모리(120a)는 SPD(121), 디램(122), RCD(123) 및 카운터(124)를 포함할 수 있다.
SPD(121)는 호스트(110) 및 디램(122)과 연결될 수 있다. 디램(122)은 RCD(123), 호스트(110) 및 SPD(121)와 연결될 수 있다. RCD(123)는 호스트(110) 및 디램(122)과 연결될 수 있다. RCD(123)는 호스트(110) 출력부의 로드를 줄이기 위해 호스트(110)로부터 디램(122)으로 송신되는 클록과 커맨드의 버퍼 역할을 한다. 카운터(124)는 RCD(123) 및 호스트(110)와 연결될 수 있다.
먼저, 호스트(110)가 메인 메모리(120a)에 억세스한다. 이 경우, 호스트(110)는 디램(122)과 데이터를 직접 교환한다. 반면, 호스트(110)는 RCD(123)를 통하여 클록과 커맨드를 디램(122)으로 제공한다. 이 때 호스트(110)는 카운터(124)에 동작 플레그를 제공한다. 동작 플레그에 반응하여, 카운터(124)는 디램(122)으로 입력되는 RCD(123)의 커맨드 횟수를 카운트하고 이를 호스트(110)에 제공한다. 호스트(110)는 카운터(124)로부터 제공된 카운트 값을 호스트(110)의 레지스터(112)에 저장한다. 호스트(110)는 일정 시간이 지난 후 카운터(124)의 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 카운터(124)는 중단 플레그에 반응하여 동작을 중단한다. 이후, 호스트(110)는 저장된 카운트 값으로부터 디램(122)의 동작 대역폭을 계산한다.
도 8은 본 발명의 다른 실시 예를 보여주는 블록도다. 메인 메모리(120b)의 구조는 도 7의 메인 메모리(120a) 구조에서 카운터(124)의 위치가 변경된 구조이다. 본 구조의 메인 메모리(120b)는 SPD(121), 디램(122), RCD(123) 및 카운터(124)를 포함할 수 있다. 본 실시 예에서 카운터(124)는 호스트(110) 및 디램(122)과 연결된다.
메인 메모리(120b)는 카운터(124)가 카운트하는 디램(122)의 동작 특성이 다르다는 점을 제외하고, 도 7의 메인 메모리(120a)와 동일하게 동작한다. 먼저, 호스트(110)가 디램(122)에 억세스한다. 호스트(110)로부터 제공된 동작 플레그에 반응하여, 카운터(124)는 호스트(110)와 디램(122) 사이에 교환되는 데이터 비트 수, 데이터 스트로브 신호(DQS)의 천이 횟수 중 적어도 하나를 카운트한다. 이후 동작은 도 7과 동일하므로 생략한다.
도 9는 본 발명의 다른 실시 예를 보여주는 블록도다. 메인 메모리(120c)의 구조는 도 7의 메인 메모리(120a) 구조에 타이머(125)가 더 부착된 구조이다. 타이머(125)는 카운터(124)에 연결될 수 있다. 타이머(125)는 기준 시간 동안 카운터(124)가 동작하도록 카운터(124)를 제어하는 동작을 수행한다.
메인 메모리(120c)는 타이머(125)가 카운터(124)에 중단 플레그를 제공하는 점을 제외하고, 도 7의 메인 메모리(120a)와 동일하게 동작한다. 먼저, 호스트(110)가 디램(122)에 억세스한다. 이 때, 호스트(110)는 카운터(124) 및 타이머(125)에 동작 플레그를 제공한다. 타이머(125)는 일정 시간이 지난 후, 카운터(124)의 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 이후 동작은 도 7과 동일하므로 생략한다.
도 10은 본 발명의 다른 실시 예를 보여주는 블록도다. 메인 메모리(120d)의 구조는 도 8의 메인 메모리(120b) 구조에 타이머(125)가 더 부착된 구조이다. 타이머(125)는 카운터(124)에 연결될 수 있다.
메인 메모리(120d)는 타이머(125)가 카운터(124)에 중단 플레그를 제공하는 점을 제외하고, 도 8의 메인 메모리(120b)와 동일하게 동작한다. 먼저, 호스트(110)가 디램(122)에 억세스한다. 이 때, 호스트(110)는 카운터(124) 및 타이머(125)에 동작 플레그를 제공한다. 타이머(125)는 일정 시간이 지난 후, 카운터(124)의 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 이후 동작은 도 8과 동일하므로 생략한다.
도 11은 본 발명의 다른 실시 예를 보여주는 블록도다. 실시 예로서 메인 메모리(120e)는 LRDIMM(Load Reduced DIMM)의 구조일 수 있다. 메인 메모리(120e)는 SPD(121), 디램(122), 카운터(124) 및 버퍼(126)를 포함할 수 있다.
SPD(121)는 호스트(110) 및 디램(122)과 연결될 수 있다. 디램(122)은 SPD(121) 및 버퍼(126)와 연결될 수 있고, 버퍼(126)를 통하여 호스트(110)와 간접적으로 연결될 수 있다. 카운터(124)는 버퍼(126) 및 호스트(110)와 연결될 수 있다. 버퍼(126)는 호스트(110) 및 디램(122)과 연결될 수 있다. 버퍼(126)는 호스트(110) 출력부의 로드를 줄여주는 역할을 한다.
먼저, 호스트(110)가 메인 메모리(120e)에 억세스한다. 이 경우, 호스트(110)는 버퍼(126)를 통하여 디램(122)과 데이터, 클록 및 커맨드를 간접적으로 교환한다. 이 때 호스트(110)는 카운터(124)에 동작 플레그를 제공한다. 동작 플레그에 반응하여, 카운터(124)는 호스트(110)로부터 제공되는 커맨드 횟수, 호스트(110)와 디램(122) 사이에 교환되는 데이터 비트 수, 데이터 스트로브 신호(DQS)의 천이 횟수 중 적어도 하나를 카운트하여 이를 호스트(110)에 제공한다. 호스트(110)는 카운터(124)로부터 제공된 카운트 값을 호스트(110)의 레지스터(112)에 저장한다. 호스트(110)는 일정 시간이 지난 후 카운터(124) 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 카운터(124)는 중단 플레그에 반응하여 동작을 중단한다. 이후, 호스트(110)는 저장된 카운트 값으로부터 디램(122)의 동작 대역폭을 계산한다.
도 12는 본 발명의 다른 실시 예를 보여주는 블록도다. 메인 메모리(120f)의 구조는 도 11의 메인 메모리(120e) 구조에 타이머(125)가 더 부착된 구조이다. 타이머(125)는 카운터(124)에 연결될 수 있다.
메인 메모리(120f)는 타이머(125)가 카운터(124)에 중단 플레그를 제공하는 점을 제외하고, 도 11의 메인 메모리(120e)와 동일하게 동작한다. 호스트(110)가 디램(122)에 억세스 하는 경우, 호스트(110)는 카운터(124) 및 타이머(125)에 동작 플레그를 제공한다. 타이머(125)는 일정 시간이 지난 후, 카운터(124)의 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 이 후 동작은 도 11과 동일하므로 생략한다.
도 13은 본 발명의 실시 예로서 UDIMM(Unbuffered DIMM)의 구조 갖는 메인 메모리(120g)의 블록도다. 메인 메모리(120g)는 SPD(121), 디램(122) 및 카운터(124)를 포함할 수 있다. SPD(121)는 호스트(110) 및 디램(122)과 연결될 수 있다. 디램(122)은 SPD(121) 및 호스트(110)와 연결될 수 있다. 카운터(124)는 호스트(110) 및 디램(122)과 연결될 수 있다.
먼저, 호스트(110)가 메인 메모리(120g)에 억세스한다. 이 경우, 호스트(110)는 디램(122)과 데이터, 클록 및 커맨드를 직접 교환한다. 이 때 호스트(110)는 카운터(124)에 동작 플레그를 제공한다. 동작 플레그에 반응하여, 카운터(124)는 디램(122)으로 입력되는 호스트(110)의 커맨드 횟수를 카운트하고, 이를 호스트(110)에 제공한다. 호스트(110)는 카운터(124)로부터 제공된 카운트 값을 호스트(110)의 레지스터(112)에 저장한다. 호스트(110)는 일정 시간이 지난 후 카운터(124) 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 카운터(124)는 중단 플레그에 반응하여 동작을 중단한다. 마지막으로 호스트(110)는 저장된 카운트 값으로부터 디램(122)의 동작 대역폭을 계산한다.
도 14는 본 발명의 다른 실시 예를 보여주는 블록도다. 메인 메모리(120h)의 구조는 도 13의 메인 메모리(120g) 구조에 타이머(125)가 더 부착된 구조이다. 타이머(125)는 카운터(124)에 연결될 수 있다.
메인 메모리(120h)는 타이머(125)가 카운터(124)에 중단 플레그를 제공하는 점을 제외하고, 도 13의 메인 메모리(120g)와 동일하게 동작한다. 먼저, 호스트(110)가 디램(122)에 억세스한다. 이 때, 호스트(110)는 카운터(124) 및 타이머(125)에 동작 플레그를 제공한다. 타이머(125)는 일정 시간이 지난 후, 카운터(124)의 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 이 후 동작은 도 13과 동일하므로 생략한다.
도 15는 본 발명의 다른 실시 예를 보여준다. 메인 메모리(120i)의 구조는 도 13의 메인 메모리(120g) 구조에서 카운터(124)의 위치가 변경된 구조이다. 본 실시 예에서 카운터(124)는 호스트(110) 및 디램(122)과 연결된다.
메인 메모리(120i)는 카운터(124)가 카운트하는 디램(122)의 동작 특성이 다르다는 점을 제외하고, 도 13의 메인 메모리(120g)와 동일하게 동작한다. 먼저, 호스트(110)가 디램(122)에 억세스한다. 호스트(110)로부터 제공된 동작 플레그에 반응하여, 카운터(124)는 호스트(110)와 디램(122) 사이에 교환되는 데이터 비트 수, 데이터 스트로브 신호(DQS)의 천이 횟수 중 적어도 하나의 신호를 카운트한다. 이 후 동작은 도 13과 동일하므로 생략한다.
도 16은 본 발명의 다른 실시 예를 보여주는 블록도다. 메인 메모리(120j)의 구조는 도 15의 메인 메모리(120i) 구조에 타이머(125)가 더 부착된 구조이다. 타이머(125)는 카운터(124)에 연결될 수 있다.
메인 메모리(120j)는 타이머(125)가 카운터(124)의 중단 플레그를 제공하는 점을 제외하고, 도 15의 메인 메모리(120i)와 동일하게 동작한다. 호스트(110)가 디램(122)에 억세스 하는 경우, 호스트(110)는 카운터(124) 및 타이머(125)에 동작 플레그를 제공한다. 타이머(125)는 일정 시간이 지난 후, 카운터(124)의 동작을 중단시키는 플레그를 카운터(124)에 제공한다. 이후 동작은 도 15와 동일하므로 생략한다.
도 17은 본 발명의 적용 예를 보여주는 서버 시스템(1000)의 블록도다. 도 17을 참조하면, 서버 시스템(1000)은 호스트(110)와 메인 메모리(120)을 포함할 수 있다. 호스트(110)는 캐쉬 메모리(111), 레지스터(112), 인터페이스(113), 프로세서(114), 캐쉬 메모리 컨트롤러(115), 시스템 버스(116) 및 메모리 컨트롤러(117)를 포함할 수 있다.
프로세서(114)는 캐쉬 컨트롤러(115) 및 캐쉬 메모리(111)와 연결되고, 시스템 버스(116) 및 인터페이스(113)를 통해 메인 메모리(120)와 연결된다.
캐쉬 메모리(111)는 캐쉬 컨트롤러(115)와 연결되고, 시스템 버스(116)를 통해 메인 메모리(120)와 연결된다. 본 발명의 실시 예에서 캐쉬 메모리(111)는 L1, L2, L3중 어느 하나일 수 있다.
캐쉬 컨트롤러(115)는 프로세서(114)로부터 명령을 받아 캐쉬 메모리(111)를 제어한다. 메모리 컨트롤러(115)는 프로세서(114)의 명령을 데이터 버스(116)를 통해 받아, 메인 메모리(120)를 제어한다. 프로세서(114)가 메인 메모리(120)에 억세스 시, 인터페이스(113) 단은 데이터 및 데이터 스트로브 신호(DQS)를 메인 메모리(120)와 교환한다.
이상에서 설명된 모든 본 발명들은 실시 예로서 서버(Server)용 컴퓨터에서 적용될 수 있다.
본 발명은 여러 실시 예의 관점에서 설명되었으나, 이 기술분야의 숙련된 기술자는 본 발명이 설명된 실시 예에 제한되지 않으며, 첨부된 청구항의 진의 및 범위 내에서의 변형 및 변경과 함께 실행될 수 있다는 것을 인식할 것이다. 그러므로, 설명은 제한적이지 않고 예시적인 것으로 간주되어야 한다.
100 : 데이터 처리 장치 110 : 호스트
111 : 캐쉬 메모리 112 : 레지스터
113 : 인터페이스 114 : 프로세서
115 : 캐쉬 메모리 컨트롤러 116 : 시스템 버스
117 : 메모리 컨트롤러 120 : 메인 메모리
121 : SPD 122 : 디램
123 : RCD 124 : 카운터
125 : 타이머 126 : 버퍼
130 : 데이터 버스 라인 1000 : 서버 시스템

Claims (10)

  1. 호스트로부터 동작 주파수 및 동작 전압을 공급받는 메모리 장치;
    상기 호스트로부터 전달된 커맨드 수를 카운트하고, 상기 커맨드 수의 카운트 값을 상기 호스트로 제공하는 카운터; 그리고
    상기 카운트 값에 의해서 결정된 상기 메모리 장치의 동작 주파수 및 동작 전압 정보를 수신하여 저장하는 SPD(Serial Presence Detect)를 포함하는 메모리 모듈.
  2. 제 1 항에 있어,
    상기 카운터는 상기 호스트와 상기 메모리 장치 사이에 교환되는 데이터 비트 수, 데이터 스트로브 신호(DQS)의 천이 횟수 중 적어도 하나를 카운트하고, 상기 호스트로 상기 카운트 값을 송신하는 메모리 모듈.
  3. 제 1 항에 있어,
    기준 시간 동안 상기 카운터가 동작하도록 상기 카운터를 제어하는 타이머를 더 포함하는 메모리 모듈.
  4. 제 1 항에 있어,
    상기 호스트로부터 커맨드, 클록, 데이터 중 적어도 하나를 상기 메모리 장치로 전달해 주는 버퍼를 더 포함하되,
    상기 카운터는 상기 버퍼에 전달된 커맨드 수를 카운트하고, 상기 카운트 값을 상기 호스트로 제공하는 메모리 모듈.
  5. 제 4 항에 있어,
    기준 시간 동안 상기 카운터가 동작하도록 상기 카운터를 제어하는 타이머를 더 포함하는 메모리 모듈.
  6. 제 1 항에 있어,
    상기 호스트로부터의 커맨드, 클록, 데이터 중 적어도 하나를 상기 메모리 장치로 전달해 주는 버퍼를 더 포함하되,
    상기 카운터는 상기 버퍼에 전달된 데이터의 비트 수, 데이터 스트로브 신호(DQS)의 천이 횟수 중 적어도 하나를 카운트하고, 상기 카운트 값을 상기 호스트로 제공하는 메모리 모듈.
  7. 제 1 항에 있어,
    상기 메모리 모듈은 듀얼 인-라인 메모리 모듈(DIMM) 형태로 상기 호스트에 연결되는 메모리 모듈.
  8. 메인 메모리의 전력 관리 방법에 있어;
    동작 플레그에 동기하여 상기 메인 메모리의 피크 대역폭을 계산하는 단계;
    상기 피크 대역폭보다 상기 메인 메모리의 동작 주파수가 높도록 상기 메인 메모리의 동작 주파수 및 동작 전압을 결정하는 단계; 그리고
    상기 결정된 동작 주파수 및 동작 전압을 상기 메인 메모리의 SPD에 저장하는 단계를 포함하는 전력 관리 방법.
  9. 제 8 항에 있어,
    상기 메인 메모리의 동작 특성은 기준 시간 동안 카운트된 커맨드 횟수인 전력 관리 방법.
  10. 제 8 항에 있어,
    상기 결정된 동작 주파수 및 동작 전압 조건으로 상기 메인 메모리를 재부팅하는 단계를 더 포함하는 전력 관리 방법.
KR1020150147518A 2015-10-22 2015-10-22 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법 KR20170047468A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150147518A KR20170047468A (ko) 2015-10-22 2015-10-22 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법
US15/223,568 US10152114B2 (en) 2015-10-22 2016-07-29 Memory module monitoring memory operation and power management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150147518A KR20170047468A (ko) 2015-10-22 2015-10-22 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법

Publications (1)

Publication Number Publication Date
KR20170047468A true KR20170047468A (ko) 2017-05-08

Family

ID=58561683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150147518A KR20170047468A (ko) 2015-10-22 2015-10-22 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법

Country Status (2)

Country Link
US (1) US10152114B2 (ko)
KR (1) KR20170047468A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036426B2 (en) 2019-05-10 2021-06-15 SK Hynix Inc. Memory controller and method of operating the same

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11320885B2 (en) * 2020-05-26 2022-05-03 Dell Products L.P. Wide range power mechanism for over-speed memory design
US20220100428A1 (en) * 2020-09-25 2022-03-31 Micron Technology, Inc. Frequency monitoring for memory devices
US20230154509A1 (en) * 2021-11-16 2023-05-18 Samsung Electronics Co., Ltd. Memory device, method of driving the memory device, and method of driving host device
CN115050399B (zh) * 2022-08-12 2023-02-28 深圳市铨兴科技有限公司 可动态调整供电保护的ddr5存储器模块及其工作方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473814B1 (en) * 1999-05-03 2002-10-29 International Business Machines Corporation System for optimally tuning a burst length by setting a maximum burst length based on a latency timer value and adjusting the maximum burst length based on a cache line size
US7412614B2 (en) 2004-04-29 2008-08-12 Hewlett-Packard Development Company, L.P. Power management using a pre-determined thermal characteristic of a memory module
US20070162554A1 (en) * 2006-01-12 2007-07-12 International Business Machines Corporation Generating a public key and a private key in an instant messaging server
US7861113B2 (en) * 2007-03-16 2010-12-28 Dot Hill Systems Corporation Method and apparatus for operating storage controller system in elevated temperature environment
WO2009050806A1 (ja) * 2007-10-18 2009-04-23 Fujitsu Limited 記憶装置、データ伝送方法及び伝送制御回路
EP2164204A1 (en) * 2008-09-15 2010-03-17 Telefonaktiebolaget LM Ericsson (PUBL) Energy efficient inter-subsystem communication
US9798370B2 (en) 2009-03-30 2017-10-24 Lenovo (Singapore) Pte. Ltd. Dynamic memory voltage scaling for power management
JP5480714B2 (ja) * 2009-05-15 2014-04-23 パナソニック株式会社 半導体記録装置
US20110022870A1 (en) 2009-07-21 2011-01-27 Microsoft Corporation Component power monitoring and workload optimization
US8438410B2 (en) 2010-06-23 2013-05-07 Intel Corporation Memory power management via dynamic memory operation states
US9741436B2 (en) * 2010-07-09 2017-08-22 Seagate Technology Llc Dynamically controlling an operation execution time for a storage device
US8984216B2 (en) * 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US8909957B2 (en) 2010-11-04 2014-12-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic voltage adjustment to computer system memory
US8639918B2 (en) 2011-08-31 2014-01-28 Dell Products L.P. Memory compatibility system and method
KR101692128B1 (ko) 2012-03-27 2017-01-02 인텔 코포레이션 리프레시 모드들 동안의 메모리 디바이스들에서의 전력 소비의 감소
KR20130110459A (ko) * 2012-03-29 2013-10-10 삼성전자주식회사 시스템-온 칩, 이를 포함하는 전자 시스템 및 그 제어 방법
KR20140111896A (ko) * 2013-03-12 2014-09-22 삼성전자주식회사 애플리케이션 프로세서 및 이의 동작 방법
WO2014141140A1 (en) * 2013-03-14 2014-09-18 Lsi Corporation Device power control
US9594560B2 (en) * 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US9354818B2 (en) * 2014-02-25 2016-05-31 Kabushiki Kaisha Toshiba Memory device and data storing method
CN104916330B (zh) * 2014-03-10 2019-04-12 东芝存储器株式会社 存储装置、存储器控制器及存储器控制方法
US9875051B2 (en) * 2015-04-24 2018-01-23 Toshiba Memory Corporation Memory system that controls power state of buffer memory
TWI562152B (en) * 2015-05-29 2016-12-11 Phison Electronics Corp Decoding method, memory storage device and memory control circuit unit
US20170262208A1 (en) * 2016-03-08 2017-09-14 Kabushiki Kaisha Toshiba Memory device, host device, and information processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036426B2 (en) 2019-05-10 2021-06-15 SK Hynix Inc. Memory controller and method of operating the same

Also Published As

Publication number Publication date
US20170115915A1 (en) 2017-04-27
US10152114B2 (en) 2018-12-11

Similar Documents

Publication Publication Date Title
KR101572079B1 (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
US6671802B1 (en) Performance optimization of computer system by dynamically and immediately updating a configuration setting based on detected change in preferred use
US7444459B2 (en) Methods and systems for load balancing of virtual machines in clustered processors using storage related load information
EP3268865B1 (en) Self-tune controller
US8788757B2 (en) Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
KR20170047468A (ko) 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법
US9087146B2 (en) Wear-out equalization techniques for multiple functional units
US9858120B2 (en) Modifying memory space allocation for inactive tasks
US10331593B2 (en) System and method for arbitration and recovery of SPD interfaces in an information handling system
US9164899B2 (en) Administering thermal distribution among memory modules of a computing system
US20120266163A1 (en) Virtual Machine Migration
US8103884B2 (en) Managing power consumption of a computer
US20100083274A1 (en) Hardware throughput saturation detection
US8914582B1 (en) Systems and methods for pinning content in cache
US7761873B2 (en) User-space resource management
US20130145077A1 (en) Dynamically managing memory lifespan in hybrid storage configurations
US20170090755A1 (en) Data Storage Method, Data Storage Apparatus and Solid State Disk
US11734067B2 (en) Multi-core system and controlling operation of the same
US20130145075A1 (en) Dynamically managing memory lifespan in hybrid storage configurations
US20240086093A1 (en) Memory controller and data processing system with memory controller
US10719243B2 (en) Techniques for preserving an expected lifespan of a non-volatile memory
EP4057150B1 (en) Systems, methods, and devices for data storage with specified data transfer rate
US20240004725A1 (en) Adaptive power throttling system