inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

s304_IT 명령어

pipeline stall 현상 방지에 관한 질문

해결된 질문

521

김상현

작성한 질문수 62

1

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

안녕하세요. 강사님.

강의 잘 보고 있습니다.

질문이 있습니다.

blanch 코드의 경우 pipeline stall이 발생할 수 있다하셨습니다.

아래는 예제입니다.

cmp r0, r1

bge 1f 만약 이 명령어가 실행된다 가정하면

blt 2f

1:

bx lr

2:

mov r0,r1

...

3-stage pipeline일 때 각 단계를 보면 아래처럼 될 것으로 생각이 듭니다.

E bge 1f

D blt 2f

F bx lr

Execute 에서 갑자기 분기를 했으니 그 전에 있던 Fetch Decode 값이 의미가 없다?라고 생각하고 버리겠죠. 이게 pipeline stall로 이해하고 있는데

it 명령어는 왜 pipeline stall이 없는 명령어인지 이해가 되지 않습니다.

다음에 실행될 명령어를 미리 안다? 생각해도 Decode 단계에서 해석을 해야 가능할 것 같은데, 그렇다면 pipeline stall이 발생할 것 같아서요.

제가 잘못 이해하고 있는건가요?

임베디드 cortex arm-architecture 임베디드

답변 1

0

김상현

생각해보니 조건에 따라 분기가 아니라 실행 미실행으로 처리하면 pipeline stall 문제는 없을 것 같네요...

0

홍영기

안녕하세요. 김상현님!

파이프라인을 사용하면 다음 명령어를 실행하기 위해 현재 명령어의 실행 결과를 기다릴 필요가 없으므로, 명령어 실행 속도를 높일 수 있습니다.

IT 명령어는 조건부 명령어를 처리하기 위한 것이므로, 조건 코드를 검사한 후에 실행할 명령어의 개수가 결정됩니다. 이때 파이프라인이 멈추지 않는 이유는 IT 명령어 다음에 실행할 명령어를 사전에 파이프라인 버퍼에 적재하기 때문입니다. 따라서 조건 검사 이후 실행할 명령어의 개수가 결정될 때까지 기다릴 필요가 없으므로, 파이프라인이 멈추지 않습니다.

stm32cubeide 관련 문의

0

46

2

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

0

95

1

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

1

100

2

no-stlink

1

80

2

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

1

100

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

339

1

파이프라인과 명령어

1

327

1

명령어 fetch

0

238

1

lr 레지스터 LSB 값

1

258

1

Disassembly 창 문제

0

349

1

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

1

325

1

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

1

271

1

s202 LED 점등 예제 실행시 에러

2

351

1

STM32F429I-DISC 보드의 펌웨어

2

394

1

제공되지 않은 강의교재

0

319

1

s524 테일체이닝 강의 질문

0

234

1

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

1

1525

1

메모리 맵 질문

0

280

1

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

1

862

2