저작자표시 공연 및 방송할 수...

44
저작자표시-동일조건변경허락 2.0 대한민국 이용자는 아래의 조건을 따르는 경우에 한하여 자유롭게 l 이 저작물을 복제, 배포, 전송, 전시, 공연 및 방송할 수 있습니다. l 이차적 저작물을 작성할 수 있습니다. l 이 저작물을 영리 목적으로 이용할 수 있습니다. 다음과 같은 조건을 따라야 합니다: l 귀하는, 이 저작물의 재이용이나 배포의 경우, 이 저작물에 적용된 이용허락조건 을 명확하게 나타내어야 합니다. l 저작권자로부터 별도의 허가를 받으면 이러한 조건들은 적용되지 않습니다. 저작권법에 따른 이용자의 권리는 위의 내용에 의하여 영향을 받지 않습니다. 이것은 이용허락규약 ( Legal Code) 을 이해하기 쉽게 요약한 것입니다. Disclaimer 저작자표시. 귀하는 원저작자를 표시하여야 합니다. 동일조건변경허락. 귀하가 이 저작물을 개작, 변형 또는 가공했을 경우 에는, 이 저작물과 동일한 이용허락조건하에서만 배포할 수 있습니다.

Transcript of 저작자표시 공연 및 방송할 수...

Page 1: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

저 시-동 조건 경허락 2.0 한민

는 아래 조건 르는 경 에 한하여 게

l 저 물 복제, 포, 전송, 전시, 공연 송할 수 습니다.

l 차적 저 물 성할 수 습니다.

l 저 물 리 적 할 수 습니다.

다 과 같 조건 라야 합니다:

l 하는, 저 물 나 포 경 , 저 물에 적 허락조건 확하게 나타내어야 합니다.

l 저 터 허가를 러한 조건들 적 지 않습니다.

저 에 른 리는 내 에 하여 향 지 않습니다.

것 허락규약(Legal Code) 해하 쉽게 약한 것 니다.

Disclaimer

저 시. 하는 원저 를 시하여야 합니다.

동 조건 경허락. 하가 저 물 개 , 형 또는 가공했 경에는, 저 물과 동 한 허락조건하에서만 포할 수 습니다.

Page 2: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

공 사 논

다 주 시뮬링크 모델에

고 우 스 쥴링

Fixed-priority Scheduling for

Multirate Simulink Models

2014 2 월

울 원

·컴퓨 공 부

Page 3: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

원 : 하 순 회 ( )

부 원 : 창 건 ( )

원 : 래 혁 ( )

다 주 시뮬링크 모델에

고 우 스 쥴링

Fixed-priority Scheduling for Multirate Simulink Models

지도 이 창 건

이 논 공 사 논 출함

2014 1 월

울 원

·컴퓨 공 부

연 사 논 인 함

2013 12 월

Page 4: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

i

요약

시뮬링크(Simulink)는 산업계에 가장 리 쓰이고 있는 모델

계 시뮬 이 도구이다. 특히 자동차 산업과 항공 산업

에 각종 자 어장 (Electronic Control Unit)를 계 는데 시

뮬링크 도구를 리 사용 고 있다. 시뮬링크 모델 임베 드

(Embedded Coder) 그램에 해 실 드웨어에 행가능

C/C++ 드 변 다. 각 시뮬링크 들 고 주 를

가지는 주 태스크 게 고 RM(Rate Monotonic) 스 쥴

링 법 행 다. 이 과 에 시뮬 이 행태 실 드웨

어 행 행태가 달라지게 다.

본 논 에 는 각 마다 다른 주 를 가지는 시뮬링크 모델

시뮬 이 과 가 게 고 우 스 쥴링 는 법

다. 시뮬링크 모델 각각 존 계를 여

DAG(Directed Acyclic Graph) 모델 꾼다. 그리고 각

존 계를 고 여 고 우 를 가지는 주 태스크 모

델 변 다. , 그러 법 에 스 쥴링 법 찾

내는 법 다.

법 용함 써, 다양 주 를 가지는 시뮬링크 모델

시뮬 이 규 실 드웨어 실행에 도 같이 용

있다. 이 써 시뮬링크 모델 시뮬 이 결과 실 드웨어 동

작 결과 차이를 이고 시뮬링크 모델 검증 단계에 시간과

