서강대학교 23년도 마이크로프로세서응용실험 5주차 Lab05 결과레포트 (A+자료)
- 최초 등록일
- 2024.03.24
- 최종 저작일
- 2023.04
- 31페이지/ MS 워드
- 가격 2,000원
소개글
"서강대학교 23년도 마이크로프로세서응용실험(마프실) 5주차(Lab05) 결과레포트 (A+자료)"입니다
목차
1. 목적
2. 이론
3. 실험과정
4. Exercises
5. 추가실험
6. 결론
7. 참고문헌
본문내용
1.목적
- 프로그램의 흐름을 변경하는 branch 명령어의 동작을 이해한다.
- branch with link 명령어의 특징을 알아보고, 어떻게 활용될 수 있는지 실험해본다.
- PC에 대한 상대주소 분기와 절대주소 분기의 차이에 대해 이해한다.
- conditional execution을 위한 suffix의 종류와 의미를 알아보고, 이것의 장점에 대해 이해한다.
2.이론
2-1. Introduction
C언어에서의 if문이나 for, while문의 경우, 조건 만족 여부에 따라 프로그램의 흐름이 바뀌거나, 지정된 횟수만큼 수행을 반복하게 된다. 이때 프로세서는 branch와 같은 분기 명령을 통해, PC 내용을 변경시키며 프로그램의 흐름을 바꾸게 된다. 이때 분기 명령어는 파이프라인의 효율을 떨어뜨리게 된다. 이를 branch penalty라고 한다.
파이프라인 동작을 통해, 분기명령이 성능에 어떻게 악영향을 미치는지 알아보자. 3단계 파이프라인은 Figure 5.1과 같이, fetch – decode – execute로 구분된다. 0x8000의 BL(branch and link) 명령어 때문에, 0x8004와 0x8008 명령어의 fetch, decode가 의미없어지고, PC가 0x8408을 가리키게 되면서 새로운 명령어의 fetch가 이루어진다. 4번 사이클에서 PC는 다음 fetch할 명령어인 0x8008이 저장되어 있기에, BL 명령어에 의해 이 주소가 link register에 저장된다. 하지만 분기가 끝나고 복귀해야할 주소는 0x8004이기에, 5번 사이클에서 link register에서 4를 빼는 adjust를 수행한다. branch가 발생하면 일반적인 pipeline의 진행에 비해 성능이 안좋아지게 된다.
참고 자료
The Definitive Guide to ARM® CORTEX®-M3 and CORTEX®-M4 Processors (Third Edition)(2014)
마이크로프로세서개론(실험교재, 2023) pp.97-105
Cortex™-M3 Devices Generic User Guide
Cortex-M3 TechnicaI Reference Manual r1p1