pipeline power pc
TRANSCRIPT
I. PENDAHULUAN
Pada dasarnya PowerPC adalah suatu Reduced Instruction Set Computer
(RISC) yang memanfaatkan prinsip-prinsip rancangan superscalar dan mendukung
konfigurasi multiple-processor. PowerPC merupakan turunan langsung dari sistem
RISC pertama, yaitu IBM 801, dan merupakan sistem berbasis RISC yang paling
handal dan memiliki rancangan terbaik yang ada dipasaran.
Pada mikrokomputer, hubungan antara rancangan organisasional dan
arsitektural sangat dekat. Perubahan teknologi komputer tidak hanya berpengaruh
pada tingkat organisasinya saja tetapi juga pada hasil yang terjadi pada tingkat
arsitektural yang lebih baik dan lebih kaya. Umumnya, terdapat persyaratan bagi
kompatabilitas antara generasi yang satu kegenerasi yang lain pada mesin komputer.
Dengan demikian, terdapat pengaruh yang kuat antara keputusan rancangan
organisasional dan arsitekural, seperti halnya pada RISC (Reduce Instruction Set
Computer) yang mendasari organisasional dan arsitektural PowerPC.
Arsitektur RISC merupakan perubahan dramatis pada kecenderungan
arsitektur komputer yang sekaligus merupakan salah satu penemuan penting dalam
perkembangan organisasi dan arsitektur komputer saat ini. Inovasi baru yang sama
pentingnya adalah superscalar processor yang walaupun dapat digunakan pada
sembarang prosessor tetapi pada kenyataannya lebih cocok digunakan pada arsitektur
RISC.
II. REDUCED INSTRUCTION SET COMPUTERS (RISC)
Perkembangan inovasi komputer sejak 1960 menambah satu daftar penemuan
yang sangat menarik dan paling penting , yaitu Arsitektur Reduced Instruction Set
computers ( RISC). 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.
A. 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 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 kompiler
2. Meningkatkan efisiensi eksekusi, karena operasi yang kompleks dapat
diimplementasikan didalam mikrokode.
3. Memberikan dukungan bagi HLL yang lebih kompleks dan canggih.
Oleh karena itu untuk memahami RISC perlu memperhatikan karakteristik
eksekusi instruksi. Adapun aspek-aspek komputasinya adalah :
1. Operasi-operasi yang dilakukan , untuk menentukan fungsi-fungsi yang akan
dilakukan oleh CPU dan interaksinya dengan memori.
2. Operand-operand yang digunakan, karena jenis-jenis operand dan frekuensi
pemakaiannya akan menentukan organisasi memori untuk menyimpannya dan
mode pengalamatan untuk mengaksesnya.
3. Pengurutan eksekusi, untuk menentukan kontrol dan organisasi pipeline.
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).
4. Implikasi
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
B. Karakteristik Arsitektur Reduced Instruction Set Computers (RISC)
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
C. Ciri-Ciri RISC
1. Instruksi berukuran tunggal
2. Ukuran yang umum adalah 4 byte
3. Jumlah pengalamatan data sedikit, biasanya kurang dari 5 buah.
4. Tidak terdapat pengalamatan tak langsung yang mengharuskan melakukan
sebuah akses memori agar memperoleh alamat operand lainnya dalam memori
5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi
aritmatika, seperti penambahan ke memori dan penambahan dari 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 manajemen bagi suatu alamat data
adalah sebuah instruksi .
9. Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih, artinya
sedikitnya 32 buah register integer dapat direferensikan sekaligus secara
eksplisit.
10. Jumlah bit floating point register spesifier sama dengan 4 atau lebih, artinya
sedikitnya 16 register floating point dapat direferensikan sekaligus secara
eksplisit.
Beberapa prosesor implementasi dari arsiteketur RISC adalah AMD 29000, MIPS R2000, SPARC, MC 88000, HP PA, IBM RT/TC, IBM RS/6000, intel i860, Motorola 88000 (keluarga Motorola), PowerPC G5.
III. POWERPC
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
superscalar 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.
A. SISTEM KOMPUTER
1. Organisasi Cache
Organisasi PowerPC telah mengalami modifikasi dengan masing-masing
model dalam kelompok PowerPC, yang menggambarkan terobosan terus-menerus
pada unjuk kerjanya yang memaksa para perancang microprocessor untuk melakukan
perbaikan. Tabel berikut menggambarkan evolusi cache-cache internal PowerPC
Model orisinalnya, 601 mencakup cache code/data 32 Kbyte tunggal yang
merupakan asosiatIf set delapan arah. Model 603 menggunakan rancangan RISC yang
lebih canggih namun memiliki cache yang lebih kecil : 16 KB yang terbagi menjadi
cache instruksi dan cache data yang terpisah, keduanya menggunakan organisasi
asosiatif set dua arah. Hasilnya, 603, menghasilkan unjuk kerja yang hampir sama
dengan 601 namun dengan harga yang lebih murah, sedangkan untuk model 604 dan
Model Ukuran Bytes/Line Organisasi
PowerPC 601 1 32-KB 32 8-way set Associative
PowerPC 603 2 8-KB 32 2-way set associative
PowerPC 604 2 16-KB 32 4-way set associative
PowerPC 620 2 32-KB 64 8-way set associative
602 masing-masing menggandakan ukuran cachenya dari model-model yang
terdahulu.
Keluarga PowerPC memiliki bentuk organisasi yang sama, dimana unit-unit
eksekusi inti merupakan Arithmatic Logic Unit (ALU), yang dapat mengeksekusi
secara paralel, dan suatu floating point yang memiliki register dan komponen pengali
dan pembaginya sendiri. Data cache dapat menerima operasi-operasi integer dan
floating point melalui unit load/store, sedang cache-cache internal merupakan
asosiatif set delapan arah dan menggunakan protokol koherensi cache MESI
(Modified/Exlusive/Shared/Invalid), yang dikembangkan untuk mencakup sebuah
keadaan baru yang disebut Allocated (A). Keadaan ini digunakan bila blok data dalam
sebuah saluran disapu keluar dan digantikan. Keadaan ini akan menjadi A sampai data
yang lama dituliskan keluar dan data baru dituliskan kedalam.
2. Manajemen Memori
PowerPC menyediakan sejumlah mekanisme pengalamatan yang
komprehensif. Untuk implementasi arsitektur 32-bit, diimplementasikan teknik
paging dengan menggunakan mekanisme segmentasi yang sederhana, sedangkan
untuk implementasi 64-bit dapat menggunakan teknik paging dan mekanisme
segmentasi yang kebih baik. Selain itu, bagi mesin 32-bit dan 64-bit terdapat sebuah
mekanisme alternatif, yang dikenal sebagai penerjemahan alamat blok. Teknik
pengalamatan blok dirancang untuk menutupi kekurangan yang diakibatkan oleh
mekanisme paging.
Dengan teknik paging, sejumlah besar page dapat sering direferensikan oleh
program, seperti program yang menggunakan tabel OS atau buffer frame dapat
menimbulkan tingkah laku seperti ini, sehingga mengakibatkan page-page yang sering
digunakan akan secara terus-menerus dipage-in dan out. Teknik pengalamatan blok
memungkinkan prosesor memetakan empat buah blo besar dengan tidak
menggunakan mekanisme paging.
2.1. Manajemen Memori PowerPC 32-bit
PowerPC 32-bit menggunakan alamat efektif 32-bit yang meliputi pengenal
page 16-bit dan selector 12-bit. Jadi digunakan = 4 KB page, diizinkan pula
page per segmen. Empat bit dari alamat digunakan untuk menandakan salah satu dari
16 buah register segmen. Isi register-regiter ini dikontrol oleh sistem operasi. Setiap
register segmen meliputi bit-bit kontrol akses dan sebuah identifier 24-bit, sehingga
alamat efektif 32-bit memetakan ke dalam alamat virtual 52-bit
PowerPC menggunakan inverted page tabel tunggal. Alamat virtual digunakan
untuk mengindekskan kedalam page tabel dengan cache sebagai berikut :
Kode hash dihitung H(0…19)=SID(5…23) VPN(0…18).
Nomor virtual page dalam alamat virtual diisikan kebagian kiri (sisi paling
berarti) dengan tiga buah nol untuk membentuk bilangan 19-bit. Selanjutnya bit perbit
XOR akan dihitung kebilangan tersebut dan 19 bit paling kanan dari ID segmen
virtual untuk membentuk kode hash 19-bit. Tabel diatur menjadi n kelompok yang
terdiri dari 8 buah entri. Dari 10 sampai 19 bit kode hash (tergantung dari ukuran page
tabel). Kemudian hardware akan manajemen memori melacak delapan entri dalam
kelompok untuk dicocokan dengan alamat virtual. Dalam mencari kecocokan, setiap
page tabel entry meliputi ID segmen virtual dan 6 bit paling kiri dari nomor virtual
page, yang disebut abbreviated page index (karena sedikitnya 10 bit dari nomor
virtual page 16-bit selalu berpartisipasi di dalam hash untuk memilih kelompok page
tabel entry, hanya bentuk-bentuk singkat nomor virtual page yang perlu dibawa ke
page tabel entry agar cocok secara unik dengan alamat virtual).
Bila cocok maka nomor real page 20-bitdari alamat dirangkaikan dengan 12
bit terrendah alamat efektif untuk membentuk alamat fisik 32-bit agar dapat diakses.
Bila tidak cocok, maka kode hash dikomplemenkan untuk menghasilkan indeks page
tabel yag baru yang berada pada posisi relatif yang sama disisi lain tabel. Kemudian
kelompok ini dilacak untuk dicocokan. Bila tidak ada yang cocok, sebuah page file
interrupt akan terjadi.
2.2. Manajemen Memori PowerPC 64 Bit
Teknik manajemen memori 64-bit dirancang untuk kompatibel dengan
implementasi 32-bit. Pada dasarnya, seluruh alamat efektif, general register, dan
register alamat pencabangan dikembangkab pada bagian kiri dari 64-bit tersebut.
Untuk mengakomodasi kebutuhan pemetaan memori, pengguaan sederhana register
segmen digantikan oleh struktur segmen tabel ber-hash yang sama dengan struktur
page tabel seperti pada struktur page tabel 32-bit.
Didalam segmen tabel, kelompok-kelompok entri segmen tabel berisi delapan
buah entri segmen tabel, setiap entri berisi segmen identifier efektif 36-bit, sebuah
virtual segmen identifier 52-bit, dan bit-bit proteksi akses dan selektor ruang I/O yang
sama seperti yang terdapat didalam register-register segmen pada implementasi 32-
bit. Seperti pada implementasi 32-bit, alamat efektif meliputi sebuah byte selektor 12-
bit dan nomor page 16-bit. 36 bit sisanya membentuk ID segmen efektif karena tidak
layak untuk mempunyai register segmen, digunakan tabel segmen yang ber-hash.
Segmen tabel terdiri dari 256 buah entri yang diorganisasikan sebagai 32 buah
kelompok yang masing-masing terdiri dari 8 entri. Hardware manajemen memori
menggunakan 5 bit bagian bawah ID segmen efektif intuk melakukan pengindeksan
ke dalam tabel untuk memilih salah satu dari ke-32 kelompok itu. Bila dalam
kelompok ada yang cocok , dengan cara membandingkan ID segmen, maka kan
dibentuk alamat virtual 80-bit. Alamat ini terdiri dari virtual segmen ID 52-bit yang
berasal dari segmen tabel entri yang diisikan ke page dan field-field byte dari daripada
alamat efektif.
Demikian pula, apabila tidak cocok maka 5 bit indeks akan dikomplemenkan
untuk mengindekskan ke tabel kedua kalinya. Bila terjadi ketidak cocokan pada
pencarian kedua, akan terjadi interrupsi page fault. Sisa dari terjemahan alamat, dri
alamat virtual menjadi alamat real , mengikuti struktur yang sama seperti pada alamat
32-bit. Dalam hal ini, nomor virtual page 16-bit di-hashkan dengan 39-bit rendah dari
nomor segmen virtual untuk memilih kelompok tabel entry. Format page tabel entry
64-bit memiliki virtual segmen ID 52-bit, sebuah page yang disingkat 52-bit, dan
nomor real page 52-bit. Hasil pemetaannya adalah alamat real 64-bit.
Berikut tabel Parameter-Parameter Manajemen Memori PowerPC
Segmen Tabel Entry
Effective Segment ID Mengindikasikan salah satu segmen efektif 64G; digunakan untuk menentukan entri didalam tabel segmen
Entry Valid (V) bit Mengindikasikan apakah merupakan memori atau segmen I/O
Segmen Type (T) bit Mengindikasikan apakah merupakan memori atau segmen I/O
Supervisor Key (Ks) Digunakan dengan nomor page virtual untuk menetukan entri di dalam page tabel
Page tabel Entry
Entry Valid (V) bit Mengindikasikan apakah terdapat data valid dalam entri ini
Hash Function Identifier (H) Mengindikasikan apakah merupakan entri hash primer atau sekunder
Abbreviated Page Index (API) Digunakan untuk mencocokan sebuah alamat virtual secara unik
Referenced (R) bit Bit disetel satu oleh prosesor ketika operasi read atau write dengan page tertentu terjadi
Changed (C) bit Bit ini disetel 1 oleh prosesor ketika operasi atau write dengan page tertentu terjadi
WIMG bit W=0 : menggunakan write back policy,
W=1 : menggunakan write through policy
I=0 : caching tidak dihalangi
I=1 : caching dihalangi
M=0 : bukan memori yang dipakai bersama
M=1 : memori yang dipakai bersama
G=0 : memori yang tidak dijaga
G=1 : memori yang dijaga
Page Protection (PP) bit Bit-bit kontrol akses yang digunakan dengan K bit dari segmen register atau segmen tabel entry untuk menentukan hak akses
B. KARAKTERISTIK DAN FUNGSI
1. Jenis-Jenis Data
PowerPC dapat beroperasi menggunakan data yang panjang 8 bit (byte), 16 bit
(halfword), 32 bit (word), dan 64 bit (doubleword). Beberapa instruksi mengharuskan
agar operand memori dijajarkan (aligned) pada batas 32-bit, walaupun secara umum
tidak terlalu diperlukan. Salah satu ciri PowerPC yang menarik adalah dapat
menggunakan cara little-endian maupun big-endian, dengan kata lain, byte yang
paling kurang signifikan disimpan dalam alamat terendah atau tertinggi. Konsep ke-
endianan pertama kali dibahas dalam literatur Cohen [COHE8]. Pada byte ke-endian-
an harus melakukan pengurutan nilai-nilai skalar multibyte. Konsep ini terjadi apabila
terdapat kebutuhan untuk memperlakukan entitas multiple-byte sebagai butir data
tunggal, walaupun entitas ini terdiri dari unit-unit yang dapat dialamati yang lebih
kecil. Beberapa mesin seperti intel 80x86, pentium, dan VAX, merupakan mesin-
mesin litlle endian, sedangkan mesin-mesin seperti IBM S/370, Motorola 680x0, dan
sebagian besar mesin-mesin RISC merupakn mesin-mesin big-endian. Sifat ke-
endian-an tidak akan melampaui unit data. Dalam sembarang mesin, aggregate seperti
file, struktur data, dan array terdiri dari beberapa unit data, yang masing-masing
memakai ke-endian-an. Jadi konversi blok memori dari suatu jenis ke-endian-an
kejenis lainnya memerlukan pemahaman struktur data.
Tidak terdapat konsensus umum tentang ke-endianan yang terbaik, 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. Prosesor fixed
point mengenal jenis data berikut :
Unsigned Byte : dapat digunakan bagi operasi logika atau aritmetika integer. Data ini
dimuat dari memori ke register umum dengan zero-extending dsebelah kiri keukuran
penuh register.
Unsigned Halfword : seperti diatas namun dengan kuantitas 16-bit.
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).
Unsigned Word : digunakan untuk operasi logika dan berfungsi sebagai pointer
lokal.
Signed Word : digunakan untuk operasi aritmatika.
Unsigned Doubleword : digunakan sebagai pointer alamat.
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.
2. Jenis Jenis Operasi
PowerPC banyak memiliki jenis operasi , berikut disajikan berbagai jenis
operasi pada PowerPC :
Instruksi Uraian
Berorientasi Pencabangan
b Pencabangan tidak bersyarat
bl Bercabang kealamat sasaran dan menaruh alamat efektif instruksi yang berada setelah pencabangan kedalam link register
bc Pencabangan bersyarat pada Count Register dan/atau pada bit dalkam Condition Register.
sc System Call untuk membangkitkan layanan sistem operasi
trap Memebandingkan dua buah operand dan membangkitkan system trap handler bila persyaratan tertentu dipenuhi.
Load/Store
lwzu Memuatkan word dan nol kesebelah kiri; mengupdate register sumber.
ld Memuatkan dobleword.
lmw Memuatkan word ganda; memuatkan word berurutan ke regiater yang berdekatan dari register sasaran melalui General Purpose Register 31.
lswx memuatkan suatu untaian byte kedalam register yang dimulai dengan register sasaran; empat byte per-register; diambil semua dari register 31 hingga register 0.
Arimatika Integer
add Menjumlahkan isi dari dua buah integer dan menyimpannya dalam register ketiga
subf Mengurangkan isi dua buah register dan menyimpannya dalam register ketiga.
mullw Mengalikan isi dua buah register orde rendah 32-bit dan menyimpan hasil perkaliannya dalam register 64-bit ketiga.
divd Membagi isi dua buah register 64-bit dan menyimpan kuosiennya dalam register ketiga.
Logika dan Sift
cmp Membandingkan dua buah operand dan menyetel empat buah bit kondisi dalam field register kondisi tertentu.
crand Condition Register AND : dua bit Condition Register di-AND-kan dan hasilnya disimpan dalam salah satu dari kedua posisi tersebut.
and Meng-AND-kan isi dua buah register dan menyimpannya dalam register ketiga
cntlzd Mencacah jumlah bit 0 berturutan yang berawal pada bit nol dalam register sumber dan menempatkan hasil perhitungan dalam regiater tujuan.
rldic Merotasikan ke kiri register doubleword, meng-AND-kannya dengan mask, dan menyimpannya dalam register tujuan.
sld Menggeser kekiri dalam register sumber dan menyimpannya dalam register tujuan
Floating Point
lfs Memuatkan bilangan floating point 32-bit dari memori, mengubahnya kedalam format 64 bit, dan menyimpannya dalam register floating point.
fadd Menjumlahkan dua buah register floating point dan menyimpannya dalam register ketiga.
fmadd Mengalikan isi dua buah register, menambahkan isi regiater ketiga, dan menyimpan hasilnya dalam regiater keempat.
fcmpu Membandingkan dua buah operand floating point dan menyetel bit-bit kondisi.
Manajemen Cache
dcbf Membersihkan (flush) blok data cache; melakukan lookup dalam cache yang terdapat pada alamat sasaran tertentu dan melakukan operasi pembersihan.
icbi Menginvalidasikan instruksi blok cache
2.1. Instruksi-Instruksi berorientasi Pencabangan
PowerPC memiliki orientasi pencabangan tidak bersyarat dan
pencabangan bersyarat. Instruksi-instruksi pencabangan bersyarat menguji suatu bit
tunggal dari register kondisi apakah benar, salah, atau tidak peduli dan isi dari counter
register apakah nol, bukan nol, atau tidak peduli. Dengan demikian terdapat sembilan
macam kondisi instruksi pencabangan bersyarat yang terpisah. Apabila counter
register diuji apakah nol atau bukan nol, maka sesudah pengujian register berkurang
1. Hal ini tentunya memudahkan penyiapan loop iterasi. Instruksi dapat juga
mengindikasikan bahwa alamat dari pencabangan itu ditempatkan dalam link register,
hal ini memungkinkan pengolahan call/return.
2.2. Instruksi-instruksi Load/Store
Dalam arsitektur PowerPC hanya instruksi load/store yang dapat
mengakses lokasi memori, instruksi logika dan aritmetika hanya dilakukan terhadap
register. Terdapat dua fitur yang membedakan instruksi-instruksi load/store :
1. Ukuran data, dimana data dapat dipindahkan dalam satu byte, halfword, word, atau
doubleword. Instruksi-instruksi juga dapat digunakan untuk memuat atau
menyimpan suatu untai byte ke dalam sejumlah register atau dari sejumlah register
2. Ekstensi Tanda, dimana pada pembuatan word dan halfword, bit-bit sebelah kiri
register 64-bit tujuan yag tidak dipakai dapat diisi dengan bilangan-bilangan nol
atau dengan bit tanda dari kuantitas yang dimuatkan.
C. Mode dan Format Pengalamatan
1. Mode Pengalamatan
Seperti umumnya mesin-mesin RISC, PowerPC menggunakan mode
pengalamatan yang sederhana dan relatif pendek. Mode-mode ini sangat cocok
diklasifikasikan menurut jenis instruksinya
1.1. Load/Store Adressing
1.1.1. Indirrect Adressing
Instruksinya meliputi displacement 16-bit yang akan ditambahkan
ke register basis, yang kemudian akan meng-update isi register itu. Option update
sangat berguna untuk pengindeksan progresif aray-aray di dalam loop
1.1.2 Indirect Indexed Adressing
Instruksinya mereferensi register basis dan indeks register, yang
disini kedua register tersebut dapat berupa sembarang General Purpose Register.
Effective Address merupakan jumlah isi kedua register tersebut. Seperti mode
sebelumnya, option update menyebabkan register basis di-update menjadi effective
address yang baru
1.2 Branch Addressing
1.2.1 Absolute Addressing
Digunakan pada instruksi pencabangan tanpa syarat, maka effective address alamat berikutnya diperoleh dari immediate value 24-bit yang terdapat dalam instruksi. Nilai 24-bit dikembangkan menjadi 32-bit dengan menambahkan dua angka nol kesisi yang kurang signifikan (hal ini diizinkan instruksi harus terjadi pada batas 32-bit) dan pengembangan tanda. Untuk instruksi pencabangan bersyarat, effective address dari instruksi berikutnya diturunkankan dari suatu immediate value 16-bit dalam instruksi tersebut. Nilai 16-bit ini dikembangkan menjadi nilai 32-bit dengan menambahkan dua angka nol kesisi yang paling kurang signifikan dan pengembangan data.
1.2.2 Relative Addressing
Immediate value 24-bit (instruksi pencabangan tanpa syarat), atau immadiate value 14-bit (instruksi pencabangan bersyarat) dikembangkan seperti diatas. Kemudian nilai yang diperoleh ditambahkan ke program Counter untuk menentukan lokasi relatif keinstruksi saat itu.
1.2.3 Indirrect Adressing
Mode ini memperoleh effetive address instruksi berikutnya dari link register atau count register. Dalam hal ini count register digunakan untuk menampung alamat instruksi pencabangan. Register ini dapat juga digunakan untuk menampung hitungan looping.
1.3 Arithmetic Instructions
Pada Aritmetika integer seluruh operand diisikan ke dalam register atau
sebagai bagian instruksi, sdangkan pada aritmatika floating point seluruh operand
merupakan register floating point, artinya hanya register addressing yang digunakan
1.3.1 Register Addressing
Pada register addressing sebuah operand simbol atau operand tujuan
ditentukan sebagai salah satu General Purpose Register.
1.3.2 Immediate Addressing
Pada immediate addressing operand sumber berbentuk kuantitas
bertanda 16-bit di dalam instruksi.
2. Format-Format Instruksi
Semua instruksi PowerPC panjangnya 32 bit dan berbenruk seperti format
instruksi yang umum. Enam bit pertama sebuah instruksi mensfesifikasikan operasi
yang akan dilakukan. Pada kasus tertentu terdapat pengembangan pada opcode yang
terdapat pada instruksi-instruksi yang mensfesifikasikan subkasus khusus suatu
operasi. Perlu diingat sruktur format biasa yang memudahkan pekerjaan unit-unit
eksekusi instruksi. Bagi instruksi-instruksi load/store, aritmetik, dan logika, opcode
diikuti oleh dua buah referensi register 5 bit yang memungkinkan 32 buah General
Purpose Register dapat digunakan.
Instruksi pencabangan mencakup suatu bit link (L) yang menandakan alamat
efektif instruksi yang berada setelah instruksi pencabangan akan disimpan dalam
register link. Dua bentuk instruksi juga juga mencakup bit (A) yang menandakan
apakah mode pengalamatan bersifat absolut atau relatif terhadp PC. Pada istruksi
pencabangan bersyarat, field bit CR mensfesifikasikan bit yang akan diuji dalam
register kondisi. Field option mensfesifikasikan persyaratan tentang pencabangan
mana yang akan diambil. Terdapat kondisi-kondisi dibawah ini :
Selalu bercabang
Bercabang apabila count 0 dan syarat tidak terpenuhi
Bercabang apabila count 0 dan syarat terpenuhi
Bercabang apabila count = 0 dan syarat tidak terpenuhi
Bercabang apabila count = 0 dan syarat terpenuhi
Bercabang apabila count 0
Bercabang apabila count = 0
Bercabang apabila syarat tidak terpenuhi
Bercabang apabila syarat terpenuhi
Instruksi floating point memiliki field-field pada tiga buah register sumber.
Umumnya hanya dua bua register sumber saja yang dipakai. Beberapa instruksi
mencakup perkalian dan register sumber dan kemudian penambahan atau
pengurangan register sumber ketiga, penggabungan instruksi seperti ini digunakan
karena sering diperlukan.
IV. ORGANISASI REGISTER
Unit fixed point pada PowerPC meliputi :
1. General dimana terdapat 32 buah register general purpose 32 bit. Register ini dapat
digunakan untuk memuat, menyimpan, dan memanipulasi operand data dan juga
dapat dipakai unuk register pengalamatan tak langsung. Register 0 diperlukan agar
berbeda. Untuk memuat dan menyimpan operasi-operasi dan beberapa instruksi
penambahan, register 0 duanggap memiliki nilai konstan nol tanpa memperhatikan isi
sebenarnya.
2. Exetion Register (XER), terdiri dari tiga bit yang melaporkan pengecualian dalam
pengoperasian aritmatika integer. Register ini juga meliputi field penghitung byte
yang digunakan sebagai sebuah operand bagi beberapa instruksi untai.
Untuk floating point berisi register-register user visible tambahan :
1. General dimana terdapat 32 buah register general purpose 64 bit yang dipakai
untuk keperluan operasi floating point.
2. Floating Point and Control Register (FPSCR) : register 32 bit ini berisi bit-bit yang
mengontrol operasi unit floating point, dan bit-bit yang merekam status hasil dari
operasi-operasi floating point.
3. Condition Register : terdiri dari delapan buah field kode kondisi 4-bit
4. Link Register, link register dapat digunakan instruksi pencabangan bersyarat bagi
pengalamatan tak langsung alamat target. Register ini juga dapat digunakan untu
keperluan call/return. Apabila bit LK dalam instruksi pencabangan disetel, maka
alamat yang berada setelah instruksi pencabangan ditaruh di link register, dan
register ini dapat digunakan untuk return pada saat dibutuhkan
5. Count, register penghitung dapat digunakan untuk mengontrol suatu loop iterasi.
Register penghitung dikurangi setiap kali register diperiksa di dalam instruksi
pencabangan bersyarat, kegunaan lain adalah untuk pengalamatan tak langsung
alamat target di dalam sebuah instruksi pencabangan.
A. Pengolahan Interrupt
Seperti halnya prosesor yang lain, PowerPC memiliki fasilitas yang
memungkinkan menginterrupsi program yang sedang dieksekusi yang berkaitan
dengan pengecualian kondisi.
1. Jenis-jenis Interrupt
Jenis interrupt pada PowerPC digolongkan menjadi interrupt yang disebabkan
oleh kondisi atau kejadian sistem dan interrupt yang disebabkan oleh eksekusi suatu
instruksi, berikut tabel daftar interrupt yang dikenal oleh PowerPC ;
Entry Point Jenis Interrupt Keterangan
00000h Dicadangkan
00100h Reset Sistem Pernyataan signal-signal input rest prosesor oleh logika eksternal
00200h Pemeriksaan mesin Pernyataan TEA# terhadap prosesor pada saat prosesor diaktifkan untuk mengeali pemeriksaan mesin
00300h Penyimpan data Contoh:data page fault; pelanggaran hak akses pada pemuatan/penyimpanan
00400h Penyimpan instruksi Code Page Fault; usaha pengambilan instruksi dari segmen I/O; pelanggaran hak akses
00500h Eksternal Pernyataan signal input interrupt ekstensi prosesor oleh logika eksternal
00600h Aligment Kegagalan dalam mengakses memori sehubungan adanya operand yang misaligned
00700h Program Interrupt floating point; pengguna berusaha mengeksekusi instruksi privileged; instruksi trap yang dieksekusi dengan kondisi tertentu yang dipenuhi; instruksi ilegal
00800h Floating point tidak tersediaUsaha untuk mengeksekusi instruksi floating point dengan unit floating point yang diaktifkan
00900h Decrementer Kehabisan dekrementer register apabila eksternal interrupt recognition diaktifkan
00A00h Dicadangkan
00B00h Dicadangkan
00C00h System Call Eksekusi istruksi sistem call
00D00h Trace Interrupt satu langkah atau trace pencabangan
00E00h Floating Point Assist Terdapat usaha untuk mengekseskusi yang relatif tidak sering, operasi floating point yang kompleks
00E10h s/d 00FFFh
Dicadangkan
010000 s/d 02FFFh
Dicadangkan (tergantung implementasi)
Keterangan Tabel :yang tidak diberi bayangan abu-abu : interrupt yang disebabkan oleh eksekusi instruksi; yang diberi bayangan abu-abu : nterrupt yang tidak disebabkan oleh eksekusi instruksi
2. Register Status Mesin (Machine State Register/MSR)
Hal yang fundamental bagi interrupsi sebuah program adalah kemampuan
untuk memulihkan status prosesor pada saat terjadinya interrupt. Kemampuannya
tidak ahanya meliputi isi berbagai register namun juga kondisi kontrol yang berkaitan
dengan eksekusi.
3. Interrupt Handling
Pada saat interrupt terjadi dan diketahui oleh prosesor maka akan terjadi
rangkaian:
1. Prosesor menempatkan alamat instruksi yang akan diinstruksi berikutnya pada
save atau store register 0 (SRR0). Alamat ini merupakan alamat intruksi yang
sedang dieksekusi apabilla interrupt terjadi karena kegagalan mengeksekudi
instruksi.
2. Prosesor menyalin informasi status mesin dari MSR kesave/store register 1
(SRR1).
3. MSR disetel kenilai perangkat keras tertentu yang spesifik bagi jenis interrupt.
Bagi semua jenis interrupt , penerjemah alamat di nonaktifkan dan interrupt
eksternal dinonaktifkan pula.
4. Prosessor memindahkan kontrol ke interrupt handle yang sesuai.
V. KELEBIHAN DAN KEKURANGAN
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.
A. 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.
B. Kekurangan
1. Program yang dihasilkan dalam bahasa simbolik akan lebih panjang
(instruksinya lebih banyak).
2. Program berukuran lebih besar sehingga membutuhkan memori yang lebih
banyak, ini tentunya kurang menghemat sumber daya.
3. Program yang berukuran lebih besar akan menyebabkan
b. Menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan lebih
banyak byte-byte instruksi yang harus diambil.
c. Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page
fault lebih besar.
VI. KESIMPULAN
1. Arsitektur PowerPC merupakan pengembangan IBM 801, RT PC, dan RS/600
(dikenal juga dengan implementasi arsitektur POWER).
2. Implementasi pertama arsitektur power PC yaitu 601 memiliki rancangan yang
sangat mirip dengan rancangan RS 6000, model PowerPC berikutnya mempunyai
konsep superscalar.
3. Kelebihan arsitektur RISC yang berkaitan dengan kinerja dapat ditunjukan
dengan sejumlah “Sircumstansial Evidence”.
a. Optimasi kompiler yang lebih efektif dan dapat dikembangkan
b. Sebagian besar instruksi yang dihasilkan oleh kompiler relatif sederhana.
c. Berkaitan dengan penggunaan pipelining instruksi yang diterapkan secara
lebih efektif terhadap RISC.
d. Program-program RISC harus lebih responsife terhadap interrupt.
Berkaitan dengan implementasi VLSI
d. Apabila digunakan rancangan dan implementasi CPU akan berubah, artinya
dimungkinkan untuk menaruh CPU keseluruhan pada keping tunggal.
e. Waktu yang dibutuhkan untuk implementasi dan perancangan karena
prosessor VLSI cukup sulit dibuat sehingga para perancang harus membuat
rancangan rangkaian, tata letak dan pemodelan pada tingkat perangkat, dengan
menggunakan pemodelan RISC proses tersebut akan lebih mudah selain
apabila kinerja keping RISC ekuivalen dengan mikroprosessor CISC
(Pentium) yang setara maka keuntungan dengan memakai pendekatan RISC
akan terasa sekali.
DAFTAR PUSTAKA
Stalling, Williams, Organisasi Dan Arsitektur Komputer: Perancangan Kinerja. Jilid 1, Terj. Gurnita Priatna, Jakarta : Prenhallindo,1998.
Stalling, Williams, Organisasi Dan Arsitektur Komputer: Perancangan Kinerja. Jilid 2, Terj. Gurnita Priatna, Jakarta : Prenhallindo,1998.
PowerPC Siap Masuki 2-GHz, Komputek, Juni 2001, edisi 219 minggu II, hal 3.
Suatu cara menerapkan paralelisme kedalam sifat sekuensial yang penting bagi program instruksi mesin, seperti pengolahan pipelining dan vektor
mengimplementasikan unit kontrol sebagai rangkaian kombinatorial dimana sinyal logika inputnya diubah menjadi sejumlah sinyal logikaoutput, yang merupakan sinyal kontrol.
Rancangan processor yang memiliki pipeline instruksi berjumlah banyak, sehingga lebih dari satu instruksi dapat diekseskusi pada sebuah tahapan pipeline secara simultan
Dirancang untuk mendukung persyaratan konsistensi cache sistem mikroprosessor
Terjadi apabila page yang berisi suatu word referensi tidak terdapat dalam memori utama, ini mengakibatkan interrupt dan mengharuskan sistem operasi membawa page yang dibutuhkan kememori utama
Istilah big-endian dan litle-endian berasal dari buku Gulliver’s Travels, karangan Jonathan Swift, Bagian 1, Bab 4. Istilah tersebut berkaitan dengan perang keyakinan yang terjadi antara dua kelompok dimana kelompok yang satu memecahkan telur pada sisi yang besar dan kelompok lainnya memecahkan pada sisi yang kecil
Rasul yang dipuja oleh kedua kelompok dalam perang endian pada buku Gulliver’s Travels mengatakn hal berikut : “Semua pengikut yang baik akan memecahkan telur-telurnya pada sisi yang paling benar”, pernyataan ini tidak banyak menolong