Mengurangi
Set Instruksi Komputer
(RISCs)
Pemakaian RISC dalam
meningkatkan arsitektur dengan sumbar daya diperlukan pada perancangan
instruksi yang dapat memakan waktu operasi secara lebih efisien. Kemunculan
pemakaian RISC pertama kali pada pertengahan tahun 1970-an. Secara nyata bahwa
manifestasinya muncul di Barkeley RISC I dan mesin Stanford MIPS, yang
diperkenalkan pada pertengahan tahun 1980-an. Sekarang ini, mesin asli yang
berbasis RISC dan alat tersebut ditandai dengan sejumlah fitur-fitur umum
seperti pengurangan set instruksi yang sederhana, format instruksi yang tetap,
hanya satu instruksi per siklus, pengambilan pipeline instruksi atau mengeksekusi berupa unit nomor serta
register atau alternatifnya dioptimalkan pada compiler generasi kode.
A.
Evolusi
dari Siklus RISC/CISC
RISC
merupakan singkatan dari Reduced
Instruction Set Computer. RISC pada awalnya diperkenalkan sebagai sebuah
gagasan arsitektur yang dapat mengeksekusi secara cepat pada salah satu
instruksi per siklus jam. Adanya RISC berawal dari sebuah ide pada pertengahan
tahun 1970-an dan akhirnya menyebabkan adanya perkembangan pada mesin berbasis
RISC pertama, yaitu komputer mini IBM 801. Peluncuran gagasan RISC
menginformasikan awal dari sebuah paradigma baru dalam desain arsitektur
komputer. Paradigma ini memperkenalkan kesederhanaaan dari desain arsitektur
komputer. Secara khusus, panggilan untuk kembali ke dasar-dasar pada pemberian
dukungan perangkat keras tambahan untuk bahasa tingkat tinggi. Perubahan
paradigma berkaitan dengan apa yang dikenal sebagai kesenjangan semantik,
perbedaan ukuran antara operasi yang disediakan dalam bahasa tingkat tinggi
(HLLs) yang disediakan pada arsitektur komputer. Hal ini diakui bahwa
kesenjangan semantik yang lebih luas, semakin besar jumlah konsekuensi yang
tidak diinginkan, meliputi: (a) inefesiensi eksekusi; (b) ukuran program mesin
yang berlebihan; dan (c) kompleksitas kompiler
yang semakin meningkat.
B.
Prinsip
dari desain RISCs
Sebuah
komputer dengan jumlah instruksi minimum memiliki kelemahan bahwa sebagian
besar instruksi harus dijalankan dengan mewujudkan suatu fungsi yang sederhana.
Hal ini akan mengakibatkan kerugian pada masalah kecepatan. Di sisi lain, komputer
dengan jumlah instruksi yang semakin meningkat memiliki kelemahan pada kompleks
decoding dan kerugian pada kecepatan.
Pertanyaannya, apa yang harus diperhatikan dalam mengurangi set instruksi?
Untuk sampai pada jawaban tersebut, perlu dilakukan penelitian yang mendalam
pada sejumlah aspek perhitungan. Aspek tersebut harus meliputi: (a) operasi
yang paling sering dilakukan selama pelaksanaan program; (b) operasi yang
paling sering memakan waktu lama; dan (c) jenis operan yang paling sering
digunakan. Sejumlah penelitian awal dilakukan dalam rangka untuk mngetahui
kerusakan yang khas pada operasi yang melaksanakan program patokan, perkiraan
operasi distribusi ditunjukkan pada Tabel 10.1.
Operasi
|
Perkiraan presentase
|
Tugas pernyataan
Loop-loop
Prosedur panggilan
Cabang bersyarat
Cabang tidak berkondisi
lainnya
|
35
5
15
40
3
2
|
Tabel 10.1 perkiraan operasi distribusi
Berdasarkan tabel di atas, perilaku program
yang khas telah menyebabkan sebagai berikut.
1. Pergerakan
data yang sederhana (diwakili oleh pernyataan penugasan) daripada operasi yang
kompleks, yang substansial dan harus dioptimalkan.
2. Cabang
kondisional yang dominan Karena harus hati-hati dalam pembayaran kepada urutan
instruksi. Hal ini berlaku bila diketahui bahwa pipelining sangat diperlukan.
3. Prosedur
panggilan yang memakan waktu operasi dan karena itu mekanisme harus dirancang
untuk membuat komunikasi parameter antara panggilan dan prosedur tersebut yang
menyebabkan sedikitnya jumlah instruksi untuk pengeksekusian.
4. Sebuah
kandidat utama untuk operasi adalah mekanisme untuk menyimpan dan mengakses
skalar variabel lokal.
Kesimpulan di atas telah menyebabkan argumen
membawa instruksi diatur arsitektur lebih dekat ke HLLs, harus lebih tepat
untuk lebih mengoptimalkan kinerja yang memakan waktu program dari fitur khas
HLL. Ini jelas merupakan penggilan untuk membuat arsitektur sederhana daripada
yang kompleks. Ingat bahwa operasi
kompleks seperti pembagian panjang hanya mewakili sebagian kecil (kurang dari
2%) dari operasi yang dilakukan selama perhitungan yang khas. Kemudian muncul
pertanyaan, bagaimana kita bisa mencapai mencapai hal tersebut? Jawabannya
adalah; (a) menjaga operan yang paling sering diakses di dalam register dan
CPU; dan (b) meminimalkan operasi register ke memori.
Dua
prinsip di atas dapat dicapai dengan menggunakan mekanisme-mekanisme berikut:
1. Gunakan
sejumlah besar register untuk mengoptimalkan referensi operan dan mengurangi
lalu lintas memori prosesor.
2. Optimalkan
desain pipeline instruksi tersebut.
3. Gunakan
set instruksi yang disederhanakan dan mengabaikan yang kompleks dan tidak perlu
instruksi.
Berikut dua pendekatan yang
didefinisikan untuk menerapkan ketiga mekanisme di atas yaitu.
a.
Pendekatan perangkat lunak. Gunakan compiler untuk memaksimalkan penggunaan
register dengan mengalokasikan register untuk variabel-variabel yang digunakan
dalam periode waktu tertentu.
b.
Pendekatan perangkat keras. Gunakan
register CPU yang cukup sehingga variabel lebih dapat diselenggarakan di
register untuk jangka waktu yang lebih besar. Pendekatan perangkat keras memerlukan
penggunaan organisasi register baru, yang disebut overlapped register windows.
C.
Overlapped dari windows register
Gagasan
utama di balik penggunaan windows
register adalah untuk meminimalkan pengaksesan memori. Dalam rangka untuk
pencapaian tersebut, sebagian besar register CPU harus dibutuhkan. Sebagai
contoh, jumlah register CPU yang tersedia di SPARC dengan mesin asli (salah
satu RISC pertama) adalah 120. Namun, hanya subset
dari register terlihat pada waktu tertentu. Oleh karena itu, register CPU
dibagi menjadi beberapa set kecil, masing-masing ditugaskan untuk prosedur yang
berbeda. Suatu prosedur panggilan secara otomatis akan beralih pada CPU untuk
menggunakan windows tetap dengan ukuran yang berbeda dari register. Dalam
rangka untuk meminimalkan gerakan aktual dari parameter yang dipanggil dan
prosedur tersebut. Overlapped memungkinkan
parameter yang akan berlaku antara prosedur tanpa aktual pergerakan data (Gambar
10.1).
Parameter
register
|
Register
lokal
|
Register
sementara
|
Level j (pemanggil)
Memanggil/masuk
Level j+1 (pemanggil)
Parameter register
|
Register lokal
|
Register sementara
|
Gambar 10.1. peng-overlapping-an window register
Arsitektur
|
Jumlah window
|
Jumlah register per window
|
RISC-1 Barkeley
Pyramid-piramid
SPARC
|
8
16
32
|
16
32
32
|
Tabel 10.2 karakteristik yang berbeda pada windows register
D.
Perbandingan
RISC dan CISC
Pemilihan
RISC dan CISC tergantung sepenuhnya pada faktor-faktor yang harus
dipertimbangkan oleh seorang desainer
komputer. Faktor-faktor tersebut meliputi ukuran, kompleksitas dan kecepatan.
Sebuah arsitektur RISC harus mengeksekusi lebih banyak instruksi untuk
melakukan fungsi yang sama yang dilakukan oleh arsitektur CISC. Untuk
mengkompensasi kekurangan ini, arsitektur RISC harus menggunakan area chip yang disimpan dengan tidak
menggunakan instruksi decoder yang
kompleks dalam menyediakan sejumlah register CPU, eksekusi unit tambahan dan cache instruksi. Penggunaan sumber daya
ini mengarah pada pengurangan lalu lintas antara prosesor dan memori. Di sisi
lain, arsitektur CISC dengan instruksi
yang lebih kaya dan lebih kompleks, akan mebutuhkan kompleks skema decoding dan karenanya patut pada
penundaan logika. Oleh karena itu wajar untuk mempertimbangkan bahwa paradigma
RISC dan CISC berbeda terutama dalam strategi yang digunakan untuk
faktor-faktor trade off yang berbeda. Ada sedikit alasan dalam
meningkatkan kinerja Arsitektur RISC akan gagal untuk melakukan hal yang sama
dalam arsitektur CISC dan sebaliknya. Misalnya, satu kunci masalah dalam pengembangan
RISC adalah penggunaan dalam mengoptimalkan compiler
untuk mengurangi kompleksitas perangkat keras dan untuk mengoptimalkan
penggunaan register CPU. Ide-ide yang sama harus berlaku untuk compiler CISC.
Aplikasi
|
MIPS CPI
(RISC)
|
VAX CPI
(CISC)
|
CPI ratio
|
Instruction
ratio
|
Spice 2G6
Matrix300
Nasa 7
Espresso
|
1.80
3.06
3.01
1.06
|
8.02
13.81
14.95
5.40
|
4.44
4.51
4.97
5.09
|
2.48
2.37
2.10
1.70
|
Tabel 10.3
pebandingan kinerja RISC dan CISC
Pada
Tabel 10.3 dan 10.4 menunjukkan perbandingan terbatas antara contoh mesin RISC
dan CISC dalam hal kinerja dan karakteristik masing-masing. Suatu perbandingan
yang rumit antara sejumlah RISC tersedia secara komersial dan mesin CISC
ditunjukkan pada Tabel 10.5, perlu disebutkan beberapa karakteristik umum pada
mesin RISC:
1. Fixed-panjang
instruksi
2. jumlah
instruksi terbatas (kurang dari 128)
3. set mode pengalamatan
yang sederhana (minimal 2: di indeks dan di PC-relatif)
4. semua
operasi dilakukan pada register, tidak ada operasi pada memori
5. hanya
dua operasi memori
6. eksekusi
pipeline instruksi
7. jumlah
general-purposes register yang besar
atau penggunaan compiler teknologi
canggih untuk mengoptimalkan penggunaan register
8. satu
instruksi per siklus jam
Karakteristik
|
VAX-11 (CISC)
|
Barkeley
RISC-1 (RISC)
|
Jumlah
instruksi
Ukuran
instruksi (bits)
Mode
pengalamatan
No. tujuan
umum register
|
303
16-456
22
16
|
31
32
3
138
|
Tabel 10.4 perbandingan
karakteristik RISC dan CISC
|
Motorola
88110
|
Alpha AXP
21264
|
Pentium
|
Power PC 601
|
Perusahaan
Arsitektur
#register (I)
Cache I/D
#registers
(GP/FP)
#inst/siklus
#pipelines
(I/FP)
Dukungan
multiprocessing
|
Motorola
RISC
32
8/8 KB
32/32
2
NS
No
|
Compaq (DEC)
RISC
80
64/64 KB
31/31
1
4/2
Yes
|
Intel
CISC
64
8/8 KB
8/8
2
5/8
Yes
|
IBM
RISC
32
32
32/32
3
4/6
Yes
|
Tabel 10.5
ringkasan fitur dari sebuah RISC dan CISC
E.
mesin
RISC di Pioneer (Universitas)
pelopor
mesin RISC di Universitas ini pertama adalah RISC Barkeley dan yang kedua
adalah mesin MIPS Stanford. Mesin ini
disajikan sebagai sarana untuk menunjukkan bagaimana tampilan asli dari mesin
RISC.
1. RISC
Barkeley
Ada
dua mesin RISC Barkeley, yaitu RISC I dan II. Kecuali jika disebutkan, kita
lihat RSC I. RISC memiliki 32 bit load/store
pada arsitekturnya. Ada register R0-R137 32 bit sebanyak 138 tersedia untuk
para pengguna. Register pertama, R0 10-R9 adalah register global (dilihat oleh
semua prosedur). Register R0 digunakan untuk mensintesis mode pengalamatan dan
operasi yang tidak langsung tersedia pada mesin.
1.
ALU: ADD RS, S, Rd<-Rs+S
2.
Load/stote: LDXW (Rx)S, Rd; Rd<-M[Rx+S]
2 5 6 5 1 8 5
Type
|
DST
|
Op-Code
|
SRC 1
|
0
|
FP-OP
|
SRC 2
|
Type
|
DST
|
Op-Code
|
SRC 1
|
1
|
Immediet Constant
|
Gambar
10.2 tiga format operan instruksi yang digunakan dalam RISC
3.
Branch & call: JMPX COND, (Rx)S; PC<-Rx+S; dimana COND adalah kondisi
4.
Instruksi khusus: GETPSW Rd; Rd<-PSW
Semua instruksi
aritmatika dan logika memilki tiga operan dan memiliki bentuk tujuan: ¼ source1 op source2 (gambar 10.2). instruksi store The load dapat menggunakan salah satu format yang ditunjukkan
dengan DST register yang akan dimuat atau disimpan.
2. MIPS
Stanford (mikroprosesor tanpa tahapan pipeline interclock)
MIPS
adalah LOAD pipeline 32-bit/ mesin
STORE. Ini menggunakan pipeline lima tahap yang terdiri dari
mengambil instruksi (IF), pengkodean instruksi (ID), pengkodean operan (OD),
eksekusi operan (OS/EX) dan mengambil operan (OF).
F.
Contoh
mesin RISC yang edvance
ada dua perwakilan
mesin canggih RISC. Dalam cakupan ini adalah pada fitur branch pipeline dan mekanisme penanganannya.
1. Compact
Alpha 21264
Alpha
21264 (EV6) adalah compact generasi ketiga RISC prosesor superskalar. Ini
adalah prosesor 64-bit. 21264 memiliki 80-entri bilangan bulat file register
dan 72-entri floting-point file register.
Yang mempekerjakan cache dua
tingkat. Cache L1 dan cache instruksi adalah 64 KB.
Diorganisir dalam sebuah cara mengarah set-associative.
Cache L2 dengan data 16 MB diatur menggunaan pemetaan langsung. Ukuran blok
adalah 64 byte. Data cache dapat
menerima beban kombinasi dari dua atau lebih bilangan bulat pipeline eksekusi setiap siklus.
2. Pipeline Alpha
21264
Dalam
Pipeline instruksi Alpha 21264 terdiri dari tujuh tahap, yang terdiri
dari mengambil, slot, ubah nama, membaca register, menjalankan dan tahap pada
memori. Tahap mengambil dan mengeksekusi hingga empat instruksi per siklus.
Tahap ini menggunakan blok yang unik.
3. SUN
UltraSPARC III
UltraSPARC
III memilki kinerja RISC yang tinggi yang mengimplementasikan 64-bit SPARC-V9
arsitektur RISC. Ada sejumlah implementasi dari prosesor SPARC III, ini
termasuk UltraSPARC III Cu. UltraSPARC III adalah generasi ketiga mikroprosesor
SPARC RISC 64-bit. Ini mendukung jalur alamat virtual 64-bit dan jalur alamat
43-bit. Ultra SPARC III menggunakan arsitektur cache yang bertingkat.
G. Ringkasan
Sebuah arsitektur RISC
menghemat are chip tambahan yang digunakan oleh arsitektur CISC untuk decoding dan melaksanakan instruksi yang
kompleks. Area chip yang disimpan
kemudian digunakan untuk menyediakan sebuah cache
on-chip instruksi yang dapat digunakan untuk mengurangi lalu lintas
instruksi antara prosesor dan memori. Karakteristik umum yang dimiliki oleh
desain RISC adalah: terbatas dan set instruksi yang sederhana, sebagian besar
tujuan umum register dan/atau penggunaan teknologi compiler untuk mengoptimalkan penggunaan register dan optimasi dari
pipeline instruksi.yang terpenting
adalah untuk menjaga operan yang sering diakses dalam register dan meminimalkan
operasi register. Hal ini dapat dicapai dengan menggunakan salah satu dari dua
pendekatan: pendekatan perangkat lunak, menggunakan compiler untuk memaksimalkan penggunaan register dengan
mengalokasikan register untuk variabel-variabel yang akan digunakan dalam
periode waktu tertentu. Atau pendekatan perangkat keras, menggunakan register
lebih sehingga variabel lebih dapat diselenggarakan di register untuk jangka
waktu yang lebih besar. Set windows register pada beberapa register,
masing-masing ditugaskan ke prosedur yang berbeda. Panggilan prosedur switch CPU otomatis menggunakan window tetap, ukuran berbeda dari tabung
register di memori pada waktu panggilan. Pada setiap saat, satu window register terihat dan ditujukan
seolah-olah hanya mengatur register. Overlapped
windows membutuhkan register temporer pada satu tingkat fisik yang sama
dengan parameter register di tingkat berikutnya. Overlapped memungkinkan parameter yang akan berlalu tanpa aktual
pergerakan data. Ini menyebutkan bahwa klasifikasi prosesor dari RISC dan CISC
seluruhnya menjadi lebih cepat, tepat dan tidak relevan. Sejumlah
pengklasifikasian prosesor CISC, sementara mempekerjakan sejumlah fitur CISC
seperti sebagai integer/instruction
floating-point division. Demikian pula, terdapat prosesor yang
diklasifikasikan sebagai CISC yang sementara mempekerjakan sejumlah fitur RISC
seperti pipelining.
0 komentar:
Posting Komentar