Page 5: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

ii

용 낄 있다.

주요어 : 시뮬링크, 고 우 , 주 태스크

번 : 2012-20809

Page 6: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

iii

목차

요약 i

목차 iii

그림 목차 v

1 장 1

1.1 연구 경 1

1.2 연구 내용 3

1.3 본 구 5

2 장 연구 6

2.1 버퍼링 6

2.2 주 변 9

3 장 시뮬링크 모델 11

3.1 시뮬링크 모델 11

3.2 시뮬 이 13

3.3 드 생 실행 15

3.4 시뮬 이 과 드웨어 동작간 차이 17

Page 7: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

iv

4 장 시뮬 이 규 만족시키는 고 우 19

4.1 용어, 가 조건 19

4.2 시뮬 이 규 20

4.3 시뮬 이 규 르는 고 우 24

5 장 고 우 26

5.1 고 우 26

5.2 증명 29

6 장 결 향후과 31

6.1 결 31

6.2 향후 과 32

참고 헌 33

Page 8: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

v

그림 목차

그림 1 데이 결 (Data Integrity) 깨짐 ....................................... 6

그림 2 데이 결 보장 버퍼링.......................................... 7

그림 3 주 변 ........................................................................... 9

그림 4 주 변 이 요 경우 요 지 경우 ........... 10

그림 5 자동차 엔진 어 시뮬링크 모델 .......................................... 11

그림 6 시뮬 이 결과 그래 ........................................................ 13

그림 7 시뮬 이 행 행태 ........................................................... 14

그림 8 드웨어에 행 행태 .................................................... 15

그림 9 시뮬 이 과 드웨어 행과 차이 ................................. 17

그림 10 만족 어 운 시뮬 이 규 ...................................... 20

그림 11 시뮬 이 규 만족 는 경우 ...................................... 22

그림 12 나 이상 우 법 ........................................ 24

그림 13 소 주 과 부모 집합(PS) .............................. 27

그림 14 다 소주 과 부모 집합 ............................... 28

그림 15 임 우 우 변 ..................... 29

Page 9: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

1 장

1.1 연구 경

시뮬링크는 산업계에 가장 리 쓰이고 있는 모델 계

시뮬 이 도구이다. 공 , 과 , , 등

분야에 연구 개 목 사용 고 있 면 계

100 만명 이상 연구원들이 사용 고 있다. 특히 자동차 산업과

항공 산업에 각종 자 어장 (Electronic Control Unit)를

계 는데 시뮬링크 도구를 리 사용 고 있다.

시뮬링크 모델 개 과 크게 모델 자인, 모델

시뮬 이 , 자동 드 생 , HiLS(Hardware-in-the-Loop

Simulation) 단계 나 어 있다. 첫째, 개 자는 주어진

시뮬링크 집합 이용해 체 모델 계 다. 째,

개 용 PC 에 시뮬링크 모델 시뮬 이 해보고 모델

다. 째, 시뮬링크 자동 드 생 능 이용해

C/C++ 드를 생 다. 째, 생 C/C++ 드를 실

드웨어에 탑재해 시뮬 이 검증 다.

시뮬링크 모델 개 과 PC 에 시뮬 이

결과 실 드웨어에 동작이 다를 있다는 이다.

시뮬 이 에 는 각 실 실행시간이나 신 달시간

Page 10: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

고 지 고(Zero-execution time semantics) 각 들

차 실행 여 그 결과를 보여 다. 면에 실

구 에 는 들 여러 개 주 태스크 변 여

실행 고 각 태스크를 행 는데 시간이 걸리 에 그 행

행태가 많이 달라지게 다. 실 구 에 쓰는 RM

스 쥴링 식 간 존 계를 시 고 주

스 쥴링 에 시간 인 행태가 욱 달라질 있다.

이에 본 논 에 는 를 해결 해 시뮬링크 모델

구 에 도 시뮬 이 과 같 행 행태를 보이도 는

법 다.

Page 11: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

1.2 연구 내용

시뮬링크 모델 각 고 주 (Sample Time)를

가지고 있 며, 사이에는 신 를 통해 데이 를 주고

는다. 모델 시뮬 이 단계에 는 존 계에 라 체

일 해 놓고 각 본 주 (Base Rate)마다

