Set instruksi
(instruction set): sekumpulan lengkap instruksi yang dapat dimengerti oleh
sebuah CPU Instruksinya berbentuk machine code (bahasa mesin), aslinya
seluruhnya dalam bilangan biner Untuk programmer, biasanya digunakan
representasi yang lebih mudah dimengerti bahasa yang dapat
dimengerti manusia, dikenal dengan bahasa Assembly
A. Jenis Instruksi: CISC
Kompleks
set instruksi komputer ( CISC ) adalah sebuah komputer di mana instruksi
tunggal dapat menjalankan beberapa operasi tingkat rendah ( seperti beban dari
memori , operasi aritmatika , dan penyimpanan memori ) dan / atau mampu operasi
multi-langkah atau mode pengalamatan dalam instructions.Examples tunggal
arsitektur set instruksi CISC adalah System / 360 melalui z / Arsitektur , PDP
- 11 , VAX , Motorola 68kand x86
B. Jenis Instruksi: RISC
Mengurangi
komputasi set instruksi , atau RISC , adalah strategi desain CPU berdasarkan
wawasan yang disederhanakan ( sebagai lawan kompleks ) instruksi dapat
memberikan kinerja yang lebih tinggi jika kesederhanaan ini memungkinkan
eksekusi lebih cepat dari setiap keluarga RISC instruction.Well terkenal
termasuk Desember Alpha , AMD 29K , ARC , ARM , Atmel AVR , Blackfin , Intel
i860 dan I960 , MIPS , Motorola 88000 , PA - RISC , Power ( termasuk PowerPC )
, SuperH , dan SPARC . Pada abad ke-21 , penggunaan prosesor arsitektur ARM di
ponsel pintar dan komputer tablet seperti tablet iPad dan Android memberikan
basis pengguna yang luas untuk sistem berbasis RISC .
C. Set Instruksi Spesifik
Meskipun termasuk dalam satu golongan RISC atau CISC
(dari segi jenis instruksinya), atau sama-sama dalam keluarga x86 (golongan
arsitekturnya); tiap prosesor bisa memiliki set instruksi spesifik yang
berbeda. For example, the Intel Pentium and the AMD
Athlon implement nearly identical versions of
the x86 instruction
set, but have radically different internal
designs. Pada intel ada ekstensi instruksi MMX, SSE2, SSE3 dst untuk
menambah kemampuan multimedia.
D. Elemen-elemen Instruksi
1. Operation Code (OPCODE) /
Kode Operasi
Kerjakan ini
2. Source Operand Reference /
Alamat Asal Operand
Terhadap isi alamat ini
3. Result Operand Reference /
Alamat Hasil Operand
Letakkan hasilnya di alamat ini
4. Next Instruction Reference
Alamat yang berisi
instruksi selanjutnya
Sebuah instruksi tidak harus memiliki semua elemen
di atas, tergantung kebutuhan dan jenis instruksinya
E. Ke mana operand disimpan?
1) ingat: Semua instruksi deksekusi di
dalam CPU
2) Sebuah operasi hanya membutuhkan register
sebagai tempat membaca /menyimpan operand sementara
3) Adakalanya juga operand disimpan di lokasi
lain melalui register yang berisi
alamat tempat penyimpanan tersebut (memory, cache, modul I/O)
F. Representasi Instruksi
1. Pada bahasa mesin, setiap
instruksi berbentuk pola bit biner yang unik
2. Agar dapat
dimengerti manusia, dibuatlah representasi simbolik instruksi, biasanya berupa
singkatan (disebut mnemonic)
misal ADD, SUB, LOAD
3. Sedangkan alamat operand
direpresentasikan sebagai berikut: ADDA,B
4. Ada beberapa jenis
representasi instruksi, yang dibedakan olehjumlah alamat operand yang
dapat diterima oleh satu baris instruksi
Format Instruksi (Biner)
1. Misal Instruksi dengan 2
Alamat Operand:
2. ADD A, B _ A
& B suatu alamat register
4
Bit
6 Bit
6 Bit
Opcode
|
Operand Reperence
|
Operand Reperence
|
16 Bit
(dalam bentuk
biner tentunya)
G. Contoh Simbolik Instruksi
a. ADD: Add (Jumlahkan)
b. SUB: Subtract (Kurangkan)
c. MPY/MUL: Multiply (Kalikan)
d. DIV: Divide (Bagi)
e. LOAD: Load data dari
register/memory
f. STOR: Simpan data ke
register/memory
g. MOVE: pindahkan data dari
satu tempat ke tempat lain
h. SHR: shift kanan data
i. SHL: shift
kiri data
dan lain-lain
H. Cakupan Jenis Instruksi
1. Data processing: Aritmetik
(ADD, SUB, dsb); Logic (AND, OR, NOT, SHR, dsb); konversi data
2. Data storage (memory):
Transfer data (STOR, LOAD, MOVE, dsb)
3. Data movement: Input
dan Output ke modul I/O
4. Program flow control:
JUMP, HALT, dsb. Set Instruksi lengkap bisa dilihat
di kitabnya William Stallings
I. Format Instruksi 3 Alamat
Bentuk umum: [OPCODE] [AH], [AO1], [AO2] Satu alamat
hasil, dua alama operand
Misal: SUB Y, A, B
Bentuk algoritmik: Y _ A – B
Arti: Kurangkan isi Reg A dengan isi Reg B, kemudian
simpan hasilnya di Reg Y. Mengoperasikan banyak register sekaligus Program
lebih pendek
AH: Alamat Hasil, AO1: Alamat Asal Operand 1, AO2:
Alamat Asal Operand 2
J. Format Instruksi 2 Alamat
Bentuk umum: [OPCODE] [AH], [AO] Satu alamat hasil
merangkap operand, satu alamat operand
Misal: SUB Y, B
Bentuk algoritmik: Y _ Y – B Arti:
Kurangkan isi Reg Y dengan isi Reg B, kemudian simpan hasilnya di Reg Y.
Bentuk ini masih digunakan di computer Sekarang
Mengoperasikan lebih sedikit register, tapi panjang program tidak bertambah
terlalu banyak
AH: Alamat Hasil, AO: Alamat Asal Operand
K. Format Instruksi 1 Alamat
Bentuk umum: [OPCODE] [AO] Satu alamat operand,
hasil disimpan di accumulator
Misal: SUB B
Bentuk algoritmik: AC _ AC – B Arti:
Kurangkan isi Acc. dengan isi Reg B, kemudian simpan hasilnya di Acc. Hanya
mengoperasikan satu register, tapi program menjadi bertambah panjang
AO: Alamat Asal Operand
L. Format Instruksi 0 Alamat
Bentuk umum: [OPCODE] [O] Semua alamat
operand implisit, disimpandalam bentuk stack. Operasi yang biasanya membutuhkan
2 operand, akan mengambil isi stack paling atas dan di bawahnya
Misal: SUB
Bentuk algoritmik: S[top] _ S[top-1] – S[top]
Arti: Kurangkan isi Stack no.2 dari atas dengan isi
Stack paling atas,kemudian simpan hasilnya di Stack paling atas Ada instruksi
khusus Stack: PUSH dan POP yang dapat diberi alamat
K. Contoh Set Intruksi
Contoh Format Instr 3 Alamat
Contoh Format Instr 2 Alamat
A, B, C, D, E, T, Y adalah
register
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D ×
E)
Program: Y = (A – B) / ( C + D × E)
SUB Y, A, B Y _ A –
B
MOVE Y, A Y _ A
MPY T, D, E T _ D ×
E SUB
Y, B Y _ Y - B
ADD T, T, C T _ T +
C
MPY
T, E T _ T × E
DIV Y, Y, T Y _ Y /
T ADD
T, C T _ T + C
DIV
Y, T Y _ Y / T
Memerlukan 4
operasi
Memerlukan 6 operasi
Contoh Format Instr 1
Alamat
Contoh Format Instr 0 Alamat
A, B, C, D, E, Y adalah
register
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D ×
E)
Program: Y = (A – B) / ( C + D × E)
LOAD D AC _ D PUSH
A S[top] _ A
MPY E AC _ AC ×
E PUSH
B S[top] _ B
ADD C AC _ AC +
C SUB
S[top] _ A - B
STOR Y Y _ AC
PUSH C S[top] _ C
LOAD A AC _ A
PUSH D S[top] _ D
SUB B AC _ AC –
B PUSH
E S[top] _ E
DIV Y AC _ AC /
Y
MPY S[top] _ D × E
STOR Y Y _ AC
ADD S[top] _ C + S[top]
DIV
S[top] _ (A - B) / S[top]
POP
Y Out _S[top]
Memerlukan 8
operasi
Memerlukan 10 operasi
Yang Perlu Diperhatikan
Semakin banyak register yang diolah dalam satu
instruksi semakin lambat Semakin banyak baris operasi untuk mengeksekusi sebuah
program juga semakin lambat Komputer sekarang karena menggunakan
CISC dan RISC, maka menggunakan format instruksi 3 atau 2 alamat
0 komentar:
Posting Komentar