Arsitektur Dan Organisasi Komputer
Teknik Informatika UMB
Pertemuan Ke-7 INSTRUCTION SET A. What is an instruction set? •
The complete collection of instructions that are understood by a CPU
•
Machine Code
•
Binary
•
Usually represented by assembly codes
B. Komponents of an Instruction •
Operation code (Op code) –
•
Source Operand reference –
•
To this
Result Operand reference –
•
Do this
Put the answer here
Next Instruction Reference –
When you have done that, do this...
C. Where have all the Operands gone? •
Main memory (or virtual memory/cache)
•
CPU register
•
I/Odevice
Gambar 7.1 Instruction Cycle State Diagram
Tri Daryanto, S.Kom, MT
48
Arsitektur Dan Organisasi Komputer
Teknik Informatika UMB
D. Komponen-Komponen Central Processing Unit (CPU)
Gambar 7.2 Komponen-komponen dari Struktur CPU
Fungsi dari masing-masing komponen adalah sebagai berikut: 1. Control Unit (CU) berfungsi sebagai penegendali dari semua komponen yang terdapt oleh CPU, seperti penjadwalan kerja dan sinkronisai antar Komponen. 2. Instruction Register (IR) berfungsi sebagai penerjemah set instruksi apakah didalamnya merupakan sebuah instruksi atau hanya sebuah data. IR berfungsi juga untuk memberitahu prosedur proses kepada control unit untuk menyiapkan komponen-komponen yang dibutuh dalam pelaksanaan proses yang akan dilakukan. 3. Program Counter (PC) berrfungsi sebagai urutan pengambilan Instruski set yang terdapat dalam Main Memory 4. Memory
Address
Register
(MAR)
berfungsi
sebagai
komponen
yang
diperintahkan oleh IR dan control Unit untuk mencari alamat dalam sebuah Main Memory 5. Memory
Buffer
Register
(MBR)
berfungsi
sebagai
kompponen
yang
diperintahkan oleh IR dan CU untuk membaca dan menulis data pada Main Memory.
Tri Daryanto, S.Kom, MT
49
Arsitektur Dan Organisasi Komputer
Teknik Informatika UMB
6. ALU (Arithmatic Logic Unit) adalah komponen atau bagian yang berfungsi melakukan proses logika maupun Aritmatika dalam hal ini penjumlahan dan pengurangan dari data yang sudah di ambil oleh MBR dari Main Memory. 7. Register adalah komponen sebagai tempat penyimpanan memory sementara di dalam CPU, dimana masing-masing register memiliki pekerjaan penyimpanan data masing-masing. Salah satunya adalah Akumultaor yang merupakan Register yang paling di gunakan.
E. Instruction Representation •
In machine code each instruction has a unique bit pattern
•
For human consumption (programmers) a symbolic representation is used –
•
e.g. ADD, SUB, LOAD
Operands can also be represented in this way –
ADD A,B
–
LOAD ACC,B
Gambar 7.3 Simple Instruction Format F. Format Instruksi Format instruksi dan format data perbedaannya hanya dapat dibedakan oleh register IR (instruction Register). Apabila data yang diambil dari memori tersebut adalah instruksi maka IR dapat melakukan operand fetch. Contoh coding instruksi set pada CPU 0001 = Load AC from Memory 0010 = Store AC to Memory 0101 = Add to AC from Memory
Contoh dari eksekusi program Panjang baris = 16 bit , dibagi 4 bit untuk op-code (24 jenis op-code) dan 12-bit address (212 lokasi memori). 1. Asumsikan PC (program counter) 300. isi dari lokasi 300 di ambil oleh IR 2. Empat bit pertama didalam IR mengindikasikan isi alamat yang ditunjuk IR, isi pada alamt tersebut di taruh di AC 3. PC menambah 1 bit instruksi
Tri Daryanto, S.Kom, MT
50
Arsitektur Dan Organisasi Komputer
Teknik Informatika UMB
4. Isi awal AC di tambahkan dengan alamat yang di tunjuk 5. PC menambahkan 1 bit instruksi 6. Isi pada AC di taruh pada alamat yang di tunjuk Proses alur eksekusi dapat dilihat pada alur eksekusi Hypotical Mechine yang terlihat pada Gambar 7.4
Gambar 7.4 Eksekusi dalam Hypothetical machine
Contoh instruksi format menggunakan proses Mikroskopic Program Pada kasus eksekusi format instruksi dari memori ke memori. ADD
A,B
Tri Daryanto, S.Kom, MT
51
Arsitektur Dan Organisasi Komputer 0
7 8
19 20
“ADD”
“A”
Op-Code
Teknik Informatika UMB
address of op-1 (12 bit)
“B”
address of op-2 (12 bit)
Langkah instruksi, Microscopic view
Menganalisa eksekusi ADD A,B
. Instruksi Fecth :
MAR
[PC]
Read (fetch instruksi, wait) IR
. Operand Fetch :
MAR
[MBR]
[Addr-op-1-IR]
Read (operand-1, wait) ALU1 MAR
[MBR] [Addr-op-2-IR]
Read (operand-2, wait) ALU2
.Arithmetic
[MBR]
ADD MAR
[Addr-op-1-IR]
MBR
[ALU3]
Write
G. Tipe-Tipe Instruksi •
Data processing
•
Data storage (main memory)
•
Data movement (I/O)
•
Program flow control
Tri Daryanto, S.Kom, MT
52
Arsitektur Dan Organisasi Komputer
Teknik Informatika UMB
H. Number of Addresses •
•
3 addresses –
Operand 1, Operand 2, Result
–
a = b + c;
–
May be a forth - next instruction (usually implicit)
–
Not common
–
Needs very long words to hold everything
2 addresses –
One address doubles as operand and result
–
a=a+b
–
Reduces length of instruction
–
Requires some extra work •
•
•
Temporary storage to hold some results
1 address –
Implicit second address
–
Usually a register (accumulator)
–
Common on early machines
0 (zero) addresses –
All addresses implicit
–
Uses a stack
–
e.g. push a
–
push b
–
add
–
pop c
–
c=a+b
I. Tehnik pengalamatan Tehnik-tehnik pengalamatan yang ada adalah: Immediate, direct, indirect, register, register indirect, displacement, stack
Tri Daryanto, S.Kom, MT
53
Arsitektur Dan Organisasi Komputer
Teknik Informatika UMB
Operand
A
Instruction
Instruction Memory
(a) LDA #100
Operan
(b) Direct LDA A
R
A Instruction
Instruction
Memory (address) Memory location
Op-code
Instruction
Registers
R1
Operan
R
(d) Register MOV R1 A
Instruction
Memory
Memory
Registers
R1
⊕
Ri (base addr.) Ri (address)
R
R
Ri Ri
Registers
Operand
Operand Rn
(e) Register Indirect LDA (R1)
Tri Daryanto, S.Kom, MT
Rn
(f) Displacement LDA 100(R1)
54
Arsitektur Dan Organisasi Komputer
Teknik Informatika UMB
Implicit Top of Stack (g) Stack
Stack addressing Beberapa Contoh Mode pengalamatan 1. Immediate : ADD #100; add 100 to Accum. 2. Direct:
ADD A; add content of addr. A to accumulator
3. Indirect :ADD
@A; content of location A is address of operand add content
of loc. with that address to accum. 4. Register Direct: ADD R1; add content of R1 to accumulator 5. Reg. Indirect :ADD (R1); add content of mem.Location whose addr.is in R1 to acc. 6. Alamat dengan displacement adalah “rare”, contoh yang diperlihatkan adalah sebagai berikut : ADD
1050(R1)
dimana isi alamat yang ditunjuk oleh R1 ditambahkan dengan
alamat 1050 7. Didadalam
dua alamat instruksi contohnya adalah sebagai berikut :
ADD 1050(R1), R2 dimana alat dasar berada pad R1 dan di jumlahkan dengan alamat 1050
Latihan: 1. Buat Microspic View Program untuk script instruksi assembler berikut ini: a. DIV A,B b. Store A c. MOV R1, R2
Tri Daryanto, S.Kom, MT
55