Selasa, 11 Juni 2013

jelaskan bagaimana cara pemrosesan eksekusi instruksi

Komponen-Komponen Komputer 
Rancangan arsitektur Von Nouman didasarkan pada 3 konsep utama yaitu diantaranya :
-Data dan instruksi-instruksi disimpan di memori baca tulis tunggal
-Memori dapat dialamati dengan lokasi, tidak tergantung ada jenis data yang berada didalamnya
-Eksekusi terjadi dengan cara sekuensial dari instruksi yang satu ke instruksi berikutnya.

Fungsi Komputer
-Fungsi dasarnya dari komputer adalah mengeksekusi program.
-CPU melakukan tugas ini dengan cara mengeksekusi suatu program yang ada.
-Proses eksekusi program pda CPU ini adalah dengan cara mengambil pengolahan instruksi yang terdiri dari dua langkah diantaranya :
1.Instruksi baca (fetch) CPU dari memori
2.CPU mengeksekusi setiap instruksi
-Eksekusi program, yang terdiri dari :
Proses pengulangan fetch
Eksekusi instruksi
-Eksekusi sebuah instruksi terdiri dari sejumlah langkah. Pada tahap ini pengolahan instruksi dibagi menjadi dua tahap, yaitu :
1.Fetch
2.Eksekusi.
Fetch instruksi adalah operasi umum bagi setiap instruksi dan terdiri dari pembacaan instruksi dari suatu lokasi di dalam memori. Sedangkan Eksekusi instruksi dapat melibatkan sejumlah operasi dan tergantung dari sifat-sifat instruksi.

M(X) = isi lokasi memori yang alamatnya X
(X:Y) = bit X sampai dengan Y
Gambar1. Flowchart eksekusi instruksi yang dilakukan oleh Control Unit
Pada dasarnya, eksekusi program akan terhenti apabila terjadi 3 kemungkinan diantaranya :
1.Mesin dimatikan
2.Terjadi kesalahan
3.Terdapat instruksi program yang mengentikan komputer

Gambar2. Siklus Instruksi Dasar
Siklus-siklus Fetch dan Eksekusi 
Awal siklus instruksi
-CPU membawa instruksi dari memori
-PC (Program Counter) dipakai untuk mengawasi instruksi yang akan dibaca selanjutnya.
-CPU selalu menambahkan PC setiap kali membaca instruksi
-Instruksi yang dibaca dimuat ke dalam register di dalam CPU yaitu IR (Instruction Register)
CPU melakukan 4 kegiatan yaitu diantaranya :
1.CPU – Memori : Data dapat dipindahkan dari CPU ke memori atau dari memori ke CPU
2.CPU – I/O : Data dapat dipindahkan ke atau dari dunia luar dengan pemindahan antara CPU dan modul I/O
3.Pengolahan Data : CPU dapat membentuk sejumlah operasi aritmatik atau logic terhadap data
4.Control : Sebuah instruksi dapat mengubah urutan eksekusi
Diperlukan 3 buah instruksi (Fetch dan Eksekusi)
1.PC berisi 300 (alamat instruksi pertama)
Alamat ini dimuat ke dalam IR (melibatkan MAR dan MBR)
2.4 bit pertama IR mengindikasikan AC akan dimuat
12 bit sisanya menentukan alamat, yaitu 940
3.PC dinaikkan nilainya dan instruksi berikutnya akan diambil
4.Isi AC lama dan isi lokasi 941 ditambahkan
Hasilnya disimpan di dalam AC
5.PC dinaikkan nilainya, dan instruksi berikutnya akan diambil
6.Isi AC akan disimpan pada lokasi 941
Instruksi PDP-11 yang diungkapkan secara simbolik sebagai ADD B, A menyimpan jumlah isi lokasi memori B dan A ke dalam lokasi memori A. Terjadi suatu siklus instruksi tunggal dengan langkah-langkah sebagai berikut :
1.Mengambil (fetch) instruksi ADD
2.Membaca isi lokasi memori A ke dalam CPU
3.Membaca isi lokasi memori B ke dalam CPU
Agar isi A tidak hilang, CPU harus memiliki sedikitnya dua buah register untuk menyimpan nilai-nilai memori.
4.Menambahkan kedua nilai itu
5.Menuliskan hasilnya dari CPU ke lokasi memori A

