Tipe Processor
1. RISC ( Reduced Instruction Set Computer )
– CPU Apple
2. CISC ( Complex Instruction Set Computer )
– AMD CPU dan Intel
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 :
- 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.
- pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien
- 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.
Disingkat dengan CISC. Rangkaian instruksi built-in pada processor
yang terdiri dari perintah-perintah yang kompleks. Instruksi-instruksi
yang tersedia memudahkan para programmer untuk 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.
CISC 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.
Di sini chip jenis RISC akan membahagikan operasi besar kepada
beberapa operasi yang lebih mudah sehingga terdapat perintah-perintah
kecil yang mampu memproses dengan cepat.
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 menghemat memori.
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 Athlon harus 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. Namun demikian teknologi
terkini menggunakan arsitektur RISC ini.
Perbedaan RISC dengan CISC dilihat dari segi instruksinya
RISC ( Reduced Instruction Set Computer )
- Menekankan pada perangkat lunak, dengan sedikit transistor
- Instruksi sederhana bahkan single
- Load / Store atau memory ke memory bekerja terpisah
- Ukuran kode besar dan kecapatan lebih tinggi
- Transistor didalamnya lebih untuk meregister memori
CISC ( Complex Instruction Set Computer )
- Lebih menekankan pada perangkat keras, sesuai dengan takdirnya untuk pragramer.
- Memiliki instruksi komplek. Load / Store atau Memori ke Memori bekerjasama
- Memiliki ukuran kode yang kecil dan kecepatan yang rendah.
- Transistor di dalamnya digunakan untuk menyimpan instruksi – instruksi bersifat komplek
Sudah sering kita mendengar debat yang cukup menarik antara
komputer personal IBM dan kompatibelnya yang berlabel Intel Inside
dengan komputer Apple yang berlabel PowerPC. Perbedaan utama antara
kedua komputer itu ada pada tipe prosesor yang digunakannya. Prosesor
PowerPC dari Motorola yang menjadi otak utama komputer Apple Macintosh
dipercaya sebagai prosesor RISC, sedangkan Pentium buatan Intel diyakini
sebagai prosesor CISC. Kenyataannya komputer personal yang berbasis
Intel Pentium saat ini adalah komputer personal yang paling banyak
populasinya. Tetapi tidak bisa pungkiri juga bahwa komputer yang
berbasis RISC seperti Macintosh, SUN adalah komputer yang handal dengan
sistem pipelining, superscalar, operasi floating point dan sebagainya.
Apakah memang RISC lebih lebih baik dari CISC atau sebaliknya.
Tetapi tahukah kita dimana sebenarnya letak perbedaan itu. Apakah
prosesor dengan instruksi yang lebih sedikit akan lebih baik dari
prosesor yang instruksinya kompleks dan lengkap. Apakah memang perbedaan
prosesor itu hanya dari banyak atau tidaknya instruksi saja. Bukankah
jumlah instruksi tidak berhubungan dengan ke-handal-an suatu prosesor.
Pertanyaan-pertanyaan ini yang hendak dijawab melalui tulisan berikut.
Namun supaya lebih dekat dengan elektronika praktis, ElectronicLab akan
lebih fokus pada mikrokontroler low-cost yang berbasis RISC dan CISC.
Sebagai contoh dari mikrokontroler CISC adalah 68HC11 buatan Motorola
dan 80C51 dari Intel. Kita juga mengenal keluarga PIC12/16CXX dari
Microchip dan COP8 buatan National Semiconductor sebagai mikrokontroler
yang berbasis RISC.
CISC adalah singkatan dari Complex Intruction Set Computer dimana
prosesor tersebut memiliki set instruksi yang kompleks dan lengkap.
Sedangkan RISC adalah singkatan dari Reduced Instruction Set Computer
yang artinya prosesor tersebut memiliki set instruksi program yang lebih
sedikit. Karena perbedaan keduanya ada pada kata set instruksi yang
kompleks atau sederhana (reduced), maka mari kita bahas sedikit tentang
intruksi itu sendiri.
Sistem mikrokontroler selalu terdiri dari perangkat keras
(hardware) dan perangkat lunak (software). Perangkat lunak ini merupakan
deretan perintah atau instruksi yang dijalankan oleh prosesor secara
sekuensial. Instruksi itu sendiri sebenarnya adalah bit-bit logik 1 atau
0 (biner) yang ada di memori program. Angka-angka biner ini jika
lebarnya 8 bit disebut byte dan jika 16 bit disebut word. Deretan logik
biner inilah yang dibaca oleh prosesor sebagai perintah atau instruksi.
Supaya lebih singkat, angka biner itu biasanya direpresentasikan dengan
bilangan hexa (HEX). Tetapi bagi manusia, menulis program dengan angka
biner atau hexa sungguh merepotkan. Sehingga dibuatlah bahasa assembler
yang direpresentasikan dengan penyingkatan kata-kata yang cukup
dimengerti oleh manusia.
Bahasa assembler ini biasanya diambil dari bahasa Inggris dan
presentasinya itu disebut dengan Mnemonic. Masing-masing pabrik
mikroprosesor melengkapi chip buatannya dengan set instruksi yang akan
dipakai untuk membuat program.
Biner Hexa Mnemonic
10110110 B6 LDAA …
10010111 97 STAA …
01001010 4A DECA …
10001010 8A ORAA …
00100110 26 BNE …
00000001 01 NOP…
01111110 7E JMP …
Sebagian set instruksi 68HC11
Pada awalnya, instruksi yang tersedia amat sederhana dan sedikit.
Kemudian desainer mikroprosesor berlomba-lomba untuk melengkapi set
instruksi itu selengkap-lengkapnya. Jumlah instruksi itu berkembang
seiring dengan perkembangan desain mikroprosesor yang semakin lengkap
dengan mode pengalamatan yang bermacam-macam. Mikroprosesor lalu
memiliki banyak instruksi manipulasi bit dan seterusnya dilengkapi
dengan instruksi-instruksi aritmatik seperti penjumlahan, pengurangan,
perkalian dan pembagian. Seperti contohnya 68HC11 banyak sekali memiliki
set instruksi untuk percabangan seperti BNE, BLO, BLS, BMI, BRCLR,
BRSET dan sebagainya.
Perancang mikroprosesor juga memperkaya ragam instruksi tersebut
dengan membuat satu instruksi tunggal untuk program yang biasanya
dijalankan dengan beberapa intruksi. Misalnya pada 80C51 untuk contoh
program berikut ini.
LABEL …
…
DEC R0
MOV A,R0
JNZ LABEL
Program ‘decrement’ 80C51
Program ini adalah program pengulangan yang mengurangi isi register
R0 sampai register R0 menjadi kosong (nol). Intel menambah set
instruksinya dengan membuat satu instruksi khusus untuk keperluan
seperti ini :
LABEL ….
DJNZ R0,LABEL
Instruksi ‘decrement jump not zero’ 80C51
Kedua contoh program ini hasilnya tidak berbeda. Namun demikian,
instruksi kompleks seperti DJNZ mempermudah pembuat program. Set
instruksi yang lengkap diharapkan akan semakin membuat pengguna
mikroprosesor leluasa menulis program dalam bahasa assembler yang
mendekati bahasa pemrograman level tinggi. Intel 80C51 yang dikembangkan
dari basis prosesor 8048 dirilis pada tahun 1976 memiliki tidak kurang
dari 111 instruksi. Tidak ketinggalan, 68HC11 dari Motorola yang populer
di tahun 1984 dilengkapi dengan 145 instruksi. Karena banyak dan
kompleksnya instruksi yang dimiliki 68HC11 dan 80C51, kedua contoh
mikrokontroler ini disebut sebagai prosesor CISC.
Debat CISC versus RISC dimulai ketika pada tahun 1974 IBM
mengembangkan prosesor 801 RISC. Argumen yang dipakai waktu itu adalah
mengapa diperlukan instruksi yang kompleks. Sebab pada prinsipnya,
instruksi yang kompleks bisa dikerjakan oleh instruksi-instruksi yang
lebih sederhana dan kecil. Ketika itu penggunaan bahasa tingkat tinggi
seperti Fortran dan kompiler lain (compiler/interpreter) mulai
berkembang. Apalagi saat ini compiler seperti C/C++ sudah lazim
digunakan. Sehingga sebenarnya tidaklah diperlukan instruksi yang
kompleks di tingkat prosesor. Kompiler yang akan bekerja men-terjemahkan
program dari bahasa tingkat tinggi menjadi bahasa mesin.
Untuk melihat bagaimana perbedaan instruksi RISC dan CISC, mari
kita lihat bagaimana keduanya melakukan perkalian misalnya c = a x b.
Mikrokontroler 68HC11 melakukannya dengan program sebagai berikut :
LDAA #$5
LDAB #$10
MUL
Program 5×10 dengan 68HC11
Cukup tiga baris saja dan setelah ini accumulator D pada 68HC11
akan berisi hasil perkalian dari accumulator A dan B, yakni 5 x 10 = 50.
Program yang sama dengan PIC16CXX, adalah seperti berikut ini.
MOVLW 0×10
MOVWF Reg1
MOVLW 0×05
MOVWF Reg2
CLRW
LOOP ADDWF Reg1,0
CFSZ Reg2,1
GOTO LOOP
…
…
Program 5×10 dengan PIC16CXX
Prosesor PIC16CXX yang RISC ini, tidak memiliki instruksi perkalian
yang khusus. Tetapi perkalian 5×10 itu sama saja dengan penjumlahan
nilai 10 sebanyak 5 kali. Kelihatannya membuat program assembly dengan
prosesor RISC menjadi lebih kompleks dibandingkan dengan prosesor CISC.
Tetapi perlu diingat, untuk membuat instruksi yang kompleks seperti
instruksi MUL dan instruksi lain yang rumit pada prosesor CISC,
diperlukan hardware yang kompleks juga. Dibutuhkan ribuan gerbang logik
(logic gates) transistor untuk membuat prosesor yang demikian. Instruksi
yang kompleks juga membutuhkan jumlah siklus mesin (machine cycle) yang
lebih panjang untuk dapat menyelesaikan eksekusinya. Instruksi
perkalian MUL pada 68HC11 memerlukan 10 siklus mesin dan instruksi
pembagiannya memerlukan 41 siklus mesin.
Pendukung RISC berkesimpulan, bahwa prosesor yang tidak rumit akan
semakin cepat dan handal. Hampir semua instruksi prosesor RISC adalah
instruksi dasar (belum tentu sederhana), sehingga instruksi-instruksi
ini umumnya hanya memerlukan 1 siklus mesin untuk menjalankannya.
Kecuali instruksi percabangan yang membutuhkan 2 siklus mesin. RISC
biasanya dibuat dengan arsitektur Harvard, karena arsitektur ini yang
memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam
satu atau dua siklus mesin.
Sebagai perbandingan jumlah instruksi pada prosesor RISC, COP8
hanya dilengkapi dengan 58 instruksi dan PIC12/16CXX hanya memiliki 33
instruksi saja. Untuk merealisasikan instruksi dasar yang jumlah tidak
banyak ini, mikroprosesor RISC tidak memerlukan gerbang logik yang
banyak. Karena itu dimensi dice IC dan konsumsi daya prosesor RISC
umumnya lebih kecil dibanding prosesor CISC. Bukan karena kebetulan,
keluarga mikrokontroler PICXX banyak yang dirilis ke pasar dengan ukuran
mini. Misalnya PIC12C508 adalah mikrokontroler DIP 8 pin.
CISC dan RISC perbedaannya tidak signifikan jika hanya dilihat dari
terminologi set instruksinya yang kompleks atau tidak (reduced). Lebih
dari itu, RISC dan CISC berbeda dalam filosofi arsitekturnya. Filosofi
arsitektur CISC adalah memindahkan kerumitan software ke dalam hardware.
Teknologi pembuatan IC saat ini memungkinkan untuk menamam ribuan
bahkan jutaan transistor di dalam satu dice. Bermacam-macam instruksi
yang mendekati bahasa pemrogram tingkat tinggi dapat dibuat dengan
tujuan untuk memudahkan programmer membuat programnya. Beberapa prosesor
CISC umumnya memiliki microcode berupa firmware internal di dalam
chip-nya yang berguna untuk menterjemahkan instruksi makro. Mekanisme
ini bisa memperlambat eksekusi instruksi, namun efektif untuk membuat
instruksi-instruksi yang kompleks. Untuk aplikasi-aplikasi tertentu yang
membutuhkan singlechip komputer, prosesor CISC bisa menjadi pilihan.
Sebaliknya, filosofi arsitektur RISC adalah arsitektur prosesor yang
tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar
yang diperlukan saja. Kerumitan membuat program dalam bahasa mesin
diatasi dengan membuat bahasa program tingkat tinggi dan compiler yang
sesuai. Karena tidak rumit, teorinya mikroprosesor RISC adalah
mikroprosesor yang low-cost dalam arti yang sebenarnya. Namun demikian,
kelebihan ruang pada prosesor RISC dimanfaatkan untuk membuat
sistem-sistem tambahan yang ada pada prosesor modern saat ini. Banyak
prosesor RISC yang di dalam chip-nya dilengkapi dengan sistem
superscalar, pipelining, caches memory, register-register dan
sebagainya, yang tujuannya untuk membuat prosesor itu menjadi semakin
cepat.
Tabel Perbandingan RICS dengan CISCFitur RICS PC/Desktop CISC