Perbedaan dan Perbandingan Prosesor RISC dengan CISC
Yang 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 sistempipelining, 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 inicompiler 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 5x10 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
0x10
MOVWF
Reg1
MOVLW
0x05
MOVWF
Reg2
CLRW
LOOP ADDWF Reg1,0
CFSZ
Reg2,1
GOTO
LOOP
…
…
Program 5x10 dengan PIC16CXX
Prosesor PIC16CXX yang RISC ini, tidak memiliki instruksi
perkalian yang khusus. Tetapi perkalian 5x10 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, diperlukanhardware 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.
Jadi mana yang lebih baik apakah
RISC atau CISC, anda tentu punya pendapat sendiri.
Perkalian Dua Bilangan dalam Memori
Pada gambar di atas, terlihat struktur
memori (yang disederhanakan) suatu komputer secara umum. Pada main
memori terbagi
menjadi beberapa lokasi mulai dari nomor 1 (baris) : 1 (kolom) sampai dengan
6:4. Unit eksekusi bertanggung jawab untuk operasi komputasi yang mana
data-data sudah tersimpan di dalam salah satu dari 6 register (A, B, C, D, E,
atau F). Misalkan akan dilakukan perkalian (product) dua angka,
misalkan angka pertama terletak di lokasi 2:3 sedangkan angka kedua pada 5:2,
kemudian hasilnya dikembalikan lagi ke lokasi 2:3.
Tujuan utama dari arsitektur CISC
adalah melaksanakan suatu instruksi cukup dengan beberapa baris
bahasa mesin yang relatif pendek sehingga implikasinya hanya sedikit saja
RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut. Arsitektur
CISC menekankan pada perangkat keras karena filosofi dari arsitektur CISC yaitu
bagaimana memindahkan kerumitan perangkat lunak ke dalam perangkat keras.
Misalkan, sebuah prosesor CISC sudah
dilengkapi dengan sebuah instruksi khusus yang diberi nama MULT (dikenal
sebagai complex instruction). Ketika dijalankan, instruksi akan
membaca dua nilai kemudian menyimpannya ke dalam 2 register yang berbeda,
melakukan operan perkalian di dalam unit eksekusi dan hasilnya dikembalikan lagi
ke register yang benar. Maka instruksinya cukup satu baris yaitu : MULT
2:3, 5:2
Sebelumnya, pada arsitektur RISC ketika
menjalankan instruksi “MULT” maka akan dibagi menjadi 3 instruksi yaitu :
1. LOAD,
digunakan untuk memindahkan data dari memori ke register.
2. PROD,
digunakan untuk melakukan operasi perkalian yang berada di dalam register.
3.
STORE, digunakan untuk memindahkan data dari register ke memori
yang benar.
Maka instruksinya :
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
“RISC dimaksudkan untuk menyederhanakan
rumusan perintah sehingga lebih efisien dalam penyusunan kompiler yang ada.”
“RISC dimaksudkan untuk mengurangi jumlah
siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per
program.”
Tabel Perbandingan RICS dengan CISC
Fitur
|
RICS
|
PC/Desktop
CISC
|
Daya
|
Sedikit ratusan miliwatt
|
Banyak watt
|
Kecepatan Komputasi
|
200-520 MHz
|
2-5 GHz
|
Manajemen Memori
|
Direct,
32 bit
|
Mappped
|
I/O
|
Custom
|
PC berbasis pilihan
via BIOS
|
Environment
|
High Temp, Low EM Emissions
|
Need Fans, FCC/CE approval an issue
|
Struktur Interupsi
|
Custom, efisien, dan sangat
cepat
|
Seperti PC
|
Port Sistem Operasi
|
Sulit, membutuhkan
BSP level rendah.
|
Load
and Go
|
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 chipbuatannya 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.
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 5x10 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 0x10
MOVWF Reg1
MOVLW 0x05
MOVWF Reg2
CLRW
LOOP: ADDWF Reg1,0
CFSZ Reg2,1
GOTO LOOP
…
…
*) Program
5x10 dengan PIC16CXX
Prosesor
PIC16CXX yang RISC ini, tidak memiliki instruksi perkalian yang khusus. Tetapi
perkalian 5x10 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.
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 PIC16C54s adalah mikrokontroler DIP 18 pin.
Sekarang
kita akan membandingkan lamanya eksekusi program persamaan y=ax2 +
bx + c dengan memperlihatkan proses-proses yang terjadi didalamnya. Dibawah ini
akan ditampilkan program dengan intruksi RISC dan CISC:
Program CISC dengan 80C51:
MOV A, VAR_a à IF De
DF E
MOV B, VAR_x à IF De
DF E
MUL AB à IF De E
MOV B, VAR_x à IF De
DF E
MUL AB à IF De E
MOV R0, A à IF De E
MOV A, VAR_b à IF De
DF E
MOV B, VAR_x à IF De
DF E
MUL AB à IF De E
ADD A, R0 à IF De E
ADD A, VAR_c à IF De
DF E
MOV VAR_y, A à IF De
E S
*) Program diatas diasumsikan nilai y-nya
tidak akan lebih dari 1 byte.
Program
RISC dengan PIC16CXX:
MOVF VAR_x,
0 à IF De E
MOVWF VAR_temp à IF
De E S
MOVWF VAR_temp2 à IF
De E S
CLRW à IF De E
LOOP: ADDWF VAR_a,0 à IF
De E
CFSZ
VAR_temp,1 à IF De E
CFSZ VAR_temp2,1 à IF De E
GOTO LOOP à IF De E
MOVWF VAR_ax2 à IF
De E S
CLRW à IF De E
(1) (2) (1) (2)
LOOP2:ADDWF VAR_b,
0 à IF De E
CFSZ VAR_temp,1 à IF
De E
GOTO LOOP2 à IF De E
ADDWF VAR_ax2,
0 à IF De E
ADDWF VAR_c, 0 à IF
De E
MOVWF VAR_y à IF
De E S
*) Prosesor
RISC ini mempunyai RAM yang sebenarnya adalah merupakan register.
Jadi, tidak memerlukan Data Fetch (DF) untuk proses pengambilan data dalam
prosesor ini. Asumsi VAR_temp dan VAR_temp2 adalah 1 sehingga tidak
terjadi looping.
Dengan beranggapan bahwa Instruction Fetch (IF),
Data Fetch (DF), dan Store (S)membutuhkan waktu yang jauh
lebih lama dari Decode (De) dan Execute (E) maka
dapat diperhitungkan waktu yang dibutuhkan tiap prosesor jika x=1:
CISC dengan 8051:
12(IF) +
12(De) + 6(DF) + 12(E) + 1(S) à (parameter waktu: A
>>> B)
maka waktu yang dibutuhkan,
A(12+6+1)
+ B(12+12) ≈ 19A + 24B
RISC dengan PIC16CXX:
Dengan
mengambil waktu terlama dari tiap cycle-nya maka waktu yang
dibutuhkan, misal jika dalam suatu cycle (menurun dalam satu
kolom) terdapat IF, De, E, S; yang dalam waktu dapat ditulis A, B,
B, A maka yang diambil adalah A (waktu terlama). Kedua A tidak dijumlah karena bekerja
dalam sistem pipeline, yang dapat dilakukan secara bersamaan dalam
satucycle (syarat: dalam sistem ini tidak boleh ada
proses yang sama pada satu cycle).Sehingga
waktu yang dibutuhkan,
A(16+1)
+ B(1+1) ≈ 17A + 2B
Dari hasil diatas dapat dilihat bahwa
walaupun program dengan instruksi RISC lebih panjang daripada program dengan
instruksi CISC. Namun lama waktu yang dibutuhkan RISC untuk menjalankan program
dan mendapatkan hasil akhir yang diinginkan, jauh lebih singkat dibandingkan
dengan CISC. Dengan begitu, terbukti sudah bahwa prosesor RISC mampu beroperasi
lebih cepat dibandingkan dengan prosesor 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.
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.
Tidak ada komentar:
Posting Komentar