Cache memory
IBM S/360 model 85 1969
2
Multiple processors
Comparison of processors
CISC IBM 370/168 1973 VAX 11/780 1978 Intel 486 1989 RISC Motorola MIPS 88000 R4000 1988 1991 Superscalar IBM Intel RS/6000 80960 1990 1989
235
51
94
184
62
Ukuran instruksi (byte) 2-6 2-57 1-11 Mode pengalamatan 4 22 11 G-P Registers 16 16
32
4 or 8
11
32
32
32
23-256
0
5
Tujuan (terbentuknya CISC) Memudahkan pekerjaan penulis kompiler Meningkatkan efesiensi eksekusi
Operasi yg kompleks diimplementasikan dlm mikrokode
Aspek Komputasi :
Operasi-operasi yang dilakukan,
hal ini menentukan fungsi-fungsi yg dilakukan oleh CPU dan interaksinya dengan memory
Pengurutan eksekusi,
menentukan kontrol dan organisasi pipeline
8
Operations
Assignments statements
Perpindahan data
Procedure call-return, banyak memakan waktu eksekusi Beberapa instruksi HLL mempengaruhi banyak kode operasi mesin
9
10
Operands
Sebagian besar referensi variabel skalar lokal Optimalisasi harus dikonsentrasikan pada pengaksesan variabel lokal
Pascal 16 58 26 C 23 53 24 Average 20 55 25
11
Procedure Calls
Meghabiskan banyak waktu eksekusi Tergantung pada jumlah parameter yang dilewatkan Tergantung pada kedalaman prosedure Kebanyakan menggunakan variabel lokal
12
Implikasi
Set arsitektur set instruksi yg mendekati HLL bukan merupakan strategi perancangan yg paling efektif 3 buah elemen penentu karakteristik arsitektur RISC :
Penggunaan Register dalam jumlah besar
Optimalisasi referensi operand
Register Windows
Alasan
Menyimpan variabel lokal dalam register Mengurangi akses memory Definisi lokal akan berubah Parameter harus dilewatkan Hasil harus dikembalikan Variable pemanggil program harus disimpan
15
Register Windows
Penggunaan kelompok kecil register dan di assign ke masing2 procedure 3 area dalam 1 set register :
Parameter registers Local registers Temporary registers
Untuk pertukaran parameter dan hasilnya dgn tingkatan procedure yg lebih rendah
17
18
Variable Global
Dialokasikan ke memory oleh kompiler
Tidak efisien untuk variabel yg sering diakses
19
Register vs Cache
Large Register File
Semua skalar lokal
Cache
Skalar lokal yang baru dipakai Variabel2 individual Sekelompok memori Variabel2 global yg di-assign kompiler Variabel global yang baru dipakai Save/restore tergantung prosedur Save/restore tergantung algoritma penggantian cache Pengalamatan Regsiter Pengalamatan Memori
20
21
22
Graph Coloring
Representasi graph dengan titik dan garis Memberikan warna pada masing2 titik Titik yang berdekatan diberi warna yang berbeda Menggunakan seminimal mungkin warna Titik adalah register virtual Dua registe yang berada dalam pecahan program yg sama dihubungkan dengan garis Mewarnai graph dengan n warna, dimana n adalah jumlah register Titik yg tidak diberi warna di-assign ke memori
24
25
Why CISC?
Menyederhanakan kompiler? Ukuran program yg kecil? Program yang lebih cepat? Jauh dari kata Jelas bahwa CISC adalah solusi yang tepat
26
Karateristik RISC
Satu instruksi per siklus Operasi register ke register Address mode sederhana Format instruksi sederhana, dan tetap
Desain Hardwired (tidak ada microcode)
27
RISC v CISC
Masih berlanjut Banyak desain mengambil filosopi keduanya Contoh PowerPC and Pentium
28
Effects of Pipelining
30
Optimization of Pipelining
Delayed branch
Tidak melakukan pencabangan sampai instruksi berikutnya dieksekusi
31
32
33
Kontroversi
Kuantitatif Membandingkan ukuran program dan kecepatan eksekusi Kualitatif Menguji permasalahan pokok dari dukungan instruksi mesin terhadap HLL Masalah RISC dan CISC, bukan merupakan pasangan yg bisa dibandingkan Tidak ada kepastian dalam pengujian program Sulit untuk memisahkan pengaruh hardware daripada kompiler Kebanyakan perbandingan selesai hanya pada toy daripada mesin yg diproduksi Kebanyakan mesin yg diproduksi adalah campuran
34