해당 는 행함 써 시뮬 이 결과를 이 어 낸다.

이 과 실 행시간이나 신 달 시간

시 고(Zero-execution time semantics) 가상 시간상에

이루어지게 다.

모델 시뮬 이 단계 이후에는 자동 드 변 과 거 게

는데 이 과 에 각 시뮬링크 들 고 우 를

가지는 주 태스크 모델 변 다. 각 시뮬링크

원래 주 (Sample Time) 같 주 를 가지게 며,

내부 는 RM(Rate Monotonic) 스 쥴링 법

동작 게 다[1,2,3].

RM 스 쥴링 법 각 태스크 우 를 각 태스크

주 가 짧 는 법이다. RM 스 쥴링 각

태스크 존 계를 시 에 존 계

행 는 시뮬 이 결과 다른 행태를 보일 있다. 종단

간 지연시간(End-to-end Delay)이 어지게 고, 태스크

Page 12: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

간 효과 인해 데이 결 이 깨질 도 있다.

그럼 써 체 시스 분 검증이 힘들어진다.

이런 를 해결 해 본 논 에 는 각 간

존 계를 우 를 는 법 다.

시뮬링크 모델 각각 존 계를 여 DAG(Directed

Acyclic Graph) 모델 꾼다. 그리고 각 노드 존 계

주 를 고 우 를 가지는 주 태스크 모델

꾼다. 이 존 계를 우 를 에

데이 를 는 보내는 과 는 실행 가 뒤 지

고, 종단 간 지연(End-to-end Delay)도 소 있다.

이 써 시뮬링크 모델 시뮬 이 결과 실 드웨어

행결과 차이를 일 있다. 그러므 시뮬링크 모델

개 과 검증에 걸리는 시간과 노 낄 있다.

Page 13: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

1.3 본 구

본 논 다 과 같이 구 어 있다. 2 장에 는 시뮬링크

모델에 존 연구 그 계를 명 고, 이 논 여에

해 다. 3 장에 는 시뮬링크 모델 시뮬 이 과 존

구 에 해 명 고 그 분 다. 4 장에 는

시뮬 이 규 만족시키는 고 우 법

다. 5 장에 는 고 우 법과 그

스 쥴링에 해 명 고 마지막 6 장에 는 결 짓고

후속연구를 함 써 본 논 마 리 다.

Page 14: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

2 장 연구

2.1 버퍼링

시뮬링크 모델 각 들 각각 본 주 (Base Rate)

가 는 주 를 가지고 있다. 시뮬 이 단계에 는

모든 들이 실행시간 고 없이(Zero-execution Time

Semantics) 차 실행 지만 실 드웨어 구

단계에 는 다양 주 를 가지는 주 태스크 모델

변 어 실행 다.

그림 1 데이 결 (Data Integrity) 깨짐

Page 15: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

태스크들이 다른 주 를 가지고 실행 써 데이

결 (Data Integrity) 가 생 게 다. 를 들어

시뮬링크 1 과 2 가 있고, 1 주 (Period)는 1,

2 주 는 2 라고 자[그림 1]. 1 A 값 쓰고,

2 는 A 값 읽는다. 주 가 2 는 1 에 해

당 고 그 사이에 1 이 A 값 쓸 있다. 이런

상황에 는 2 가 읽어 들이는 A 값이 실행 간에 게

고 그러므 2 데이 결 이 깨어지게 다.

이런 경우 버퍼링 법 사용 면 를 해결

있다[그림 2]. 주 가 다른 과 사이에 존 계가

있다면 2 개 버퍼를 어 나는 읽 용 나 지 나는

쓰 용 사용 다. 그리고 데이 이 요 만 버퍼를

꾸어 사용 면 다.

그림 2 데이 결 보장 버퍼링

Page 16: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

존 연구들 버퍼링 규약 고 고

우 (Fixed-priority) 스 쥴링 동

우 (Dynamic-priority) 스 쥴링에 른 버퍼링 법

소개 다. 그리고 주어진 시뮬링크 모델에 라 요 버퍼

개 를 계산 고, 버퍼를 재사용함 써 버퍼 개 를

소 다[4,5,6,7,8].

Page 17: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

2.2 주 변

2.1 장에 소개 데이 결 (Data Integrity) 를

