Saturday 13 December 2014

Branch in Instruction Pipeline

MASALAH DENGAN BRANCH

Branch atau percabangan instruksi seringkali kita temukan dalam suatu program atau kode. Pada instruction pipelining, sebuah instruksi yang bercabang dapat menimbulkan masalah berupa delay dan kesulitan menentukan instruksi mana yang harus dilakukan setelahnya, seperti yang diilustrasikan berikut:
Misalnya kita memiliki sebuah kode:

Hazard in Pipelining

Dalam mengimplementasi pipelining, terdapat 3 kondisi yang menyebabkan pipelining kehilangan sebagian total kinerja yang bisa diraih. 3 kondisi ini dikenal dengan hazard.

1.       Structural Hazard
Structural hazard terjadi karena adanya konflik dalam penggunaan resource oleh masing-masing instruksi yang sedang berada dalam pipeline.

Pipelining pada dasarnya memungkinkan beberapa instruksi dikerjakan dalam waktu yang bersamaan. Ketika masing-masing instruksi tersebut dieksekusi, mesin harus mampu memenuhi resource yang dibutuhkan. Ada kalanya mesin tidak mampu melakukan hal tersebut, yang menyebabkan sebuah resource mengalami konflik dalam penggunaannya oleh instruksi-instruksi yang kebetulan akan mengakses resource yang sama.

Instruction Pipeline

Instruction pipeline adalah teknik yang digunakan pada komputer untuk meningkatkan throughput eksekusi instruksi pada Central Processing Unit (CPU). Pipeline adalah sekumpulan tahapan proses yang terhubung secara berurutan.Output dari sebuah tahap proses menjadi input untuk tahap berikutnya. Pipeline tidak mengurangi waktu eksekusi sebuah instruksi tetapi meningkatkan jumlah instruksi yang dapat diproses secara bersamaan.


Dibawah ini akan dibahas tentang Instruction Pipeline pada CPU. Hal-hal yang dicakup antara lain adalah konsep mengenai pipeline, permasalahan, dan hambatan yang ada pada pipeline khususnya mengenai dependensi data, penanganan percabangan instruksi, dan penjelasan mengenai contoh implementasi pipeline pada beberapa prosesor komputer.

KONSEP PIPELINE
Diasumsikan pada sebuah bisnis warung makan memiliki tiga tahapan pekerjaan yaitu Menyiapkan bahan makanan, Memasak, dan Mengantar makanan ke meja pelanggan yang masing-masing dikerjakan oleh satu orang. Setiap pesanan pelangganyang diterima akan selalu mengalami tiga tahapan tersebut. Berikut adalah ilustrasi urutan proses jika tidak menggunakan konsep pipeline.

Gambar 1. Proses Sumber Daya Tanpa Pipeline