Anda di halaman 1dari 22

STRUKTUR dan FUNGSI

CPU
NURDIANSAH
Tugas Perorangan
• Buat penambahan bilangan positif dan
negatif.
• Bilangan positif 10 buah.
• Bilangan negatif 10 buah.
• Setiap siswa tidak boleh sama.
• Materi slide OAK8
PERSYARATAN-PERSYARATAN CPU
1. FETCH INSTRUCTION/Mengambil Instruksi : CPU
harus membaca instruksi dari memori.
2. INTERPRET INSTRUCTION/Menerjemahkan Instruksi :
Instruksi harus didekade untuk menentukan aksi apa
yang diperlukan.
3. FETCH DATA/Mengambil Data : Eksekusi suatu
instruksi mungkin memerlukan pembacaan data dari
memori atau modul I/O.
4. PROSE DATA/Mengolah Data : Eksekusi suatu
instruksi mungkin memerlukan operasi aritmetika atau
logika terhadap data.
5. WRITE DATA/Menulis Data : Hasil eksekusi mungkin
memerlukan penulisan data ke memori atau modul I/O.
• Untuk memenuhi persyaratan-
persyaratan diatas maka :
1. CPU perlu menyimpan data untuk
sementara waktu.
2. CPU harus dapat mengingat lokasi
instruksi terakhir sehingga CPU akan
dapat mengambil instruksi berikutnya.
3. CPU perlu menyimpan instruksi dan data
untuk sementara waktu pada saat
instruksi sedang dieksekusi.
Gambar CPU dengan bus sistemnya

CPU
REGISTER

ALU

UNIT
KONTROL

Bus Bus Bus


Kontrol Data Alamat

Bus Sistem
Gambar Struktur Internal CPU
UNIT ALU
REGISTER-
STATUS FLAGS REGISTER

Bus CPU Internal


SHIFTER

COMPLEMENTER

LOGIKA
ARITMATIKA
dan UNIT
BOOLE KONTROL
ORGANISASI REGISTER
• Register pada CPU memiliki 2 fungsi :
1. User-Visible Register : Register ini
memungkinkan pemrogram bahasa mesin dan
bahasa assembler meminimalkan referensi
main memori dengan mengoptimasi
penggunaan register.
2. Control and Status Register : Register-register
ini digunakan oleh unit kontrol untuk
mengontrol operasi CPU dan oleh program
sistem operasi untuk mengontrol eksekusi
program.
SIKLUS INSTRUKSI
• Sebuah siklus instruksi meliputi subsiklus-
subsiklus yaitu :
1. FETCH : Membaca instruksi berikutnya dari
memori ke dalam CPU.
2. EXECUTE : Menginterpretasikan opcode dan
melakukan operas yang diindikasikan.
3. INTERRUPT : Apabila interrupt diaktifkan dan
interrupt telah terjadi, simpan status proses
saat itu dan layani interrupt.
Gambar Diagram Siklus Instruksi
TAK LANGSUNG TAK LANGSUNG

AMBIL AMBIL SIMPAN


INSTRUKSI OPERAND OPERAND

MINTA OPERAND
OPERAND GANDA HASIL
MINTA GANDA
INSTRUKSI
PENGDEKODEAN OPERASI PERIKSA
OPERASI DATA INTERRUPT
INSTRUKSI

PENGHITUNGAN PENGHITUNGAN
PENGHITUNGAN ALAMAT ALAMAT
INTERRUPT
ALAMAT OPERAND OPERAND
INSTRUKSI

INSTRUKSI UNTAI ATAU TAK ADA


BERIKUTNYA VECTOR INTERRUPT
GAMBAR ALIRAN DATA, SIKLUS PENGAMBILAN
BUS BUS BUS
CPU ALAMAT DATA KONTROL

PC MAR

MEMORI

UNIT
KONTROL

IR MBR

• Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
• PC berisi alamat instruksi berikutnya yang akan diambil. Alamat dipindahkan ke register memori alamat (MAR)
dan ditaruh di bus alamat.
• Unit kontrol meminta pembacaan memori, dan hasilnya disimpan di bus data dan disalin ke register memori buffer
(MBR) dan dipindahkan ke register instruksi (IR). Sementara itu pencacah program (PC) naiknilainya 1, sebagai
persiapan untuk pengambilan selanjutnya. Bila siklus pengambilan telah selesai, unit kontrol memeriksa is IR
untuk menentukan apakah IR berisi operand specifier yang menggunakan alamat tak langsung.
• Apabila berisi operand, maka akan dilakukan siklus tak langsung (indirect cycle).
GAMBAR ALIRAN DATA, SIKLUS TAK LANGSUNG
BUS BUS BUS
CPU ALAMAT DATA KONTROL

