INSTRUKSIINSTRUKSI KOMPUTEROleh Cipta Wahyudi
1
Kemajuan Besar dlm bidang komputerFamily conceptIBM System/360 1964 DEC dengan PDP-8 melepaskan arsitektur mesin dari implementasinya
Microporgrammed control unitDibuat oleh Wilkes 1951 IBM pada S/360 thn 1964
Cache memoryIBM S/360 model 85 19692
Kemajuan Besar dlm bidang komputer (2)PipeliningPengenalan parallelisasi pada pengambilan siklus eksekusi
Multiple processors
3
Langkah berikutnya - RISCReduced Instruction Set Computer Key featuresRegister generalpurpose dlm jml banyak Atau penggunaan teknologi kompiler untuk mengoptimalkan pemakaian register Set instruksi yang terbatas dan sederhana Penekanan pada pengoptimalan pipeline instruksi4
Comparison of processorsCISC 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
Jml instruksi 208 303
235
51
94
184
62
Ukuran instruksi (byte) 2-6 2-57 1-11 Mode pengalamatan 4 22 11 G-P Registers 16 16
4
32
4
4 or 8
3
1
2
11
8
32
32
32
23-256
Kontrol memori (k bytes) (microprogramming) 420 480 246 0
0
0
05
KARAKTERISTIK2 ESEKUSI INSTRUKSIPenurunan harga perangkat keras sedangkan meningkatnya harga perangkat lunak Meningkatnya kompleksitas pemrograman bhs tingkat tinggi Semantic gap (perbedaan antara operasi HLL dengan bahasa mesin) Sehingga :Set instruksi yang banyak Lusinan mode pengalamatan Implementasi HLL ke dalam perangkat keras Contoh mesin CASE pada VAX6
Tujuan (terbentuknya CISC) Memudahkan pekerjaan penulis kompiler Meningkatkan efesiensi eksekusiOperasi yg kompleks diimplementasikan dlm mikrokode
Memberikan dukungan thd HLL yg lebih kompleks dan canggih
7
Aspek Komputasi :Operasi-operasi yang dilakukan,hal ini menentukan fungsi-fungsi yg dilakukan oleh CPU dan interaksinya dengan memory
Operand-operand yang digunakan,jenis dan frekwensi akan menentukan organisasi memory dlm penyimpanan dan mode pengalamatan
Pengurutan eksekusi,menentukan kontrol dan organisasi pipeline8
OperationsAssignments statementsPerpindahan data
Statement Kondisi (IF, LOOP)Perbandingan dan pencabangan
Procedure call-return, banyak memakan waktu eksekusi Beberapa instruksi HLL mempengaruhi banyak kode operasi mesin9
Relative Dynamic FrequencyDynamic Occurrence Pascal C 45 38 5 3 15 12 29 43 3 6 1 Machine Instruction (Weighted) Pascal C 13 13 42 32 31 33 11 21 3 1 Memory Reference (Weighted) Pascal C 14 15 33 26 44 45 7 13 2 1
Assign Loop Call If GoTo Other
10
OperandsSebagian besar referensi variabel skalar lokal Optimalisasi harus dikonsentrasikan pada pengaksesan variabel lokalPascal 16 58 26 C 23 53 24 Average 20 55 25
Integer constant Scalar variable Array/structure
11
Procedure CallsMeghabiskan banyak waktu eksekusi Tergantung pada jumlah parameter yang dilewatkan Tergantung pada kedalaman prosedure Kebanyakan menggunakan variabel lokal
12
ImplikasiSet arsitektur set instruksi yg mendekati HLL bukan merupakan strategi perancangan yg paling efektif 3 buah elemen penentu karakteristik arsitektur RISC :Penggunaan Register dalam jumlah besarOptimalisasi referensi operand
Perancangan instruksi pipelinesBranch prediction, dll.
Penyederhanaan (reduced) set instruksi13
Penggunaan File Register BesarSolusi Perangkat LunakMengandalkan kompiler untuk memaksimalkan pemakaian register Alokasi register bagi variabel yg sering digunakan dlm jangka waktu tertentu Butuh analisis algoritma yg canggih
Solusi Perangkat KerasMemperbanyak jumlah register Sehingga bisa menampung variabel yg banyak dlm jangka waktu lebih lama14
Register WindowsAlasanMenyimpan 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 registersUntuk pertukaran parameter dan hasilnya dgn tingkatan procedure yg lebih rendah
Overlap ini mampu melewatkan parameter tanpa perpindahan data16
Overlapping Register Windows
17
Circular Buffer diagram
18
Variable GlobalDialokasikan ke memory oleh kompilerTidak efisien untuk variabel yg sering diakses
Memiliki kumpulan register untuk variabel global
19
Register vs CacheLarge Register FileSemua 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
Referencing a Scalar Window Based Register File
21
Referencing a Scalar - Cache
22
Optimasi Register Berbasis KompilerAsusmsi : Jumlah register yg sedikit (16-32) Optimalisasi tergantung pada kompiler Program HLL tidak bisa mengacu register secara eksplisit Kandidat (kuantitas program) di-assign ke virtual register Kompiler memetakan virtual register ke dalam register real yg jumlahnya tetap Virtual register yg tdk tumpang tindih dapat memakai register real secara bersama-sama Jika kelebihan kuantitas program daripada register real maka di-assign ke dalam memori23
Graph ColoringRepresentasi 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 memori24
Graph Coloring Approach
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 RISCSatu instruksi per siklus Operasi register ke register Address mode sederhana Format instruksi sederhana, dan tetapDesain Hardwired (tidak ada microcode)
More compile time/effort
27
RISC v CISCMasih berlanjut Banyak desain mengambil filosopi keduanya Contoh PowerPC and Pentium
28
Pipelining pada RISCKebanyakan instruksi: operasi register ke register 2 fase dari eksekusi :I : Instruction fetch E : Execute Operasi ALU dengan register input dan output
Untuk load and storeI : Instruction fetch E : Execute Kalkulasi alamat memory D: Memory Operasi Register ke memory atau memory ke register29
Effects of Pipelining
30
Optimization of PipeliningDelayed branchTidak melakukan pencabangan sampai instruksi berikutnya dieksekusi
31
Normal and Delayed BranchAddress 100 101 102 103 104 105 106 Normal LOAD X,A ADD 1,A JUMP 105 ADD A,B SUB C,B STORE A,Z Delayed LOAD X,A ADD 1,A JUMP 105 NOOP ADD A,B SUB C,B STORE A,Z Optimized LOAD X,A JUMP 105 ADD 1,A ADD A,B SUB C,B STORE A,Z
32
Use of Delayed Branch
33
KontroversiKuantitatif 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 campuran34
Top Related