KR102291912B1 - 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법 - Google Patents

메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법 Download PDF

Info

Publication number
KR102291912B1
KR102291912B1 KR1020200160185A KR20200160185A KR102291912B1 KR 102291912 B1 KR102291912 B1 KR 102291912B1 KR 1020200160185 A KR1020200160185 A KR 1020200160185A KR 20200160185 A KR20200160185 A KR 20200160185A KR 102291912 B1 KR102291912 B1 KR 102291912B1
Authority
KR
South Korea
Prior art keywords
memory device
temperature
level
memory controller
memory
Prior art date
Application number
KR1020200160185A
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 KR1020200160185A priority Critical patent/KR102291912B1/ko
Priority to PCT/KR2020/017005 priority patent/WO2022114273A1/ko
Priority to KR1020210072574A priority patent/KR102357099B1/ko
Priority to KR1020210072575A priority patent/KR102357100B1/ko
Application granted granted Critical
Publication of KR102291912B1 publication Critical patent/KR102291912B1/ko
Priority to PCT/KR2021/014381 priority patent/WO2022114523A1/ko
Priority to PCT/KR2021/014405 priority patent/WO2022114524A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • 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)
  • Memory System (AREA)

Abstract

제1감지주기에 따라 감시하던 메모리장치의 온도가 노멀온도보다 큰 것으로 판단된 경우에는 메모리 뱅크의 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨을 적용하고, 상기 메모리장치의 온도를 제2감지주기에 따라 감시를 시작한다. 그 후, 상기 메모리장치의 온도가 상기 노멀온도보다 높은 소정의 치명온도보다 높은 것으로 판단한 경우에는 상기 메모리 뱅크의 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하고 그리고 처리부에게 온도 제어권을 핸드오버하는 인터럽트를 제공하는 메모리 컨트롤러를 공개한다. 상기 메모리 컨트롤러는 상기 쓰로틀링 레벨에 따라 상기 메모리장치의 동작을 제어한다.

Description

