RISC

Posted by mahfuz On Kamis, 03 November 2011 0 komentar

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