KR101620716B1 - 소프트웨어의 수행 시간 예측 장치 및 방법 - Google Patents
소프트웨어의 수행 시간 예측 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime 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 수행 시간을 예측하는 단계를 포함할 수 있다.
소프트웨어의 수행 시간 예측 방법은 휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 단계; 가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및 상기 측정한 제1 수행 시간과, 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 단계를 포함할 수 있다.
Description
본 발명은 소프트웨어의 수행 시간 예측 장치 및 방법에 관한 것으로, 보다 상세하게는 신규 개발하는 비휘발성 메모리의 예상 스펙에 따른 소프트웨어의 수행 시간을 예측하는 장치 및 방법에 관한 것이다.
신규 개발하는 비휘발성 메모리의 스펙을 결정하기 위해서는 신규 개발하는 비휘발성 메모리의 예상 스펙에 따른 다양한 소프트웨어들의 수행 시간을 예측하는 기술이 필요하다.
종래의 소프트웨어의 수행 시간을 예측하는 방법은 타겟 하드웨어 환경을 시뮬레이터로 구현하여 소프트웨어의 수행 시간을 예측하고 있었다. 그러나, 종래의 소프트웨어의 수행 시간을 예측하는 방법에서 사용하는 시뮬레이터는 메모리 입출력 트레이스와 입출력 타이밍을 모두 요구하고 있으므로, 수행 시간을 예측하기 위하여 많은 시간이 소요되는 실정이다.
따라서, 소프트웨어의 수행 시간을 예측하는 시간을 단축할 수 있는 방법이 요청되고 있다.
본 발명은 휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간과 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 수행 시간을 예측하는 장치 및 방법을 제공할 수 있다.
또한, 본 발명은 비휘발성 메모리의 입출력 트레이스 중에서 캐시에 캐싱된 데이터와 관련된 입출력 트레이스를 제외함으로써, 실제 메모리에서 발생하는 입출력 횟수를 식별하는 장치 및 방법을 제공할 수 있다.
본 발명의 일실시예에 따른 소프트웨어의 수행 시간 예측 방법은 휘발성 메모리에서 소프트웨어를 수행하였을 때의 제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 수행 시간 예측 방법을 도시한 플로우차트이다.
도 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 수행 시간 예측부
110: 휘발성 메모리
120: 비휘발성 메모리
210: 제1 수행 시간 측정부
220: 입출력 트레이스 추출부
230: 제2 수행 시간 예측부
Claims (8)
- 소프트웨어의 수행 시간 예측 장치가 수행하는 소프트웨어의 수행 시간 예측 방법에 있어서,
휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 단계;
가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및
상기 휘발성 메모리의 접근 속도와 비휘발성 메모리의 접근 속도의 차이와, 상기 측정한 제1 수행 시간 및, 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 단계
를 포함하는 소프트웨어의 수행 시간 예측 방법. - 제1항에 있어서,
상기 비휘발성 메모리의 입출력 트레이스를 추출하는 단계는,
소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 단계; 및
상기 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 단계
를 포함하는 소프트웨어의 수행 시간 예측 방법. - 제1항에 있어서,
상기 비휘발성 메모리의 입출력 트레이스를 추출하는 단계는,
소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 단계; 및
추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 단계
를 포함하는 소프트웨어의 수행 시간 예측 방법. - 제1항에 있어서,
상기 제2 수행 시간을 예측하는 단계는,
상기 휘발성 메모리의 접근 속도와 상기 비휘발성 메모리의 접근 속도의 차이에 기초하여 상기 비휘발성 메모리의 접근 시간 오버헤드를 결정하는 단계;
상기 비휘발성 메모리의 접근 시간 오버헤드에 상기 비휘발성 메모리의 입출력 트레이스를 적용하는 단계; 및
입출력 트레이스가 적용된 오버헤드와 상기 제1 수행 시간을 이용하여 제2 수행 시간을 예측하는 단계
를 포함하는 소프트웨어의 수행 시간 예측 방법. - 휘발성 메모리에서 소프트웨어를 수행하였을 때의 제1 수행 시간을 측정하는 제1 수행 시간 측정부;
가상 머신에서 소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중에서 비휘발성 메모리의 입출력 트레이스를 추출하는 입출력 트레이스 추출부; 및
상기 휘발성 메모리의 접근 속도와 비휘발성 메모리의 접근 속도의 차이와, 상기 측정한 제1 수행 시간, 및 비휘발성 메모리의 입출력 트레이스를 이용하여 비휘발성 메모리에서 소프트웨어를 수행하였을 때의 제2 수행 시간을 예측하는 제2 수행 시간 예측부
를 포함하는 소프트웨어의 수행 시간 예측 장치. - 제5항에 있어서,
상기 입출력 트레이스 추출부는,
소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 캐시의 입출력 트레이스 제거부; 및
상기 캐시의 입출력 트레이스를 제외한 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 비휘발성 메모리의 입출력 트레이스 추출부
를 포함하는 소프트웨어의 수행 시간 예측 장치. - 제5항에 있어서,
상기 입출력 트레이스 추출부는,
소프트웨어를 수행하였을 때 발생되는 입출력 트레이스 중 비휘발성 메모리의 입출력 트레이스를 추출하는 비휘발성 메모리의 입출력 트레이스 추출부; 및
추출한 비휘발성 메모리의 입출력 트레이스 중 캐시의 입출력 트레이스를 제거하는 캐시의 입출력 트레이스 제거부
를 포함하는 소프트웨어의 수행 시간 예측 장치. - 제5항에 있어서,
상기 제2 수행 시간 예측부는,
상기 휘발성 메모리의 접근 속도와 상기 비휘발성 메모리의 접근 속도의 차이에 기초하여 상기 비휘발성 메모리의 접근 시간 오버헤드를 결정하는 오버헤드 결정부;
상기 비휘발성 메모리의 접근 시간 오버헤드에 상기 비휘발성 메모리의 입출력 트레이스를 적용하는 입출력 트레이스 적용부; 및
입출력 트레이스가 적용된 오버헤드와 상기 제1 수행 시간을 이용하여 제2 수행 시간을 예측하는 제2 수행 시간 예측부
를 포함하는 소프트웨어의 수행 시간 예측 장치.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190002412A (ko) * | 2016-03-31 | 2019-01-08 | 한양대학교 산학협력단 | 쿼리 입출력 트레이스의 수행시간을 예측을 통한 ssd 성능 평가 장치 및 방법 |
Citations (3)
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> | プログラムの動作推測方法及びプログラム |
-
2014
- 2014-09-10 KR KR1020140119624A patent/KR101620716B1/ko not_active IP Right Cessation
Patent Citations (3)
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)
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'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 |