Anda di halaman 1dari 34

INSTRUKSIINSTRUKSI KOMPUTER

Oleh Cipta Wahyudi

Kemajuan Besar dlm bidang komputer


Family concept
IBM System/360 1964 DEC dengan PDP-8 melepaskan arsitektur mesin dari implementasinya

Microporgrammed control unit


Dibuat oleh Wilkes 1951 IBM pada S/360 thn 1964

Cache memory
IBM S/360 model 85 1969
2

Kemajuan Besar dlm bidang komputer (2)


Pipelining
Pengenalan parallelisasi pada pengambilan siklus eksekusi

Multiple processors

Langkah berikutnya - RISC


Reduced Instruction Set Computer Key features
Register generalpurpose dlm jml banyak Atau penggunaan teknologi kompiler untuk mengoptimalkan pemakaian register Set instruksi yang terbatas dan sederhana Penekanan pada pengoptimalan pipeline instruksi
4

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

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

32

4 or 8

11

32

32

32

23-256

Kontrol memori (k bytes) (microprogramming) 420 480 246 0

0
5

KARAKTERISTIK2 ESEKUSI INSTRUKSI


Penurunan 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 VAX
6

Tujuan (terbentuknya CISC) Memudahkan pekerjaan penulis kompiler Meningkatkan efesiensi eksekusi
Operasi yg kompleks diimplementasikan dlm mikrokode

Memberikan dukungan thd HLL yg lebih kompleks dan canggih

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 pipeline
8

Operations
Assignments statements
Perpindahan data

Statement Kondisi (IF, LOOP)


Perbandingan dan pencabangan

Procedure call-return, banyak memakan waktu eksekusi Beberapa instruksi HLL mempengaruhi banyak kode operasi mesin
9

Relative Dynamic Frequency


Dynamic 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

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

Integer constant Scalar variable Array/structure

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

Perancangan instruksi pipelines


Branch prediction, dll.

Penyederhanaan (reduced) set instruksi


13

Penggunaan File Register Besar


Solusi Perangkat Lunak
Mengandalkan kompiler untuk memaksimalkan pemakaian register Alokasi register bagi variabel yg sering digunakan dlm jangka waktu tertentu Butuh analisis algoritma yg canggih

Solusi Perangkat Keras


Memperbanyak jumlah register Sehingga bisa menampung variabel yg banyak dlm jangka waktu lebih lama
14

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

Overlap ini mampu melewatkan parameter tanpa perpindahan data


16

Overlapping Register Windows

17

Circular Buffer diagram

18

Variable Global
Dialokasikan ke memory oleh kompiler
Tidak efisien untuk variabel yg sering diakses

Memiliki kumpulan register untuk variabel global

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

Referencing a Scalar Window Based Register File

21

Referencing a Scalar - Cache

22

Optimasi Register Berbasis Kompiler


Asusmsi : 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 memori
23

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

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 RISC
Satu instruksi per siklus Operasi register ke register Address mode sederhana Format instruksi sederhana, dan tetap
Desain Hardwired (tidak ada microcode)

More compile time/effort

27

RISC v CISC
Masih berlanjut Banyak desain mengambil filosopi keduanya Contoh PowerPC and Pentium

28

Pipelining pada RISC


Kebanyakan instruksi: operasi register ke register 2 fase dari eksekusi :
I : Instruction fetch E : Execute Operasi ALU dengan register input dan output

Untuk load and store


I : Instruction fetch E : Execute Kalkulasi alamat memory D: Memory Operasi Register ke memory atau memory ke register
29

Effects of Pipelining

30

Optimization of Pipelining
Delayed branch
Tidak melakukan pencabangan sampai instruksi berikutnya dieksekusi

31

Normal and Delayed Branch


Address 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

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

Anda mungkin juga menyukai