Struktur Fungsi CPU

Download Report

Transcript Struktur Fungsi CPU

ORGANISASI & ARSITEKTUR KOMPUTER 2
STRUKTUR & FUNGSI CPU
IBP WIDJA, MT
Struktur CPU

CPU seharusnya dapat melakukan:





Pengambilan (fetch) Instruksi
Menginterpretasi Instruksi
Fetch Data
Memproses Data – operasi aritmetika atau logika
Menulis Data
CPU dengan Bus Sistem
Struktur Internal CPU
Register





CPU harus memiliki wilayah kerja (working
space) yg berupa temporary storage
Temporary storage disebut dng register-register
Fungsi dan Jumlahnya bervariasi tergantung
desain prosessor
Merupakan salah satu desain utama yg
diputuskan
Merupakan level puncak dari hirarki memory
Peran Register pd CPU

Register terlihat oleh user (programer)


Memungkinkan pemrograman dng bahasa mesin
atau bahasa assembly untuk memperkecil acuan
memory utama dng mengoptimalkan penggunaan
register
Register Kontrol dan Status

Digunakan oleh unit kontrol untuk mengontrol
operasi CPU dan program Sistem Operasi
Register terlihat oleh user




General Purpose (Tujuan Umum)
Data
Address (Alamat)
Condition Codes (Kode kondisi)
General Purpose Register



Biasanya digunakan untuk tujuan umum (yang
dapat berisi opcode & operand)
Kemungkinan jenis Register ini juga digunakan
secara restricted (misalnya untuk floating point
dan stack)
Kemungkinan juga digunakan untuk data dan
pengalamatan
General Purpose Register...

Jika register ini dibuat sebagai general purpose
maka akan:



Meningkatkan flexibilitas dan opsi programmer
Meningkatkan ukuran instruksi dan kompleksitas
Jika register ini dibuat lebih mengkhusus


Instruksi Lebih kecil (lebih cepat)
Flexibility berkurang
Berapa banyak GP register?




Jumlah yg optimum diantara 8 - 32
Jumlah lebih kecil = acuan memori lebih banyak
Jumlah lebih banyak tidak akan mengurangi
jumlah acuan memori secara berarti
Ada suatu pendekatan baru dng ratusan
register pada sistem RISC (Reduce Instruction
Set Computer)
GP seberapa besar?



Cukup besar untuk memuat full address
Cukup besar untuk memuat full word
Sering dimungkinkan untuk mengkombinasi dua
register data :



C programming
double int a;
long int a;
Register Kode Kondisi

Kode Kondisi adalah set bit oleh CPU sebagai
hasil operasi, juga dikenal sebagai flag. contoh:



Suatu operasi aritmetika dapat menghasilkan hasil
positif, negatif, nol atau overflow
Bit-bit kode kondisi ini dikumpulkan pada satu
atau lebih register yg membentuk register
kontrol
Dapat dibaca secara implisit oleh program
tetapi programer tidak dapat mengubahnya

contoh: Jump if zero
Register Kontrol dan Status


Terdapat bermacam-macam register CPU yg
dapat melakukan Kontrol Operasi CPU yg pada
sebagian mesin tidak terlihat oleh user.
Empat Register Penting untuk eksekusi
instruksi:




Program Counter
Instruction Register
Memory Address Register
Memory Buffer Register
(PC)
(IR)
(MAR)
(MBR)
Program Status Word


Semua rancangan CPU meliputi sekelompok register
dan sering dikenal sebagai word status program
(Program Status Word – PSW)
PSW secara umum terdiri dari kode kondisi ditambah
informasi status lainnnya yg meliputi:








Kode Kondisi
Sign dari hasil akhir
Zero
Carry
Equal
Overflow
Interrupt enable/disable
Supervisor
Mode Supervisor




Merupakan Mode Kernel
Memungkinkan untuk mengeksekusi instruksi
khusus (privileged)
Digunakan oleh Sistem Operasi
Tidak tersedia untuk user program
Register lain

Mungkin memiliki register yg pointing ke:



Process control blocks (lihat: S/O)
Interrupt Vectors (lihat: S/O)
N.B: Desain CPU dan Sistem Operasi
berhubungan sangat dekat
Contoh Organisasi Register
Siklus Instruksi
Siklus Instruksi Tambahan

Siklus Tidak Langsung



Mungkin memerlukan akses memory untuk
mengambil (fetch) operand
Indirect Addressing memerlukan akses memory
lebih
Kita dapat berpikir tentang pengalamatan tidak
langsung ini sebagai satu lagi subsiklus instruksi
Siklus instruksi tak langsung
Diagram Keadaan
Aliran Fetch Instruksi


Tergantung dari desain CPU
Aliran Fetch secara Umum






PC berisi alamat dari instruksi berikutnya
Alamat pindah ke MAR
Alamat menempai Bus Alamat
Control Unit (CU) meminta pembacaan memori
Hasil ditempatkan ke Bus data, dikopi ke MBR,
kemudian ke IR
Sementara itu PC nilainya bertambah 1 (increment)
Aliran Data, Siklus Fetch
Aliran Fetch Data indirect


IR di evaluasi
Jika pengalamatanya tidak langsung, siklus
indirect akan melakukan:



N bit paling kanan dari MBR ditransfer ke MAR
Control Unit (CU) meminta pembacaan memori
Result (address dari operand) berpindah ke MBR
Aliran Data, Siklus Indirect
Aliran Eksekusi


Bentuknya dapat beraneka ragam tergantung
pada instruksi yang tereksekusi
Dapat mengandung:




Memory read/write
Input/Output
Register transfers
ALU operations
Aliran Interrupt







Sederhana
PC yg sekarang di-save untuk memungkinkan
reasumsi setelah interrupt
Isi PC di-copy ke MBR
Lokasi memory spesial (misal: pointer stack) di load ke
MAR
MBR ditulis ke memory
PC di load dengan alamat Rutin handling Interrupt
Instruksi berikutnya dapat di fetch
Aliran Data, Siklus Interrupt
Prefecth




Siklus Fetch akan mengakses memori utama
Siklus Eksekusi biasanya tidak akan
mengakses memori utama
Sehingga dapat dilakukan fetch instruksi
selanjutnya selama eksekusi instruksi yg
sekarang
Kegiatan ini disebut dengan prefetch instruksi
Meningkatkan performa

Tidak menjadi dua kali (double):

Waktu Fetch biasanya lebih cepat dari waktu
eksekusi



Apakah prefetch bisa lebih dari satu instruksi?
Tiap ada jump ke cabang, berarti instruksi prefetch
bukan merupakan instruksi yg diperlukan jadi harus
dibuang untuk instruksi baru
Untuk meningkatkan performa maka diperlukan
lebih banyak keadaan (stage)
2 Langkah Pipeline Instruksi
Pipelining Instruksi


Pengolahan instruksi sedemikian rupa sehingga
beberapa komponen instruksi dapat dilakukan
secara serempak
Dekomposisi pengolahan instruksi:






Fetch instruction
Decode instruction
Calculate Operands
Fetch Operands
Execute Instructions
Write Operand
(FI)
(DI)
(CO)
(FO)
(EI)
(WO)
Timing Pipeline
Pencabangan dlm pipeline
Flow
Chart
Pipeline
Cara Lain
deskripsi
Pipeline
Faktor
akselerasi
dengan
Pipeline
Instruksi
Contoh
Pipeline
Instruksi
80486
Register Pentium 4
Register EFLAGS
Register Kontrol