KR20090041996A - Ipet기법을 이용하여 실시간 시스템의 최장수행시간을분석하는 자동화된 도구 및 방법 - Google Patents
Ipet기법을 이용하여 실시간 시스템의 최장수행시간을분석하는 자동화된 도구 및 방법 Download PDFInfo
- Publication number
- KR20090041996A KR20090041996A KR1020070107829A KR20070107829A KR20090041996A KR 20090041996 A KR20090041996 A KR 20090041996A KR 1020070107829 A KR1020070107829 A KR 1020070107829A KR 20070107829 A KR20070107829 A KR 20070107829A KR 20090041996 A KR20090041996 A KR 20090041996A
- Authority
- KR
- South Korea
- Prior art keywords
- ipet
- basic block
- basic
- executions
- execution
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/586—Pseudo-random number generators using an integer algorithm, e.g. using linear congruential method
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (6)
- IPET 기법을 이용하여 실시간 시스템의 최장수행시간을 분석하는 도구로서, 프로그램 언어로 작성된 소스코드(201)를 정적으로 분석하여 프로그램 흐름정보를 추출하고 이를 토대로 수행 가능한 경로 및 최장수행시간을 자동으로 예측하는 최장수행시간 자동분석도구(200)에 있어서,프로그램 언어로 작성된 소스코드(201)를 입력받아서 기본블록(311)들과 상기 기본블록(311)들 사이의 제어전이(transition or edge)(312)들을 파악하여, 상기 기본블록(311)과 상기 제어전이(312)을 플로우그래프 형태로 구성한 ACFG(Annotated Control Flow Graph)(310)를 생성하는 기본프로그램 흐름분석기(210)와;하드웨어의 어셈블리 명령어별 수행시간정보를 명세한 하드웨어명세(320)를 사전에 작성하고, 상기 소스코드(201)를 입력받아 컴파일러(221)를 통해 상기 소스코드(201)와의 추적성을 유지하는 목적코드(330)(어셈블리 명령어로 작성된 코드)를 생성하고, 상기 ACFG(310)의 기본블록(311)들에 해당하는 목적코드(330)들을 찾아 상기 하드웨어명세(320)를 참조하여 상기 기본블록(311)당 수행시간을 계산하고, 그 결과값을 저장하는 수행시간테이블(340)을 생성하는 수행시간분석기(220)와;상기 수행시간테이블(340)과 상기 ACFG(310)를 참조하여 기본블록당 수행시간과 기본블록사이의 의존성에 따른 수행시간 제약사항을 상기 ACFG(310)에 추가한 TCFG(Timed CFG)(350)를 생성하는 프로그램 정보추출기(230);상기 ACFG(310)을 참조하여 각 기본블록에서의 변수들이 가질 수 있는 범위를 파악하여 수행불가능 경로들을 추출하고, 상기 수행불가능 경로들을 BDD(binary decision diagram)로 만들어 논리합을 함으로써 요약된 수행불가능 경로들을 추출 하고, 상기 요약된 수행불가능 경로들로 구성된 흐름제약사항(360)을 생성하는 고급프로그램 흐름분석기(240);상기 TCFG(Timed CFG)(350)로부터 기본블록의 수행횟수에 대한 선형식(flow facts)(이하 IPET 선형식)(370)들을 추출하고, 상기 흐름제약사항(360)에 저장된 수행불가능 경로들을 IPET 선형식(370)들로 자동으로 변환하는 선형식 생성기(250);상기 선형식 생성기(250)에서 생성한 모든 IPET 선형식(370)을 제약조건으로 하고, 상기 TCFG(350)의 모든 기본블록에 대하여 각 기본블록의 수행횟수와 수행시간의 곱의 총합을 목적식으로 하여, 상기 제약조건을 만족하는 상기 목적식의 최대값이 되는 기본블록 수행횟수의 조합을 ILP(Integer linear Programming) 기법을 통해 구하는 IPET 수행기(260);상기 IPET 수행기(260)로부터 구한 각 기본블록의 수행횟수를 이용하여 최장수행경로를 추출하는 최장수행경로 생성기(270);를 포함하는 것을 특징으로 하는 최장수행시간 자동분석도구.
- 제 1 항에 있어서, 상기 고급프로그램 흐름분석기(240)는,상기 변수의 범위를 이용하여 추출된 수행불가능 경로들에 대하여, 상기 ACFG(310)에서 참거짓에 의해 분기하는 모든 기본블록을 단위명제(atomic proposition)들로 정하고,상기 모든 수행불가능 경로들 각각에 대하여, 상기 단위명제로 정한 기본블록을 지나면 해당 단위명제가 참이고 지나지 않으면 거짓으로 하는 논리술어(predicate)로 만듦으로서, 각 수행불가능 경로를 BDD로 만드는 것;을 특징으로 하는 최장수행시간 자동분석도구.
- 제 1 항에 있어서, 상기 선형식 생성기(240)는,상기 TCFG(310)에서 한 기본블록(311)의 수행횟수는 들어오는 제어전이(312)의 수행횟수의 합과 같고, 나가는 제어전이(312)의 수행횟수의 합과 같다는 것으로부터 구해지는 기본 IPET 선형식들을 생성하고;상기 TCFG(310)에서 한 기본블록(311)이 자체적으로 수행횟수를 한정되는 경우 상기 수행횟수를 한정하는 한정 IPET 선형식들을 생성하고;상기 수행불가능 경로들 각각에 대하여, 수행불가능 경로가 기본블록 b1에서 bn까지 차례로 수행되었을 경우 기본블록 c가 수행될 수 없는 경로이라고 하면,기본블록 c에서 기본블록 bn이 도달 불가능하고, (b1,b2)(b2,b3) ... (bn-1,bn)들이 지배(dominance)관계가 성립할 경우,( V(z)는 기본블록 z의 수행횟수의 한계, Xz 는 z의 수행횟수)과 같은 형태로 변환하는 기능적 IPET 선형식들을 생성하는 것;을 특징으로 하는 최장수행시간 자동분석도구.
- 제 1 항에 있어서, 상기 최장수행시간 자동분석도구(240)는,상기 IPET 수행기(260)로부터 구한 각 기본블록의 수행횟수를 검증하는 체킹코드를 소스코드(201)에 추가삽입하여 모델체킹(model checking)기법으로 수행가능여부를 검사하고;수행이 불가능하면 상기 체킹코드의 체킹사항을 IPET 선형식(370)으로 변환하여 상기 IPET 선형식들에 새롭게 추가하고;상기 IPET 수행기(260)를 통해 다시 최장수행경로를 구하도록 하는;수행가능성 판별기(280)를 더 포함하는 것을 특징으로 하는 최장수행시간 자동분석도구.
- 제 4 항에 있어서, 상기 수행가능성 판별기(280)는,일부 기본블록들의 수행횟수를 알면 나머지 모든 기본블록의 수행횟수를 알 수 있는 상기 일부 기본블록들의 집합인 핵심집합(dominant set)을 구하고;상기의 핵심집합의 각 기본블록의 수행횟수에 대하여, 수행횟수를 카운트하는 변수를 삽입하고 상기 변수가 수행횟수에 도달하는지 확인하는 체킹코드를 삽입하여, 상기 모델체킹기법에 의해 수행불가능하다는 판단이 되면 상기 기본블록의 수행횟수가 상기 수행횟수보다 적다는 IPET 선형식을 새롭게 추가하고,상기의 핵심집합의 기본블록들의 모든 짝들의 각각에 대하여, 하나의 기본블록의 수행횟수가 p 이고 또 다른 하나의 기본블록 수행횟수가 q 이면, 상기 짝의 기본블록들의 합이 p + q 와 같은지를 확인하는 체킹코드를 삽입하여, 상기 모델체킹기법에 의해 수행불가능하다는 판단이 되면 상기 기본블록들의 짝의 합이 p + q 보다 작다는 IPET 선형식을 추가하고;기본블록들의 수행횟수에 관한 상기 수행가능성 검사와 새로운 IPET 선형식의 추출하는 과정과 다시 최장수행경로를 구하는 과정을 더 이상 새로운 IPET 선형식을 추출되지 않거나 더 이상 계산이 실질적으로 불가능할 때까지 반복적으로 수행하는 것;을 특징으로 하는 하는 최장수행시간 자동분석도구.
- IPET 기법을 이용하여 실시간 시스템의 최장수행시간을 분석하는 방법으로서, 프로그램언어로 작성된 소스코드(201)를 정적으로 분석하여 프로그램 흐름정보를 추출하고 이를 토대로 수행 가능한 경로 및 최장수행시간을 자동으로 예측하는 최장수행시간 자동분석방법에 있어서,프로그램언어로 작성된 소스코드(201)를 입력받아서 기본블록(311)들과 상기 기본블록(311)들 사이의 제어전이(312)들을 파악하여, 상기 기본블록(311)과 상기 제어전이(312)을 플로우그래프 형태로 구성한 ACFG(Annotated Control Flow Graph)(310)를 생성하는 기본프로그램 흐름분석단계(S510)와;하드웨어의 어셈블리 명령어별 수행시간정보를 명세한 하드웨어명세(320)를 사전에 작성하고, 상기 소스코드(201)를 입력받아 컴파일러(221)를 통해 상기 소스코드(201)와의 추적성을 유지하는 목적코드(330)(어셈블리 명령어로 작성된 코드)를 생성하고, 상기 ACFG(310)의 기본블록(311)들에 해당하는 목적코드(330)들을 찾아 상기 하드웨어명세(320)를 참조하여 상기 기본블록(311)당 수행시간을 계산하고, 그 결과값을 저장하는 수행시간테이블(340)을 생성하는 수행시간분석단계(S520);상기 수행시간테이블(340)과 상기 ACFG(310)를 참조하여 기본블록당 수행시간과 기본블록사이의 의존성에 따른 수행시간 제약사항을 상기 ACFG(310)에 추가한 TCFG(Timed CFG)(350)를 생성하는 프로그램 정보추출단계(S530);상기 ACFG(310)을 참조하여 각 기본블록에서의 변수들이 가질 수 있는 범위를 파악하여 수행불가능 경로들을 추출하고, 상기 수행불가능 경로들을 BDD(binary decision diagram)로 만들어 논리합을 함으로써 요약된 수행불가능 경로들을 추출하고, 상기 요약된 수행불가능 경로들로 구성된 흐름제약사항(360)을 생성하는 고급프로그램 흐름분석단계(S540);상기 TCFG(Timed CFG)(350)로부터 기본블록의 수행횟수에 대한 선형식(flow facts)(이하 IPET 선형식)(370)들을 추출하고, 상기 흐름제약사항(360)에 저장된 수행불가능 경로들을 IPET 선형식(370)들로 자동으로 변환하는 선형식 생성단계(S550);상기 선형식 생성기(250)에서 생성한 모든 IPET 선형식(370)을 제약조건으로 하고, 상기 TCFG(350)의 모든 기본블록에 대하여 각 기본블록의 수행횟수와 수행시간의 곱의 총합을 목적식으로 하여, 상기 제약조건을 만족하는 상기 목적식의 최대값이 되는 기본블록 수행횟수의 조합을 ILP(Integer linear Programming) 기법을 통해 구하는 IPET 수행단계(S560);상기 IPET 수행기(260)로부터 구한 각 기본블록의 수행횟수를 이용하여 최장수행경로를 추출하는 최장수행경로 생성단계(S570);상기 최장수행경로의 각 기본블록의 수행횟수를 검증하는 체킹코드를 소스코드(201)에 추가삽입하여 모델체킹(model checking)기법으로 수행가능여부를 검사하고, 수행이 불가능하면 상기 체킹코드의 체킹사항을 IPET 선형식(370)으로 변환하여 상기 IPET 선형식들에 새롭게 추가하여, 상기 IPET 수행단계(S560)를 다시 반복하는 수행가능성 판별단계(S580);를 포함하는 것을 특징으로 하는 최장수행시간 자동분석방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070107829A KR100938489B1 (ko) | 2007-10-25 | 2007-10-25 | Ipet기법을 이용하여 실시간 시스템의 최장수행시간을분석하는 자동화된 도구 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070107829A KR100938489B1 (ko) | 2007-10-25 | 2007-10-25 | Ipet기법을 이용하여 실시간 시스템의 최장수행시간을분석하는 자동화된 도구 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090041996A true KR20090041996A (ko) | 2009-04-29 |
KR100938489B1 KR100938489B1 (ko) | 2010-01-28 |
Family
ID=40764923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070107829A KR100938489B1 (ko) | 2007-10-25 | 2007-10-25 | Ipet기법을 이용하여 실시간 시스템의 최장수행시간을분석하는 자동화된 도구 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100938489B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200132460A (ko) * | 2019-05-17 | 2020-11-25 | 삼성에스디에스 주식회사 | 프로그램 분석 방법 및 그 시스템 |
CN112307485A (zh) * | 2020-11-09 | 2021-02-02 | 浙江大学 | 一种面向跨架构漏洞挖掘的符号执行引擎优化方法 |
CN116069602A (zh) * | 2022-11-30 | 2023-05-05 | 西部科学城智能网联汽车创新中心(重庆)有限公司 | 一种最坏情况执行时间分析方法和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130088285A (ko) * | 2012-01-31 | 2013-08-08 | 삼성전자주식회사 | 데이터 처리 시스템 및 그 시스템에서 데이터 시뮬레이션 방법 |
WO2021137601A1 (ko) * | 2019-12-30 | 2021-07-08 | 매니코어소프트주식회사 | 강화 학습 기반의 프로그램 최적화 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7886283B2 (en) | 2004-09-17 | 2011-02-08 | The Regents Of The University Of California | Phantom serializing compiler and method of operation of same |
KR100575582B1 (ko) | 2004-12-20 | 2006-05-03 | 한국전자통신연구원 | 분산 실시간 임베디드 소프트웨어를 위한 정적 실시간성분석 장치 및 그 방법 |
-
2007
- 2007-10-25 KR KR1020070107829A patent/KR100938489B1/ko active IP Right Grant
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200132460A (ko) * | 2019-05-17 | 2020-11-25 | 삼성에스디에스 주식회사 | 프로그램 분석 방법 및 그 시스템 |
CN112307485A (zh) * | 2020-11-09 | 2021-02-02 | 浙江大学 | 一种面向跨架构漏洞挖掘的符号执行引擎优化方法 |
CN112307485B (zh) * | 2020-11-09 | 2024-03-26 | 浙江大学 | 一种面向跨架构漏洞挖掘的符号执行引擎优化方法 |
CN116069602A (zh) * | 2022-11-30 | 2023-05-05 | 西部科学城智能网联汽车创新中心(重庆)有限公司 | 一种最坏情况执行时间分析方法和装置 |
CN116069602B (zh) * | 2022-11-30 | 2024-03-12 | 西部科学城智能网联汽车创新中心(重庆)有限公司 | 一种最坏情况执行时间分析方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR100938489B1 (ko) | 2010-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee et al. | Compass: A framework for automated performance modeling and prediction | |
US6996517B1 (en) | Performance technology infrastructure for modeling the performance of computer systems | |
Ermedahl | A modular tool architecture for worst-case execution time analysis | |
JP2022062060A (ja) | リアルタイムデータフロープログラミング言語のためのツールおよび方法 | |
Wolf | Behavioral intervals in embedded software: timing and power analysis of embedded real-time software processes | |
KR20090071596A (ko) | 모델 검사를 병용하기 위한 전이 시스템 생성 방법 | |
Couto et al. | Products go green: Worst-case energy consumption in software product lines | |
KR101788279B1 (ko) | 테스트 기법을 이용한 최악 실행 시간 측정 시스템 및 방법 | |
KR100938489B1 (ko) | Ipet기법을 이용하여 실시간 시스템의 최장수행시간을분석하는 자동화된 도구 및 방법 | |
Gheyi et al. | Automatically Checking Feature Model Refactorings. | |
Copik et al. | Extracting clean performance models from tainted programs | |
Eismann et al. | Modeling of parametric dependencies for performance prediction of component-based software systems at run-time | |
Sottile et al. | Semi-automatic extraction of software skeletons for benchmarking large-scale parallel applications | |
Sharma et al. | Performance evaluation of real-time systems | |
Carlsson et al. | Worst-case execution time analysis of disable interrupt regions in a commercial real-time operating system | |
Huybrechts et al. | COBRA-HPA: a block generating tool to perform hybrid program analysis | |
Knorreck | UML-based design space exploration, fast simulation and static analysis | |
Sottile et al. | Static analysis techniques for semiautomatic synthesis of message passing software skeletons | |
He et al. | Mining of probabilistic controlling behavior model from dynamic software execution trace | |
Maiza et al. | The W-SEPT project: Towards semantic-aware WCET estimation | |
Popeea et al. | A practical and precise inference and specializer for array bound checks elimination | |
Wang et al. | Verification of workflow nets with transition conditions | |
Gilles et al. | Validating requirements at model-level | |
Angerer et al. | An experiment comparing lifted and delayed variability-aware program analysis | |
Yildiz et al. | A model-derivation framework for software analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130104 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140108 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150105 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160122 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170111 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20171228 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20191223 Year of fee payment: 11 |