MAR

MEMORI

UNIT
KONTROL

MBR

• MBR yang berisi referensi alamat, dipindahkan ke MAR.


• Kemudian unit kontrol meminta pembacaan memori, agar mendapatkan
alamat operand yang diinginkan MBR.
GAMBAR ALIRAN DATA, SIKLUS INTERRUPT
BUS BUS BUS
CPU ALAMAT DATA KONTROL

PC MAR

MEMORI

UNIT
KONTROL

MBR

• Isi PC saat itu harus disimpan sehingga CPU dapat melanjutkan aktivitas normal setelah
terjadinya interrupt.
• Dengan demikian, isi PC dipindahkan ke MBR untuk kemudian dituliskan ke dalam memori.
• Lokasi memori khusus yang dicadangkan untuk keperluan ini dimuatkan ke MAR dari unit
kontrol. Lokasi ini berupa stack pointer.
• PC dimuatkan dengan alamat rutin interrupt. Akibatnya, siklus instruksi berikutnya akan mulai
melakukan pengambilan instruksi yang sesuai.
PIPELINING

• PIPELING instruksi : membuat sebuah


keluaran dari suatu instruksi menjadi input
bagi instruksi lainnya.
• Dengan pipeling ini dapat
menghubungkan dua atau lebih instruksi
menjadi satu.
KATA KUNCI
• FETCH INSTRUCTION (FI) : Membaca instruksi
berikutnya yang diharapkan ke dalam buffer.
• DECODE INSTRUCTION (DI) : Menentukan opcode dan
operand specifer.
• CALCULATE OPERAND (CO) : Menghitung alamat
efektif seluruh operand sumber.
• FETCH OPERAND (FO) : Mengambil semua operand
dari memori.
• EXECUTE INSTRUCTION (EI) : Melakukan operasi
yang diidentifikasikan dan menyimpan hasilnya bila ada.
Dilokasi operand tujuan yang telah ditentukan.
• Write Operand (WO) : Menyimpan hasilnya di dalam
memori.
6 TAHAP PIPELINE INSTRUCTION CPU
AMBIL
FI INSTRUKSI

DEKODE
DI INSTRUKSI

CALCULATE
CO OPERAND

YA PERCABANGAN
TAK BERSYARAT

TIDAK

AMBIL
FO OPERAND

EKSEKUSI
EI INSTRUKSI

UPDATE
PC TULIS
WO OPERAND

PIPE
KOSONG YA
PERCABANGAN
TIDAK
ATAU
INTERRUPT
Menangani Pencabangan
• Pendekatan yang berhubungan dengan
pencabangan bersyarat :
1. MULTIPLE STREAMS
2. PREFETCH BRANCH TARGET
3. LOOP BUFFER
4. BRANCH PREDICTION
5. DELAYED BRANCH
MULTIPLE STREAMS
• Terdapat beberapa masalah yang terjadi dalam
menggunakan pendekatan ini :
1. Pada multiple pipelines terdapat delay akibat adanya
persaingan untuk mengakses register dan memori.
2. Instruksi pencabangan tambahan mungkin masuk ke
pipeline (atau stream) sebelum pengambilan
keputusan pencabangan yang sebenarnya dilakukan.
Semua instruksi seperti itu memerlukan stream
tambahan.
• Walaupun terdapat kekurangan diatas, strategi ini
dapat meningkatkan kinerja.
• Contoh IBM 370/168 dan IBM 3033.
PREFETCH BRANCH TARGET
• Bila pencabangan bersyarat telah diketahui,
maka selain terdapat instruksi yang berada
setelah pencabangan dilakukan juga prefetch
terhadap target pencabangan itu.
• Kemudian target ini disimpan hingga instruksi
pencabangan selesai dieksekusi. Apabila
pencabangan dilakukan, maka target telah di
prefetch.
• Contoh IBM 360/91
LOOP BUFFER
• Loop buffer merupakan memori berukuran kecil
yang berkecepatan tinggi yang digunakan oleh
tahapan pengambilan instruksi pipeline dan
berisi n buah instruksi yang paling baru diambil
secara berurutan.
• Apabila pencabangan akan dilakukan, maka
pertama-tama perangkat keras memeriksa
apakah target pencabangan telah berada di
dalam buffer.
• Instruksi berikutnya diambil dari buffer.
BRANCH PREDICTION
• Digunakan untuk memprediksi apakah
suatu pencabangan akan dilaksanakan
atau tidak.
DELAYED BRANCH
• Kinerja pipeline dapat ditingkatkan dengan
cara pengaturan kembali instruksi secara
otomatis, sehingga instruksi pencabangan
terjadi lebih lambat dari apa yang
diinginkan.
TERIMA KASIH

Anda mungkin juga menyukai