명령어 fetch 부분 질문드립니다
285
작성한 질문수 2
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 제공해주신 교육 잘 듣고 있습니다. 강의 내용 중간에 궁금한 점이 생겨서 질문 남깁니다.
질문1.
pc를 이용해서 명령어를 fetch 할 때 처음 가져온 16bit가 thumb 명령어 일 경우 바로 실행하고 arm 명령어 일 경우 다음 16bit를 기다렸다가 실행한다고 하셨는데 강의자료에는 Cortex-M은 항상 32bit 수량을 가져온다고 되어 있습니다. 이것에 대한 명확한 설명을 좀 부탁드리겠습니다.
질문2.
추가로 pc가 가리키는 주소는 짝수 밖에 안나온다고 했는데 이 이유도 알고 싶습니다.
감사합니다.
답변 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





