Struktur Dan Fungsi CPU

Post on 18-Jun-2015

8.395 views 10 download

Transcript of Struktur Dan Fungsi CPU

Struktur dan Fungsi CPUII.1. Organisasi ProcessorOrganisasi Processor terdiri dari :ALU (Arithmatic and Logical Unit) : untuk melakukan komputasi atau pengolahan data aktualCu (Control Unit) : untuk mengontrol perpindahan data dan instruksi ke / dari CPU dan juga mengontrol operasi ALU.Register : memory internal CPU

Hal-hal yang dilakukan CPUFetch Instruction (Mengambil instruksi) : CPU membaca instruksi dari memoryInterpret 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/OProcess 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 RegisterOrganisasi 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 Register

Terdapat 4 register antara lain :Program Counter (PC) : pencacah program , berisi alamat instruksi berikutnya yang akan diambilInstruction 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 nolCarry : 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 aritmatikInterrupt Enable / Disable : Digunakan untuk mengijinkan / menolak interupsiSupervisor : Mengindikasikan CPU sedang mengeksekusi instruksi dalam mode supervisor atau user.

II.4. Siklus InstruksiSiklus Instruksi meliputi subsiklus-subsiklus :Fetch : membaca instruksi berikutnya dari memory ke dalam CPUExecute : Menginterpretasi opcode dan melakukan operasi yang diindikasikanInterrupt : Apabila interrupt diaktifkan dan telah terjadi, maka simpan status proses saat itu dan layani interrupt

II.5. Pipelining InstruksiPipeline memiliki dua tahapan independen yaitu fetch dan execution.Tahap pertama, mengambil instruksi dan mem-buffer-kannyaKetika tahap kedua bebas, tahapan pertama mengirimkan mengirimkan instruksi yang dibufferkan.Pada saat tahap kedua sedang mengeksekusi instruksi, tahap pertama dapat mengambil dan membufferkan instruksi berikutnyaDiharapkan terjadi penggandaan kecepatan eksekusiTetapi :

Umumnya waktu eksekusi lebih lama dibandingkan dengan waktu pengambilan instruksiInstruksi pencabangan bersyarat membuat alamat instruksi berikutnya yang akan diambil tidak diketahui.

Menangani PencabanganMultiple 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 memoryInstruksi 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 berurutanBranch 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 berurutanPredict always taken : mengasumsikan akan dilakukan dan selalu mengambil target pencabanganPredict 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.