440 likes | 880 Views
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.
E N D
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
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
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
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 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 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
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)
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)