Tujuan Pembelajaran

1
Memahami arsitektur CPU

Mengenal komponen-komponen utama CPU dan fungsinya

2
Instruction Execution Cycle

Memahami siklus fetch-decode-execute dan pipeline processing

3
Register Organization

Memahami fungsi dan jenis-jenis register dalam CPU

4
CPU Simulation

Praktikum dengan simulator CPU untuk memahami operasi

Teori: Arsitektur CPU

Komponen Utama CPU

CPU Block Diagram

🧠

Control Unit

Mengkoordinasi operasi CPU

Instruction decoding

ALU

Arithmetic Logic Unit

Perhitungan & logika
💾

Registers

Penyimpanan sementara

High-speed storage

Instruction Execution Cycle

Fetch-Decode-Execute Cycle

1
Fetch
Ambil instruksi
2
Decode
Interpretasi
3
Execute
Eksekusi
4
Store
Simpan hasil
Detailed Process:
  1. PC → MAR → Memory → MBR → IR
  2. IR di-decode oleh Control Unit
  3. ALU melakukan operasi
  4. Hasil disimpan di register/memory
  5. PC increament untuk instruksi berikutnya

Jenis-jenis Register

Register Categories:
General Purpose:
  • AX, BX, CX, DX
  • Untuk data sementara
Special Purpose:
  • PC (Program Counter)
  • SP (Stack Pointer)
  • IR (Instruction Register)

CPU Simulator

Interactive CPU Simulator

Register Bank

PC
0x0000
IR
NOP
AX
0
BX
0
CX
0
DX
0
SP
0xFFF0
FLAGS
0000

Execution Unit

Current Operation
IDLE
ALU Status
READY
CPU simulator ready...

Pipeline Processing

5-Stage Pipeline:
IF
ID
EX
MEM
WB

CPU Pipeline Processing

Pipeline memungkinkan CPU mengolah beberapa instruksi secara simultan dalam stage yang berbeda.

1️⃣

Instruction Fetch (IF)

Mengambil instruksi dari memory

PC → Memory → IR
2️⃣

Instruction Decode (ID)

Menginterpretasikan instruksi

Decode opcode & operands
3️⃣

Execute (EX)

Menjalankan operasi

ALU operations
4️⃣

Memory Access (MEM)

Akses data memory

Load/Store operations
5️⃣

Write Back (WB)

Menyimpan hasil

Update registers

Pipeline Hazards

Structural

Resource conflict

📊
Data

Data dependency

🎯
Control

Branch instructions

Instruction Set Architecture

Instruction Syntax Description Example
MOV MOV dest, src Move data MOV AX, 5
PUSH PUSH src Push to stack PUSH AX
POP POP dest Pop from stack POP BX
LOAD LOAD reg, mem Load from memory LOAD AX, [1000]
STORE STORE mem, reg Store to memory STORE [1000], AX
Instruction Syntax Description Example
ADD ADD dest, src Addition ADD AX, BX
SUB SUB dest, src Subtraction SUB AX, 5
MUL MUL src Multiplication MUL BX
DIV DIV src Division DIV CX
INC INC dest Increment INC AX
DEC DEC dest Decrement DEC BX
Instruction Syntax Description Example
AND AND dest, src Logical AND AND AX, BX
OR OR dest, src Logical OR OR AX, BX
XOR XOR dest, src Logical XOR XOR AX, AX
NOT NOT dest Logical NOT NOT AX
SHL SHL dest, count Shift Left SHL AX, 2
SHR SHR dest, count Shift Right SHR BX, 1
Instruction Syntax Description Example
JMP JMP label Unconditional jump JMP start
JZ JZ label Jump if zero JZ equal
JNZ JNZ label Jump if not zero JNZ not_equal
CALL CALL proc Call procedure CALL multiply
RET RET Return from procedure RET
CMP CMP op1, op2 Compare operands CMP AX, BX

Latihan Praktikum

🧮

Simple Calculator

Tugas: Implementasikan operasi aritmetika sederhana menggunakan instruksi CPU

MOV AX, 10
MOV BX, 5
ADD AX, BX ; AX = 15
SUB AX, 3 ; AX = 12
MUL BX ; AX = 60
🔄

Loop Implementation

Tugas: Buat loop untuk menghitung factorial

MOV CX, 5 ; Counter
MOV AX, 1 ; Result
loop_start:
MUL CX ; AX = AX * CX
DEC CX ; Decrement counter
JNZ loop_start ; Jump if not zero

Pipeline Analysis

Tugas: Analisis pipeline hazards dalam sequence instruksi

MOV AX, [1000] ; IF ID EX MEM WB
ADD AX, BX ; IF ID EX MEM WB
MOV [1000], AX ; IF ID - - -
MOV CX, AX ; IF - - -