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.
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
|
Siklus-siklus Fetch dan
Eksekusi
Awal siklus instruksi
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
|
-
|
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.
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 :
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.
|
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.
|
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 :
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.
|
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