Pertemuan IV Struktur dan Fungsi CPU (III)

Slides:



Advertisements
Presentasi serupa
PERTEMUAN II BUS-BUS SISTEM.
Advertisements

Struktur CPU Delta Ardy Prima, S.ST.
Organisasi dan Arsitektur Komputer
Struktur CPU.
Struktur CPU Organisasi Komputer TATA SUMITRA M.KOM HP
Sistem Input/output (I/O)
PERTEMUAN MINGGU KE-13 PIPELINE DAN RISC.
Organisasi Komputer : Struktur dan Fungsi Komputer 2
Mode Pengalamatan.
FUNGSI DAN KOMPONEN UTAMA CPU
PERTEMUAN MINGGU KE-13 PIPELINE DAN RISC OLEH SARI NY.
Pertemuan 3 Arsitektur Komputer II
© 2009 Fakultas Teknologi Informasi Universitas Budi Luhur Jl. Ciledug Raya Petukangan Utara Jakarta Selatan Website:
Organisasi dan Arsitektur Komputer
Struktur CPU By Serdiwansyah N. A..
Organisai dan arsitektur komputer
SISTEM KOMPUTER STRUKTUR CPU NI KETUT ESATI, S.Si.
BAB 3 Struktur CPU.
CPU (CENTRAL PROCESSING UNIT)
PERTEMUAN MINGGU KE-13 PIPELINE DAN RISC.
PERTEMUAN KE-2 PERKULIAHAN SISTEM OPERASI
ORGANISASI & ARSITEKTUR KOMPUTER 2
ORGANISASI & ARSITEKTUR KOMPUTER 2 STRUKTUR & FUNGSI CPU IBP WIDJA, MT
TEL 2112 Dasar Komputer & Pemograman Sistem Komputer
PIPELINE DAN PROSESOR PARALEL
PIPELINING INSTRUCTION
Reduced Instruction Set Computers
Organisasi dan arsitektur komputer
Sistem Operasi Pertemuan 6.
Instruksi dalam CPU.
Sistem Operasi UPN Veteran Surabaya 2012.
Sistem Input/output (I/O)
Arsitektur & Organisasi Komputer BAB IIi STRUKTUR CPU Oleh : Bambang Supeno, ST., MT. Sep-17 Arsitektur & Organisasi Komputer.
Struktur Sistem Komputer
Pengantar teknologi informasi .::Prosesor dan memori::.
PIPELINE DAN PROSESOR PARALEL
Komponen CPU (2) ALU,I/O Interconnection & Interupsi
Struktur dan Fungsi CPU (II)
Pertemuan 4 STRUKTUR CPU Author: LINDA NORHAN, ST.
MODE PENGALAMATAN DAN SET INSTRUKSI
CPU (CENTRAL PROCESSING UNIT)
Struktur Sistem Komputer
Struktur CPU.
Pertemuan 2 Organisasi Komputer II
12. Teknologi Pipeline By Serdiwansyah N. A..
Pengantar teknologi informasi .::Prosesor dan memori::.
ORGANISASI PROSESSOR, REGISTER DAN SIKLUS INSTRUKSI
Pertemuan 12 (PIPELINING)
Abdul Wahid STRUKTUR CPU JURUSAN TEKNIK INFORMATIKA
Reduced Instruction Set Computers
Stallings W., Organisasi dan Arsitektur Komputer, Prentice Hall, 1996
Struktur CPU PERTEMUAN 3 Bambang Irawan S.Kom;M.Kom.
CPU (CENTRAL PROCESSING UNIT)
PENGANTAR TEKNOLOGI INFORMASI
PERTEMUAN MINGGU KE-11 PIPELINE DAN RISC.
ORGANISASI & ARSITEKTUR KOMPUTER
PERTEMUAN BUS-BUS SISTEM.
Pertemuan ke - 6 Organisasi Komputer
Organisasi dan Arsitektur Komputer
Pengantar Teknik Elektro
Pertemuan ke - 5 Struktur CPU
ARSITEKTUR & ORGANISASI KOMPUTER
KOMPONEN CPU(1) Register & Control Unit
Pertemuan ke 3 Struktur CPU
Struktur CPU.
Struktur CPU.
Universitas Trunojoyo
CPU (CENTRAL PROCESSING UNIT)
PERTEMUAN MINGGU KE-13 PIPELINE DAN RISC.
Struktur CPU.
Transcript presentasi:

Pertemuan IV Struktur dan Fungsi CPU (III) Organisasi Komputer II STMIK – AUB SURAKARTA

Siklus Instruksi Masih ingat apa saja? Fetch Execute Interrupt Masih ada lagi?

Sub-siklus Instruksi Fetch : membaca instruksi berikutnya dari memori ke dalam CPU Execute : menginterpretasikan opcode dan melakukan operasi yang diindikasikan Interrupt : Apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interrupt.