해결 해 시뮬링크 도구에 는 주 변 (Rate

Transition Block) 공 다. 개 자는 모델 계 단계부

주 가 다른 시뮬링크 사이에 주 변 함 써

데이 결 를 있다.

그림 3 주 변

주 변 2 가지 종 가 있다[그림 3]. Fast-to-Slow

주 가 짧 에 데이 가 이동 고

Slow-to-Fast 주 가 에 짧

데이 가 이동 다. 주 가 다른 사이마다 주 변

는다면 데이 결 이 보장 다. 지만 주 변

추가 인 모리 공간과 실행시간이 요 다.

Page 18: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

10

일 주 가 다른 사이에는 주 변 이

요 다. 지만 특별 경우에는 주 변 이 없어도 다.

주어진 우 실행시 경우, 이 일어나지

는다면 주 변 이 없어도 다[그림 4].

그림 4 주 변 이 요 경우 요 지 경우

존 연구에 는 주어진 시뮬링크 모델에 해 미리 다양

스 쥴 해보고 불 요 주 변 거 는 법

다[9].

Page 19: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

11

3 장 시뮬링크 모델

3.1 시뮬링크 모델

시뮬링크 검 색 상자 나타내며, 주어진 입 에 해

연산 행 고 출 내보낸다. 각 본 주

인 주 (Sample Time)를 가지고 동작 다.

사이에는 신 를 통해 데이 를 주고 는데 이것 보통

살 시 다. 데이 를 보내는 Source 이라고

고 데이 를 는 Sink 이라 다. 이런 경우,

사이에는 존 계(Precedence Relation)가 있다고 다.

그림 5 자동차 엔진 어 시뮬링크 모델

Page 20: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

12

를 들어, [그림 5]에 있는 Ignition Control

부 Acceleration 신 를 는다. 그리므 Control

Source 이 고 Ignition Sink 이 다.

이것 ‘Control -> Ignition ’ 이라고 시 도

있다.

시뮬링크 모델 개 자는 자 가 원 는 추가 고

연결함 써 쉽게 체 시스 자인 있다.

Page 21: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

13

3.2 시뮬 이

개 자는 시스 계 후에 그것이 어떻게 동작 지 고

싶어 다. 이 시뮬링크 시뮬 이 능 사용함 써

시스 동작 미리 상해 볼 있다[그림 6].

그림 6 시뮬 이 결과 그래

시뮬 이 실 드웨어가 닌 PC 상에 이루어지며,

각 실행시간이나 신 처리 시간이 시 다. 그리고

시뮬 이 에 걸리는 시간과 실 실행시간 계가 없다.

를 들면 [그림 5]과 같 시뮬링크 모델이 있 , 각

래 같 태 시뮬 이 다.

Page 22: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

14

그림 7 시뮬 이 행 행태

각 존 계에 라 일 다. 에 는

Block1 -> Block2 -> Block3 다([그림 7]

쪽 그림). 각 시각(t)마다 리스트 에 부

뒤 해당 이 실행 어야 는지 검사 다. 시각(t)이 0 일

는 모든 이 실행 어야 고, 그 외 시각에 는 시각이

해당 주 일 만 실행 어야 다.

에 는 시각이 1 일 , 주 가 1 인 2 만 실행 고

시각이 2 일 , 1 과 2 만 실행 다. 이 도 일

를 라야 다.

Page 23: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

15

3.3 드 생 실행

시뮬 이 에 체 시스 동작 검증 고 나 는 실

드웨어에 탑재 C/C++ 드를 생 해야 다. 시뮬링크

도구에 드웨어 해주면 자동 드가

생 다. 이 과 에 각 들 고 주 를 가지는

주 태스크 변 어 드에 들어가게 다.

시뮬링크에 는 RM(Rate Monotonic) 스 쥴링 에

주 가 짧 들 우 가 높고 주 가 들

우 는 낮다.

그림 8 드웨어에 행 행태

Page 24: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

16

[그림 7]과 같 시뮬링크 모델 실 드웨어에

실행 다고 면 [그림 8]과 같 행 행태를 보인다.

1 주 2, 2 는 주 1, 3 주 4 를 갖는

주 태스크 모델 변 고, 태스크 간 우 는 주 가

짧 주어진다. 시뮬 이 과는 다르게 실 실행

시간이 걸리 에 우 가 낮 태스크 2 3 태스크

