서강대학교 마이크로프로세서 5주차 실험
- 최초 등록일
- 2021.06.30
- 최종 저작일
- 2021.04
- 26페이지/ 한컴오피스
- 가격 3,000원
소개글
"서강대학교 마이크로프로세서 5주차 실험"에 대한 내용입니다.
목차
1. 실험 제목
2. 실험 목적
3. 실험 이론
4. 실험 결과 및 분석
5. 토의
6. 참고문헌
본문내용
1. 실험 제목
Program flow control instructions
2. 실험 목적
● 프로그램의 흐름을 변경/제어하는 명령어의 동작에 대해 이해한다.
● 일반적인 분기명령어와 branch with link 명령어의 차이점을 이해한다. 이 과정에서 link register의 역할에 대해 구체적으로 이해한다.
● 조건분기와 무조건분기를 구분한다. 분기명령어를 이용하여 반복 수행을 위한 loop을 구성하는 방법에 대해 생각해본다.
● PC에 대하여 상대적인 주소로 분기하는 경우와 절대주소로 분기하는 방법에 대해 알아본다.
● Conditional execution을 위해 명령어에 추가되는 suffix들의 유형을 살펴보고 이러한 방식의 도입이 가져다주는 장점들에 대해 파악해본다.
● Table을 이용한 프로그램 흐름 변경기법에 대해 알아본다.
● Branch penalty와 이를 완화시킬 수 있는 방법 중 하나인 loop unrolling에 대해 알아본다.
3. 실험 이론
1. Branch instructions (분기 명령어)
일반적으로 프로그램을 구성하는 명령어들은 순서대로 수행된다. 이러한 일반적인 흐름을 벗어날 필요가 있을 때 분기 명령어를 사용한다. ARM 계열 프로세서의 경우 다음과 같이 세 유형의 분기 명령어들이 제공된다.
명령어
설명
B(Branch)
가장 간단한 형태의 분기 명령어.
명령어가 지정하는 새 주소로 분기를 수행하도록 동작하는데, condition code와 함께 사용될 때는 조건에 따라 수행 여부가 결정된다.
BX(Branch and Exchange)
레지스터가 지정하는 주소로의 직접적인 분기 동작이 수행될 뿐만 아니라 32bit ARM 명령어로부터 16bit Thumb 명령어로의 전환 동작을 수행한다.
BL(Branch with Link)
분기 명령을 수행하면서 복귀할 주소를 link register(r14)에 저장한다. subroutine의 수행을 마친 후 이 link register의 내용을 pc에 옮김으로써 subroutine을 호출한 명령어 다음 위치로 복귀하게 된다.
참고 자료
http://www.keil.com/support
- 각종 명령어 기능에 관한 정보
http://www.jkelec.co.kr/img/lecture/arm_arch/arm_arch_4.html
- 각종 명령어 기능 보조자료
https://www.sciencedirect.com/topics/engineering/pseudo-instruction
- Pseudo-instruction에 대한 개념
https://itstory07.tistory.com/854
- 명령어 실행 사이클의 이해 https://ko.wikipedia.org/wiki/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C_%EC%8B%9C%EC%8A%A4%ED%85%9C
- 임베디드 시스템에 대한 이해