topik 9 - instruction sets - characteristics and functions

Post on 29-Jun-2015

121 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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