1 에 해 어 실행이 지연 는 것 볼 있다.

Page 25: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

17

3.4 시뮬 이 과 드웨어 동작간 차이

3.2 장과 3.3 장에 시뮬 이 행태 실 드웨어

동작 행태에 해 간단히 보 다. 그 2 가지 행태를

분 해보면 크게 2 가지 면에 차이가 난다는 것 가

있다.

그림 9 시뮬 이 과 드웨어 행과 차이

첫째, 실 드웨어 동작에 는 효과 인해 데이

결 (Data Integrity) 가 생 다. 드웨어 행에 는

태스크 실행 간에 높 태스크가 행 써

데이 결 이 깨지고 만다[그림 1]. 데이 결 이

Page 26: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

18

깨짐 써 연산 결과가 했 값이랑 달라지게 다. 이

는 2.1 장에 버퍼링 법이나 2.2 장에

주 변 사용함 써 해결 있다.

째, 실 드웨어 동작에 는 RM 스 쥴링 사용 므

간 실행 가 뒤 게 다. 시뮬 이 에 는

존 계를 지 면 실행 했지만 RM 스 쥴링에 는

존 계를 시 고 주 우 를 에

실행 가 게 다. 를 들어, [그림 9]에 시뮬 이

항상 1,2,3 실행 지만 실 행에 는

2,1,3 행 다. 그러므 시뮬 이 결과 실

행행태가 달라지게 다. , 실행 가 써

종단 간 지연(End-to-end Delay)는 어지게 고

이것 시스 떨어뜨리게 다. 간 실행

를 보장 면 RM 스 쥴링이 닌 다른 우

법이 요 다.

Page 27: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

19

4 장 시뮬 이 규 만족시키는

고 우

4.1 용어, 가 조건

주어진 시뮬링크 모델 N 개 시뮬링크 구 어

있다. 각 주 를 가지고 있 며, 사이에는 존

계가 존재 다. 각 해당 는 태스크가 있 며 태스크

주 는 원래 주 같다. 태스크 실행시간

없 며, 우리가 자 롭게 조 있는 것 직 태스크

우 뿐이다. , 우 가 같 태스크는 존재 지 는다.

실 드웨어에 시뮬링크 드가 행 에는 이

우 에 라 스 쥴링 다.

l Bi 는 i 번째 나타낸다.

l Ti 는 Bi 에 해당 는 태스크를 나타낸다.

l Pi 는 Ti 주 를 나타낸다.

l Ji,j 는 Ti j 번째 작업 나타낸다.

l Ti Tj 사이에 존 계가 있 면 Ti -> Tj 나타낸다.

l Ti 가 Tj 보다 우 가 높다면 Ti > Tj 나타낸다.

l 모든 태스크 주 (Deadline) 같다.

Page 28: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

20

4.2 시뮬 이 규

시뮬 이 규 명 게 에

시뮬 이 규 만족 다는 것에 해 생각해보자.

시뮬 이 행태 실 드웨어에 행 행태가 같 면

같 시뮬 이 규 잘 만족 다고 말 있다.

그림 10 만족 어 운 시뮬 이 규

만약에 각 시각(Time Step)마다 시뮬 이 에 출 값과

실 드웨어에 출 값이 히 같다면 시뮬 이 규

벽히 만족 다고 말 있다. 지만 이 게 면 시각

0 과 1 사이에 모든 실행이 나야만 다. 냐 면

Page 29: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

21

시뮬 이 에 는 실행시간이 모 0 이 에 시각 1 에

모든 실행이 나 이다[그림 10]. 지만 실

드웨어 행에 도 이것 만족 는 경우는 매우 드

에 이것 시뮬 이 규 삼 는 힘들다.

다 는 시뮬 이 에 출 값과 실 드웨어에

출 값이 같 야 다는 것 시뮬 이 규 삼 있다.

에 시뮬 이 규 과는 다르게 각 시각 게

지 출 값 내놓 요는 없다. 시뮬 이 과 실

드웨어 행에 출 값 같게 면 몇가지 조건

만족해야 다.

첫째, 시뮬 이 에 사이 존 계를 감 여

태스크 실행 를 는 것처럼 실 드웨어 행에 도

태스크 사이 존 계를 고 해 태스크 우 를 해야

