단일 사이클한 클럭 동안 하나의 명령어를 수행한다.가장 길게 실행되는 명령어가 한 클럭의 기준이 된다. 단일 사이클 구현은 오늘날 왜 사용되지 않는가?단일 사이클 구현 파이프라인은 병렬 처리 방식이라고 말할 수 있다.아래는 세탁기로 예를 든 파이프라인의 구조를 설명한다. 세탁, 탈수, 옷 개기, 옷장에 넣기를 세탁의 한 사이클이라고 생각하자. MIPS 파이프라인MIPS의 파이프라인은 5단계로 구성되어 있다.1. IF(Instruction Fetch) MIPSMIPS(Microprocessor without interlocked pipeline stage)는그 이름에서 찾아볼 수 있듯이 파이프라인 실행을 위해 설계되었다.1. 모든 MIPS 명령어의 길이가 같다. 파이프라인 Diagram파이프라인 데이터패스제어유닛을 포함한 파이프라인파이프 라인단일 사이클 : 클럭 사이클이 모든 명령어에 대해 같은 길이를 갖는다. 클럭 사이클이 너무 길어서 비효율적. 병렬 처리 : 컴퓨터 시스템 계산 속도 향상을 위해 동시 데이터 처리 기능을 제공. 병렬처리의 방법 - 파이프 라인다단계 데이터 처리법 : 한 클럭(CPU등의 순차 회로 연산 장치에 가해지는 진동)에 다양한 명령어 수행. 동시 다중 데이터 처리 세탁, 탈수, 옷 개기, 옷장 넣기를 세탁의 한 사이클로 표현한다. 단일 사이클의 경우 : 한 사이클이 끝나야 다음 세탁물을 세탁 할 수 있다. 파이프 라인의 경우 : 세탁이 끝난 세탁기에 다음 세탁물을 바로 집어 넣게 함으로써 여러 행동을 중첩해서 실행하도록 한다. 파이프라이닝으로 명령어 실행하는데 걸리는 전체 시간 T = k+(N-1) 일반적 방법
: 1*4*5=20시간 (T = k*n) 가장 효율적인 파이프라인의 조건 : 각 단계별 처리 시간이 일정해야한다. 처리 시간이 일정하지 않고 처리 단계가 균등하지 않아서 발생하는 파이프 라인의 지연, 중지 현상을 해저드(Hazard)라고 한다. 해저드1 : 구조적 해저드다른 단계에 있는 명령어들이 동시에 같은 프로세서의 자원을 사용하는 상황 해결법
2. 하버드 아키텍처 사용
2 : 데이터 해저드해결법 1. 전방 전달 이전 instruction(명령어)에 의해 해당 레지스터의 결과값이 영향을 받는게 문제이므로 수행(EX) 단계에서 계산된 결과를 바로 다음 instruction의 수행 단계로 전달한다. h/w의 추가가 필요하다. 2. 지연 Nop 명령어 삽입 컴파일러에서 Nop명령어 삽입으로 지 연시킨다. 3 : 제어 해저드(분기 다음의 명령어를 몰라 다음 명령어를 인출 못하는 상황)해결법
|