Sejak perkembangan komputer penyimpanan program pada sekitar 1950-an, telah terjadi sejumlah inovasi penting dalam bidang organisasi dan arsitektur komputer. Walaupun tidak memuat seluruh inovasi tersebut, berikut ini akan diuraikan beberapa kemajuan yang besar dalam bidang komputer sejak kelahirannya.
· Family Concept : diperkenalkan oleh IBM dengan system/360-nya pada 1964, dan kemudian diikuti oleh DEC dengan PDP-8-nya. Konsep keluarga (Family Concept) melepaskan arsitektur mesin dari implementasinya. Sejumlah komputer yang yang karakteristik kinerja dan harganya berlainan dengan arsitektur yang sama telah ditawarkan kepada pengguna. Perbedaan harga dan kinerja terjadi karena adanya perbedaan implementasi dari arsitektur yang sama.
· Microprogrammed Control Unit : Dibuat oleh Wilkes pada 1951, dan pertama kali diluncurkan oleh IBM pada S/360 pada 1964. Pemrograman mikro mempermudah pekerjaan perencanaan dan implementasi unit control dan mempermudah konsep keluarga.
· Cache Memmory : Pertama kali diperkenalkan secara komersial pada mesin IBM S/360 model 85 pada 1968. Penambahan model ini kedalam hirarki memory telah berhasil meningkatkan kinerja secara dramatis.
· Pipelining : Suatu cara unutk menerapkan paralelisme kedalam sifat sekuansial penting bagi program instruksi mesin. Contoh – contohnya adalan pengolahan pipelining dan vector.
· Multiple Processor : kategori ini mencakup sejumlah organisasi dan tujuan.
Dan salah satu bentuk evolusi komputer yang dirasakan adalah evolusi bahasa pemrograman. Dengan semakin murahnya harga perangkat keras, harga perangkat lunak relatif telah mengalami peningkatan. Pada waktu yang bersamaan, kurangnya pemrogram telah mengakibatkan harga perangkat lunak semakin mahal. Akibaynya, biaya terbesar dalam siklus kehidupan sistem dihabiskan untuk keperluan perangkat lunak, bukannya perangkat keras. Sebagai tambahan terhadap biaya dan ketidaknyamanan tersebut, terhadap elemen ketidakreabilitasan, adalah suatu hal yang umum bagi pemrogram, baik system maupun aplikasi, untuk terus mengandung bug – bug baru setelah dioperasikan beberapa lama.
PEMECAHAN
Sebagai jawaban dari para peneliti dan industri adalah dengan membuat program bahasa tingkat tinggi yang lebih baik dan lebih kompleks. Bahasa – bahasa tingkat tinggi (HLL-High Level Language) ini memungkinkan program dapat mengekspresikan algoritma lebih singkat., lebih memperhatikan rincian, dan seringkali mendukung secara alami penggunaan pemrograman secara terstruktur.
Solusi ini menimbulkan masalah lainnya, yang dikenal sebagai semantic gap, yaitu perbedaan antara operasi – operasi yang disediakan HLL dengan operasi – operasi yang disediakan oleh arsitektur komputer. Tanda – tanda adanya gap ini dinyatakan dengan terjadinya ketidakefisienan eksekusi, program mesin yang berukuran besar, dan kompleksitas kompiler. Untuk mengurangi kesenjangan ini, para perancang menjawabnya dengan arsitektur. Feature- feature pentingnya meliputi set – set instruksi yang banyak, lusinan mode pengalamatan dan bermacam – macam statemen HLL yang diimplementasikan didalam perangkat keras. Sebagai contoh implementasi perangkat keras tersebut adalah instruksi mesin CASE pada VAX.
ALAT
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.
BAB II
LANDASAN TEORI
CISC merupakan kepanjangan dari ComplexInstruction Set Computing atau Complex Instruction Set Komputer (CISC; "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. Di lain pihak, banyaknya instruksi dalam CISC dapat mengurangi kecepatannya. Chip Intel x86 merupakan chip dari jenis CISC karena ia menggunakan set instruksi kompleks.
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. CISC yang merupakan kebalikan dari RISC, biasanya digunakan pada keluarga processor untuk PC (AMD, Cyrix). Para pesaing Intel seperti Cyrix dan AMD juga telah menggunakan chip RISC tetapi ia telah dilengkapi dengan penukar (converter) CISC. 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.
BAB III
PEMBAHASAN
Mengenal Lebih Dekat Prosesor Mikro
Bila sebuah komputer diibaratkan sebagai tubuh manusia, maka prosesor mikro (processor) adalah otaknya. Kecepatan sebuah komputer sebagian besar bergantung kepada kecepatan prosesor yang terpasang didalamnya. Makin cepat prosesor yang digunakan sebuah PC, maka makin kencang kerja PC tersebut. Salah satu faktor penentu kecepatan sebuah prosesor adalah jumlah transistor yang berada didalamnya.
Pada komputer tempo dulu seperti ENIAC, transistor yang digunakan berupa tabung-tabung hampa udara. Sedangkan transistor pada komputer masa kini berupa rangkaian silikon yang tersusun sebagai sebuah IC (Integrated Circuit) yang berada dalam keping sebuah prosesor. Keping IC ini cuma berukuran tidak lebih dari satu inchi persegi (kira-kira seukuran kuku ibu jari), tapi dapat menampung sampai jutaan transistor.
Jumlah transistor dalam keping sebuah prosesor terus meningkat dari waktu ke waktu, seiring dengan kemajuan dalam bidang desain dan pabrikasi prosesor. Dalam sebuah prosesor 8088 (PC-XT) dengan clock speed 5 MHz yang diperkenalkan pada 1979, menampung 29.000 transistor dengan ukuran 3 mikron lebih tipis dari rambut manusia yang tebalnya 100 mikron.
Peningkatan yang signifikan terjadi pada pada era prosesor 80286 (PC-AT) menjadi 134.000 transistor dengan ukuran 1,5 mikron yang bekerja pada clock speed 6 MHz. Berikutnya, pada era prosesor 80486, yang jumlah transistornya menjadi 1.200.000 dengan ukuran 1 mikron dan bekerja dengan clock speed 25 MHz. Era Pentium oleh Intel tahun 1993 melipatgandakan jumlah transistor menjadi 3.100.000 dengan ukuran 0.8 mikron pada 60 MHz. Jumlah ini meningkat sangat tajam pada generasi prosesor keluaran Intel selanjutnya hingga pada keluarga prosesor Pentium 4. Intel berhasil menjejalkan 42.000.000 transistor seukuran 0,18 mikron kedalam keping chip yang luasnya tidak berubah. Jumlah transistor sedemikian mendongkrak clock speed prosesor tersebut hingga diatas 1.5 GHz.
Lebih banyak transistor juga memungkinkan berkembangnya teknologi pipelining. Dalam arsitektur pipeline, beberapa set instruksi dapat dijalankan dalam waktu yang bersamaan. Dengan demikian, biar pun setiap instruksi dapat membutuhkan 5 clock cycle, setiap instruksi dapat dieksekusi secara simultan dalam tingkatan (stage) yang berbeda. Sehingga seolah-olah prosesor dapat menyelesaikan satu instruksi / beberapa set instruksi setiap satu clock cycle. Namun, apakah anda sudah mengenal apa yang dinamakan Set Instruksi?? Dalam pembahasan selanjutnya, akan diterangkan sedikit tentang Set Instruksi.
Definisi Set Instruksi
Set instruksi adalah kode-kode dari instruksi-instruksi (instruction mesin) yang dapat diterjemahkan dalam bahasa mesin (machine language). Set instruksi tersebut yang nantinya menjadi bahan dasar dari proses CPU. Setiap CPU memiliki berbeda-beda set insruksinya tergantung dari bagaimana arsitektur CPU dibuat, seorang programmer akan kesulitan memprogram jika tidak mengetahui arsitektur CPU, karena set instruksi yang menjadi acuan seorang programmer untuk memprogram mesin tersebut. Set instruksi terdiri dari kode operasi (opcode) dan operand, Banyak type dari set instruksi sebuah CPU seperti: data processing, data storage, data movement, dan control. Type-type tersebut merupakan dasar dari type-type saat ini dan setiap CPU baik Intel dan AMD akan berbeda-beda.
Perbedaan dari set instrusi akan memberikan perbedaan karakteristik dari sebuah CPU. Ada dua model set instruksi yang menjadi dasar dari mesin (CPU) saat ini, yaitu: RISC (reduce Instruction Set Komputer) dan CISC (Complex Instrution Set Komputer).
Kriteria Rancangan Untuk Format – Format Instruksi
Ketika suatu tim rancangan komputer harus memilih format – format instruksi untuk mesinnya, mereka harus mempertimbangkan sejumlah faktor. Kesulitan dalam membuat pilihan ini tidak boleh dianggap mudah. Keputusan mengenai format instruksi harus dibuat sejak dini dalam merancang sebuah komputer baru. Jika komputer tersebut berhasil secara komersial, kumpulan instruksi bisa bertahan selama 20 tahun atau lebih. Kemampuan untuk menambah instruksi – instruksi baru dan memanfaatkan kesempatan – kesempatan lain yang muncul selama jangka waktu yang lama sangatlah penting, dengan syarat arsitektur tersebut dan perusahaan mengembangkannya mampu bertahan cukup lama agar arsitektur tersebut bisa bertahan lama. Efisiensi dari suatu level set instruksi tentu sangat bergantung pada teknologi yang akan digunakan untuk mengimplementasikan teknologi tersebut.
Asalkan segala sesuatu tetap sama, instruksi – instruksi singkat lebih bagus daripada instruksi – instruksi panjang. Sebuah program yang berisi n instruksi 16 bit membutuhkan hanya separuh ruang memori sebanyak yang dibutuhkan n instruksi 32 bit. Dengan harga memori yang semakin murah, faktor ini mungkin kurang penting di masa mendatang, jika itu karena bukan fakta bahwa software mengalami perubahan lebih cepat daripada penurunan harga memori.
Di sisi lain, dengan menggunakan instruksi – instruksi singkat justru mungkin akan semakin menyulitkan unutk mendekode atau melengkapi instruksi – instruksi tersebut. Oleh karena itu, untuk mencapai ukuran instruksi yang singkat, harus mempertimbangkan waktu yang dibutuhkan untuk mendekodekan dan menjalankan instruksi – instruksi tersebut.
Alasan lain untuk mengurangi panjang instruksi menjadi semakin penting berkat adanya prosesor – prosesor yang lebih cepat dan mempunyai lebar pita memori (jumlah bit - bit per detik yang dapat disuplai oleh memori) yang lebih cepat pula. Pertumbuhan mengesankan dalam kecepatan prosesor selama dekade terakhir ini tidak diimbangi oleh peningkatan serupa dalam bandwidth memori. Salah satu kelemahan umum pada prosesor – prosesor bersumber dari ketidakmampuan system memori untuk mensuplai instruksi- instruksi dan operand – operand secepat prosesasor menggunakan mereka. Setiap memori memiliki sebuah bandwidth yang ditentukan oleh teknologi dan rancangan pembuatannya. Kendala bandwidth bukan hanya berlaku pada memori utama, tetapi juga pada semua cache.
Menjalankan Instruksi
CPU menjalankan setiap instruksi dalam beberapa langkah kecil. Jelasnya, langkah – langkah tersebut adalah :
1. Mengambil instruksi berikutnya dari memori dan membawanya kedalam register instruksi.
2. Mengubah PC (Program Counter = Pencacah Program) agar menunjuk ke instruksi selanjutnya.
3. Menentukan jenis instruksi yang baru saja diambil.
4. Jika instruksi tersebut menggunakan sebuah word dalam memori, ditentukan dimana instruksi tersebut berada.
5. Mengambil word tersebut, jika diperlukan, dan membawanya kedalam sebuah register CPU.
6. Menjalankan instruksi.
7. Kembali ke langkah 1 untuk memulai menjalankan instruksi selanjutnya.
Rangkaian langkah – langkah ini sering disebut sebagai siklus baca-decode-execute. Langkah – langkah ini sangat penting bagi pengoperasian semua komputer.
Komputeer – komputer zaman dahulu memiliki instruksi yang sederhana dan dalam jumlah yang kecil. Adanya permintaan untuk komputer – komputer yang lebih unggul telah menghasilkan instruksi – instruksi individu yang lebih unggul pula. Sejak awal, telah diketahui bahwa instruksi – instruksi yang lebih rumit sering membuat program – program dijalankan lebih cepat meskipun masing – masing instruksi mungkin membutuhkan waktu lebih lama untuk dijalankan.
Instruksi – instruksi yang lebih complex masih dapat dijalankan dengan baik karena pelaksanaan – pelaksanaan operasi individu kadang – kadang dapat ditumpangtindihkan atau dapat juga dijalankan secara parallel dengan menggunakan hard ware berbeda. Untuk komputer – komputer mahal berkinerja tinggi, biaya tambahan hardware ini tidak menjadi masalah. Jadi, komputer – komputer mahal dan berkinerja tinggi tampaknya memiliki lebih banyak instruksi daripada komputer – komputer murah. Adanya perkembangan software memerlukan persyaratan – persyaratan kompatibilitas instruksi dalam mengimplementasikan instruksi – instruksi kompleks. Tuntutan ini juga berlaku untuk komputer – komputer murah pada satu sisi, di sisi lain adanya pertimbangan biaya yang cukup tinggi.
Procedure Call
Procedure call merupakan operasi yang paling banyak membutuhkan waktu dalam program – program yang di kompilasi. Dengan demikian, akan sangat berguna apabila memperhatikan cara implementasi operasi – operasi ini secara efisien.
Suatu prosedur adalah sekelompuk instruksi – instruksi yang menjalankan tugas tertentu dan dapat dipanggil dari beberapa tempat dalam program. Istilah soubroutine sering digunakan daripada istilah procedure, terutama ketika menunjuk ke program – program bahasa asembli. Dalam Java, istilah yang digunakan adalah metode. Ketika prosedur telah menyelesaikan tugasnya, ia harus kembali ke pernyataan setelah panggilan tersebut. Karena itu, alamat kembali harus ditranmisikan ke prosedur atau disimpan di tempat lain sehingga alamat tersebut dapat dilokasikan ketika tiba waktunya untuk kembali.
Alamat kembali bisa ditempatkan pada salah satu dari tiga tempat : memori, register, atau stack. Jelas sekali solusi terburuk adalah menempatkan alamat tersebut kedalam lokasi memori tunggal yang bersifat tetap. Dalam skema ini, jika prosedur memanggil prosedur lain, panggilan kedua akan menyebabkan alamat kembali dari prosedur pertama akan hilang.
Suatu perkembangan kecil adalah meminta instruksi panggilan prosedur menyimpan alamat kembali dalam word pertama dari prosedur itu, dengan instruksi yang dapat dijalankan pertama ditempatkan di kata kedua. Kemudian prosedur itu dapat kembali dengan mencabangkan secara langsung ke kata pertama atau jika hardware menempatkan opcode untuk cabang di kata pertama bersama dengan alamat kembali, dengan membuat cabang secara langsung ke kata tersebut. Prosedur itu bisa memanggil prosedur – prosedur lain, karena setiap prosedur memiliki ruang untuk satu alamat kembali. Jika porsedur itu memanggil dirinya sendiri, skema ini tidak akan berjalan, karena alamat kembali yang pertama akan dihancurkan oleh panggilan kedua. Kemampuan sebuah prosedur untuk memanggil dirinya sendiri, yang disebut rekursi, sangat penting baik bagi teoris maupun para pemrogram praktik. Di samping itu, jika prosedur A memanggil prosedur B, dan prosedur B memanggil prosedur C, dan prosedur C memanggil prosedur A (rekursi tidak langsung atau daisy-chain), skema ini juga akan gagal.
Kemajuan yang lebih besar adalah meminta instruksi panggilan prosedur menempatkan alamat kembali didalam sebuah register, jadi tanggungjawab untuk menyimpannya di sebuah tempat yang aman diserahkan kepada prosedur itu. Jika prosedur itu rekursi, ia harus menempatkan alamat kembali disebuah tempat berbeda setiap kali ia dipanggil.
Hal terbaik yang bisa dilakukan instruksi panggilan prosedur atas alamat kembali adalah mendorongnya ke sebuah stack. Ketika prosedur tersebut selesai, ia mengeluarkan alamat kembali tersebut dari stack dan memasukkannya kedalam pencacah program. Jika panggilan prosedur semacam ini ada, rekursi tidak menimbulkan masalah tertentu apapun, alamat kembali itu secara otomatis akan disimpan sedemikian rupa sehingga tidak menghancurkan alamat – alamat kembali sebelumnya.
Pipelining
Telah lama diketahui bahwa membaca instruksi dari memori merupakan hambatan utama dalam hal kecepatan untuk menjalankan suatu instruksi. Untuk mengatasi masalah ini, komputer – komputer generasi IBM Strech (1959) telah memiliki kemampuan untuk mengambil terlebih dahulu instruksi – instruksi dari memori, sehingga instruksi – instruksi tersebut akan selalu siap ketika mereka dibutuhkan. Instruksi – instruksi ini dikumpulkan dalam sekumpulan register yang disebut penyangga prabaca.Dengan cara ini, ketika sebuah instruksi dibutuhkan, instruksi tersebut biasanya dapat segera diambil dari penyangga prabaca daripada menunggu sebuah memori membaca hingga selesai.
Oleh karena itu, system prabaca membagi pelaksanaan instruksi menjadi dua bagian; membaca dan pelaksanaan actual. Konsep pipeline menjelaskan startegi ini lebih jauh. Pelaksanaan instruksi sering dibagi kedalam banyak bagian dan bukan hanya kedalam dua bagian saja, dimana masing – masing bagian ditangani oleh seperangkat hardware khusus, dan keseluruhan bagian tersebut dapat beroperasi secara parallel.
membaca instruksi
Mendekode Instruksi
Membaca operand
Menjalankan instruksi
Menulis kembali ke register
Gambar diatas mengilustrasikan sebuah pipeline dengan lima unit, atau lima stage (5 tahap). Tahap 1 mengambil instruksi dari memori dan menempatkannya dalam sebuah penyangga sampai instruksi itu dibutuhkan. Tahap 2 mendekodekan instruksi tersebut, menentukan jenisnya dan operand apa yang dibutuhkan instruksi tersebut. Tahap 3 melokasi dan mengambil operand – operand, baik itu dari register – register maupun memori. Tahap 4 sebenarnya melaksanakan pekerjaan menjalankan instruksi tersebut, terutama dengan menjalankan instruksi tersebut, terutama dengan menjalankan operand – operand pada jalur data. Terakhir, tahap 5 menulis hasilnya kembali ke register yang sesuai.
Apa CISC Itu ??
Complex Instruction Set Computing disingkat CISC merupakan rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang kompleks. Instruksi-instruksi yang tersedia bertujuan untuk memudahkan para programmer untuk mengembangkan aplikasi untuk plattform CISC.
Setelah ditemukannya CISC, 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 RISC. 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.
Prosesor CISC
Set instruksi sangatlah berpengaruh terhadap kinerja sebuah prosesor. Berdasarkan set perintah didalamnya, prosesor dapat dibedakan menjadi 2 tipe, yaitu RISC (Reduced Instruction Set Komputer) dan CISC (Complex Instruction Set Komputer). Prosesor bertipe RISC dirancang untuk memiliki sedikit set instruksi, yaitu hanya instruksi-instruksi dasar yang dibutuhkan saja. Dengan sedikit instruksi, maka prosesor dapat bekerja dalam kecepatan yang lebih tinggi. Berbeda dengan konsep RISC, prosesor dengan konsep CISC memiliki set instruksi yang jauh lebih kompleks. Konsep CISC lebih menekankan untuk menyediakan kapasitas yang dibutuhkan dengan cara yang lebih efisien. Banyaknya instruksi yang tersedia memudahkan para programmer mengembangkan aplikasi untuk plattform CISC.
Di lain pihak, banyaknya instruksi dalam CISC dapat mengurangi kecepatannya. Chip Intel x86 merupakan chip dari jenis CISC karena ia menggunakan set instruksi kompleks.Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC. CISC yang merupakan kebalikan dari RISC, biasanya digunakan pada keluarga processor untuk PC (AMD, Cyrix). Para pesaing Intel seperti Cyrix dan AMD juga telah menggunakan chip RISC tetapi ia telah dilengkapi dengan penukar (converter) CISC. Prosesor yang digunakan dalam komputer pribadi masa kini, Intel Pentium misalnya, umumnya berbasis CISC.
Para perancang mikroprosesor mencari kinerja lebih bagus di dalam keterbatasan teknologi kontemporer. Pada tahun 1970-an misalnya, memori diukur dengan kilobyte dan sangat mahal saat itu. CISC merupakan pendekatan dominan karena menghematmemori.
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.
Walaupun instruksi dengan panjang bervariasi lebih sulit diproses oleh chip, instruksi CISC yang lebih panjang akan lebih kompleks. Bagaimanapun, untuk memelihara kompatibilitas software, chip x86 seperti Intel Pentium III dan AMD Athlonharus bekerja dengan instruksi CISC yang dirancang pada tahun 1980-an, walaupun keuntungan awalnya yaitu menghemat memori tidaklah penting sekarang.
Kelebihan dan kekurangan dari dua arsitektur tersebut sering menjadi perdebatatan diantara para ahli. Lantas mana yang lebih baik, CISC atau RISC? Di atas kertas, dari segi kecepatan memang RISC lebih unggul, namun dari segi kinerja sesungguhnya belum tentu. Hal ini disebabkan keluarga prosesor RISC hanya menyediakan instruksi untuk fungsi-fungsi dasar, maka untuk fungsi-fungsi lanjutan yang lebih kompleks, akan diambil alih oleh software. Sementara untuk fungsi yang sama, prosesor berbasis CISC dapat memanfaatkan instruksinya sendiri. Padahal instruksi berbasis prosesor, lebih cepat dijalankan ketimbang instruksi berbasis software. Alhasil diperoleh akumulasi kecepatan untuk prosesor CISC. 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.
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 2 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 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.
Arsitektur berbasis CISC juga memungkinkan para perancang prosesor memperbanyak 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 karena aplikasinya lebih luas. Sementara keluarga prosesor RISC hanya digunakan pada workstation yang biasanya memiliki lingkup aplikasi yang lebih sempit.
RISC VS CISC
Selama akhir 1970-an, karena keberadaan interprenter, telah dilakukan eksperimen – eksperimen dengan instruksi – instruksi yang sangat kompleks. Para perancang mencoba untuk menutupi “perbedaan semantik” antara mesin apa yang dapat menjalankan instruksi – instruksi dan bahasa – bahasa pemrograman tingkat tinggi apa yang dibutuhkan. Hampir tidak seorangpun berpikir tentang upaya untuk mendesain mesin – mesin yang lebih sederhana, sama seperti sekarang tidak banyak penelitian yang dilakukan untuk mendesain system – system pengoperasian, jaringan – jaringan, dan prosesor – prosesor word, dan lain – lain yang kurang berkinerja tinggi.
Satu kelompok yang menentang trend tersebut dan mencoba memadukan sebagian dari ide – ide dari Seymor Cray dalam sebuah komputer berkinerja tinggi, dipimpin oleh John Cocke di IBM. Upaya ini menghantar ke upaya pengenbangan sebuah mini komputer eksperimental, yang dinamakan 801. Meskipun IBM tidak pernah memasarkan mesin ini, dan hasil – hasilnya tidak dipublikasikan hingga beberapa tahun kemudian, komentar – komentar bermunculan dan orang lain mulai meneliti arsitektur – arsitektur yang sama.
Pada tahun 1980, suatu kelompok di Barkeley yang dipimpin oleh David Patterson da Carlo Sequin mulai merancang keeping VLSI CPU yang tidak menggunakan interpretasi. Mereka menggunakan istilah RISC untuk konsep ini dan menamakan chip CPU mereka RISC I yang langsung disusul oleh RISC II. Setahun kemudian, pada 1981, di Standford John Hennesy mendesain dan membuat sebuah chip yang agak berbeda yang dinamakannya MIPS.
Prosesor – prosesor baru ini sangat berbeda dibanding prosesor – prosesor komersial dewasa ini. Karena CPU – CPU ini tidak harus disesuaikan kembali dengan produk – produk yang telah ada, para perancang mereka bebas untuk memilih perangkat – perangkat instruksi baru yang akan memaksimalkan kinerja system seluruhnya. Pada awalnya perhatian utama diberikan kepada seberapa cepat suatu instruksi menyelesaikan proses implementasi. Tapi kemudian disadari bahwa mendesain instruksi – instruksi dengan kinerja yang baik harus didasarkan pada seberapa cepat suatu instruksi dapat di mulai. Berapa lama waktu yang diberikan instruksi kurang menjadi masalah dibanding berapa banyak instruksi yang dapat dimulai per detik.
Pada saat pertama kali prosesor – prosesor sederhana ini pertama kali dirancang, karakteristik – karakteristik yang menarik perhatian banyak banyak kalangan adalah jumlah instruksi yang tersedia relative sedikit, kira – kira sekitar 50. Jumlah ini jauh lebih kecil disbanding jumlah 200 hingga 300 pada komputer – komputer tertentu seperti DEC VAX dan mainframe – mainframe IBM yang berukuran besar. Kepanjangan dari RISC adalah Reduce Instruction Set Komputer, yang dilawan dengan CISC, yang merupakan kepanjuangan dari Complex Instruction Set Computer. Kini, segelintir orang berpikir bahwa ukuran perangkat instruksi merupakan suatu isu utama, meskipun namanya tidak berubah.
Singkatnya, perang pendapatpun timbul, dengan para pendukung RISC menyerang tatanan yang telah mapan (VAX, Intel, dan mainframe – mainframe IBM yang berukuran besar). Mereka mengklaim bahwa cara paling tepat untuk mendesain komputer adalah menyediakan sejumlah instruksi kecil sederhana yang beroperasi dalam satu siklus jalur data yakni, mengambil dua register, menggabungkan kedua register tersebut dan menyimpan kembali hasilnya dalam sebuah register. Pendapat para pendukung RISC ini adalah bahwa meskipun sebuah mesin RISC membutuhkan empat atau lima instruksi untuk menjalankan apa yang dilakukan mesin CISC hanya dengan satu instruksi saja. Jika instruksi – instruksi RISC 10 kali lebih cepat (karena instruksi – insterusi tersebut tidak diimplementasikan), maka RISC jauh lebih unggul. Penting juga untuk diperhatikan bahwa dewasa ini kecepatan memori utama telah melampaui kecepatan control store yang dikhususkan hanya untuk membaca.
Seorang mungkin beranggapan bahwa dengan mempertimbangkan keunggulan – keunggulan kinerja dari teknologi RISC, mesin – mesin RISC (seperti DEC Alpah) akan mengungguli mesin – mesin CISC (seperti Intel Pentium) di pasaran. Hal ini belum pernah terjadi. Mengapa tidak?
Pertama, terda[pat isu mengenai kompatibilitas mundur dan dana software miliaran dollar yang telah diinvestasikan perusahaan – perusahaan untuk jalur porduksi Intel. Kedua, yang mengejutkan, Intel telah mampu memanfaatkan ide – ide yang sama, bahkan dalam suatu arsitektur CISC. Dimulai dengan 486, CPU – CPU Intel berisi sebuah inti RISC yang menjalankan instruksi – instruksi paling sederhana (dan sangat umum) dalam satu siklus jalur data saja, sekaligus mengimplementasikan instruksi – instruksi yang lebih kompleks dengan cara CISC biasa. Hasil nyatanya adalah bahwa instruksi – instruksi bisa menjadi lebih cepat dan instruksi – instruksi yang kurang biasa menjadi lebih lambat. Meskipun pendekatan tiruan ini tidak secepat seperti sebuah desain RISC murni, pendekatan ini menghasilkan kinerja keseluruhan yang kompetitif asalkan software yang lama tetap dapat diaplikasikan dan tidak berubah
BAB IV
PENUTUP
Kesimpulan
Set instruksi adalah kode-kode dari instruksi-instruksi (instruction mesin) yang dapat diterjemahkan dalam bahasa mesin (machine language). Set instruksi tersebut yang nantinya menjadi bahan dasar dari proses CPU. Setiap CPU memiliki berbeda-beda set insruksinya tergantung dari bagaimana arsitektur CPU dibuat.
Ada dua model set instruksi yang menjadi dasar dari mesin (CPU) saat ini, yaitu: RISC (reduce Instruction Set Komputer) dan CISC (Complex Instrution Set Komputer). CISC merupakan kepanjangan dari Complex Instruction Set Computing atauComplex Instruction Set Komputer (CISC; "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.
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Untuk fungsi-fungsi lanjutan yang lebih kompleks, CISC dapat memanfaatkan instruksinya sendiri. CISC yang menggunakan instruksi berbasis prosesor, lebih cepat dijalankan ketimbang instruksi berbasis software (RISC).
Prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. 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.
Arsitektur berbasis CISC juga memungkinkan para perancang prosesor memperbanyak set instruksi tambahan untuk keperluan tertentu. Disamping set instruksi standar yang sudah ada.
Tidak ada komentar:
Posting Komentar