다. 존 RM 스 쥴링 식 사용 면 사이

존 계를 고 지 므 각 태스크 작업 가

달라지게 다. 그러므 태스크 우 를 에는

사이 존 계가 그 지 지도 해야 다.

째, 각 태스크 (Deadline) 지 태스크 행이 나야

다. 이것 스 쥴 가능 스트를 통해 그 여부를

있다. 스 쥴 가능 스트를 통과 다면 당연히 째 조건도

만족 다.

Page 30: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

22

째, (Preemption)이 일어나는 경우 버퍼링 법 통해

데이 결 보장해야 다. 이 일어난다면 데이

결 이 깨질 있 에 별도 버퍼를 사용 여 출 값

장해야 다. 버퍼링 법 이미 그 구 이 다른 연구에

자 히 어 있다..

그림 11 시뮬 이 규 만족 는 경우

를 들어, [그림 11]에 빨간 J2,1 시뮬 이 에 는

시각 1 에 결과가 나 고 실 드웨어 행에 는 시각 2 에

결과가 나 다. 지만 실 드웨어 행에 도 사이

존 계 B1->B2, B1->B3 를 모 만족시킨다. , 태스크

모 만족 다. 그리고 버퍼링 법 이미 구 어

있어 데이 결 이 보존 다고 가 자. 그러면 실

Page 31: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

23

드웨어 행에 도 시뮬 이 규 이 지 진다고 말

있다.

Page 32: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

24

4.3 시뮬 이 규 르는 고 우

4.1 장에 언 시뮬 이 규 만족 는 고 우

찾 보자. Ti -> Tj 라는 존 계가 있다면 Ti > Tj 를

만족 는 우 를 함 써 시뮬 이 규 만족시킬

있다. Ti 우 가 Tj 보다 높 에 모든 시각 t 에

해 시작 ,

실행 가 ,

다.

그러므 시뮬 이 규 만족시킬 있다.

시뮬 이 규 만족시키는 고 우 법 여러

개가 존재 다. 를 들어, 래 [그림 12]과 같 시뮬링크

모델에 는 사이 존 계를 만족시키는 우

법이 2 개 존재 다. 사이 존 계가 복잡해질

시뮬 이 규 만족시키는 고 우 법

늘어난다.

그림 12 나 이상 우 법

Page 33: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

25

법 주어진 시뮬링크 모델에 용 다면 시뮬 이

규 르는 고 우 나 찾 있다. 주어진

체 시뮬링크 태스크 집합 A = {T1, T2, … , TN}, 직

우 가 해지지 태스크 집합 U = A, 이미 우 가

해진 태스크 집합 C = ∅ 이 있다고 자. 집합 U 에

입 값이 모 , 다시 말 면 Source 이 닌

태스크를 찾는다. 찾 태스크가 여러 개일 경우 그 에 어떤

태스크를 택 든지 상 이 없다. 찾 태스크를 Ti 라고

다면 Ti 고 우 를 고 U = A – { Ti }, C = C

∪ { Ti } 가 다. 그리고 Ti 에 나가는 모든 존 계는

거 다. 이런 법 복해 태스크를 찾 마다 그 다

우 를 고 태스크를 U 에 거해 나가면

시뮬 이 규 지키는 우 법 나 찾

있다.

법 우 를 다면 시뮬 이 규

만족시키면 실 드웨어에 행시킬 있다. 지만

존 계만 생각해 우 를 다면 스 쥴 불가능

우 도 있다(시뮬 이 규 만족시키는

우 경우 는 매우 많다). 그러므 사이

존 계 뿐만 니라 주 지 고 해야만 스 쥴 공

가능 높일 있다.

Page 34: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

26

5 장 고 우

5.1 고 우

4 장에 는 시뮬 이 규 만족시키는 고 우

법 살펴보 다. 시뮬 이 규 만족 는 고

우 법 히 많지만 그 에는 스 쥴이

불가능 법도 있 있다. 그러므 시뮬 이 규

만족시키는 고 우 법 에 가장 스 쥴 가능 이

높 법 찾 내어 실 드웨어에 행 는 것이

가장 합리 이다. 시뮬 이 규 만족 는 우

법 에 우 법 명 다.

고 우 에 스 쥴링 법 주 가 짧

우 를 는 RM 스 쥴링 법이다. 본 인

