Académique Documents
Professionnel Documents
Culture Documents
(RISC)
Oleh:
M. Chandra Cahyo Utomo 105090605111003
Heny Herawati 105090604111001
Dwy Saputro Nugroho 105090600111025
Monica Intan Pratiwi 105090607111011
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
MALANG
2011
DAFTAR ISI
BAB I PENDAHULUAN
1.1. Latar Belakang
1.2. Tujuan
1.3. Rumusan Masalah
BAB II PEMBAHASAN
2.1. Karakteristik-Karakteristik Eksekusi Intruksi
2.2. Pengunaan File Register Besar
2.3. Optimasi Register Berbasis Kompiler
2.4. Reduced Instruction Set Architecture
2.5. Pipelining RISC
2.6. Motorola 8800
2.7. MIPS 4000
2.8. Kontroversi RISC dan CISC
Rasa syukur yang dalam kami sampaikan ke hadiran ALLAH SWT, karena berkat
restunya makalah ini dapat kami selesaikan sesuai yang diharapkan. Dalam makalah ini kami
membahas “Reduced Instruction Set Computers (Risc)”. Kami menyadari bahwa dalam
penyusunan tugas ini masih banyak kekurangan, baik dari segi isi, penulisan maupun kata-kata
yang digunakan. Oleh karena itu, segala kritik dan saran yang bersifat membangun guna
perbaikan Makalah tentang Organisasi dan Arsitekture Komputer ini lebih lanjut, akan kami
terima dengan senang hati.
Tidak lupa kami ucapkan terima kasih kepada semua pihak yang telah membantu dalam
penyusunan tugas makalah ini. kami telah mencurahkan semua kemampuan, namun kami sadari
bahwa hasil penyusunan makalah ini masih jauh dari sempurna dikarenakan keterbatasan data
dan referensi maupun kemampuan penulis.
PENDAHULUAN
1.2 TUJUAN
Untuk mempelajari operasi, operand, procedure calls, implikasi pada
karakteristik-karakteristik eksekusi instruksi.
Untuk mengetahui jendela-jendela register (register windows), variabel-veriabel
global, file register berukuran besar versus cache pada penggunaan file register
besar
Untuk mempelajari optimasi register berbasis kompiler
Untuk mengetahui karakteristik arsitektur reduced instruction, karakteristik CISC
Versus RISC pada reduced instruction set architecture
Untuk mempelajari optimasi pipelining pada pipelining RISC
Untuk mempelajari set instruksi, arsitektur, manajemen register, pipeline unit
instruksi pada MOTOROLA 8800
Untuk mempelajari pipeline instruksi, kontroversi RISC dan CISC pada MIPS
R4000
Untuk mengetahui kontroversi RISC dan CISC
PEMBAHASAN
Operasi
Beberapa penelitian telah menganalisis tingkah laku program HLL (High Level
Language). 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 ke variable 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 menemukan setiap instruksi rata-rata
mereferensi 0,5 operand dalam memori dan rata-rata mereferensi 1,4 register. Tentu saja
angka ini tergantung pada arsitektur dan kompiler namun sudah cukup menjelaskan
frekuensi pengaksesan operand sehingga menyatakan pentingnya sebuah arsitektur.
Procedure Calls
Dalam HLL procedure call dan return merupakan aspek penting karena merupakan
operasi yang membutuhkan banyak waktu dalam program yang dikompalasi sehingga
banyak berguna untuk memperhatikan cara implementasi opperasi ini secara efisien.
Adapun aspeknya yang penting adalah jumlah parameter dan variabel yang berkaitan
dengan prosedur dan kedalaman pensarangan (nesting).
Implikasi
Dari hasil sebuah penelitian telah disimpukan bahwa HLL dapat didukung dengan lebih
baik dengan cara mengoptilmalkan kinerja feuture-feuture program HLL tertentu yang paling
banyak membutuhkan waktu. Secara umum penelitian menyatakan terdapat tiga buah
elemen yang menentukan karakter arsitektur RISC :
1. Penggunaan register dalam jumlah besar yang ditunjukan untuk
mengotimalkan pereferensian operand
2. Diperlukan perhatian bagi perancangan pipelaine instruksi karena tingginya
proporsi instruksi pencabangan bersyarat dan procedure call, pipeline instruksi yang
bersifat langsung dan ringkas menjadi tidak efisien
3. Terdapat set instruksi yang disederhanakan
Variabel-variabel Global
Teknik Register Windows memberikan organisasi yang efisien untuk penyimpanan
variable skalar lokal di dalam register. Akan tetapi teknik ini tidak dapat memenuhi kebutuhan
penyimpanan variabel global, yang diakses oleh lebih dari sebuah prosedur, Terdapat dua pilihan
untuk memenuhi hal tersebut :
Fungsi kompiler adalah untuk menjaga operand bagi komputasi sebanyak mungkin di
dalam register, dan bukannya di dalam memori utama.Setiap kuantitas program yang merupakan
kandidat yang akan disimpan dalam suatu register di assign ke register simbolis atau
virtual.Apabila, dalam bagian program tertentu, terdapat lebih banyak jumlah kuantitas daripada
jumlah register real, maka sebagian kuantitas di assign ke lokasi-lokasi memori. Instruksi load
dan store digunakan kuantitas posisi sementara di dalam register untuk keperluan operasi
komputasi.
Teknik yang sangat umum digunakan pada kompiler RISC dikenal sebagai graph coloring, yang
merupakan sebuah teknik yang diambil dari ilmu topologi [CHAI82, CHOW86, COUT86,
CHOW90].
Masalah yang ditemukan dalam teknik graph coloring adalah apabila diketahui sebuah
graph yang terdiri dari simpul dan lengan, berikan warna-warna ke sejumlah simpul sehingga
simpul-simpul yang berdampingan memiliki warna yang berlainan, dan lakukan hal tersebut
sedemikian rupa sehingga digunakan pada masalah kompiler. Pertama, program dianalisis untuk
membentuk graph interferensi register. Simpul-simpul graph merupakan register simbolik.
Apabila dua buah register simbolik “hidup” selama potongan program tertentu yang sama, maka
untuk menggambarkan interferensinya kedua register itu digabungkan dengan sebuah lengan.
Kemudian dilakukan pewarnaan terhadap graph dengan menggunakan n buah warna, untuk n
adalah jumlah register. Apabila proses ini tidak sepenuhnya berhasil, maka simpul-simpul yang
tidak dapat diwarnai harus ditempatkan di dalam memori, dan operasi load dan store harus
dilakukan untuk membuat ruang bagi kuantitas-kuantitas yang dipengaruhi apabila diperlukan.
Secara umum, terdapat untung rugi antara penggunaan register dalam jumlah yang
banyak dengan optimisasi register berbasis kompiler. Misalnya, [BRAD91a] melaporkan tentang
penelitian yang memodelkan arsitektur RISC dengan feature yang sama dengan arsitektur
Motorola 88000 dan MIPS R2000. Arsitektur-arsitektur di atas memiliki jumlah register yang
berbeda yang berkisar antara 16 hingga 128 buah, serta semuanya menggunakan general purpose
register dan memisahkan antara register yang menggunakan integer dengan register yang
menggunakan floating point.
Mengapa CISC?
Dua alasan utama yang menjadi motivasi kecenderungan ini : adanya keinginan untuk
menyederhanakan kompiler dan keinginan untuk mengingkatkan kinerja, untuk menggunakan
complex instruction set adalah bahwa eksekusi instruksi akan lebih cepat.
Alasan pertama, yaitu penyederhanaan kompiler telah cukup jelas. Tugas pembuat
kompiler adalah menghasilkan rangkaian instruksi mesin bagi semua pernyataan HLL. Apabila
terdapat instruksi mesin yang menyerupai pernyataan HLL, maka tugas ini akan disederhanakan.
Alasan tersebut pernah diragukan oleh para peneliti RISC ([HENN82], [RADI83], [PATT82b]).
Mereka berdapat bahwa instruksi mesin yang kompleks sering kali sulit digunakan karena
kompiler harus menemukan kasus-kasus yang sesuai dengan konsepnya. Alasan penting lainnya
adalah harapan bahwa CISC akan menghasilkan program yang lebih kecil dan lebih cepat.
Terdapat keuntungan yang dapat diperoleh dari program berukuran kecil. Pertama, karena
program membutuhkan memori yang lebih sedikit, maka akan dapat menghemat sumber daya
dan dengan semakin murahnya harga memori saat ini. Program yang lebih kecil akan
meningkatkan kinerja, dan peningkatan kinerja. Yaitu instruksi yang lebih sedikit dapat diartikan
sebagai lebih sedikitnya byte-byte instruksi yang harus diambil. Dan kedua, pada lingkungan
paging, program yang berukuran lebih kecil akan mengurangi terjadinya page fault.
Alasan dari penggunaan complex set instruction yaitu karena suatu operasi HLL yang kompleks
akan mengeksekusi lebih cepat karena menyerupai sebuah instruksi mesin dibandingkan dengan
mengeksekusi sejumlah instruksi-instruksi yang lebih primitif.
Percepatan terhadap eksekusi fungsi-fungsi kompleks tidak berkaitan banyak dengan
kekuatan instruksi mesin yang kompleks seperti halnya kekuatannya pada penyimpanan kontrol
berkecepatan tinggi [RADI83]. Akibatnya, penyimpanan kontrol berlaku sebagai suatu cache
instruksi. Dengan demikian, arsitektur perangkat keras berada dalam posisi mencoba untuk
menentukan fungsi mana yang akan sering digunakan dan mengassignnya ke penyimpanan
kontrol dengan cara mengimplementasikannya di dalam mikrokode. Jadi, pada sistem-sistem
S/370, instruksi-instruksi seperti Translate dan Extended-Precision-Floating-Point-Divide berada
di dalam penyimpan berkecepatan tinggi, sementara urutan yang dilibatkan dalam penyusunan
prosedur call atau inisiasi suatu interrupt hadler berada di dalam memori utama yang lebih
lambat. Dengan demikian dapat disimpulkan bahwa tidaklah jelas bahwa kecenderungan
peningkatan pemakaian complex instruction set akan terjadi.
Karakteristik Arsitektur Reduced Instruction Set
1. Satu Instruksi per siklus
2. Operasi register ke register
3. Address mode sederhana
4. Format instruksi sederhana
Siklus mesin ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand
dari register, melakukan operasi ALU, dan menyimpan hasil operasinya ke dalam register.
Dengan demikian, instruksi mesin RISC tidak boleh lebih kompleks dan harus dapat
mengeksekusi secepat mikroinstruksi pada mesin-mesin CISC. Dengan menggunakan instruksi
sederhana atau instruksi satu siklus, hanya dibutuhkan sedikit mikrokode atau tidak sama sekali;
instruksi mesin dapat di hardwired. Instruksi-instruksi seperti itu akan dieksekusi lebih cepat
dibandingkan instruksi-instruksi lainnya yang sejenis pada mesin lainnya, karena instruksi-
instruksi tersebut tidak perlu mengakses penyimpanan kontrol mikroprogram pada saat eksekusi
instruksi berlangsung.
Sebagian besar operasi akan berbentuk dari register ke register, yang hanya terdiri dari
operasi-operasi LOAD dan STORE yang mengakses memori. Feature rancangan ini
menyederhanakan set instruksi dan karena itu akan menyederhanakan unit kontrol juga.
Misalnya, sebuah instruksi RISC dapat hanya mengandung satu atau dua buah instruksi ADD
(misalnya, penambahan integer, penambahan dengan carry); VAX memiliki 25 buah instruksi
ADD. Keuntungan lainnya adalah bahwa arsitektur seperti itu memungkinkan optimisasi
pemakaian register, sehingga operand-operand yang sering diakses akan tetap berada di
penyimpan berkecepatan tinggi.
Karakteristik ketiga adalah penggunaan mode pengalamatan sederhana. Hampir sama
dengan instruksi menggunakan pengamalatan register. Beberapa mode tambahan, seperti
pergeseran dan perelative dapat dimasukkan, selain itu lebih banyak mode kompleks dapat
disintesis pada perangkat lunak dibanding yang sederhana. Di samping itu feature rancangan ini
dapat menyederhanakan sel instruksi dan unit kontrol.
Karakteristik umum yang terakhir alah penggunaan format-format instruksi sederhana.
Umumnya, hanya sebuah format atau beberapa format saja yang digunakan. Panjang
instruksinya tetap dan disamakan dengan panjang word. Lokasi field, khususnya opcode, juga
tetap. Feature rancangn ini memiliki beberapa kelebihan. Dengan menggunakan field yang tetap,
pendekodean opcode dan pengaksesan operand register dapat dilakuikan secara bersamaan.
Format yang sederhana akan memudahkan unit kontrol. Pengambilan instruksi akan dioptimisasi
karena satuan panjang word akan diambil. Hal ini juga berarti bahwa instruksi tunggal tidak akan
melewati batas-batas page.
Ciri-ciri RISC :
1. Instruksi berukuran tunggal.
2. Ukurannya yang umum adalah 4 byte.
3. Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.
4. Tidak terdapat pengalamatan tak langsung yang mengharuskan anda melakukan sebuah
akses memori agar memperoleh alamat operand lainnya di dalam memori.
5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi
aritmetika. (misalnya, penambahan dari memori, penambahan ke dalam memori).
6. Tidak terdapat lebih dari satu operand beralamat memori per instruksi.
7. Tidak mendukung perataan sembarang, bagi data untuk operasi load/store.
8. Jumlah maksimum pemakaian memori management unit (MMU) bagi suatu alamat data
adalah sebuah instruksi.floating
9. Jumlah bit bagi floating point register specifier sama dengan lima atau lebih.
10. Jumlah bit floating point register specifier sama dengan empat atau lebih.
2.5PIPELINING RISC
Sering kali pipelining instruksi digunakan untuk meningkatkan kinerja. Kita akan
membahas masalah tersebut di dalam konteks arsitektur RISC. Sebagian besar instruksi
merupakan operasi dari register ke register, dan sebuah siklus instruksi memiliki dua buah fase
berikut ini:
Instruction Fetch
Execute. Menghitung alamat memori.
Memory. Operasi register ke memori atau memori ke register.
Pewaktuan rangkaian instruksi tanpa menggunakan pipelining sangant jelas tidak efisien.
Bahkan pipelining yang sangat sederhana pun dapat meningkatkan kinerja.
Teknik pipelining dua arah yang berlainan dapat dilakukan secara bersamaan. Teknik ini
dapat menghasilkan sampai dua kali waktu kecepatan eksekusi teknik serial.
Optimasi Pipelining
Karena sederhananya instruksi-instruksi RISC, maka pipelining dapat digunakan dengan
efisien. Terdapat beberapa macam durasi eksekusi instruksi, dan pipeline dapat digunakan untuk
menggambarkan perbedaan tersebut. Namun seperti kita ketahui bahwa dependensi data dan
percabangan dapat mengurangi kecepatan eksekusi keseluruhan. Untuk mengkompensasi
dependensi-dependensi, telah dibuat teknik pengorganisasian kembali kode. Pertama, kita ambil
instruksi percabangan. Delayed Branch, yang merupakan cara untuk meningkatkan efisiensi
pipelining, memanfaatkan percabangan yang tidak akan dilakukan sampai denga instruksi
berikutnya.
Instruksi JUMP diambil sebelum instruksi ADD. Namun perlu diingat bahwa instruksi ADD
diambil sebelum eksekusi instruksi JUMP memiliki kesempatan untuk mengubah program
counter. Sehingga semantik orisinil program dapat dijaga.
Instruksi pertukaran ini akan berfungsi dengan baikbagi percabangan tak bersyarat, call, dan
return. Bagi percabangan bersyarat, prosedur ini tidak dapat diterapkan begitu saja. Apabila
syarat percabangan yang diuji dapat diubah oleh instruksi sebelumnya, maka harus menahan
dahulu agar tidak melakukan pertukaran, namun menyisipkan sebuah NOOP.
Taktik yang sama, yang disebut delayed load, dapat digunakan terhadap instruksi LOAD.
Pada instruksi LOAD, register yang menjadi target LOAD dikunci oleh CPU. Kemudian CPU
melanjutkan eksekusi rangkaian instruksi sampai CPU menemukan instruksi yang
membutuhkanregister tersebut, yaitu posisi yang CPU akan adlesampai pemuatan selesai.
Sel Instruksi
Seperti semua sistem RISC secara virtual, 88000 menggunakan instruksi 32-bit yang
panjangnya tetep. Perlu dicatat bahwa dalam semua format, posisi field dikunci berderet. Jadi
dekoder logika instruksi dalam prosesor selalu mengakses register sumber dan register tujuan
dari lokasi yang relatif sama di dalam instruksi. Hal ini dapat mempercepat pendekodean
instruksi dan penyederhanaan rancangan pipeline.
Arsitektur
Keping prosesor utama terdiri dari sejumlah unit fungsi independen yang terhubung ke
file register yang multiport. Unit-unit fungsi dapat beroperasi secara independen dan konkuren,
yang mengakibatkan pengolahan instruksi dengan efisien.
Integer unit: mengeksekusi seluruh aritmatika integer, bit filed, Boole, dan akses-akses
register kontrol.
Floating-Point Unit: menyediakan fungsi IEEE 754.
Instruction Unit: bertanggung jawab atas pengambilan instruksi dan pengiriman opcode
yang telah didekode via signal-signal kontrol ke unit-unit eksekusi yang sesuai, yang
berada di dalam memori prosesor.
Data Memori Unit: bertanggung jawab atas pemuatan dan penyimpanan operand antara
prosesor dengan memori eksternal.
Bus memori (bus M) menghubungkan dua unit manajemen memori cache dengan memori
sistem, yaitu sebuah unit untuk data dan sebuah unit lagi untuk instruksi.
Manajemen Register
File register terdiri dari 32 buah register general purpose 32-bit. Register 0 di hardwired-
kan dengan nilai 0. Hal ini sangat cocok untuk menyimpan bilangan 0 di dalam register
lainnya atau memori lainnya.
Setiap unit fungsi di dalam 88000 memiliki arsitektur yang di-pipeline kan untuk
memungkinkan tingkat paralelisme setinggi mungkin. Unit mengambil instruksi-instruksi
dari cache instruksi via sebuah bus yang dikenal sebagai PBUS. Tahap pengambilan terdiri
dari register Fetch Instruction Pointer (FIP) yang berisi alamat instruksi yang akan diambil.
Pada setiap awal siklus waktu, apabila tidak terdapat pipeline stall atau status menunggu
memori, maka FIP memberikan sebuah alamat ke cache instruksi.
Pasa setiap pointer instruksi, dibuat sebuah shadow register. Apabila pada suatu siklus
terjadi exception, maka shadow register akan debekukan untuk menyimpan nilai-nilai pada
saat terjadi exception. Nilai-nilai ini akan dipanggil lagi setelah pengolahan exception.
Set Instruksi
R4000 tidak menggunakan kode kondisi. Apabila sebuah instruksi menghasilkan suatu
kondisi, maka flag-flagnya disimpan di dalam sebuah register general purpose. Hal ini
menghindarkan kebutuhan logika khusus untuk memperlakukan kode-kode kondisi pada saat
kode-kode itu memengaruhi mekanisme pipelining dan pengurutan kembali instruksi oleh
compiler. Untuk itu digunakan mekanisme yang telah diimplementasikan yang telah berkaitan
dengan dependensi nilai register. Kemudian terhadap kondisi-kondisi yang dipetakan ke file-file
register dikenakan optimisasi compiler yang sama dalam alokasi dan penggunaannya kembali
sebagai nilai-nilai lainnya yang tersimpan dalam register.
MIPS memiliki panjang instruksi tunggal ini menyederhanakan pengambilan dan
pendekodean instruksi, dan juga menyederhanakan interaksi antara pengambilan instruksi
dengan unit manajemen memori virtual (yaitu, instrusi tidak melebihi batas word atau page).
Ketiga format instruksi memiliki pemformatan opcode dan referensi register yang sama, yang
akan memudahkan dekode instruksi. Akibat dari instruksi yang lebih kompleks dapat digunakan
pada saat waktu kompilasi.
Pipelining Instruksi
Dengan arsitektur instrusi yang telah disederhanakan, MIPS akan dapat memperoleh
pipelining yang sangat efisien. Akan sangat bermanfaat apabila meninjau evolusi pipeline MIPS,
seperti halnya penjelasan evolusi pipelining secara umum.
Sistem RISC eksperimental yang paling awal dan generasi pertama prosesor RISC komersial
memiliki kecepatan eksekusi yang mendekati satu instruksi persiklus waktu sistem. Untuk
meningkatkan kinerja ini, dua kelas prosesor digunakan supaya memungkinkan eksekusi
sejumlah instrusi per siklus waktu. Kedua kelas prosesor tersebut adalah arsitektur superskalar
dan superpipelined. Pada dasarnya, arsitektur superskalar menirukan semua tahapan pipeline
sehingga dua instruksi atau lebih yang terdapat pada tahapan yang sama dapat diproses secara
bersamaan. Sedangkan arsitektur pipelined merupakan suatu arsitektur yang memakai tahapan
pipeline yang lebih banyak dan lebih halus. Dengan tahapan yang lebih banyak, instruksi dalam
pipeline pada saat yang bersamaan akan lebih banyak yang akan meningkatkan paralelisme. Pada
R3000, pipeline dinaikkan sekali per siklus waktu. Kompiler MIPS mampu mengurutkan
kembali instrusi-instruksi untuk mengisi slot-slot delay dengan kode dengan kode 70-90 persen
waktu. Semua instruksi membuat urutan lima tahapan pipeline yang sama:
Pengambilan instruksi
Pengambilan operand sumber dari file register
Operasi ALU atau pembuatan alamat operand data
Referensi memori data
Penulisan kembali ke file register
Siklus waktu 60 nanodetik dibagi menjadi 2 fase 30 nanodetik. Operasi instruksi eksternal
dan operasi akses data ke cache masing-masing memerlukan 60 nanodetik, seperti halnya terjadi
pada operasi-operasi internal yang penting (OP, DA, IA). Pendekodean instruksi merupakan
operasi yang sederhana, yang hanya membutuhkan sebuah fase 30 nanodetik yang bertumpang-
tindih dengan pengambilan register dalam instruksi yang sama. Penghitungan alamat instruksi
pencabangan juga bertumpang-tindih dengan dekode instruksi dan pengambilan register,
sehingga sebuah pencabangan pada instruksi i dapat mengalamati akses ICACHE instruksi i + 2.
Demikian pula halnya, pemuatan pada instruksi i akan mengambil data yang akan digunakan
oleh OP instruksi i +1, sementara hasil yang diperoleh ALU/shift akan langsung dilewatkan ke
instruksi i + 1 tanpa mengalami delay. Penguatan hubungan antara kedua instruksi ini dibuat
untuk keperluan pipeline yang sangat efisien.
Karena cache-cache R4000 bersifat on-chip, maka translasi alamat virtual menjadi alamat
fisik dapat menyebabkan delay terhadap akses cache. Delay ini akan berkurang dengan
mengimplementasikan cache yang diindeks secara virtual dan akan menuju ke akses cache
paralel dan translasi alamat. Karena adanya pemampatan event, maka pemeriksaan tag cache
data akan dilakukan secara terpisah pada siklus berikutnya setelah akses cache.
Pada sistem superpipeline, perangkat keras yang ada digunakan beberapa kali per siklus
dengan cara menyisipkan register-register pipeline untuk memisahkan setiap tahapan pipenya.
Pada dasarnya, tahapan superpipeline beroperasi pada kelipatan frekuensi waktu basis, kelipatan
ini bergantung pada derajat superpipelining. Teknologi R4000 memiliki kecepatan dan kerapatan
yang memungkinkan superpipelining derajat 2.
Peningkatan lebih lanjut dapat dilakukan. Pada R4000, telah dirancang adder khusus dan
berukuran lebih besar. Adder tersebut memungkinkan eksekusi operasi ALU yang dua kali lebih
cepat. Peningkatan lainnya memungkinkan eksekusi load dan store dengan kecepatan yang dua
kali lebih besar.
R4000 memiliki delapan tahapan pipeline, yang artinya delapan instruksi dapat berada dalam
pipeline dalam waktu yang bersamaan. Pipeline bertambah kecepatannya menjadi 2 tahapan per
siklus waktu. Kedelapan tahapan tersebut adalah :
Instruction Fetch First Half: Alamat virtual diberikan ke cache instruksi dan translation
lokaside buffer (TLB).
Instruction Fetch Second half: Output-output cache instruksi dan TLB menghasilkan
alamat fisik.
Register file: Tiga aktifitas terjadi secara paralel:
o Instruksi dekode dan diperiksa kondisi interlocknya (yaitu, instruksi ini
tergantung pada hasil instruksi sebelumnya).
o Dilakukan pemeriksaan tag cache instruksi.
o Operand diambil dari file register.
Instruction Execute: Salah satu dari ketiga aktifitas dibawah ini dapat terjadi:
o Apabila instruksinya berbentuk operasi dari register ke register, maka ALU
melakukan operasi aritmetika atau operasi logika.
o Apabila instruksinya berupa operasi pemuatan (load) dan penyimpanan (store),
maka alamat virtual data akan dikalkulasi.
o Apabila instruksinya adalah pencabangan, maka alamat virtual target
pencabangan akan dikalkulasi dan persyaratan pencabangan akan diperiksa.
Data Cache First: Alamat virtual diberikan ke cache data dan TLB.
Data Cache Second: Cache data menghasilkan instruksi, dan TLB menghasilkan alamat
fisik.
Tag Check: Pemeriksaan tag cache dilakukan untuk keperluan operasi pemuatan dan
operasi penyimpanan.
Write Back: Hasil daripada instruksi dituliskan kembali ke file register.
2.8 Kontroversi RISC dan CISC
Selama beberapa tahun, kecenderungan yang terjadi dalam arsitektur dan organisasi
komputer menuju ke arah semakin kompleksnya CPU: instruksi yang lebih banyak, mode
pengalamatan yang lebih banyak, register khusus yang lebih banyak, dll.Perkembangan RISC
menggambarkan tidak adanya hubungan fundamental dengan filosofi yang berada di balik
kecenderungan tersebut. Pada dasarnya, sosok sistem RISC dan publikasi tulisan ilmiah yang
dibuat oleh para pendukungnya yang memuji kelebihan RISC telah menimbulkan reaksi dari apa
yang dikenal sebagai mainstream arsitektur komputer.
Karya yang membahas tentang pendekatan RISC dapat dikelompokkan menjadi dua
kategori:
Kuantitatif: pembandingan ukuran program dan kecepatan eksekusi program pada mesin
RISC dengan mesin CISC yang menggunakan teknologi yang setara.
Kualitatif: Pengujian tentang masalah-masalah seperti misalnya dukungan bahasa tingkat
tinggi dan pemakaian VLSI secara optimum.
Sebagian besar karya secara kuantitatif telah dilakukan oleh [PATT82b, HEAT84, PATT84]
dan karya-karya tersebut sangat membantu pendekatan RISC. Karya-karya lainnya telah
membahas masalah tersebut dan berubah menjadi meragukannya [COLW85a, FLYN87,
DAVI87]. Terdapat beberapa masalah dalam melakukan perbandingan-perbandingan itu
[SERL86].
Tidak terdapat mesin RISC dan CiSC yang sebanding dalam hal harga,tingkat teknologi
kompleksitas gate, kecanggihan kompiler, dukungan sistem operasi, dsb.
Tidak terdapat pengujian programyang pasti. Kinerja bervariasi sesuai dengan
programnya.
Kesulitan dalam mengumpulkan akibat-akibat yang disebabkan perangkat keras yang
berkaitan dengan keterampilan dalam membuat kompiler.
Sebagian besar analisis komparatif tantang RISC dilakukan pada mesin-mesin “mainan”
bukannya pada mesin-mesin komersial. Selain itu, sebagian besar mesin yang tersedia
secara komersial dan diiklankan sebagai RISC memiliki karakteristik campuran antara
RISC dan CISC. Dengan demikian, perbandingan yang adil dengan mesin CISC
komersial dan “murni” (misalnya VAX, Intel 80386) sangatlah sulit dilaksanakan
PENUTUP
3.1 Kesimpulan