Sistem pipeline atau pipelining adalah suatu teknik pengolahan data
dalam arsitektur komputer yang memungkinkan eksekusi instruksi terjadi secara paralel dalam beberapa tahapan (stages). Dalam sistem pipeline, sebuah instruksi dibagi menjadi beberapa tahap yang dijalankan secara berurutan oleh komponen-komponen dalam pipelined. Dalam setiap tahap, instruksi tersebut diproses oleh suatu komponen yang disebut dengan stage, sehingga mempercepat waktu eksekusi dan pengolahan data. Sistem pipeline terdiri dari beberapa tahap, biasanya antara 3-5 tahap tergantung pada jenis arsitektur komputer yang digunakan. Tahap-tahap tersebut meliputi: 1) Fetch: tahap ini bertanggung jawab untuk mengambil instruksi dari memori atau cache dan memuatnya ke dalam pipelined. 2) Decode: tahap ini memecahkan instruksi menjadi op-kode dan operand, kemudian melakukan pemeriksaan validitas instruksi. 3) Execute: tahap ini bertanggung jawab untuk melakukan operasi atau komputasi sesuai dengan instruksi yang diberikan. 4) Memory: tahap ini menyimpan hasil dari eksekusi instruksi ke dalam memori atau cache. 5) Write Back: tahap ini mengambil data dari tahap Memory dan menyimpan hasil akhirnya kembali ke register. Dalam sistem pipeline, instruksi yang berbeda dapat berada dalam tahap yang berbeda-beda pada saat bersamaan sehingga dapat meningkatkan kinerja dan kecepatan pemrosesan data. Namun, terdapat beberapa kendala yang dapat mengurangi kinerja pipelined seperti data hazard, control hazard, dan structural hazard. Data hazard terjadi saat ada dependensi data antar instruksi, control hazard terjadi saat branch instruction tidak diketahui pada saat fetch dan structural hazard terjadi saat dua instruksi membutuhkan satu komponen hardware yang sama.