(Buka kembali Orkom 1 – Mode Pengalamatan – Indirect) Siklus Tak Langsung Eksekusi sebuah instruksi dapat melibatkan sebuah operand atau lebih di dalam memori, yang masing-masing memori memerlukan akses memori. Pengambilan alamat-alamat yang tak langsung dapat dianggap sebagai sebuah subsiklus instruksi. (Buka kembali Orkom 1 – Mode Pengalamatan – Indirect)

Siklus Instruksi

Diagram Status Siklus Instruksi

Aliran Data Siklus Pengambilan (Instruction Fetch) Urutan kejadian selama siklus instruksi tergantung pada rancangan CPU. Umumnya : Sebuah komputer menggunakan register memori alamat (MAR), register memori buffer (MBR), pencacah program (PC) dan register instruksi (IR).

Aliran Data Siklus Pengambilan (Instruction Fetch) Prosesnya: Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori. PC berisi alamat instruksi berikutnya yang akan diambil. Alamat ini akan dipindahkan ke MAR dan ditaruh di bus alamat. Unit kontrol meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke MBR dan kemudian dipindahkan ke IR. PC naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya.

Aliran Data Siklus Pengambilan (Instruction Fetch) Selanjutnya: Siklus selesai, unit kontrol memeriksa isi IR untuk menentukan apakah IR berisi operand specifier yang menggunakan pengalamatan tak langsung. Apabila pengalamatan tak langsung, maka siklus tak langsung akan dijalankan.

Aliran Data Siklus Tak Langsung N bit paling kanan pada MBR, yang berisi referensi alamat, dipindahkan ke MAR. Unit kontrol meminta pembacaan memori, agar mendapatkan alamat operand yang diinginkan ke dalam MBR.

Aliran Data Siklus Execute Siklus pengambilan dan siklus tak langsung cukup sederhana dan dapat diramalkan. Siklus instruksi (instruction cycle) mengambil banyak bentuk karena bentuk bergantung pada bermacam-macam instruksi mesin yang terdapat di dalam IR. Siklus meliputi pemindahan data di antara register-register, pembacaan atau penulisan dari memori, I/O, dan atau penggunaan ALU.

Aliran Data Siklus Interupsi Isi PC saat itu harus disimpan sehingga CPU dapat melanjutkan aktivitas normal setelah terjadinya interrupt. Proses : Isi PC dipindahkan ke MBR untuk 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 mengambil instruksi yang sesuai.

Prefetch Siklus fetch mengakses memori utama Siklus eksekusi tidak mengakses main memory Pada saat CPU dapat mengambil instruksi berikutnya selama eksekusi sebuah instruksi dijalankan disebut instruction prefetch

Dari adanya siklus prefetch, muncullah ‘PIPELINING’

Strategi Pipelining Input baru akan diterima pada sebuah sisi sebelum input yang diterima sebelumnya keluar sebagai output di sisi lainnya. Pendekatan : Pipelining instruksi mirip dengan penggunaan rangkaian perakitan pada pabrik. Rangkaian perakitan memanfaatkan kelebihan yang didapat dari fakta bahwa suatu produk diperoleh dengan melalui berbagai tahapan produksi. Dengan menaruh proses produksi di luar rangkaian perakitan, maka produk yang berada di berbagai tahapan dapat bekerja secara bersamaan.

Pipeline instruksi dua tahap

Pipeline? Pengolahan Instruksi Pengambilan instruksi Pengeksekusian instruksi Terdapat waktu yang dibutuhkan selama proses eksekusi sebuah instruksi pada saat memori sedang tidak diakses. Waktu ini dapat digunakan untuk mengambil instruksi berikutnya secara paralel (bersamaan) dengan eksekusi instruksi saat itu.

Tahapan Pipeline Tahapannya independen Berapa tahap? Tiap tahapan bekerja sendiri Kedua bekerja dalam waktu yang bersamaan. Berapa tahap?

2 Tahapan Pipeline Tahapan pertama mengambil instruksi dan mem-buffer-kannya Ketika tahapan kedua bebas, tahapan pertama mengirimkan instruksi yang di-buffer-kan tersebut. Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membufferkan instruksi berikutnya. Proses ini disebut instruction prefetch atau fetch overlap.

Efek Pipeline Mempercepat eksekusi instruksi Apabila tahapan pengambilan dan eksekusi instruksi memerlukan waktu yang sama, maka siklus instruksi akan berkurang menjadi separuhnya.

Penggandaan kecepatan eksekusi tidak akan terjadi apabila beberapa hal terjadi. Apa alasannya? Bagaimana solusinya?

Alasan? Umumnya waktu eksekusi akan lebih lama dibandingkan dengan pengambilan instruksi. Kenapa? Eksekusi ini akan meliputi pembacaan dan pemyimpanan operand serta kinerja sejumlah operasi sehingga tahapan pengambilan mungkin perlu menunggu beberapa saat sebelum mengosongkan buffer-nya. Instruksi percabangan bersyarat akan membuat alamat instruksi berikutnya yang akan diambil tidak diketahui. Tahapan pengambilan harus menunggu sampai menerima alamat instruksi berikutnya dari tahapan eksekusi. Dengan demikian tahap eksekusi harus menunggu pada saat fetch.

