ORGANISASI & ARSITEKTUR KOMPUTER 2 STRUKTUR & FUNGSI CPU IBP WIDJA, MT
description
Transcript of ORGANISASI & ARSITEKTUR KOMPUTER 2 STRUKTUR & FUNGSI CPU IBP WIDJA, MT
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 (PC) Instruction Register (IR) Memory Address Register (MAR) Memory Buffer Register (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 (FI) Decode instruction (DI) Calculate Operands (CO) Fetch Operands (FO) Execute Instructions (EI) Write Operand (WO)
Timing Pipeline
Pencabangan dlm pipeline
Flow ChartPipeline
Cara LaindeskripsiPipeline
Faktorakselerasi
denganPipelineInstruksi
Contoh PipelineInstruksi80486
Register Pentium 4
Register EFLAGS
Register Kontrol