BAB 15: PENGANTAR ARSITEKTUR DAN
RTL
A.
Pengantar
Arsitektur Komputer
1.
Definisi
Arsitektur Komputer
a.
Arsitektur
komputer adalah disiplin yang mendefinisikan struktur dan perilaku sistem computer
b.
Mencakup
set instruksi, organisasi memori, dan mekanisme I/O
c.
Arsitektur
vs Organisasi — arsitektur (apa yang terlihat programmer), organisasi
(implementasi hardware)
d.
Contoh:
x86, ARM, RISC-V adalah arsitektur
2.
Komponen
Dasar Komputer
a.
CPU
(Central Processing Unit) — otak computer
b.
Memori
— menyimpan program dan data (RAM, ROM)
c.
I/O
(Input/Output) — komunikasi dengan dunia luar
d.
Bus
— jalur komunikasi antar komponen
3.
Model
Von Neumann vs Harvard
a.
Von
Neumann — satu memori untuk program dan data
b.
Harvard
— memori terpisah untuk program dan data
c.
Von
Neumann — lebih sederhana, bottleneck Von Neumann
d.
Harvard
— lebih cepat (digunakan di mikrokontroler)
4.
Hierarki
Komputer
a.
Level
0 — Digital Logic (gerbang, flip-flop)
b.
Level
1 — Microarchitecture (RTL, ALU, register)
c.
Level
2 — ISA (Instruction Set Architecture)
d.
Level
3 — Operating System
e.
Level 4 — Application Software
B.
Register
Transfer Level (RTL)
1.
Definisi
RTL
a.
RTL
adalah level abstraksi yang mendeskripsikan sistem digital dalam bentuk
transfer data antar register
b.
Setiap
transfer terjadi pada tepi clock
c.
RTL
menggambarkan perilaku CPU pada level siklus clock
d.
Digunakan
dalam desain dan sintesis hardware (HDL)
2.
Komponen
RTL
a.
Register
— menyimpan data (n-bit)
b.
Datapath
— jalur transfer data (bus, multiplexer, ALU)
c.
Control
Unit — menghasilkan sinyal kontrol
d.
Clock
— sinkronisasi operasi
3.
Notasi
RTL
a.
R
← A — transfer data dari A ke R (pada tepi clock)
b.
R[0]
← A — transfer ke bit tertentu
c.
R
← R + A — operasi aritmatika
d.
if
(condition) then R ← A — transfer bersyarat
4.
Contoh
RTL untuk Instruksi Sederhana
a.
ADD
R1, R2, R3 → R1 ← R2 + R3
b.
LOAD
R1, [addr] → R1 ← M[addr]
c.
STORE
[addr], R1 → M[addr] ← R1
d.
JUMP
addr → PC ← addr
5.
RTL
dalam Desain Digital
a.
RTL
adalah bahasa yang digunakan dalam VHDL dan Verilog
b.
Sintesis
RTL → mengubah kode menjadi netlist gerbang
c.
Simulasi
RTL → memverifikasi perilaku sistem
d.
FPGA
dan ASIC menggunakan RTL sebagai input desain
C.
Arithmetic
Logic Unit (ALU)
1.
Definisi
dan Fungsi ALU
a.
ALU
adalah komponen yang melakukan operasi aritmatika dan logika
b.
Input:
dua operand (A, B) dan control signal (opcode)
c.
Output:
hasil operasi (Result) dan status flag
d.
Jantung
dari CPU dan mikroprosesor
2.
Operasi
ALU Dasar
a.
Aritmatika:
ADD, SUB, INC, DEC, CMP
b.
Logika:
AND, OR, XOR, NOT, SHIFT
c.
Pergeseran:
Shift Left, Shift Right, Rotate
d.
Lainnya:
PASS A, PASS B, ZERO, INVERT
3.
ALU
4-bit Sederhana
a.
4-bit
input (A, B) → 4-bit output (Result)
b.
4
opcode (S1,S0) untuk 4 operasi
c.
Operasi:
ADD, SUB, AND, OR
d.
Desain
dengan full-adder dan gerbang logika
e.
Multiplexer
untuk memilih output
4.
Status
Flag (Condition Code)
a.
Zero
(Z) — hasil = 0
b.
Carry
(C) — carry out dari operasi
c.
Overflow
(V) — overflow pada operasi signed
d.
Negative
(N) — hasil negatif (MSB=1)
e.
Digunakan
untuk instruksi percabangan bersyarat
5.
IC
ALU 74181
a.
74181
— 4-bit ALU yang popular
b.
16
operasi logika dan 16 operasi aritmatika
c.
Dilengkapi
dengan Carry In dan Carry Out
d.
Dapat
di-cascade untuk 8-bit, 12-bit, 16-bit
e.
Simbol
dan pinout
D.
Control
Unit — Jantung CPU
1.
Definisi
Control Unit
a.
Control
unit menghasilkan sinyal kontrol untuk mengatur CPU
b.
Menerjemahkan
instruksi menjadi sinyal kontrol
c.
Mengatur
aliran data di datapath
d.
Menjaga
sinkronisasi operasi
2.
Arsitektur
Control Unit
a.
Hardwired
Control — logika kombinasional (cepat, tetapi kompleks)
b.
Microprogrammed
Control — menggunakan ROM (fleksibel)
c.
Control
word — kumpulan sinyal kontrol untuk satu siklus
d.
Microinstruction
— satu langkah dalam program kontrol
3.
Siklus
Instruksi
a.
Fetch
— mengambil instruksi dari memori
b.
Decode
— menerjemahkan instruksi
c.
Execute
— menjalankan instruksi
d.
Write
Back — menyimpan hasil
e.
Setiap
langkah memerlukan sinyal kontrol tertentu
4.
Sinyal
Kontrol
a.
Register
Enable — mengaktifkan register untuk menerima data
b.
Register
Output — mengaktifkan output register ke bus
c.
ALU
Opcode — memilih operasi ALU
d.
Memory
Read/Write — mengontrol akses memori
e.
PC
Enable — update Program Counter
E.
Decoder
Instruksi
1.
Format
Instruksi
a.
Opcode
— menentukan operasi yang harus dilakukan
b.
Operand
— data atau alamat yang digunakan
c.
3-address
→ 2-address → 1-address → 0-address (stack)
d.
Contoh:
ADD R1, R2, R3 (3-address)
2.
Decoder
Instruksi
a.
Menerjemahkan
opcode menjadi sinyal kontrol
b.
Menggunakan
decoder dan logika kombinasional
c.
Menghasilkan
control word untuk setiap instruksi
d.
ROM-based
decoder → microprogrammed control
3.
Contoh
Dekoder Sederhana
a.
4-bit
opcode → 16 kemungkinan instruksi
b.
Setiap
instruksi menghasilkan sinyal kontrol yang berbeda
c.
ADD:
ALU_OP=ADD, REG_WRITE=1
d.
SUB:
ALU_OP=SUB, REG_WRITE=1
e.
LOAD:
MEM_READ=1, REG_WRITE=1
4.
Timing
Control
a.
Setiap
instruksi memerlukan beberapa siklus clock
b.
State
machine menentukan urutan siklus
c.
Fetch,
Decode, Execute, Write Back
d.
Multi-cycle
vs Single-cycle implementation
F.
Finite
State Machine (FSM)
1.
Definisi
FSM
a.
FSM
adalah model matematika untuk sistem dengan state diskrit
b.
State
→ input → next state → output
c.
FSM
Moore vs FSM Mealy
d.
Digunakan
dalam control unit, protocol, sequencer
2.
Moore
State Machine
a.
Output
hanya bergantung pada state (bukan input)
b.
State
→ output (kombinasional)
c.
Lebih
sederhana, lebih stabil
d.
Contoh:
traffic light controller
3.
Mealy
State Machine
a.
Output
bergantung pada state DAN input
b.
State
+ input → output (kombinasional)
c.
Respon
lebih cepat (tanpa menunggu clock berikutnya)
d.
Contoh:
UART receiver, pattern detector
4.
Desain
FSM dengan Flip-Flop
a.
State
register (flip-flop untuk setiap bit state)
b.
Next
state logic (kombinasional)
c.
Output
logic (kombinasional)
d.
Clock
untuk sinkronisasi
5.
Aplikasi
FSM
a.
Control
unit CPU
b.
Protocol
controller (I2C, SPI, UART)
c.
Traffic
light controller
d.
Sequence
generator
e.
Pattern
detector (Pencocokan pola)
G.
Rangkaian
Aritmatika Lanjutan
1.
Carry
Look-Ahead Adder (CLA)
a.
Mengatasi
keterlambatan ripple carry
b.
Menghitung
carry secara parallel
c.
Generate
(G) = A·B, Propagate (P) = A ⊕
B
d.
C1
= G0 + P0·C0
e.
C2
= G1 + P1·G0 + P1·P0·C0
f.
IC
74182 — carry look-ahead generator
2.
Multiplier
(Perkalian)
a.
Shift-and-add
multiplier — metode sederhana
b.
Array
multiplier — menggunakan full-adder
c.
Booth
multiplier — untuk bilangan bertanda
d.
Aplikasi
— DSP, floating-point unit
3.
Divider
(Pembagian)
a.
Restoring
division — metode pengurangan berulang
b.
Non-restoring
division — lebih cepat
c.
Aplikasi
— floating-point unit, DSP
4.
Barrel
Shifter
a.
Dapat
menggeser n-bit dengan cepat
b.
Menggunakan
multiplexer
c.
Shift
left, shift right, rotate
d.
Aplikasi
— ALU, floating-point unit
5.
Floating-Point
Unit (FPU)
a.
Representasi
floating-point (IEEE 754)
b.
Single-precision
(32-bit), double-precision (64-bit)
c.
Operasi:
add, sub, mul, div, sqrt
d.
Aplikasi
— CPU modern, DSP, GPU
H.
Aplikasi
Arsitektur dan RTL
1.
Mikroprosesor
Sederhana (4-bit)
a.
4-bit
ALU, 4 register, 16×4 RAM
b.
Instruksi:
LOAD, STORE, ADD, SUB, JUMP, JZ
c.
Control
unit dengan FSM
d.
Contoh:
Intel 4004 (mikroprosesor pertama)
2.
Mikrokontroler
Sederhana
a.
CPU
+ RAM + ROM + I/O dalam satu chip
b.
Contoh:
Intel 8051, Atmel AVR, PIC
c.
Aplikasi
— embedded system, IoT, robotika
d.
Arduino
(ATmega328) sebagai contoh modern
3.
Desain
HDL (VHDL/Verilog)
a.
VHDL
dan Verilog adalah bahasa untuk mendesain hardware
b.
RTL
coding → behavior deskripsi hardware
c.
Simulation
→ verifikasi fungsional
d.
Synthesis
→ mengubah RTL menjadi netlist gerbang
e.
FPGA
dan ASIC implementation
4.
FPGA
(Field Programmable Gate Array)
a.
FPGA
adalah IC yang dapat diprogram ulang
b.
Terdiri
dari CLB (Configurable Logic Blocks), interkoneksi, I/O
c.
Digunakan
untuk prototyping dan produksi volume kecil
d.
Contoh:
Xilinx Spartan, Altera Cyclone, Lattice ICE
5.
ASIC
(Application-Specific IC)
a.
ASIC
adalah IC yang dirancang untuk aplikasi spesifik
b.
Tidak
dapat diprogram ulang (fixed function)
c.
Biaya
fabrikasi tinggi → hanya untuk volume besar
d.
Contoh:
chip smartphone, GPU, SoC
Komentar
Posting Komentar