Pipelining dan RISC
A.
Pengertian Pipeline
Pipeline adalah suatu cara yang
digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang
berbeda yang dialirkan secara kontinu pada unit pemrosesan. Dengan cara ini,
maka unit pemrosesan selalu bekerja. Teknik pipeline ini dapat diterapkan pada
berbagai tingkatan dalam sistemkomputer. Bisa pada level yang tinggi, misalnya
program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang
dijaankan oleh microprocessor.
Pada umumnya, efisiensi sebuah
komputer dinilai beerdasarkan kecepatan perangkat keras dan fasilitas-fasilitas
perangkat lunak. Penilaian ini disebut sebagai throughput, didefinisikan
sebagai jumlah pemrosesan yang dapat dikerjakan dalam suatu interval waktu
tertentu. Salah satu teknik yang mendorong peningkatan suatu sistem throughput
yang cukup hebat disebut sebagai pemrosesan pipeline. Konsep pemrosesan
pipeline dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu
pabrik industri. Ambil contoh, sutu proses pembuatan mobil. Ketika sebuah mobil
dibuat, mobil tersebut berpindah sepanjang ban berjalan dengan berurutan,
melewati beberapa stasiun. Pada setiap stasiun, dikerjakan sebagian proses
konstruksi pada mobil itu, kemudian berpindah lagi ke stasiun berikutnya.
Perpindahan mobil itu dari satu stasiun ke stasiun lainnya, memungkinkan
beberapa mobil berada pada baris perakitan pada waktu yang bersamaan,
masing-masing pada stasiun yang terpisah. Dengan demikian, hal ini
mengakibatkan kita menghasilkan mobil dari baris perakitan satu persatu secara
berurutan. Tanpa teknik baris perakitan seperti ini, pengerjaan suatu mobil
tidak dapat dimulai sampai mobil yang sebelumnya benar-benar selesai.
Pemrosesan pipeline dalam suatu komputer diperoleh
dengan membagi suatu fungsi yang akan dijalankan menjadi beberapa subfungsi
yang lebih kecil dan merancang perangkat keras yang terpisah, disebut sebagai
tingkatan (stage), untuk setiap subfungsi. Stage-stage itu kemudian dihubungkan
bersama-sama dan membentuk sebuah pipeline tunggal (atau pipe) untuk
menjalankan fungsi asli tersebut.
C.
Keuntungan
dan Kerugian
Pipelining tidak membantu dalam semua kasus. Ada
beberapa kemungkinan kerugian. Pipa instruksi dikatakan sepenuhnya pipelined
jika dapat menerima instruksi baru setiap clock cycle. Sebuah pipa yang tidak
sepenuhnya pipelined telah menunggu siklus yang menunda kemajuan pipa.
Keuntungan
dari Pipelining :
1.
Waktu siklus prosesor berkurang, sehingga meningkatkan
tingkat instruksi dalam kebanyakan kasus( lebih cepat
selesai).
2.
Beberapa combinational sirkuit seperti penambah atau
pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat sirkuit
& combinational yang lebih kompleks.
3.
Pemrosesan dapat dilakukan lebih cepat, dikarenakan
beberapa proses dilakukan secara bersamaan dalam satu waktu.
Kekurangan
Pipelining :
1.
Pipelined prosesor menjalankan beberapa instruksi pada
satu waktu. Jika ada beberapa cabang yang mengalami penundaan cabang (penundaan
memproses data) dan akibatnya proses yang dilakukan cenderung lebih lama.
2.
Instruksi latency di non-pipelined prosesor sedikit
lebih rendah daripada dalam pipelined setara. Hal ini disebabkan oleh fakta
bahwa intruksi ekstra harus ditambahkan ke jalur data dari prosesor pipeline.
3.
Kinerja prosesor di pipeline jauh lebih sulit untuk
meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
4.
Karena beberapa instruksi diproses secara bersamaan
ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama,
sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan
dengan benar.
5.
Sedangkan ketergantungan terhadap data, bisa muncul,
misalnya instruksi yang berurutan memerlukan data dari instruksi yang
sebelumnya.
6.
Kasus Jump, juga perlu perhatian, karena ketika sebuah
instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi
perubahan program counter, sedangkan instruksi yang sedang berada dalam salah
satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya
perubahan program counter.
D. RISC (Reduced Instruction Set Computer)
RISC singkatan dari Reduced Instruction Set Computer. Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk negeset istruksi dalam komunikasi diantara arsitektur yang lainnya.
Sejarah RISC
Proyek RISC pertama dibuat oleh IBM, stanford dan UC –Berkeley pada akhir tahun 70 dan awal tahun 80an. IBM 801, Stanford MIPS, dan Barkeley RISC 1 dan 2 dibuat dengan konsep yang sama sehingga dikenal sebagai RISC.
RISC mempunyai karakteristik :
1. one cycle execution time : satu putaran eksekusi. Prosessor RISC mempunyai CPI (clock per instruction) atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada CPU.
2. large number of registers: Jumlah register yang sangat banyak. RISC di Desain dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.
3. pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien.
Ciri-ciri :
- Instruksi berukuran tunggal
- Ukuran yang umum adalah 4 byte
- Jumlah pengalamatan data sedikit,
- Tidak terdapat pengalamatan tak langsung
- Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika
- Tidak terdapat lebih dari satu operand beralamat memori per instruksi
- Tidak mendukung perataan sembarang bagi data untuk operasi load/ store.
- Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah sebuah instruksi .
E. Instruksi Pipeline
Tahapan pipeline :
- Mengambil instruksi dan membuffferkannya
- Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut .
- Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya .
Instuksi pipeline:
Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut.Sebagai contoh :
Instruksi 1: ADD AX, AX
Instruksi 2: ADD EX, CX
Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID).
SUMBER :
Tidak ada komentar:
Posting Komentar