ScholarGate
Asisten

Pipelining dan Hazard

Pipelining menumpuk eksekusi instruksi-instruksi berurutan dengan membagi pemrosesan instruksi menjadi beberapa tahap, sehingga meningkatkan throughput; hazard adalah situasi—konflik sumber daya, ketergantungan data, dan percabangan—yang mencegah instruksi berikutnya untuk dilanjutkan pada siklus berikutnya.

Temukan Topik dengan PaperMindSegeraFind papers & topics
Tools & resources
Unduh salindia
Learn & explore
VideoSegera

Definition

Pipelining adalah teknik yang menumpuk eksekusi beberapa instruksi dengan membagi pemrosesannya menjadi tahap-tahap berurutan, dan hazard adalah kondisi apa pun yang memaksa suatu tahap untuk berhenti karena tidak dapat melanjutkan dengan benar pada siklus clock berikutnya.

Scope

Topik ini mencakup pipeline instruksi klasik dan tiga kelas hazard yang membatasinya: hazard struktural (konflik sumber daya), hazard data (ketergantungan antar instruksi), dan hazard kontrol (percabangan). Ini mencakup solusi standar—forwarding/bypassing, stalling, dan penanganan percabangan. Ini tidak mencakup penerbitan paralel tingkat lanjut (paralelisme tingkat instruksi), prediksi arah percabangan secara mendalam (prediksi percabangan), dan penyusunan ulang dinamis (eksekusi di luar urutan).

Core questions

  • Bagaimana pembagian eksekusi instruksi menjadi beberapa tahap meningkatkan throughput tanpa mengurangi latensi?
  • Apa itu hazard struktural, data, dan kontrol, dan apa penyebab masing-masing?
  • Bagaimana forwarding menyelesaikan banyak hazard data tanpa stalling?
  • Berapa biaya percabangan dalam pipeline, dan bagaimana hal itu dimitigasi?

Key concepts

  • tahap pipeline (fetch, decode, execute, memory, writeback)
  • throughput vs latensi
  • hazard struktural
  • hazard data
  • hazard kontrol
  • forwarding dan bypassing
  • pipeline stalls dan bubbles
  • penalti percabangan

Key theories

Throughput pipeline dan hazard
Pipeline k-tahap idealnya menyelesaikan satu instruksi per siklus setelah pengisian, tetapi hazard struktural, data, dan kontrol menyebabkan stall yang mengurangi throughput di bawah ideal; desain pipeline berpusat pada meminimalkan stall ini.

Mechanisms

Pemrosesan instruksi dibagi menjadi beberapa tahap sehingga ketika satu instruksi sedang dieksekusi, instruksi lain sedang diambil dan didekode. Hazard struktural muncul ketika dua instruksi membutuhkan sumber daya yang sama; hazard data ketika suatu instruksi membutuhkan hasil yang belum diproduksi; hazard kontrol ketika instruksi berikutnya bergantung pada percabangan yang belum terselesaikan. Forwarding mengarahkan hasil secara langsung antar tahap, stall menyisipkan gelembung ketika forwarding tidak mencukupi, dan penanganan percabangan mengurangi penalti hazard kontrol.

Clinical relevance

Pipelining adalah teknik kinerja fundamental di hampir setiap prosesor, dan pemahaman tentang hazard menjelaskan mengapa urutan instruksi dan perilaku percabangan memengaruhi kecepatan. Penjadwalan instruksi kompiler dan kesadaran programmer akan ketergantungan dan pola percabangan dapat secara signifikan meningkatkan kinerja pada perangkat keras pipelined.

History

Pipelining muncul pada mesin berkinerja tinggi awal seperti IBM Stretch dan CDC 6600 pada awal tahun 1960-an. Pipeline lima tahap sederhana menjadi model pengajaran dan desain kanonik dengan prosesor RISC tahun 1980-an, dan klasifikasi sistematis hazard serta solusinya dikodifikasikan dalam teks Hennessy-Patterson.

Key figures

  • John L. Hennessy
  • David A. Patterson
  • Seymour Cray

Related topics

Seminal works

  • hennessy2019
  • patterson2020

Frequently asked questions

Apakah pipelining membuat satu instruksi berjalan lebih cepat?
Tidak. Pipelining tidak mengurangi waktu untuk menyelesaikan satu instruksi (latensi); ini meningkatkan berapa banyak instruksi yang selesai per unit waktu (throughput) dengan menumpuk eksekusinya, mirip dengan bagaimana jalur perakitan meningkatkan output tanpa mempercepat satu item pun.
Apa itu forwarding?
Forwarding, atau bypassing, mengarahkan hasil yang baru dihitung secara langsung dari tahap yang memproduksinya ke tahap selanjutnya yang membutuhkannya, alih-alih menunggu untuk ditulis kembali ke register file. Ini menyelesaikan banyak hazard data tanpa menghentikan pipeline.

Methods for this concept

Related concepts