GeeksforGeeks
의 성능을 개선하기 위해 CPU 우리는 두 가지 옵션을 사용할 수 있습니다.
1)개선 하드웨어를 도입하여 빠르게 회로입니다.
2)하나 이상의 작업이 동시에 수행 될 수 있도록 하드웨어를 정렬하십시오.하드웨어의 속도에 제한이 있고 더 빠른 회로의 비용이 상당히 높기 때문에 2 번째 옵션을 채택해야합니다.
파이프 라이닝 : 파이프 라이닝은 CPU 의 하드웨어 요소를 배치하는 프로세스로 전체 성능이 향상됩니다. 둘 이상의 명령어의 동시 실행은 파이프 라인 프로세서에서 이루어집니다.
파이프 라인 작업의 개념에서 작동하는 실제 사례를 살펴 보겠습니다. 물 병 포장 공장을 고려하십시오. 병(I)을 삽입하고 물병을 병(F)에 채우고 병을 밀봉하여 병이 통과해야하는 3 단계가 있습니다. 이 단계들을 각각 1 단계,2 단계 및 3 단계로 간주합시다. 각 단계가 작업을 완료하는 데 1 분이 걸리도록하십시오.
이제 파이프 라인이없는 작업에서 병이 먼저 식물에 삽입되고 1 분 후에 물기가 채워진 2 단계로 이동합니다. 이제 1 단계에서는 아무 일도 일어나지 않습니다. 마찬가지로 병이 3 단계로 이동하면 1 단계와 2 단계가 모두 유휴 상태입니다. 그러나 파이프 라인 작업에서 병이 2 단계에있을 때 1 단계에서 다른 병을 적재 할 수 있습니다. 마찬가지로,병이 3 단계에있을 때,1 단계와 2 단계에 각각 하나의 병이있을 수 있습니다. 그래서 매분 후에 우리는 3 단계가 끝날 때 새로운 병을 얻습니다. 따라서,평균 시간을 찍은 제조에 1 병입니다:
지 않고 파이프라인=9/3 분=3m
I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)
으로 파이프라인=5/3 분=1.67m
I F S | || I F S || | I F S (5 minutes)
따라서,파이프라인 작업의 효율성을 증가는 시스템입니다.
기본 파이프 라인의 설계
- 파이프 라인 프로세서에서 파이프 라인은 입력 끝과 출력 끝의 두 끝을 갖습니다. 사이 끝나면 거기에 여러 단계/세그먼트 같은 출력의 한계가 연결되어 있을 입력의 다음 단계는 각 단계를 수행한 특정 작업입니다.
- 인터페이스 레지스터는 두 단계 사이의 중간 출력을 유지하는 데 사용됩니다. 이러한 인터페이스 레지스터는 래치 또는 버퍼라고도합니다.
- 인터페이스 레지스터와 함께 파이프 라인의 모든 스테이지는 공통 클럭에 의해 제어됩니다.
파이프 라인 프로세서에서 실행
파이프 라인 프로세서에서 명령어의 실행 시퀀스는 시공간 다이어그램을 사용하여 시각화 할 수 있습니다. 예를 들어,4 단계를 갖는 프로세서를 고려하고 실행될 2 개의 명령어가있을 수 있도록하십시오. 다음과 같은 시공간 다이어그램을 통해 실행 순서를 시각화 할 수 있습니다:
겹쳐지지 않은 실행:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
S1 | I1 | I2 | ||||||
S2 | I1 | I2 | ||||||
S3 | I1 | I2 | ||||||
S4 | I1 | I2 |
Total time = 8 Cycle
Overlapped execution:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
S1 | I1 | I2 | |||
S2 | I1 | I2 | |||
S3 | I1 | I2 | |||
S4 | I1 | I2 |
Total time = 5 사이클
파이프라인 단계
RISC 프로세서에는 5 단계 파이프라인 교육을 실행하는 모든 지시에 RISC 명령을 설정합니다. 다음과 같이 5 단계의 RISC 파이프라인과 그들의 각각의 운영:
- 1 단계(교육 가)
이 단계에서 CPU reads 지침 주소에서 메모리에서 해당 값이에서 존재하는 프로그램 카운터입니다. - 2 단계(명령어 디코딩)
이 단계에서,명령어 디코딩하고 등록 파일에 액세스하여 얻은 값을 레지스터에 사용되는 명령. - 3 단계(명령어 실행)
이 단계에서는 ALU 작업이 수행됩니다. - Stage4(Memory Access)
이 단계에서는 메모리 피연산자가 명령어에 존재하는 메모리에서/에서 읽고 씁니다. - 5 단계(다시 작성)
이 단계에서,계산/가 값은 다시 작성 등록에 존재합니다.
파이프 라인 프로세서의 성능
클록 사이클 시간을 갖는’k’세그먼트 파이프 라인을’Tp’로 간주하십시오. 파이프 라인 프로세서에서 완료해야 할 작업이’n’이되도록하십시오. 지금은,첫 번째 명령은’k’사이클이 나올의 파이프라인을 하지만 다른’n–1’지침을 가’1’cycle 각각합니다.e 의 총’n–1’사이클이 있습니다. 그래서를 실행하는 데 걸린 시간’n’이 지침에서는 파이프라인 프로세서:
ETpipeline = k + n – 1 cycles = (k + n – 1) Tp
에서 동일한 경우,비 파이프라인 프로세서,실행 시간의’n’지침이 될 것입니다:
ETnon-pipeline = n * k * Tp
도,속도 향상(S)의 파이프라인 프로세서 아닌 이상-파이프라인 프로세서, 을 때’n’실행되는 작업에 같은 프로세서:
S = Performance of pipelined processor / Performance of Non-pipelined processor
의 성능으로 프로세서에 반비례하고 실행 시간,우리는,
S = ETnon-pipeline / ETpipeline => S = / S = /
할 때 작업의 수를’n’보다 훨씬 큰 k,즉 n>>k
S = n * k / n S = k
는’k’은 단계의 수에서 파이프 라인에 있습니다.
또한,효율=주어진 가속/최대 속도=S/텍
우리가 알고 있는 텍=k
그 효율성을=S/k
Throughput=번호 지침/총을 완료하는 데 시간이 지
도록,처리량=n/(k+n–1)*Tp
참고: 사이클별 지침(소비자 물가 지수)의 값을 이상적인 파이프라인 프로세서 1
참조하시기 바랍 설정 2 종속성과 위험 데이터와 3 세트를 위한 유형의 파이프라인 및 됩니다.