Senin, 02 April 2012

Set instruksi dan Pemrograman komputer IAS


Komputer IAS memiliki 21 instruksi yang dikelompokkan menjadi 5 jenis yaitu transfer data, percabangan tanpa kondisi, percabangan dengan kondisi, aritmatika dan modifikasi alamat.
Berikut ini merupakan set instruksi IAS





Set instruksi diatas nantinya digunakan untuk memprogram komputer IAS, yang mana program adalah suatu urutan langkah-langkah yang melakukan sebuah operasi aritmatika atau logika dan memerlukan suatu set sinyal control yang berbeda. Yang akan mengolah setiap instruksi dari program adalah prosesor.  Prosessor baru akan bekerja jika ada instruksi berupa program yang mana program ini disimpan didalam memori.
Ada 3 bus utama yang menghubungkan antara prosessor, memori, dan I/O saat mengolah instruksi yaitu bus alamat, bus interkoneksi (data) dan bus control.



 ukuran register :




1.       Bus alamat
Bus alamat digunakan oleh prosessor untuk memberikan atau mengirimkan alamat yang akan diakses oleh prosesor baik itu alamat yang ada di I/O ataupun alamat yang ada di memori
2.       Bus Interkoneksi (Data)
Bus interkoneksi data ini digunakan sebagai jalur pentransferan data antara memori, prosesor dan I/O.
3.       Bus Kontrol
Bus control ini digunakan oleh prosesor untuk memberikan sinyal control kepada memori, baik itu untuk membaca (read) isi memori ataupun menulis/menyimpan (write) ke memori.

Pada saat pengeksekusian program, prosesor akan membaca instruksi dari memori kemudian memprosesnya sampai disimpan kembali kedalam memori, proses ini disebut dengan Instruction Cycle. Didalam instruction cycle ini ada terbagi lagi menjadi 2 proses yaitu :
1.      Fetch
Fetch merupakan proses membaca instruksi dari memori satu persatu setiap waktu. Fetch juga bisa dikatakan sebagai proses yang “membangunkan” setiap bagian yang akan digunakan dalam sebuah intruksi (accumulator, memori, dll).
2.      Execute
Execute merupakan kegiatan prosesor dalam memproses instruksi yang tadi telah dibaca pada proses fetch.
Instruction cycle ini dilakukan tiap 1 instruksi, jadi kesimpulannya jika didalam sebuah program terdapat 100 instruksi, berarti prosesor akan melakukan 100 kali instruction cycle.

Dibawah ini akan diberi contoh bagaimana proses instruction cycle dijalankan. Sebagai contoh sederhana, akan dibuat sebuah program yang akan menjumlahkan data yang ada dimemori alamat 0100 dengan data dialamat 0101 dan kemudian hasilnya disimpan di alamat 0102. Simpan program di alamat 0010. Untuk lebih memahami perjalanan instruksi silahkan lihat struktur detail komputer IAS.
Berikut ini adalah program nya :

            LOAD   M(0100)
            ADD     M(0101)
            STOR   M(0102)

Penjelasan program :
-          Instruksi LOAD M(0100), memindahkan data yang ada pada alamat 0100 ke AC (accumulator)
-          ADD M(0101), menjumlahkan data yang ada dialamat 0101 dengan data yang ada di AC, kemudian data tersebut disimpan di AC.
-          STOR M(0102), memindahkan data yang ada pada AC (hasil penjumlahan tadi) ke alamat 0102.

Berikut ini adalah urutan dari instruction cycle nya :
1.      Instruction cycle I  (LOAD M(0100))
·         Fetch
1.      PC (program counter) = 0010
Menginisialisasi alamat tempat penyimpanan instruksi/program
2.      PC --> MAR
Memindahkan data pada PC ke MAR, sehingga isi MAR sama dengan isi PC yaitu 0010
3.      M(MAR) --> MBR
Memindahkan data pada alamat 0010, ke MBR. Di MBR akan terjadi 2 pembagian instruksi yaitu instruksi kiri dan intruksi kanan terhadap program yang tersimpan pada sebuah alamat memori. Instruksi kiri merupakan instruksi dari bit 0-19 dan instruksi kanan dari bit 20-39.
4.      MBR(20:39) --> IBR
Memindahkan instruksi dari MBR (bit 20-39) ke IBR yang berguna sebagai buffer/penampung sementara. Hal ini dilakukan karena prosesor hanya bisa memproses 1 instruksi dalam 1 waktu.
5.      MBR (0:7) --> IR
Mengirimkan instruksi, ke IR yang nantinya akan diteruskan ke rangkaian control sehingga pada proses inilah proses “membangunkan” bagian-bagian yang akan terlibat dalam pemrosesan instruksi.
6.      MBR(8:19) --> MAR
Proses pengambilan data dari alamat memori (0100).

·         Execute
1.      M(0100) --> MBR
Mentransferkan nilai yang ada di memori 0100 ke MBR
2.      MBR --> AC
Memindahkan nilai dari MBR ke AC

2.      Insruction cycle II (ADD M(0101))
·         Fetch
1.      IBR (0:7) --> IR
Memindahkan instruksi ADD dari IBR ke IR
2.      IBR (8:19) --> MAR
Memindahkan alamat memori ke MAR
3.      PC = PC + 1
Increment data pada PC

·         Execute
1.      M(0101) --> MBR
2.      MBR + AC --> AC
Menjumlahkan data yang ada pada MBR dengan data yang ada di AC, hasilnya disimpan di AC

3.      Instruction cycle III (STOR(M0102))
·         Fetch
1.      PC --> MAR
2.      M(MAR) --> MBR
3.      MBR (0:7) --> IR
4.      MBR (8:19) --> MAR

·         Execute
1.      AC --> MBR
Memindahkan data dari AC ke MBR
2.      MBR --> M(MAR)
Memindahkan data dari MBR ke alamat memori sesuai dengan yang tersimpan di MAR. yang mana alamat tersebut adalah 0102.

0 komentar:

Posting Komentar