inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

ARM Cortex-M 프로세서 프로그래밍

s208_프로그램 카운터 레지스터

명령어 fetch 부분 질문드립니다

285

배재웅

작성한 질문수 2

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요 제공해주신 교육 잘 듣고 있습니다. 강의 내용 중간에 궁금한 점이 생겨서 질문 남깁니다.

 

질문1.

pc를 이용해서 명령어를 fetch 할 때 처음 가져온 16bit가 thumb 명령어 일 경우 바로 실행하고 arm 명령어 일 경우 다음 16bit를 기다렸다가 실행한다고 하셨는데 강의자료에는 Cortex-M은 항상 32bit 수량을 가져온다고 되어 있습니다. 이것에 대한 명확한 설명을 좀 부탁드리겠습니다.

 

질문2.

추가로 pc가 가리키는 주소는 짝수 밖에 안나온다고 했는데 이 이유도 알고 싶습니다.

 

감사합니다.

cortex 임베디드 arm-architecture

답변 1

0

홍영기

안녕하세요. 배재웅님!

질문1.

pc를 이용해서 명령어를 fetch 할 때 처음 가져온 16bit가 thumb 명령어 일 경우 바로 실행하고 arm 명령어 일 경우 다음 16bit를 기다렸다가 실행한다고 하셨는데 강의자료에는 Cortex-M은 항상 32bit 수량을 가져온다고 되어 있습니다. 이것에 대한 명확한 설명을 좀 부탁드리겠습니다.

(ANS) STM32 플래시 메모리는 입출력 속도 최적화를 위하여 128bit 단위로의 액세스로 설계되어 있습니다. 한편, CORTEX-M 는 페치-디코드-실행 순환 사이클로 동작하는 구조를 갖습니다. 이때 페치 동작은 THUMB 명령이었다면 16비트, THUMB2 명령이었다면 32비트 단위로 동작하게 될 것입니다. 버스 대역폭의 효율적인 이용을 위하여 THUMB 명령어의 경우 2개 명령어 분량인 32비트를 한번에 읽어들여서 처리한다라는 말이었습니다.

질문2.

추가로 pc가 가리키는 주소는 짝수 밖에 안나온다고 했는데 이 이유도 알고 싶습니다.

(ANS) THUMB 은 16비트, THUMB2 는 32비트 구조이므로 명령어들은 항상 짝수 정렬되어 있습니다.

stm32cubeide 관련 문의

0

42

2

DMA 관련한 강의도 제작해주실 수 있으신가요 ?

0

90

1

그림들도 해석 할 수 있어야 하나요?

1

100

2

no-stlink

1

80

2

4개의 CPU 사이클이 필요한 이유

1

99

2

MAC으로 진행 질문드려요..

1

95

2

학습 진행 시, 사용하는 Board에 대한 문의 드립니다!

0

159

2

push pop 질문

1

190

2

STM32Fx Cortex ARM 프로그래밍 저자:홍봉조, 출판사:지식과 감성

0

242

1

CORTEX_02_ASSEMBLY 빌드시 에러

1

270

1

외부 ST Link 연결 이용한 SWD 방법

0

336

1

파이프라인과 명령어

1

326

1

명령어 fetch

0

238

1

lr 레지스터 LSB 값

1

258

1

Disassembly 창 문제

0

349

1

s702 강좌에서 사용한 technical reference manual 문서

1

323

1

s702에 원자적 Access 를 위한 BSRR 코드작성 부분에 대해서

1

270

1

s202 LED 점등 예제 실행시 에러

2

350

1

STM32F429I-DISC 보드의 펌웨어

2

394

1

제공되지 않은 강의교재

0

319

1

s524 테일체이닝 강의 질문

0

234

1

부트코드와 부트로더의 차이점

1

1524

1

메모리 맵 질문

0

278

1

xPSR 레지스터 플래그 값 및 기타 질문 드립니다.

1

858

2