Kamis, 30 April 2015

Mode dan Format Pengalamatan Set Intruksi



Telkom School Purwokerto
Karakteristik Instruksi Mesin
  • Instruksi mesin (machine instruction) yang dieksekusi membentuk suatu operasi dan berbagai macam fungsi CPU.
  • Kumpulan fungsi yang dapat dieksekusi CPU disebut set instruksi (instruction set) CPU.
  • Mempelajari karakteristik instruksi mesin, meliputi :
    • Elemen-elemen instruksi mesin
    • Representasi instruksinya
    • Jenis-jenis instruksi
    • Penggunaan alamat
    • Rancangan set instruksi
Elemen Instruksi Mesin
Untuk dapat dieksekusi suatu instruksi harus berisi elemen informasi yang diperlukan CPU secara lengkap dan jelas, antara lain :
  1. Operation code (Op code)
    Menspesifikasi operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
  2. Source Operand reference
    Operasi dapat berasal dari lebih satu sumber. Operand adalah input operasi.
  3. Result Operand reference
    Merupakan hasil atau keluaran operasi
  4. Next Instruction reference
    Elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi.
Operand dari Operasi
Melihat dari sumbernya, operand suatu operasi dapat berada di salah satu dari ketiga daerah berikut ini :
  • Memori utama atau memori virtual
  • Register CPU
  • Perangkat I/O
Representasi Instruksi
  • Instruksi komputer direpresentasikan oleh sekumpulan bit. Instruksi dibagi menjadi beberapa field.
  • Field-field ini diisi oleh elemen-elemen instruksi yang membawa informasi bagi operasi CPU.
  • Layout instruksi dikenal dengan format instruksi.
Format Instruksi
  • Kode operasi (op code) direpresentasikan dengan singkatan-singkatan, yang disebut mnemonic.
  • Mnemonic mengindikasikan suatu operasi bagi CPU.
  • Contoh mnemonic adalah :
    • ADD = penambahan
    • SUB = substract (pengurangan)
    • LOAD = muatkan data ke memori
Contoh representasi operand secara simbolik :
  • ADD X, Y artinya tambahkan nilai yang berada pada lokasi Y ke isi register X, dan simpan hasilnya di register X.
  • Programmer dapat menuliskan program bahasa mesin dalam bentuk simbolik.
  • Setiap op code simbolik memiliki representasi biner yang tetap dan programmer dapat menetapkan lokasi masing-masing operand.
Jenis - Jenis Instruksi
Contoh suatu ekspresi bilangan :
X = X + Y;
X dan Y berkorespondensi dengan lokasi 513 dan 514.

Pernyataan dalam bahasa tingkat tinggi tersebut menginstruksikan komputer untuk melakukan langkah berikut ini :
  • Muatkan sebuah register dengan isi lokasi memori 513.
  • Tambahkan isi lokasi memori 514 ke register.
  • Simpan isi register ke lokasi memori 513.
Korelasi
  • Terlihat hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa mesin.
  • Dalam bahasa tingkat tinggi, operasi dinyatakan dalam bentuk aljabar singkat menggunakan variabel.
  • Dalam bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan antar register.
Jenis-Jenis Instruksi
  • Pengolahan data (data processing),
    meliputi operasi-operasi aritmetika dan logika. Operasi aritmetika memiliki kemampuan komputasi untuk pengolahan data numerik. Sedangkan instruksi logika beroperasi terhadap bit-bit word sebagai bit, bukannya sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk pengolahan data lain.
  • Perpindahan data(data movement),
    berisi instruksi perpindahan data antar register maupun modul I/O. Untuk dapat diolah oleh CPU maka diperlukan instruksi-instruksi yang bertugas memindahkan data operand yang diperlukan.
  • Penyimpanan data (data storage),
    berisi instruksi-instruksi penyimpanan ke memori. Instruksi penyimpanan sangat penting dalam operasi komputasi, karena data tersebut akan digunakan untuk operasi berikutnya, minimal untuk ditampilkan pada layar harus diadakan penyimpanan walaupun sementara.
  • Kontrol aliran program (program flow control),
    berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.
Jumlah Alamat
  • Jumlah register atau alamat yang digunakan dalam operasi CPU tergantung format operasi masing-masing CPU.
  • Ada format operasi yang menggunakan 3, 2, 1 dan 0 register.
  • Umumnya yang digunakan adalah 2 register dalam suatu operasi. Desain CPU saat ini telah menggunakan 3 alamat dalam suatu operasi, terutama dalam MIPS (Million Instruction per Second).
  • Alamat per instruksi yang lebih sedikit akan membuat instruksi lebih sederhana dan pendek, tetapi lebih sulit mengimplementasikan fungsi-fungsi yang kita inginkan.
  • Karena instruksi CPU sederhana maka rancangan CPU juga lebih sederhana.
  • Jumlah bit dan referensi per instruksi lebih sedikit sehingga fetch dan eksekusi lebih cepat.
  • Jumlah instruksi per program biasanya jauh lebih banyak.
  • Pada jumlah alamat per instruksi banyak, jumlah bit dan referensi instruksi lebih banyak sehingga waktu eksekusi lebih lama.
  • Diperlukan register CPU yang banyak, namun operasi antar register lebih cepat.
  • Lebih mudah mengimplementasikan fungsi-fungsi yang kita inginkan.
  • Jumlah instruksi per program jauh lebih sedikit.
  • Untuk lebih jelas perhatikan contoh instruksi-instruksi dengan jumlah register berbeda untuk menyelesaikan persoalan yang sama.
  • Contoh penggunaan set instruksi dengan alamat 1, 2, dan 3 untuk menyelesaikan operasi hitungan.
