KR101620716B1 - 소프트웨어의 수행 시간 예측 장치 및 방법 - Google Patents

소프트웨어의 수행 시간 예측 장치 및 방법 Download PDF

Info

Publication number
KR101620716B1
KR101620716B1 KR1020140119624A KR20140119624A KR101620716B1 KR 101620716 B1 KR101620716 B1 KR 101620716B1 KR 1020140119624 A KR1020140119624 A KR 1020140119624A KR 20140119624 A KR20140119624 A KR 20140119624A KR 101620716 B1 KR101620716 B1 KR 101620716B1
Authority
KR
South Korea
Prior art keywords
input
software
execution time
output
nonvolatile memory
Prior art date
Application number
KR1020140119624A
Other languages
English (en)
Other versions
KR20150123135A (ko
Inventor
원유집
정재민
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of KR20150123135A publication Critical patent/KR20150123135A/ko
Application granted granted Critical
Publication of KR101620716B1 publication Critical patent/KR101620716B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

소프트웨어의 수행 시간 예측 장치 및 방법이 개시된다.
소프트웨어의 수행 시간 예측 방법은 휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 단계; 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및 상기 측정한 제1 수행 시간과, 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 단계를 포함할 수 있다.

Description

소프트웨어의 수행 시간 예측 장치 및 방법{APPARATUS AND METHOD FOR PREDICTING PERFORMANCE TIME OF SOFTWARE}
본 발명은 소프트웨어의 수행 시간 예측 장치 및 방법에 관한 것으로, 보다 상세하게는 신규 개발하는 비휘발성 메모리의 예상 스펙에 따른 소프트웨어의 수행 시간을 예측하는 장치 및 방법에 관한 것이다.
신규 개발하는 비휘발성 메모리의 스펙을 결정하기 위해서는 신규 개발하는 비휘발성 메모리의 예상 스펙에 따른 다양한 소프트웨어들의 수행 시간을 예측하는 기술이 필요하다.
종래의 소프트웨어의 수행 시간을 예측하는 방법은 타겟 하드웨어 환경을 시뮬레이터로 구현하여 소프트웨어의 수행 시간을 예측하고 있었다. 그러나, 종래의 소프트웨어의 수행 시간을 예측하는 방법에서 사용하는 시뮬레이터는 메모리 입출력 트레이스와 입출력 타이밍을 모두 요구하고 있으므로, 수행 시간을 예측하기 위하여 많은 시간이 소요되는 실정이다.
따라서, 소프트웨어의 수행 시간을 예측하는 시간을 단축할 수 있는 방법이 요청되고 있다.
본 발명은 휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간과 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간을 예측하는 장치 및 방법을 제공할 수 있다.
또한, 본 발명은 비휘발성 메모리의 입출력 트레이스 중에서 캐시에 캐싱된 데이터와 관련된 입출력 트레이스를 제외함으로써, 실제 메모리에서 발생하는 입출력 횟수를 식별하는 장치 및 방법을 제공할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법은 휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 단계; 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및 상기 측정한 제1 수행 시간과, 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법의 비휘발성 메모리의 입출력 트레이스를 추출하는 단계는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 단계; 및 상기 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법의 비휘발성 메모리의 입출력 트레이스를 추출하는 단계는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및 추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법의 제2 수행 시간을 예측하는 단계는 상기 휘발성 메모리의 접근 속도와 상기 비휘발성 메모리의 접근 속도의 차이에 기초하여 상기 비휘발성 메모리의 접근 시간 오버헤드를 결정하는 단계; 상기 비휘발성 메모리의 접근 시간 오버헤드에 상기 비휘발성 메모리의 입출력 트레이스를 적용하는 단계; 및 입출력 트레이스가 적용된 오버헤드와 상기 제1 수행 시간을 이용하여 제2 수행 시간을 예측하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치는 휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 제1 수행 시간 측정부; 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 입출력 트레이스 추출부; 및 상기 측정한 제1 수행 시간과, 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 제2 수행 시간 예측부를 포함할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 입출력 트레이스 추출부는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 캐시의 입출력 트레이스 제거부; 및 상기 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 비휘발성 메모리의 입출력 트레이스 추출부를 포함할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 입출력 트레이스 추출부는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 비휘발성 메모리의 입출력 트레이스 추출부; 및 추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 캐시의 입출력 트레이스 제거부를 포함할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 제2 수행 시간 예측부는 상기 휘발성 메모리의 접근 속도와 상기 비휘발성 메모리의 접근 속도의 차이에 기초하여 상기 비휘발성 메모리의 접근 시간 오버헤드를 결정하는 오버헤드 결정부; 상기 비휘발성 메모리의 접근 시간 오버헤드에 상기 비휘발성 메모리의 입출력 트레이스를 적용하는 입출력 트레이스 적용부; 및 입출력 트레이스가 적용된 오버헤드와 상기 제1 수행 시간을 이용하여 제2 수행 시간을 예측하는 제2 수행 시간 예측부를 포함할 수 있다.
본 발명의 일실시예에 의하면, 휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간과 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간을 예측함으로써, 소프트웨어의 수행 시간을 빠르게 예측할 수 있다.
또한, 본 발명의 일실시예에 의하면, 비휘발성 메모리의 입출력 트레이스 중에서 캐시에 캐싱된 데이터와 관련된 입출력 트레이스를 제외함으로써, 실제 메모리에서 발생하는 입출력 횟수를 식별할 수 있다.
도 1은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 동작을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 입출력 트레이스 추출부를 나타내는 도면이다.
도 4는 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 제2 수행 시간 예측부를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 소프트웨어 수행 시간 예측 과정의 일례이다.
도 6은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법을 도시한 플로우차트이다.
도 7은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법의 입출력 트레이스 추출 방법을 도시한 플로우차트이다.
도 8은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법의 제2 수행 시간 예측 방법을 도시한 플로우차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법은 소프트웨어의 수행 시간 예측 장치에 의해 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 동작을 나타내는 도면이다.
소프트웨어의 수행 시간 예측 장치(100)는 비휘발성 메모리(120)에서 소프트웨어를 수행하였을 때의 수행 시간을 예측할 수 있다. 이때, 비휘발성 메모리(120)는 예상 스펙만 결정되어 신규 개발 중인 차세대 비휘발성 메모리일 수 있다.
그리고, 소프트웨어의 수행 시간 예측 장치(100)는 휘발성 메모리(110)에서 소프트웨어를 실행하여 제1 수행시간을 측정할 수 있다. 이때, 제1 수행 시간은 휘발성 메모리(110)에서 소프트웨어를 수행하였을 때의 수행 시간일 수 있다.
다음으로, 소프트웨어의 수행 시간 예측 장치(100)는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다.
마지막으로, 소프트웨어의 수행 시간 예측 장치(100)는 측정한 제1 수행 시간과, 비휘발성 메모리의 입출력 트레이스를 이용하여 제2 수행 시간을 예측할 수 있다. 이때, 제2 수행 시간은 비휘발성 메모리(120)에서 소프트웨어를 수행하였을 때의 수행 시간일 수 있다.
소프트웨어의 수행 시간 예측 장치(100)는 휘발성 메모리(110)에서 소프트웨어를 수행하였을 때의 수행 시간과 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리(120)에서 소프트웨어를 수행하였을 때의 수행 시간을 예측함으로써, 소프트웨어의 수행 시간을 빠르게 예측할 수 있다.
도 2는 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치를 나타내는 도면이다.
도 2를 참고하면, 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치(100)는 제1 수행 시간 측정부(210), 입출력 트레이스 추출부(220), 및 제2 수행 시간 예측부(230)를 포함할 수 있다.
제1 수행 시간 측정부(210)는 휘발성 메모리(110)에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정할 수 있다. 이때, 제1 수행 시간 측정부(210)는 DRAM 기반의 하드웨어 환경에서 소프트웨어를 실행하고, 실행한 소프트웨어의 실행 시간을 측정하여 제1 수행 시간을 결정할 수 있다.
입출력 트레이스 추출부(220)는 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다.
이때, 입출력 트레이스 추출부(220)는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하고, 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다.
또한, 입출력 트레이스 추출부(220)는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하고, 추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거할 수 있다.
입출력 트레이스 추출부(220)의 구체적인 구성 및 동작은 이하 도 3을 참조하여 상세히 설명한다.
제2 수행 시간 예측부(230)는 제1 수행 시간 측정부(210)가 측정한 제1 수행 시간과, 입출력 트레이스 추출부(220)가 추출한 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측할 수 있다.
이때, 제2 수행 시간 예측부(230)는 휘발성 메모리(110)의 접근 속도와 비휘발성 메모리(120)의 접근 속도의 차이에 기초하여 비휘발성 메모리(120)의 접근 시간 오버헤드를 결정할 수 있다. 그리고, 제2 수행 시간 예측부(230)는 입출력 트레이스 추출부(220)가 추출한 비휘발성 메모리의 입출력 트레이스가 적용된 비휘발성 메모리(120)의 접근 시간 오버헤드와 제1 수행 시간을 이용하여 제2 수행 시간을 예측할 수 있다.
제2 수행 시간 예측부(230)의 구체적인 구성 및 동작은 이하 도 4를 참조하여 상세히 설명한다.
도 3은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 입출력 트레이스 추출부를 나타내는 도면이다.
도 3을 참고하면, 본 발명의 일실시예에 따른 입출력 트레이스 추출부(220)는 소프트웨어 실행부(310), 캐시의 입출력 트레이스 제거부(320), 및 비휘발성 메모리의 입출력 트레이스 추출부(330)를 포함할 수 있다.
소프트웨어 실행부(310)는 소프트웨어를 QEMU와 같은 가상 머신 상에서 실행할 수 있다. 그리고, 소프트웨어 실행부(310)는 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스를 추출할 수 있다.
이때, 소프트웨어 실행부(310)가 실행하는 소프트웨어는 제1 수행 시간 측정부(210)가 제1 수행 시간을 측정한 소프트웨어일 수 있다. 또한, 소프트웨어 실행부(310)는 제1 수행 시간 측정부(210)가 소프트웨어를 실행한 하드웨어 환경의 메모리 크기와 동일한 메모리 크기를 가지도록 가상 머신을 설정할 수 있다.
소프트웨어의 수행 시간 예측 장치(100)는 타이밍 정보를 사용하지 않고, 입출력 트레이스 추출부(220)를 이용하여 메모리 입출력 트레이스만 추출하므로, 종래의 시뮬레이션 기법과 달리 비 휘발성 메모리(120)를 포함하는 타겟 시스템의 하드웨어를 완벽히 재현할 필요가 없다. 따라서, 소프트웨어 실행부(310)는 가상 머신의 메모리 크기를 제외한 설정을 비 휘발성 메모리(120)를 포함하는 타겟 시스템과 동일하도록 재현하지 않을 수 있다.
캐시의 입출력 트레이스 제거부(320)는 소프트웨어 실행부(310)가 추출한 입출력 트레이스 중 캐시의 입출력 트레이스를 제거할 수 있다. 이때, 캐시의 입출력 트레이스는 캐시에 캐싱된 데이터에 접근하는 입출력 트레이스일 수 있다.
소프트웨어 실행부(310)가 추출한 입출력 트레이스 중에는 메모리 입출력을 발생시키지 않는 입출력 트레이스가 포함될 수 있다. 예를 들어, 입출력 트레이스가 접근하려는 데이터가 캐시에 캐싱된 경우, 소프트웨어는 캐시에 캐싱된 데이터에 접근하므로, 비휘발성 메모리(120)에 저장된 데이터에 접근하지 않을 수 있다. 즉, 캐시의 입출력 트레이스는 비휘발성 메모리(120)에 저장된 데이터의 입출력이 발생하지 않는 입출력 트레이스일 수 있다.
따라서, 캐시의 입출력 트레이스 제거부(320)는 소프트웨어 실행부(310)가 추출한 입출력 트레이스 중 캐시의 입출력 트레이스를 제거함으로써, 데이터의 입출력이 발생하지 않는 입출력 트레이스를 제거할 수 있다.
비휘발성 메모리의 입출력 트레이스 추출부(330)는 소프트웨어 실행부(310)가 추출한 입출력 트레이스에서 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다.
또한, 실시예에 따라서는 비휘발성 메모리의 입출력 트레이스 추출부(330)가 소프트웨어 실행부(310)가 추출한 입출력 트레이스에서 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다. 이때, 캐시의 입출력 트레이스 제거부(320)는 비휘발성 메모리의 입출력 트레이스 추출부(330)가 추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거할 수 있다.
입출력 트레이스 추출부(220)는 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출함으로써, 비휘발성 메모리에 발생하는 메모리의 입출력 횟수를 알 수 있다.
도 4는 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 장치의 제2 수행 시간 예측부를 나타내는 도면이다.
도 4를 참고하면, 본 발명의 일실시예에 따른 제2 수행 시간 예측부(230)는 오버헤드 결정부(410), 입출력 트레이스 적용부(420), 및 제2 수행 시간 예측부(430)를 포함할 수 있다.
오버헤드 결정부(410)는 휘발성 메모리(110)의 접근 속도와 비휘발성 메모리(120)의 접근 속도의 차이에 기초하여 비휘발성 메모리(120)의 접근 시간 오버헤드를 결정할 수 있다. 예를 들어, 오버헤드 결정부(410)는 제1 수행 시간 측정부(210)가 소프트웨어를 실행한 DRAM 기반의 하드웨어 환경 대비 차세대 비휘발성 메모리의 예상 스펙 간의 평균 접근 속도 차이를 비휘발성 메모리(120)의 접근 시간 오버헤드로 결정할 수 있다.
입출력 트레이스 적용부(420)는 오버헤드 결정부(410)가 결정한 비휘발성 메모리의 접근 시간 오버헤드에 입출력 트레이스 추출부(220)가 추출한 비휘발성 메모리의 입출력 트레이스를 적용할 수 있다. 예를 들어, 입출력 트레이스 적용부(420)는 비휘발성 메모리의 접근 시간 오버헤드와 비휘발성 메모리의 입출력 트레이스의 개수를 곱할 수 있다.
제2 수행 시간 예측부(430)는 입출력 트레이스 적용부(420)에서 입출력 트레이스가 적용된 오버헤드와 제1 수행 시간 측정부(210)가 측정한 제1 수행 시간을 이용하여 제2 수행 시간을 예측할 수 있다.
도 5는 본 발명의 일실시예에 따른 소프트웨어 수행 시간 예측 과정의 일례이다.
먼저, 제1 수행 시간 측정부(210)는 DRAM 기반의 하드웨어 환경에서 소프트웨어(500)를 실행하고, 실행한 소프트웨어의 실행 시간을 측정하여 휘발성 메모리의 실제 성능(510)인 제1 수행 시간을 결정할 수 있다.
다음으로, 소프트웨어 실행부(310)는 소프트웨어(500)를 가상 머신 상에서 실행하고, 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스(520)를 추출할 수 있다. 이때, 추출한 입출력 트레이스(520)에는 캐시의 입출력 트레이스(521)이 포함될 수 있다.
그 다음으로, 캐시의 입출력 트레이스 제거부(320)는 입출력 트레이스(520)에서 캐시의 입출력 트레이스(521)를 제거할 수 있다.
다음으로, 비휘발성 메모리의 입출력 트레이스 추출부(330)는 캐시의 입출력 트레이스(521)를 제외한 입출력 트레이스(530) 중 비휘발성 메모리의 입출력 트레이스(540)를 추출할 수 있다. 이때, 비휘발성 메모리의 입출력 트레이스 추출부(330)는 추출한 비휘발성 메모리의 입출력 트레이스(540)의 개수에 따라 소프트웨어가 데이터를 입출력 하기 위하여 비휘발성 메모리(120)에 접근하는 횟수(550)를 알 수 있다. 이때, 비휘발성 메모리(120)는 NVRAM일 수 있다.
그 다음으로 오버헤드 결정부(410)는 휘발성 메모리(110)의 접근 속도와 비휘발성 메모리(120)의 접근 속도의 차이에 기초하여 비휘발성 메모리(120)의 접근 시간 오버헤드(560)를 결정할 수 있다.
다음으로, 입출력 트레이스 적용부(420)는 비휘발성 메모리의 접근 시간 오버헤드(560)와 비휘발성 메모리의 접근 회수(550)를 곱하여 비휘발성 메모리의 추정 오버헤드(Estimated NVRAM overhead)(570)를 결정할 수 있다.
마지막으로, 제2 수행 시간 예측부(430)는 비휘발성 메모리의 추정 오버헤드(570)와 실제 성능(510)을 더하여 소프트웨어의 추정 성능(580)인 제2 수행 시간을 예측할 수 있다.
도 6은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법을 도시한 플로우차트이다.
단계(610)에서 제1 수행 시간 측정부(210)는 휘발성 메모리(110)에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정할 수 있다. 이때, 제1 수행 시간 측정부(210)는 DRAM 기반의 하드웨어 환경에서 소프트웨어를 실행하고, 실행한 소프트웨어의 실행 시간을 측정하여 제1 수행 시간을 결정할 수 있다.
단계(620)에서 입출력 트레이스 추출부(220)는 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다. 이때, 입출력 트레이스 추출부(220)는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하고, 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다. 또한, 입출력 트레이스 추출부(220)는 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하고, 추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거할 수 있다.
단계(630)에서 제2 수행 시간 예측부(230)는 단계(610)에서 측정한 제1 수행 시간과, 단계(620)에서 추출한 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측할 수 있다. 이때, 제2 수행 시간 예측부(230)는 휘발성 메모리(110)의 접근 속도와 비휘발성 메모리(120)의 접근 속도의 차이에 기초하여 비휘발성 메모리(120)의 접근 시간 오버헤드를 결정할 수 있다. 그리고, 제2 수행 시간 예측부(230)는 입출력 트레이스 추출부(220)가 추출한 비휘발성 메모리의 입출력 트레이스가 적용된 비휘발성 메모리(120)의 접근 시간 오버헤드와 제1 수행 시간을 이용하여 제2 수행 시간을 예측할 수 있다.
도 7은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법의 입출력 트레이스 추출 방법을 도시한 플로우차트이다. 이때, 도 7의 단계(710) 내지 단계(730)는 도 6의 단계(620)에 포함될 수 있다.
단계(710)에서 소프트웨어 실행부(310)는 소프트웨어를 가상 머신 상에서 실행하고, 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스를 추출할 수 있다. 이때, 소프트웨어 실행부(310)가 실행하는 소프트웨어는 단계(610)에서 제1 수행 시간을 측정한 소프트웨어일 수 있다. 또한, 소프트웨어 실행부(310)는 단계(610)에서 제1 수행 시간 측정부(210)가 소프트웨어를 실행한 하드웨어 환경의 메모리 크기와 동일한 메모리 크기를 가지도록 가상 머신을 설정할 수 있다.
단계(720)에서 캐시의 입출력 트레이스 제거부(320)는 단계(710)에서 추출한 입출력 트레이스 중 캐시의 입출력 트레이스를 제거할 수 있다.
단계(730)에서 비휘발성 메모리의 입출력 트레이스 추출부(330)는 단계(720)에서 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출할 수 있다. 이때, 입출력 트레이스 추출부(220)는 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출함으로써, 비휘발성 메모리에 발생하는 메모리의 입출력 횟수를 알 수 있다.
도 8은 본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법의 제2 수행 시간 예측 방법을 도시한 플로우차트이다. 이때, 도 8의 단계(810) 내지 단계(830)는 도 6의 단계(630)에 포함될 수 있다.
단계(810)에서 오버헤드 결정부(410)는 휘발성 메모리(110)의 접근 속도와 비휘발성 메모리(120)의 접근 속도의 차이에 기초하여 비휘발성 메모리(120)의 접근 시간 오버헤드를 결정할 수 있다.
단계(820)에서 입출력 트레이스 적용부(420)는 단계(810)에서 결정한 비휘발성 메모리의 접근 시간 오버헤드에 단계(620)에서 추출한 비휘발성 메모리의 입출력 트레이스를 적용할 수 있다.
단계(830)에서 제2 수행 시간 예측부(430)는 단계(820)에서 입출력 트레이스가 적용된 오버헤드와 단계(610)에서 측정한 제1 수행 시간을 이용하여 제2 수행 시간을 예측할 수 있다.
본 발명은 휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간과 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간을 예측함으로써, 소프트웨어의 수행 시간을 빠르게 예측할 수 있다. 또한, 본 발명은 비휘발성 메모리의 입출력 트레이스 중에서 캐시에 캐싱된 데이터와 관련된 입출력 트레이스를 제외함으로써, 실제 메모리에서 발생하는 입출력 횟수를 식별할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 소프트웨어의 수행 시간 예측 장치
110: 휘발성 메모리
120: 비휘발성 메모리
210: 제1 수행 시간 측정부
220: 입출력 트레이스 추출부
230: 제2 수행 시간 예측부

Claims (8)

  1. 소프트웨어의 수행 시간 예측 장치가 수행하는 소프트웨어의 수행 시간 예측 방법에 있어서,
    휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 단계;
    가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및
    상기 휘발성 메모리의 접근 속도와 비휘발성 메모리의 접근 속도의 차이와, 상기 측정한 제1 수행 시간 및, 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 단계
    를 포함하는 소프트웨어의 수행 시간 예측 방법.
  2. 제1항에 있어서,
    상기 비휘발성 메모리의 입출력 트레이스를 추출하는 단계는,
    소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 단계; 및
    상기 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 단계
    를 포함하는 소프트웨어의 수행 시간 예측 방법.
  3. 제1항에 있어서,
    상기 비휘발성 메모리의 입출력 트레이스를 추출하는 단계는,
    소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및
    추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 단계
    를 포함하는 소프트웨어의 수행 시간 예측 방법.
  4. 제1항에 있어서,
    상기 제2 수행 시간을 예측하는 단계는,
    상기 휘발성 메모리의 접근 속도와 상기 비휘발성 메모리의 접근 속도의 차이에 기초하여 상기 비휘발성 메모리의 접근 시간 오버헤드를 결정하는 단계;
    상기 비휘발성 메모리의 접근 시간 오버헤드에 상기 비휘발성 메모리의 입출력 트레이스를 적용하는 단계; 및
    입출력 트레이스가 적용된 오버헤드와 상기 제1 수행 시간을 이용하여 제2 수행 시간을 예측하는 단계
    를 포함하는 소프트웨어의 수행 시간 예측 방법.
  5. 휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 제1 수행 시간 측정부;
    가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 입출력 트레이스 추출부; 및
    상기 휘발성 메모리의 접근 속도와 비휘발성 메모리의 접근 속도의 차이와, 상기 측정한 제1 수행 시간, 및 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 제2 수행 시간 예측부
    를 포함하는 소프트웨어의 수행 시간 예측 장치.
  6. 제5항에 있어서,
    상기 입출력 트레이스 추출부는,
    소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 캐시의 입출력 트레이스 제거부; 및
    상기 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 비휘발성 메모리의 입출력 트레이스 추출부
    를 포함하는 소프트웨어의 수행 시간 예측 장치.
  7. 제5항에 있어서,
    상기 입출력 트레이스 추출부는,
    소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 비휘발성 메모리의 입출력 트레이스 추출부; 및
    추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 캐시의 입출력 트레이스 제거부
    를 포함하는 소프트웨어의 수행 시간 예측 장치.
  8. 제5항에 있어서,
    상기 제2 수행 시간 예측부는,
    상기 휘발성 메모리의 접근 속도와 상기 비휘발성 메모리의 접근 속도의 차이에 기초하여 상기 비휘발성 메모리의 접근 시간 오버헤드를 결정하는 오버헤드 결정부;
    상기 비휘발성 메모리의 접근 시간 오버헤드에 상기 비휘발성 메모리의 입출력 트레이스를 적용하는 입출력 트레이스 적용부; 및
    입출력 트레이스가 적용된 오버헤드와 상기 제1 수행 시간을 이용하여 제2 수행 시간을 예측하는 제2 수행 시간 예측부
    를 포함하는 소프트웨어의 수행 시간 예측 장치.
KR1020140119624A 2014-04-24 2014-09-10 소프트웨어의 수행 시간 예측 장치 및 방법 KR101620716B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140049567 2014-04-24
KR1020140049567 2014-04-24

Publications (2)

Publication Number Publication Date
KR20150123135A KR20150123135A (ko) 2015-11-03
KR101620716B1 true KR101620716B1 (ko) 2016-05-12

Family

ID=54599248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140119624A KR101620716B1 (ko) 2014-04-24 2014-09-10 소프트웨어의 수행 시간 예측 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101620716B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190002412A (ko) * 2016-03-31 2019-01-08 한양대학교 산학협력단 쿼리 입출력 트레이스의 수행시간을 예측을 통한 ssd 성능 평가 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092692A (ja) * 1999-09-17 2001-04-06 Nec Corp 時間測定回路及び時間測定方法
JP2002091784A (ja) * 2000-09-14 2002-03-29 Toshiba Corp Java言語を用いた制御装置
JP2012089104A (ja) 2010-09-22 2012-05-10 Internatl Business Mach Corp <Ibm> プログラムの動作推測方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092692A (ja) * 1999-09-17 2001-04-06 Nec Corp 時間測定回路及び時間測定方法
JP2002091784A (ja) * 2000-09-14 2002-03-29 Toshiba Corp Java言語を用いた制御装置
JP2012089104A (ja) 2010-09-22 2012-05-10 Internatl Business Mach Corp <Ibm> プログラムの動作推測方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190002412A (ko) * 2016-03-31 2019-01-08 한양대학교 산학협력단 쿼리 입출력 트레이스의 수행시간을 예측을 통한 ssd 성능 평가 장치 및 방법
KR102249832B1 (ko) 2016-03-31 2021-05-10 한양대학교 산학협력단 쿼리 입출력 트레이스의 수행시간을 결정짓는 특징 추출 방법 및 장치

Also Published As

Publication number Publication date
KR20150123135A (ko) 2015-11-03

Similar Documents

Publication Publication Date Title
US11010505B2 (en) Simulation of virtual processors
US8645950B2 (en) Virtual machine image analysis
US20130055250A1 (en) Performance benchmarking in virtual machines
US10212058B2 (en) System and method for detecting system&#39;s performance regression
US9710289B2 (en) Rapid configuration of software
CN107436834A (zh) 估算处理器功耗的方法、产品及系统
US9684747B2 (en) Parameter modeling for semiconductor arrangements
CN115686961A (zh) 处理器测试方法、装置及电子设备
KR101620716B1 (ko) 소프트웨어의 수행 시간 예측 장치 및 방법
TW201820198A (zh) 檢測系統及檢測方法
JP5040625B2 (ja) Lsiの電力見積方法及びその装置
US20170199761A1 (en) Apparatus and method to correct an execution time of a program executed by a virtual machine
US10552173B2 (en) Methods and apparatus to configure parameters of a high-speed input-output interface
US9239770B2 (en) Apparatus and method for extracting restriction condition
JP2012128771A (ja) 情報処理装置及びプログラム
CN109063340B (zh) 基于仿真的gpu性能的测试方法及装置
JP5454349B2 (ja) 性能推定装置
JP2018189638A5 (ko)
CN104239199A (zh) 虚拟机器人的生成方法、自动化测试方法及相关装置
CN109271288B (zh) 处理器硅前性能评估方法
JPWO2018150505A1 (ja) 規模算出装置及び規模算出プログラム
JP5906844B2 (ja) コンピュータパラメータのチューニングプログラム、方法、及び装置
WO2021038636A1 (ja) 検証装置、検証方法、及び、検証プログラム
CN107038109B (zh) 基于mips架构的中断延迟测试方法及装置
JP2005208762A5 (ko)

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
LAPS Lapse due to unpaid annual fee