Gambar3. Diagram keadaan siklus instruksi
-Instruction Address Calculation (iac)
Menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bil panjang setiap instruksi adalah 16 bit dan memori diorganisasikan sebagai byte-byte yang secara individual dapat dialamati dengan panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
-Instruction Fetch (if)
Membaca instruksi dari lokasi memori ke dalam CPU
-Instruction Operation Decoding (iod)
Menganalisis instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan
-Operand Address Calculation (oac)
Bila operasi melibatkan referensi ke operand di dalam memori atau dapat diperoleh melalui I/O, maka tentukan alamat operand
-Operand Fetch (of)
Ambil operand dari memori dan baca operand itu dari I/O
-Data Operation (do)
Bentuk operasi yang ditunjukkan di dalam instruksi
-Operand Store (os)
Tuliskan hasilnya ke dalam memori atau keluarkan ke I/O
Secara virtual semua komputer menyediakan mekanisme yang membuat modul-modul lainnya (I/O, memori) dapat menginterupsi pengolahan normal CU.
INTERUPSI
ProgramDibangkitkan dengan beberapa kondisi yang terjadi sebagai hasil dari suatu eksekusi instruksi, seperti arithmetic overflow, pembagian dengan nol, usaha mengeksekusi instruksi mesin yang illegal dan referensi ke luar memori pengguna yang diperbolehkan.
TimerDibangkitkan oleh timer di dalam processor. Memungkinkan sistem operasi menjalankan fungsi-fungsi tertentu secara regular.
I/ODibangkitkan oleh I/O controller. Untuk memberi signal penyelesaian normal suatu operasi atau memberi signal berbagai kondisi error.
Hardware failureDibangkitkan oleh kegagalan seperti kegagalan daya atau memory parity error
Interupsi disediakan terutama sebagai cara untuk meningkatkan efisiensi pengolahan, karena sebagian besar perankat eksternal jauh lebih lambar dibandingkan prosesor.
Misal:
Bahwa processor sedang melakukan pemindahan data ke printer dengan menggunakan pola siklus instruksi seperti pada gambar2.
Setiap kali setelah melakukan operasi penulisan, CPU akan berhenti dan berada dalam keadaan idle sampai printer menerima seluruh data. Lamanya berhenti dapat ratusan bahkan ribuah siklus instruksi yang tidak melibatkan memori.
Jelas hal ini sangat menyianyiakan kemampuan processor. Dengan adanya interrupt, processor dapat diperintahkan untuk mengeksekusi instruksi-instruksi lainnya pada saat operasi-operasi I/O sedang dilaksanakan.
Gambar4. Program-program pengguna membentuk sejumlah pemanggil WRITE yang berada diantara pengolahan. Segmen 1, 2, 3 merupakan urutan instruksi yang tidak melibatkan I/O.
Panggilan WRITE adalah panggilan terhadap program I/O yang merupakan utilitas sistem dan akan membentuk operasi-operasi actual.
Program I/O terdiri dari tiga bagian :
-Rangkaian instruksi (label 4) untuk disiapkan operasi I/O actual.
Meliputi penyalinan data yang akan di-output-kan ke dalam buffer khusus
-Perintah I/O actual
Tanpa menggunakan interrupt, sekali perintah ini dikeluarkan, maka program harus menunggu perangkat I/O membentuk fungsi yang diminta. Program dapat menunggu dengan cara membentuk operasi test secara berulang untuk menentukan apakah operasi I/O telah dilaksanakan.
-Rangkaian instruksi (label 5), untuk menyelesaikan operasi
Urutan instruksi ini dapat meliputi penyetelan suatu flag yang menandakan berhasil atau gagalnya operasi.

Gambar4. Aliran program kontrol, tanpa atau dengan interrupt
Interrupt dan Siklus Instruksi
-Dengan memakai interrupt, processor dapat dipakai dalam mengeksekusi instruksi-instruksi lainnya operasi I/O sedang dilaksanakan.
-Setelah beberapa instruksi dieksekusi, kontrol mengembalikannya ke program pengguna.
-Sementara itu, perangkat eksternal berada dalam keadaan sibuk menerima data dari memori komputer dan mencetak data.
-Operasi I/O dilakukan secara konkuren dengan eksekusi instruksi-instruksi pada program pengguna.
-Dari sudut pandang program pengguna, interrupt adalah sebuah interupsi terhadap rangkaian eksekusi normal. Bila pengolahan interrupt selesai, maka eksekusi kembali dilakukan.

Gambar5. Siklus instruksi dengan interrupt
Multiple Interrupt 
Misalnya :
Sebuah program dapat menerima data dari suatu saluran komunikasi dan mencetak hasilnya.
Printer akan menghasilkan sebuah interrupt setiap kali menyelesaikan sebuah operasi cetak.
Pengontrol saluran komunikasi akan menghasilkan sebuah interrupt setiap kali satu satuan data tiba.
Dua Pendekatan pada interrupt jamak :
1.Tidak menginzinkan terjadi interrupt lain pada saat suatu interrupt sedang diproses.
Artinya processor dapat dan akan mengabaikan signal interrupt request. Interrupt tersebut akan ditangguhkan dahulu dan diperiksa oleh prosesor setelah prosesor mengizinkan lagi terjadi interrupt (interrupt handler).
Kekurangannya yaitu tidak memperhitungkan prioritas atau kebutuhan waktu kritis.
2.Mendefinisikan prioritas bagi interrupt dan mengizinkan interrupt berprioritas tinggi menyebabkan interrupt handler yang berprioritas lebih rendah untuk menginterupsi dirinya.

Gambar6. Transfer pengendalian dengan multiple interrupt
Fungsi I/O
-Sebuah modul I/O dapat saling bertukar data secara langsung dengan CPU
-CPU dapat membaca data dari modul I/O atau menulis data ke modul I/O
Sumber : http://blog.student.uny.ac.id/yunian/2011/06/17/siklus-pengolahan-instruksi/

0 komentar:

Posting Komentar