1.1
Pipelining & RISC
Pipeline
adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama
tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit
pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.
Teknik pipeline ini dapat
diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang
tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti
pada instruksi yang dijaankan oleh microprocessor.
Pada microprocessor yang tidak menggunakan pipeline , satu
instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat
dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik
pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang
berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi
yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi,
ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.
Dengan penerapan
pipeline ini
pada microprocessor akan didapatkan peningkatan kinerja microprocessor.
Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalam
waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan
sebesar K kali dibandingkan dengan microprocessor yang tidak
menggunakan pipeline , apabila
tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.
Karena
beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut
sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan
yang tepat agar proses tetap berjalan dengan benar dan lancar. Sedangkan
ketergantungan terhadap data bisa muncul, misalnya instruksi yang berurutan
memerlukan data dari instruksi yang sebelumnya. Kasus Jump, juga perlu
perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu
lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan
instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya
mungkin tidak mengharapkan terjadinya perubahan program counter.
Teknik pipeline yang diterapkan
pada microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada
perbedaan khusus antara model microprocessor yang tidak menggunakan
arsitektur pipeline dengan microprocessor
yang menerapkan teknik ini.
Pada microprocessor yang tidak menggunakan pipeline , satu
instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat
dilaksanakan. Sedangkan dalam microprocessor yang menggunakan
teknik pipeline ketika
satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat
diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara
bersamaan ini, ada dalam tahap proses yang berbeda.
Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Misalnya
sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah.
Ketika instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil
untuk diproses pada langkah 1 instruksi tersebut. Begitu pun seterusnya, ketika
instruksi pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan
instruksi ketiga masuk ke langkah 1.
Teknik pipeline ini
menyebabkan ada sejumlah hal yang harus diperhatikan sehingga ketika diterapkan
dapat berjalan dengan baik.
- Terjadinya penggunaan resource yang bersamaan
- Ketergantungan terhadap data, dan
- Pengaturan Jump ke suatu lokasi memori.
1.1.2
Instruksi
pada pipeline
- Mengambil instruksi dan membuffferkannya
- Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang
dibufferkan tersebut
- Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama
memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan
membuffferkan instruksi berikutnya
.Berikut ini adalah gambaran tentang Instuksi pipeline
:
Karena untuk setiap tahap
pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk
mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :
Instruksi 1 : ADD AX, AX
Instruksi 2: ADD EX, CX
Setelah CU menjemput instruksi
1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada
menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya
teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID
menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan
instruksi 1 (EX), instruksi 2 diterjemahkan (ID).
Contoh pengerjaan instruksi tanpa pipeline :
Contoh pengerjaan instruksi dengan pipeline :
Dengan adanya pipeline dua
instruksi selesai dilaksanakan padadetik keenam (sedangkan pada kasus tanpa
pipeline baru selesai pada detik kesepuluh). Dengan demikian telah terjadi
percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan untuk pengerjaan
3 buah instruksi terjadi percepatan sebanyak 2, 14x dari 15T menjadi hanya 7T.
Untuk kasus pipeline sendiri,
2 instruksi dapat dikerjakan dalam 6T (CPI = 3) dan instruksi dapat dikerjakan
dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat dikerjakan dalam 8T (CPI
=2). Ini berarti untuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI =
1,04). Pada kondisi ideal CPI akan harga 1.
1.1.3
Konsep
Pipeline
Konsep pemrosesan pipeline dalam
suatu komputer mirip dengan suatu baris perakitan dalam suatu pabrik industri.
Ambil contoh, suatu proses pembuatan sebuah mobil: anggaplah bahwa
langkah-langkah tertentu di jalur perakitan adalah untuk memasang mesin,
memasang kap mesin, dan memasang roda (dalam urutan tersebut, dengan langkah
arbitrary interstitial). Sebuah mobil di jalur perakitan hanya dapat memiliki
salah satu dari tiga tahap yang dilakukan sekaligus.
Setelah
mobil memiliki mesin yang terpasang, bergerak ke bagian pemasangan kap,
meninggalkan fasilitas pemasangan mesin yang tersedia untuk mobil berikutnya.
Mobil pertama kemudian pindah ke pemasangan roda, mobil kedua untuk pemasangan
kap, dan mobil ketiga dimulai untuk pemasangan mesin. Jika instalasi mesin
membutuhkan waktu 20 menit, instalasi kap mobil memakan waktu 5 menit, dan
instalasi roda membutuhkan waktu 10 menit, kemudian menyelesaikan semua tiga
mobil ketika hanya satu mobil dapat dioperasikan sekaligus akan memakan waktu
105 menit.
Di sisi
lain, dengan menggunakan jalur perakitan, total waktu untuk menyelesaikan
ketiga adalah 75 menit. Pada titik ini, mobil selanjutnya akan datang dari
jalur perakitan pada kenaikan 20 menit.
1.1.4
Masalah-masalah
pada Pipeline
Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak
saling bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline
gagal dilaksanakan (instruksi berikutnya tidak bisa dilaksanakan). Situasi ini
disebut Hazards. Hazards mengurangi performansi
dari CPU dimana percepatan ideal tidak dapat dicapai.
Ada 3 kelompok Hazards
:
- Structural Hazards muncul dari
konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua
kemungkinan kombinasi pelaksanaan instruksi.
- Data Hazards muncul ketika
data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
- Control Hazards muncul pada
pelaksanaan instruksi yang mengubah PC (contoh : branch).
Adanya Hazards menyebabkan pipeline terhambat (stalled).
Tidak ada instruksi baru yang dijemput sampai hambatan itu selesai. Ini berarti
instruksi-instruksi selanjutnya akan ditunda pula penjemputannya.
1.1.5
Keuntungan
dari Pipeline
- Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat
instruksi-isu dalam kebanyakan kasus.
- Beberapa combinational sirkuit seperti penambah atau pengganda dapat
dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
- Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses
dilakukan secara bersamaan dalam satu waktu.
Jika pipeline digunakan
sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih
kompleks sirkuit.
1.1.6
Kerugian
dari Pipeline
- Prossesor non-pipeline hanya menjalankan satu instruksi pada
satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap
cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara
bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk
diproduksi.
- Instruksi latency di prossesor non-pipeline sedikit lebih rendah
daripada dalam pipeline setara. Hal ini disebabkan oleh fakta bahwa sandal
jepit ekstra harus ditambahkan ke jalur data dari prossesor pipeline.
- Prossesor non-pipeline akan memiliki instruksi bandwidth yang stabil.
Kinerja prossesor yang pipeline jauh lebih sulit untuk meramalkan dan
dapat bervariasi lebih luas di antara program yang berbeda.
- Karena beberapa instruksi diproses secara bersamaan ada kemungkinan
instruksi tersebut sama-sama memerlukan resource yang sama, sehingga
diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan
benar.
- Sedangkan ketergantungan
terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan
data dari instruksi yang sebelumnya.
- Kasus Jump, juga perlu perhatian, karena ketika sebuah
instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi
perubahan program counter, sedangkan instruksi yang sedang berada dalam
salah satu tahap proses yang berikutnya mungkin tidak mengharapkan
terjadinya perubahan program counter.
1.1.7 Kesulitan dalam
Pipeline
Untuk menerapkan
prinsip multi-stage atau mulai saat ini kita namakan pipelining di
prosesor, diperlukan organisasi prosesor khusus. Pada dasarnya, prosesor
dipartisi menjadi sejumlah unit-unit kecil dengan fungsi spesifik. Setiap unit
berperan untuk menyelesaikan sebagian dari instruksi-intruksi
berikut :
Instruction fetch, decode,
operand address calculation, operand fetch, execute dan store result.
Dalam proses di atas terkadang
sering terjadi kendala/conflict seperti:
- Terjadinya pause (Pi), karena adanya data conflict dalam
program tersebut
- Terjadinya data error dikarenakan banyaknya proses yang dilakukan
bersamaan
- Terjadinya pengambilan data secara bersamaan, sehingga salah satu
proses tertunda
- Terjadinya penumpukan data di salah satu intruksi sehingga ada
beberapa proses yg di tunda
- Dengan terjadinya conflict tadi, speed-up yang diperoleh menjadi lebih
kecil (lambat) dibandingkan dengan tanpa conclict.
1.1.8 Proses Pipelining Vektor
Sebuah prosesor
vektor atau prosesor array, adalah unit pemrosesan sentral (CPU) yang
mengimplementasikan set instruksi berisi instruksi yang beroperasi pada satu dimensi array data yang disebut vektor. Hal ini kontras
dengan prosesor skalar , yang instruksi beroperasi pada item data tunggal. Meskipun prosesor
Intel dan klon mereka desain awalnya sebagai skalar, model baru berisi
peningkatan jumlah vektor instruksi khusus seperti yang disediakan oleh Ekstensi Vector Lanjutan ditetapkan. Prosesor
vektor pertama kali muncul pada 1970-an, dan membentuk dasar dari yang palingsuperkomputer di tahun 1980 dan 1990-an. Perbaikan dalam prosesor skalar, terutamamikroprosesor , mengakibatkan penurunan prosesor vektor tradisional di
superkomputer, dan munculnya teknik pengolahan vektor di CPU pasar massal
sekitar awal 1990-an. Hari ini, CPU komoditas yang paling mengimplementasikan
arsitektur yang menampilkan instruksi untuk beberapa pemrosesan vektor pada
beberapa (vektoralisasi) set data, biasanya dikenal sebagai SIMD (S Ingle saya
nstruction, M ultiple D ata). Teknik pemrosesan vektor juga ditemukan di konsol video game hardware danakselerator grafis . Pada tahun2000, IBM , Toshiba dan Sony berkolaborasi
untuk menciptakan prosesor Cell , yang terdiri dari satu prosesor skalar dan delapan prosesor vektor,
yang ditemukan digunakan dalam Sony PlayStation 3 di antara aplikasi lain.Desain CPU lain mungkin termasuk beberapa
instruksi untuk pemrosesan vektor pada beberapa (vectorised) set data, biasanya
dikenal sebagai MIMD (M ultiple
saya nstruction, M ultiple D ata). Desain seperti biasanya didedikasikan
untuk aplikasi tertentu dan tidak umum dipasarkan untuk komputasi tujuan
umum .
RISC (Reduce Instruction Set Computer) atau
komputasi set instruksi yang disederhanakan merupakan sebuah arsitektur
komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis
eksekusi yang paling sederhana. Arsitektur ini digunakan pada komputer dengan
kinerja tinggi, seperti komputer vector. Desain ini juga diimplementasikan pada
prosesor komputer lain, seperti pada beberapa mikroprosesor intel 960,
Itanium(IA64) dari Intel Coorporation. Selain itu RISC juga umum dipakai pada
Advanced RISC Machine(ARM) dan StrongARM.
Ide dasar prosesor RISC sebenarnya bisa dilacak dari
apa yang disarankan oleh Von Neumann pada tahun 1946. Von Neumann menyarankan
agar rangkaian elektronik untuk konsep logika diimplementasikan hanya bila
memang diperlukan untuk melengkapi sistem agar berfungsi atau karena frekuensi
penggunaannya cukup tinggi (Heudin, 1992 : 18). Jadi ide tentang RISC, yang
pada dasarnya adalah untuk menyederhanakan realisasi perangkat keras prosesor
dengan melimpahkan sebagian besar tugas kepada perangkat lunaknya, telah ada
pada komputer elektronik pertama. Seperti halnya prosesor RISC, komputer
elektronik pertama merupakan komputer eksekusi-langsung yang memiliki instruksi
sederhana dan mudah didekode.
Hal yang sama dipercayai juga oleh Seymour Cray,
spesialis pembuat superkomputer. Pada tahun 1975, berdasarkan kajian yang
dilakukannya, Seymour Cray menyimpulkan bahwa penggunaan register sebagai
tempat manipulasi data menyebabkan rancangan instruksi menjadi sangat sederhana.
Ketika itu perancang prosesor lain lebih banyak membuat instruksi-instruksi
yang merujuk ke memori daripada ke register seperti rancangan Seymour Cray.
Sampai akhir tahun 1980-an komputer-komputer rancangan Seymour Cray, dalam
bentuk superkomputer seri Cray, merupakan komputer-komputer dengan kinerja
sangat tinggi. Pada tahun 1975, kelompok peneliti di IBM di bawah pimpinan
George Radin, memulai merancang komputer berdasar konsep John Cocke.
Berdasarkan saran John Cocke, setelah meneliti frekuensi pemanfaatan instruksi
hasil kompilasi suatu program, untuk memperoleh prosesor berkinerja tinggi
tidak perlu diimplementasikan instruksi kompleks ke dalam prosesor bila
instruksi tersebut dapat dibuat dari instruksi-instruksi sederhana yang telah
dimilikinya.
1.2.3 Prosesor RISC Berkeley
Kelompok David Patterson dari Universitas California
memulai proyek RISC pada tahun 1980 dengan tujuan menghindari kecenderungan
perancangan prosesor yang perangkat instruksinya semakin kompleks sehingga
memerlukan perancangan rangkaian kontrol yang semakin rumit dari waktu ke
waktu. Hipotesis yang diajukan adalah bahwa implementasi instruksi yang
kompleks ke dalam perangkat instruksi prosesor justru berdampak negatif
pemakaian instruksi tersebut dalam kebanyakan program hasil komplikasi (Heudin,
1992 : 22). Apalagi, instruksi kompleks itu pada dasarnya dapat disusun dari
instruksi-instruksi sederhana yang telah dimiliki.
Rancangan prosesor RISC-1 ditujukan untuk mendukung
bahasa C, yang dipilih karena popularitasnya dan banyaknya pengguna. Realisasi
rancangan diselesaikan oleh kelompok Patterson dalam waktu 6 bulan. Fabrikasi
dilakukan oleh MOVIS dan XEROX dengan menggunakan teknologi silikon NMOS
(N-channel Metal-oxide Semiconductor) 2 mikron. Hasilnya adalah sebuah chip
rangkaian terpadu dengan 44.500 buah transistor (Heudin, 1992 : 230). Chip
RISC-1 selesai dibuat pada musim panas dengan kecepatan eksekusi 2 mikrosekon
per instruksi (pada frekuensi detak 1,5 MHz), 4 kali lebih lambat dari
kecepatan yang ditargetkan. Tidak tercapainya target itu disebabkan terjadinya
sedikit kesalahan perancangan, meskipun kemudian dapat diatasi dengan
memodifikasi rancangan assemblernya. Berdasarkan hasil evaluasi, meskipun hanya
bekerja pada frekuensi detak 1,5 MHz dan mengandung kesalahan perancangan,
RISC-1 terbukti mampu mengeksekusi program bahasa C lebih cepat dari beberapa
prosesor CISC, yakni MC68000, Z8002, VAX-11/780, dan PDP-11/70. Hampir
bersamaan dengan proses fabrikasi RISC-1, tim Berkeley lain mulai bekerja untuk
merancang RISC-2. Chip yang dihasilkan tidak lagi mengandung kesalahan sehingga
mencapai kecepatan operasi yang ditargetkan, 330 nanosekon tiap instruksi
(Heudin, 1992 : 27-28).
RISC-2 hanya memerlukan luas chip 25% dari yang
dibutuhkan RISC-1 dengan 75% lebih banyak register. Meskipun perangkat
instruksi yang ditanamkan sama dengan perangkat instruksi yang dimiliki RISC-1,
tetapi di antara keduanya terdapat perbedaan mikroarsitektur perangkat
kerasnya. RISC-2 memiliki 138 buah register yang disusun sebagai 8 jendela
register, dibandingkan dengan 78 buah register yang disusun sebagai 6 jendela
register. Selain itu, juga terdapat perbedaan dalam hal organisasi alur-pipa
(pipeline) . RISC-1 memiliki alur-pipa dua tingkat sederhana dengan penjeputan
(fetch) dan eksekusi instruksi yang dibuat tumpang-tindih, sedangkan RISC-2
memiliki 3 buah alur-pipa yang masing-masing untuk penjemputan instruksi,
pembacaan operan dan eksekusinya, dan penulisan kembali hasilnya ke dalam
register. Sukses kedua proyek memacu tim Berkeley untuk mengerjakan proyek SOAR
(Smalltalk on RISC) yang dimulai pada tahun 1983.
1.2.4 Prosesor RISC Stanford
Sementara proyek RISC-1 dan RISC-2 dilakukan
kelompok Patterson di Universitas California, pada tahun 1981 itu juga John
Hennessy dari Universitas Stanford mengerjakan proyek MIPS (Microprocessor
without Interlocked Pipeline Stages) . Pengalaman riset tentang optimasi
kompilator digabungkan dengan teknologi perangkat keras RISC merupakan kunci
utama proyek MIPS ini. Tujuan utamanya adalah menghasilkan chip mikroprosesor
serbaguna 32-bit yang dirancang untuk mengeksekusi secara efisien kode-kode
hasil kompilasi (Heudin, 1992: 34). Perangkat instruksi prosesor MIPS terdiri
atas 31 buah instruksi yang dibagi menjadi 4 kelompok, yakni kelompok instruksi
isi dan simpan, kelompok instruksi operasi aritmetika dan logika, kelompok
instruksi pengontrol, dan kelompok instruksi lain-lain. MIPS menggunakan lima
tingkat alur-pipa tanpa perangkat keras saling-kunci antar alur-pipa tersebut,
sehingga kode yang dieksekusi harus benar-benar bebas dari konflik antar
alur-pipa.
Direalisasi dengan teknologi NMOS 2 mikron, prosesor
MIPS yang memiliki 24.000 transistor ini memiliki kemampuan mengeksekusi satu
instruksi setiap 500 nanodetik. Karena menggunakan lima tingkat alur-pipa
bagian kontrol prosesor MIPS ini menyita luas chip dua kali lipat dibanding
dengan bagian kontrol pada prosesor RISC. MIPS memiliki 16 register
dibandingkan dengan 138 buah register pada RISC-2. Hal ini bukan masalah
penting karena MIPS memang dirancang untuk mebebankan kerumitan perangkat keras
ke dalam perangkat lunak sehingga menghasilkan perangkat keras yang jauh lebih
sederhana dan lebih efisien. Perangkat keras yang sederhana akan mempersingkat
waktu perancangan, implementasi, dan perbaikan bila terjadi kesalahan. Sukses
perancangan MIPS dilanjutkan oleh tim Stanford dengan merancang mikroprosesor
yang lebih canggih, yakni MIPS-X. Perancangan dilakukan oleh tim riset MIPS
sebelumnya ditambah 6 orang mahasiswa, dan dimulai pada musim panas tahun 1984.
Rancangan MIPS-X banyak diperbaruhi oleh MIPS dan RISC-2 dengan beberapa
perbedaan utama :
1.
Semua instruksi
MIPS-X merupakan operasi tunggal dan dieksekusi dalam satu siklus detak
2.
Semua instruksi
MIPS-X memiliki format tetap dengan panjang instruksi 32-bit
3.
MIPS-X
dilengkapi pendukung koprosesor yang efisien dan sederhana
4.
MIPS-X
dilengkapi pendukung untuk digunakan sebagai prosesor dasar dalam sistem
multiprosesor memori-bersama (shared memory)
5.
MIPS-X
dilengkapi chace instruksi dalam-chip yang cukup besar (2 kilobyte)
6.
MIPS-X
difabrikasi dengan teknologi CMOS 2 mikron.
Perkembangan menarik terjadi pada tahun 1993 ketika
aliansi tiga perusahaan terkemuka, IBM, Apple, dan Motorola memperkenalkan
produk baru mereka yakni PowerPC 601, suatu mikroprosesor RISC 64-bit yang
dirancang untuk stasiun kerja (workstation) atau komputer personal (Thompson,
1993 : 56-74). Menarik, karena kemunculan PowerPC 601 dimaksudkan untuk
memberikan alternatif bagi dominasi prosesor CISC keluarga-86 Intel dalam
komputer rumahan. Popularitas prosesor keluarga-86 didukung oleh harganya yang
murah dan banyaknya program aplikasi yang dapat dijalankan dengan prosesor ini.
Untuk itu, prosesor PowerPC dijual dengan harga yang cukup bersaing
dibandingkan dengan pentium, yakni prosesor buatan Intel mutakhir saat itu
(Thompson, 1993 : 64). Perkembangan teknologi emulasi yang memungkinkan
prosesor RISC menjalankan sistem operasi yang sama dengan prosesor CISC
keluarga-86 diperkirakan akan membuat prosesor RISC, terutama PowerPC 601,
banyak digunakan di dalam komputer-komputer personal (Halfhill, 1994 :
119-130).
Beberapa prosesor implementasi dari arsiteketur RISC
adalah AMD29000, MIPS R2000, SPARC, MC 88000, HP PA, IBM RT/TC, IBM RS/6000,
intel i860, Motorola 88000 (keluarga Motorola), PowerPC G5.
1. Semua atau setidak-tidaknya sebagian besar (80%)
instruksi harus dieksekusi dalam satu siklus clock.
2. Semua instruksi harus memiliki satu ukuran standar,
yaitu sama dengan ukuran kata dasar (basic word length).
3. Jumlah jenis instuksinya harus kecil, tidak melebihi
128
4. Jumlah format isntruksinya harus kecil, tidak
melebihi kira-kira 4
5. Jumlah addressing mode harus kecil, tidak melebihi
kira-kira 4
6. Akses ke memori hanya dilakukan dengan instruksi
load dan store.
7. Semua operasi, kekcuali operasi load dan store
merupakan operasi register ke register di dalam CPU.
8. Memiliki hardwired control unit.
9. Memiliki relatif banyak register serbaguna internal
CPU.
Arsitektur RISC memiliki beberapa karakteristik
diantaranya :
1. Siklus mesin
ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand dari
register, melakukan operasi ALU, dan menyimpan hasil operasinya kedalam
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
satu mikrokode atau tidak sama sekali, instruksi mesin dapat dihardwired.
Instruksi seperti itu akan dieksekusi lebih cepat dibanding yang sejenis pada
yang lain karena tidak perlu mengakses penyimapanan kontrol mikroprogram saat
eksekusi instruksi berlangsung.
2. Operasi berbentuk
dari register-ke register yang hanya terdiri dari operasi load dan store yang
mengakses memori . Fitur rancangan ini menyederhanakan set instruksi sehingga
menyederhanakan pula unit control. Keuntungan lainnya memungkinkan optimasi
pemakaian register sehingga operand yang sering diakses akan tetap ada di
penyimpan berkecepatan tinggi. Penekanan pada operasi register ke register
merupakan hal yang unik bagi perancangan RISC.
3. Penggunaan mode
pengalamatan sederhana, hampir sama dengan instruksi menggunakan pengalamatan
register,. Beberapa mode tambahan seperti pergeseran dan pe-relatif dapat
dimasukkan selain itu banyak mode kompleks dapat disintesis pada perangkat
lunak dibanding yang sederhana, selain dapat menyederhanakan sel instruksi dan
unit kontrol.
4. Penggunaan
format-format instruksi sederhana, panjang instruksinya tetap dan disesuaikan
dengan panjang word. Fitur ini memiliki beberapa kelebihan karena dengan
menggunakan field yang tetap pendekodean opcode dan pengaksesan operand
register dapat dilakukan secara bersama-sama
RISC perlu memperhatikan karakteristik eksekusi
instruksi. Adapun aspek-aspek komputasinya adalah :
1. Operasi-operasi
yang dilakukan ,
2. Operand-operand
yang digunakan,
3. Pengurutan
eksekusi,.
1. 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.
2.
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.
3.
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).
- PowerPC dibangun dengan arsitektur
RISC
Proyek mini komputer 801 di IBM pada tahun 1975
mengawali banyak konsep arsitektur yang digunakan dalam sistem RISC. 801
bersama dengan prosessor RISC I Berkeley, meluncurkan gerakan RISC, namun 801
hanya merupakan prototipe yang ditujukan untuk mengenalkan konsep disain.
Keberhasilan memperkenalkan 801 menyebabkan IBM membangun produk workstation
RISC komersial yaitu PC RT pada tahun 1986, dengan mengadaptasi konsep
arsitektural 801 kedalam kinerja yang sebanding atau yang lebih baik. IBM RISC
System/6000 merupakan mesin RISC superscalar1 yang dipasarkan sebagai
workstation berunjuk kerja tinggi, tidak lama kemudian IBM mengkaitkan mesin
ini sebagai arsitektur POWER. IBM kemudian menjalin kerjasama dengan Motorola,
pembuat mikroprosessor seri 6800, dan Apple, yang menggunakan keping Motorola
dalam komputer Macintoshnya dan hasilnya adalah seri mesin yang
mengimplementasikan arsitektur PowerPC yang diturunkan dari arsitektur POWER
dan merupakan sistem RISC superscalar.
Sejauh ini diperkenalkan empat anggota kelompok
PowerPC yaitu
1.
601,merupakan
mesin 32-bit yang ditujukan untuk membawa arsitektur PowerPC kepasar secepat
mungkin.
2.
603, merupakan
mesin 32-bit yang ditujukan bagi low-end desktop dan komputer portable dengan
implementasi yang lebih efesien.
3.
604, merupakan
mesin 32-bit yang ditujukan bagi low-end server dan desktop, dengan menggunakan
teknik rancangan superscalar lanjutan guna mendapatkan kinerja yang lebih baik.
4.
620, ditujukan
bagi high-end server, sekaligus merupakan kelompok PowerPC pertama yang mengimplementasikan
arsitektur 64 bit penuh, termasuk regiater 64-bit dan lintasan data.
PowerPC sendiri adalah jenis prosesor yang
bi-endian, yang mendukung baik mode big-endian maupun litlle-endian. Arsitektur
bi-endian memungkinkan pembuat perangkat lunak untuk memilih mode yang mana
saja ketika harus memindahkan sistem operasi dan aplikasi dari suatu mesin ke
mesin lainnya. Byte, halfword, word, doubleword merupakan jenis data umum.
Prosesor mengiterpretasikan isi item data tertentu tergantung pada instruksi.
a.
Unsigned
Halfword : seperti diatas namun dengan kuantitas 16-bit.
b.
Signed Halfword
: digunakan untuk operasi aritmatika, dimuatkan kedalam memori dengan
sign-extending pada sebelah kiri keukuran penuh register (yaitu, bit tanda
disalinkan keposisi-posisi yang kosong).
c.
Unsigned Word :
digunakan untuk operasi logika dan berfungsi sebagai pointer lokal.
d.
Signed Word :
digunakan untuk operasi aritmatika.
e.
Unsigned
Doubleword : digunakan sebagai pointer alamat.
f.
Byte String :
panjangnya mulai 0 hingga 128 byte.
Selain itu PowerPC mendukung data floating poing
presisi tunggal dan presisi ganda yang ditetapkan pada IEEE 754.
Teknologi RISC relatif masih baru oleh karena itu
tidak ada perdebatan dalam menggunakan RISC ataupun CISC, karena tekhnologi
terus berkembang dan arsitektur berada dalam sebuah spektrum, bukannya berada
dalam dua kategori yang jelas maka penilaian yang tegas akan sangat kecil
kemungkinan untuk terjadi.
- Kelebihan
1.
Berkaitan dengan
penyederhanaan kompiler, dimana tugas pembuat kompiler untuk menghasilkan
rangkaian instruksi mesin bagi semua pernyataan HLL. Instruksi mesin yang
kompleks seringkali sulit digunakan karena kompiler harus menemukan kasus-kasus
yang sesuai dengan konsepnya. Pekerjaan mengoptimalkan kode yang dihasilkan
untuk meminimalkan ukuran kode, mengurangi hitungan eksekusi instruksi, dan
meningkatkan pipelining jauh lebih mudah apabila menggunakan RISC dibanding
menggunakan CISC.
2.
Arsitektur RISC
yang mendasari PowerPC memiliki kecenderungan lebih menekankan pada referensi
register dibanding referensi memori, dan referensi register memerlukan bit yang
lebih sedikit sehingga memiliki akses eksekusi instruksi lebih cepat.
3.
Kecenderungan
operasi register ke register akan lebih menyederhanakan set instruksi dan
menyederhanakan unit kontrol serta pengoptimasian register akan menyebabkan
operand-operand yang sering diakses akan tetap berada dipenyimpan berkecepatan
tinggi.
4.
Penggunaan mode
pengalamatan dan format instruksi yang lebih sederhana.
- Kekurangan
Kelemahan utama dari RISC ialah jumalh instruksi yang sedikit. Hal ini
mengakibatkan untuk melakukan suatu tugas akan dibutuhkan instruksi yang lebih
banyak bila dibandingkan CISC. Hasilnya ialah jumlah ukuran program akan lebih
besar bila dibandingkan CISC. Penggunaan memori akan semakin meningkat dan lalu
lintas instruksi antara CPU dan memori akan meningkat pula.
Prosesor RISC, yang berkembang dari riset akademis
telah menjadi prosesor komersial yang terbukti mampu beroperasi lebih cepat
dengan penggunaan luas chip yang efisien. Kemajuan mutakhir yang ditunjukkan
oleh mikroprosesor PowerPC 601 dan teknologi emulasi yang antara lain
dikembangkan oleh IBM memungkinkan bergesernya dominasi chip-chip keluarga-86
dan kompatibelnya. Program yang dihasilkan dalam bahasa simbolik akan lebih
panjang (instruksinya lebih banyak).
1.
Program
berukuran lebih besar sehingga membutuhkan memori yang lebih banyak, ini
tentunya kurang menghemat sumber daya.
2.
Program yang
berukuran lebih besar akan menyebabkan :
·
Menurunnya
kinerja, yaitu instruksi yang lebih banyak artinya akan lebih banyak byte-byte
instruksi yang harus diambil.
·
Pada lingkungan
paging akan menyebabkan kemungkinan terjadinya page fault lebih besar
Daftar
pustaka :



Tidak ada komentar:
Posting Komentar