근 법 사이 존 계를 지키면 주 가 짧

태스크들에게 높 우 를 는 것이다.

Page 35: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

27

그림 13 소 주 과 부모 집합(PS)

주어진 시뮬링크 모델에 소주 를 가지는

찾는다. 그러면 그 에 들어 는 존 계(Incoming

Dependency)가 있는 모든 부모 과 해당 이루어진

집합 MP 구 있다. 를 들어 [그림 13] 같

주 존 계를 가진 시뮬링크 모델이 주어진다면 소주 를

갖는 Block4(P=1)이다. 그리고 그에 른 부모

집합 PS1 = {Block1, Block2, Block4} 이다. 그러면 이 부모

집합 들에게 가장 높 우 를 다(T1 >

T2 > T4).

Page 36: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

28

그림 14 다 소주 과 부모 집합

다 는 우 가 지 에 가장 주 가

짧 (Block5) 찾고 이 부모 집합(PS2)

찾는다. 이 단계 마찬가지 부모 집합 들에게

그 다 우 를 다(T3 > T5)[그림 14]. 마지막

Task6 에게 우 를 면 다(T1 > T2 > T4 > T3 > T5

> T6).

모든 태스크 우 를 지 법

복 면 시뮬 이 규 만족함과 동시에 가장 스 쥴

가능 이 높 우 찾 있다.

Page 37: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

29

5.2 증명

5.1 장에 우 이 이라는 것 증명

해 다 과 같 증명 법 사용 다. 임 스 쥴

가능 우 A 가 존재 다고 가 자. 그리고

5.1 장에 우 B 라고 자. 어떠

경우에도 A 를 B 변 있 면 5.1 장에

우 법 B 가 우 이 다.

그림 15 임 우 우 변

시뮬 이 규 지키면 모든 태스크 는

우 A 가 있다고 가 자. 소주 TM 이 있고,

그 태스크 작업들 JM, 그 (Deadline) DM 이라고 자.

TM 부모 집합 PS 라고 고, 그 에 가장 짧

Page 38: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

30

DPS 라고 자. , TM 보다 우 가 높 에

부모 집합에 포함 지 는 나 지 집합 O 라고

고 그 에 가장 짧 DO 라고 자.

이 나 지 집합 O 에 들어있는 우 를 TM

보다 낮게 조 다[그림 15]. 그러면 소주 TM 과 그

부모 집합 PS 는 왼쪽 (높 우 ) 이동 게 고,

나 지 집합 O 는 른쪽 (낮 우 ) 이동 게

다. 이 경우에 우 가 높 지는 소주 MT 그

부모 집합 PS 는 당연히 스 쥴 가능 다. , 우 가

낮 지는 나 지 집합 O 도 DM 지 에

이것 스 쥴 가능 다.

이 법 복 다 소주 에도 같이

용 다면 임 우 A 는 결국 5.1 장 우

B 변 다. 다시 말 면 스 쥴 가능 임 우

A 가 존재 다면 우 B 도 역시 스 쥴 가능 다.

그러므 5.1 장 우 법이 스 쥴 가능 이 가장

높 우 이다.

Page 39: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

31

6 장 결 향후과

6.1 결

시뮬링크 모델 시뮬 이 과 실 드웨어 행 행태는

많 차이가 있다. 이는 시뮬 이 규 과 실 드웨어 행

식 차이에 롯 다. 실 드웨어 행에 는

존 계를 지키지 는 RM 스 쥴링과 효과 에

시뮬 이 결과 많이 다른 행 행태를 보인다. 본

논 에 는 실 드웨어 행에 도 시뮬 이 규

지키 해 새 운 고 우 법 했다.

고 우 법 사용 다면 존 RM

스 쥴링 법보다 보다 시뮬 이 에 가 운 드웨어

행결과를 얻 있다. 지만 RM 스 쥴링보다 시스

용도(Utilization)이 낮 에 스 쥴이 실 가능 도

존재 다. 본 논 에 는 스 쥴 가능 높이 보다는

시뮬 이 과 가 운 드웨어 행 보장 면 가능

스 쥴 가능 높이는 우 다.

Page 40: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

32

6.2 향후 과

본 논 에 고 우 법 시뮬 이

규 만족시키지만 체 시스 용도(Utilization)

