3 - Instruksi-instruksi Komputer

Embed Size (px)

Citation preview

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