실시간시스템
실시간시스템
wcet analysis
$\tau_i = (p_i, e_i)$
How do we know p, e
p => physical demand e => not constant
왜 분석 방법인가
Measurement: 상대적으로 정확하다, 코드가 구현되 어야 한다(not early design stage), 최악을 보장하지 않는다
Analysis: WCET
어떤걸 고려해야 하는가
- 장치 임베디드는 큼, 조건에 맞는 최소 사양을 보통 선택, RISC => no cache
- 소프트웨어 c++ / assembly
- 추가 정보 optimize execution path so that guarantee worst execution path
기본 분석 방법
block: no branch sequential execution
블럭은 사이클이 정해져 있어서 실행 시간을 정할 수 있음
Timing Schema
S:S_1:S_2
S:if(exp) then S_1 else S_2
S:while(exp)S_1
bottom up analysis
Pipelined architecture
기본 방법을 적용 가능하나, 파이프라인의 이점을 잃어버림
bottom up concatenation
reservation table 생성 후 블럭간 오버래핑
문제: longest worst case execution time이 overlapping 되며 worst가 아닐 수 있음 => 모든 path를 전부 고려해야 함
Revised Timing Shcema S:S_1:S_2 => W(S) = W(S_1) \union W(S_2) S:if S:while => 현실적으로 사용할 수 없음, set이 지수적으로 증가
오버랩 가능한 head, tail만 저장 => Abstracted Reservation Table
가지치기, 절대 worst case가 될 수 없는것 제거 => worst case of w1 < best case of w2 이면 w1 제거 가능
Instruction Cache Effect
preceding execution path를 사용해 cache miss/hit을 분석, 모르면 miss로
first referece와 last reference를 기억하고, 오버랩