Friday, 3 June 2011

Stuktur 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.

Kateg ri- ateg ri ya : General purposes : a at ela sa a a er agai f gsi le e r gra , a tara lai erisi era ari se ara g c e, f gsi e gala ata . Data : a ya a at ig a a t e a g ata a ti a a at ig a a t al lasi a ala at era . Alamat : a at ig a a t e e gala ata terte t , a tara lai : Segment pointer : untuk enyi an ala at asis seg en. Register index : untuk enyi an ala at-ala at yang terindeks. Stack Pointer : merupakan register yang dedicated menunjuk ke agian teratas stack. Kode-kode Kondisi (flag) : untuk menyimpan kode-kode kondisi erupa it- it yang disetel C se agai asil operasi (positif, negatif, nol atau overflow)

Terdapat 4 register antara lain : 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.

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.

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

execution. Tahap pertama, mengambil instruksi dan mem-bufferkannya 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 :
waktu pengambilan instruksi Instruksi pencabangan bersyarat membuat alamat instruksi berikutnya yang akan diambil tidak diketahui.
Umumnya waktu eksekusi lebih lama dibandingkan dengan

Pipeline memiliki dua tahapan independen yaitu fetch dan

: melakukan peniruan pipeline awal dan membiarkan pipeline untuk mengambil kedua instruksi dengan menggunakan dua buah stream. Masalah :
Multi l str
Terdapat delay akibat persaingan mengakses register dan

memory Instruksi pencabangan tambahan dapat masuk ke pipeline sebelum keputusan pencabangan sebenarnya dilakukan

ch t r et : bila pencabangan bersyarat telah diketahui, maka dilakukan prefetch (mendahului pengambilan) target pencabangan
Pr fetch br

memory berukuran kecil yang berkecepatan tinggi yang digunakan oleh tahapan pengambilan yangterbaru secara berurutan Br ch prediction : memprediksi apakah pencabangan dilaksanakan atau tidak. Teknik-teknik yang dilakukan :
Predict never taken :

Loop buffer : diimplementasikan dalam bentuk

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.

No comments:

Post a Comment