KR102357099B1 - Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same - Google Patents

Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same Download PDF

Info

Publication number
KR102357099B1
KR102357099B1 KR1020210072574A KR20210072574A KR102357099B1 KR 102357099 B1 KR102357099 B1 KR 102357099B1 KR 1020210072574 A KR1020210072574 A KR 1020210072574A KR 20210072574 A KR20210072574 A KR 20210072574A KR 102357099 B1 KR102357099 B1 KR 102357099B1
Authority
KR
South Korea
Prior art keywords
level
memory device
temperature
memory
throttling
Prior art date
Application number
KR1020210072574A
Other languages
Korean (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 KR1020210072574A priority Critical patent/KR102357099B1/en
Application granted granted Critical
Publication of KR102357099B1 publication Critical patent/KR102357099B1/en

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

Abstract

According to the present invention, when it is determined that a temperature of a monitored memory device is higher than a normal temperature according to a first detection period, a first level of a throttling level is applied to the throttling level of a memory bank, and monitoring of the temperature of the memory device is started according to the second sensing period. After that, when it is determined that the temperature of the memory device is higher than a predetermined critical temperature that is higher than the normal temperature, disclosed is a memory controller which sets the throttling level of the memory bank to the throttling level of a second level and provides an interrupt for handover of a temperature control right to a processing unit. The memory controller controls an operation of the memory device according to the throttling level.

Description

메모리장치에 제공되는 명령들 간의 최소 시간격을 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법{Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same}{Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same}

본 발명은 메모리 컨트롤러에 관한 것으로서, 특히 메모리의 온도를 관리하는 기술에 관한 것이다.The present invention relates to a memory controller, and more particularly, to a technology for managing a temperature of a memory.

도 1은 메모리 컨트롤러 및 메모리 컨트롤러에 의해 제어되는 메모리 모듈의 구조의 예를 나타낸 것이다.1 shows an example of the structure of a memory controller and a memory module controlled by the memory controller.

DRAM은 커패시터와 액세스 트랜지스터로 이루어진 셀(cell)의 집합으로 이루어져 있다. 각 셀은 커패시터에 충전된 전하량으로 '1'과'0'의 비트를 표현하고 셀들은 보통 수만 개의 행(row)과 수백 개의 열(column)로 구성된다. 이러한 행과 열로 구성된 셀들은 다시 뱅크(bank)로 구성되고 여러 개의 뱅크가 모여 하나의 DRAM칩(chip)으로 구성된다. DRAM consists of a set of cells made up of capacitors and access transistors. Each cell represents the bits of '1' and '0' as the amount of charge charged in the capacitor, and the cells are usually composed of tens of thousands of rows and hundreds of columns. Cells composed of these rows and columns are again composed of a bank, and several banks are gathered to form a single DRAM chip.

도 1에 나타낸 것과 같이, DRAM 시스템 관점에서는 복수 개의 DRAM 칩들이 하나의 랭크(rank)를 구성하고, 복수 개의 랭크가 모여 하나의 DRAM 모듈을 이룬다.As shown in FIG. 1 , from the perspective of a DRAM system, a plurality of DRAM chips constitute one rank, and a plurality of ranks are gathered to form one DRAM module.

DRAM의 동작은 기본적으로 활성화(activation), 프리챠지(precharge), 읽기/쓰기(read/write), 및 리프레쉬(refresh)로 나눌 수 있다. DRAM은 읽기/쓰기 동작을 수행하기에 앞서 먼저 읽기/쓰기를 수행하려는 해당 행(row)이 반드시 오픈(open)되어 있어야 하는데 해당 행을 오픈하는 것을 활성화라고 한다. 활성화를 통해 선택된 행에 속한 셀들의 데이터가 행 버퍼(row buffer, sense amplifier)에 실리게 되고 비로소 읽기/쓰기 동작은 이 행 버퍼를 통해 수행된다. 프리챠지 동작은 활성화 동작에 의해 오픈된 행 버퍼를 다른 행의 접근을 위해 닫는(close) 것을 의미한다. 활성화는 다른 DRAM 동작과 비교하여 상대적으로 긴 시간이 걸리고 소비되는 전력 또한 크다. DRAM operations are basically divided into activation, precharge, read/write, and refresh. In DRAM, the corresponding row to be read/write must be opened before performing a read/write operation, and opening the corresponding row is called activation. Through activation, data of cells belonging to the selected row is loaded into a row buffer (sense amplifier), and only then read/write operations are performed through this row buffer. The precharge operation means closing the row buffer opened by the activation operation for access to another row. Activation takes a relatively long time compared to other DRAM operations and the power consumption is also large.

DRAM 에너지 소비의 주요 요인으로는 간략하게 활성화와 백그라운드 에너지 소비로 나눌 수 있다. 활성화 및 리프레시는, 읽기/쓰기와 같은 다른 DRAM 동작과 비교하였을 때 상대적으로 긴 시간과 전력을 소모하고 DRAM이 어떤 동작을 수행하거나 혹은 수행하지 않을 때에도 백그라운드 전력은 항상 소비되기 때문에 이 두 요인은 전체 DRAM 에너지 소비의 상당 부분을 차지한다. DRAM에서의 에너지 소비는 DRAM의 온도 상승과 연관된다.The main factors of DRAM energy consumption can be briefly divided into activation and background energy consumption. Since activation and refresh consume a relatively long time and power compared to other DRAM operations such as read/write, and background power is always consumed even when the DRAM is performing or not performing any operation, these two factors contribute to the overall It accounts for a significant portion of DRAM energy consumption. Energy consumption in DRAM is associated with an increase in DRAM temperature.

최근 제안된 기법들은 랭크를 작은 서브랭크 단위로 나누는 방법, DRAM 칩 내부에서 활성화되는 행의 크기를 줄이는 방법, 그리고 메모리에 쓰여질 데이터의 특성을 고려하여 필요한 DRAM 칩만을 사용하는 방법 등을 통해 메모리 접근 시 발생하는 활성화의 비용을 줄이도록 고안되었다. Recently proposed techniques are a method of dividing a rank into small sub-rank units, a method of reducing the size of an active row inside a DRAM chip, and a method of using only necessary DRAM chips in consideration of the characteristics of data to be written to the memory. It is designed to reduce the cost of activation that occurs when

메모리는 정보를 저장하거나 저장된 정보를 읽기 위하여 바둑판과 같이 행과 열로 구성된 행렬 구조의 주소를 갖는다. 메모리 컨트롤러 또는 메모리 컨트롤러를 포함하는 프로세서가 메모리에 있는 정보를 읽거나 메모리에 정보를 기록할 때는 먼저 행에 활성화 명령(ACT 명령)을 보내고 나서 열에 CAS(Column Address Strobe) 신호(CAS 명령) 또는 읽기/쓰기 명령을 보내어 주소를 확인한다. Memory has an address in a matrix structure composed of rows and columns like a checkerboard to store information or read stored information. When a memory controller, or processor containing the memory controller, reads information from or writes information to memory, it first sends an enable command (ACT command) to a row and then a Column Address Strobe (CAS) signal (CAS command) or read to a column. Send the /write command to verify the address.

메모리에 명령을 내려 읽기, 쓰기 동작을 하기 위해서는 메모리의 행, 열과 함께 뱅크(bank)를 활성화해야 한다. 하나의 뱅크를 활성화시킨 후 미리 결정된 소정의 시간이 지난 후에 또 다른 뱅크를 활성화할 수 있다. In order to give commands to the memory to read and write, the bank must be activated along with the row and column of the memory. After activating one bank, another bank may be activated after a predetermined time has elapsed.

메모리의 온도 관리를 위한 열 쓰로틀링(thermal throttling) 방법을 다루고 있는 선행특허로서 미국등록특허 US8122265(power managementusing adaptive thermal throttling)이 있다. 이 선행특허는 칩 외부에서 완전 버퍼링된 이중 인라인 메모리 모듈(FBD) 시스템으로 전송 될 신호를 스케줄링하는 스케줄러, 칩 외부로 스케줄링된 신호를 전송하는 송신기, 칩 외부 온도와 관련된 온도 정보를 포함하는 신호를 포함하는 신호를 수신하는 수신기, 및 여러 개의 작은 윈도우로 구성된 큰 윈도우의 결론(conclusion) 근처에서 온도 정보를 확인하면서 일련의 작은 윈도우 내에서 스케쥴링 할 수 있는 명령의 수를 선택적으로 제한하는 제어회로를 포함하는 칩을 공개하고 있다. As a prior patent dealing with a thermal throttling method for temperature management of a memory, there is US Patent Registration US8122265 (power management using adaptive thermal throttling). This prior patent discloses a scheduler that schedules a signal to be transmitted to a fully buffered dual inline memory module (FBD) system outside the chip, a transmitter that transmits a scheduled signal outside the chip, and a signal including temperature information related to the outside temperature of the chip. A receiver that receives a signal containing, and a control circuit that selectively limits the number of commands that can be scheduled within a series of small windows while checking temperature information near the conclusion of a large window consisting of several small windows. A chip that contains

또한 메모리 시스템의 열 정보에 기초한 메모리 시스템 관리에 관한 선행특허로서 대한민국 등록특허번호 KR 10-1786572가 있다. 이 선행특허는, 서로 적층된(stacked) 복수의 메모리 칩을 포함하는 장치에 관한 것이다. 여기서 상기 복수의 메모리 칩 각각은 적어도 2개의 채널 영역을 포함한다. 상기 적어도 2개의 채널 영역은, 온도 데이터를 생성하기 위하여 각각의 채널 영역들의 온도들을 감지하도록 구성된 각각의 열 센서들 및 상기 각각의 열 센서들로부터 판독된 상기 온도 데이터를 저장하도록 구성된 저장소를 포함한다. 그리고 상기 장치는 상기 각각의 열 센서들로부터의 상기 온도 데이터를 주기적으로 판독하고 상기 온도 데이터를 제공하도록 구성된 TCL(Thermal control logic)을 더 포함하고, 상기 온도 데이터의 판독들 사이의 시간 간격들은 상기 온도 데이터에 기초하여 조정된다.Also, as a prior patent related to memory system management based on thermal information of the memory system, there is Korean Patent Registration No. KR 10-1786572. This prior patent relates to a device including a plurality of memory chips stacked on each other. Here, each of the plurality of memory chips includes at least two channel regions. The at least two channel regions include respective thermal sensors configured to sense temperatures of the respective channel regions to generate temperature data and a storage configured to store the temperature data read from the respective thermal sensors. . and the apparatus further comprises thermal control logic (TCL) configured to periodically read the temperature data from the respective thermal sensors and provide the temperature data, wherein time intervals between readings of the temperature data are It is adjusted based on the temperature data.

상술한 내용은 본 발명의 이해를 돕기 위하여 제시된 것으로서, 상술한 내용에는 본 특허출원 발명의 발명자들이 본 특허출원의 출원 시점에 공개하지 않은 내용이 포함되어 있을 수 있다. 따라서 상술한 내용 모두가 당연히 종래 기술(prior art)인 것으로 간주되어서는 안된다. 또한 상술한 내용에 의해 본 발명의 범위가 제한되어서는 안된다.The above-mentioned contents are presented to help the understanding of the present invention, and the above-mentioned contents may include contents not disclosed by the inventors of the present invention at the time of filing the present patent application. Accordingly, all of the above should not be considered as prior art of course. In addition, the scope of the present invention should not be limited by the above content.

본 발명은 메모리에서 발생하는 열을 쓰로틀링하여 메모리의 온도를 제어하는 효율적인 기술을 제공하고자 한다.An object of the present invention is to provide an efficient technique for controlling the temperature of the memory by throttling heat generated in the memory.

본 발명의 일 관점에 따라 제공되는 메모리장치 온도관리방법은, 메모리장치의 온도를 획득하도록 되어 있는 메모리 컨트롤러가, 상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정하는 단계; 및 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하는 단계;를 포함한다. 이때, 상기 메모리 컨트롤러에서 준비한 명령이 상기 메모리장치에게 제공되는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변된다In a memory device temperature management method provided according to an aspect of the present invention, a memory controller configured to obtain a temperature of the memory device sets a throttling level to a first level when the temperature of the memory device is lower than a first threshold temperature. setting the throttling level of and setting, by the memory controller, a throttling level to a second throttling level when the temperature of the memory device is higher than the first threshold temperature. In this case, at least one of a constraint on a time schedule in which a command prepared by the memory controller is provided to the memory device and the maximum number of banks that can be simultaneously activated among the banks in the memory device varies according to the throttling level.

이때, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있을 수 있다. 그리고 상기 메모리장치 온도관리방법은, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부에게 상기 메모리장치의 온도 제어권을 핸드오버하는 인터럽트를 제공하는 단계;를 더 포함할 수 있다.In this case, when the temperature of the memory device is higher than the first threshold temperature and lower than a second threshold temperature that is higher than the first threshold temperature, the memory controller sets the throttling level to the throttling level of the second level may be made to do. In the memory device temperature management method, when the temperature of the memory device is higher than the second threshold temperature, the memory controller provides an interrupt for handover of the temperature control right of the memory device to the processing unit; may include

이때, 상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 제1온도감지주기에 따라 획득하도록 되어 있을 수 있다. 그리고 상기 메모리장치의 온도가 제1한계온도보다 높은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 상기 제1온도감지주기보다 짧은 제2감지주기에 따라 획득하도록 되어 있을 수 있다.In this case, when the temperature of the memory device is lower than the first threshold temperature, the memory controller may be configured to acquire the temperature of the memory device according to a first temperature sensing period. In addition, when the temperature of the memory device is higher than the first threshold temperature, the memory controller may be configured to acquire the temperature of the memory device according to a second sensing period shorter than the first temperature sensing period.

이때, 상기 제2감지주기의 값은 상기 메모리장치의 온도의 값에 따라 변경될 수 있다.In this case, the value of the second sensing period may be changed according to the value of the temperature of the memory device.

이때, 상기 메모리장치에게 제공하는 명령의 개수는 상기 메모리 컨트롤러가 상기 메모리장치에게 제공하는 CAS 명령의 개수 및 ACT 명령의 개수를 포함할 수 있다.In this case, the number of commands provided to the memory device may include the number of CAS commands and the number of ACT commands provided by the memory controller to the memory device.

이때, 상기 메모리장치 온도관리방법은, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 제2한계온도보다 높은 경우에는 상기 쓰로틀링 레벨을 제3수준의 쓰로틀링 레벨로 설정하는 단계를 더 포함할 수 있다.In this case, in the memory device temperature management method, the memory controller sets the throttling level to a throttling level of a third level when the temperature of the memory device is higher than a second threshold temperature that is higher than the first threshold temperature It may further include the step of

이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제2최대 활성화개수는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제1최대 활성화개수 보다 작을 수 있다.In this case, when the throttling level is set to the second level of the throttling level, the second maximum activation number, which is the maximum number of banks that can be simultaneously activated among the banks in the memory device, is the second maximum activation number, wherein the throttling level is the second level. It may be smaller than the first maximum activation number, which is the maximum number of banks that can be simultaneously activated among the banks in the memory device in a state where the throttling level is set to one level.

이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 경우, 상기 메모리장치에 포함된 뱅크들 중 활성화 된 뱅크의 개수가 상기 제2최대 활성화 개수와 동일한 숫자에 도달하면, 새로운 뱅크를 활성화하기 위한 뱅크 활성화 명령을 상기 메모리장치에게 전달하지 않도록 되어 있을 수 있다.At this time, when the throttling level is set to the second level of throttling, when the number of activated banks among the banks included in the memory device reaches the same number as the second maximum activated number, a new bank is created A bank activation command for activation may not be transmitted to the memory device.

이때, 상기 메모리 컨트롤러는, 상기 메모리장치 내에서 비활성 상태를 갖는 뱅크인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있을 수 있다. 그리고 상기 메모리 컨트롤러는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치 내에서 활성화 상태를 갖는 뱅크들 중 어느 하나의 뱅크를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크 대신 상기 비활성 뱅크를 활성화시키도록 되어 있을 수 있다.In this case, the memory controller may be configured to calculate an inactivity maintenance cycle, which is a value indicating a level of an inactive state of an inactive bank, which is a bank having an inactive state in the memory device. In addition, the memory controller inactivates any one of the banks having an active state in the memory device when the inactivity maintenance cycle exceeds a predetermined threshold value, and selects the inactive bank instead of the inactive one of the banks It may be configured to be activated.

이때, 상기 비활성 유지 사이클은, 상기 비활성 뱅크가 비활성 상태를 유지한 시간, 상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러 내에서 대기 중인 명령들의 개수, 및 상기 비활성 뱅크가 비활성 상태를 유지하는 동안 상기 메모리장치 내의 다른 활성화된 뱅크들에게 제공된 명령들의 개수 중 하나 이상의 조합을 기초로 산출될 수 있다.In this case, the inactivity maintenance cycle includes a time period for which the inactive bank maintains an inactive state, the number of commands waiting in the memory controller as commands to be provided to the inactive bank, and while the inactive bank maintains an inactive state It may be calculated based on a combination of one or more of the number of commands provided to other activated banks in the memory device.

이때, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨인 상태에서, 한 개의 소정의 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 제1제한개수(#N1)로 제한될 수 있다. 그리고 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨인 상태에서, 한 개의 상기 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 상기 제1제한개수(#N1)보다 적은 제2제한개수(#N2)로 제한될 수 있다.In this case, in a state where the throttling level is the first throttling level, the total number of commands that can be provided from the memory controller to the memory device during one predetermined unit period P is a first limited number It can be limited to (#N1). And in a state where the throttling level is the second level of throttling level, the total number of commands that can be provided from the memory controller to the memory device during one unit period P is the first limited number ( It may be limited to a second limited number (#N2) less than #N1).

이때, 상기 메모리 컨트롤러는 처리부로부터 상기 단위주기(P)의 값 및 상기 단위주기 동안 상기 제1제한개수(#N1)의 값을 획득하도록 되어 있을 수 있다.In this case, the memory controller may be configured to obtain the value of the unit period P and the value of the first limited number #N1 during the unit period from the processing unit.

또한, 상기 메모리 컨트롤러는 상기 제2제한개수(#N2)의 값을 획득하도록 되어 있을 수 있다.Also, the memory controller may be configured to acquire the value of the second limited number #N2.

이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러로부터 상기 메모리장치에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에도, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령을 상기 제1시구간 내에 상기 메모리장치에게 더 전송하도록 되어 있을 수 있다.In this case, in a state in which the throttling level is set to the second level of the throttling level, the memory controller sends the memory device to the memory device during a first time period from the start to the end of one unit period P Even after the second limited number (#N2) of commands are transmitted, if a priority command, which is a command having a priority higher than or equal to a predetermined level, is generated by the memory controller, the memory controller transmits the priority command to the first time period may be further configured to transmit to the memory device in the

이때, 상기 우선순위명령은, 상기 메모리 컨트롤러가 상기 처리부로부터 미리 결정된 수준 이상의 우선순위를 갖는 트랜잭션을 수신한 경우 생성될 수 있다.In this case, the priority command may be generated when the memory controller receives a transaction having a priority higher than or equal to a predetermined level from the processing unit.

또는, 상기 메모리 컨트롤러는, 사이드밴드(sideband) 신호를 이용하여 특정 속성을 갖는 트랜잭션의 우선순위를 상승시키도록 되어 있을 수 있다. 이때, 상기 메모리 컨트롤러는, 상기 사이드밴드 신호에 따라 상승된 트랜잭션에 관한 우선순위명령을 생성할 수 있다.Alternatively, the memory controller may be configured to increase the priority of a transaction having a specific attribute by using a sideband signal. In this case, the memory controller may generate a priority command related to the increased transaction according to the sideband signal.

상기 메모리 컨트롤러가 처리해야 하는 트랜잭션들 중 하나 또는 일부를 선택하여 선택된 트랜잭션의 처리 우선순위를 상승시킬 수 있다. 이를 위해서 메모리 컨트롤러는 상기 메모리 컨트롤러에 있는 트랜잭션 중 일부만 선택해야 한다. The memory controller may select one or some of the transactions to be processed to increase the processing priority of the selected transaction. To this end, the memory controller must select only some of the transactions in the memory controller.

상기 일부의 트랜잭션을 선택하는 일 실시예에 따른 방법은, 상기 메모리 컨트롤러에 연결된 명령 버스와 별개로 제공되는 버스인 사이드밴드 버스를 이용할 수 있다. 상기 사이드밴드 버스는 처리부와 메모리 컨트롤 사이에 존재할 수 있다. 처리부는 상기 사이드밴드 버스를 통해 특정 트랜잭션을 선택할 수 있는 시그널을 상기 메모리 컨트롤러에게 보낼 수 있다. 예컨대, 상기 메모리 컨트롤러에는 명령 버스를 통해 복수 개의 처리부들이 연결될 수 있는데, 상기 명령 버스를 통해 어떤 트랜잭션이 어느 처리부에 의해 요청된 것인지를 나타내는 정보를 함께 전송할 수 있다. 이때 트랜잭션의 처리 우선순위 상승을 요청하는 처리부의 개수와 동일한 개수의 시그널이 처리부와 메모리 컨트롤러 사이에 인가될 수 있다. 제n처리부로부터의 특정 트랜잭션에 대한 처리 우선순위를 높히고자 하는 경우 제n시그널이 인가될 수 있다. The method according to an embodiment of selecting the partial transaction may use a sideband bus, which is a bus provided separately from the command bus connected to the memory controller. The sideband bus may exist between the processing unit and the memory control. The processing unit may send a signal for selecting a specific transaction to the memory controller through the sideband bus. For example, a plurality of processing units may be connected to the memory controller through a command bus, and information indicating which transaction is requested by which processing unit may be transmitted together through the command bus. In this case, the same number of signals as the number of processing units requesting an increase in the processing priority of a transaction may be applied between the processing unit and the memory controller. When it is desired to increase the processing priority of a specific transaction from the nth processing unit, the nth signal may be applied.

상기 일부의 트랜잭션을 선택하는 다른 실시예에 따른 방법은 명령 버스에 '특정 트랜잭션의 처리 우선순위를 상승하는' 명령을 추가하는 방법을 이용할 수 있다.A method according to another embodiment of selecting the partial transaction may use a method of adding a command 'increase the processing priority of a specific transaction' to the command bus.

상기 사이드밴드 신호는 상기 특정 트랜잭션에 대한 처리 우선순위를 높이기 위하여 상기 메모리 컨트롤러에 제공되는 신호를 의미할 수 있다.The sideband signal may refer to a signal provided to the memory controller to increase the processing priority of the specific transaction.

이때, 상기 메모리장치 온도관리방법은, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 제2한계온도보다 높은 경우에는 상기 쓰로틀링 레벨을 제3수준의 쓰로틀링 레벨로 설정하는 단계를 더 포함할 수 있다. 그리고 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 소정의 한 개의 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 소정의 제2제한개수(#N2)로 설정될 수 있다. In this case, in the memory device temperature management method, the memory controller sets the throttling level to a throttling level of a third level when the temperature of the memory device is higher than a second threshold temperature that is higher than the first threshold temperature It may further include the step of In a state in which the throttling level is set to the second level of throttling, the total number of commands that can be provided from the memory controller to the memory device during one predetermined unit period P is a predetermined second It can be set to a limited number (#N2).

상기 쓰로틀링 레벨이 상기 제3수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 상기 제2제한개수(#N2)보다 적은 제3제한개수(N3)로 설정될 수 있다.In a state in which the throttling level is set to the third level of throttling level, the total number of commands that can be provided from the memory controller to the memory device during the unit period P is the second limited number (#N2). ) may be set to a third limited number (N3) less than.

이때, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 제1최소 시간격보다 작지 않도록 제어될 수 있다. 그리고 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격보다 큰 제2최소 시간격보다 작지 않도록 제어될 수 있다.In this case, when the throttling level is set to the first level of the throttling level, the command provided to the memory device is controlled so that the time interval between commands adjacent to each other on the time axis is not smaller than the first minimum time interval. can In a state in which the throttling level is set to the second level of throttling level, a second minimum time interval between commands provided to the memory device, which is adjacent to each other on a time axis, is larger than the first minimum time interval. It can be controlled not to be smaller than the time interval.

이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령과 직전 명령 간의 시간격이 상기 제2최소 시간격보다 작은 값을 갖는 것을 허용하도록 되어 있을 수 있다. 상기 직전 명령은 상기 우선순위명령 직전에 상기 메모리 컨트롤러로부터 상기 메모리장치에게 제공된 명령이다. In this case, when a priority command, which is a command having a priority higher than or equal to a predetermined level, is generated by the memory controller in a state in which the throttling level is set to the second level of throttling level, the memory controller performs the priority command and It may be configured to allow a time interval between previous commands to have a value smaller than the second minimum time interval. The immediately preceding command is a command provided from the memory controller to the memory device immediately before the priority command.

본 발명의 다른 관점에 따라, 쓰로틀링 제어로직(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수준의 쓰로틀링 레벨로 설정하도록 되어 있고, 상기 메모리 컨트롤러에서 준비한 명령이 상기 메모리장치에게 제공되는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변된다.According to another aspect of the present invention, a memory device in which a memory controller including a throttling control logic (1), a temperature sensing logic (2), a memory controller (3), and an interrupt handler (4) manages the temperature of the memory device A temperature management method may be provided. In the memory device temperature management method, the temperature sensing logic transmits, to the memory controller, a first request to acquire the temperature of the memory device at a first time selected according to a first sensing cycle provided from the throttling control logic. to do; receiving, by the memory controller, a first temperature that is a temperature of the memory device from a temperature sensing device that senses a temperature of the memory device in response to the first request, and providing the first temperature to a throttling control logic; ; When it is determined by the throttling control logic that the first temperature is greater than a predetermined first threshold temperature, the throttling level is set to a second level of throttling level, and a second sensing cycle is provided to the temperature sensing logic. providing; transmitting, by the temperature sensing logic, a second request to acquire the temperature of the memory device to the memory controller at a second time selected according to the second sensing period; receiving, by the memory controller, a second temperature that is a temperature of the memory device from the memory device in response to the second request, and providing the second temperature to throttling control logic; and when the throttling control logic determines that the second temperature is higher than a predetermined second threshold temperature that is higher than the first threshold temperature, the throttling level is set to a throttling level of a third level, and the processing unit and turning on the interrupt handler to provide an interrupt for handover of temperature control to (20). In this case, the memory controller is configured to set the throttling level to a first level throttling level when the temperature of the memory device is lower than the first threshold temperature, and a command prepared by the memory controller is configured to set the throttling level of the memory device. At least one of a constraint on the time schedule provided to the memory device and the maximum number of banks that can be simultaneously activated among the banks in the memory device varies according to the throttling level.

본 발명에 따르면 메모리에서 발생하는 열을 쓰로틀링하여 메모리의 온도를 제어하는 효율적인 기술을 제공할 수 있다.According to the present invention, it is possible to provide an efficient technique for controlling the temperature of the memory by throttling the heat generated in the memory.

도 1은 메모리 컨트롤러 및 메모리 컨트롤러에 의해 제어되는 메모리 모듈의 구조의 예를 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따라 제공되는 컴퓨팅장치의 구조를 나타낸 것이다.
도 3은 도 2에 제시한 메모리 컨트롤러의 구성을 자세히 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따라 제공되는 메모리 컨트롤러가 메모리의 쓰로틀링 레벨을 제어하는 방법을 나타낸 순서도이다.
도 5는 본 발명의 일 실시예에 따라 메모리 컨트롤러가 메모리의 뱅크의 활성화를 제어하는 방법을 설명하기 위한 다이어그램이다.
도 6은 본 발명의 일 실시예에 따라 제공되는 메모리장치 온도관리방법을 나타낸 순서도이다.
도 7은 본 발명의 일 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.
도 8은 본 발명의 다른 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.
1 shows an example of the structure of a memory controller and a memory module controlled by the memory controller.
2 shows the structure of a computing device provided according to an embodiment of the present invention.
3 is a detailed view showing the configuration of the memory controller shown in FIG. 2 .
4 is a flowchart illustrating a method of controlling a throttling level of a memory by a memory controller provided according to an embodiment of the present invention.
5 is a diagram for describing a method in which a memory controller controls activation of a bank of a memory according to an embodiment of the present invention.
6 is a flowchart illustrating a memory device temperature management method provided according to an embodiment of the present invention.
7 is a diagram illustrating a method in which a memory controller provides instructions to a memory during a unit period at different throttling levels according to an embodiment of the present invention.
8 is a diagram illustrating a method in which a memory controller provides instructions to a memory during a unit period at different throttling levels according to another embodiment of the present invention.

이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein and may be implemented in various other forms. The terminology used herein is for the purpose of helping the understanding of the embodiments, and is not intended to limit the scope of the present invention. Also, singular forms used hereinafter include plural forms unless the phrases clearly indicate the opposite.

도 2는 본 발명의 일 실시예에 따라 제공되는 컴퓨팅장치의 구조를 나타낸 것이다.2 shows the structure of a computing device provided according to an embodiment of the present invention.

본 발명의 일 실시예에 따라 제공되는 컴퓨팅장치(100)는 처리부(20), 메모리 컨트롤러(10), 및 메모리(30)을 포함할 수 있다. 상기 메모리(30)은 예컨대 DRAM일 수 있다.The computing device 100 provided according to an embodiment of the present invention may include a processing unit 20 , a memory controller 10 , and a memory 30 . The memory 30 may be, for example, DRAM.

상기 메모리 컨트롤러(10)은 상기 메모리(30)에 대한 소정의 제어권을 가질 수 있다. 그리고 상기 메모리 컨트롤러(10)은 소정의 조건에 도달하면 상기 제어권을 상기 처리부(20)에 반환하는 인터럽트를 발생시킬 수 있다. The memory controller 10 may have a predetermined control right over the memory 30 . In addition, when a predetermined condition is reached, the memory controller 10 may generate an interrupt for returning the control right to the processing unit 20 .

상기 처리부(20)은 상기 제어권을 가지고 있다가 소정의 다른 조건을 만족하면 상기 제어권을 다시 상기 메모리 컨트롤러(10)에게 돌려줄 수 있다(핸드-백).The processing unit 20 retains the control right and may return the control right back to the memory controller 10 when another predetermined condition is satisfied (hand-back).

이때, 상기 메모리(30)에 대한 소정의 제어권은, 상기 메모리(30)의 온도를 제어하는 제어권일 수 있다.In this case, the predetermined control right for the memory 30 may be a control right for controlling the temperature of the memory 30 .

상기 메모리 컨트롤러(10)은 명령 버스를 통해 상기 메모리(30)에게 각종 명령을 전달할 수 있고, 데이터 버스를 통해 상기 메모리(30)에게 상기 명령에 수반하는 데이터를 전달할 수 있다.The memory controller 10 may transmit various commands to the memory 30 through a command bus, and may transmit data accompanying the commands to the memory 30 through a data bus.

상기 처리부(20)은 상기 컴퓨팅장치(100)의 주-프로세서(main processor) 또는 부-프로세서(sub processor) 또는 인터커넥트(interconnect)일 수 있다.The processing unit 20 may be a main processor or a sub-processor or an interconnect of the computing device 100 .

도 3은 도 2에 제시한 메모리 컨트롤러의 구성을 자세히 나타낸 것이다.3 is a detailed view showing the configuration of the memory controller shown in FIG. 2 .

상기 메모리 컨트롤러(10)은 쓰로틀링 제어로직(1), 온도감지로직(2), 스케쥴러(3), 및 인터럽트 핸들러(4)를 포함할 수 있다.The memory controller 10 may include a throttling control logic 1 , a temperature sensing logic 2 , a scheduler 3 , and an interrupt handler 4 .

상기 쓰로틀링 제어로직(1)은 메모리 컨트롤러(10)의 주된 기능 로직이다. 상기 쓰로틀링 제어로직(1)은 스케쥴러(3)이 메모리(30)에게 전송하는 명령들의 개수 또는 메모리(30)의 온도에 기초하여 감지 주기를 설정할 수 있다. 상기 쓰로틀링 제어로직(1)은 스케쥴러(3)로부터 상기 스케쥴러(3)이 획득한 상기 메모리(30)의 온도를 수신할 수 있다. 상기 쓰로틀링 제어로직(1)은 상기 메모리(30)의 현재 온도에 기초하여 서로 다른 쓰로틀링 레벨을 적용할 수 있다. 상기 쓰로틀링 제어로직(1)은 상기 메모리(30)의 현재 온도가 소정의 레벨, 예컨대 소정의 제2한계온도를 초과할 때에 인터럽트 핸들러(4)를 턴-온(turn-on)할 수 있다.The throttling control logic 1 is the main functional logic of the memory controller 10 . The throttling control logic 1 may set a detection period based on the number of commands transmitted by the scheduler 3 to the memory 30 or the temperature of the memory 30 . The throttling control logic 1 may receive the temperature of the memory 30 obtained by the scheduler 3 from the scheduler 3 . The throttling control logic 1 may apply different throttling levels based on the current temperature of the memory 30 . The throttling control logic 1 may turn on the interrupt handler 4 when the current temperature of the memory 30 exceeds a predetermined level, for example, a predetermined second threshold temperature. .

상기 스케쥴러(3)는 상기 쓰로틀링 제어로직(1)이 결정한 상기 쓰로틀링 조건을 적용할 수 있다. 상기 스케쥴러(3)은 상기 스케쥴러(3)이 획득한 상기 메모리(30)의 온도를 상기 쓰로틀링 제어로직(1)에게 제공할 수 있다. 또한 상기 스케쥴러(3)은 상기 스케쥴러(3)이 상기 메모리(30)에게 제공해야 하는 명령들의 개수에 관한 정보를 상기 쓰로틀링 제어로직(1)에게 제공할 수 있다. The scheduler 3 may apply the throttling condition determined by the throttling control logic 1 . The scheduler 3 may provide the temperature of the memory 30 obtained by the scheduler 3 to the throttling control logic 1 . Also, the scheduler 3 may provide the throttling control logic 1 with information about the number of commands that the scheduler 3 should provide to the memory 30 .

상기 쓰로틀링 제어로직(1)은 상기 쓰로틀링 제어로직(1)이 설정한 쓰로틀링 레벨이 값을 상기 스케쥴러(3)에게 제공할 수 있다. 또한 상기 쓰로틀링 제어로직(1)은 각각의 상기 쓰로틀링 레벨에 따라 동시 활성화가 허용되는 상기 메모리(30) 내의 뱅크들의 최대 개수를 상기 스케쥴러(3)에게 제공할 수 있다. 또한 상기 쓰로틀링 제어로직(1)은, 소정의 단위주기(P) 그리고 상기 단위주기(P) 동안 상기 스케쥴러(3)로부터 상기 메모리(30)에게 제공될 수 있는 명령의 최대 개수인 제한개수(N)에 관한 값을 제공할 수 있다. 상기 단위주기(P) 및/또는 상기 제한개수(N)는 각각의 쓰로틀링 레벨에 따라 다른 값을 가질 수 있다.The throttling control logic 1 may provide the throttling level value set by the throttling control logic 1 to the scheduler 3 . Also, the throttling control logic 1 may provide the scheduler 3 with the maximum number of banks in the memory 30 that are allowed to be simultaneously activated according to each of the throttling levels. In addition, the throttling control logic 1 has a predetermined unit period P and a limited number ( N) can be provided. The unit period P and/or the limited number N may have different values according to each throttling level.

상기 쓰로틀링 제어로직(1)은 상기 각각의 쓰로틀링 레벨에 따라 결정되는 상기 메모리(30)의 온도의 감지 주기를 상기 온도감지로직(2)에게 제공할 수 있다.The throttling control logic 1 may provide the temperature sensing logic 2 with a sensing period of the temperature of the memory 30 determined according to the respective throttling levels.

상기 온도감지로직(2)은 현재 적용되고 있는 감지 주기에 따라 결정되는 시각마다 상기 메모리(30)의 온도를 감지하라는 온도 감지 요청을 상기 스케쥴러(3)에게 전송할 수 있다. 상기 온도 감지 요청을 받은 상기 스케쥴러(3)은 상기 메모리(30)의 현재 온도를 검출하는 별도의 온도감지장치로부터 상기 메모리(30)의 현재 온도를 획득할 수 있다. 상기 온도감지장치는 상기 메모리(30) 내에 포함된 것일 수도 있고 또는 상기 메모리(30)는 별도로 제공된 것이 수도 있다.The temperature sensing logic 2 may transmit a temperature sensing request to the scheduler 3 to sense the temperature of the memory 30 at each time determined according to the currently applied sensing period. The scheduler 3 receiving the temperature sensing request may acquire the current temperature of the memory 30 from a separate temperature sensing device that detects the current temperature of the memory 30 . The temperature sensing device may be included in the memory 30 or the memory 30 may be provided separately.

상기 쓰로틀링 제어로직(1)은 소정의 조건에 도달하면 상기 쓰로틀링 제어로직(1)이 갖고 있던 상기 메모리(30)의 온도를 제어하기 위하여 열을 쓰로틀링하는 제어권을 상기 처리부(20)에게 핸드오버하기 위한 인터럽트의 발생요청을 상기 인터럽트 핸들러(4)에게 보낼 수 있다. When a predetermined condition is reached, the throttling control logic 1 gives the processing unit 20 a control right for throttling heat in order to control the temperature of the memory 30 that the throttling control logic 1 had. A request for generating an interrupt for handover may be sent to the interrupt handler 4 .

상기 인터럽트 핸들러(4)는 상기 인터럽트의 발생요청에 대응하여 상기 메모리(30)의 온도에 대한 제어권을 핸드오버하는 인터럽트를 생성하여 상기 처리부(20)에게 제공할 수 있다.The interrupt handler 4 may generate an interrupt for handover of the control right to the temperature of the memory 30 in response to the interrupt generation request and provide it to the processing unit 20 .

도 3에서 상기 쓰로틀링 제어로직(1)과 상기 스케쥴러(3)이 서로 분리되어 제시되었으나 이는 설명의 편의를 위한 것이고, 상기 쓰로틀링 제어로직(1)과 상기 스케쥴러(3)은 상기 스케쥴러(3)로 통합될 수도 있다.In FIG. 3 , the throttling control logic 1 and the scheduler 3 are presented separately from each other, but this is for convenience of explanation, and the throttling control logic 1 and the scheduler 3 are the scheduler 3 ) can also be incorporated.

도 4는 본 발명의 일 실시예에 따라 제공되는 메모리 컨트롤러가 메모리의 쓰로틀링 레벨을 제어하는 방법을 나타낸 순서도이다.4 is a flowchart illustrating a method of controlling a throttling level of a memory by a memory controller provided according to an embodiment of the present invention.

이하 도 4를 참조하여 설명한다.Hereinafter, it will be described with reference to FIG. 4 .

단계(S10)에서, 상기 메모리 컨트롤러(10)는 미리 설정된 제1감지주기에 따라 상기 메모리(30)의 온도를 측정할 수 있다. 즉, 제1감지주기 간격으로 메모리(30)의 온도를 측정할 수 있다.In step S10 , the memory controller 10 may measure the temperature of the memory 30 according to a preset first detection period. That is, the temperature of the memory 30 may be measured at intervals of the first sensing cycle.

단계(S11)에서, 상기 메모리 컨트롤러(10)는 상기 제1감지주기에 따라 측정한 상기 메모리(30)의 온도인 제1온도가 미리 설정된 제1한계온도보다 작은지 여부를 결정할 수 있다.In step S11 , the memory controller 10 may determine whether the first temperature, which is the temperature of the memory 30 measured according to the first detection period, is less than a preset first limit temperature.

상기 제1온도가 상기 제1한계온도보다 작은 경우 다시 단계(S10)로 돌아갈 수 있다. 반면, 상기 제1온도가 상기 제1한계온도보다 작지 않은 경우 후술하는 단계(S12)로 갈 수 있다.When the first temperature is smaller than the first limit temperature, the process may return to step S10 again. On the other hand, if the first temperature is not smaller than the first limit temperature, the process may proceed to step S12 to be described later.

단계(S12)에서, 상기 메모리 컨트롤러(10)은 쓰로틀링 레벨은 제2 쓰로틀링 레벨로 설정할 수 있다.In step S12 , the memory controller 10 may set the throttling level to the second throttling level.

단계(S13)에서, 상기 메모리 컨트롤러(10)은 미리 설정된 제2감지주기에 따라 상기 메모리(30)의 온도를 측정할 수 있다. 즉, 제2감지주기 간격으로 메모리(30)의 온도를 측정할 수 있다. In step S13 , the memory controller 10 may measure the temperature of the memory 30 according to a preset second detection period. That is, the temperature of the memory 30 may be measured at the second sensing cycle interval.

상기 제2감지주기는 상기 제1감지주기보다 짧을 수 있다.The second sensing period may be shorter than the first sensing period.

단계(S14)에서, 상기 메모리 컨트롤러(10)는 상기 제2감지주기에 따라 측정한 상기 메모리(30)의 온도인 제2온도가 상기 제1한계온도보다 작은지 여부를 결정할 수 있다.In step S14 , the memory controller 10 may determine whether a second temperature, which is a temperature of the memory 30 measured according to the second detection period, is less than the first limit temperature.

상기 제2온도가 상기 제1한계온도보다 작은 경우 후술하는 단계(S19)로 갈 수 있다. 반면, 상기 제2온도가 상기 제1한계온도보다 작지 않은 경우 후술하는 단계(S15)로 갈 수 있다.When the second temperature is smaller than the first limit temperature, the process may proceed to step S19 to be described later. On the other hand, if the second temperature is not smaller than the first limit temperature, the process may proceed to step S15 to be described later.

단계(S15)에서, 상기 메모리 컨트롤러(10)는 상기 제2감지주기에 따라 측정한 상기 제2온도가 미리 설정된 제2한계온도보다 작은지 여부를 결정할 수 있다.In step S15 , the memory controller 10 may determine whether the second temperature measured according to the second detection period is smaller than a preset second limit temperature.

상기 제2한계온도는 상기 제1한계온도보다 높은 값일 수 있다.The second limit temperature may be higher than the first limit temperature.

상기 제2온도가 상기 제2한계온도보다 작은 경우 단계(S13)로 되돌아 갈 수 있다. 반면, 상기 제2온도가 상기 제2한계온도보다 작지 않은 경우 후술하는 단계(S16)로 갈 수 있다.If the second temperature is less than the second limit temperature, the process may return to step S13. On the other hand, if the second temperature is not smaller than the second limit temperature, the process may proceed to step S16 to be described later.

단계(S16)에서, 상기 메모리 컨트롤러(10)는 쓰로틀링 레벨을 제3쓰로틀링 레벨로 설정할 수 있다.In step S16 , the memory controller 10 may set the throttling level to the third throttling level.

단계(S17)에서, 상기 메모리 컨트롤러(10)는 인터럽트를 발생하여, 상기 인터럽트를 상기 처리부(20)에게 전달함으로써, 상기 메모리 컨트롤러(10)가 갖고 있던 상기 메모리(30)에 대한 온도 제어권(temperature management)을 상기 처리부(20)에게 핸드오버할 수 있다.In step S17 , the memory controller 10 generates an interrupt and transmits the interrupt to the processing unit 20 , so that the memory controller 10 has a temperature control right for the memory 30 . management) may be handed over to the processing unit 20 .

단계(S18)에서, 상기 메모리 컨트롤러(10)는 상기 처리부(20)가 온도 제어권(temperature controllability)을 다시 상기 메모리 컨트롤러(10)에게 핸드-백 할 때까지, 강화된 쓰로틀링 레벨을 유지하면서 트랜잭션을 처리할 수도 있다. In step S18 , the memory controller 10 performs a transaction while maintaining the enhanced throttling level until the processing unit 20 hand-backs the temperature controllability back to the memory controller 10 . can also be processed.

상기 강화된 쓰로틀링 레벨은 상술한 제3쓰로틀링 레벨일 수 있다.The enhanced throttling level may be the third throttling level described above.

예컨대 상기 처리부(20)는 스스로 메모리(30)의 동작을 제어하면서 메모리(30)의 온도를 측정하다가 소정의 조건에 도달하면 다시 상기 메모리 컨트롤러(10)에게 상기 메모리(30)의 온도 제어권을 핸드-백 할 수 있다.For example, the processing unit 20 measures the temperature of the memory 30 while controlling the operation of the memory 30 by itself, and when a predetermined condition is reached, the processing unit 20 hands the temperature control right of the memory 30 to the memory controller 10 again. - You can do a hundred.

단계(S19)에서, 상기 메모리 컨트롤러(10)는 쓰로틀링 레벨을 해제(release)할 수 있다. 즉, 상기 메모리 컨트롤러(10)는 상기 메모리의 온도가 상기 제1한계온도보다 낮은 상황에서 적용할 수 있는 쓰로틀링 레벨인 제1쓰로틀링 레벨을 적용할 수 있다. 그리고 단계(S10)로 되돌아 갈 수 있다.In step S19 , the memory controller 10 may release a throttling level. That is, the memory controller 10 may apply a first throttling level, which is a throttling level applicable when the temperature of the memory is lower than the first threshold temperature. And it can go back to step (S10).

상기 제1쓰로틀링 레벨에서, 상기 메모리 컨트롤러(10)는 처리부(20)에서 디폴트로 제공한 메모리 열 쓰로틀링 알고리즘을 사용할 수 있으며, 상기 메모리 컨트롤러(10) 자체의 메모리 온도 제어 알고리즘을 적용하지 않을 수 있다. 이러한 방식의 쓰로틀링 레벨을, 상술한 제1 쓰로틀링 레벨이라고 지칭할 수 있다. In the first throttling level, the memory controller 10 may use the memory thermal throttling algorithm provided by default by the processing unit 20 , and the memory temperature control algorithm of the memory controller 10 itself may not be applied. can The throttling level in this way may be referred to as the above-described first throttling level.

도 5는 본 발명의 일 실시예에 따라 메모리 컨트롤러가 메모리의 뱅크의 활성화를 제어하는 방법을 설명하기 위한 다이어그램이다. 5 is a diagram for describing a method in which a memory controller controls activation of a bank of a memory according to an embodiment of the present invention.

상기 메모리 컨트롤러(10)와 메모리(30)들은 명령 버스 및 데이터 버스에 의해 서로 연결되어 있을 수 있다.The memory controller 10 and the memories 30 may be connected to each other by a command bus and a data bus.

상기 메모리 컨트롤러(10)에 연결된 메모리(30)들은 각각 복수 개의 뱅크(300)들을 포함할 수 있다. 각각의 상기 뱅크(300)에는 상기 메모리 컨트롤러(10)와 상기 뱅크(300)를 연결하는 데에 사용되는 주변장치(320)가 연결되어 있을 수 있다.Each of the memories 30 connected to the memory controller 10 may include a plurality of banks 300 . A peripheral device 320 used to connect the memory controller 10 and the bank 300 may be connected to each of the banks 300 .

상기 주변장치(320)는, 주소/명령, 데이터 인/아웃 등의, 입출력 및 제어를 위한 회로부분이다. The peripheral device 320 is a circuit part for input/output and control, such as address/command and data in/out.

각각의 상기 뱅크(300)는 독립적으로 활성화/비활성화되도록 되어 있을 수 있다. 상기 각 뱅크에 대한 활성화 명령인 ACT 명령은 메모리 컨트롤러(10)가 메모리(30)에게 제공할 수 있다. Each of the banks 300 may be independently activated/deactivated. The ACT command, which is an activation command for each bank, may be provided by the memory controller 10 to the memory 30 .

상기 메모리 컨트롤러(10)는 제1메모리(31) 또는 제2메모리(32)에 포함되어 있는 상기 뱅크(300)들이 활성화될 수 있는 개수를 제한할 수 있도록 되어 있다.The memory controller 10 is configured to limit the number of the banks 300 included in the first memory 31 or the second memory 32 that can be activated.

또는 일 실시예에서 메모리 컨트롤러(10)는 메모리 컨트롤러(10)에 연결된 모든 메모리(30)에 포함된 모든 상기 뱅크(300)들이 활성화될 수 있는 개수를 제한할 수 있도록 되어 있을 수 있다. Alternatively, in an embodiment, the memory controller 10 may be configured to limit the number of the banks 300 included in all the memories 30 connected to the memory controller 10 to be activated.

상기 메모리 컨트롤러(10)가 상기 제1메모리(31)에 포함되어 있는 상기 뱅크(300)들이 활성화될 수 있는 최대 개수를 제1최대 활성화개수로 설정했다고 가정할 수 있다. 이때, 만일 제1메모리(31)에 포함된 뱅크(300)들 중 상기 제1최대 활성화개수만큼의 뱅크들이 활성화 된 상태라면, 상기 제1메모리(31)에 포함된 상기 뱅크(300)들 중 새로운 뱅크(300)을 더 활성화하기 위한 ACT 명령은 상기 메모리 컨트롤러(10)로부터 상기 제1메모리(31)에게 전달되지 않는다. It may be assumed that the memory controller 10 sets the maximum number of the banks 300 included in the first memory 31 to be activated as the first maximum activation number. At this time, if the banks corresponding to the first maximum activation number among the banks 300 included in the first memory 31 are activated, among the banks 300 included in the first memory 31 , The ACT command for further activating the new bank 300 is not transmitted from the memory controller 10 to the first memory 31 .

도 6은 본 발명의 일 실시예에 따라 제공되는 메모리장치 온도관리방법을 나타낸 순서도이다.6 is a flowchart illustrating a memory device temperature management method provided according to an embodiment of the present invention.

단계(S110)에서, 메모리장치(30)의 온도를 획득하도록 되어 있는 메모리 컨트롤러(10)가, 상기 메모리장치(10)의 온도가 소정의 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정할 수 있다.In step S110 , the memory controller 10 configured to obtain the temperature of the memory device 30 sets a first throttling level when the temperature of the memory device 10 is lower than a first predetermined threshold temperature. It can be set to the throttling level of the level.

단계(S120)에서, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정할 수 있다.In operation S120 , when the temperature of the memory device 30 is higher than the first threshold temperature, the memory controller 10 may set the throttling level to the second level of the throttling level.

이때, 상기 메모리 컨트롤러(10)이 준비한 명령이 상기 메모리장치(30)에게 제공되는 타임스케쥴에 대한 제약조건 및 상기 메모리장치(30) 내의 뱅크(300)들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변된다.In this case, a constraint on a time schedule in which a command prepared by the memory controller 10 is provided to the memory device 30 and the maximum number of banks that can be simultaneously activated among the banks 300 in the memory device 30 . At least one of them varies according to the throttling level.

이때, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 상기 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있을 수 있다. At this time, when the temperature of the memory device 30 is higher than the first threshold temperature and lower than a second threshold temperature higher than the first threshold temperature, the memory controller 10 sets the throttling level to the second threshold temperature. It may be configured to set the throttling level of the level.

단계(S130)에서, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부(20)에게 상기 메모리장치(30)의 온도 제어권을 핸드오버하는 인터럽트를 제공할 수 있다.In step S130 , when the temperature of the memory device 30 is higher than the second threshold temperature, the memory controller 10 hands over the right to control the temperature of the memory device 30 to the processing unit 20 . Interrupts can be provided.

이때, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 낮은 경우에는, 상기 메모리 컨트롤러(10)가 상기 메모리장치(30)의 온도를 미리 설정된 제1온도감지주기에 따라 획득하도록 되어 있을 수 있다. 그리고 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높은 경우에는, 상기 메모리 컨트롤러(10)가 상기 메모리장치(30)의 온도를 상기 제1온도감지주기보다 짧은 제2감지주기에 따라 획득하도록 되어 있을 수 있다. At this time, when the temperature of the memory device 30 is lower than the first limit temperature, the memory controller 10 is configured to acquire the temperature of the memory device 30 according to a preset first temperature sensing period. can And when the temperature of the memory device 30 is higher than the first threshold temperature, the memory controller 10 adjusts the temperature of the memory device 30 according to a second sensing period shorter than the first temperature sensing period. may be intended to be obtained.

이때, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치(30) 내의 뱅크(300)들 중 동시에 활성화될 수 있는 뱅크(300)의 최대 개수인 제2최대 활성화개수는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치(30) 내의 뱅크(300)들 중 동시에 활성화될 수 있는 뱅크(300)의 최대 개수인 제1최대 활성화개수 보다 작을 수 있다.At this time, in a state in which the throttling level is set to the second throttling level, the second maximum activation number, which is the maximum number of banks 300 that can be simultaneously activated among the banks 300 in the memory device 30 . is the first maximum activation number that is the maximum number of banks 300 that can be simultaneously activated among the banks 300 in the memory device 30 when the throttling level is set to the first level throttling level may be smaller than

이때, 상기 메모리 컨트롤러(10)는, 상기 메모리장치(30) 내에서 비활성 상태를 갖는 뱅크(300)인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있을 수 있다.In this case, the memory controller 10 may be configured to calculate an inactivity maintenance cycle, which is a value indicating a level of an inactive state of an inactive bank that is the bank 300 having an inactive state in the memory device 30 .

그리고 상기 메모리 컨트롤러(10)는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치(30) 내에서 활성화 상태를 갖는 뱅크(300)들 중 어느 하나의 뱅크(300)를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크(300) 대신 상기 비활성 뱅크를 활성화시키도록 되어 있을 수 있다.And when the inactivity maintenance cycle exceeds a predetermined threshold value, the memory controller 10 inactivates any one of the banks 300 having an active state in the memory device 30, Instead of the inactive one of the banks 300, the inactive bank may be activated.

이때, 상기 비활성 유지 사이클은, 상기 비활성 뱅크가 비활성 상태를 연속적으로 유지한 시간, 상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러(10) 내에서 대기 중인 명령들의 개수, 및 상기 비활성 뱅크가 비활성 상태를 유지하는 동안 상기 메모리장치(30) 내의 다른 활성화된 뱅크들에게 제공된 명령들의 개수 중 하나 이상의 조합을 기초로 산출될 수 있다.In this case, the inactivity maintenance cycle includes a time period for which the inactive bank continuously maintains an inactive state, the number of commands waiting in the memory controller 10 as commands to be provided to the inactive bank, and the inactive bank is inactive It may be calculated based on a combination of one or more of the number of commands provided to other activated banks in the memory device 30 while maintaining the state.

도 7은 본 발명의 일 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.7 is a diagram illustrating a method in which a memory controller provides instructions to a memory during a unit period at different throttling levels according to an embodiment of the present invention.

상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨인 상태에서, 한 개의 소정의 단위주기(P) 동안 상기 메모리 컨트롤러(10)부터 상기 메모리장치(30)로 제공될 수 있는 명령의 총 개수를 제1제한개수(#N1)로 제한할 수 있다.The memory controller 10 provides from the memory controller 10 to the memory device 30 for one predetermined unit period P while the throttling level is the first level throttling level The total number of commands that can be made may be limited to the first limited number (#N1).

이때, 상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨인 상태에서, 한 개의 상기 단위주기(P) 동안 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)로 제공될 수 있는 명령의 총 개수를 상기 제1제한개수(#N1)보다 적은 제2제한개수(#N2)로 제한할 수 있다.In this case, the memory controller 10 transfers from the memory controller 10 to the memory device 30 for one unit period P while the throttling level is the second level of the throttling level. The total number of commands that can be provided may be limited to a second limited number #N2 smaller than the first limited number #N1.

그런데, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에도, 상기 메모리 컨트롤러(10)이 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령(CP)이 생성되면, 상기 메모리 컨트롤러(10)은 상기 우선순위명령(CP)을 상기 제1시구간 내에 상기 메모리장치(30)에게 더 전송하도록 되어 있을 수 있다. However, in a state in which the throttling level is set to the second level of the throttling level, during a first time period from the start to the end of one unit period P, the memory controller 10 Even after the second limited number of commands #N2 are transmitted to the device 30 , when the priority command CP, which is a command having a priority higher than or equal to a predetermined level, is generated by the memory controller 10 , the memory The controller 10 may be configured to further transmit the priority command CP to the memory device 30 within the first time period.

그러나, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에, 상기 메모리 컨트롤러(10)이 상기 미리 결정된 수준보다 낮은 우선순위를 갖는 명령인 후순위명령(CL)이 생성되면, 상기 메모리 컨트롤러(10)은 상기 후순위명령(CL)을 상기 제1시구간 내에 상기 메모리장치(30)에게 전송하지 않을 수 있다. However, in a state in which the throttling level is set to the second level of the throttling level, during a first time period from the start to the end of the one unit period P, the memory controller 10 After the second limited number of commands #N2 are transmitted to the memory device 30 , the memory controller 10 generates a lower priority command CL, which is a command having a lower priority than the predetermined level. , the memory controller 10 may not transmit the lower priority command CL to the memory device 30 within the first time period.

전송되지 못한 상기 후순위명령(CL)은 상기 메모리 컨트롤러(10)에 저장되어 있다가, 상기 제1시구간 이후의 단위주기 동안 상기 메모리(30)에게 전송될 수 있다.The subordinate command CL that has not been transmitted may be stored in the memory controller 10 and transmitted to the memory 30 during a unit period after the first time period.

이때, 상기 우선순위명령(CP)은, 상기 메모리 컨트롤러(10)가 상기 처리부(20)로부터 미리 결정된 수준 이상의 우선순위를 갖는 트랜잭션을 수신한 경우 상기 메모리 컨트롤러(10) 내에서 생성될 수 있다.In this case, the priority command CP may be generated in the memory controller 10 when the memory controller 10 receives a transaction having a priority higher than or equal to a predetermined level from the processing unit 20 .

상기 단위주기(P) 및 상기 제1제한개수(#N1) 중 하나 이상은 상기 처리부(20)에서 생성되어 상기 메모리 컨트롤러(10)에게 제공된 것일 수 있다.At least one of the unit period P and the first limited number #N1 may be generated by the processing unit 20 and provided to the memory controller 10 .

상기 제2제한개수(#N2)는 상기 처리부가 결정하여 상기 메모리 컨트롤러(10)에게 제공할 값일 수 있다.The second limited number #N2 may be a value determined by the processing unit and provided to the memory controller 10 .

도 7의 (a)는 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태를 나타내며, 도 7의 (b), 및 도 7의 (c)는 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태를 나타낸다.7A shows a state in which the throttling level is set to the first level throttling level, and FIGS. 7B and 7C show that the throttling level is set to the second level Indicates the state set to the throttling level of .

도 7에서 가로축은 시간축이다.In FIG. 7 , the horizontal axis is the time axis.

도 7에서 참조부호 CP는 상기 우선순위명령을 나타내고, 참조부호 CL은 상기 우선순위명령보다 후순위를 갖는 후순위명령을 나타낸다.In FIG. 7 , reference numeral CP denotes the priority command, and reference numeral CL denotes a subordinate command having a lower priority than the priority command.

도 7에서 #N1은 12인 것으로 예시되어 있고, #N2는 8인 것으로 예시되어 있다.In FIG. 7, #N1 is illustrated as being 12, and #N2 is illustrated as being 8.

도 7의 (a)를 참고하면, 상기 메모리 컨트롤러(10)은 단위주기(P) 동안 상기 우선순위명령 및/또는 상기 후순위명령을 최대 #N1개까지 전송할 수 있다.Referring to FIG. 7A , the memory controller 10 may transmit the priority command and/or the sub-priority command up to #N1 at most during the unit period P.

도 7의 (b) 및 도 7의 (c)를 참고하면, 상기 메모리 컨트롤러(10)은 단위주기(P) 동안 상기 우선순위명령 및/또는 상기 후순위명령을 최대 #N1개까지 전송할 수 있다.Referring to FIGS. 7B and 7C , the memory controller 10 may transmit the priority command and/or the sub-priority command up to #N1 at most during the unit period P.

도 7의 (b)에 나타낸 바와 같이, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 단위주기(P)가 시작된 이후 명령이 #N2개 전송된 이후에는, 상기 단위주기(P)가 종료되기 전에는 다른 명령이 추가적으로 전송될 수 없다.As shown in (b) of FIG. 7 , in a state in which the throttling level is set to the second level of throttling level, after #N2 commands are transmitted after the unit period P starts, the unit No other commands can be additionally transmitted before the period P ends.

그러나, 도 7의 (c)에 나타낸 바와 같이, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 단위주기(P)가 시작된 이후 명령이 #N2개 전송된 이후에 아직 상기 단위주기(P)가 종료되기 전이라고 하더라도, 상기 메모리 컨트롤러(10)이 상기 우선순위명령(CP)을 생성한 경우에는 상기 생성된 우선순위명령(CP)을 상기 메모리(30)에게 전송할 수 있다.However, as shown in (c) of FIG. 7 , in a state in which the throttling level is set to the second level of throttling level, after the unit period P starts, after #N2 commands are transmitted, Even before the unit period P ends, when the memory controller 10 generates the priority command CP, the generated priority command CP can be transmitted to the memory 30 . have.

도 8은 본 발명의 다른 실시예에 따라 서로 다른 쓰로틀링 레벨에서 단위주기 동안 메모리 컨트롤러가 명령들을 메모리에 제공하는 방법을 설명한 것이다.8 is a diagram for describing a method in which a memory controller provides instructions to a memory during a unit period at different throttling levels according to another embodiment of the present invention.

상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치(30)에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 제1최소 시간격(t1)보다 작지 않도록 제어할 수 있다.The memory controller 10 is a command provided to the memory device 30 in a state in which the throttling level is set to the first throttling level, and a time interval between commands adjacent to each other on a time axis is 1 It can be controlled so that it is not smaller than the minimum time interval t1.

그리고 상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치(30)에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격(t1)보다 큰 제2최소 시간격(t2)보다 작지 않도록 제어할 수 있다.In addition, the memory controller 10 is a command provided to the memory device 30 in a state in which the throttling level is set to the second level of the throttling level, and the time interval between commands adjacent to each other on the time axis is It may be controlled not to be smaller than the second minimum time interval t2 which is larger than the first minimum time interval t1.

그런데, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리 컨트롤러(10)이 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령(CP)을 생성할 수 있다. 이때, 상기 메모리 컨트롤러(10)은 상기 생성된 우선순위명령과 직전 명령 간의 시간격이 상기 제2최소 시간격(t2)보다 작은 값을 갖는 것을 허용하도록 되어 있을 수 있다. 상기 직전 명령은 상기 우선순위명령 직전에 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)에게 제공된 명령이다. 예컨대 상기 생성된 우선순위명령과 직전 명령 간의 시간격이 상기 제1최소 시간격(t1)과 동일할 수도 있다.However, in a state in which the throttling level is set to the second throttling level, the memory controller 10 may generate a priority command CP, which is a command having a priority higher than or equal to a predetermined level. In this case, the memory controller 10 may be configured to allow a time interval between the generated priority command and the immediately preceding command to have a value smaller than the second minimum time interval t2 . The immediately preceding command is a command provided to the memory device 30 from the memory controller 10 immediately before the priority command. For example, the time interval between the generated priority command and the immediately preceding command may be the same as the first minimum time interval t1.

도 8의 (a)는 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태를 나타내며, 도 8의 (b), 및 도 8의 (c)는 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태를 나타낸다.8A shows a state in which the throttling level is set to the first level throttling level, and FIGS. 8B and 8C show that the throttling level is set to the second level Indicates the state set to the throttling level of .

도 8에서 가로축은 시간축이다.In FIG. 8 , the horizontal axis is the time axis.

도 8에서 참조부호 CP는 상기 우선순위명령을 나타내고, 참조부호 CL은 상기 우선순위명령보다 후순위를 갖는 후순위명령을 나타낸다.In FIG. 8, reference numeral CP denotes the priority command, and reference numeral CL denotes a subordinate command having a lower priority than the priority command.

도 8의 (a)를 참조하면, 인접한 두 명령이 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 제공되는 시간의 차이값은 상기 제1최소 시간격(t1)과 동일하게 유지됨으로써 상기 차이값이 상기 제1최소 시간격(t1)보다 작지 않도록 제어된다.Referring to (a) of FIG. 8 , the difference between the times when two adjacent commands are provided from the memory controller 10 to the memory 30 is maintained to be the same as the first minimum time interval t1, so that the difference The value is controlled not to be smaller than the first minimum time interval t1.

도 8의 (b)를 참조하면, 인접한 두 명령이 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 제공되는 시간의 차이값은 상기 제2최소 시간격(t2)과 동일하게 유지됨으로써 상기 차이값이 상기 제2최소 시간격(t2)보다 작지 않도록 제어된다.Referring to (b) of FIG. 8 , the difference between the times when two adjacent commands are provided from the memory controller 10 to the memory 30 is maintained to be the same as the second minimum time interval t2, so that the difference The value is controlled not to be smaller than the second minimum time interval 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)과 동일할 수도 있다Referring to (c) of FIG. 8 , the difference between the times when two adjacent commands are provided from the memory controller 10 to the memory 30 is basically maintained to be the same as the second minimum time interval t2 . Thus, it is controlled so that the difference value is not smaller than the second minimum time interval t2. However, when the second command generated later among the two adjacent commands is the priority command CP, the first command and the second command generated earlier among the two adjacent commands are transmitted from the memory controller 10 to the memory 30 . The time difference value provided to the user may be controlled to have a value smaller than the second minimum time interval t2. For example, as shown in (c) of FIG. 8 , the difference between the times when the first command and the second command are provided from the memory controller 10 to the memory 30 is the first minimum time interval t1 . may be the same as

도 7 및 도 8을 통해 설명한 실시예와 같이, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링에서 상기 제2수준의 쓰로틀링으로 변경되면, 메모리(30)의 열 발생을 줄이기 위하여 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들은 강화된 타임 스케쥴에 따라 전송된다. 7 and 8 , when the throttling level is changed from the first level of throttling to the second level of throttling, in order to reduce heat generation of the memory 30 , the memory controller Commands transmitted from (10) to the memory (30) are transmitted according to an enhanced time schedule.

즉, 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들이 제1규칙을 따른 타임 스케쥴에 따라 전송된다면, 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들은 제2규칙을 따른 타임 스케쥴에 따라 전송된다. 그리고 이때, 상기 제2규칙을 따른 타임 스케쥴은, 상기 제1규칙을 따른 타임 스케쥴과 비교해 볼 때에, 상기 메모리(30)의 열 발생을 줄이기 위해 더 강화된 스케쥴일 수 있다.That is, if commands transmitted from the memory controller 10 to the memory 30 are transmitted according to a time schedule according to the first rule in a state in which the first level of throttling level is set, the second level of throttling In the state set to the level, commands transmitted from the memory controller 10 to the memory 30 are transmitted according to a time schedule according to the second rule. In this case, the time schedule according to the second rule may be a more strengthened schedule to reduce heat generation of the memory 30 when compared with the time schedule according to the first rule.

그러나 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 명령 중 일부 명령이 다른 명령에 대하여 우선순위를 갖는 우선순위명령이라면, 상기 우선순위명령에 대해서는 상기 강화된 타임 스케쥴이 적용되지 않을 수 있다. 즉, 상기 우선순위명령에는 상기 제2규칙을 따른 타임 스케쥴이 적용되지 않고 상기 제1규칙을 따른 타임 스케쥴이 적용될 수 있다.However, in a state in which the second level of throttling level is set, if some of the commands are priority commands having priority over other commands, the reinforced time schedule may not be applied to the priority commands. . That is, the time schedule according to the first rule may not be applied to the priority command, but the time schedule according to the second rule may be applied.

상술한 본 발명의 실시예들을 이용하여, 본 발명의 기술 분야에 속하는 자들은 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에 다양한 변경 및 수정을 용이하게 실시할 수 있을 것이다. 특허청구범위의 각 청구항의 내용은 본 명세서를 통해 이해할 수 있는 범위 내에서 인용관계가 없는 다른 청구항에 결합될 수 있다.By using the above-described embodiments of the present invention, those skilled in the art will be able to easily implement various changes and modifications within the scope without departing from the essential characteristics of the present invention. The content of each claim in the claims may be combined with other claims without reference within the scope that can be understood through this specification.

1: 쓰로틀링 제어로직
2: 온도 감지로직
3: 스케줄러
4: 인터럽트 핸들러
10: 메모리 컨트롤러
20: 처리부
30: 메모리
31: 제1메모리
32: 제2메모리
300: 뱅크
1: Throttling control logic
2: Temperature sensing logic
3: Scheduler
4: Interrupt handler
10: memory controller
20: processing unit
30: memory
31: first memory
32: second memory
300: bank

Claims (14)

메모리장치의 온도를 획득하도록 되어 있는 메모리 컨트롤러가, 상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정하는 단계; 및
상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하는 단계;
를 포함하며,
상기 메모리 컨트롤러가 준비한 명령을 상기 메모리장치에게 제공하는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변되며,
상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 제1최소 시간격보다 작지 않도록 제어되며,
상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격보다 큰 제2최소 시간격보다 작지 않도록 제어되는 것을 특징으로 하는,
메모리장치 온도관리방법.
setting, by the memory controller configured to acquire a temperature of the memory device, a throttling level to a first level when the temperature of the memory device is lower than a first threshold temperature; and
setting, by the memory controller, a throttling level to a second throttling level when the temperature of the memory device is higher than the first threshold temperature;
includes,
At least one of a constraint on a time schedule for providing a command prepared by the memory controller to the memory device and the maximum number of banks that can be simultaneously activated among the banks in the memory device varies according to the throttling level,
In a state in which the throttling level is set to the first level of throttling level, the command provided to the memory device is controlled so that a time interval between commands adjacent to each other on a time axis is not smaller than a first minimum time interval,
In a state in which the throttling level is set to the second level of throttling level, the command provided to the memory device, wherein a time interval between commands adjacent to each other on a time axis is a second minimum time greater than the first minimum time interval characterized in that it is controlled so as not to be smaller than the
Memory device temperature management method.
제1항에 있어서,
상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있고,
상기 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하는 단계 이후에, 상기 메모리 컨트롤러가, 상기 메모리장치의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부에게 상기 메모리장치의 온도 제어권을 핸드오버하는 인터럽트를 제공하는 단계;
를 더 포함하는,
메모리장치 온도관리방법.
According to claim 1,
the memory controller is configured to set a throttling level to the throttling level of the second level when the temperature of the memory device is higher than the first threshold temperature and lower than a second threshold temperature that is higher than the first threshold temperature there is,
After the step of setting the throttling level to the second throttling level, when the temperature of the memory device is higher than the second threshold temperature, the memory controller hands over the right to control the temperature of the memory device to the processing unit providing an overrun interrupt;
further comprising,
Memory device temperature management method.
제1항에 있어서,
상기 메모리장치의 온도가 상기 제1한계온도보다 낮은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 제1온도감지주기에 따라 획득하도록 되어 있고,
상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는, 상기 메모리 컨트롤러가 상기 메모리장치의 온도를 상기 제1온도감지주기보다 짧은 제2감지주기에 따라 획득하도록 되어 있는,
메모리장치 온도관리방법.
According to claim 1,
when the temperature of the memory device is lower than the first threshold temperature, the memory controller acquires the temperature of the memory device according to a first temperature sensing period;
when the temperature of the memory device is higher than the first threshold temperature, the memory controller acquires the temperature of the memory device according to a second sensing period shorter than the first temperature sensing period;
Memory device temperature management method.
제1항에 있어서, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제2최대 활성화개수는, 상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수인 제1최대 활성화개수 보다 작은, 메모리장치 온도관리방법.The method of claim 1 , wherein the second maximum activation number, which is the maximum number of banks that can be simultaneously activated among the banks in the memory device when the throttling level is set to the second throttling level, comprises: The method of claim 1, wherein the first maximum activation number is less than the maximum number of banks that can be simultaneously activated among the banks in the memory device when the level is set to the throttling level of the first level. 삭제delete 제1항에 있어서,
상기 메모리 컨트롤러는, 상기 메모리장치 내에서 비활성 상태를 갖는 뱅크인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있고,
상기 메모리 컨트롤러는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치 내에서 활성화 상태를 갖는 뱅크들 중 어느 하나의 뱅크를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크 대신 상기 비활성 뱅크를 활성화시키도록 되어 있으며,
상기 비활성 유지 사이클은,
상기 비활성 뱅크가 비활성 상태를 유지한 시간,
상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러 내에서 대기 중인 명령들의 개수, 및
상기 비활성 뱅크가 비활성 상태를 유지하는 동안 상기 메모리장치 내의 다른 활성화된 뱅크들에게 제공된 명령들의 개수
중 하나 이상의 조합을 기초로 산출되는 것을 특징으로 하는
메모리장치 온도관리방법.
According to claim 1,
The memory controller is configured to calculate an inactivity maintenance cycle that is a value indicating a level of an inactive state of an inactive bank, which is a bank having an inactive state in the memory device;
The memory controller inactivates any one of the banks having an active state in the memory device when the inactivity maintenance cycle exceeds a predetermined threshold, and activates the inactive bank instead of the inactive one of the banks is to be done,
The inactive maintenance cycle is
the time the inactive bank remains inactive;
the number of commands waiting in the memory controller as commands to be provided to the inactive bank, and
The number of commands provided to other active banks in the memory device while the inactive bank maintains an inactive state.
Characterized in that it is calculated based on a combination of one or more of
Memory device temperature management method.
제1항에 있어서,
상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨인 상태에서, 한 개의 소정의 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 제1제한개수(#N1)로 제한되고,
상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨인 상태에서, 한 개의 상기 단위주기(P) 동안 상기 메모리 컨트롤러로부터 상기 메모리장치로 제공될 수 있는 명령의 총 개수는 상기 제1제한개수(#N1)보다 적은 제2제한개수(#N2)로 제한되는 것을 특징으로 하는,
메모리장치 온도관리방법.
According to claim 1,
In a state where the throttling level is the first throttling level, the total number of commands that can be provided from the memory controller to the memory device during one predetermined unit period P is a first limited number (#). limited to N1),
In a state where the throttling level is the second throttling level, the total number of commands that can be provided from the memory controller to the memory device during one unit period P is the first limited number (#). Characterized in that it is limited to a second limited number (#N2) less than N1),
Memory device temperature management method.
제7항에 있어서, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 한 개의 상기 단위주기(P)가 시작하여 종료되기 전까지의 제1시구간 동안, 상기 메모리 컨트롤러로부터 상기 메모리장치에게 상기 제2제한개수(#N2)의 명령들이 전송된 이후에도, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령을 상기 제1시구간 내에 상기 메모리장치에게 더 전송하도록 되어 있는, 메모리장치 온도관리방법.The method of claim 7 , wherein, in a state in which the throttling level is set to the second level of throttling level, during a first time period from beginning to end of one unit period (P), the memory controller Even after the second limited number of commands #N2 are transmitted to the memory device, if a priority command that is a command having a priority higher than or equal to a predetermined level is generated by the memory controller, the memory controller executes the priority command and further transmit to the memory device within a first time period. 제8항에 있어서,
상기 메모리 컨트롤러는, 사이드밴드(sideband) 신호를 이용하여 특정 속성을 갖는 트랜잭션의 우선순위를 상승시키도록 되어 있으며,
상기 메모리 컨트롤러는, 상기 사이드밴드 신호에 따라 상승된 우선순위를 갖는 상기 트랜잭션에 관한 우선순위명령을 생성하도록 되어 있는,
메모리장치 온도관리방법.
9. The method of claim 8,
The memory controller is configured to increase the priority of a transaction having a specific attribute by using a sideband signal,
wherein the memory controller is configured to generate a priority command for the transaction having an elevated priority according to the sideband signal;
Memory device temperature management method.
제8항에 있어서, 상기 우선순위명령은, 상기 메모리 컨트롤러가 처리부로부터 상기 미리 결정된 수준 이상의 우선순위를 갖는 트랜잭션을 수신한 경우 생성되는, 메모리장치 온도관리방법.The method of claim 8 , wherein the priority command is generated when the memory controller receives a transaction having a priority higher than or equal to the predetermined level from the processing unit. 제1항에 있어서,
상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리 컨트롤러가 미리 결정된 수준 이상의 우선순위를 갖는 명령인 우선순위명령이 생성되면, 상기 메모리 컨트롤러는 상기 우선순위명령과 직전 명령 간의 시간격이 상기 제2최소 시간격보다 작은 값을 갖는 것을 허용하도록 되어 있으며,
상기 직전 명령은 상기 우선순위명령 직전에 상기 메모리 컨트롤러로부터 상기 메모리장치에게 제공된 명령인,
메모리장치 온도관리방법.
According to claim 1,
In a state in which the throttling level is set to the second level of throttling, when a priority command that is a command having a priority higher than or equal to a predetermined level is generated by the memory controller, the memory controller performs the priority command and the previous command to allow the time interval between the intervals to have a value smaller than the second minimum time interval,
The immediately preceding command is a command provided from the memory controller to the memory device immediately before the priority command,
Memory device temperature management method.
메모리 컨트롤러로서,
메모리장치의 온도를 획득하도록 되어 있는 스케쥴러; 및
상기 메모리장치의 온도가 제1한계온도보다 낮은 경우에는 쓰로틀링 레벨을 제1수준의 쓰로틀링 레벨로 설정하고, 상기 메모리장치의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있는 쓰로틀링 제어 로직;
를 포함하며,
상기 스케쥴러는, 상기 메모리 컨트롤러가 준비한 명령을 상기 메모리장치에게 제공하는 타임스케쥴에 대한 제약조건 및 상기 메모리장치 내의 뱅크들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변하도록 되어 있으며,
상기 쓰로틀링 레벨이 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 제1최소 시간격보다 작지 않도록 제어되며,
상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격보다 큰 제2최소 시간격보다 작지 않도록 제어되는 것을 특징으로 하는,
메모리 컨트롤러.
A memory controller comprising:
a scheduler configured to obtain a temperature of the memory device; and
When the temperature of the memory device is lower than the first threshold temperature, the throttling level is set to the first throttling level, and when the temperature of the memory device is higher than the first threshold temperature, the throttling level is set to a second throttling control logic configured to set to a throttling level of the level;
includes,
In the scheduler, one or more of a constraint on a time schedule for providing a command prepared by the memory controller to the memory device and a maximum number of banks that can be simultaneously activated among the banks in the memory device is determined according to the throttling level. is variable,
In a state in which the throttling level is set to the first level of throttling level, the command provided to the memory device is controlled so that a time interval between commands adjacent to each other on a time axis is not smaller than a first minimum time interval,
In a state in which the throttling level is set to the second level of throttling level, the command provided to the memory device, wherein a time interval between commands adjacent to each other on a time axis is a second minimum time greater than the first minimum time interval characterized in that it is controlled so as not to be smaller than the
memory controller.
제12항에 있어서,
인터럽트 핸들러를 더 포함하며,
상기 쓰로틀링 제어 로직은 상기 메모리장치의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있고,
상기 인터럽트 핸들러는, 상기 메모리장치의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부에게 상기 메모리장치의 온도 제어권을 핸드오버하는 인터럽트를 제공하도록 되어 있는,
메모리 컨트롤러.
13. The method of claim 12,
It further includes an interrupt handler,
The throttling control logic is configured to set a throttling level to the throttling level of the second level when the temperature of the memory device is higher than the first threshold temperature and lower than a second threshold temperature that is higher than the first threshold temperature has been made,
wherein the interrupt handler is configured to provide an interrupt for handover of a temperature control right of the memory device to a processing unit when the temperature of the memory device is higher than the second threshold temperature;
memory controller.
제12항 또는 제13항의 메모리 컨트롤러, 및 상기 메모리장치를 포함하는, 컴퓨팅 장치.A computing device comprising the memory controller of claim 12 or 13 , and the memory device.
KR1020210072574A 2020-11-25 2021-06-04 Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same KR102357099B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210072574A KR102357099B1 (en) 2020-11-25 2021-06-04 Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200160185A KR102291912B1 (en) 2020-11-25 2020-11-25 Memory controller and memory thermal throttling method using the same
KR1020210072574A KR102357099B1 (en) 2020-11-25 2021-06-04 Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160185A Division KR102291912B1 (en) 2020-11-25 2020-11-25 Memory controller and memory thermal throttling method using the same

Publications (1)

Publication Number Publication Date
KR102357099B1 true KR102357099B1 (en) 2022-02-08

Family

ID=77499414

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200160185A KR102291912B1 (en) 2020-11-25 2020-11-25 Memory controller and memory thermal throttling method using the same
KR1020210072575A KR102357100B1 (en) 2020-11-25 2021-06-04 Memory controller changing the total limit of commands provided to a memory device and memory thermal throttling method using the same
KR1020210072574A KR102357099B1 (en) 2020-11-25 2021-06-04 Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020200160185A KR102291912B1 (en) 2020-11-25 2020-11-25 Memory controller and memory thermal throttling method using the same
KR1020210072575A KR102357100B1 (en) 2020-11-25 2021-06-04 Memory controller changing the total limit of commands provided to a memory device and memory thermal throttling method using the same

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102291912B1 (en) * 2020-11-25 2021-08-23 오픈엣지테크놀로지 주식회사 Memory controller and memory thermal throttling method using the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140028659A (en) * 2012-08-30 2014-03-10 에스케이하이닉스 주식회사 Refresh controll circuit and memory device including the same
KR20180110574A (en) * 2017-03-29 2018-10-10 웨스턴 디지털 테크놀로지스, 인코포레이티드 Thermal throttling for memory devices

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 (en) * 2016-10-21 2018-05-02 에스케이하이닉스 주식회사 Memory system including memory device and memory controller
KR20180115846A (en) * 2017-04-13 2018-10-24 에스케이하이닉스 주식회사 Memory device and data storage device including the same
KR102291912B1 (en) * 2020-11-25 2021-08-23 오픈엣지테크놀로지 주식회사 Memory controller and memory thermal throttling method using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140028659A (en) * 2012-08-30 2014-03-10 에스케이하이닉스 주식회사 Refresh controll circuit and memory device including the same
KR20180110574A (en) * 2017-03-29 2018-10-10 웨스턴 디지털 테크놀로지스, 인코포레이티드 Thermal throttling for memory devices

Also Published As

Publication number Publication date
WO2022114524A1 (en) 2022-06-02
WO2022114523A1 (en) 2022-06-02
KR102291912B1 (en) 2021-08-23
KR102357100B1 (en) 2022-02-08
WO2022114273A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
US10529406B2 (en) Memory device and refresh method thereof
US7596707B1 (en) System and method for efficient power throttling in multiprocessor chip
US6898683B2 (en) Clock synchronized dynamic memory and clock synchronized integrated circuit
US7603512B2 (en) Dynamic memory refresh controller, memory system including the same and method of controlling refresh of dynamic memory
TW201911308A (en) Method and apparatus for pre-charging and refresh control
KR100685547B1 (en) Selective bank refresh
US20170024148A1 (en) Memory refresh management
CN109863481A (en) The software pattern register access for adjusting and debugging for platform nargin
US11682445B2 (en) Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training
US7068566B2 (en) Semiconductor memory device capable of outputting data when a read request not accompanied with an address change being issued
KR102615693B1 (en) Refresh management for DRAM
US10446215B1 (en) System and method for adaptively optimized refresh of memory
CN109219806A (en) Low power memory throttling
US7345940B2 (en) Method and circuit configuration for refreshing data in a semiconductor memory
KR102357099B1 (en) Memory controller changing the minimum time interval between commands provided to a memory device and memory thermal throttling method using the same
KR100652380B1 (en) Memory device for refreshing using buffer and method thereof
KR20230069234A (en) Refresh management list for DRAM
US7239569B2 (en) Semiconductor memory device and memory system
KR20230023014A (en) DRAM command stream management
US20020136079A1 (en) Semiconductor memory device and information processing system
US8122232B2 (en) Self programming slave device controller
US6529981B1 (en) Bus arbiter
CN102243526A (en) Double date rate internal memory controller and control method thereof
US6490225B1 (en) Memory having a synchronous controller and asynchronous array and method thereof
US10504578B2 (en) Volatile memory device with automatic lower power state

Legal Events

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