Definisi RISC
Reduced Instruction Set Computer (RISC), yang jika diterjemahkan berarti “Komputasi Kumpulan Instruksi yang Disederhanakan”, merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana.
Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vektor. Selain digunakan dalam komputer vektor, desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00 dari MIPS Corporation, PowerPC dan Arsitektur POWER dari International Business Machine. Selain itu, RISC juga umum dipakai pada Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel XScale), SPARC dan UltraSPARC dari Sun Microsystems, serta PA-RISC dari Hewlett-Packard. Selain RISC, desain Central Processing Unit yang lain adalah CISC (Complex Instruction Set Computing), yang jika diterjemahkan ke dalam Bahasa Indonesia berarti Komputasi Kumpulan Instruksi yang kompleks atau rumit.
Sejarah RISC
RISC pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar pada University of California di Berkely.
Fase Perkembangan Prosesor RISC
Ide dasar prosesor RISC sebenarnya bisa dilacak dari apa yang disarankan oleh Von Neumann pada tahun 1946. Von Neumann menyarankan agar rangkaian elektronik untuk konsep logika diimplementasikan hanya bila memang diperlukan untuk melengkapi sistem agar berfungsi atau karena frekuensi penggunaannya cukup tinggi (Heudin, 1992 : 18). Jadi ide tentang RISC, yang pada dasarnya adalah untuk menyederhanakan realisasi perangkat keras prosesor dengan melimpahkan sebagian besar tugas kepada perangkat lunaknya, telah ada pada komputer elektronik pertama. Seperti halnya prosesor RISC, komputer elektronik pertama merupakan komputer eksekusi-langsung yang memiliki instruksi sederhana dan mudah didekode.
Hal yang sama dipercayai juga oleh Seymour Cray, spesialis pembuat superkomputer. Pada tahun 1975, berdasarkan kajian yang dilakukannya, Seymour Cray menyimpulkan bahwa penggunaan register sebagai tempat manipulasi data menyebabkan rancangan instruksi menjadi sangat sederhana. Ketika itu perancang prosesor lain lebih banyak membuat instruksi-instruksi yang merujuk ke memori daripada ke register seperti rancangan Seymour Cray. Sampai akhir tahun 1980-an komputer-komputer rancangan Seymour Cray, dalam bentuk superkomputer seri Cray, merupakan komputer-komputer dengan kinerja sangat tinggi.
Pada tahun 1975, kelompok peneliti di IBM di bawah pimpinan George Radin, memulai merancang komputer berdasar konsep John Cocke. Berdasarkan saran John Cocke, setelah meneliti frekuensi pemanfaatan instruksi hasil kompilasi suatu program, untuk memperoleh prosesor berkinerja tinggi tidak perlu diimplementasikan instruksi kompleks ke dalam prosesor bila instruksi tersebut dapat dibuat dari instruksi-instruksi sederhana yang telah dimilikinya. Kelompok IBM ini menghasilkan komputer 801 yang menggunakan instruksi format-tetap dan dapat dieksekusi dalam satu siklus detak (Robinson, 1987 : 143). Komputer 801 yang dibuat dengan teknologi ECL (emitter-coupled logic) , 32 buah register, chace terpisah untuk memori dan instruksi ini diselesaikan pada tahun 1979. Karena sifatnya yang eksperimental, komputer ini tidak dijual di pasaran.
Prosesor RISC Berkeley
Kelompok David Patterson dari Universitas California memulai proyek RISC pada tahun 1980 dengan tujuan menghindari kecenderungan perancangan prosesor yang perangkat instruksinya semakin kompleks sehingga memerlukan perancangan rangkaian kontrol yang semakin rumit dari waktu ke waktu. Hipotesis yang diajukan adalah bahwa implementasi instruksi yang kompleks ke dalam perangkat instruksi prosesor justru berdampak negatif pemakaian instruksi tersebut dalam kebanyakan program hasil komplikasi (Heudin, 1992 : 22). Apalagi, instruksi kompleks itu pada dasarnya dapat disusun dari instruksi-instruksi sederhana yang telah dimiliki.
Rancangan prosesor RISC-1 ditujukan untuk mendukung bahasa C, yang dipilih karena popularitasnya dan banyaknya pengguna.
Realisasi rancangan diselesaikan oleh kelompok Patterson dalam waktu 6 bulan. Fabrikasi dilakukan oleh MOVIS dan XEROX dengan menggunakan teknologi silikon NMOS (N-channel Metal-oxide Semiconductor) 2 mikron. Hasilnya adalah sebuah cip rangkaian terpadu dengan 44.500 buah transistor (Heudin, 1992 : 230). Cip RISC-1 selesai dibuat pada musim panas dengan kecepatan eksekusi 2 mikrosekon per instruksi (pada frekuensi detak 1,5 MHz), 4 kali lebih lambat dari kecepatan yang ditargetkan. Tidak tercapainya target itu disebabkan terjadinya sedikit kesalahan perancangan, meskipun kemudian dapat diatasi dengan memodifikasi rancangan assemblernya.
Berdasarkan hasil evaluasi, meskipun hanya bekerja pada frekuensi detak 1,5 MHz dan mengandung kesalahan perancangan, RISC-1 terbukti mampu mengeksekusi program bahasa C lebih cepat dari beberapa prosesor CISC, yakni MC68000, Z8002, VAX-11/780, dan PDP-11/70.
Hampir bersamaan dengan proses fabrikasi RISC-1, tim Berkeley lain mulai bekerja untuk merancang RISC-2. Cip yang dihasilkan tidak lagi mengandung kesalahan sehingga mencapai kecepatan operasi yang ditargetkan, 330 nanosekon tiap instruksi (Heudin, 1992 : 27-28).
RISC-2 hanya memerlukan luas cip 25% dari yang dibutuhkan RISC-1 dengan 75% lebih banyak register. Meskipun perangkat instruksi yang ditanamkan sama dengan perangkat instruksi yang dimiliki RISC-1, tetapi di antara keduanya terdapat perbedaan mikroarsitektur perangkat kerasnya. RISC-2 memiliki 138 buah register yang disusun sebagai 8 jendela register, dibandingkan dengan 78 buah register yang disusun sebagai 6 jendela register. Selain itu, juga terdapat perbedaan dalam hal organisasi alur-pipa (pipeline) . RISC-1 memiliki alur-pipa dua tingkat sederhana dengan penjeputan (fetch) dan eksekusi instruksi yang dibuat tumpang-tindih, sedangkan RISC-2 memiliki 3 buah alur-pipa yang masing-masing untuk penjemputan instruksi, pembacaan operan dan eksekusinya, dan penulisan kembali hasilnya ke dalam register.
Sukses kedua proyek memacu tim Berkeley untuk mengerjakan proyek SOAR (Smalltalk on RISC) yang dimulai pada tahun 1983. Tujuan proyek ini adalah untuk menjawab pertanyaan apakah arsitektur RISC bekerja baik dengan bahasa pemrograman Smalltalk? Jadi proyek SOAR ini merupakan upaya pertama menggunakan pendekatan RISC untuk pemrosesan simbolik.
Versi pertama mikroprosesor SOAR diimplementasikan dengan menggunakan teknologi NMOS 4 mikron. Cip yang dihasilkan memiliki 35.700 buah transistor dan bekerja dengan kecepatan 300 nanosekon tiap instruksi. Versi kedua yang dirancang pada 1984-1985 menggunakan teknologi CMOS (Complementary Metal-oxide Semiconductor). Beberapa prosesor berarsitektur RISC banyak yang dipengaruhi oleh rancangan mikroprosesor SOAR, misalnya mikroprosesor SPARC (dari Sun Microsystems Inc.) dan KIM20 yang dirancang Departemen Pertahanan Perancis.
Mengikuti proyek SOAR, kelompok Berkeley kemudian mengerjakan proyek SPUR (Symbolic Processing Using RISC) yang dimulai tahun 1985. Proyek SPUR bertujuan untuk merancang stasiun-kerja (workstation) multiprosesor sebagai bagian dari riset tentang pemrosesan paralel (Robinson, 1987 : 145). Selain itu, proyek SPUR juga melakukan penelitian tentang rangkaian terpadu, arsitektur komputer, sistem operasi, dan bahasa pemrograman. Sistem prosesor SPUR dibangun dengan 6-12 prosesor berkinerja tinggi yang dihubungkan satu sama lain, serta dihubungkan dengan memori dan peranti masukan/keluaran melalui Nubus yang telah dimodifikasi. Unjuk kerja sistem diperbaiki dengan menambahkan chace sebesar 128 kilobyte pada tiap prosesor untuk mengurangi kepadatan lalu lintas data pada bus dan mengefektifkan pengaksesan memori (Heudin, 1992 : 31).
Prosesor RISC Stanford
Sementara proyek RISC-1 dan RISC-2 dilakukan kelompok Patterson di Universitas California, pada tahun 1981 itu juga John Hennessy dari Universitas Stanford mengerjakan proyek MIPS (Microprocessor without Interlocked Pipeline Stages) . Pengalaman riset tentang optimasi kompilator digabungkan dengan teknologi perangkat keras RISC merupakan kunci utama proyek MIPS ini. Tujuan utamanya adalah menghasilkan cip mikroprosesor serbaguna 32-bit yang dirancang untuk mengeksekusi secara efisien kode-kode hasil kompilasi (Heudin, 1992: 34).
Perangkat instruksi prosesor MIPS terdiri atas 31 buah instruksi yang dibagi menjadi 4 kelompok, yakni kelompok instruksi isi dan simpan, kelompok instruksi operasi aritmetika dan logika, kelompok instruksi pengontrol, dan kelompok instruksi lain-lain. MIPS menggunakan lima tingkat alur-pipa tanpa perangkat keras saling-kunci antar alur-pipa tersebut, sehingga kode yang dieksekusi harus benar-benar bebas dari konflik antar alur-pipa.
Direalisasi dengan teknologi NMOS 2 mikron, prosesor MIPS yang memiliki 24.000 transistor ini memiliki kemampuan mengeksekusi satu instruksi setiap 500 nanodetik. Karena menggunakan lima tingkat alur-pipa bagian kontrol prosesor MIPS ini menyita luas cip dua kali lipat dibanding dengan bagian kontrol pada prosesor RISC.
MIPS memiliki 16 register dibandingkan dengan 138 buah register pada RISC-2. Hal ini bukan masalah penting karena MIPS memang dirancang untuk mebebankan kerumitan perangkat keras ke dalam perangkat lunak sehingga menghasilkan perangkat keras yang jauh lebih sederhana dan lebih efisien. Perangkat keras yang sederhana akan mempersingkat waktu perancangan, implementasi, dan perbaikan bila terjadi kesalahan.
Sukses perancangan MIPS dilanjutkan oleh tim Stanford dengan merancang mikroprosesor yang lebih canggih, yakni MIPS-X. Perancangan dilakukan oleh tim riset MIPS sebelumnya ditambah 6 orang mahasiswa, dan dimulai pada musim panas tahun 1984. Rancangan MIPS-X banyak diperbaruhi oleh MIPS dan RISC-2 dengan beberapa perbedaan utama:
- Semua instruksi MIPS-X merupakan operasi tunggal dan dieksekusi dalam satu siklus detak
- Semua instruksi MIPS-X memiliki format tetap dengan panjang instruksi 32-bit
- MIPS-X dilengkapi pendukung koprosesor yang efisien dan sederhana
- MIPS-X dilengkapi pendukung untuk digunakan sebagai prosesor dasar dalam sistem multiprosesor memori-bersama (shared memory)
- MIPS-X dilengkapi chace instruksi dalam-cip yang cukup besar (2 kilobyte)
- MIPS-X difabrikasi dengan teknologi CMOS 2 mikron.
Sama seperti MIPS, MIPS-X merupakan prosesor dengan alur-pipa tanpa saling-kunci (interlock) perangkat keras. Perangkat lunaknya dirancang untuk mengikuti pewaktuan instruksi agar tidak terjadi konflik antar alur-pipa (Heudin, 1992 : 36-37).
Chip pertama yang dihasilkan bekerja baik dengan detak 16 MHz, lebih rendah dari target yang dicanangkan setinggi 20 MHz, akibat tidak sempurnanya instruksi percabangan. Versi 25 MHz dibuat dengan menggunakan teknologi CMOS 1,6 mikron. Ditambah dengan chace yang diintregrasikan pada cip prosesor, MIPS-X berisi hampir 150.000 transistor di atas keping seluas 8 x 8,5 mm (Heudin, 1992 : 38).
Ciri-ciri Prosesor RISC
Sebenarnya, prosesor RISC tidak sekedar memiliki instruksi-instruksi yang sedikit dan sederhana seperti namanya tetapi juga mencakup banyak ciri-ciri lain yang tidak semuanya disepakati oleh kalangan perancang sendiri. Meskipun demikian, banyak yang telah bersepakat bahwa prosesor memiliki ciri-ciri tertentu untuk membedakannya dengan prosesor bukan RISC.
- Prosesor RISC mengeksekusi instruksi pada setiap satu siklus detak (Robinson, 1987 : 144; Johnson, 1987 : 153). Hasil penelitihan IBM (International Business Machine) menunjukkan bahwa frekuensi penggunaan instruksi-instruksi kompleks hasil kompilasi sangat kecil dibanding dengan instruksi-instruksi sederhana. Dengan perancangan yang baik instruksi sederhana dapat dibuat agar bisa dieksekusi dalam satu siklus detak. Ini tidak berarti bahwa dengan sendirinya prosesor RISC mengeksekusi program secara lebih cepat dibanding prosesor CISC.
- Instruksi pada prosesor RISC memiliki format-tetap, sehingga rangkaian pengontrol instruksi menjadi lebih sederhana dan ini berarti menghemat penggunaan luasan keping semikonduktor. Bila prosesor CISC (misalnya Motorola 68000 atau Zilog Z8000) memanfaatkan 50% – 60% dari luas keping semikonduktor untuk rangkaian pengontrolnya, prosesor RISC hanya memerlukan 6%-10%. Eksekusi instruksi menjadi lebih cepat karena rangkaian menjadi lebih sederhana (Robinson, 1987 : 144; Jonhson 1987 : 153).
- Instruksi yang berhubungan dengan memori hanya instruksi isi (load) dan instruksi simpan (store) , instruksi lain dilakukan dalam register internal prosesor. Cara ini menyederhanakan mode pengalamatan (addressing) dan memudahkan pengulangan kembali instruksi untuk kondisi-kondisi khusus yang dikehendaki (Robinson, 1987 : 144; Jonhson, 1987: 153). Dengan ini pula perancang lebih menitikberatkan implementasi lebih banyak register dalam cip prosesor. Dalam prosesor RISC, 100 buah register atau lebih adalah hal yang biasa. Manipulasi data yang terjadi pada register yang umumnya lebih cepat daripada dalam memori menyebabkan prosesor RISC berpotensi beroperasi lebih cepat.
- Prosesor RISC memerlukan waktu kompilasi yang lebih lama daripada prosesor CISC. Karena sedikitnya pilihan instruksi dan mode pengalamatan yang dimiliki prosesor RISC, maka diperlukan optimalisasi perancangan kompilator agar mampu menyusun urutan instruksi-instruksi sederhana secara efisien dan sesuai dengan bahasa pemrograman yang dipilih. Keterkaitan desain prosesor RISC dengan bahasa pemrograman memungkinkan dirancangnya kompilator yang dioptimasi untuk bahasa target tersebut.
- Instruksi berukuran tunggal.
- Ukuran yang umum adalah 4 byte.
- Jumlah pengalamatan data sedikit, biasanya kurang dari 5 buah.
- Tidak terdapat pengalamatan tak langsung yang mengharuskanmelakukan sebuah akses memori agar memperoleh alamat operandlainnya dalam memori.
- Tidak terdapat operasi yang menggabungkan operasi load/storedengan operasi aritmatika, seperti penambahan ke memori dan penambahan dari memori.
- 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 alamatdata adalah sebuah instruksi.
- Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih,artinya sedikitnya 32 buah register integer dapat direferensikansekaligus secara eksplisit.
- Jumlah bit floating point register spesifier sama dengan 4 atau lebih,artinya sedikitnya 16 register floating point dapat direferensikan sekaligus secara eksplisit;Beberapa prosesor implementasi dari arsiteketur RISC adalah AMD29000, MIPS R2000, SPARC, MC 88000, HP PA, IBM RT/TC, IBMRS/6000, Intel i860, Motorola 88000 (keluarga Motorola), PowerPC G5.
Karakteristik Eksekusi Instruksi
Salah satu evolusi komputer yang besar adalah evolusi bahasa pemprograman. Bahasa pemprograman memungkinkan programmer dapat mengekspresikan algoritma lebih singkat, lebih memperhatikan rincian, dan mendukung penggunaan pemprograman terstruktur, tetapi ternyata munculmasalah lain yaitu semantic gap, yaitu perbedaan antara operasi-operasi yangdisediakan oleh HLL (High Level Language) dengan yang disediakan oleharsitektur komputer, ini ditandai dengan ketidakefisienan eksekusi, program mesin yang berukuran besar, dan kompleksitas kompiler. Untuk mengurangi kesenjangan ini para perancang menjawabnya dengan arsitektur. Fitur-fiturnya meliputi set-set instruksi yang banyak, lusinan mode pengalamatan, dan statemen-statemen HLL (High Level Language) yang di implementasikan pada perangkat keras. Set-set instruksi yang kompleks tersebut dimaksudkan untuk:
- Memudahkan pekerjaan kompiler.
- Meningkatkan efisiensi eksekusi, karena operasi yang kompleksdapat diimplementasikan di dalam mikro kode.
- Memberikan dukungan bagi HLL yang lebih kompleks dan canggih.
Oleh karena itu untuk memahami RISC perlu memperhatikan karakteristik eksekusi instruksi. Adapun aspek-aspek komputasinya adalah:
- Assignment Statement sangat menonjol yang menyatakan bahwa perpindahan sederhana merupakan satu hal yang penting. Hasil penelitian ini merupakan hal yang penting bagi perancang set instruksi mesin yang mengindikasikan jenis instruksi mana yang sering terjadi karena harus didukung optimal.
- Operand Penelitian Paterson telah memperhatikan [PATT82a] frekuensi dinamik terjadinya kelas-kelas variabel. Hasil yang konsisten diantara program pascal dan C menunjukkan mayoritas referensi menunjuk kevariable scalar. Penelitian ini telah menguji tingkah laku dinamik program HLL yang tidak tergantung pada arsitektur tertentu. Penelitian [LUND77] menguji instruksi DEC-10 dan secara dinamik menemukansetiap instruksi rata-rata mereferensi 0,5 operand dalam memori dan rata-rata mereferensi 1,4 register. Tentu saja angka ini tergantung padaarsitektur dan kompiler namun sudah cukup menjelaskan frekuensi pengaksesan operand sehingga menyatakan pentingnya sebuah arsitektur.
- Procedure Calls Dalam HLL procedure call dan return merupakan aspek pentingkarena merupakan operasi yang membutuhkan banyak waktu dalam program yang dikompilasi sehingga banyak berguna untuk memperhatikan cara implementasi operasi ini secara efisien. Adapun aspek nya yang penting adalah jumlah parameter dan variabel yang berkaitan dengan prosedur dan kedalaman pensarangan (nesting).
- Implikasi Secara umum penelitian menyatakan terdapat tiga buah elemen yangmenentukan karakter arsitektur RISC:
- Penggunaan register dalam jumlah besar yang ditunjukan untuk mengoptimalkan pereferensian operand;
- Diperlukan perhatian bagi perancangan pipeline instruksi karenatingginya proporsi instruksi pencabangan bersyarat dan procedure call, pipeline instruksi yang bersifat langsung danringkas menjadi tidak efisien;
- Terdapat set instruksi yang disederhanakan.
Pipelining RISC
Pipelining adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijaankan oleh microprocessor.
Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.
Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan kinerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara paralel dalam waktu yang bersamaan.
Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang tidak menggunakan pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.
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 dan lancar. Sedangkan ketergantungan terhadap data bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. 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.
Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini.
Pada microprocessor yang tidak menggunakan pipeline , satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik pipeline ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda.
Prosedur Vektor Pipelining:
- Mengambil instruksi dan mem-buffer-kannya.
- 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.
- Tiga kesulitan yang sering dihadapi ketika menggunakan teknik pipeline Terjadinya penggunaan resource yang bersamaan.
- Ketergantungan terhadap data.
- Pengaturan Jump ke suatu lokasi memori.
Perbedaan RISC dengan CISC
CISC (complex instructionset computers ) adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT.
RISC (reduced instruction setcomputers) hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori.
Cara sederhana untuk melihat kelebihan dan kelemahan dari arsitektur RISC (Reduced Instruction Set Computers) adalah dengan langsung membandingkannya dengan arsitektur pendahulunya yaitu CISC (Complex Instruction Set Computers).
Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja.
MULT 2:3, 5:2
MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan. Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.
Pendekatan RISC
Prosesor RISC hanya menggunakan instruksiinstruksi sederhana yang bisa dieksekusi dalam satu
siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Awalnya memang kelihatan tidak efisien Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
CISC
- Penekanan pada perangkat keras
- Termasuk instruksi kompleks multi-clock
- Memori-ke-memori: “LOAD” dan “STORE” saling bekerjasama
- Ukuran kode kecil, kecepatan rendah
- Transistor digunakan untuk menyimpan instruksi2 kompleks
- Banyak watt
- 2-5 GHz
- Mappped
- PC berbasis pilihan via BIOS
- Need Fans, FCC/CE approval an issue
- Seperti PC
- Load and Go
RISC
- Penekanan pada perangkat lunak
- Single-clock, hanya sejumlah kecil instruksi
- Register ke register: “LOAD” dan “STORE” adalah instruksi2 terpisah
- Ukuran kode besar, kecepatan (relatif) tinggi
- Transistor banyak dipakai untuk register memori
- Sedikit ratusan miliwatt
- 200-520 MHz
- Direct, 32 bit
- Custom
- High Temp, Low EM Emissions
- Custom, efisien, dan sangat cepat
- Sulit, membutuhkan BSP level rendah.
Adapun beberapa contoh dari RISC dan CISC adalah sbb:
RISC
- Komputer vektor
- Mikroprosesor Intel 960
- Itanium (IA64) dari Intel Corporation
- Power PC dari International Business Machine, dll.
CISC
- Prosesor system/360
- Prosesor VAX
- Prosesor PDP-11
- CPU AMD
- Intel x86, dll.