Pendahuluan
Unjuk kerja suatu komputer adalah hal yang sangat penting. Dalam perkembangannya unjuk kerja selalu ditingkatkan baik dari sisi kecepatan proses maupun sisi ekonomisnya. Kecepatan komputer tergantung banyak hal, salah satunya adalah set instruksi yang digunakan. Terdapat dua konsep set instruksi di dalam komputer yakni CISC (Complex Instruction Set Computer) dan RISC (Reduce Instruction Set Computer). Sebagai perbandingan, CISC mencoba untuk mengurangi jumlah instruksi pada program sedangkan RISC mencoba mengurangi siklus instruksi.
1. RISC
Disingkat dengan RISC. Rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang lebih ringkas dibandingkan dengan CISC. RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif. Konsep RISC pertama kali dikembangkan oleh IBMpada era 1970-an. Komputer pertama yang menggunakan RISC adalah komputer mini IBM 807 yang diperkenalkan pada tahun 1980. Dewasa ini, RISC digunakan pada keluarga processor buatan Motorola (PowerPC) dan SUN Microsystems (Sparc, UltraSparc).
RISC dikembangkan melalui seorang penelitinya yang bernama John Cocke, beliau menyampaikan bahwa sebenarnya kekhasan dari komputer tidaklah menggunakan banyak instruksi, namun yang dimilikinya adalah instruksi yang kompleks yang dilakukan melalui rangkaian sirkuit.
Pada desain chip mikroprosesor jenis ini, pemroses diharapkan dapat melaksanakan perintah-perintah yang dijalankannya secara cepat dan efisien melalui penyediaan himpunan instruksi yang jumlahnya relatif sedikit, dengan mengambil perintah-perintah yang sangat sederhana, akibatnya arsitektur RISC membatasi jumlah instruksinya yang dipasang ke dalam mikroprosesor tetapi mengoptimasi setiap instruksi sehingga dapat dilaksanakan dengan cepat.
Dengan demikian instruksi yang sederhana dapat dilaksanakan lebih cepat apabila dibandingkan dengan mikroprosesor yang dirancang untuk menangan susunan instruksi yang lebih luas.
Dengan demikian chip RISC hanya dapat memproses instruksi dalam jumlah terbatas, tetapi instruksi ini dioptimalkan sehingga cepat dieksekusi. Meski demikian, bila harus menangani tugas yang kompleks, instruksi harus dibagi menjadi banyak kode mesin, terutama sebelum chip RISC dapat menanganinya. Karena keterbatasan jumlah instruksi yang ada padanya, apabila terjadi kesalahan dalam pemrosesan akan memudahkan dalam melacak kesalahan tersebut.
Pada tahun 1980-an kapasitas modul memori meningkat dan harganya turun. Penekanan pada desain CPU bergeser ke kinerja, dan RISC menjadi trend baru. Contoh arsitektur RISC meliputi SPARC dari Sun Microsystems; seri MIPS Rxxxx dari MIPS Technologies; Alpha dari Digital Equipment; PowerPC yang dikembangkan bersama olehIBM dan Motorola; dan RISC dari Hewlett-Packard.
Chip RISC menggunakan sejumlah kecil instruksi dengan panjang-sama yang relatif sederhana, yaitu panjangnya selalu 32 bit. Walaupun hal ini memboroskan memori karena harus dibuat program lebih besar, instruksi lebih mudah dan cepat dieksekusi.
Karena chip ini berurusan dengan jenis instruksi lebih sedikit, chip RISC membutuhkan lebih sedikit transistorketimbang chip CISC dan umumnya berkinerja lebih tinggi pada kecepatan clock yang sama, walaupun chip ini harus mengeksekusi lebih banyak instruksi lebih pendek untuk menyelesaikan sebuah fungsi.
Kesederhanaan RISC juga mempermudah merancang prosesor superscalar - chip yang dapat mengeksekusi lebih dari satu instruksi pada satu saat. Hampir semua prosesor RISC dan CISC modern adalah superscalar; tetapi untuk mencapai kemampuan ini membuat desain lebih rumit.
Kebalikan dari arsitektur chip mikrprosesor dari RISC adalah CISC (baca ”sisk”, yang merupakan singkatan dari complex instruction set computing, dimana mikroprosesor memiliki lebih banyak instruksi yang terdapat di dalamnya.
1.1 Karakteristik RISC
· Siklus Instruksi
1. Satu instruksi per siklus mesin
2. Siklus mesin ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand dari register, melakukan operasi ALU dan menyimpannya di register
3. Instruksi hanya menyediakan instruksi2 dasar saja
4. Fungsi fungsi yang kompleks akan diterjemahkan dalam operasi instruksi instruksi dasar
· Operasi pertukaran
1. Berbentuk pertukaran data dari register ke register
2. Dengan mengoptimalkan penggunaan memori register diharapkan siklus operasi semakin cepat
3. Dengan penyederhanaan instruksi maka operasi unit kontrol akan sederhana dan cepat
· Mode Pengalamatan
1. Fitur rancangan ini juga dapat menyederhanakan sel instruksi dan unit kontrol
2. Dengan mode pengalamatan yang sederhana akan didapatkan operasi pengambilan data dan penyimpanan data semakin cepat
· Format instruksi
1. Umumnya hanya digunakan sebuah format atau beberapa format saja untuk menyderhanakan hardwarenya
2. Panjang instruksi tetap dan disamakan dengan panjang word yang digunakan
3. Panjang field dibuat sama dan tetap
4. Kelebihannya adalah, dengan menggunakan field yang tetap maka pengkodean opcode dan pengaksesan operand register dapat dilakukan secara bersamaan
5. Format yang sederhana juga akan memudahkan kerja unit kontrol
2. CISC
Complex instruction-set computing atau Complex Instruction-Set Computer adalah kempanjangan dari CISC. CISC sendiri adalah salah satu bentuk arsitektur yang menjalan set intruksi dan tiap intruksi dapat mejalankan beberapa intruksi tingkat rendah. Misalnya intruksi tingkat rendah tersebut adalah operasi aritmetika, penyimpanan-pengambilan dari memory dll. Dari karakteristiknya, CISC ini sangat berbeda dengan RISC bahkan bisa dikategorikan bertolak belakang
CISC banyak digunakan di AMD dan Intel CPU. CISC memang memiliki banyak instruksi yang kompleks dan memang dirasa berpengaruh dalam kinerjanya yang menjadi cepat untuk instruksi yang panjang saat dijalankan di RISC. Mungkin sudah menjadi takdir bari CISC yang selalu ingin hardware berkembang lebih cepat daripada software maka CISC menawarkan set instruksi yang powerful, kuat, tangguh, maka tak heranjika CISC memang hanya mengenal bahasa assembly yang sebenarnya ia tujukan bagi para programmer. Karena ia usung begitu sangat kompleks, maka ia hanya memerlukan sedikit instruksi untuk sekali running.
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.
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.
3. RISC VS CISC
RISC (Apple) versus CISC (Intel) adalah topic yang cukup populer ketika diperbincangkan di Net. CISC (sisk-red), merupakan kepanjangan dari Complex Instruction Set Computer. Kebanyakan PC menggunakan CPU berdasarkan arsitektur CISC ini, seperti contoh AMD CPU dan Intel. Chip CISC memiliki jumlah chip yang berbeda dan instruksi yang complex. Filosofi CISC berada di balik hardware yang selalu lebih cepat berkembang dibanding software. Untuk itu, diperlukan set instruksi yang powerful, yang dapat menyediakan programmer, beberapa instruksi assembly dengan program pendek. Pada umumnya, chip CISC berjalan lebih lambat per instruksi dibandingkan RISC, namun menggunakan sedikit instruksi ketimbang RISC.
RISC (risk-red), merupakan kepanjangan dari Reduced Instruction Set Computer. Chip RISC dibangun mulai pertengahan tahun 1980 sebagai pengganti chip CISC. Filosofi RISC berada dalam tidak satu pun chip yang menggunakan bahasa instruksi assembly yang complex, seperti yang digunakan di CISC. Contoh penggunaan chip RISC adalah pada CPU Apple. Untuk itulah, instruksi yang simple dan lebih cepat akan lebih baik daripada besar, complex dan lambat seperti CISC. Keuntungan RISC lainnya karena adanya instruksi yang simple, maka chip RISC hanya memiliki beberapa transistor, yang akan membuat RISC mudah didesain dan murah untuk diproduksi untuk menulis compiler yang powerful.
RISC memberikan kemudahan di hardware, namun lebih kompleks di software. Pengembang software di RISC harus menulis banyak line untuk task yang sama. Oleh karena itu, desain arsitektur RISC mungkin bukan yang terbaik di masa depan, setelah kemunculan chip CISC yang lebih cepat dan lebih murah. Namun, RISC telah eksis lebih dari 10 tahun dan telah menghantam pasar CISC. Menurut tomax7.com, sekitar 75 persen processor berbasis arsitektur CISC, dan kebanyakan dari mereka adalah standard x86. Namun, sekarang ini chip RISC juga memiliki instruksi yang banyak, hampir sama dengan chip CISC. Sebagai contoh, PowerPC 601 berbasis arsitektur RISC, support lebih banyak instruksi dibandingkan Pentium yang menggunakan chip CISC.
4. Superscalar
Superscalar adalah arsitektur prosessor yang memungkinkan eksekusi yang bersamaan (parallel) dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain. Superscalar mampu menjlankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.
Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.
Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.
Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.
Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.
Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya.
Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.
Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.
Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor.
Contoh CPU yang telah menerapkan arsitektur superscalar :
Intel Processors
• 486, Pentium, Pentium Pro
Superscalar Processor Design
• Use PowerPC 604 as case study
• Speculative Execution, Register Renaming, Branch Prediction
More Superscalar Examples
• MIPS R10000
• DEC Alpha 21264
Berikut perbandingan superscalar dengan system i386
Cycles Per Instruction
Instruction Type 386 Cycles 486 Cycles
Load 4 1
Store 2 1
ALU 2 1
Jump taken 9 3
Jump not taken 3 1
Call 9 3
Superscalar dapat mengeksekusi instruksi 1 (I1) dan instruksi 2 (I2) secara pararel dengan syarat
– Keduanya instruksi yang sederhana
– I1 tidak melakukan proses jump
– Tujuan (destination) dari I1 bukan sumber (source) dari I2
– Tujaun (destinition) dari I1 bukan tujuan (destination) dari I2
Jika kondisi diatas tidak dapat dipenuhi
– I1 melakukan proses U-pipe
– I2 dijalankan di cycle berikutnya
DAFTAR PUSTAKA:
3. Stallings,William.1996. Organisasi dan Arsitektur Komputer. Jakarta :PT Prenhallindo. Tanembaum, A.S. , 1999, Organisasi Komputer Terstruktur [Edisi Terjemahan], Pearson Ed. Asia - Salemba, Jakarta.