Anda di halaman 1dari 38

Struktur dan Fungsi CPU

I G.N. Wikranta Arsa, S.Kom., M.Cs.


Pokok Bahasan
• Organisasi processor
• Register
• Siklus instruksi
• Pipelining instruksi
Organisasi Processor
• Prosesor : IC yang mengontrol keseluruhan
jalannya sistem komputer dan digunakan sebagai
pusat atau otak dari komputer
• Central Processing Unit (CPU): Merupakan
komponen terpenting dari sistem komputer
• Komponen pengolah data berdasarkan instruksi
yang diberikan kepadanya
• Dalam mewujudkan fungsi dan tugasnya, CPU
tersusun atas beberapa komponen
Pekerjaan 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
Komponen CPU
• Arithmetic and Logic Unit (ALU)
• Control Unit
• Registers
• CPU Interconnections
Arithmetic and Logic Unit (ALU)
• Bertugas membentuk fungsi – fungsi pengolahan data
komputer.
• ALU sering disebut mesin bahasa (machine language)
karena bagian ini mengerjakan instruksi – instruksi bahasa
mesin yang diberikan padanya.
• Seperti istilahnya ALU terdiri dari dua bagian, yaitu unit
arithmetika dan unit logika boolean, yang masing –
masing memiliki spesifikasi tugas tersendiri.
Control Unit
• Bertugas mengontrol operasi CPU dan secara keselurahan
mengontrol komputer sehingga terjadi sinkronisasi kerja
antar komponen dalam menjalankan fungsi – fungsi
operasinya.
• Termasuk dalam tanggung jawab unit kontrol adalah
mengambil instruksi – instruksi dari memori utama dan
menentukan jenis instruksi tersebut.
Registers
• Media penyimpan internal CPU yang digunakan
saat proses pengolahan data.
• Memori ini bersifat sementara, biasanya
digunakan untuk menyimpan data saat diolah
ataupun data untuk pengolahan selanjutnya.
CPU Interconnections
• Sistem koneksi dan bus yang menghubungkan
komponen internal dan bus – bus eksternal CPU
• Komponen internal CPU yaitu ALU, unit kontrol
dan register – register.
• Komponen eksternal CPU : sistem lainnya, seperti
memori utama, piranti masukan/keluaran
Komponen Internal CPU
Struktur Detail Internal CPU
Fungsi CPU
• Menjalankan program – program yang disimpan dalam
memori utama dengan cara mengambil instruksi –
instruksi, menguji instruksi tersebut dan mengeksekusinya
satu persatu sesuai alur perintah.
• Pandangan paling sederhana proses eksekusi program
adalah dengan mengambil pengolahan instruksi yang
terdiri dari dua langkah, yaitu :
• operasi pembacaan instruksi (fetch)
• operasi pelaksanaan instruksi (execute)
Kenapa ada Program?
• Hardwired system (sistem yang instruksinya
dikendalikan oleh kombinasi hardware) Æ tidak
fleksibel
Kabel-kabel, jumper dsb Æ Rumit
• Dibuatlah general purpose hardware yang bisa
menerima control signal.
• Jenis control signal menentukan instruksi yang
akan dijalankan
Apakah Program itu?
• Serangkaian langkah-langkah (a sequence of
steps)
• Pada tiap langkah, dilakukan sebuah operasi
logika atau aritmetik
• Untuk tiap-tiap operasi, disediakan sebuah kode
instruksi yang unik.
• Satu kode instruksi mengandung satu set control
signal yang dapat dimengerti oleh hardware
Eksekusi Program Æ Siapa saja yang
terlibat?
• Control Unit di CPU Æ mengatur aliran program
• Memory Æ menyimpan baris-baris program yang
akan dieksekusi dan hasil outputnya
• Arithmetic and Logic Unit di CPU Æ untuk
melakukan operasi aritmetik dan logika jika
diperintahkan oleh program
Sekilas – Bagaimana Program disimpan di
memory
• Kira-kira beginilah format penyimpanan program di
memory:
Memory n-bit alamat
m-bit instruksi
Alamat Data
: x – bit kode instruksi
0000 1003
y – bit data
0001 3004
Data : bisa data angka
0002 5070 atau alamat
0003 4000
0000 1 003
4 Bit alamat, 1 bit kode instruksi, 3 bit data
Sekilas Kedua – Apa sih isinya Control
Unit?
• PC: Program Counter
Berisi alamat memory untuk mengambil instruksi
selanjutnya
• IR: Instruction Register
Menampung instruksi yang diambil dari memory
• AC: Accumulator
Penampung sementara untuk data hasil eksekusi
instruksi
Register
• Registers merupakan media penyimpanan yang
bersifat sementara.
General Purpose Register
• Digunakan untuk mode pengalamatan dan data.
• Akumulator ( aritmatika, Shift, Rotate)
• Base Register (Rotate,Shift, aritmatika)
• Counter Register ( Looping)
• Data Register (menyimpan alamat I/O device).
• Register Alamat: Digunakan untuk mode
pengalamatan
• Segment Register (Code Segment, Data Segment, Stack
Segment, Extra Segment) : Register yang menyimpan
alamat berbasis Segmen dimana mungkin terdapat
beberapa register misalnya satu register untuk system
operasi dan satu register untuk proses saat itu.
• Register Index (Stack Index, Data Index) : melakukan operasi
string dan sering digunakan untuk menulis dan membaca
ke atau dari memory.
• Stack Pointer : Register yang memiliki fungsi operasi Push &
Pop, Operasi push menambah bagian atas daftar,
menyembunyikan semua item yang sudah di stack, atau
menginisialisasi stack jika kosong. Operasi pop menghapus
item dari bagian atas daftar,
• Register Data Digunakan untuk menampung data
• Register Kode Status Kondisi (Flag) Kode yang
menggambarkan hasil operasi sebelumnya
Control dan Status Register
• Program Counter (PC) Berisi alamat
Register ini digunakan oleh unit control instruksi yang akan diambil
untuk mengontrol operasi cpu dan oleh
program system operasi untuk • Instruction Register (IR) Berisi alamat
mengontrol eksekusi program instruksi terakhir
• Memory Address Register (MAR) Berisi
alamat data atau instruksi dalam
memori
• Memori Buffer Register (MBR) Berisi
data yang dibaca dari memori atau
yang dituliskan ke memori
• Akumulator adalah register yang
dapat digunakan untuk aritmatika,
logis, pergeseran, memutar, atau
lainnya operasi serupa
• Program Status Word (PSW) Register
yang berisi bit status yang
menunjukkan kondisi CPU pada saat
bekerja.
Siklus Instruksi
Terdiri dari siklus fetch dan siklus eksekusi
Siklus Fetch - Eksekusi
• Pada setiap siklus instruksi, CPU awalnya akan
membaca instruksi dari memori
• Terdapat register dalam CPU yang berfungsi
mengawasi dan menghitung instruksi selanjutnya,
yang disebut Program Counter (PC)
• PC akan menambah satu hitungannya setiap kali
CPU membaca instruksi
Siklus Fetch - Eksekusi
• Instruksi – instruksi yang dibaca akan dimuat dalam
register instruksi (IR).
• Instruksi – instruksi ini dalam bentuk kode – kode binner
yang dapat diinterpretasikan oleh CPU kemudian
dilakukan aksi yang diperlukan
Siklus Iteruksi
• Mengambil/membaca
instruksi dan
mengeksekusi instruksi
• Setelah pengambilan
instruksi, instruksi
diperiksa untuk
menentukan apakah
diperlukan pengalamatan
tidak langsung atau tidak
• Setelah eksekusi ,
interrupt dapat diproses
sebelum
membaca/mengambil
instruksi berikutnya.
Execute Cycle
• Transfer data antara CPU dengan main memory
• Transfer data antara CPU dengan modul I/O
• Data processing (operasi aritmetik / logika terhadap data
oleh CPU)
• Control
• Perubahan urutan program (merubah isi PC) dg instruksi
JUMP
• Menghentikan program di tengah jalan dg insruksi HALT
• Kombinasi dari hal-hal diatas
Data Flow Fetch Cycle
• PC berisi alamat instruksi
berikutnya yang akan diambil
• Alamat ini akan dipindahkan
ke MAR dan ditempatkan pada
bus alamat
• Unit kontrol meminta
pembacaan memori, dan
hasilnya ditempatkan pada
bus data
• Hasil disalin ke MBR kemudian
dipindahkan ke IR
• PC bertambah 1, persiapan
untuk pengambilan
selanjutnya
Data Flow Indirect Cycle
• N bits yang ada dalam
Address bus disimpan
ke dalam MBR
• Kemudian dari MBR
dipindahkan ke dalam
MAR
• Selanjutnya unit control
membaca alamat yang
ada didalam memori
dari operan ke MBR
Data Flow Interrupt Cycle
• Isi dalam PC harus disimpan agar
dapat melanjutkan aktivitas
normal setelah interupsi
• Setelah itu, isi PC akan ditransfer
ke MBR
• Kemudian tersimpan kedalam
data bus
• Selanjutnya langsung ditulis
didalam memori yang akan
dimuat dalam MAR dari unit
control
• PC ini menjadi syarat dengan
alamat interrupt
• Sehingga masuk ke siklus
instruksi berikutnya dengan
mengambil instruksi yang sesuai
Aksi CPU
• CPU – Memori, perpindahan data dari CPU ke
memori dan sebaliknya.
• CPU –I/O, perpindahan data dari CPU ke modul I/O
dan sebaliknya.
• Pengolahan Data, CPU membentuk sejumlah
operasi aritmatika dan logika terhadap data.
• Kontrol, merupakan instruksi untuk pengontrolan
fungsi atau kerja. Misalnya instruksi pengubahan
urusan eksekusi.
Elemen Siklus Eksekusi
• Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau
menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya
melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya.
Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki
panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
• Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari
lokasi memorinya ke CPU.
• Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk
menentukan jenis operasi yang akan dibentuk dan operand yang akan
digunakan.
• Operand Address Calculation (OAC), yaitu menentukan alamat operand,
hal ini dilakukan apabila melibatkan referensi operand pada memori.
• Operand Fetch (OF), adalah mengambil operand dari memori atau dari
modul I/O.
• Data Operation (DO), yaitu membentuk operasi yang diperintahkan
dalam instruksi.
• Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori
Siklus Eksekusi
Pepeline
• suatu cara yang digunakan untuk melakukan
sejumlah kerja secara bersamaan tetapi dalam
tahap yang berbeda yang dialirkan secara kontinu
pada unit pemrosesan.
• Dengan cara ini, maka unit pemroses selalu
bekerja
Dekomposisi Instruksi Pipelining
• Fetch Instruction (FI) : membaca
instruksi berikutnya ke dalam buffer
• Decode instruction (DI) : menentukan
opcode dan ooperand specifier
• Calculate operand (CO) : menghitung
alamat efektif seluruh operand
sumber. Hal ini mungkin melibatkan
displacement, register indirect, atau
bentuk kalkulasi alamat lainnya
• Fetch operand (FO) : mengambil
semua operand dari memori.
Operand-operand yang berada di
register tidak perlu di ambil
• Execute instruktions (EI) : melakukan
operasi yang di indikasikan dan
menyimpan hasilnya.
• Write operand (WO) : menyimpan
hasilnya di dalam memori
Kelebihan
• Waktu siklus prosesor berkurang, sehingga
meningkatkan tingkat instruksi-isu dalam
kebanyakan kasus.
• Beberapa combinational sirkuit seperti penambah
atau pengganda dapat dibuat lebih cepat dengan
menambahkan lebih banyak sirkuit.
Kekurangan Pipeline
• Non-pipelined prosesor hanya menjalankan satu
instruksi pada satu waktu. Hal ini untuk mencegah
penundaan cabang (yang berlaku, setiap cabang
tertunda) dan masalah dengan serial instruksi
dieksekusi secara bersamaan. Akibatnya desain lebih
sederhana dan lebih murah untuk diproduksi.
• Instruksi latency di non-pipelined prosesor sedikit
lebih rendah daripada dalam pipelined setara
• Non-pipelined prosesor akan memiliki instruksi yang
stabil bandwidth. Kinerja prosesor yang pipelined
jauh lebih sulit untuk meramalkan dan dapat
bervariasi lebih luas di antara program yang berbeda.
Pipeline Hazard (Bahaya)
• Bahaya pipa terjadi ketika pipa, atau beberapa bagian
dari pipa, harus diperlambat karena kondisi tidak
mengizinkan eksekusi terus. Seperti sebuah pipa
diperlambat
• Resource Hazard = Bahaya terjadi ketika dua (atau
lebih) petunjuk yang telah di pipa membutuhkan
sumber daya yang sama
• Data hazard = Data bahaya terjadi ketika ada konflik
dalam akses lokasi operan
• Control hazard = dikenal sebagai cabang bahaya,
terjadi ketika pipa membuat keputusan yang salah
tentang prediksi cabang dan karena itu membawa
petunjuk ke pipa yang harus kemudian dibuang

Anda mungkin juga menyukai