Solusi Kerugian waktu yang diakibatkan tahapan kedua dapat dikurangi dengan jalan : Menebak = Prediksi

Aturan Prediksi Instruksi percabangan bersyarat dikirimkan dari tahapan pengambilan ke tahapan eksekusi, tahapan pengambilan mengambil instruksi selanjutnya di dalam memori setelah terjadi instruksi percabangan tersebut. Apabila percabangan tidak dilakukan, maka tidak akan terdapat waktu yang hilang. Apabila percabangan dilakukan, instruksi yang diambil harus dibuang dan instruksi yang baru harus diambil

Kedua faktor tersebut mengurangi efektifitas pipelining dua tahap, namun terjadi juga beberapa percepatan. Untuk memperoleh percepatan lebih lanjut, pipelining harus memiliki lebih banyak tahapan

Pipelining Fetch instruction (FI) Decode instruction (DO) Membaca instruksi berikutnya ke dalam buffer Decode instruction (DO) Menentukan opcode dan operand specifier Calculate operands (CO) Menghitung alamat efektif operand sumber. Fetch operands (FO) Mengambil semua operand dari memori Execute instructions (EI) Melakukan operasi yang diindikasikan Write result (WO) Menyimpan hasilnya ke dalam memori PIPELINING  Overlap these operations

Timing of Pipelining

Faktor penghambat peningkatan kinerja Keenam tahapan memiliki durasi waktu yang tidak sama, terjadi waktu tunggu pada beberapa tahapan pipeline. Instruksi percabangan bersyarat yang dapat menggagalkan beberapa pengambilan instruksi

Percabangan dalam Pipeline

Percabangan dalam Pipeline Instruksi 3 adalah percabangan bersyarat instruksi 15 Sampai saat instruksi selesai dieksekusi, tidak ada cara untuk mengetahui instruksi mana yang akan terjadi kemudian. Instruksi 4 sampai 14 tidak dilakukan eksekusi sehingga data harus dibersihkan dari jalurnya Eksekusi dilanjutkan saat percabangan instruksi 15 sudah dilakukan.

Six Stage Instruction Pipeline

Penanganan Percabangan Untuk apa? Menjamin terjadinya aliran instruksi yang stabil. Kestabilan akan tergangggu saat instruksi mengalami percabangan karena belum bisa ditentukan tujuan percabangan tersebut Beberapa metode dirancang untuk mengatasi hal tersebut.

Teknik Pendekatan Multiple Streams Prefetch branch target Loop buffer Branch prediction Delayed branch

Multiple Streams Kedua instruksi percabangan diambil dengan dua buah streams. Kelemahan: Adanya persaingan dalam mengakses register dan memori untuk dimasukkan dalam pipeline. Bila dalam percabangan tersebut terdapat percabangan lagi, tidak mampu ditangani oleh dua stream. Walaupun terdapat kelemahan tapi terbukti meningkatkan kinerja pipelining Teknik ini diterapkan pada IBM 370/168 dan IBM 3033

Prefetch branch target Apabila percabangan bersyarat telah diketahui Prosesnya: Dilakukan pengambilan awal (prefetch) terhadap instruksi setelah percabangan dan target percabangan Diterapkan pada IBM 360/91 Masalah: Diperlukan buffer dan register untuk prefetch

Loop Buffer Apabila terdapat percabangan maka perangkat keras memeriksa apakah target percabangan telah ada dalam buffer, bila telah ada maka instruksi berikutnya diambil dari buffer. Perbedaan dengan prefetch adalah pada loop buffer akan membuffer instruksi ke depan dalam jumlah yang banyak, sehingga bila target tidak berjauhan lokasinya maka secara otomatis telah terbuffer. Terkesan teknik ini seperti cache memori, namun terdapat perbedaan karena loop buffer masih mempertahankan urutan instruksi yang diambilnya.

Branch Prediction Penganalisaan sejarah instruksi, kenapa? Instruksi komputer seringkali terjadi berulang Sehingga: Teknik prediksi ini juga diterapkan dalam pengambilan instruksi pada cache memory. Diperlukan algoritma khusus untuk melakukan prediksi tersebut. Patokan memprediksi target percabangan Penganalisaan eksekusi-eksekusi yang telah terjadi dan aspek lokalitas Aspek lokalitas memori adalah kecenderungan penyimpanan instruksi yang berhubungan dalam tempat yang berdekatan

Delayed Branch Eksekusi pada tahapan pipeline yang melibatkan percabangan akan dilakukan penundaan proses beberapa saat sampai didapatkan hasil percabangan. Namun tahapan pipelining lainnya dapat berjalan seiring penundaan tersebut Teknik penundaan ini disebut dengan menggunakan instruksi NOOP