반응형
마이크로 프로세서는 명령어를 실행할 때 기본적으로 Fetch, Decode, Execute, Memory Access의 4단계를 실행한다. 보통 각 단계의 실행에는 한 클럭이 필요하다. 그래서, 10MHz 클럭으로 동작하는 마이크로 프로세서는 1초에 약 2.5M 개의 명령어를 수행한다.
마이크로 프로세서에 사용되는 기술 중 파이프라인 (Pipeline)은 한 클럭에 한 명령어을 실행할 수 있는 기술이다.
위 그림과 같이 명령어 실행 프로세서를 4개를 동시에 실행시켜 한 클럭에 한 명령어를 실행하도록 한다. 명령어 실행 중 Branch 명령을 만나면 미리 로드된 명령어들을 버리고 다시 명령어를 읽어야 한다. 이 때는 파이프라인의 효율이 떨어진다.
다음과 같은 명령어가 실행될 때 파이프라인이 동작하면 첫번째 명령어의 결과가 A에 저장되기 전에 두번째 명령어가 실행되는 문제가 있다. 그렇게 되면 A에 0x03이 아니라 0x02가 저장되게 된다.
A |= 0x01
A |= 0x02
이러한 파이프라인 문제를 방지하는 것을 Pipeline Protection이라고 한다. 마이크로 프로세서는 위와 같은 문제가 발생하는 명령어들에서는 자동으로 명령어 실행을 지연시켜 문제를 방지한다.
반응형
'컴퓨터' 카테고리의 다른 글
Read-modify-write 명령어 (0) | 2020.12.24 |
---|---|
Race condition 이란? (0) | 2020.12.19 |
역대 가장 인기 있는 운영체제 (0) | 2020.12.15 |
자동차 ECU의 OS (0) | 2020.12.15 |
유닉스 철학 (0) | 2020.12.15 |
댓글