You are on page 1of 11

Struktur dan Fungsi CPU

II.1. Organisasi Processor


Organisasi Processor terdiri dari :
ALU (Arithmatic and Logical Unit) : untuk
melakukan komputasi atau pengolahan data aktual
Cu (Control Unit) : untuk mengontrol
perpindahan data dan instruksi ke / dari CPU dan
juga mengontrol operasi ALU.
Register : memory internal CPU
Hal-hal yang dilakukan CPU
Fetch Instruction (Mengambil instruksi) : CPU membaca
instruksi dari memory
Interpret Instruction (Menterjemahkan instruksi) : CPU
menterjemahkan instruksi untuk menentukan aksi yang
diperlukan.
Fetch Data (Mengambil data) : eksekusi instruksi
mungkin memerlukan pembacaan data dari memory atau
dari modul I/O
Process Data (Mengolah data) : eksekusi instruksi
memerlukan operasi aritmatik atau logika.
Write data (Menulis data) : Hasil eksekusi mungkin
memerlukan penulisan data ke memory atau ke modul I/O
II.2. Organisasi Register
Organisasi register terdiri dari :
User Visible register : register yang isinya dapat
diketahui oleh pemrogram, register ini juga dapat
meminimalkan referensi ke main memory
Control and Status register : register yang
digunakan oleh CU, kontrol operasi CPU dan oleh
sistem operasi untuk kontrol eksekusi program.
II.2.1. User Visible Register
Kategori-kategorinya :
General purposes : dapat melaksanakan berbagai fungsi oleh
pemrogram, antara lain berisi operand dari sembarang opcode, fungsi
pengalamatan.
Data : hanya dapat digunakan untuk menampung data dan tidak dapat
digunakan untuk kalkulasi dan alamat operand.
Alamat : dapat digunakan untuk mode pengalamatan tertentu, antara
lain :
Segment pointer : untuk menyimpan alamat basis segmen.
Register index : untuk menyimpan alamat-alamat yang terindeks.
Stack Pointer : merupakan register yang dedicated menunjuk kebagian
teratas stack.
Kode-kode Kondisi (flag) : untuk menyimpan kode-kode kondisi
berupa bit-bit yang disetel CPU sebagai hasil operasi (positif, negatif, nol
atau overflow)
II.2.2. Control and Status
Terdapat 4 register antara lain :
Register
Program Counter (PC) : pencacah program , berisi
alamat instruksi berikutnya yang akan diambil
Instruction Register (IR) : berisi instruksi terakhir
yang diambil.
Memory Address Register (MAR) : berisi alamat
sebuah lokasi dalam memory.
Memory Buffer Register (MBR) : berisi sebuah word
data yang akan ditulis ke / dibaca dari memory.
II.3. Program Status Word (PSW)
Register yang berisi kode kondisi dan informasi status, yang terdiri
dari :
Sign : berisi bit tanda dari hasil operasi aritmatika terakhir.
Zero : Disetel bila hasil operasi sama dengan nol
Carry : Untuk operasi multi word, berupa carry (penambahan) ke
bit yang lebih tinggi, atau borrow (pengurangan) ke bit yang lebih
rendah.
Equal : Disetel apabila hasil perbandingan logikanya sama.
Overflow : Digunakan untuk indikasi overflow aritmatik
Interrupt Enable / Disable : Digunakan untuk mengijinkan /
menolak interupsi
Supervisor : Mengindikasikan CPU sedang mengeksekusi
instruksi dalam mode supervisor atau user.
II.4. Siklus Instruksi
Siklus Instruksi meliputi subsiklus-subsiklus :
Fetch : membaca instruksi berikutnya dari memory
ke dalam CPU
Execute : Menginterpretasi opcode dan melakukan
operasi yang diindikasikan
Interrupt : Apabila interrupt diaktifkan dan telah
terjadi, maka simpan status proses saat itu dan layani
interrupt
II.5. Pipelining Instruksi
Pipeline memiliki dua tahapan independen yaitu fetch dan
execution.
Tahap pertama, mengambil instruksi dan mem-buffer-kannya
Ketika tahap kedua bebas, tahapan pertama mengirimkan
mengirimkan instruksi yang dibufferkan.
Pada saat tahap kedua sedang mengeksekusi instruksi, tahap
pertama dapat mengambil dan membufferkan instruksi
berikutnya
Diharapkan terjadi penggandaan kecepatan eksekusi
Tetapi :
Umumnya waktu eksekusi lebih lama dibandingkan dengan
waktu pengambilan instruksi
Instruksi pencabangan bersyarat membuat alamat instruksi
berikutnya yang akan diambil tidak diketahui.
Menangani Pencabangan
Multiple stream : melakukan peniruan pipeline awal
dan membiarkan pipeline untuk mengambil kedua
instruksi dengan menggunakan dua buah stream.
Masalah :
Terdapat delay akibat persaingan mengakses register dan
memory
Instruksi pencabangan tambahan dapat masuk ke
pipeline sebelum keputusan pencabangan sebenarnya
dilakukan
Prefetch branch target : bila pencabangan bersyarat
telah diketahui, maka dilakukan prefetch (mendahului
pengambilan) target pencabangan
Loop buffer : diimplementasikan dalam bentuk
memory berukuran kecil yang berkecepatan tinggi yang
digunakan oleh tahapan pengambilan yangterbaru secara
berurutan
Branch prediction : memprediksi apakah pencabangan
dilaksanakan atau tidak.
Teknik-teknik yang dilakukan :
Predict never taken : mengasumsikan bahwa pencabangan
tidak akan dilakukan dan melanjutkan pengambilan
instruksi secara berurutan
Predict always taken : mengasumsikan akan dilakukan dan
selalu mengambil target pencabangan
Predict by opcode : mengasumsikan pencabangan akan
dilakukan untuk opcode pencabangan tertentu, dan tidak
dilakukan terhadap opcode yang lain.
Taken /not taken switch : dilakukan dengan
merekam sejarah instruksi pencabangan bersyarat
dalam suatu program. Tiap pencabangan
direfleksikan dalam sebuah bit yang nantinya
digunakan sebagai switch untuk mengambil
instruksinya.
Branch history table : dimplemantasikan dalam
cache memory kecil yang mencatat alamat
instruksi pencabangan, status pemakaian instruksi
dan instruksi target.
Delayed branch : instruksi pencabangan diatur
ulang dengan lebih lambat sampai terjadi
keseimbangan dengan instruksi yang lain.

You might also like