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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
Description
본 발명은 메모리 컨트롤러에 관한 것으로서, 특히 메모리의 온도를 관리하는 기술에 관한 것이다.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
상기 메모리 컨트롤러(10)은 상기 메모리(30)에 대한 소정의 제어권을 가질 수 있다. 그리고 상기 메모리 컨트롤러(10)은 소정의 조건에 도달하면 상기 제어권을 상기 처리부(20)에 반환하는 인터럽트를 발생시킬 수 있다. The
상기 처리부(20)은 상기 제어권을 가지고 있다가 소정의 다른 조건을 만족하면 상기 제어권을 다시 상기 메모리 컨트롤러(10)에게 돌려줄 수 있다(핸드-백).The
이때, 상기 메모리(30)에 대한 소정의 제어권은, 상기 메모리(30)의 온도를 제어하는 제어권일 수 있다.In this case, the predetermined control right for the
상기 메모리 컨트롤러(10)은 명령 버스를 통해 상기 메모리(30)에게 각종 명령을 전달할 수 있고, 데이터 버스를 통해 상기 메모리(30)에게 상기 명령에 수반하는 데이터를 전달할 수 있다.The
상기 처리부(20)은 상기 컴퓨팅장치(100)의 주-프로세서(main processor) 또는 부-프로세서(sub processor) 또는 인터커넥트(interconnect)일 수 있다.The
도 3은 도 2에 제시한 메모리 컨트롤러의 구성을 자세히 나타낸 것이다.3 is a detailed view showing the configuration of the memory controller shown in FIG. 2 .
상기 메모리 컨트롤러(10)은 쓰로틀링 제어로직(1), 온도감지로직(2), 스케쥴러(3), 및 인터럽트 핸들러(4)를 포함할 수 있다.The
상기 쓰로틀링 제어로직(1)은 메모리 컨트롤러(10)의 주된 기능 로직이다. 상기 쓰로틀링 제어로직(1)은 스케쥴러(3)이 메모리(30)에게 전송하는 명령들의 개수 또는 메모리(30)의 온도에 기초하여 감지 주기를 설정할 수 있다. 상기 쓰로틀링 제어로직(1)은 스케쥴러(3)로부터 상기 스케쥴러(3)이 획득한 상기 메모리(30)의 온도를 수신할 수 있다. 상기 쓰로틀링 제어로직(1)은 상기 메모리(30)의 현재 온도에 기초하여 서로 다른 쓰로틀링 레벨을 적용할 수 있다. 상기 쓰로틀링 제어로직(1)은 상기 메모리(30)의 현재 온도가 소정의 레벨, 예컨대 소정의 제2한계온도를 초과할 때에 인터럽트 핸들러(4)를 턴-온(turn-on)할 수 있다.The throttling
상기 스케쥴러(3)는 상기 쓰로틀링 제어로직(1)이 결정한 상기 쓰로틀링 조건을 적용할 수 있다. 상기 스케쥴러(3)은 상기 스케쥴러(3)이 획득한 상기 메모리(30)의 온도를 상기 쓰로틀링 제어로직(1)에게 제공할 수 있다. 또한 상기 스케쥴러(3)은 상기 스케쥴러(3)이 상기 메모리(30)에게 제공해야 하는 명령들의 개수에 관한 정보를 상기 쓰로틀링 제어로직(1)에게 제공할 수 있다. The
상기 쓰로틀링 제어로직(1)은 상기 쓰로틀링 제어로직(1)이 설정한 쓰로틀링 레벨이 값을 상기 스케쥴러(3)에게 제공할 수 있다. 또한 상기 쓰로틀링 제어로직(1)은 각각의 상기 쓰로틀링 레벨에 따라 동시 활성화가 허용되는 상기 메모리(30) 내의 뱅크들의 최대 개수를 상기 스케쥴러(3)에게 제공할 수 있다. 또한 상기 쓰로틀링 제어로직(1)은, 소정의 단위주기(P) 그리고 상기 단위주기(P) 동안 상기 스케쥴러(3)로부터 상기 메모리(30)에게 제공될 수 있는 명령의 최대 개수인 제한개수(N)에 관한 값을 제공할 수 있다. 상기 단위주기(P) 및/또는 상기 제한개수(N)는 각각의 쓰로틀링 레벨에 따라 다른 값을 가질 수 있다.The throttling
상기 쓰로틀링 제어로직(1)은 상기 각각의 쓰로틀링 레벨에 따라 결정되는 상기 메모리(30)의 온도의 감지 주기를 상기 온도감지로직(2)에게 제공할 수 있다.The throttling
상기 온도감지로직(2)은 현재 적용되고 있는 감지 주기에 따라 결정되는 시각마다 상기 메모리(30)의 온도를 감지하라는 온도 감지 요청을 상기 스케쥴러(3)에게 전송할 수 있다. 상기 온도 감지 요청을 받은 상기 스케쥴러(3)은 상기 메모리(30)의 현재 온도를 검출하는 별도의 온도감지장치로부터 상기 메모리(30)의 현재 온도를 획득할 수 있다. 상기 온도감지장치는 상기 메모리(30) 내에 포함된 것일 수도 있고 또는 상기 메모리(30)는 별도로 제공된 것이 수도 있다.The
상기 쓰로틀링 제어로직(1)은 소정의 조건에 도달하면 상기 쓰로틀링 제어로직(1)이 갖고 있던 상기 메모리(30)의 온도를 제어하기 위하여 열을 쓰로틀링하는 제어권을 상기 처리부(20)에게 핸드오버하기 위한 인터럽트의 발생요청을 상기 인터럽트 핸들러(4)에게 보낼 수 있다. When a predetermined condition is reached, the throttling
상기 인터럽트 핸들러(4)는 상기 인터럽트의 발생요청에 대응하여 상기 메모리(30)의 온도에 대한 제어권을 핸드오버하는 인터럽트를 생성하여 상기 처리부(20)에게 제공할 수 있다.The interrupt handler 4 may generate an interrupt for handover of the control right to the temperature of the
도 3에서 상기 쓰로틀링 제어로직(1)과 상기 스케쥴러(3)이 서로 분리되어 제시되었으나 이는 설명의 편의를 위한 것이고, 상기 쓰로틀링 제어로직(1)과 상기 스케쥴러(3)은 상기 스케쥴러(3)로 통합될 수도 있다.In FIG. 3 , the throttling
도 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
단계(S11)에서, 상기 메모리 컨트롤러(10)는 상기 제1감지주기에 따라 측정한 상기 메모리(30)의 온도인 제1온도가 미리 설정된 제1한계온도보다 작은지 여부를 결정할 수 있다.In step S11 , the
상기 제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
단계(S13)에서, 상기 메모리 컨트롤러(10)은 미리 설정된 제2감지주기에 따라 상기 메모리(30)의 온도를 측정할 수 있다. 즉, 제2감지주기 간격으로 메모리(30)의 온도를 측정할 수 있다. In step S13 , the
상기 제2감지주기는 상기 제1감지주기보다 짧을 수 있다.The second sensing period may be shorter than the first sensing period.
단계(S14)에서, 상기 메모리 컨트롤러(10)는 상기 제2감지주기에 따라 측정한 상기 메모리(30)의 온도인 제2온도가 상기 제1한계온도보다 작은지 여부를 결정할 수 있다.In step S14 , the
상기 제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
상기 제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
단계(S17)에서, 상기 메모리 컨트롤러(10)는 인터럽트를 발생하여, 상기 인터럽트를 상기 처리부(20)에게 전달함으로써, 상기 메모리 컨트롤러(10)가 갖고 있던 상기 메모리(30)에 대한 온도 제어권(temperature management)을 상기 처리부(20)에게 핸드오버할 수 있다.In step S17 , the
단계(S18)에서, 상기 메모리 컨트롤러(10)는 상기 처리부(20)가 온도 제어권(temperature controllability)을 다시 상기 메모리 컨트롤러(10)에게 핸드-백 할 때까지, 강화된 쓰로틀링 레벨을 유지하면서 트랜잭션을 처리할 수도 있다. In step S18 , the
상기 강화된 쓰로틀링 레벨은 상술한 제3쓰로틀링 레벨일 수 있다.The enhanced throttling level may be the third throttling level described above.
예컨대 상기 처리부(20)는 스스로 메모리(30)의 동작을 제어하면서 메모리(30)의 온도를 측정하다가 소정의 조건에 도달하면 다시 상기 메모리 컨트롤러(10)에게 상기 메모리(30)의 온도 제어권을 핸드-백 할 수 있다.For example, the
단계(S19)에서, 상기 메모리 컨트롤러(10)는 쓰로틀링 레벨을 해제(release)할 수 있다. 즉, 상기 메모리 컨트롤러(10)는 상기 메모리의 온도가 상기 제1한계온도보다 낮은 상황에서 적용할 수 있는 쓰로틀링 레벨인 제1쓰로틀링 레벨을 적용할 수 있다. 그리고 단계(S10)로 되돌아 갈 수 있다.In step S19 , the
상기 제1쓰로틀링 레벨에서, 상기 메모리 컨트롤러(10)는 처리부(20)에서 디폴트로 제공한 메모리 열 쓰로틀링 알고리즘을 사용할 수 있으며, 상기 메모리 컨트롤러(10) 자체의 메모리 온도 제어 알고리즘을 적용하지 않을 수 있다. 이러한 방식의 쓰로틀링 레벨을, 상술한 제1 쓰로틀링 레벨이라고 지칭할 수 있다. In the first throttling level, the
도 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
상기 메모리 컨트롤러(10)에 연결된 메모리(30)들은 각각 복수 개의 뱅크(300)들을 포함할 수 있다. 각각의 상기 뱅크(300)에는 상기 메모리 컨트롤러(10)와 상기 뱅크(300)를 연결하는 데에 사용되는 주변장치(320)가 연결되어 있을 수 있다.Each of the
상기 주변장치(320)는, 주소/명령, 데이터 인/아웃 등의, 입출력 및 제어를 위한 회로부분이다. The
각각의 상기 뱅크(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
상기 메모리 컨트롤러(10)는 제1메모리(31) 또는 제2메모리(32)에 포함되어 있는 상기 뱅크(300)들이 활성화될 수 있는 개수를 제한할 수 있도록 되어 있다.The
또는 일 실시예에서 메모리 컨트롤러(10)는 메모리 컨트롤러(10)에 연결된 모든 메모리(30)에 포함된 모든 상기 뱅크(300)들이 활성화될 수 있는 개수를 제한할 수 있도록 되어 있을 수 있다. Alternatively, in an embodiment, the
상기 메모리 컨트롤러(10)가 상기 제1메모리(31)에 포함되어 있는 상기 뱅크(300)들이 활성화될 수 있는 최대 개수를 제1최대 활성화개수로 설정했다고 가정할 수 있다. 이때, 만일 제1메모리(31)에 포함된 뱅크(300)들 중 상기 제1최대 활성화개수만큼의 뱅크들이 활성화 된 상태라면, 상기 제1메모리(31)에 포함된 상기 뱅크(300)들 중 새로운 뱅크(300)을 더 활성화하기 위한 ACT 명령은 상기 메모리 컨트롤러(10)로부터 상기 제1메모리(31)에게 전달되지 않는다. It may be assumed that the
도 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
단계(S120)에서, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높은 경우에는 쓰로틀링 레벨을 제2수준의 쓰로틀링 레벨로 설정할 수 있다.In operation S120 , when the temperature of the
이때, 상기 메모리 컨트롤러(10)이 준비한 명령이 상기 메모리장치(30)에게 제공되는 타임스케쥴에 대한 제약조건 및 상기 메모리장치(30) 내의 뱅크(300)들 중 동시에 활성화될 수 있는 뱅크의 최대 개수 중 하나 이상은 상기 쓰로틀링 레벨에 따라 가변된다.In this case, a constraint on a time schedule in which a command prepared by the
이때, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높고 상기 제1한계온도보다 높은 제2한계온도보다 낮은 경우에는, 상기 쓰로틀링 레벨을 상기 제2수준의 쓰로틀링 레벨로 설정하도록 되어 있을 수 있다. At this time, when the temperature of the
단계(S130)에서, 상기 메모리 컨트롤러(10)가, 상기 메모리장치(30)의 온도가 상기 제2한계온도보다 높은 경우에는, 처리부(20)에게 상기 메모리장치(30)의 온도 제어권을 핸드오버하는 인터럽트를 제공할 수 있다.In step S130 , when the temperature of the
이때, 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 낮은 경우에는, 상기 메모리 컨트롤러(10)가 상기 메모리장치(30)의 온도를 미리 설정된 제1온도감지주기에 따라 획득하도록 되어 있을 수 있다. 그리고 상기 메모리장치(30)의 온도가 상기 제1한계온도보다 높은 경우에는, 상기 메모리 컨트롤러(10)가 상기 메모리장치(30)의 온도를 상기 제1온도감지주기보다 짧은 제2감지주기에 따라 획득하도록 되어 있을 수 있다. At this time, when the temperature of the
이때, 상기 쓰로틀링 레벨이 상기 제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
이때, 상기 메모리 컨트롤러(10)는, 상기 메모리장치(30) 내에서 비활성 상태를 갖는 뱅크(300)인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있을 수 있다.In this case, the
그리고 상기 메모리 컨트롤러(10)는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치(30) 내에서 활성화 상태를 갖는 뱅크(300)들 중 어느 하나의 뱅크(300)를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크(300) 대신 상기 비활성 뱅크를 활성화시키도록 되어 있을 수 있다.And when the inactivity maintenance cycle exceeds a predetermined threshold value, the
이때, 상기 비활성 유지 사이클은, 상기 비활성 뱅크가 비활성 상태를 연속적으로 유지한 시간, 상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러(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
도 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
이때, 상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨인 상태에서, 한 개의 상기 단위주기(P) 동안 상기 메모리 컨트롤러(10)로부터 상기 메모리장치(30)로 제공될 수 있는 명령의 총 개수를 상기 제1제한개수(#N1)보다 적은 제2제한개수(#N2)로 제한할 수 있다.In this case, the
그런데, 상기 쓰로틀링 레벨이 상기 제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
그러나, 상기 쓰로틀링 레벨이 상기 제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
전송되지 못한 상기 후순위명령(CL)은 상기 메모리 컨트롤러(10)에 저장되어 있다가, 상기 제1시구간 이후의 단위주기 동안 상기 메모리(30)에게 전송될 수 있다.The subordinate command CL that has not been transmitted may be stored in the
이때, 상기 우선순위명령(CP)은, 상기 메모리 컨트롤러(10)가 상기 처리부(20)로부터 미리 결정된 수준 이상의 우선순위를 갖는 트랜잭션을 수신한 경우 상기 메모리 컨트롤러(10) 내에서 생성될 수 있다.In this case, the priority command CP may be generated in the
상기 단위주기(P) 및 상기 제1제한개수(#N1) 중 하나 이상은 상기 처리부(20)에서 생성되어 상기 메모리 컨트롤러(10)에게 제공된 것일 수 있다.At least one of the unit period P and the first limited number #N1 may be generated by the
상기 제2제한개수(#N2)는 상기 처리부가 결정하여 상기 메모리 컨트롤러(10)에게 제공할 값일 수 있다.The second limited number #N2 may be a value determined by the processing unit and provided to the
도 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
도 7의 (b) 및 도 7의 (c)를 참고하면, 상기 메모리 컨트롤러(10)은 단위주기(P) 동안 상기 우선순위명령 및/또는 상기 후순위명령을 최대 #N1개까지 전송할 수 있다.Referring to FIGS. 7B and 7C , the
도 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
도 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
그리고 상기 메모리 컨트롤러(10)는, 상기 쓰로틀링 레벨이 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서, 상기 메모리장치(30)에 제공되는 명령으로서, 시간 축에서 서로 인접한 명령들 간의 시간격은 상기 제1최소 시간격(t1)보다 큰 제2최소 시간격(t2)보다 작지 않도록 제어할 수 있다.In addition, the
그런데, 상기 쓰로틀링 레벨이 상기 제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
도 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
도 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
도 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
도 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
즉, 상기 제1수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들이 제1규칙을 따른 타임 스케쥴에 따라 전송된다면, 상기 제2수준의 쓰로틀링 레벨로 설정된 상태에서 상기 메모리 컨트롤러(10)로부터 상기 메모리(30)에게 전송되는 명령들은 제2규칙을 따른 타임 스케쥴에 따라 전송된다. 그리고 이때, 상기 제2규칙을 따른 타임 스케쥴은, 상기 제1규칙을 따른 타임 스케쥴과 비교해 볼 때에, 상기 메모리(30)의 열 발생을 줄이기 위해 더 강화된 스케쥴일 수 있다.That is, if commands transmitted from the
그러나 상기 제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한계온도보다 높은 경우에는 쓰로틀링 레벨을 제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한계온도보다 높은 제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온도감지주기보다 짧은 제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.
상기 메모리 컨트롤러는, 상기 메모리장치 내에서 비활성 상태를 갖는 뱅크인 비활성 뱅크의 비활성 상태의 수준를 나타내는 값인 비활성 유지 사이클을 산출하도록 되어 있고,
상기 메모리 컨트롤러는 상기 비활성 유지 사이클이 소정의 임계값을 초과한 때에 상기 메모리장치 내에서 활성화 상태를 갖는 뱅크들 중 어느 하나의 뱅크를 비활성화하고, 비활성화된 상기 어느 하나의 뱅크 대신 상기 비활성 뱅크를 활성화시키도록 되어 있으며,
상기 비활성 유지 사이클은,
상기 비활성 뱅크가 비활성 상태를 유지한 시간,
상기 비활성 뱅크에 제공되어야 하는 명령으로서 상기 메모리 컨트롤러 내에서 대기 중인 명령들의 개수, 및
상기 비활성 뱅크가 비활성 상태를 유지하는 동안 상기 메모리장치 내의 다른 활성화된 뱅크들에게 제공된 명령들의 개수
중 하나 이상의 조합을 기초로 산출되는 것을 특징으로 하는
메모리장치 온도관리방법.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수준의 쓰로틀링 레벨인 상태에서, 한 개의 소정의 단위주기(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.
상기 메모리 컨트롤러는, 사이드밴드(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.
상기 쓰로틀링 레벨이 상기 제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.
인터럽트 핸들러를 더 포함하며,
상기 쓰로틀링 제어 로직은 상기 메모리장치의 온도가 상기 제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.
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)
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)
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)
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 |
-
2020
- 2020-11-25 KR KR1020200160185A patent/KR102291912B1/en active IP Right Grant
- 2020-11-26 WO PCT/KR2020/017005 patent/WO2022114273A1/en active Application Filing
-
2021
- 2021-06-04 KR KR1020210072575A patent/KR102357100B1/en active IP Right Grant
- 2021-06-04 KR KR1020210072574A patent/KR102357099B1/en active IP Right Grant
- 2021-10-15 WO PCT/KR2021/014381 patent/WO2022114523A1/en active Application Filing
- 2021-10-15 WO PCT/KR2021/014405 patent/WO2022114524A1/en active Application Filing
Patent Citations (2)
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 |