Y = (A - B) / (C + D * E)


Saya akan mencoba menjelaskan ketiga instruksi di atas.
Untuk instruksi 3 alamat :
  • Pertama, A - B lalu disimpan di Y.
  • Lalu kita mengalikan D dan E lalu disimpan di register baru yaitu T.
  • T tersebut lalu ditambahkan dengan register C dan disimpan di register T.
  • Lalu register Y, yaitu hasil dari A - B tadi dibagi dengan register T lalu disimpan di register Y.
  • Bisa kita lihat,untuk instruksi 3 alamat, setiap instruksi terdiri dari 3 register.
Instruksi 2 alamat :
  • Pertama register A dipindahkan ke Y.
  • Register Y dikurangi dengan register B dan disimpan di register Y. A - B sudah didapatkan, simpan di register Y.
  • Selanjutnya register D dipindahkan ke register T, lalu register T dikalikan dengan register E dan disimpan di register T. Singkatnya, D*E itu sama dengan T*E dan disimpan di register T, cara ini digunakan karena kita memakain instruksi 2 alamat.
  • Lalu register T ditambahkan dengan register C dan disimpan di register T.
  • (C + D * E) sudah didapatkan dan disimpan di register T.
  • Lalu terakhir register Y yang sudah kita dapatkan tadi dibagi dengan register T dan disimpan di register Y.
  • Bisa kita lihat, instruksi 2 alamat memakai 2 instruksi, seperti Y dan A, Y dan B, T dan D, dan seterusnya.
Instruksi 1 alamat :
  • Pada istruksi tentu saja kita hanya menggunakan 1 instruksi.
  • Pertama LOAD D ke AC (Accumulator).
  • Lalu AC dikalikan dengan register E dan disimpan di AC.
  • Register AC lalu ditambahkan dengan register C dan disimpan di register AC.
  • Simpan register AC ke register Y.
  • LOAD lagi register A ke AC.
  • Register AC lalu dikurangkan dengan register B dan disimpan di register AC.
  • Lalu register AC dibagi dengan regiser Y dan disimpan di register AC.
  • Simpan register AC ke register Y.
Spesifikasi instruksi 3 alamat :
  • Simbolik : a = b + c.
  • Format alamat : hasil, operand 1, operand 2.
  • Digunakan dalam arsitektur MIPS.
  • Memerlukan word panjang dalam suatu instruksi.
Spesifikasi instruksi 2 alamat :
  • Simbolik : a = a + b.
  • Satu alamat diisi operand terlebih dahulu kemudian digunakan untuk menyimpan hasilnya.
  • Tidak memerlukan instruksi yang panjang.
  • Jumlah instruksi per program akan lebih banyak daripada 3 alamat.
  • Diperlukan penyimpanan sementara untuk menyimpan hasil.
Spesifikasi instruksi 1 alamat :
  • Memerlukan alamat implisit untuk operasi.
  • Menggunakan register akumulator (AC) dan digunakan pada mesin lama.
Spesifikasi instruksi 0 alamat :
  • Seluruh alamat yang digunakan implisit.
  • Digunakan pada organisasi memori, terutama operasi stack.
Rancangan Set Instruksi
  • Aspek paling menarik dalam arsitektur komputer adalah perancangan set instruksi, karena rancangan ini berpengaruh banyak pada aspek lainnya.
  • Set instruksi menentukan banyak fungsi yang harus dilakukan CPU.
  • Set instruksi merupakan alat bagi para pemrogram untuk mengontrol kerja CPU.
  • Pertimbangan : Kebutuhan pemrogram menjadi bahan pertimbangan dalam merancang set instruksi.
Masalah rancangan yang fundamental meliputi :
  • Operation repertoire :
    • Berapa banyak dan operasi-operasi apa yang harus tersedia.
    • Sekompleks apakah operasi itu seharusnya.
  • Data types :
    • Jenis data.
    • Format data.
  • Instruction format :
    • Panjang instruksi.
    • Jumlah alamat.
    • Ukuran field.
  • Registers :
    • Jumlah register CPU yang dapat direferensikan oleh instruksi, dan fungsinya.
  • Addressing :
    • Mode untuk menspesifikasi alamat suatu operand.
Tipe Operasi
  • Dalam perancangan arsitektur komputer, jumlah kode operasi akan sangat berbeda untuk masing-masing komputer, tetapi terdapat kemiripan dalam jenis operasinya.
Jenis Operasi Komputer
  • Transfer data. - Konversi
  • Aritmetika. - Input/Output
  • Logika. - Kontrol sistem dan transfer kontrol
ANGGARA ALKHAIR
XI TJA 4 / 06