Central Processing Unit 4/14/2017
II.1 Konsep Dasar CPU* adalah I1 I2 I3 I4 : Ij CPU Pusat pengolahan (pemrosesan) didalam sebuah sistem komputer. Tempat berlangsungnya eksekusi program. * prosesor atau mikroprosesor Main Memory I1 I2 I3 I4 : Ij CPU Program Program dieksekusi dengan satu per satu mengeksekusi instruksi2 penyusun program 4/14/2017
II.2 Struktur CPU Didalam CPU terdapat elemen elemen : ALU (Arithmetic Logic Unit) CU (Control Unit) Register register Bus internal, untuk komunikasi didalam CPU Clock , untuk sinkronisasi operasi di dalam dan di luar CPU. II.2 Struktur CPU CPU ALU Register2 Control Unit Clock Bus Sistem Bus internal CPU 4/14/2017
Control Unit (CU) CU berfungsi mengendalikan seluruh operasi perangkat keras komputer, melalui Interprestasi instruksi2 dalam program yang sedang dieksekusi Pembangkitan sinyal2 kendali berdasarkan hasil interpretasi tsb. IR : Instruction Register , tempat penampungan instruksi yg akan diinterpretasikan c0 IR CU c1 cK Contoh : Instruksi ADD R1 , [ Mem a ] Interpretasi : Operasi penjumlahan data yg tersimpan di dalam register R1 dengan data yg tersimpan dialamat memory Mem a , hasil penjumlahan disimpan di register R1. 4/14/2017
Arithmetic & Logic Unit (ALU) Sinyal kendali: membaca data dari memory dan data dari register mengaktifkan operasi penjumlahan (di dalam ALU) menyimpan hasil penjumlahan ke register. Arithmetic & Logic Unit (ALU) ALU berfungsi melaksanakan operasi2 aritmatika dan operasi2 logika sesuai dengan perintah yang terkandung dalam tiap instruksi. Adder Multiplier Comparator AND c0 c1 c3 Bus internal CPU ALU ci : sinyal kendalii 4/14/2017
Register-register Register adalah elemen pengingat didalam CPU , sebagai tempat penyimpanan sementara bagi data atau parameter2 yang diperlukan dalam operasi CPU. Terdapat dua kelompok register, Register2 untuk keperluan khusus (special purpose) Register2 untuk keperluan umum (general purpose) Register2 khusus Register2 umum PC R0 IR R1 ACC R1 PSW MAR RK MBR 4/14/2017
CPU CU ALU Instruction Register Memory Adress Memory Data Program Counter Processor Status Word R0 R1 R2 RN-1 ke Bus Kendali ke Bus Data ke Bus Alamat ke komponen internal CPU CPU Clock Bus Data internal CPU 4/14/2017
Memory Address Register (MAR) Berisi alamat memory dari mana data/instruksi akan dibaca (operasi Read Memory) atau alamat memory kemana data akan dituliskan (operasi Write Memory). Pada operasi I/O (read I/O atau Write I/O) , MAR berisi alamat I/O. Memory Data/Buffer Register (MDR/MBR) Berisi data/instruksi yang baru saja dibaca dari memory , atau data yang akan dituliskan ke memory. Pada operasi I/O (read I/O atau Write I/O) , MDR berisi data dari/ ke modul I/O. Instruction Register (IR) Menyimpan instruksi yang dibaca dari memory, dan yg akan dieksekusi. Program Counter (PC) Menyimpan alamat instruksi yang akan dieksekusi berikutnya. 4/14/2017
Accumulator (ACC) S Z V I ... C Akumulator adalah register data khusus , sebagai tempat penyimpanan data hasil operasi ALU (tidak semua prosesor memiliki ACC). Program/Processor Status Word (PSW) PSW adalah register yang akan mencatat informasi status sebuah prosesor. PSW juga disebut sebagai Flag Register. Bit bit didalam register PSW berisi informasi mengenai hasil suatu operasi dan status prosesor S Z V I ... C PSW Bit S : informasi apakah hasil operasi pos atau neg Bit Z : informasi apakah hasil operasi = 0 atau =/= 0 Bit V : informasi apakah hasil operasi meluap Bit I : informasi apakah prosesor dapat diinterupsi 4/14/2017
0/1 . . . bit-bit status (flag) 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 S = 1 , hasil operasi ALU negatif 4/14/2017
Register Y sebagai buffer bagi operand sumber pada operasi ALU. Register register ALU Register Y sebagai buffer bagi operand sumber pada operasi ALU. Register Z sebagai buffer bagi data hasil operasi ALU Z ALU dari register-data/ register-alamat ke register-data/ register-alamat Y 4/14/2017
Stack adalah tempat penyimpanan data Stack Pointer Stack adalah tempat penyimpanan data yang aksesnya diorganisasikan secara LIFO (Last In First Out). Data yang disimpan terakhir akan dibaca lebih dahulu. Stack dapat diimplementasikan sebagai : Satu set lokasi didalam main memory atau Satu set register didalam CPU memory stack CPU stack Ada dua jenis stack : user stack (untuk data milik user) system stack (untuk data milik sistem) 4/14/2017
Operasi penulisan data kedalam stack alamat alamat alamat alamat 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 (a) stack kosong stack berisi 1 data (c) stack berisi 2 data (d) stack berisi 3 data TOS : top of stack 4/14/2017
Operasi pembacaan data dari dalam stack alamat alamat alamat alamat 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 stack berisi 5 data (b) stack berisi 4 data (c) stack berisi 3 data (d) stack berisi 2 data TOS : top of stack 4/14/2017
Operasi penulisan dilakukan pada 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 ) 4/14/2017
Clock t Tclk Clock adalah sinyal penyinkron untuk sinkronisasi operasi operasi di dalam CPU dan operasi antar CPU dengan memory dan I/O unit. Clock t (detik) Tclk 1 Clock Cycle 1 Frekuensi clock : fclk = Cycle/detik ( atau Hertz ) Tclk 4/14/2017
Intel 8085 CPU Students can look at the remaining slides in their own time if there is insufficient time in lecture. CU 4/14/2017
Intel 8085 Signals 4/14/2017
EKSEKUSI PROGRAM oleh CPU Program dalam bahasa level tinggi (source code) Program dalam bahasa mesin, menggunakan kode 0,1 Program dalam bahasa level assembly Compiler assembler Instruksi1 Instruksi2 Instruksi3 InstruksiM kode I1 kode I2 kode I3 kode IM Statement1 Statement2 Statement3 StatementN N statement level tinggi M instruksi level assembly - di main memory - dieksekusi oleh CPU lts05 M > N
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 1 9 10 11 12 13 1 9 10 11 12 13 I4 instruksi perca-bangan, misalkan instruksi JUMP 9 I1 I1 I2 I2 I3 I3 urutan pembacaan alamat I4 I4 I5 I5 lts05 9, 10, 11, 12, 13 , . . . 9, 10, 11, 12, 9, 10, 11, 12, 9 . . .
Program sederhana, penjumlahan (A + B) MNEMONIC Hex code STOP STORE (006) ADD (005) LOAD (004) B 0 0 5 Hasil penjumlahan A dan B 0 0 6 A 0 0 4 Stop F 0 0 0 0 0 3 Simpan isi akumulator (hasil A + B) ke lokasi 006 1 0 0 6 0 0 2 Jumlahkan B ke accumulator 2 0 0 5 0 0 1 Copy A ke accumulator 0 0 0 4 0 0 0 Keterangan Instruksi Lokasi di memory program data lts05
sinyal sinyal kendali hasil interpretasi instruksi MAR Isi Program Counter (PC) : Alamat instruksi yang akan dibaca dari memory Control Unit sinyal sinyal kendali hasil interpretasi instruksi MAR MDR 4000 alamat 0011 101 000 000 100 bag.opcode bag.operand (address) lts05
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. Instruction Cycle (Fetch-Execute Cycle) IF ID OF EX IF ID OF EX 1 instruction cycle IF : Instruction Fetch ID : Instruction Decoding OF : Operand Fetch EX : Execute t lts05
PC MAR MDR IR IR[address] MAR A + MDR A PC + 1 PC Eksekusi instruksi penjumlahan operand dari memory dengan isi akumulator, mode pengalamatan langsung. IF OF EX ID alamat instruksi berikutnya ADDA address MAR Instruction Decoding IR MDR AC + c1 c0 ck cX PC M E O R Y lts05
PC MAR MDR IR IR[address] MAR A MDR PC + 1 PC Eksekusi instruksi untuk menyimpan isi akumulator ke memory dengan mode pengalamatan langsung. PC MAR MDR IR IR[address] MAR A MDR PC + 1 PC IF IF ID IR STOA address M E O R Y EX MAR Instruction Decoding ID MDR tidak ada OF EX AC lts05
Kinerja CPU Kinerja CPU sering dinyatakan berdasarkan Kecepatan pengolahannya, yang dinyatakan dalam jumlah clock-cycles rata rata untuk mengeksekusi sebuah instruksi mesin atau dinyatakan oleh frekuensi clocknya. Contoh : CPI (Cycle per Instruction), jumlah clock cycle rata rata yang diperlukan oleh prosesor untuk mengeksekusi 1 instruksi . Frekuensi clock prosesor ( dalam M.Hz , G.Hz , ... ) Word length atau panjang-kata dari data yang dapat diolah dalam satu operasi di dlm prosesor sering dikaitkan dengan lebar bus-datanya. Contoh : Prosesor 32 bit , Prosesor 64 bit bN-1 bN-2 b2 b1 b0 1 word-length = N bit 4/14/2017
II. 3 Operasi CPU Operasi utama CPU adalah mengeksekusi program. Eksekusi program dilakukan dengan mengeksekusi instruksi – instruksi didalam program tersebut satu per-satu. Eksekusi Program : Eks. I1 1 instruction-cycle Program I1 I2 I3 I4 : Eks. I2 1 instruction-cycle Eks. I3 1 instruction-cycle Eks. I4 1 instruction-cycle Ii : Instruksi ke-i 4/14/2017 Setiap instruksi dieksekusi dalam 1 instruction cycle
Fase Instruction-Fetch Instruction Cycle Secara umum 1 instruction-cycle terdiri dari 2 fase. 1. Instruction Fetch 2. Eksekusi 1 instruction cycle Fase Instruction-Fetch Pada Instruction Fetch , CPU membaca 1 instruksi dari main memory dibawa ke Instruction Register. Selanjutnya instruksi diinterpretasikan, apa operasinya (opcode) , data (operand) apa saja yang dilibatkan dalam operasi tersebut . 4/14/2017
Operasi operasi didalam fase IF CU (5) Update PC [PC] MAR [M] MDR [MDR] IR Decode IR Increment PC (4) PC 123 IR ADD R1 , Mem a (1) (3) MAR 123 MDR ADD R1 , Mem a update isi PC untuk persiapan instruction- cycle berikutnya (1) (2) ADD R1 , Mem a alamat 123 4/14/2017 Main Memory
Dari interpretasi instruksi diketahui : 1. Tipe operasi yang diinginkan Contoh : Operasi penjumlahan data yang tersimpan di register dengan data yang tersimpan di main- memory , hasil penjumlahan disimpan di register. 2. Operand (data) yang dioperasikan data di dalam register R1 dan data di memory, pada alamat a CU ADD R1 , Mem a Format instruksi : opcode operand (1) (2) 4/14/2017
Fase Eksekusi Dari hasil interpretasi instruksi , Control Unit membangkitkan sinyal sinyal kendali untuk melaksanakan (eksekusi) instruksi ybs. Fase Eksekusi terdiri dari operasi operasi : Fetch Data : Pembacaan data (operand) dari main memory atau dari register, atau modul I/O. Process Data : Operasi (yg diinginkan oleh instruksi) dilaksanakan (eksekusi). Untuk operasi aritmatik atau logika , eksekusi dikerjakan di ALU. Write Data: Menyimpan data hasil eksekusi ke main memory atau ke register atau ke modul I/O (sesuai instruksinya) 4/14/2017
Contoh : Eksekusi instruksi ADD R1 , Mem a R1 R1 + Mem a Transfer isi R1 ke ALU via bus internal. Baca isi alamat a (di memory) , transfer ke ALU Aktifkan modul penjumlah (ADDER) pada ALU Simpan hasil penjumlahan ke R1. 4/14/2017
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. Instruction Cycle (Fetch-Execute Cycle) IF ID OF EX IF ID OF EX 1 instruction cycle IF : Instruction Fetch ID : Instruction Decoding OF : Operand Fetch EX : Execute t 4/14/2017
PC MAR MDR IR IR[address] MAR A + MDR A PC + 1 PC Eksekusi instruksi penjumlahan operand dari memory dengan isi akumulator, mode pengalamatan langsung. IF OF EX ID alamat instruksi berikutnya ADDA address MAR Instruction Decoding IR MDR AC + c1 c0 ck cX PC M E O R Y 4/14/2017
PC MAR MDR IR IR[address] MAR A MDR PC + 1 PC Eksekusi instruksi untuk menyimpan isi akumulator ke memory dengan mode pengalamatan langsung. PC MAR MDR IR IR[address] MAR A MDR PC + 1 PC IF IF ID IR STOA address M E O R Y EX MAR Instruction Decoding ID MDR tidak ada OF EX AC 4/14/2017
Any Questions? End of Session 4/14/2017