떨어뜨린다. 그리고 실행시간에 고 가 없 에

우 여도 실 드웨어에 실행 에는

스 쥴 불가능 경우가 생 다.

미리 일링 행해 실행시간에 보가 있다면

스 쥴 가능 스트를 가 있고, 개 자에게 좀 많

보를 가 있다. 스 쥴이 불가능 다면 특

주 를 낮추도 개 자에게 조언 도 있 것이다.

면에 스 쥴이 가능 다면 특 주 를 리도 는

법도 있다. 다시 말 면, 개 자에게 좀 많 택

공 는 시뮬 이 개 도구를 만들 도 있 것이다. ,

스 쥴 가능 과 시뮬 이 규 지키는 것 Trade-off

계를 좀 명 게 히는 것도 요 다.

Page 41: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

33

참고 헌

[1] Kirner, Raimund, et al. "Fully automatic worst-case execution

time analysis for Matlab/Simulink models." Real-Time Systems,

2002. Proceedings. 14th Euromicro Conference on. IEEE, 2002.

[2] Scaife, Norman, and Paul Caspi. "Integrating model-based

design and preemptive scheduling in mixed time-and event-

triggered systems." Real-Time Systems, 2004. ECRTS 2004.

Proceedings. 16th Euromicro Conference on. IEEE, 2004.

[3] Baleani, Massimo, et al. "Efficient embedded software design

with synchronous models." Proceedings of the 5th ACM

international conference on Embedded software. ACM, 2005.

[4] Tripakis, Stavros, et al. "Semantics-preserving and memory-

efficient implementation of inter-task communication on static-

priority or EDF schedulers." Proceedings of the 5th ACM

international conference on Embedded software. ACM, 2005.

[5] Sofronis, Christos, Stavros Tripakis, and Paul Caspi. "A

memory-optimal buffering protocol for preservation of

synchronous semantics under preemptive scheduling."

Proceedings of the 6th ACM & IEEE International conference on

Embedded software. ACM, 2006.

[6] Di Natale, Marco. "Optimizing the multitask implementation of

multirate Simulink models." Real-Time and Embedded

Technology and Applications Symposium, 2006. Proceedings of

the 12th IEEE. IEEE, 2006.

Page 42: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

34

[7] Sangiovanni-Vincentelli, Alberto, and Marco Di Natale.

"Embedded system design for automotive applications." Computer

40.10 (2007): 42-51.

[8] Natale, Marco Di, and Valerio Pappalardo. "Buffer

optimization in multitask implementations of simulink models."

ACM Transactions on Embedded Computing Systems (TECS) 7.3

(2008): 23.

[9] Di Natale, Marco, et al. "Synthesis of multitask

implementations of simulink models with minimum delays."

Industrial Informatics, IEEE Transactions on 6.4 (2010): 637-651.

Page 43: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

35

Abstract

Fixed-priority Scheduling for

Multirate Simulink Models

Yuyeon Oh

School of Computer Science Engineering

College of Engineering

The Graduate School

Seoul National University

Simulink is model-based design and simulation tool. It is

most widely used in industry. Particularly in the automotive

industry and the aerospace industry, it is used for designing

various electronic control devices. A Simulink model is

transformed into C/C++ codes which can be executed at an

actual HW by Embedded Coder tool. Each Simulink block is

converted into an inherent periodic task. By default, all these

tasks are executed on RM scheduling policy. In the process, the

simulation behavior and the actual HW execution behavior are

getting different.

Page 44: 저작자표시 공연 및 방송할 수 있습니다s-space.snu.ac.kr/bitstream/10371/123024/1/000000016690.pdf · 시뮬링크 모델의 개발 과정은 크게 모델 디자인,

36

This paper proposes a new fixed-priority assignment for

multirate Simulink models which behaves like simulation. First,

a Simulink model is converted into a DAG(Directed Acyclic

Graph) considering all dependencies between blocks. Next, the

DAG is converted into periodic tasks. Finally, each task is

assigned its own fixed-priority to maximize its schedulability.

By applying the above method, Simulink simulation semantics

are preserved at actual HW execution. So the difference

between simulation results and actual HW execution results can

be reduced. And we can save time and costs in Simulink model

validation stage.

Keywords : Simulink, Fixed-priority, Periodic Task

Student number : 2012-20809