Table of Contents
ILP(Application-level Parallelism)는 현대 CPU의 성능을 향상시키는 핵심 요소입니다. 이를 통해 처리량을 극대화하기 위해 여러 지침을 실행하는 것이 포함됩니다. 프로세서의 아키텍처를 분석하고 병목을 식별하는 데 필요한 ILP를 개선하는 것은 병목을 식별합니다.
분석 지침-Level 병렬
ILP, 성능 카운터 및 프로파일링 소프트웨어와 같은 도구는 사용됩니다. 이 도구는 지시 처리량, 파이프라인 씰 및 캐시 미스트와 같은 메트릭을 측정합니다. 이 메트릭의 패턴을 식별하는 것은 평행선이 제한되는 핀 포인트 스테이지를 돕습니다.
시험 지침 의존도는 중요합니다. 데이터 위험은 읽기 후 쓰기 (RAW)와 같은 병렬에서 실행하는 지시를 방지 할 수 있습니다. 위험, 분지 지침에서 훔쳐서 ILP에 영향을 미치는 위험을 제어하십시오.
ILP 개선 전략
여러 기술은 현대 CPU에서 ILP를 향상시킬 수 있습니다. 아웃 주문 실행은 리소스가 유효하게 처리 될 수 있으므로, 종속에 의한 인스톨을 감소시킵니다. 특정 실행은 파이프를 충전 유지하기 위해 지점 결과를 예측합니다.
Compiler 최적화는 또한 역할을합니다. 주문 지침, 최소화 의존성, 그리고 언롤링 루프는 병렬성을 증가시킬 수 있습니다. 등록과 같은 하드웨어 기능은 거짓 의존성을 제거하고, ILP를 개선합니다.
Optimization에 대한 주요 기술
- 파괴상: 위험 감소에 대한 후방 지시.
- Loop Unrolling: 확장 루프를 더 평행한 지시를 노출.
- Register Renaming:] false 의존성을 방지하기 위해 추가 등록자를 사용합니다.
- Branch Prediction: 분기를 최소화하기 위해 계산합니다.
- Out-of-Order Execution: 리소스가 있는 대로 실행 지침.