Welcome

Gue bersyukur jika isi Blog ini bisa memberikan manfaat buat kwan2 semua ..

Senin, 10 Juni 2013

Cara Pemrosesan Eksekusi Instruksi


Proses jalannya program berdasarkan eksekusi instruksi
Saat instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di MAA (melalui Input-storage), apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage.
Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register).
Jika instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Akumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan keoutput-devices.

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.
Description: http://blog.student.uny.ac.id/yunian/files/2011/06/ndak1.jpg
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
Description: http://blog.student.uny.ac.id/yunian/files/2011/06/ins2.jpg
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
Description: http://blog.student.uny.ac.id/yunian/files/2011/06/457.jpg
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
Program
Dibangkitkan 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.
Timer
Dibangkitkan oleh timer di dalam processor. Memungkinkan sistem operasi menjalankan fungsi-fungsi tertentu secara regular.
I/O
Dibangkitkan oleh I/O controller. Untuk memberi signal penyelesaian normal suatu operasi atau memberi signal berbagai kondisi error.
Hardware failure
Dibangkitkan 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.
Description: http://blog.student.uny.ac.id/yunian/files/2011/06/856.jpg
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.
Description: http://blog.student.uny.ac.id/yunian/files/2011/06/577.jpg
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.
Description: http://blog.student.uny.ac.id/yunian/files/2011/06/325.jpg
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://sadchalis15.wordpress.com/tag/proses-eksekusi-instruksi/

Tidak ada komentar:

Posting Komentar