Vous êtes sur la page 1sur 18

REDUCED INSTRUCTION SET COMPUTERS

(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

BAB III PENUTUP


3.1. Kesimpulan
KATA PENGANTAR

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.

Demikian makalah ini saya buat semoga bermanfaat,

Malang, 28 february 2011


Penulis
BAB I

PENDAHULUAN

1.1 LATAR BELAKANG


Perkembangan inovasi komputer penyimpanan program sejak 1950 menambah
satu daftar penemuan yang sangat menarik dan paling penting , yaitu Arsitektur Reduced
Instruction Set Computers ( RISC). Analisis arsitekture RISC telah menjadi menjadi
perhatian banyak masalah tentang organisasi dan arsitekture computer. Walaupun sistem
RISC telah ditentukan dan dirancang dengan berbagai cara berdasarkan komunitasnya,
elemen penting yang digunakan sebagian rancangan umumnya adalah sebagai berikut :
1. Set instruksi yang terbatas dan sederhana
2. Register general purpose berjumlah banyak atau penggunaaan teknologi
kompiler untuk mengoptimalklan penggunaan register.
3. Penekanan pada pengoptimalan pipeline instruksi.
Berdasarkan Inovasi Arsitektur Reduced Instruction Set computers (RISC) yang
merupakan salah satu suatu inovasi yang menjadi titik permasalahan pada saat itu, maka
penulis penulis akan mencoba menguraikan berbagai materi yang kami susun berdasarkan
literatur yang kami peroleh sebagai bahan pembelajaran Mata Kuliah Organisasi dan
Arsitektur Komputer.

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

1.3 RUMUSAN MASALAH


Berdasarkan latar belakang tersebut dan masalah-masalah yang akan dibahas yang
dibahas dapat dirumuskan sebagai berikut :
 Bagaimana Karakteristik dan berbagai permasalahan dari Reduced Intruction
Set Computer (RISC) dan permasalahan dari RISC itu sendiri?
 Perbedaandari karakteristik RISC dengan CISC?
 Bagaimana mengkondisikan antara kelas prosesor arsitektur superskalar dan
superpipelined.
BAB II

PEMBAHASAN

2.1 Karakteristik-Karakteristik Eksekusi Instruksi


Salah satu evolusi komputer yang besar adalah evolusi bahasa pemprograman.
Bahasa pemprograman memungkinkan programmer dapat mengekspresikan algoritma
lebih singkat, lebih memperhatikan rincian, dan mendukung penggunaan pemprograman
terstruktur, tetapi ternyata muncul masalah lain yaitu semantic gap, yaitu perbedaan antara
operasi-operasi yang disediakan oleh HLL (High Level Languages) dengan yang
disediakan oleh arsitektur komputer, ini ditandai dengan ketidakefisienan eksekusi program
mesin yang berukuran besar, dan kompleksitas kompiler. Untuk mengurangi kesenjangan ini
para perancang menjawabnya dengan arsitektur. Fitur-fiturnya meliputi set-set instruksi
yang banyak, lusinan mode pengalamatan, dan statemen–statemen HLL yang
diimplementasikan pada perangkat keras. Set-set instruksi yang kompleks tersebut
dimaksudkan untuk :
1. Memudahkan pekerjaan compiler
2. Meningkatkan efisiensi eksekusi, karena operasi yang kompleks dapat
diimplementasikan didalam mikrokode.
3. Memberikan dukungan bagi HLL yang lebih kompleks dan canggih.
Sementara, hasil penelitian telah memberikan inspirasi kepada para peniliti untuk
mencari pendekatan secara keseluruhan yaitu dengan cara membuat arsitekture yang mendukung
HLL secara lebih sederhana. Oleh karena itu untuk memahami RISC perlu
memperhatikan karakteristik eksekusi instruksi. Adapun aspek-aspek komputasinya adalah :
1. Operasi-operasi yang dilakukan
2. Operand-operand yang digunakan
3. Pengurutan eksekusi

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

2.2 Penggunaan File Register Besar


Terdapat statement assignment yang jumlahnya banyak dalam program-program HLL,
dan banyak diantaranya berupa statement assignment sederhana seperti A <= B. Di samping itu,
terdapat pula akses operand per statement HLL dalam jumlah yang cukup besar. Apabila kita
menghubungkan kedua di atas dengan kenyataan bahwa sebagian besar akses adalah menuju ke
skalar-skalar lokal, maka sangat mungkin kita memerlukan penyimpanan register yang besar.
Alasan diperlukannya penyimpanan register adalah register merupakan perangkat penyimpanan
yang paling cepat, yang lebih cepat dibandingkan dengan memori utama dan memori cache.
Dimungkinkan untuk menerapkan dua buah pendekatan dasar, yaitu berdasarkan
perangkat lunak dan perangkat keras.
 Pendekatan perangkat lunak mengandalkan kompiler untuk memaksimalkan
pemakaian register. Pendakatan ini membutuhkan algoritma analisis program yang
canggih.
 Pendekatan perangkat keras dilakukan hanya dengan memperbanyak jumlah register
sehingga akan lebih banyak variabel yang dapat ditampung di dalam register dalam
periode waktu yang lebih lama.
Register Windows
Dengan menggunakan pendekatan diatas Jendela register dibagi menjadi tiga buah daerah
yang berukuran tetap.
 Register-register parameter
menampung parameter-parameter yang dilewatkan dari prosedur.
 Register-register lokal
Digunakan untuk variable lokal, setelah di-assign oleh kompiler.
 Register-register tenporer
Digunakan untuk pertukaran parameter dan hasilnya dengan yang tingkatan yang lebih
rendah berikutnya, jadi secara fisik register-register temporer yang berada dalam satu
tingkatan sama seperti halnya register-register parameter pada tingkatan yang lebih
rendah berikutnya.
Overlap ini memungkinkan parameter-parameter dapat dilewatkan tanpa perpindahan
aktual data.

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 :

 Pertama, Variabel-variabel yang dideklarasikan sebagai global pada HLL dapat


disediakan lokasi-lokasi oleh kompiler. Namun, bagi yang sering mengakses
variabel-variabel global, teknik tersebut tidaklah efisien
 Alternatifnya adalah melibatkan kumpulan register global di dalam CPU. Register-
register ini harus memiliki jumlah yang tetap dan dapat dipakai oleh semua prosedur

Large Register File versus Chace

Karakteristik file register besar dan Chace

Large register file Cache


Semua Scalar lokal Skalar lokal yang baru dipakai
Variable-variabel individual Sekelompok memory
Variabel-variabel global yang di-assign Variabel global yang baru dipakai
kompiler
Save/restore tergantung kepada pertimbangan Save/restore tergantung algoritma
prosedur pengganti chace
Pengalamatan Register Pengalamatan Memory

Perbedaan ini terlihat dengan membandingkan jumlah overhead pengalamatan kedua


pendekatan tersebut

2.3 OPTIMASI REGISTER BERBASIS KOMPILER

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.

2.4 REDUCED INSTRUCTION SET ARCHITECTURE

Kita akan memulainya dengan pembahasan tentang motivasi penggunaan arsitektur


complex instruction set yang kontemporer.

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.

Karakteristik CISC Versus RISC


Setelah terjadi antusiasme untuk menggunakan mesin-mesin RISC, terjadi kejadian-kejadian
sepert :
1. Rancangan RISC dapat memperoleh keuntungan dengan mengambil sejumlah feature
CISC.
2. Rancangan CISC dapat memperoleh keuntungan dengan mengambil sejumlah feature
RISC.

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:

 Intruksi Fetch (Pengambilan instruksi)


 Execute (Eksekusi). Melakukan operasi ALU dengan input register dan output register.

Bagi operasi-operasi load dan store, diperlukan 3 fase:

 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.

2.6 Motorola 8800


Motorola 8800 merupakan prosesor RISC pertama yang dibuat Motorola. Walaupun dari
nomor jenisnya terlihat ada kaitannya dengan keluarga MC68000 yang berarsitektur CISC,
proses ini memiliki perbedaan yang cukup mencolok. MC68000 merupakan wakil bagi CISC
masa kini, sedangkan 8800 merupakan sepenuhnya sistem RISC.

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.

Dengan menggunakan arsitektur 88000, diperlukan beberapa hal untuk memungkinkan


seluruh unit fungsiuntuk dapat memakai bersama file register tanpa merusak data berbasis
register yang satu dengan yang lainnya. Mekanisme yang dipakai dalam 88000 dikenal
sebagai register scoreboarding.

Pipeline Unit Instruksi

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.

Selama tahap berikutnya, alamat FIP dipindahkan ke register Next Instruction


Pointer(NIP), kemudian instruksi akan diambil dari memori dan ditempatkan di dalam
register Next Instruction. Selama tahapan ini, instruksi didekode sebagian dan operand-
operand yang dibutuhkan dari file di-prefetch, dan disiapkan untuk keperluan transfer ke unit
fungsi yang sesuai.

Selama tahap eksekusi berlangsung, alamat di dalam NIP dipindahkan ke register


Execute Instruction Pointer(XIP), dan instruksi dipindahkan ke register Executing
Instruction. Pada tahap ini instruksi dimuat di fungsi yang sesuai.

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.

2.7 MIPS R4000


Salah satu keeping yang dijual secara komersial dibuat oleh MIPS Computer Systems.
Sistemnya memperoleh inspirasi dari system eksperimental, yang juga menggunakan nama
MIPS yang dibuat di Stanford [HENN84]. Anggota keluarga MIPS yang terbaru adalah R4000.
R4000 memiliki arsitektur dan set instruksi yang pada dasarnya sama dengan rancangan-
rancangan MIPS terdahulu: R2000, R3000, dan R6000. Perbedaannya yang mecolok adalah
bahwa R4000 memakai lintasan data internal dan eksternal, alamat, register, dan ALU yang
besarnya 64 bit, tidak lagi 32 bit.

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

Penilaian kualitatif bersifat subjektif. Beberapa peneliti telah mengalihkan perhatiannya ke


penilaian seperti itu [COLW85a, WALL85], namun hasilnya tidaklah jelas dan mudah dibantah
[PATT85b], dan tentu saja dapat membantah balik [COLW85b].
BAB III

PENUTUP

3.1 Kesimpulan

Dari hasil penguraian mengenai permalahan Arsitektur Reduced Instruction Set


computers (RISC) dapat disimpulkan bahwa Arsitekture RISC memiliki strukture intruksi yang
sederhana dengan menggunakan teknik seperti pipeline untuk melakukan operasi sederhana,
dasar dan menggunakan sejumlah kecil mode pengalamatan, sehingga dapat dieksekusi lebih
cepat. Keuntungan lainnya penggunaan RISC memungkinkan optimasi pemakaian register
sehingga operand yang sering diakses akan tetap ada di penyimpan berkecepatan tinggi
(Register).

Vous aimerez peut-être aussi