Rabu, 24 Juni 2009

COMPLEX INSTRUCTION SET COMPUTER (CISC)

Definisi

Complex instruction-set computing atau Complex Instruction-Set ComputerCISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC. (

Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik", yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi "level tinggi" seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.

Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana.

Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur -arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970 (Pusat Penelitian Watson IBM 801 - IBMs)

Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.

Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.

Pada arsitektur CISC seperti Intel x86, yang diperkenalkan pada tahun 1978, bisa terdapat ratusan instruksi program - perintah-perintah sederhana yang menyuruh sistem menambah angka, menyimpan nilai, dan menampilkan hasilnya. Bila semua instruksi panjangnya sama, instruksi sederhana akan memboroskan memori. Instruksi sederhana membutuhkan ruang penyimpanan 8 bit, sementara instruksi yang paling kompleks mengkonsumsi sebanyak 120 bit. Sehingga hal tersebut akan mengurangi kecepatannya.

Arsitektur berbasis CISC juga memungkinkan para perancang prosesor untuk menambahkan set instruksi tambahan untuk keperluan tertentu disamping set instruksi standar yang sudah ada, misalnya set instruksi MMX (Multimedia Extension) yang ditambahkan pada prosesor buatan Intel, dan 3Dnow! pada prosesor keluaran AMD. Karena itulah maka keluarga prosesor CISC lebih banyak digunakan dalam komputer pribadi dimana aplikasinya lebih luas, sementara keluarga prosesor RISC hanya digunakan pada workstation yang biasanya memiliki lingkup aplikasi yang lebih sempit.

Diantara kelebihan dan kekurangan dari arsitektur RISC dan arsitektur CISC sampai sekarang masih menjadi sebuah perdebatan. Ada juga teknologi yang menggabungkan kedua arsitektur tersebut, contohnya : Prosesor Intel dan AMD yang dijual secara komersil sekarang adalah pengembangan dari prosesor x86 yang menggunakan basis prosesor CISC. Lucunya, instruksi set yang didukung oleh kedua prosesor tersebut menggunakan instruksi RISC yang lebih efisien dalam menangani data.

Saat ini perbandingan keunggulan antara RISC dan CISC masih terus berlanjut dengan kelebihan dan kekurangan masing-masing. Secara umum perbedaan antara keduanya dapat terlihat pada tabel di bawah ini:

Feature

Low Power RISC

PC/Desktop CISC

Power

A few hundreds of milliwatts

Many watts

Compute Speed

200-520 Mega Hz

2-5 Giga Hz

Memory Management

Direct, 32 bit

Mapped

I/O

Custom, any sort of hardware

PC based options via a BIOS

Cost

Dollars

Tens to hundreds of Dollars

Environmental

High Temp, Low EM Emissions

Needs Fans, FCC/CE approval an issue

Interrupt Structure

Custom, efficient, very fast

PC-like

Operating System Port

Difficult, requires low-level BSP. Roughly equivalent to making a Mac OS run on a SPARC Station

Load and Go- simplified by an industry standard BIOS

Terlihat beberapa perbedaan yang mencolok antara keduanya, pada daya yang dibutuhkan RISC membutuhkan sedikit daya dibandingkan dengan CISC. Kecepatan komputasi CISC jauh lebih unggul, kemudian dengan metode pengalamatan RISC lebih unggul dalam kecepatan dengan menggunakan pengalamatan secara langsung. Harga CISC puluhan kali lipat dari RISC karena kompleksotas dari CISC. Keduanya mengemisikan panas hanya saja pada CISC dibutuhkan sistem pendinginan. Untuk interrupt pada RISC lebih mudah diterapkan dan lebih cepat. Keuntungan dari CISC pada sistem operasi yang lebih mudah pengimplementasiannya dibandingkan dengan RISC.

Secara umum kelebihan dari RISC yaitu kesederhanaan dari instruksinya. Dengan jumlah instruksi yang lebih sedikit maka jumlah transistor yang dibutuhkan semakin sedikit yang tentu saja berujung pada murahnya sistem ini dibandingkan dengan seterunya. Selain itu dengan lebih sedikitnya instruksi hanya pada instruksi yang sering digunakan saja maka waktu komputasi computer akan semakin sedikit. Kelebihan utama dari RISC adalah fasilitas prefatch dan pipe line, untuk CISC sendiri eksekusi dilakukan secara sekuensial. Sedangkan untuk CISC, kelebihannya terdapat dalam pengimplementasian menggunakan software dimana akan lebih memudahkan programmer, dimana untuk RISC software yang dibuat akan jauh lebih kompleks dikarenakan instruksinya yang sedikit.

Sebenarnya faktor kecepatan merupakan faktor yang sering dijadikan tolak ukur perbandingan keduannya. Dengan contoh berikut maka dapat diketahui keunggulan masing-masing.
Contoh
1. menambahkan dua operan (x dan y) yang berada di memory lalu mengembalikannya ke memory
Asumsi: waktu lama = A, waktu sebentar =B.
IF = Instruction Fetch → A
De = Decoding Instruction → B
DF = Data Fetch → A
Ex = Execution → B
S = Store → A
-CICS:
add x,y IF De DF DF Ex S
A B A A B A
Waktu yang dibutuhkan = 4A dan 2 B
-RISC
load R1,x IF De DF Ex A B A B
load R2,y IF De DF Ex A B A B
add R1,R2 IF De Ex A B B
store x,R1 IF De S A B A
A A A A B A
Waktu yang dibutuhkan = 5A dan 1B
→ maka dari contoh diatas CISC lebih cepat dibandingkan dengan RISC

2. y = ax2 + bx + c
-CISC
y = (ax + b)x + c
mul a,x IF De DF DF Ex S
add a,b IF De DF DF Ex S
mul a,x IF De DF DF Ex S
add a,c IF De DF DF Ex S
store y,a IF De DF S
A B A A B A A B A A B A A B A A B A A B A A B A A B A A
Waktu yang dibutuhkan = 19A dan 9B
-RISC
y = (ax +b)x + c
load R1,a IF De DF Ex A B A B
load R2,x IF De DF Ex A B A B
mul R1,R2 IF De Ex A B B
load R3,b IF De DF Ex A B A B
add R1,R3 IF De Ex A B B
mul R1,R2 IF De Ex A B B
load R2,c IF De DF Ex A B A B
add R1,R2 IF De Ex A B B
store y,R1 IF De S A B A
A A A A A A A A A B A
Waktu yang dibutuhkan = 9A dan 1B
→ jadi hasil dari RISC jauh lebih cepat dibandingkan CISC

Dari hasil contoh dapat dilihat bahwa kecepatan keduannya tergantung dari panjang instruksi tersebut. Pada contoh pertama CISC lebih cepat karena hanya satu instruksi saja dan CISC langsung mengakses memori, sedangkan pada contoh kedua kekuatan dari RISC baru kelihatan yaitu prefatch dan pipe line yaitu variabel yang sudah diinisialisasi tidak perlu dipanggil lagi dan operasi dapat dijalankan secara pipe line sehinga sangat menghemat waktu dan tentu saja mengoptimalkan kerja dari prosesor. Untuk catatan pengoptimalan kerja dari prosesor imungkinkan karena instruksi dari RISC yang sederhana.

Pada kenyataannya jarang variabel hanya dipanggila sekali dan jarang sekali instruksi yang digunakan hanya satu saja, maka kesimpulan saya RISC lebih baik dibandingkan dengan CISC. Hal ini dapat terlihat bila kita menimbang-nimbang keuntungan dan kerugian, keuntungan menggunakan RISC jauh lebih banyak

Namun pada kenyataannya sekarang hampir tidak ada lagi yang murni RISC atau CISC. RISC sekarang banyak menambah kompleksitasnya dan CISC semakin menjadi efisien dengan menggunakan kelebihan satu sama lain dan semakin memperbaiki dan menyempurnakan diri.

Sebagai alternative baru dan penyegaran dari konflik RISC dan CISC muncul EPIC (Explicitly Parallel Instruction Computing). Nantinya pada low end akan terbagi antara RISC dan CISC lalu pada high end akan menggunakan EPIC


DAFTAR PUSTAKA:







CISC (Ceduced Instruction Set Computer)
CISC VS RISC

Tidak ada komentar: