Pipeline구조 - 산술 & 명령어 파이프 라인 2

2021. 3. 23. 00:04Computer(인강)/컴퓨터 구조

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

지난 시간에 이어서 두번째 시간이에요

바로 시작해보도록 하겠습니다

 

 

 

4.6 산술 파이프라인

exponents : 지수

mantissas : 가수

 

일단 첫번째로 exponents(지수)를 비교합니다. 

근데 지금 들어온 지수가 3, 2인데 둘이 일치가 안되잖아요? 그럼 큰 지수에서 작은 지수를 빼서 맞춰주면됩 니다 지금은 1이 되겠네요

 

# 산술 파이프 라인의 효율성

* 부동 소수점 파이프라인의 구성 요소

- 비교기, 시프터, 가산/감산기, 인크리멘터, 디크리멘터 -> 조합회로

 

 

# 명령어 실행과 파이프 라인 구조

1.  이전 명령어가 다른 세그먼트에서 실행되고 있는 동안 메모리에 연속적으로 저장되어 있는 다음 명령어를 읽어옴으로서 fetch와 실행이 중첩되어 동시에 수행되는 구조이다

2. 분기가 발생할 경우(가장 큰 취약점) - 현재의 파이프라인은 모두 비워져야하고, 분기명령 이후에 메모리에서 읽어온 명령어는 모두 무시 되어야 한다.

 

 

 

# 보다 효율적 명령어 실행을 위한 파이프 라인 구조

 

1. 명령어 fetch장치와 명령어 실행 장치로서 두 세그먼트 파이프라인을 구성하는 컴퓨터를 고려

- 명령어 fetch장치 -> FIFO(First-In-First-Out)에 의한 Que로 구성되어 queuing기법에 의한 메모리 참조에 의해 평균 메모리 접근 시간을 효율적으로 줄여 준다

 

2. 명령어 파이프라인이 수행되는데 있어 발생하는 애로 사항

- 세그먼트의 수행 시간이 서로 다름(실행되지 않는 세그먼트도 있을 수 있음) ex) 레지스터 모드 명령의 경우 - 유효주소 계산 불필요

- 두 개이상의 세그먼트에의해 동일한 주소 공간이 참조되는 경우

 

 

 

# 네 세그먼트 명령어 파이프 라인의 예

Branch가 yes가 됐을 때, 명령어 파이프라인이 발생하는 치명적인 경우가 됌.

 

 

# 네 세그먼트 명령어 파이프 라인의 예 - 명령어 파이프라인의 시간 관계

빨간색 동그라미는 충돌이 일어나고 있는 부분인데 실행된 결과를 갖다가 저장하는것과 오퍼레이터를 불러오는데 중복이 되고있죠

이럴땐 실행이 먼저되도록 우선권을 주기는 합니다

-> 음 파이프라인을 구축하는게 쉬운일은 아니군

1. FI는 명령어를 fetch하는 세그먼트

2. DA는 명령어를 디코드하고 유효주소를 계산하는 세그먼트

3. FO는 피연산자를 Fetch하는 세그먼트

4. Ex는 명령어를 실행하는 세그먼트

728x90
반응형