pipe line

이채윤·2022년 1월 28일
0

임베디드

목록 보기
3/70

개발자는 ARM Core의 관계가 깨지지 않도록 해주어야 한다.
ARM Core는 메모리에 있는 코드를 읽어오고, 해석하고, 실행한다.

(Fetch - Decode - Execute)

  • 이러한 단계가 연속적으로 흘러가게 하면, ARM Core의 성능이 좋아진다.

<위의 (Fetch - Decode - Execute) 3단계가 필요한 이유>
(Fetch)

  • 개발자가 c언어로 개발한 프로그램은 Flash 메모리에 올린다.
  • 이 Flash 메모리에 있는 데이터를 ARM Core가 처리하기 위해서는 메모리에 접근해서 읽어와야한다. (그래서 Fetch단계 필요)

(Decode)

  • 메모리에 접근해서 읽어온 데이터는 ARM Core가 이해하는 언어인 기계어로 번역해야 한다. (Decode단계 필요)

(Excute)

  • 번역 후 실행을 해줘야 한다. (Excute단계 필요)

앞의 3단계가 각 단계별로 CPU clock을 한 cycle 소모한다고 가정.
이제 3개의 어셈블리 명령어가 수행한다고 하면 총 9번 cycle 필요.

여기서 각 단계별로 사용되는 자원이 다르니 중첩해서 사용해보자고 생각한 것이 파이프 라인(pipe line)이다.

파이프라인을 구성하여 동작시키면 3개의 명령어를 처리하는데 5cycle로 동일한 결과를 얻는다. (성능이 좋아진다.

0개의 댓글