KR20190100850A - Method for predicting energy consumption of heap memory object and memory system implementing the same - Google Patents

Method for predicting energy consumption of heap memory object and memory system implementing the same Download PDF

Info

Publication number
KR20190100850A
KR20190100850A KR1020190003476A KR20190003476A KR20190100850A KR 20190100850 A KR20190100850 A KR 20190100850A KR 1020190003476 A KR1020190003476 A KR 1020190003476A KR 20190003476 A KR20190003476 A KR 20190003476A KR 20190100850 A KR20190100850 A KR 20190100850A
Authority
KR
South Korea
Prior art keywords
memory
heap
energy consumption
heap memory
energy
Prior art date
Application number
KR1020190003476A
Other languages
Korean (ko)
Other versions
KR102178931B1 (en
Inventor
김영재
김태욱
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Publication of KR20190100850A publication Critical patent/KR20190100850A/en
Application granted granted Critical
Publication of KR102178931B1 publication Critical patent/KR102178931B1/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/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A memory system for predicting amount of energy consumption of a heap memory object comprises: a memory device; and a memory profiler extracting access information when a heap memory object allocated to the memory device by an application program accesses the memory device if a profiling request is received from the application program and determining the amount of energy consumption predicted when the heap memory object is allocated to the memory device using the access information.

Description

힙 메모리 오브젝트의 에너지 소모량 예측 방법 및 이를 구현하는 메모리 시스템{METHOD FOR PREDICTING ENERGY CONSUMPTION OF HEAP MEMORY OBJECT AND MEMORY SYSTEM IMPLEMENTING THE SAME}Energy consumption estimation method of heap memory object and memory system implementing the same {METHOD FOR PREDICTING ENERGY CONSUMPTION OF HEAP MEMORY OBJECT AND MEMORY SYSTEM IMPLEMENTING THE SAME}

본 발명은 힙 메모리 오브젝트의 에너지 소모량 예측 방법 및 이를 구현하는 메모리 시스템에 관한 것이다.The present invention relates to a method for predicting energy consumption of a heap memory object and a memory system implementing the same.

데이터 센터의 에너지 위기가 도래하고 있다. 구글, 페이스 북 등과 같이 대규모 인터넷 서버 프로세스 및 여러 연구 기관에서 대규모 고성능 응용 프로그램들을 작동시킴에 따라 데이터 센터의 에너지 사용량이 증가되고 있다. 최근 연구에 따르면 2016년 미국 내의 데이터 센터에서 소비하는 에너지는 미국 연간 전기 사용량의 약 3%를 차지하였고, 전년도 소비량들의 통계치에 따르면 데이터 센터의 에너지 소비량은 꾸준히 증가하고 있는 추세이다.The energy crisis in the data center is coming. Data center energy usage is increasing as large Internet server processes, such as Google and Facebook, and large research institutes run large, high-performance applications. According to a recent study, energy consumption in data centers in the United States accounted for about 3 percent of US annual electricity use in 2016, and data center energy consumption is steadily increasing, according to statistics from last year's consumption.

데이터 센터의 전력 및 에너지 소비는 20~48%에 해당하는 양이 메모리에서 이루어진다. 한편, 메모리에서 소비되는 에너지를 조절하고자 중앙 처리 장치에 쓰이는 방법들이 응용되고 있으며, 구체적으로 메모리 랭크(memory rank)의 전력을 차단하거나 메모리의 소비 전압 및 주파수를 조절하는 방법들이 주로 사용되고 있다.Data center power and energy consumption is between 20% and 48% in memory. On the other hand, methods used in the central processing unit to control the energy consumed in the memory has been applied, and in particular, methods for cutting off the power of the memory rank (memory rank) or to adjust the power consumption voltage and frequency of the memory.

그러나, 이러한 방법들은 응용 프로그램이 활발하게 작동할 경우 성능을 다소 저하시킬 수 있고, 전력을 차단할 수 있는 랭크의 수나 전압 및 주파수를 축소시키는데 한계점이 있는 등 제한할 수 있는 에너지에 한계가 있다. 또한, 이러한 방법들은 시스템 차원의 전력 조절만이 가능할 뿐 응용 프로그램 차원에서 서로 다른 요구 사항이 있는 경우에는 적용될 수 없는 문제가 있다.However, these methods have limited energy that can be limited, such as performance degradation when the application is actively running, and limitations in reducing the number of ranks or voltages and frequencies that can cut power. In addition, these methods can only be applied at the system level, but can not be applied when there are different requirements at the application level.

이러한 메모리 에너지 소비량 문제에 비휘발성 메모리(Non-Volatile Memory) 기술이 유효할 수 있다. 최근 활발하게 개발되고 있는 비휘발성 메모리는 휘발성 메모리와 달리, 메모리 셀에 재충전을 수행하지 않으므로 휘발성 메모리에 비해 높은 에너지 효율을 가진다. 또한, 비휘발성 메모리는 플래시 메모리와 달리, 바이트 주소 지정 가능성을 지원하며 휘발성 메모리보다 더 높은 밀도를 가지는 등 여러 가지 장점이 있다.Non-Volatile Memory technology may be effective in this memory energy consumption problem. Unlike volatile memory, nonvolatile memory, which has been actively developed recently, has a higher energy efficiency than volatile memory because it does not recharge the memory cell. In addition, non-volatile memory, unlike flash memory, supports byte addressability and has a number of advantages such as higher density than volatile memory.

그러나, 비휘발성 메모리는 휘발성 메모리에 비해 지연 시간이 길어 메인 메모리로 활용되기에는 무리가 있다. 이를 보완하기 위해, 휘발성 메모리와 비휘발성 메모리를 동시에 메인 메모리에 사용하는 하이브리드 메모리 시스템(Hybrid Main Memory System)을 구현하고, 응용 프로그램의 힙 메모리 오브젝트를 성능 및 에너지 소비량을 최적화시키도록 할당하는 방법에 대한 연구가 활발히 이루어지고 있다. 그러나, 기존의 하이브리드 메모리 시스템에서의 힙 메모리 오브젝트 배치 연구들이 공통적으로 내포하는 문제는 응용 프로그램의 수행 목적 및 작동 방법에 따라 제각기 다른 오브젝트의 메모리 접근 패턴과 비휘발성 메모리 자체의 특성을 고려하지 않아 에너지를 완벽하게 최적화하지 못한다는 문제점이 있다.However, the nonvolatile memory has a longer delay time than the volatile memory, and thus, the nonvolatile memory cannot be utilized as the main memory. To compensate for this, we have implemented a Hybrid Main Memory System that uses both volatile and nonvolatile memory for main memory, and allocates heap memory objects for applications to optimize performance and energy consumption. Research is being actively conducted. However, the problem common to heap memory object placement studies in the existing hybrid memory system is that the energy access pattern and non-volatile memory itself of different objects are not considered depending on the purpose and operation of the application. There is a problem that does not fully optimize.

구체적으로, 서로 다른 패턴으로 접근되는 힙 메모리 오브젝트의 에너지 소비량은 오브젝트가 할당될 메모리 디바이스의 특성에 따라 달라질 수 있다. 예를 들면, 주로 데이터를 메모리에 쓰는 방식으로 접근되는 오브젝트는 쓰기 전력이 더 많이 소모되는 메모리 디바이스에서 더 많은 에너지를 소비한다. 기존의 하이브리드 메모리 시스템에서의 메모리 오브젝트 할당에 관한 연구들은 이러한 힙 메모리 오브젝트의 다양한 접근 패턴을 조사하지 않았고, 하이브리드 메모리 시스템를 구성하는 비휘발성 메모리의 특성을 고려하지 않아 오브젝트가 소비할 에너지 양을 정확하게 예측할 수 없다는 문제가 있었다.In detail, the energy consumption of the heap memory object accessed in different patterns may vary according to the characteristics of the memory device to which the object is allocated. For example, objects that are accessed primarily by writing data to memory consume more energy in memory devices that consume more write power. Previous studies on memory object allocation in hybrid memory systems did not examine the various access patterns of these heap memory objects, and did not consider the characteristics of the nonvolatile memory constituting the hybrid memory system to accurately predict the amount of energy consumed by the object. There was a problem that could not.

본 발명이 해결하고자 하는 과제는 응용 프로그램이 할당하는 힙 메모리 오브젝트가 메모리 디바이스에 할당되는 경우, 힙 메모리 오브젝트의 에너지 소비량을 예측하는 기술을 제공하는 것이다.An object of the present invention is to provide a technique for estimating the energy consumption of a heap memory object when a heap memory object allocated by an application program is allocated to the memory device.

본 발명의 일 실시예에 따른 메모리 시스템은 메모리 디바이스, 그리고 응용 프로그램으로부터 프로파일링 요청을 수신하면, 상기 응용 프로그램이 상기 메모리 디바이스에 할당하는 힙 메모리 오브젝트(heap memory object)가 상기 메모리 디바이스에 접근하는 접근 정보를 추출하고, 상기 접근 정보를 이용하여 상기 힙 메모리 오브젝트가 상기 메모리 디바이스에 할당되었을 때 예측되는 에너지 소비량을 결정하는 메모리 프로파일러를 포함한다.When a memory system according to an embodiment of the present invention receives a profiling request from a memory device and an application program, a heap memory object allocated by the application program to the memory device accesses the memory device. And extracting access information and using the access information to determine an estimated energy consumption when the heap memory object is allocated to the memory device.

상기 접근 정보는 상기 힙 메모리 오브젝트의 크기, 상기 힙 메모리 오브젝트의 메모리 접근 크기, 상기 힙 메모리 오브젝트의 메모리 사용량 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 포함하고, 상기 메모리 프로파일러는 상기 힙 메모리 오브젝트에 대해 1차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 크기 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 추출하고, 상기 힙 메모리 오브젝트에 대해 2차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 메모리 접근 크기 또는 상기 힙 메모리 오브젝트의 메모리 사용량 중 적어도 하나를 추출한다.The access information includes at least one of a size of the heap memory object, a memory access size of the heap memory object, a memory usage of the heap memory object, or a lifetime of the heap memory object, and the memory profiler is configured to store the heap memory. Perform primary profiling on an object to extract at least one of the size of the heap memory object or the life time of the heap memory object, and perform secondary profiling on the heap memory object to store the memory of the heap memory object Extract at least one of the access size or the memory usage of the heap memory object.

상기 메모리 프로파일러는 상기 힙 메모리 오브젝트로 인해 상기 메모리 디바이스 상에서 수행되는 명령어에 따라 소비되는 에너지 정보를 결정하고, 상기 접근 정보 및 상기 에너지 정보를 이용하여 상기 에너지 소비량을 결정한다.The memory profiler determines energy information consumed according to an instruction executed on the memory device due to the heap memory object, and determines the energy consumption amount using the access information and the energy information.

상기 메모리 디바이스가 휘발성 메모리(Volatile Memory)인 경우, 상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 읽기 및 쓰기 명령어에 의해 소비되는 에너지 소비량 또는 리프레시 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.When the memory device is a volatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by read and write instructions, or energy consumption consumed by refresh instructions. do.

상기 메모리 디바이스가 비휘발성 메모리(Non-Volatile Memory)인 경우, 상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 버퍼 접근 명령어에 의해 소비되는 에너지 소비량 또는 후쓰기 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.When the memory device is a non-volatile memory, the energy information may include at least one of energy consumption consumed by a preprocessing instruction, energy consumption consumed by a buffer access instruction, or energy consumption consumed by a write-back instruction. It includes one.

본 발명의 일 실시예에 따른 메모리 프로파일러가 힙 메모리 오브젝트의 에너지 소모량을 예측하는 방법은 응용 프로그램으로부터 프로파일링 요청을 수신하면, 상기 응용 프로그램의 힙 메모리 오브젝트가 메모리 디바이스에 접근하는 접근 정보를 추출하는 단계, 상기 힙 메모리 오브젝트로 인해 상기 메모리 디바이스 상에서 수행되는 명령어에 따라 소비되는 에너지 정보를 결정하는 단계, 그리고 상기 접근 정보 및 상기 에너지 정보를 이용하여 상기 힙 메모리 오브젝트가 상기 메모리 디바이스에 할당되었을 때 예측되는 에너지 소비량을 결정하는 단계를 포함한다.According to an embodiment of the present disclosure, a method of estimating energy consumption of a heap memory object by a memory profiler may include extracting access information for accessing a memory device by a heap memory object of the application when a profiling request is received from an application program. Determining energy information consumed according to an instruction executed on the memory device due to the heap memory object, and when the heap memory object is allocated to the memory device using the access information and the energy information. Determining an estimated energy consumption.

상기 접근 정보는 상기 힙 메모리 오브젝트의 크기, 상기 힙 메모리 오브젝트의 메모리 접근 크기, 상기 힙 메모리 오브젝트의 메모리 사용량 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 포함하고, 상기 접근 정보를 추출하는 단계는 상기 힙 메모리 오브젝트에 대해 1차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 크기 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 추출하는 단계, 그리고 상기 힙 메모리 오브젝트에 대해 2차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 메모리 접근 크기 또는 상기 힙 메모리 오브젝트의 메모리 사용량 중 적어도 하나를 추출하는 단계를 포함한다.The access information includes at least one of a size of the heap memory object, a memory access size of the heap memory object, a memory usage of the heap memory object, or a life time of the heap memory object, and extracting the access information may include: Performing primary profiling on the heap memory object to extract at least one of a size of the heap memory object or a life time of the heap memory object, and performing secondary profiling on the heap memory object Extracting at least one of a memory access size of a heap memory object or a memory usage of the heap memory object.

상기 메모리 디바이스가 휘발성 메모리인 경우, 상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 읽기 및 쓰기 명령어에 의해 소비되는 에너지 소비량 또는 리프레시 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.When the memory device is a volatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by read and write instructions, or energy consumption consumed by refresh instructions.

상기 메모리 디바이스가 비휘발성 메모리인 경우, 상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 버퍼 접근 명령어에 의해 소비되는 에너지 소비량 또는 후쓰기 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.When the memory device is a nonvolatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by buffer access instructions, or energy consumption consumed by write-back instructions.

본 발명에 따르면, 메모리 시스템의 성능 및 전력 효율을 고려하여 힙 메모리 오브젝트를 선택적으로 할당하기 위해, 실제 할당 전 에너지 소비량을 예측함으로써 메모리 시스템의 전체 성능을 만족하면서 소비되는 에너지를 감소시킬 수 있다.According to the present invention, in order to selectively allocate a heap memory object in consideration of the performance and power efficiency of the memory system, the energy consumption may be reduced while satisfying the overall performance of the memory system by estimating the energy consumption before actual allocation.

또한, 본 발명에 따르면, 이기종 메모리 구조를 구성하는 메모리 간에 성능 및 전력 효율의 차이를 고려하여 힙 메모리 변수를 선택적으로 할당하기 위해, 실제 할당 전 에너지 소비량을 예측함으로써 이기종 메모리의 전체 성능을 만족하면서 소비되는 에너지를 감소시킬 수 있다.In addition, according to the present invention, in order to selectively allocate a heap memory variable in consideration of the difference in performance and power efficiency between the memory constituting the heterogeneous memory structure, while satisfying the overall performance of the heterogeneous memory by predicting the energy consumption before actual allocation It can reduce the energy consumed.

도 1은 한 실시예에 따른 메모리 시스템을 설명하는 도면이다.
도 2 및 도 3은 예시적인 메모리 디바이스를 설명하는 도면이다.
도 4는 메모리 프로파일러가 힙 메모리 오브젝트의 접근 정보를 결정하는 방법을 설명하는 도면이다.
도 5는 한 실시예에 따른 메모리 프로파일러가 힙 메모리 오브젝트의 에너지 소모량을 예측하는 방법을 설명하는 도면이다.
1 is a diagram illustrating a memory system according to an exemplary embodiment.
2 and 3 are diagrams illustrating an example memory device.
4 is a diagram illustrating a method of determining, by a memory profiler, access information of a heap memory object.
FIG. 5 is a diagram for describing a method of predicting an energy consumption of a heap memory object by a memory profiler according to an exemplary embodiment.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, without excluding other components unless specifically stated otherwise.

도 1은 한 실시예에 따른 메모리 시스템을 설명하는 도면이고, 도 2 및 도 3은 예시적인 메모리 디바이스를 설명하는 도면이고, 도 4는 메모리 프로파일러가 힙 메모리 오브젝트의 접근 정보를 결정하는 방법을 설명하는 도면이다.1 is a diagram illustrating a memory system according to an exemplary embodiment, FIGS. 2 and 3 are diagrams illustrating an exemplary memory device, and FIG. 4 is a diagram illustrating a method of determining, by a memory profiler, access information of a heap memory object. It is a figure explaining.

도 1을 참고하면, 메모리 시스템(1000)은 메모리 디바이스(100) 및 메모리 프로파일러(200)를 포함한다.Referring to FIG. 1, the memory system 1000 includes a memory device 100 and a memory profiler 200.

메모리 디바이스(100)는 휘발성 메모리(Volatile Memory) 또는 비휘발성 메모리(Non-Volatile Memory) 중 어느 하나일 수 있다.The memory device 100 may be either volatile memory or non-volatile memory.

도 2는 한 실시예에 따른 메모리 디바이스를 도시하는 도면이다.2 is a diagram illustrating a memory device according to one embodiment.

도 2를 참고하면, 메모리 디바이스(100)는 휘발성 메모리일 수 있으며, 이 경우 메모리 디바이스(100)는 DRAM(Dynamic Random Access Memory)일 수 있다.Referring to FIG. 2, the memory device 100 may be a volatile memory, and in this case, the memory device 100 may be a dynamic random access memory (DRAM).

DRAM의 경우 메모리 셀에서 데이터를 스토리지 커패시터에 전압 형태로 저장하는데, 메모리의 행에 대한 읽기가 수행되면 미리 설정된 전압으로 기 충전되어 있는 비트 라인(bit line)과 스토리지 커패시터 간 전압 공유가 발생한다.In the case of DRAM, data is stored in a memory cell in the form of a voltage in a storage capacitor. When a read of a row of the memory is performed, voltage sharing between a bit line precharged with a predetermined voltage and a storage capacitor occurs.

이 경우, 메모리 셀에 저장되어 있는 데이터가 파괴되는데, 이러한 파괴 판독(destructive read)으로 인해 DRAM은 감지 증폭기(sense amplifier)가 감지한 데이터를 메모리 셀에 다시 써주는 복구 작업이 수행되어야 한다는 특징이 있다.In this case, data stored in the memory cell is destroyed, and this destructive read causes the DRAM to perform a recovery operation to rewrite the data sensed by the sense amplifier to the memory cell. have.

도 3은 다른 실시예에 따른 메모리 디바이스를 도시하는 도면이다.3 is a diagram illustrating a memory device according to another exemplary embodiment.

도 3을 참고하면, 메모리 디바이스(100)가 비휘발성 메모리일 수 있으며, 이 경우, 메모리 디바이스(100)는 STT-RAM(Spin-Transfer Torque Random Access Memory)일 수 있다.Referring to FIG. 3, the memory device 100 may be a nonvolatile memory. In this case, the memory device 100 may be a spin-transfer torque random access memory (STT-RAM).

STT-RAM은 비휘발성 메모리 중에서도 가장 높은 성능을 내며 내구도 또한 가장 높다. 그러나, STT-RAM은 쓰기 전력이 크다는 단점이 있으며, 구체적으로 메모리 배열에 쓰기를 할 때 소모하는 에너지가 DRAM에 비해 STT-RAM의 경우 두 배 이상 높다. 다만, 이러한 문제는 STT-RAM의 에너지 최적화를 위해 행 버퍼의 후쓰기(write-back)를 일부분만 수행하는 부분적인 쓰기(partial-write) 방법을 통해 해결할 수 있으며, 이에 대한 내용은 후술한다.STT-RAM has the highest performance and highest durability among nonvolatile memories. However, STT-RAM has a drawback in that the write power is large. Specifically, the energy consumed when writing to the memory array is more than twice as high as that of DRAM. However, this problem can be solved through a partial-write method that performs only a part of write-back of the row buffer for energy optimization of the STT-RAM, which will be described later.

STT-RAM은 DRAM과 달리, 비파괴 판독을 하기 때문에 행 버퍼와 증폭 감지기가 따로 존재하며, 서로 독립적으로 동작한다. 따라서, 메모리 배열에 대한 쓰기가 수행되면, 우선적으로 행 버퍼에 업데이트가 발생한다. 이후 접근되는 주소가 행 버퍼에 올라와(fetch) 있지 않을 때, 즉 행 버퍼 간 충돌이 발생하면, 행 버퍼가 후쓰기 되면서 실제 메모리 배열에 대한 쓰기가 수행된다.Unlike DRAM, STT-RAM reads nondestructively, so there are separate row buffers and amplification detectors and operate independently of each other. Thus, when writing to the memory array is performed, the update occurs first in the row buffer. After that, when the address being accessed is not fetched into the row buffer, that is, when there is a conflict between the row buffers, the row buffer is rewritten to write to the actual memory array.

한편, 휘발성 메모리와 비휘발성 메모리는 상호보완적으로 동작할 수 있다. 구체적으로, 휘발성 메모리는 비휘발성 메모리보다 접근 속도는 높으나 전원이 차단되면 데이터가 손실되는 단점을 갖는다. 이와 반대로, 비휘발성 메모리는 휘발성 메모리보다 접근 속도는 낮지만 전원이 차단되어도 데이터가 손실되지 않고 전력 효율이 좋은 특성을 가진다. 이에 따라, 최근 데이터 센터 서버에서는 비휘발성 메모리를 휘발성 메모리의 확장 메모리(extension of memory) 또는 저장소 캐시(storage cache) 등으로 사용하는 빈도가 높아지고 있으며, 이들을 동시에 사용하는 이기종 메모리 시스템을 구현하고 활용하고 있다.Meanwhile, the volatile memory and the nonvolatile memory may operate complementarily. Specifically, the volatile memory has a higher access speed than the nonvolatile memory, but has a disadvantage in that data is lost when the power is cut off. On the contrary, nonvolatile memory has lower access speed than volatile memory, but data is not lost even when power is cut off, and power efficiency is high. As a result, data center servers are increasingly using nonvolatile memory as an extension of memory or a storage cache of volatile memory, and have implemented and utilized heterogeneous memory systems that use them simultaneously. have.

메모리 프로파일러(200)는 응용 프로그램(300)으로부터 프로파일링 요청을 수신하면, 응용 프로그램(300)이 메모리 디바이스(100)에 힙 메모리 오브젝트를 할당하였을 때, 할당되는 힙 메모리 오브젝트가 소비하는 에너지 소비량을 예측한다.When the memory profiler 200 receives a profiling request from the application 300, when the application 300 allocates a heap memory object to the memory device 100, the energy consumption of the allocated heap memory object is consumed. To predict.

구체적으로, 메모리 디바이스(100)의 종류도 에너지 소비량에 영향을 주지만, 응용 프로그램(300)이 사용하는 힙 메모리 오브젝트가 메모리 디바이스(100)에 접근하는 패턴 또한 에너지 소비량에 영향을 끼친다. 예를 들면, 메모리가 데이터를 기록하는데 있어 많은 에너지를 소모하는 메모리 디바이스의 경우, 쓰기를 많이 하는 힙 메모리 오브젝트가 메모리 디바이스 상에서 많은 에너지를 소비할 수 있다. Specifically, the type of the memory device 100 also affects the energy consumption, but the pattern in which the heap memory object used by the application 300 accesses the memory device 100 also affects the energy consumption. For example, in the case of a memory device in which the memory consumes a lot of energy to write data, a write-heap heap memory object may consume a lot of energy on the memory device.

따라서, 힙 메모리 오브젝트의 에너지 소비량을 예측하기 위해서는, 메모리 디바이스(100) 자체의 특성뿐만 아니라 힙 메모리 오브젝트가 메모리 디바이스(100)에 접근하는 패턴 또한 고려해야 한다.Thus, in order to predict the energy consumption of the heap memory object, not only the characteristics of the memory device 100 itself but also the pattern in which the heap memory object approaches the memory device 100 must be considered.

따라서, 메모리 프로파일러(200)는 응용 프로그램(300)으로부터 프로파일링 요청을 수신하면, 응용 프로그램(300)이 메모리 디바이스(100)에 할당하는 힙 메모리 오브젝트가 메모리 디바이스(100)에 접근하는 접근 정보를 추출한다.Therefore, when the memory profiler 200 receives a profiling request from the application 300, the access information that the heap memory object allocated by the application 300 to the memory device 100 accesses the memory device 100. Extract

이 경우, 접근 정보는 힙 메모리 오브젝트의 크기, 힙 메모리 오브젝트의 메모리 접근 크기, 힙 메모리 오브젝트의 메모리 사용량 또는 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 포함하며, 메모리 프로파일러(200)는 프로파일링을 복수회 수행하여 힙 메모리 오브젝트의 접근 정보를 결정하게 된다.In this case, the access information includes at least one of the size of the heap memory object, the memory access size of the heap memory object, the memory usage of the heap memory object, or the life time of the heap memory object, and the memory profiler 200 performs profiling. By performing a plurality of times, the access information of the heap memory object is determined.

도 4는 메모리 프로파일러가 힙 메모리 오브젝트의 접근 정보를 결정하는 방법을 설명하는 도면이다.4 is a diagram illustrating a method of determining, by a memory profiler, access information of a heap memory object.

도 4를 참고하면, 메모리 프로파일러(200)는 힙 메모리 오브젝트에 대해 1차 프로파일링을 수행한다.Referring to FIG. 4, the memory profiler 200 performs primary profiling on a heap memory object.

1차 프로파일링은 첫 번째 수행(First pass)으로서, 빠른 수행에 해당한다. 빠른 수행에서, 메모리 프로파일러(200)는 응용 프로그램(300)의 서로 다른 변수들을 구분하고, 각 변수의 오브젝트들을 해당 변수와 맵핑(mapping)하기 위해 함수 호출 스택의 해시 값을 추출한다.Primary profiling is the first pass, which is a fast run. In a quick implementation, the memory profiler 200 distinguishes different variables of the application 300 and extracts a hash value of a function call stack to map objects of each variable to the corresponding variable.

구체적으로, 메모리 프로파일러(200)는 래퍼 라이브러리(wrapper library)를 이용하여 malloc 함수와 같은 동적 할당 함수를 가로챈 다음, 가로챈 동적 할당 함수의 호출 스택을 문자열로 저장하여 이를 해싱한다. 메모리 프로파일러(200)는 모든 오브젝트들의 해시값을 추출하여 결과 파일에 쓰면, 이후 오프라인 작업 (offline processing)이 수행되면서 2차 프로파일링을 수행할 주요 변수들을 선정하여 파일에 해시 값을 나열한다.In detail, the memory profiler 200 intercepts a dynamic allocation function such as a malloc function by using a wrapper library, and then stores the call stack of the intercepted dynamic allocation function as a string and hashes it. The memory profiler 200 extracts the hash values of all the objects and writes them to the result file. After that, offline processing is performed to select main variables to perform secondary profiling and list the hash values in the file.

메모리 프로파일러(200)는 힙 메모리 오브젝트에 대해 1차 프로파일링을 수행하여 힙 메모리 오브젝트의 크기 또는 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 추출한다.The memory profiler 200 performs primary profiling on the heap memory object to extract at least one of the size of the heap memory object or the life time of the heap memory object.

이후, 메모리 프로파일러(200)는 힙 메모리 오브젝트에 대해 2차 프로파일링을 수행한다.Thereafter, the memory profiler 200 performs secondary profiling on the heap memory object.

2차 프로파일링은 두 번째 수행(Second pass)으로서, 느린 수행에 해당한다. 느린 수행에서, 메모리 프로파일러(200)는 주요 변수들을 핀 툴 (PIN tool)을 이용하여 인스트럭션 단위에서 접근 정보에 대해 프로파일링을 수행한다.Secondary profiling is a second pass, which is a slow run. In a slow performance, the memory profiler 200 performs profiling of access information in an instruction unit by using a pin tool.

예를 들면, 메모리 프로파일러(200)는 Intel Pin tool을 이용하여 런타임에 모든 힙 메모리 오브젝트로들의 접근에 대해 프로파일링을 수행할 수 있으며, 이 경우 힙 메모리 오브젝트들에 대한 프로파일링 결과를 첫 번째 수행에서 생성한 해시 테이블을 참조하여 해당 오브젝트가 속한 힙 메모리 오브젝트의 결과로 저장할 수 있다.For example, the memory profiler 200 may profile the access to all heap memory objects at runtime using the Intel Pin tool, in which case the profiling results for the heap memory objects are first displayed. You can refer to the hash table created in the execution and save it as a result of the heap memory object to which the object belongs.

한편, 본 명세서에서는 메모리 프로파일러(200)가 힙 메모리 오브젝트의 접근 정보를 추출하기 위해 첫 번째 수행 및 두 번째 수행을 통해 프로파일링하는 Two-pass 메모리 프로파일링을 사용하는 것으로 설명하였으나, 힙 메모리 오브젝트의 접근 정보를 추출하기 위해 다른 메모리 프로파일링 기법을 사용할 수도 있다.Meanwhile, in the present specification, the memory profiler 200 uses two-pass memory profiling, which is profiled through first and second executions, to extract access information of the heap memory object. Other memory profiling techniques may be used to extract the access information of.

메모리 프로파일러(200)는 힙 메모리 오브젝트에 대해 2차 프로파일링을 수행하여 힙 메모리 오브젝트의 메모리 접근 크기 또는 힙 메모리 오브젝트의 메모리 사용량 중 적어도 하나를 추출한다.The memory profiler 200 performs secondary profiling on the heap memory object to extract at least one of the memory access size of the heap memory object or the memory usage of the heap memory object.

메모리 프로파일러(200)는 접근 정보를 이용하여 힙 메모리 오브젝트가 메모리 디바이스(100)에 할당되었을 때 예측되는 에너지 소비량을 결정한다.The memory profiler 200 uses the access information to determine the estimated energy consumption when the heap memory object is allocated to the memory device 100.

구체적으로, 메모리 프로파일러(200)는 힙 메모리 오브젝트로 인해 메모리 디바이스(100) 상에서 수행되는 명령어에 따라 소비되는 에너지 정보를 결정하고, 접근 정보 및 에너지 정보를 이용하여 에너지 소비량을 결정한다.In detail, the memory profiler 200 determines energy information consumed according to an instruction executed on the memory device 100 due to the heap memory object, and determines an energy consumption amount using the access information and the energy information.

이 경우, 에너지 정보는 메모리 디바이스(100)의 종류에 따라 달리 결정될 수 있다.In this case, the energy information may be determined differently according to the type of the memory device 100.

만일 메모리 디바이스(100)가 휘발성 메모리인 경우, 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 읽기 및 쓰기 명령어에 의해 소비되는 에너지 소비량 또는 리프레시 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.If the memory device 100 is a volatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by read and write instructions, or energy consumption consumed by refresh instructions.

예를 들면, 메모리 디바이스(100)가 휘발성 메모리 중 DRAM인 경우, 메모리 읽기 및 쓰기 명령어가 동작하기 전에 접근하는 뱅크(bank)와 행(row)을 활성화시켜주는 ACT 명령어, 읽히거나 쓰인 데이터를 메모리 배열에 복구해주고 이후의 ACT 명령어를 준비하도록 비트 라인을 사전 충전시켜주는 PRE 명령어, 실제 메모리 읽기 및 쓰기를 각각 수행하는 읽기 및 쓰기 명령어, 그리고 전류 누출로 인한 데이터 손실을 방지하기 위해 주기적으로 전류를 공급하여 메모리 디바이스(100)에 대한 재충전을 수행하는 리프레시 명령어가 DRAM에서 에너지를 소비하는 명령어에 해당될 수 있다. 본 명세서에서는, ACT 명령어 및 PRE 명령어를 전처리 명령어로 정의하며, DRAM에서 각 명령어에 의해 바이트 당 메모리 배열에 접근할 때 소비되는 에너지는 표 1과 같이 나타낼 수 있다. 구체적으로, 표 1에서, 전처리 명령어 및 리프레시 명령어에 해당하는 소비되는 에너지는 바이트 당 메모리 배열에 접근할 때 소비되는 에너지이며, 읽기 및 쓰기 명령어에 해당하는 소비되는 에너지는 바이트 당 메모리 배열 및 바이트 당 행 버퍼에 접근할 때 소비되는 에너지를 의미한다.For example, when the memory device 100 is DRAM among volatile memories, the ACT instruction that activates the banks and rows that are accessed before the memory read and write instructions are operated, and the data read or written is stored in the memory. PRE instructions, which precharge the bit lines to recover the array and prepare for subsequent ACT instructions, read and write instructions that perform actual memory read and write operations respectively, and periodically draw current to prevent data loss due to current leakage. A refresh command that supplies and recharges the memory device 100 may correspond to a command that consumes energy in the DRAM. In the present specification, the ACT instruction and the PRE instruction are defined as preprocessing instructions, and the energy consumed when accessing the memory array per byte by each instruction in the DRAM may be represented as shown in Table 1. Specifically, in Table 1, the energy consumed for the preprocessing and refresh instructions is the energy consumed when accessing the memory array per byte, and the energy consumed for the read and write instructions is per memory array and byte per byte. The energy consumed when accessing the row buffer.

명령어command 소비되는 에너지Energy consumed 전처리 명령어Preprocessing instruction 3.073.07 읽기 및 쓰기 명령어Read and write commands 1.191.19 리프레시 명령어Refresh instruction 0.350.35

한편, 표 1에 기재된 소비되는 에너지는 단지 예시이며, 메모리 디바이스(100)의 규격 및 종류에 따라 변동될 수 있다.메모리 디바이스(100)가 휘발성 메모리인 경우, 메모리 프로파일러(200)는 접근 정보 및 에너지 정보를 이용하여, 응용 프로그램(300)의 힙 메모리 오브젝트가 메모리 디바이스(100)에 접근하는 경우 소모되는 에너지 소비량을 수학식 1과 같이 예측할 수 있다.On the other hand, the energy consumed described in Table 1 is merely an example, and may vary according to the standard and type of the memory device 100. When the memory device 100 is a volatile memory, the memory profiler 200 may include access information and By using the energy information, the energy consumption consumed when the heap memory object of the application program 300 approaches the memory device 100 may be estimated as shown in Equation 1 below.

Figure pat00001
Figure pat00001

수학식 1에서, DEi는 i번째 힙 메모리 오브젝트가 메모리 디바이스(100)에 할당되었을 때 예측되는 에너지 소비량이고, dEACT +PRE는 전처리 명령어에 의한 바이트 당 에너지 소비량이고, dERW는 읽기 및 쓰기 명령어에 의한 바이트 당 에너지 소비량이고, dEREF는 리프레시 명령어에 의한 바이트 당 에너지 소비량이고, AVi는 i번째 힙 메모리 오브젝트의 메모리 접근 크기이고, Si는 i번째 힙 메모리 오브젝트의 크기이고, Ti는 i번째 힙 메모리 오브젝트의 수명 시간을 의미한다.In Equation 1, DE i is the energy consumption estimated when the i-th heap memory object is allocated to the memory device 100, dE ACT + PRE is the energy consumption per byte by the preprocessing instruction, dE RW is read and write Energy consumption per byte by the instruction, dE REF is energy consumption per byte by the refresh instruction, AV i is the size of the memory access of the ith heap memory object, S i is the size of the ith heap memory object, and T i Is the life time of the i-th heap memory object.

즉, 메모리 프로파일러(200)는 각각의 힙 메모리 오브젝트에 대한 에너지 소비량을 예측하고, 이들을 모두 더하여 응용 프로그램(300)의 전체 힙 메모리 오브젝트의 에너지 소비량을 예측할 수 있다.That is, the memory profiler 200 may estimate energy consumption for each heap memory object, and add them all to estimate energy consumption of the entire heap memory object of the application 300.

만일 메모리 디바이스(100)가 비휘발성 메모리인 경우, 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 버퍼 접근 명령어에 의해 소비되는 에너지 소비량 또는 후쓰기 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.If the memory device 100 is a nonvolatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by buffer access instructions, or energy consumption consumed by write-back instructions. .

예를 들면, 메모리 디바이스(100)가 비휘발성 메모리 중 STT-RAM인 경우, DRAM과 마찬가지로 뱅크 및 행을 활성화하고 다음 활성화를 준비하는 전처리 명령어, 행 버퍼에 접근하도록 하는 버퍼 접근 명령어, 행 버퍼 간 충돌이 발생했을 때 행 버퍼에서 메모리 배열에 후쓰기(write-back)하는 후쓰기 명령어가 STT-RAM에서 에너지를 소비하는 명령어에 해당될 수 있다. STT-RAM에서 각 명령어에 의해 바이트 당 메모리 배열 또는 행 버퍼에 접근할 때 소비되는 에너지는 표 2와 같이 나타날 수 있다. 구체적으로, 표 2에서, 전처리 명령어 및 후쓰기 명령어에 해당하는 소비되는 에너지는 바이트 당 메모리 배열에 접근할 때 소비되는 에너지이며, 버퍼 접근 명령어에 해당하는 소비되는 에너지는 바이트 당 행 버퍼에 접근할 때 소비되는 에너지를 의미한다.For example, if the memory device 100 is an STT-RAM of nonvolatile memory, like DRAM, preprocessing instructions for activating banks and rows and preparing for the next activation, buffer access instructions for accessing the row buffers, and between row buffers. A write-back instruction that writes back to a memory array in a row buffer when a collision occurs may correspond to an instruction that consumes energy in the STT-RAM. The energy consumed when accessing the memory array or row buffer per byte by each instruction in STT-RAM can be shown in Table 2. Specifically, in Table 2, the energy consumed for pre- and write-in instructions is the energy consumed when accessing the memory array per byte, and the energy consumed for the buffer access instruction accesses the row buffer per byte. When energy is consumed.

명령어command 소비되는 에너지Energy consumed 전처리 명령어Preprocessing instruction 2.682.68 버퍼 접근 명령어Buffer access command 1.001.00 후쓰기 명령어Write command 2.832.83

한편, 표 2에 기재된 소비되는 에너지는 단지 예시이며, 메모리 디바이스(100)의 규격 및 종류에 따라 변동될 수 있다.메모리 디바이스(100)가 비휘발성 메모리인 경우, 메모리 프로파일러(200)는 접근 정보 및 에너지 정보를 이용하여, 응용 프로그램에 의해 힙 메모리 오브젝트가 메모리 디바이스(100)에 접근하는 경우 소모되는 에너지 소비량을 수학식 2와 같이 예측할 수 있다.On the other hand, the energy consumed described in Table 2 is merely an example and may vary according to the standard and type of the memory device 100. When the memory device 100 is a nonvolatile memory, the memory profiler 200 may access information. And the energy information, the energy consumption consumed when the heap memory object approaches the memory device 100 by the application program can be predicted as shown in Equation 2 below.

Figure pat00002
Figure pat00002

수학식 2에서, NEi는 i번째 힙 메모리 오브젝트가 메모리 디바이스(100)에 할당되었을 때 예측되는 에너지 소비량이고, nEACT +PRE는 전처리 명령어에 의한 바이트 당 에너지 소비량이고, nERBA는 버퍼 접근 명령어에 의한 바이트 당 에너지 소비량이고, nEWB는 후쓰기 명령어에 의한 바이트 당 에너지 소비량이고, AVi는 i번째 힙 메모리 오브젝트의 메모리 접근 크기이고, NDC는 행 버퍼 크기 안의 오염된 캐시 블록의 수이고, VCB는 캐시 블록의 크기를 의미한다.In Equation 2, NE i is the energy consumption estimated when the i-th heap memory object is allocated to the memory device 100, nE ACT + PRE is the energy consumption per byte by the preprocessing instruction, nE RBA is the buffer access instruction Energy consumption per byte by, nE WB is energy consumption per byte by the write command, AV i is the memory access size of the i th heap memory object, N DC is the number of dirty cache blocks in the row buffer size , V CB means the size of the cache block.

메모리 디바이스(100)의 메모리 배열에 후쓰기되는 캐시 블록의 수를 카운트하기 위해, 메모리 프로파일러(200)는 메모리 디바이스(100)의 행 버퍼 크기와 동일한 크기의 버퍼를 설정할 수 있고, 설정된 버퍼에서 발생하는 오염된 캐시 블록 수를 카운트하여 NDC를 결정할 수 있다. 구체적으로, 프로파일링 대상인 힙 메모리 오브젝트들의 평균 크기가 메모리 디바이스(100)의 행 버퍼보다 큰 경우, 하나의 워크로드가 수행될 때 호출되는 행 버퍼는 대부분의 경우 하나의 오브젝트의 일부에 해당한다. 따라서, 행 버퍼 크기만큼의 가상 메모리 버퍼에서의 오염된 캐시 블록 수가 하나의 오브젝트가 야기하는 행 버퍼의 오염된 캐시 블록 수로 맵핑될 수 있으므로, 이를 통해 NDC를 결정할 수 있다. 또한, 캐시 블록의 크기는 메모리 디바이스(100)의 하드웨어 정보를 통해 결정될 수 있다.In order to count the number of cache blocks written to the memory array of the memory device 100, the memory profiler 200 may set a buffer having a size equal to the row buffer size of the memory device 100, and in the set buffer. N DC may be determined by counting the number of corrupted cache blocks that occur. Specifically, when the average size of the heap memory objects to be profiled is larger than the row buffer of the memory device 100, the row buffer called when one workload is performed corresponds to a part of one object in most cases. Therefore, since the number of contaminated cache blocks in the virtual memory buffer equal to the row buffer size can be mapped to the number of contaminated cache blocks of the row buffer caused by one object, N DC can be determined through this. In addition, the size of the cache block may be determined through hardware information of the memory device 100.

메모리 프로파일러(200)는 각각의 힙 메모리 오브젝트에 대한 에너지 소비량을 예측하고, 이들을 모두 더하여 응용 프로그램(300)의 전체 힙 메모리 오브젝트의 에너지 소비량을 예측할 수 있다.The memory profiler 200 may estimate energy consumption for each heap memory object, and add them all to estimate energy consumption of the entire heap memory object of the application 300.

도 5는 한 실시예에 따른 메모리 프로파일러가 힙 메모리 오브젝트의 에너지 소모량을 예측하는 방법을 설명하는 도면이다.FIG. 5 is a diagram for describing a method of predicting an energy consumption of a heap memory object by a memory profiler according to an exemplary embodiment.

도 5를 참고하면, 메모리 프로파일러(200)는 응용 프로그램(300)으로부터 프로파일링 요청을 수신한다(S100).Referring to FIG. 5, the memory profiler 200 receives a profiling request from the application program 300 (S100).

메모리 프로파일러(200)는 응용 프로그램(300)의 힙 메모리 오브젝트가 메모리 디바이스(100)에 접근하는 접근 정보를 추출한다(S110).The memory profiler 200 extracts access information for the heap memory object of the application program 300 to access the memory device 100 (S110).

구체적으로, 메모리 프로파일러(200)는 힙 메모리 오브젝트에 대해 1차 프로파일링을 수행하여 힙 메모리 오브젝트의 크기 또는 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 추출하고, 힙 메모리 오브젝트에 대해 2차 프로파일링을 수행하여 힙 메모리 오브젝트의 메모리 접근 크기 또는 힙 메모리 오브젝트의 메모리 사용량 중 적어도 하나를 추출한다. 이 경우, 접근 정보는 힙 메모리 오브젝트의 크기, 힙 메모리 오브젝트의 메모리 접근 크기, 힙 메모리 오브젝트의 메모리 사용량 또는 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 포함한다.Specifically, the memory profiler 200 performs primary profiling on the heap memory object to extract at least one of the size of the heap memory object or the lifetime of the heap memory object, and the secondary profiling on the heap memory object. Extracts at least one of the memory access size of the heap memory object and the memory usage of the heap memory object. In this case, the access information includes at least one of the size of the heap memory object, the memory access size of the heap memory object, the memory usage of the heap memory object, or the life time of the heap memory object.

메모리 프로파일러(200)는 힙 메모리 오브젝트로 인해 메모리 디바이스(100) 상에서 수행되는 명령어에 따라 소비되는 에너지 정보를 결정한다(S120).The memory profiler 200 determines energy information consumed according to an instruction executed on the memory device 100 due to the heap memory object (S120).

만일 메모리 디바이스(100)가 휘발성 메모리인 경우, 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 읽기 및 쓰기 명령어에 의해 소비되는 에너지 소비량 또는 리프레시 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.If the memory device 100 is a volatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by read and write instructions, or energy consumption consumed by refresh instructions.

만일 메모리 디바이스(100)가 비휘발성 메모리인 경우, 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 버퍼 접근 명령어에 의해 소비되는 에너지 소비량 또는 후쓰기 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.If the memory device 100 is a nonvolatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by buffer access instructions, or energy consumption consumed by write-back instructions. .

메모리 프로파일러(200)는 접근 정보 및 에너지 정보를 이용하여 힙 메모리 오브젝트가 메모리 디바이스(100)에 할당되었을 때 예측되는 에너지 소비량을 결정한다(S130).The memory profiler 200 determines the energy consumption predicted when the heap memory object is allocated to the memory device 100 using the access information and the energy information (S130).

본 발명에 따르면, 이기종 메모리 구조를 구성하는 메모리 간에 성능 및 전력 효율의 차이를 고려하여 힙 메모리 오브젝트를 선택적으로 할당하기 위해, 실제 할당 전 에너지 소비량을 예측함으로써, 이기종 메모리의 전체 성능을 만족하면서 소비되는 에너지를 감소시킬 수 있다.According to the present invention, in order to selectively allocate a heap memory object in consideration of the difference in performance and power efficiency among memories constituting the heterogeneous memory structure, the energy consumption before the actual allocation is predicted to satisfy the overall performance of the heterogeneous memory. Energy can be reduced.

또한, 본 발명에 따르면, 이기종 메모리 구조를 구성하는 메모리 간에 성능 및 전력 효율의 차이를 고려하여 힙 메모리 변수를 선택적으로 할당하기 위해, 실제 할당 전 에너지 소비량을 예측함으로써 이기종 메모리의 전체 성능을 만족하면서 소비되는 에너지를 감소시킬 수 있다.In addition, according to the present invention, in order to selectively allocate a heap memory variable in consideration of the difference in performance and power efficiency between the memory constituting the heterogeneous memory structure, while satisfying the overall performance of the heterogeneous memory by predicting the energy consumption before actual allocation It can reduce the energy consumed.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

Claims (9)

메모리 시스템으로서,
메모리 디바이스, 그리고
응용 프로그램으로부터 프로파일링 요청을 수신하면, 상기 응용 프로그램이 상기 메모리 디바이스에 할당하는 힙 메모리 오브젝트(heap memory object)가 상기 메모리 디바이스에 접근하는 접근 정보를 추출하고, 상기 접근 정보를 이용하여 상기 힙 메모리 오브젝트가 상기 메모리 디바이스에 할당되었을 때 예측되는 에너지 소비량을 결정하는 메모리 프로파일러
를 포함하는 메모리 시스템.
As a memory system,
A memory device, and
Upon receiving a profiling request from an application, a heap memory object allocated by the application to the memory device extracts access information for accessing the memory device, and uses the access information to extract the access information. Memory profiler, which determines the estimated energy consumption when an object is assigned to the memory device
Memory system comprising a.
제1항에서,
상기 접근 정보는 상기 힙 메모리 오브젝트의 크기, 상기 힙 메모리 오브젝트의 메모리 접근 크기, 상기 힙 메모리 오브젝트의 메모리 사용량 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 포함하고,
상기 메모리 프로파일러는
상기 힙 메모리 오브젝트에 대해 1차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 크기 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 추출하고,
상기 힙 메모리 오브젝트에 대해 2차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 메모리 접근 크기 또는 상기 힙 메모리 오브젝트의 메모리 사용량 중 적어도 하나를 추출하는 메모리 시스템.
In claim 1,
The access information includes at least one of a size of the heap memory object, a memory access size of the heap memory object, a memory usage of the heap memory object, or a lifetime of the heap memory object,
The memory profiler
Perform primary profiling on the heap memory object to extract at least one of a size of the heap memory object or a lifetime of the heap memory object,
And performing at least one of a memory access size of the heap memory object or a memory usage of the heap memory object by performing secondary profiling on the heap memory object.
제1항에서,
상기 메모리 프로파일러는
상기 힙 메모리 오브젝트로 인해 상기 메모리 디바이스 상에서 수행되는 명령어에 따라 소비되는 에너지 정보를 결정하고, 상기 접근 정보 및 상기 에너지 정보를 이용하여 상기 에너지 소비량을 결정하는 메모리 시스템.
In claim 1,
The memory profiler
Determining energy information consumed according to an instruction executed on the memory device due to the heap memory object, and determining the energy consumption amount using the access information and the energy information.
제3항에서,
상기 메모리 디바이스가 휘발성 메모리(Volatile Memory)인 경우,
상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 읽기 및 쓰기 명령어에 의해 소비되는 에너지 소비량 또는 리프레시 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함하는 메모리 시스템.
In claim 3,
If the memory device is a volatile memory (Volatile Memory),
The energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by read and write instructions, or energy consumption consumed by refresh instructions.
제3항에서,
상기 메모리 디바이스가 비휘발성 메모리(Non-Volatile Memory)인 경우,
상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 버퍼 접근 명령어에 의해 소비되는 에너지 소비량 또는 후쓰기 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함하는 메모리 시스템.
In claim 3,
If the memory device is a non-volatile memory (Non-Volatile Memory),
The energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by buffer access instructions, or energy consumption consumed by postwrite instructions.
메모리 프로파일러가 힙 메모리 오브젝트의 에너지 소모량을 예측하는 방법으로서,
응용 프로그램으로부터 프로파일링 요청을 수신하면, 상기 응용 프로그램의 힙 메모리 오브젝트가 메모리 디바이스에 접근하는 접근 정보를 추출하는 단계,
상기 힙 메모리 오브젝트로 인해 상기 메모리 디바이스 상에서 수행되는 명령어에 따라 소비되는 에너지 정보를 결정하는 단계, 그리고
상기 접근 정보 및 상기 에너지 정보를 이용하여 상기 힙 메모리 오브젝트가 상기 메모리 디바이스에 할당되었을 때 예측되는 에너지 소비량을 결정하는 단계
를 포함하는 에너지 소모량 예측 방법.
The memory profiler predicts the energy consumption of heap memory objects.
Receiving a profiling request from an application, extracting access information for the heap memory object of the application to access a memory device,
Determining energy information consumed in accordance with instructions executed on the memory device due to the heap memory object, and
Determining an energy consumption amount estimated when the heap memory object is allocated to the memory device using the access information and the energy information.
Energy consumption prediction method comprising a.
제6항에서,
상기 접근 정보는 상기 힙 메모리 오브젝트의 크기, 상기 힙 메모리 오브젝트의 메모리 접근 크기, 상기 힙 메모리 오브젝트의 메모리 사용량 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 포함하고,
상기 접근 정보를 추출하는 단계는
상기 힙 메모리 오브젝트에 대해 1차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 크기 또는 상기 힙 메모리 오브젝트의 수명 시간 중 적어도 하나를 추출하는 단계, 그리고
상기 힙 메모리 오브젝트에 대해 2차 프로파일링을 수행하여 상기 힙 메모리 오브젝트의 메모리 접근 크기 또는 상기 힙 메모리 오브젝트의 메모리 사용량 중 적어도 하나를 추출하는 단계를 포함하는 에너지 소모량 예측 방법.
In claim 6,
The access information includes at least one of a size of the heap memory object, a memory access size of the heap memory object, a memory usage of the heap memory object, or a lifetime of the heap memory object,
Extracting the access information
Performing primary profiling on the heap memory object to extract at least one of a size of the heap memory object or a life time of the heap memory object, and
Extracting at least one of a memory access size of the heap memory object or a memory usage of the heap memory object by performing secondary profiling on the heap memory object.
제6항에서,
상기 메모리 디바이스가 휘발성 메모리인 경우,
상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 읽기 및 쓰기 명령어에 의해 소비되는 에너지 소비량 또는 리프레시 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함하는 에너지 소모량 예측 방법.
In claim 6,
If the memory device is volatile memory,
And the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by read and write instructions, or energy consumption consumed by refresh instructions.
제6항에서,
상기 메모리 디바이스가 비휘발성 메모리인 경우,
상기 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 버퍼 접근 명령어에 의해 소비되는 에너지 소비량 또는 후쓰기 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함하는 에너지 소모량 예측 방법.
In claim 6,
If the memory device is a nonvolatile memory,
And the energy information comprises at least one of energy consumption consumed by a preprocessing instruction, energy consumption consumed by a buffer access instruction, or energy consumption consumed by a write-back instruction.
KR1020190003476A 2018-02-21 2019-01-10 Method for predicting energy consumption of heap memory object and memory system implementing the same KR102178931B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180020776 2018-02-21
KR1020180020776 2018-02-21

Publications (2)

Publication Number Publication Date
KR20190100850A true KR20190100850A (en) 2019-08-29
KR102178931B1 KR102178931B1 (en) 2020-11-13

Family

ID=67776069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190003476A KR102178931B1 (en) 2018-02-21 2019-01-10 Method for predicting energy consumption of heap memory object and memory system implementing the same

Country Status (1)

Country Link
KR (1) KR102178931B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050035699A (en) * 2003-10-14 2005-04-19 삼성전자주식회사 Energy reduction method for memory system, and the device thereof
KR20140079422A (en) * 2011-09-20 2014-06-26 퀄컴 인코포레이티드 Dynamic power optimization for computing devices
KR20150122924A (en) * 2014-04-24 2015-11-03 (주)인시그널 Apparatus and method for performance evaluation of java script
KR20160040289A (en) * 2013-08-08 2016-04-12 퀄컴 인코포레이티드 System and method for memory channel interleaving with selective power or performance optimization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050035699A (en) * 2003-10-14 2005-04-19 삼성전자주식회사 Energy reduction method for memory system, and the device thereof
KR20140079422A (en) * 2011-09-20 2014-06-26 퀄컴 인코포레이티드 Dynamic power optimization for computing devices
KR20160040289A (en) * 2013-08-08 2016-04-12 퀄컴 인코포레이티드 System and method for memory channel interleaving with selective power or performance optimization
KR20150122924A (en) * 2014-04-24 2015-11-03 (주)인시그널 Apparatus and method for performance evaluation of java script

Also Published As

Publication number Publication date
KR102178931B1 (en) 2020-11-13

Similar Documents

Publication Publication Date Title
US11636038B2 (en) Method and apparatus for controlling cache line storage in cache memory
US9348527B2 (en) Storing data in persistent hybrid memory
Lee et al. Tiered-latency DRAM: A low latency and low cost DRAM architecture
US11977484B2 (en) Adapting in-memory database in hybrid memory systems and operating system interface
US8010764B2 (en) Method and system for decreasing power consumption in memory arrays having usage-driven power management
US7991944B2 (en) System and method for searching mapping table of flash memory
US10698732B2 (en) Page ranking in operating system virtual pages in hybrid memory systems
KR20120058352A (en) Hybrid Memory System and Management Method there-of
Cui et al. DTail: a flexible approach to DRAM refresh management
US20130132704A1 (en) Memory controller and method for tuned address mapping
US10198180B2 (en) Method and apparatus for managing storage device
CN108572799B (en) Data page migration method of heterogeneous memory system of bidirectional hash chain table
CN102681792B (en) Solid-state disk memory partition method
US8250298B2 (en) Mechanisms for reducing DRAM power consumption
CN106909323B (en) Page caching method suitable for DRAM/PRAM mixed main memory architecture and mixed main memory architecture system
CN107015628B (en) Low-overhead DRAM refreshing method and system for approximate application
KR20180135390A (en) Data journaling method for large solid state drive device
KR102178931B1 (en) Method for predicting energy consumption of heap memory object and memory system implementing the same
KR102187213B1 (en) Method for allocating heap memory objects and hybrid memory system implementing the same
KR101913914B1 (en) Refresh method and apparatus for memory cells
US11556253B1 (en) Reducing power consumption by selective memory chip hibernation
Guo et al. Alleviating dram refresh overhead via inter-rank piggyback caching
US20240118835A1 (en) Solid state drive having mram and methods for operating the same
Kim et al. Optimizing Placement of Heap Memory Objects in Energy-Constrained Hybrid Memory Systems
DeMara et al. Non-volatile memory trends: Toward improving density and energy profiles across the system stack

Legal Events

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