Topik 9
Instruction Sets - Characteristics and Functions
Rangkaian Instruksi
Operasi processor tergantung pada instruksi yang sedang dieksekusinya yaitu instruksi mesin.
Rangkaian instruksi : kumpulan instruksi mesin berbeda yang dapat dieksekusi oleh processor. Berupa bilangan biner Biasanya direpresentasikan oleh kode
assembly
Elemen-elemen Instruksi
Setiap instruksi harus berisi informasi yang dibutuhkan processor untuk eksekusi, yaitu: Operation code (Op code)▪ Lakukan ini, e.g. : ADD, I/O
Source Operand reference▪ Terhadap ini, berupa input untuk operasi
Result Operand reference▪ Simpan hasilnya disini
Next Instruction Reference▪ Jika selesai, lakukan ini...
Operand Sumber dan Operand Hasil
Merupakan salah satu lokasi berikut:1. Memory utama atau memori virtual2. Processor register3. Immediate :
▪ nilai operand ada pada field instruksi yang sedang dieksekusi
4. I/O device
Representasi Instruksi
Dalam instruksi mesin, setiap instruksi mempunyai pola bit yang unik dan dibagi atas elemen-elemen terkait.
Selama eksekusi, instruksi akan dibaca dalam IR processor.
Processor harus dapat mengekstrak bagian-bagian isntruksi tersebut agar dapat dieksekusi.
Untuk konsumsi manusia, dipakai representasi symbolik dari instruksi mesin (mnemonics). E.g. ADD, SUB, LOAD Contoh pemakaian : ADD R,B Artinya :
Format Instruksi Sederhana
Jenis-jenis instruksi (1)
Contoh : dalam HLL ditulis : X = X + Y
Jika X dan Y alamat memory 513 dan 514,
Maka artinya : tambahkan nilai yang tersimpan pada variabel Y dengan nilai yang tersimpan di X, hasilnya disimpan di X.
Jenis-jenis instruksi (2)
Statement X = X + Y pada HLL dapat dilaksanakan sbb oleh instruksi mesin sederhana:1. Muat ke register isi dari alamat memory 5132. Tambahkan isi dari alamat memory 514 ke register
tersebut.3. Simpan isi dari register tersebut ke alamat memory
513.
Hubungan HLL dengan instruksi mesin : HLL memberikan instruksi dalam bentuk aljabar ringkas, sedangkan instruksi mesin memberikan instruksi dalam bentuk dasar yang melibatkan perpindahan data dari dan ke register.
Jenis-jenis instruksi (3)
1. Data processing : instruksi aritmatik dan logika
2. Data storage : Perpindahan data ke atau dari register dan lokasi
di memori.
3. Data movement Instruksi I/O
4. Program flow control Instruksi pengecekan dan percabangan.
Jumlah alamat (a)
Jumlah alamat setiap instruksi : salah satu cara untuk menggambarkan arsitektur processor .
Berapa jumlah alamat maksimum yang dibutuhkan oleh satu instruksi?
Contoh :
Y = (A – B)/ (C + (DxE))
Bagaimana instruksi mesin yang digunakan untuk menghitung persamaan tersebut?
Jumlah alamat (b)
3 alamat Operand 1, Operand 2, Hasil Contoh : a = b + c; Mungkin 4 – yaitu : instruksi berikut
(biasanya implisit) Tidak umum digunakan Membutuhkan format instruksi yng
relatif panjang untuk menyimpan 3 referensi alamat.
Instruksi 3 alamat
Instruction CommentSUB Y, A, B Y A - B
MPY T, D, E T D X E
ADD T, T, C T T + C
DIV Y, Y, T Y Y + T
Number of Addresses (c)
2 alamat Satu alamat berfungsi sebagai operand
sumber sekaligus operand hasil. Contoh : a = a + b Memperkecil kebutuhan ruang memory Membutuhkan pekerjaan ekstra▪ Membutuhkan penyimpanan temporer
sebelum operasi dilakukan.
Instruksi 2 alamat
INSTRUCTION COMMENT
MOVE Y, A Y A
SUB Y, B Y Y - B
MOVE T, D T D
MPY T, E T T X E
ADD T, C T T + C
DIV Y, T Y Y + T
Number of Addresses (c)
1 alamat Alamat kedua bersifat implisit Biasanya menggunakan Accumulator
(AC). AC berisi satu operand dan digunakan
untuk menyimpan hasil. Biasa digunakan pada mesin komputer
zaman dulu.
Instruksi 1 alamatinstruction comment
LOAD D AC D
MPY E AC AC X E
ADD C AC AC + C
STOR Y Y AC
LOAD A AC A
SUB B AC AC - B
DIV Y AC AC + Y
STOR Y Y AC
Number of Addresses (d) 0 (zero) addresses
Semua alamat bersifat implisit Menggunakan stack Contoh : c = a + b1. push a2. push b3. add4. pop c
Berapa banyak alamat akan dipakai?
Lebih banyak alamat instruksi lebih kompleks Memakai lebih banyak register▪ Operasi antar register akan lebih cepat
Lebih sedikit instruksi per program
Lebih sedikit alamat Operasi kurang kompleks Lebih banyak instruksi per program
Keputusan Perancangan (1) Operation repertoire
Berapa banyak operand? Apa saja yang dapat dilakukan operand
tersebut? Seberapa kompleks?
Tipe data Format Instruksi
Panjang op code Jumlah alamat
Keputusan perancangan(2) Registers
Jumlah register CPU yang tersedia Operasi apa yang dapat dilakukan, pada
register mana?
Model pengalamat (later…)
RISC v CISC
Jenis-jenis operand
1. Alamat2. Angka
▪ Integer/floating point
3. Karakter▪ ASCII etc.
4. Logical Data▪ Bits or flags
Jenis-jenis Operasi
1. Data Transfer2. Arithmetika3. Logika4. Konversi5. I/O6. System Control7. Transfer of Control
Data Transfer
Menentukan Sumber Tujuan Jumlah data
Dapat berupa instruksi yang berbeda untuk perpindahan yang berbeda. e.g. IBM 370
Atau satu instruksi dan alamat berbeda e.g. VAX
Arithmetic
Add, Subtract, Multiply, Divide Signed Integer Floating point ? May include
Increment (a++) Decrement (a--) Negate (-a)
Logical
Bitwise operations AND, OR, NOT
Conversion
E.g. Binary to Decimal
Input/Output
May be specific instructions May be done using data movement
instructions (memory mapped) May be done by a separate
controller (DMA)
Systems Control
Privileged instructions CPU needs to be in specific state
Ring 0 on 80386+ Kernel mode
For operating systems use
Transfer of Control
Branch e.g. branch to x if result is zero
Skip e.g. increment and skip if zero ISZ Register1 Branch xxxx ADD A
Subroutine call c.f. interrupt call
Branch Instruction
Nested Procedure Calls
Use of Stack
Top Related