메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법{Memory controller and memory thermal throttling method using the same}
본 발명은 메모리 컨트롤러에 관한 것으로서, 특히 메모리의 온도를 관리하는 기술에 관한 것이다.
도 1은 메모리 컨트롤러 및 메모리 컨트롤러에 의해 제어되는 메모리 모듈의 구조의 예를 나타낸 것이다.
DRAM은 커패시터와 액세스 트랜지스터로 이루어진 셀(cell)의 집합으로 이루어져 있다. 각 셀은 커패시터에 충전된 전하량으로 '1'과'0'의 비트를 표현하고 셀들은 보통 수만 개의 행(row)과 수백 개의 열(column)로 구성된다. 이러한 행과 열로 구성된 셀들은 다시 뱅크(bank)로 구성되고 여러 개의 뱅크가 모여 하나의 DRAM칩(chip)으로 구성된다.
도 1에 나타낸 것과 같이, DRAM 시스템 관점에서는 복수 개의 DRAM 칩들이 하나의 랭크(rank)를 구성하고, 복수 개의 랭크가 모여 하나의 DRAM 모듈을 이룬다.
DRAM의 동작은 기본적으로 활성화(activation), 프리챠지(precharge), 읽기/쓰기(read/write), 및 리프레쉬(refresh)로 나눌 수 있다. DRAM은 읽기/쓰기 동작을 수행하기에 앞서 먼저 읽기/쓰기를 수행하려는 해당 행(row)이 반드시 오픈(open)되어 있어야 하는데 해당 행을 오픈하는 것을 활성화라고 한다. 활성화를 통해 선택된 행에 속한 셀들의 데이터가 행 버퍼(row buffer, sense amplifier)에 실리게 되고 비로소 읽기/쓰기 동작은 이 행 버퍼를 통해 수행된다. 프리챠지 동작은 활성화 동작에 의해 오픈된 행 버퍼를 다른 행의 접근을 위해 닫는(close) 것을 의미한다. 활성화는 다른 DRAM 동작과 비교하여 상대적으로 긴 시간이 걸리고 소비되는 전력 또한 크다.
DRAM 에너지 소비의 주요 요인으로는 간략하게 활성화와 백그라운드 에너지 소비로 나눌 수 있다. 활성화 및 리프레시는, 읽기/쓰기와 같은 다른 DRAM 동작과 비교하였을 때 상대적으로 긴 시간과 전력을 소모하고 DRAM이 어떤 동작을 수행하거나 혹은 수행하지 않을 때에도 백그라운드 전력은 항상 소비되기 때문에 이 두 요인은 전체 DRAM 에너지 소비의 상당 부분을 차지한다. DRAM에서의 에너지 소비는 DRAM의 온도 상승과 연관된다.
최근 제안된 기법들은 랭크를 작은 서브랭크 단위로 나누는 방법, DRAM 칩 내부에서 활성화되는 행의 크기를 줄이는 방법, 그리고 메모리에 쓰여질 데이터의 특성을 고려하여 필요한 DRAM 칩만을 사용하는 방법 등을 통해 메모리 접근 시 발생하는 활성화의 비용을 줄이도록 고안되었다.
메모리는 정보를 저장하거나 저장된 정보를 읽기 위하여 바둑판과 같이 행과 열로 구성된 행렬 구조의 주소를 갖는다. 메모리 컨트롤러 또는 메모리 컨트롤러를 포함하는 프로세서가 메모리에 있는 정보를 읽거나 메모리에 정보를 기록할 때는 먼저 행에 활성화 명령(ACT 명령)을 보내고 나서 열에 CAS(Column Address Strobe) 신호(CAS 명령) 또는 읽기/쓰기 명령을 보내어 주소를 확인한다.
메모리에 명령을 내려 읽기, 쓰기 동작을 하기 위해서는 메모리의 행, 열과 함께 뱅크(bank)를 활성화해야 한다. 하나의 뱅크를 활성화시킨 후 미리 결정된 소정의 시간이 지난 후에 또 다른 뱅크를 활성화할 수 있다.
메모리의 온도 관리를 위한 열 쓰로틀링(thermal throttling) 방법을 다루고 있는 선행특허로서 미국등록특허 US8122265(power managementusing adaptive thermal throttling)이 있다. 이 선행특허는 칩 외부에서 완전 버퍼링된 이중 인라인 메모리 모듈(FBD) 시스템으로 전송 될 신호를 스케줄링하는 스케줄러, 칩 외부로 스케줄링된 신호를 전송하는 송신기, 칩 외부 온도와 관련된 온도 정보를 포함하는 신호를 포함하는 신호를 수신하는 수신기, 및 여러 개의 작은 윈도우로 구성된 큰 윈도우의 결론(conclusion) 근처에서 온도 정보를 확인하면서 일련의 작은 윈도우 내에서 스케쥴링 할 수 있는 명령의 수를 선택적으로 제한하는 제어회로를 포함하는 칩을 공개하고 있다.
또한 메모리 시스템의 열 정보에 기초한 메모리 시스템 관리에 관한 선행특허로서 대한민국 등록특허번호 KR 10-1786572가 있다. 이 선행특허는, 서로 적층된(stacked) 복수의 메모리 칩을 포함하는 장치에 관한 것이다. 여기서 상기 복수의 메모리 칩 각각은 적어도 2개의 채널 영역을 포함한다. 상기 적어도 2개의 채널 영역은, 온도 데이터를 생성하기 위하여 각각의 채널 영역들의 온도들을 감지하도록 구성된 각각의 열 센서들 및 상기 각각의 열 센서들로부터 판독된 상기 온도 데이터를 저장하도록 구성된 저장소를 포함한다. 그리고 상기 장치는 상기 각각의 열 센서들로부터의 상기 온도 데이터를 주기적으로 판독하고 상기 온도 데이터를 제공하도록 구성된 TCL(Thermal control logic)을 더 포함하고, 상기 온도 데이터의 판독들 사이의 시간 간격들은 상기 온도 데이터에 기초하여 조정된다.
상술한 내용은 본 발명의 이해를 돕기 위하여 제시된 것으로서, 상술한 내용에는 본 특허출원 발명의 발명자들이 본 특허출원의 출원 시점에 공개하지 않은 내용이 포함되어 있을 수 있다. 따라서 상술한 내용 모두가 당연히 종래 기술(prior art)인 것으로 간주되어서는 안된다. 또한 상술한 내용에 의해 본 발명의 범위가 제한되어서는 안된다.
본 발명은 메모리에서 발생하는 열을 쓰로틀링하여 메모리의 온도를 제어하는 효율적인 기술을 제공하고자 한다.
본 발명의 일 관점에 따라 제공되는 메모리장치 온도관리방법은, 메모리장치의 온도를 획득하도록 되어 있는 메모리 컨트롤러가, 상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정하는 단계; 및 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하는 단계;를 포함한다. 이때, 상기 메모리 컨트롤러에서 준비한 명령이 상기 메모리장치에게 제공되는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변된다
이때, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있을 수 있다. 그리고 상기 메모리장치 온도관리방법은, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부에게 상기 메모리장치의 온도 제어권을 핸드오버하는 인터럽트를 제공하는 단계;를 더 포함할 수 있다.
이때, 상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 제1온도감지주기에 따라 획득하도록 되어 있을 수 있다. 그리고 상기 메모리장치의 온도가 제1한계온도보다 높은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 상기 제1온도감지주기보다 짧은 제2감지주기에 따라 획득하도록 되어 있을 수 있다.
이때, 상기 제2감지주기의 값은 상기 메모리장치의 온도의 값에 따라 변경될 수 있다.
이때, 상기 메모리장치에게 제공하는 명령의 개수는 상기 메모리 컨트롤러가 상기 메모리장치에게 제공하는 CAS 명령의 개수 및 ACT 명령의 개수를 포함할 수 있다.
이때, 상기 메모리장치 온도관리방법은, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 제2한계온도보다 높은 경우에는 상기 쓰로틀링 레벨을 제3수준의 쓰로틀링 레벨로 설정하는 단계를 더 포함할 수 있다.
이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제2최대 활성화개수는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제1최대 활성화개수 보다 작을 수 있다.
이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 경우, 상기 메모리장치에 포함된 뱅크들 중 활성화 된 뱅크의 개수가 상기 제2최대 활성화 개수와 동일한 숫자에 도달하면, 새로운 뱅크를 활성화하기 위한 뱅크 활성화 명령을 상기 메모리장치에게 전달하지 않도록 되어 있을 수 있다.
이때, 상기 메모리 컨트롤러는, 상기 메모리장치 내에서 비활성 상태를 갖는 뱅크인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있을 수 있다. 그리고 상기 메모리 컨트롤러는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치 내에서 활성화 상태를 갖는 뱅크들 중 어느 하나의 뱅크를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크 대신 상기 비활성 뱅크를 활성화시키도록 되어 있을 수 있다.
이때, 상기 비활성 유지 사이클은, 상기 비활성 뱅크가 비활성 상태를 유지한 시간, 상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러 내에서 대기 중인 명령들의 개수, 및 상기 비활성 뱅크가 비활성 상태를 유지하는 동안 상기 메모리장치 내의 다른 활성화된 뱅크들에게 제공된 명령들의 개수 중 하나 이상의 조합을 기초로 산출될 수 있다.
이때, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨인 상태에서, 한 개의 소정의 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 제1제한개수(#N1)로 제한될 수 있다. 그리고 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨인 상태에서, 한 개의 상기 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 상기 제1제한개수(#N1)보다 적은 제2제한개수(#N2)로 제한될 수 있다.
이때, 상기 메모리 컨트롤러는 처리부로부터 상기 단위주기(P)의 값 및 상기 단위주기 동안 상기 제1제한개수(#N1)의 값을 획득하도록 되어 있을 수 있다.
또한, 상기 메모리 컨트롤러는 상기 제2제한개수(#N2)의 값을 획득하도록 되어 있을 수 있다.
이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러로부터 상기 메모리장치에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에도, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령을 상기 제1시구간 내에 상기 메모리장치에게 더 전송하도록 되어 있을 수 있다.
이때, 상기 우선순위명령은, 상기 메모리 컨트롤러가 상기 처리부로부터 미리 결정된 수준 이상의 우선순위를 갖는 트랜잭션을 수신한 경우 생성될 수 있다.
또는, 상기 메모리 컨트롤러는, 사이드밴드(sideband) 신호를 이용하여 특정 속성을 갖는 트랜잭션의 우선순위를 상승시키도록 되어 있을 수 있다. 이때, 상기 메모리 컨트롤러는, 상기 사이드밴드 신호에 따라 상승된 트랜잭션에 관한 우선순위명령을 생성할 수 있다.
상기 메모리 컨트롤러가 처리해야 하는 트랜잭션들 중 하나 또는 일부를 선택하여 선택된 트랜잭션의 처리 우선순위를 상승시킬 수 있다. 이를 위해서 메모리 컨트롤러는 상기 메모리 컨트롤러에 있는 트랜잭션 중 일부만 선택해야 한다.
상기 일부의 트랜잭션을 선택하는 일 실시예에 따른 방법은, 상기 메모리 컨트롤러에 연결된 명령 버스와 별개로 제공되는 버스인 사이드밴드 버스를 이용할 수 있다. 상기 사이드밴드 버스는 처리부와 메모리 컨트롤 사이에 존재할 수 있다. 처리부는 상기 사이드밴드 버스를 통해 특정 트랜잭션을 선택할 수 있는 시그널을 상기 메모리 컨트롤러에게 보낼 수 있다. 예컨대, 상기 메모리 컨트롤러에는 명령 버스를 통해 복수 개의 처리부들이 연결될 수 있는데, 상기 명령 버스를 통해 어떤 트랜잭션이 어느 처리부에 의해 요청된 것인지를 나타내는 정보를 함께 전송할 수 있다. 이때 트랜잭션의 처리 우선순위 상승을 요청하는 처리부의 개수와 동일한 개수의 시그널이 처리부와 메모리 컨트롤러 사이에 인가될 수 있다. 제n처리부로부터의 특정 트랜잭션에 대한 처리 우선순위를 높히고자 하는 경우 제n시그널이 인가될 수 있다.
상기 일부의 트랜잭션을 선택하는 다른 실시예에 따른 방법은 명령 버스에 '특정 트랜잭션의 처리 우선순위를 상승하는' 명령을 추가하는 방법을 이용할 수 있다.
상기 사이드밴드 신호는 상기 특정 트랜잭션에 대한 처리 우선순위를 높이기 위하여 상기 메모리 컨트롤러에 제공되는 신호를 의미할 수 있다.
이때, 상기 메모리장치 온도관리방법은, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 제2한계온도보다 높은 경우에는 상기 쓰로틀링 레벨을 제3수준의 쓰로틀링 레벨로 설정하는 단계를 더 포함할 수 있다. 그리고 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 소정의 한 개의 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 소정의 제2제한개수(#N2)로 설정될 수 있다.
상기 쓰로틀링 레벨이 상기 제3수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 상기 제2제한개수(#N2)보다 적은 제3제한개수(N3)로 설정될 수 있다.
이때, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 제1최소 시간격보다 작지 않도록 제어될 수 있다. 그리고 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격보다 큰 제2최소 시간격보다 작지 않도록 제어될 수 있다.
이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령과 직전 명령 간의 시간격이 상기 제2최소 시간격보다 작은 값을 갖는 것을 허용하도록 되어 있을 수 있다. 상기 직전 명령은 상기 우선순위명령 직전에 상기 메모리 컨트롤러로부터 상기 메모리장치에게 제공된 명령이다.
본 발명의 다른 관점에 따라, 쓰로틀링 제어로직(1), 온도감지로직(2), 메모리 컨트롤러(3), 및 인터럽트 핸들러(4)를 포함하는 메모리 컨트롤러가 메모리장치의 온도를 관리하는 메모리장치 온도관리방법이 제공될 수 있다. 상기 메모리장치 온도관리방법은, 상기 온도감지로직이, 상기 쓰로틀링 제어로직로부터 제공된 제1감지주기에 따라 선택된 제1시각에, 메모리장치의 온도를 획득해달라는 제1요청을 상기 메모리 컨트롤러에게 전송하는 단계; 상기 메모리 컨트롤러가, 상기 제1요청에 대응하여 상기 메모리장치의 온도인 제1온도를 상기 메모리장치의 온도를 감지하는 온도감지장치로부터 수신하고 그리고 상기 제1온도를 쓰로틀링 제어로직에게 제공하는 단계; 상기 쓰로틀링 제어로직이, 상기 제1온도가 소정의 제1한계온도보다 큰 것으로 판단된 경우에는, 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하고 그리고 상기 온도감지로직에게 제2감지주기를 제공하는 단계; 상기 온도감지로직이, 상기 제2감지주기에 따라 선택된 제2시각에, 상기 메모리장치의 온도를 획득해달라는 제2요청을 상기 메모리 컨트롤러에게 전송하는 단계; 상기 메모리 컨트롤러가, 상기 제2요청에 대응하여 상기 메모리장치의 온도인 제2온도를 상기 메모리장치로부터 수신하고 그리고 상기 제2온도를 쓰로틀링 제어로직에게 제공하는 단계; 및 상기 쓰로틀링 제어로직이, 상기 제2온도가 상기 제1한계온도보다 높은 소정의 제2한계온도보다 높은 것으로 판단한 경우에는, 상기 쓰로틀링 레벨을 제3수준의 쓰로틀링 레벨로 설정하고 그리고 처리부(20)에게 온도 제어권을 핸드오버하는 인터럽트를 제공하도록 상기 인터럽트 핸들러를 턴-온하는 단계;를 포함한다. 이때, 상기 메모리 컨트롤러는, 상기 메모리장치의 온도가 상기 제1한계온도보다 작은 경우에는 상기 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정하도록 되어 있고, 상기 메모리 컨트롤러에서 준비한 명령이 상기 메모리장치에게 제공되는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변된다.
본 발명에 따르면 메모리에서 발생하는 열을 쓰로틀링하여 메모리의 온도를 제어하는 효율적인 기술을 제공할 수 있다.
도 1은 메모리 컨트롤러 및 메모리 컨트롤러에 의해 제어되는 메모리 모듈의 구조의 예를 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따라 제공되는 컴퓨팅장치의 구조를 나타낸 것이다.
도 3은 도 2에 제시한 메모리 컨트롤러의 구성을 자세히 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따라 제공되는 메모리 컨트롤러가 메모리의 쓰로틀링 레벨을 제어하는 방법을 나타낸 순서도이다.
도 5는 본 발명의 일 실시예에 따라 메모리 컨트롤러가 메모리의 뱅크의 활성화를 제어하는 방법을 설명하기 위한 다이어그램이다.
도 6은 본 발명의 일 실시예에 따라 제공되는 메모리장치 온도관리방법을 나타낸 순서도이다.
도 7은 본 발명의 일 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.
도 8은 본 발명의 다른 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.
이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.
도 2는 본 발명의 일 실시예에 따라 제공되는 컴퓨팅장치의 구조를 나타낸 것이다.
본 발명의 일 실시예에 따라 제공되는 컴퓨팅장치(100)는 처리부(20), 메모리 컨트롤러(10), 및 메모리(30)을 포함할 수 있다. 상기 메모리(30)은 예컨대 DRAM일 수 있다.
상기 메모리 컨트롤러(10)은 상기 메모리(30)에 대한 소정의 제어권을 가질 수 있다. 그리고 상기 메모리 컨트롤러(10)은 소정의 조건에 도달하면 상기 제어권을 상기 처리부(20)에 반환하는 인터럽트를 발생시킬 수 있다.
상기 처리부(20)은 상기 제어권을 가지고 있다가 소정의 다른 조건을 만족하면 상기 제어권을 다시 상기 메모리 컨트롤러(10)에게 돌려줄 수 있다(핸드-백).
이때, 상기 메모리(30)에 대한 소정의 제어권은, 상기 메모리(30)의 온도를 제어하는 제어권일 수 있다.
상기 메모리 컨트롤러(10)은 명령 버스를 통해 상기 메모리(30)에게 각종 명령을 전달할 수 있고, 데이터 버스를 통해 상기 메모리(30)에게 상기 명령에 수반하는 데이터를 전달할 수 있다.
상기 처리부(20)은 상기 컴퓨팅장치(100)의 주-프로세서(main processor) 또는 부-프로세서(sub processor) 또는 인터커넥트(interconnect)일 수 있다.
도 3은 도 2에 제시한 메모리 컨트롤러의 구성을 자세히 나타낸 것이다.
상기 메모리 컨트롤러(10)은 쓰로틀링 제어로직(1), 온도감지로직(2), 스케쥴러(3), 및 인터럽트 핸들러(4)를 포함할 수 있다.
상기 쓰로틀링 제어로직(1)은 메모리 컨트롤러(10)의 주된 기능 로직이다. 상기 쓰로틀링 제어로직(1)은 스케쥴러(3)이 메모리(30)에게 전송하는 명령들의 개수 또는 메모리(30)의 온도에 기초하여 감지 주기를 설정할 수 있다. 상기 쓰로틀링 제어로직(1)은 스케쥴러(3)로부터 상기 스케쥴러(3)이 획득한 상기 메모리(30)의 온도를 수신할 수 있다. 상기 쓰로틀링 제어로직(1)은 상기 메모리(30)의 현재 온도에 기초하여 서로 다른 쓰로틀링 레벨을 적용할 수 있다. 상기 쓰로틀링 제어로직(1)은 상기 메모리(30)의 현재 온도가 소정의 레벨, 예컨대 소정의 제2한계온도를 초과할 때에 인터럽트 핸들러(4)를 턴-온(turn-on)할 수 있다.
상기 스케쥴러(3)는 상기 쓰로틀링 제어로직(1)이 결정한 상기 쓰로틀링 조건을 적용할 수 있다. 상기 스케쥴러(3)은 상기 스케쥴러(3)이 획득한 상기 메모리(30)의 온도를 상기 쓰로틀링 제어로직(1)에게 제공할 수 있다. 또한 상기 스케쥴러(3)은 상기 스케쥴러(3)이 상기 메모리(30)에게 제공해야 하는 명령들의 개수에 관한 정보를 상기 쓰로틀링 제어로직(1)에게 제공할 수 있다.
상기 쓰로틀링 제어로직(1)은 상기 쓰로틀링 제어로직(1)이 설정한 쓰로틀링 레벨이 값을 상기 스케쥴러(3)에게 제공할 수 있다. 또한 상기 쓰로틀링 제어로직(1)은 각각의 상기 쓰로틀링 레벨에 따라 동시 활성화가 허용되는 상기 메모리(30) 내의 뱅크들의 최대 개수를 상기 스케쥴러(3)에게 제공할 수 있다. 또한 상기 쓰로틀링 제어로직(1)은, 소정의 단위주기(P) 그리고 상기 단위주기(P) 동안 상기 스케쥴러(3)로부터 상기 메모리(30)에게 제공될 수 있는 명령의 최대 개수인 제한개수(N)에 관한 값을 제공할 수 있다. 상기 단위주기(P) 및/또는 상기 제한개수(N)는 각각의 쓰로틀링 레벨에 따라 다른 값을 가질 수 있다.
상기 쓰로틀링 제어로직(1)은 상기 각각의 쓰로틀링 레벨에 따라 결정되는 상기 메모리(30)의 온도의 감지 주기를 상기 온도감지로직(2)에게 제공할 수 있다.
상기 온도감지로직(2)은 현재 적용되고 있는 감지 주기에 따라 결정되는 시각마다 상기 메모리(30)의 온도를 감지하라는 온도 감지 요청을 상기 스케쥴러(3)에게 전송할 수 있다. 상기 온도 감지 요청을 받은 상기 스케쥴러(3)은 상기 메모리(30)의 현재 온도를 검출하는 별도의 온도감지장치로부터 상기 메모리(30)의 현재 온도를 획득할 수 있다. 상기 온도감지장치는 상기 메모리(30) 내에 포함된 것일 수도 있고 또는 상기 메모리(30)는 별도로 제공된 것이 수도 있다.
상기 쓰로틀링 제어로직(1)은 소정의 조건에 도달하면 상기 쓰로틀링 제어로직(1)이 갖고 있던 상기 메모리(30)의 온도를 제어하기 위하여 열을 쓰로틀링하는 제어권을 상기 처리부(20)에게 핸드오버하기 위한 인터럽트의 발생요청을 상기 인터럽트 핸들러(4)에게 보낼 수 있다.
상기 인터럽트 핸들러(4)는 상기 인터럽트의 발생요청에 대응하여 상기 메모리(30)의 온도에 대한 제어권을 핸드오버하는 인터럽트를 생성하여 상기 처리부(20)에게 제공할 수 있다.
도 3에서 상기 쓰로틀링 제어로직(1)과 상기 스케쥴러(3)이 서로 분리되어 제시되었으나 이는 설명의 편의를 위한 것이고, 상기 쓰로틀링 제어로직(1)과 상기 스케쥴러(3)은 상기 스케쥴러(3)로 통합될 수도 있다.
도 4는 본 발명의 일 실시예에 따라 제공되는 메모리 컨트롤러가 메모리의 쓰로틀링 레벨을 제어하는 방법을 나타낸 순서도이다.
이하 도 4를 참조하여 설명한다.
단계(S10)에서, 상기 메모리 컨트롤러(10)는 미리 설정된 제1감지주기에 따라 상기 메모리(30)의 온도를 측정할 수 있다. 즉, 제1감지주기 간격으로 메모리(30)의 온도를 측정할 수 있다.
단계(S11)에서, 상기 메모리 컨트롤러(10)는 상기 제1감지주기에 따라 측정한 상기 메모리(30)의 온도인 제1온도가 미리 설정된 제1한계온도보다 작은지 여부를 결정할 수 있다.
상기 제1온도가 상기 제1한계온도보다 작은 경우 다시 단계(S10)로 돌아갈 수 있다. 반면, 상기 제1온도가 상기 제1한계온도보다 작지 않은 경우 후술하는 단계(S12)로 갈 수 있다.
단계(S12)에서, 상기 메모리 컨트롤러(10)은 쓰로틀링 레벨은 제2 쓰로틀링 레벨로 설정할 수 있다.
단계(S13)에서, 상기 메모리 컨트롤러(10)은 미리 설정된 제2감지주기에 따라 상기 메모리(30)의 온도를 측정할 수 있다. 즉, 제2감지주기 간격으로 메모리(30)의 온도를 측정할 수 있다.
상기 제2감지주기는 상기 제1감지주기보다 짧을 수 있다.
단계(S14)에서, 상기 메모리 컨트롤러(10)는 상기 제2감지주기에 따라 측정한 상기 메모리(30)의 온도인 제2온도가 상기 제1한계온도보다 작은지 여부를 결정할 수 있다.
상기 제2온도가 상기 제1한계온도보다 작은 경우 후술하는 단계(S19)로 갈 수 있다. 반면, 상기 제2온도가 상기 제1한계온도보다 작지 않은 경우 후술하는 단계(S15)로 갈 수 있다.
단계(S15)에서, 상기 메모리 컨트롤러(10)는 상기 제2감지주기에 따라 측정한 상기 제2온도가 미리 설정된 제2한계온도보다 작은지 여부를 결정할 수 있다.
상기 제2한계온도는 상기 제1한계온도보다 높은 값일 수 있다.
상기 제2온도가 상기 제2한계온도보다 작은 경우 단계(S13)로 되돌아 갈 수 있다. 반면, 상기 제2온도가 상기 제2한계온도보다 작지 않은 경우 후술하는 단계(S16)로 갈 수 있다.
단계(S16)에서, 상기 메모리 컨트롤러(10)는 쓰로틀링 레벨을 제3쓰로틀링 레벨로 설정할 수 있다.
단계(S17)에서, 상기 메모리 컨트롤러(10)는 인터럽트를 발생하여, 상기 인터럽트를 상기 처리부(20)에게 전달함으로써, 상기 메모리 컨트롤러(10)가 갖고 있던 상기 메모리(30)에 대한 온도 제어권(temperature management)을 상기 처리부(20)에게 핸드오버할 수 있다.
단계(S18)에서, 상기 메모리 컨트롤러(10)는 상기 처리부(20)가 온도 제어권(temperature controllability)을 다시 상기 메모리 컨트롤러(10)에게 핸드-백 할 때까지, 강화된 쓰로틀링 레벨을 유지하면서 트랜잭션을 처리할 수도 있다.
상기 강화된 쓰로틀링 레벨은 상술한 제3쓰로틀링 레벨일 수 있다.
예컨대 상기 처리부(20)는 스스로 메모리(30)의 동작을 제어하면서 메모리(30)의 온도를 측정하다가 소정의 조건에 도달하면 다시 상기 메모리 컨트롤러(10)에게 상기 메모리(30)의 온도 제어권을 핸드-백 할 수 있다.
단계(S19)에서, 상기 메모리 컨트롤러(10)는 쓰로틀링 레벨을 해제(release)할 수 있다. 즉, 상기 메모리 컨트롤러(10)는 상기 메모리의 온도가 상기 제1한계온도보다 낮은 상황에서 적용할 수 있는 쓰로틀링 레벨인 제1쓰로틀링 레벨을 적용할 수 있다. 그리고 단계(S10)로 되돌아 갈 수 있다.
상기 제1쓰로틀링 레벨에서, 상기 메모리 컨트롤러(10)는 처리부(20)에서 디폴트로 제공한 메모리 열 쓰로틀링 알고리즘을 사용할 수 있으며, 상기 메모리 컨트롤러(10) 자체의 메모리 온도 제어 알고리즘을 적용하지 않을 수 있다. 이러한 방식의 쓰로틀링 레벨을, 상술한 제1 쓰로틀링 레벨이라고 지칭할 수 있다.
도 5는 본 발명의 일 실시예에 따라 메모리 컨트롤러가 메모리의 뱅크의 활성화를 제어하는 방법을 설명하기 위한 다이어그램이다.
상기 메모리 컨트롤러(10)와 메모리(30)들은 명령 버스 및 데이터 버스에 의해 서로 연결되어 있을 수 있다.
상기 메모리 컨트롤러(10)에 연결된 메모리(30)들은 각각 복수 개의 뱅크(300)들을 포함할 수 있다. 각각의 상기 뱅크(300)에는 상기 메모리 컨트롤러(10)와 상기 뱅크(300)를 연결하는 데에 사용되는 주변장치(320)가 연결되어 있을 수 있다.
상기 주변장치(320)는, 주소/명령, 데이터 인/아웃 등의, 입출력 및 제어를 위한 회로부분이다.
각각의 상기 뱅크(300)는 독립적으로 활성화/비활성화되도록 되어 있을 수 있다. 상기 각 뱅크에 대한 활성화 명령인 ACT 명령은 메모리 컨트롤러(10)가 메모리(30)에게 제공할 수 있다.
상기 메모리 컨트롤러(10)는 제1메모리(31) 또는 제2메모리(32)에 포함되어 있는 상기 뱅크(300)들이 활성화될 수 있는 개수를 제한할 수 있도록 되어 있다.
또는 일 실시예에서 메모리 컨트롤러(10)는 메모리 컨트롤러(10)에 연결된 모든 메모리(30)에 포함된 모든 상기 뱅크(300)들이 활성화될 수 있는 개수를 제한할 수 있도록 되어 있을 수 있다.
상기 메모리 컨트롤러(10)가 상기 제1메모리(31)에 포함되어 있는 상기 뱅크(300)들이 활성화될 수 있는 최대 개수를 제1최대 활성화개수로 설정했다고 가정할 수 있다. 이때, 만일 제1메모리(31)에 포함된 뱅크(300)들 중 상기 제1최대 활성화개수만큼의 뱅크들이 활성화 된 상태라면, 상기 제1메모리(31)에 포함된 상기 뱅크(300)들 중 새로운 뱅크(300)을 더 활성화하기 위한 ACT 명령은 상기 메모리 컨트롤러(10)로부터 상기 제1메모리(31)에게 전달되지 않는다.
도 6은 본 발명의 일 실시예에 따라 제공되는 메모리장치 온도관리방법을 나타낸 순서도이다.
단계(S110)에서, 메모리장치(30)의 온도를 획득하도록 되어 있는 메모리 컨트롤러(10)가, 상기 메모리장치(10)의 온도가 소정의 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정할 수 있다.
단계(S120)에서, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정할 수 있다.
이때, 상기 메모리 컨트롤러(10)이 준비한 명령이 상기 메모리장치(30)에게 제공되는 타임스케쥴에 대한 제약조건 및 상기 메모리장치(30) 내의 뱅크(300)들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변된다.
이때, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 상기 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있을 수 있다.
단계(S130)에서, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부(20)에게 상기 메모리장치(30)의 온도 제어권을 핸드오버하는 인터럽트를 제공할 수 있다.
이때, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 낮은 경우에는, 상기 메모리 컨트롤러(10)가 상기 메모리장치(30)의 온도를 미리 설정된 제1온도감지주기에 따라 획득하도록 되어 있을 수 있다. 그리고 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높은 경우에는, 상기 메모리 컨트롤러(10)가 상기 메모리장치(30)의 온도를 상기 제1온도감지주기보다 짧은 제2감지주기에 따라 획득하도록 되어 있을 수 있다.
이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치(30) 내의 뱅크(300)들 중 동시에 활성화될 수 있는 뱅크(300)의 최대 개수인 제2최대 활성화개수는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치(30) 내의 뱅크(300)들 중 동시에 활성화될 수 있는 뱅크(300)의 최대 개수인 제1최대 활성화개수 보다 작을 수 있다.
이때, 상기 메모리 컨트롤러(10)는, 상기 메모리장치(30) 내에서 비활성 상태를 갖는 뱅크(300)인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있을 수 있다.
그리고 상기 메모리 컨트롤러(10)는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치(30) 내에서 활성화 상태를 갖는 뱅크(300)들 중 어느 하나의 뱅크(300)를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크(300) 대신 상기 비활성 뱅크를 활성화시키도록 되어 있을 수 있다.
이때, 상기 비활성 유지 사이클은, 상기 비활성 뱅크가 비활성 상태를 연속적으로 유지한 시간, 상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러(10) 내에서 대기 중인 명령들의 개수, 및 상기 비활성 뱅크가 비활성 상태를 유지하는 동안 상기 메모리장치(30) 내의 다른 활성화된 뱅크들에게 제공된 명령들의 개수 중 하나 이상의 조합을 기초로 산출될 수 있다.
도 7은 본 발명의 일 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.
상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨인 상태에서, 한 개의 소정의 단위주기(P) 동안 상기 메모리 컨트롤러(10)부터 상기 메모리장치(30)로 제공될 수 있는 명령의 총 개수를 제1제한개수(#N1)로 제한할 수 있다.
이때, 상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨인 상태에서, 한 개의 상기 단위주기(P) 동안 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)로 제공될 수 있는 명령의 총 개수를 상기 제1제한개수(#N1)보다 적은 제2제한개수(#N2)로 제한할 수 있다.
그런데, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에도, 상기 메모리 컨트롤러(10)이 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령(CP)이 생성되면, 상기 메모리 컨트롤러(10)은 상기 우선순위명령(CP)을 상기 제1시구간 내에 상기 메모리장치(30)에게 더 전송하도록 되어 있을 수 있다.
그러나, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에, 상기 메모리 컨트롤러(10)이 상기 미리 결정된 수준보다 낮은 우선순위를 갖는 명령인 후순위명령(CL)이 생성되면, 상기 메모리 컨트롤러(10)은 상기 후순위명령(CL)을 상기 제1시구간 내에 상기 메모리장치(30)에게 전송하지 않을 수 있다.
전송되지 못한 상기 후순위명령(CL)은 상기 메모리 컨트롤러(10)에 저장되어 있다가, 상기 제1시구간 이후의 단위주기 동안 상기 메모리(30)에게 전송될 수 있다.
이때, 상기 우선순위명령(CP)은, 상기 메모리 컨트롤러(10)가 상기 처리부(20)로부터 미리 결정된 수준 이상의 우선순위를 갖는 트랜잭션을 수신한 경우 상기 메모리 컨트롤러(10) 내에서 생성될 수 있다.
상기 단위주기(P) 및 상기 제1제한개수(#N1) 중 하나 이상은 상기 처리부(20)에서 생성되어 상기 메모리 컨트롤러(10)에게 제공된 것일 수 있다.
상기 제2제한개수(#N2)는 상기 처리부가 결정하여 상기 메모리 컨트롤러(10)에게 제공할 값일 수 있다.
도 7의 (a)는 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태를 나타내며, 도 7의 (b), 및 도 7의 (c)는 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태를 나타낸다.
도 7에서 가로축은 시간축이다.
도 7에서 참조부호 CP는 상기 우선순위명령을 나타내고, 참조부호 CL은 상기 우선순위명령보다 후순위를 갖는 후순위명령을 나타낸다.
도 7에서 #N1은 12인 것으로 예시되어 있고, #N2는 8인 것으로 예시되어 있다.
도 7의 (a)를 참고하면, 상기 메모리 컨트롤러(10)은 단위주기(P) 동안 상기 우선순위명령 및/또는 상기 후순위명령을 최대 #N1개까지 전송할 수 있다.
도 7의 (b) 및 도 7의 (c)를 참고하면, 상기 메모리 컨트롤러(10)은 단위주기(P) 동안 상기 우선순위명령 및/또는 상기 후순위명령을 최대 #N1개까지 전송할 수 있다.
도 7의 (b)에 나타낸 바와 같이, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 단위주기(P)가 시작된 이후 명령이 #N2개 전송된 이후에는, 상기 단위주기(P)가 종료되기 전에는 다른 명령이 추가적으로 전송될 수 없다.
그러나, 도 7의 (c)에 나타낸 바와 같이, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 단위주기(P)가 시작된 이후 명령이 #N2개 전송된 이후에 아직 상기 단위주기(P)가 종료되기 전이라고 하더라도, 상기 메모리 컨트롤러(10)이 상기 우선순위명령(CP)을 생성한 경우에는 상기 생성된 우선순위명령(CP)을 상기 메모리(30)에게 전송할 수 있다.
도 8은 본 발명의 다른 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.
상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치(30)에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 제1최소 시간격(t1)보다 작지 않도록 제어할 수 있다.
그리고 상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치(30)에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격(t1)보다 큰 제2최소 시간격(t2)보다 작지 않도록 제어할 수 있다.
그런데, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리 컨트롤러(10)이 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령(CP)을 생성할 수 있다. 이때, 상기 메모리 컨트롤러(10)은 상기 생성된 우선순위명령과 직전 명령 간의 시간격이 상기 제2최소 시간격(t2)보다 작은 값을 갖는 것을 허용하도록 되어 있을 수 있다. 상기 직전 명령은 상기 우선순위명령 직전에 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)에게 제공된 명령이다. 예컨대 상기 생성된 우선순위명령과 직전 명령 간의 시간격이 상기 제1최소 시간격(t1)과 동일할 수도 있다.
도 8의 (a)는 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태를 나타내며, 도 8의 (b), 및 도 8의 (c)는 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태를 나타낸다.
도 8에서 가로축은 시간축이다.
도 8에서 참조부호 CP는 상기 우선순위명령을 나타내고, 참조부호 CL은 상기 우선순위명령보다 후순위를 갖는 후순위명령을 나타낸다.
도 8의 (a)를 참조하면, 인접한 두 명령이 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 제공되는 시간의 차이값은 상기 제1최소 시간격(t1)과 동일하게 유지됨으로써 상기 차이값이 상기 제1최소 시간격(t1)보다 작지 않도록 제어된다.
도 8의 (b)를 참조하면, 인접한 두 명령이 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 제공되는 시간의 차이값은 상기 제2최소 시간격(t2)과 동일하게 유지됨으로써 상기 차이값이 상기 제2최소 시간격(t2)보다 작지 않도록 제어된다.
도 8의 (c)를 참조하면, 인접한 두 명령이 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 제공되는 시간의 차이값은, 기본적으로 상기 제2최소 시간격(t2)과 동일하게 유지됨으로써 상기 차이값이 상기 제2최소 시간격(t2)보다 작지 않도록 제어된다. 그러나 인접한 두 명령 중 나중에 발생한 제2명령이 상기 우선순위명령(CP)인 경우에는, 상기 인접한 두 명령 중 먼저 발생한 제1명령과 상기 제2명령이 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 제공되는 시간의 차이값은 상기 제2최소 시간격(t2)보다 작은 값을 갖도록 제어될 수 있다. 예컨대 도 8의 (c)에 나타낸 것과 같이 상기 제1명령과 상기 제2명령이 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 제공되는 시간의 차이값은 상기 제1최소 시간격(t1)과 동일할 수도 있다
도 7 및 도 8을 통해 설명한 실시예와 같이, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링에서 상기 제2수준의 쓰로틀링으로 변경되면, 메모리(30)의 열 발생을 줄이기 위하여 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들은 강화된 타임 스케쥴에 따라 전송된다.
즉, 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들이 제1규칙을 따른 타임 스케쥴에 따라 전송된다면, 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들은 제2규칙을 따른 타임 스케쥴에 따라 전송된다. 그리고 이때, 상기 제2규칙을 따른 타임 스케쥴은, 상기 제1규칙을 따른 타임 스케쥴과 비교해 볼 때에, 상기 메모리(30)의 열 발생을 줄이기 위해 더 강화된 스케쥴일 수 있다.
그러나 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 명령 중 일부 명령이 다른 명령에 대하여 우선순위를 갖는 우선순위명령이라면, 상기 우선순위명령에 대해서는 상기 강화된 타임 스케쥴이 적용되지 않을 수 있다. 즉, 상기 우선순위명령에는 상기 제2규칙을 따른 타임 스케쥴이 적용되지 않고 상기 제1규칙을 따른 타임 스케쥴이 적용될 수 있다.
상술한 본 발명의 실시예들을 이용하여, 본 발명의 기술 분야에 속하는 자들은 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에 다양한 변경 및 수정을 용이하게 실시할 수 있을 것이다. 특허청구범위의 각 청구항의 내용은 본 명세서를 통해 이해할 수 있는 범위 내에서 인용관계가 없는 다른 청구항에 결합될 수 있다.
1: 쓰로틀링 제어로직
2: 온도 감지로직
3: 스케줄러
4: 인터럽트 핸들러
10: 메모리 컨트롤러
20: 처리부
30: 메모리
31: 제1메모리
32: 제2메모리
300: 뱅크

Claims (15)

  1. 메모리장치의 온도를 획득하도록 되어 있는 메모리 컨트롤러가, 상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정하는 단계; 및
    상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하는 단계;
    를 포함하며,
    상기 메모리 컨트롤러가 준비한 명령을 상기 메모리장치에게 제공하는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변되며,
    상기 메모리 컨트롤러는, 상기 메모리장치 내에서 비활성 상태를 갖는 뱅크인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있고,
    상기 메모리 컨트롤러는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치 내에서 활성화 상태를 갖는 뱅크들 중 어느 하나의 뱅크를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크 대신 상기 비활성 뱅크를 활성화시키도록 되어 있는,
    메모리장치 온도관리방법.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있고,
    상기 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하는 단계 이후에, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부에게 상기 메모리장치의 온도 제어권을 핸드오버하는 인터럽트를 제공하는 단계;
    를 더 포함하는,
    메모리장치 온도관리방법.
  3. 제1항에 있어서,
    상기 메모리장치의 온도가 상기 제1한계온도보다 낮은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 제1온도감지주기에 따라 획득하도록 되어 있고,
    상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 상기 제1온도감지주기보다 짧은 제2감지주기에 따라 획득하도록 되어 있는,
    메모리장치 온도관리방법.
  4. 제1항에 있어서, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제2최대 활성화개수는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제1최대 활성화개수 보다 작은, 메모리장치 온도관리방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 비활성 유지 사이클은,
    상기 비활성 뱅크가 비활성 상태를 유지한 시간,
    상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러 내에서 대기 중인 명령들의 개수, 및
    상기 비활성 뱅크가 비활성 상태를 유지하는 동안 상기 메모리장치 내의 다른 활성화된 뱅크들에게 제공된 명령들의 개수
    중 하나 이상의 조합을 기초로 산출되는 것을 특징으로 하는
    메모리장치 온도관리방법.
  7. 제1항에 있어서,
    상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨인 상태에서, 한 개의 소정의 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 제1제한개수(#N1)로 제한되고,
    상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨인 상태에서, 한 개의 상기 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 상기 제1제한개수(#N1)보다 적은 제2제한개수(#N2)로 제한되는 것을 특징으로 하는,
    메모리장치 온도관리방법.
  8. 제7항에 있어서, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러로부터 상기 메모리장치에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에도, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령을 상기 제1시구간 내에 상기 메모리장치에게 더 전송하도록 되어 있는, 메모리장치 온도관리방법.
  9. 제8항에 있어서,
    상기 메모리 컨트롤러는, 사이드밴드(sideband) 신호를 이용하여 특정 속성을 갖는 트랜잭션의 우선순위를 상승시키도록 되어 있으며,
    상기 메모리 컨트롤러는, 상기 사이드밴드 신호에 따라 상승된 우선순위를 갖는 상기 트랜잭션에 관한 우선순위명령을 생성하도록 되어 있는,
    메모리장치 온도관리방법.
  10. 제8항에 있어서, 상기 우선순위명령은, 상기 메모리 컨트롤러가 처리부로부터 상기 미리 결정된 수준 이상의 우선순위를 갖는 트랜잭션을 수신한 경우 생성되는, 메모리장치 온도관리방법.
  11. 제1항에 있어서,
    상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 제1최소 시간격보다 작지 않도록 제어되며,
    상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격보다 큰 제2최소 시간격보다 작지 않도록 제어되는 것을 특징으로 하는,
    메모리장치 온도관리방법.
  12. 제11항에 있어서,
    상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령과 직전 명령 간의 시간격이 상기 제2최소 시간격보다 작은 값을 갖는 것을 허용하도록 되어 있으며,
    상기 직전 명령은 상기 우선순위명령 직전에 상기 메모리 컨트롤러로부터 상기 메모리장치에게 제공된 명령인,
    메모리장치 온도관리방법.
  13. 메모리 컨트롤러로서,
    메모리장치의 온도를 획득하도록 되어 있는 스케쥴러; 및
    상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정하고, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있는 쓰로틀링 제어 로직;
    를 포함하며,
    상기 스케쥴러는, 상기 메모리 컨트롤러가 준비한 명령을 상기 메모리장치에게 제공하는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변하도록 되어 있으며,
    상기 메모리 컨트롤러는, 상기 메모리장치 내에서 비활성 상태를 갖는 뱅크인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있고,
    상기 메모리 컨트롤러는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치 내에서 활성화 상태를 갖는 뱅크들 중 어느 하나의 뱅크를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크 대신 상기 비활성 뱅크를 활성화시키도록 되어 있는,
    메모리 컨트롤러.
  14. 제13항에 있어서,
    인터럽트 핸들러를 더 포함하며,
    상기 쓰로틀링 제어 로직은 상기 메모리장치의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있고,
    상기 인터럽트 핸들러는, 상기 메모리장치의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부에게 상기 메모리장치의 온도 제어권을 핸드오버하는 인터럽트를 제공하도록 되어 있는,
    메모리 컨트롤러.
  15. 제13항 또는 제14항의 메모리 컨트롤러, 및 상기 메모리장치를 포함하는, 컴퓨팅 장치.
KR1020200160185A 2020-11-25 2020-11-25 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법 KR102291912B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020200160185A KR102291912B1 (ko) 2020-11-25 2020-11-25 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
PCT/KR2020/017005 WO2022114273A1 (ko) 2020-11-25 2020-11-26 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
KR1020210072574A KR102357099B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
KR1020210072575A KR102357100B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
PCT/KR2021/014381 WO2022114523A1 (ko) 2020-11-25 2021-10-15 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
PCT/KR2021/014405 WO2022114524A1 (ko) 2020-11-25 2021-10-15 메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160185A KR102291912B1 (ko) 2020-11-25 2020-11-25 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020210072574A Division KR102357099B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
KR1020210072575A Division KR102357100B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법

Publications (1)

Publication Number Publication Date
KR102291912B1 true KR102291912B1 (ko) 2021-08-23

Family

ID=77499414

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200160185A KR102291912B1 (ko) 2020-11-25 2020-11-25 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
KR1020210072575A KR102357100B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
KR1020210072574A KR102357099B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020210072575A KR102357100B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
KR1020210072574A KR102357099B1 (ko) 2020-11-25 2021-06-04 메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법

Country Status (2)

Country Link
KR (3) KR102291912B1 (ko)
WO (3) WO2022114273A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022114524A1 (ko) * 2020-11-25 2022-06-02 오픈엣지테크놀로지 주식회사 메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
WO2024151337A1 (en) * 2023-01-09 2024-07-18 Western Digital Technologies, Inc. Notifications for avoiding thermal shutdown

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140028659A (ko) * 2012-08-30 2014-03-10 에스케이하이닉스 주식회사 리프레시 제어회로 및 이를 포함하는 메모리 장치
KR20180110574A (ko) * 2017-03-29 2018-10-10 웨스턴 디지털 테크놀로지스, 인코포레이티드 메모리 디바이스들에 대한 열 스로틀링

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819686B2 (en) * 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
KR20180043924A (ko) * 2016-10-21 2018-05-02 에스케이하이닉스 주식회사 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템
KR20180115846A (ko) * 2017-04-13 2018-10-24 에스케이하이닉스 주식회사 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR102291912B1 (ko) * 2020-11-25 2021-08-23 오픈엣지테크놀로지 주식회사 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140028659A (ko) * 2012-08-30 2014-03-10 에스케이하이닉스 주식회사 리프레시 제어회로 및 이를 포함하는 메모리 장치
KR20180110574A (ko) * 2017-03-29 2018-10-10 웨스턴 디지털 테크놀로지스, 인코포레이티드 메모리 디바이스들에 대한 열 스로틀링

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022114524A1 (ko) * 2020-11-25 2022-06-02 오픈엣지테크놀로지 주식회사 메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
WO2022114523A1 (ko) * 2020-11-25 2022-06-02 오픈엣지테크놀로지 주식회사 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
WO2024151337A1 (en) * 2023-01-09 2024-07-18 Western Digital Technologies, Inc. Notifications for avoiding thermal shutdown

Also Published As

Publication number Publication date
WO2022114273A1 (ko) 2022-06-02
WO2022114524A1 (ko) 2022-06-02
KR102357099B1 (ko) 2022-02-08
WO2022114523A1 (ko) 2022-06-02
KR102357100B1 (ko) 2022-02-08

Similar Documents

Publication Publication Date Title
US7596707B1 (en) System and method for efficient power throttling in multiprocessor chip
KR101560860B1 (ko) 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들
KR102357100B1 (ko) 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
US20180197599A1 (en) Memory device and refresh method thereof
US7603512B2 (en) Dynamic memory refresh controller, memory system including the same and method of controlling refresh of dynamic memory
CN107203336A (zh) 管理存储器功耗的方法及其系统
KR100685547B1 (ko) 메모리 제어 시스템 및 메모리 뱅크 리프레쉬 방법
US11682445B2 (en) Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training
CN109863481A (zh) 用于平台裕度调节和调试的软件模式寄存器访问
US8707002B2 (en) Control apparatus
KR102615693B1 (ko) Dram을 위한 리프레시 관리
US20050268024A1 (en) Memory controller for use in multi-thread pipeline bus system and memory control method
CN109219806A (zh) 低功率存储器节流
KR20180085605A (ko) 핸드쉐이크를 이용하여 메모리의 전력을 조절하는 시스템 온 칩 및 이의 동작 방법
KR20230069234A (ko) Dram을 위한 리프레시 관리 목록
US7345940B2 (en) Method and circuit configuration for refreshing data in a semiconductor memory
US20070016807A1 (en) Method for reducing memory power consumption
US7894290B2 (en) Method and apparatus for performing internal hidden refreshes while latching read/write commands, address and data information for later operation
KR20230023014A (ko) Dram 커맨드 스트리크 관리
US20060256639A1 (en) Semiconductor memory device and memory system
US8122232B2 (en) Self programming slave device controller
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
JP7506272B2 (ja) メモリコントローラ電力状態
US6529981B1 (en) Bus arbiter
US6490225B1 (en) Memory having a synchronous controller and asynchronous array and method thereof

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant