CENTRAL PROCESSING UNIT
CPU
edywin
1
Central Processing Unit CPU terdiri dari : - Bagian data (Datapath) yang berisi register register untuk penyimpanan data sementara dan sebuah ALU untuk melaksanakan operasi operasi aritmatika dan logika - Bagian kendali yang bertugas menginterpretasikan instruksi dan membangkitkan sinyal sinyal kendali agar operasi dalam instruksi tsb dilaksanakan. CPU
edywin
2
STRUKTUR CPU dasar MAR : Memory Address Register MBR : Memory Buffer atau Data Register IR
: Instruction Register R0
Y
R1 Larik Register
PSW
Rn
edywin
PC : Program Counter Bus internal PSW : Program Status Word/Flags 3 SP : Stack Pointer
MDR edywin
4
MEMORY
Register register dalam CPU Kelompok kelompok register : 1. Register register yang user-visible . Dapat diakses (dibaca dan diubah isinya) oleh pemrogram melalui instruction-set CPU. 2. Register register Kontrol dan Status. Tidak dapat diakses oleh pemrogram melalui instruction set CPU.
1) Register register yang user-visible :
General Purpose Register Dapat digunakan untuk menyimpan data atau untuk kalkulasi alamat operand (data).
Register Data edywin Hanya dapat digunakan untuk menyimpan data
5
Register Alamat Hanya dapat digunakan untuk menyimpan alamat atau untuk kalkulasi alamat operand. Contoh : Base Registers, Segment Register, Index Register, Stack Pointer
2) Register register Kontrol dan Status
MAR (Memory Address Register) , menyatakan alamat penyimpanan data/instruksi dalam memory , yang akan diakses oleh CPU.
MBR atau MDR (Memory Buffer Register atau Memory Data Register) , merupakan tempat penyimpanan (sementara) data yang baru saja dibaca dari atau akan dituliskan ke memory
PC (Program Counter) , menyatakan alamat lokasi instruksi yang akan dibaca oleh CPU dari edywin 6 memory.
IR terdiri dari 2 bagian
IR opcode
operand
alamat ke/dari memory
data/ instruksi
Register data
IR (Instruction Register) , untuk menyimpan instruksi yang sedang dieksekusi dalam CPU.
edywin
7
Register Status (PSW = Processor Status Word, atau Flag Register) , terdiri dari bit bit (flag) yang menyatakan status CPU. bit-bit status (flag)
0/1 0/1 0/1 0/1 . . . Interrupt Enable/Disable (I - flag) I = 1 , CPU tidak melayani interupsi I = 0 , CPU melayani interupsi Supervisor Flag (V – flag) V = 1 , CPU dalam mode “sistem” V = 0 , CPU dalam mode “user”
Zero Flag ( Z – flag ) Z = 1 , hasil operasi ALU = 0 Z = 0 , hasil operasi ALU =/= 0 Sign Flag (S – flag) S = 0 , hasil operasi ALU positif Sedywin = 1 , hasil operasi ALU negatif
8
Register register ALU
ALU
Register Y sebagai buffer bagi operand sumber pada operasi ALU. Register Z sebagai buffer bagi data hasil operasi ALU
dari register-data/ register-alamat
Z
ke register-data/ register-alamat
Y
edywin
9
Stack Pointer
Stack adalah tempat penyimpanan data yang aksesnya diorganisasikan secara LIFO (Last In First Out). Data yang disimpan terakhir akan dibaca lebih dahulu.
memory
stack
Stack dapat diimplementasikan sebagai : Satu set lokasi didalam main memory atau Satu set register didalam CPU
CPU stack
Ada dua jenis stack : user stack (untuk data milik user) system stack (untuk data milik sistem) edywin
10
Operasi penulisan data kedalam stack alamat
alamat
alamat
alamat
5 4 3 2 1 0
5 4 3 2 1 0
5 4 3 2 1 0
5 4 3 2 1 0
(a) stack kosong
b) stack berisi 1 data
(c) stack berisi 2 data
(d) stack berisi 3 data
TOS : top of stack edywin
11
Operasi pembacaan data dari dalam stack alamat 5 4 3 2 1 0
alamat 5 4 3 2 1 0
(a) stack berisi 5 data
(b) stack berisi 4 data
alamat
alamat
5 4 3 2 1 0
5 4 3 2 1 0
(c) stack berisi 3 data
(d) stack berisi 2 data
TOS : top of stack edywin
12
Stack Pointer (dalam CPU) berfungsi menunjukkan alamat bagian teratas stack (Top of Stack) Stack Pointer
memory
a a
TOS
a-1
Operasi penulisan dilakukan pada alamat yg sesuai dengan isi stack-pointer. Operasi pembacaan dilakukan pada alamat (stack-pointer - 1 )
edywin
13
Programmer’s Models untuk prosesor2 komersial
(232 untuk Pentium)
edywin
M6800 : < 100 instruksi 8086 : > 120 instruksi Pentium : > 200 instruksi
14
Registers 80x86
•
PSW (Eflags) – N - result negative – Z - result Zero – V - overflow – C - carry out of high order bit – A - carry out of bit 3 – P - even parity
edywin
15
Register2 dasar Register2 Multimedia
Register2 Floating -point Unit
edywin
PENTIUM IV
16
edywin
17
Power PC
edywin
18
IBM
Evolusi arsitektural komputer IBM seri 360/370/ 390 dan z
edywin
19
EKSEKUSI PROGRAM oleh CPU Program dalam bahasa level mesin (object code)
Program dalam bahasa level tinggi (source code)
Statement1
Instruksi1
Statement2
Instruksi2
Statement3
Compiler
dieksekusi oleh CPU
Instruksi3
StatementN
N statement level tinggi
InstruksiM M instruksi level assembly/mesin
M>N edywin
20
Eksekusi program dilakukan per instruksi Setiap instruksi akan dieksekusi oleh CPU dalam satu instruction-cycle Urutan eksekusi instruksi ditentukan oleh logika program. Urutan eksekusi instruksi = urutan pembacaan alamat penyimpanan instruksi
I4 bukan instruksi percabangan
0 1
0 1
9
I1
10
I2
11
I3
12
I4
13
I5
edywin 9, 10,
11, 12, 13 , . . .
I4 instruksi percabangan, misalkan instruksi JUMP 9 urutan pembacaan alamat
9
I1
10
I2
11
I3
12
I4
13
I5
21
9, 10, 11, 12, 9, 10, 11, 12, 9 . . .
Program sederhana, penjumlahan (A + B) Lokasi di memory
Instruksi Hex code
MNEMONIC
000
0004
LOAD (004)
001
2005
ADD (005)
002
1006
003
F000
Keterangan
Copy A ke accumulator Jumlahkan B ke accumulator
STORE (006) Simpan isi akumulator (hasil A + B) ke lokasi 006 STOP
Stop
004
A
005
B
006
Hasil penjumlahan A dan B
edywin
program
data
22
Isi Program Counter (PC) : Alamat instruksi yang akan dibaca dari memory alamat
MAR 0011 101 000 000 100
4000
4000
MDR 0011 101 000 000 100
Control Unit edywin bag.opcode
bag.operand (address)
sinyal sinyal kendali hasil interpretasi instruksi 23
Instruction Cycle (Fetch-Execute Cycle) Eksekusi 1 instruksi dilakukan dalam 1 instruction cycle, yang terdiri dari langkah langkah sbb : (1) Baca (Fetch) instruksi yang akan di eksekusi dari memory ke CPU. (2) Interpretasikan (Decode) opcode dari instruksi tersebut. (3) Baca operand dari memory (bila instruksi tsb melibatkan operand yang ada di memory) (4) Laksanakan (Execute) instruksi dan simpan hasilnya (kalau ada). (5) Ulangi langkah 1 untuk instruksi berikutnya. IF
ID
OF
EX
IF
ID
OF
EX t
1 instruction cycle
IF : Instruction Fetch OF : Operand Fetch
edywin
1 instruction cycle
ID : Instruction Decoding EX : Execute
24
Eksekusi instruksi penjumlahan operand dari memory dengan isi akumulator, mode pengalamatan langsung. cX
IF
OF EX
MAR
IF
MDR
PC MAR MDR IR
ID
PC
IR[address] MAR
IR
ADDA address c0
A + MDR A
ID
Instruction Decoding c0 c1
ck AC
edywin
OF
MAR
PC + 1 PC alamat instruksi berikutnya
M E M O R Y
MDR
EX +
c1 25
Eksekusi instruksi untuk menyimpan isi akumulator ke memory dengan mode pengalamatan langsung.
PC MAR IF ID
IF
MDR IR IR
IR[address] MAR EX
STOA address
A MDR
MAR
PC + 1 PC ID
Instruction Decoding
MDR
M E M O R Y
tidak ada OF EX AC edywin
26