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 Bus internal PC : Program Counter PSW : Program Status Word/Flags edywin 3 SP : Stack Pointer
MDR edywin 4 M E M O R Y
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 Hanya dapat digunakan untuk menyimpan data edywin 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 IR terdiri dari 2 bagian 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 edywin 8 S = 1, hasil operasi ALU negatif
Register register 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 ALU Z ke register-data/ register-alamat Y edywin 9
Stack Pointer memory Stack adalah tempat penyimpanan data yang aksesnya diorganisasikan secara LIFO (Last In First Out). Data yang disimpan terakhir akan dibaca lebih dahulu. stack Stack dapat diimplementasikan sebagai : Satu set lokasi didalam main memory atau Satu set register didalam CPU CPU Ada dua jenis stack : 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 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 berisi 5 data (b) stack berisi 4 data (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 a - 1 TOS 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 (2 32 untuk Pentium) M6800 : < 100 instruksi 8086 : > 120 instruksi edywin 14 Pentium : > 200 instruksi
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 PENTIUM IV edywin 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 tinggi (source code) Program dalam bahasa level mesin (object code) Statement 1 Statement 2 Statement 3 Compiler Instruksi 1 Instruksi 2 Instruksi 3 dieksekusi oleh CPU Statement N N statement level tinggi Instruksi M M > N M instruksi level assembly/mesin 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 0 1 9 10 11 12 13 I 1 I 2 I 3 I 4 I 5 I 4 bukan instruksi percabangan I 4 instruksi percabangan, misalkan instruksi JUMP 9 urutan pembacaan alamat 0 1 9 10 11 12 13 I 1 I 2 I 3 I 4 I 5 9, 10, 11, 12, 13,... 9, 10, 11, 12, 9, 10, 11, 12, 9... edywin 21
Program sederhana, penjumlahan (A + B) Lokasi di memory Instruksi Hex code MNEMONIC Keterangan 0 0 0 0 0 0 4 LOAD (004) Copy A ke accumulator 0 0 1 2 0 0 5 ADD (005) Jumlahkan B ke accumulator program 0 0 2 1 0 0 6 STORE (006) Simpan isi akumulator (hasil A + B) ke lokasi 006 0 0 3 F 0 0 0 STOP Stop 0 0 4 A 0 0 5 B data 0 0 6 Hasil penjumlahan A dan B edywin 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 sinyal sinyal kendali hasil interpretasi instruksi bag.opcode edywin bag.operand 23 (address)
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 1 instruction cycle IF : Instruction Fetch OF : Operand Fetch ID : Instruction Decoding EX : Execute edywin 24
Eksekusi instruksi penjumlahan operand dari memory dengan isi akumulator, mode pengalamatan langsung. c X IF ID OF EX PC MAR MDR IR IR[address] MAR A + MDR A PC + 1 PC IR PC MAR IF MDR ADDA address c 0 MAR OF M E M O R Y alamat instruksi berikutnya ID Instruction Decoding MDR c 0 c 1 c k EX AC + edywin 25 c 1
Eksekusi instruksi untuk menyimpan isi akumulator ke memory dengan mode pengalamatan langsung. IF ID EX PC MAR MDR IR IR[address] MAR A MDR PC + 1 PC tidak ada OF ID IR IF STOA address Instruction Decoding MAR MDR M E M O R Y AC EX edywin 26