1.1 Karakteristik-Karakteristik Instruksi Mesin
Operasi CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal sebagai instruksi mesin (machine instruction) atau instruksi komputer (computer instruction)
Elemen-elemen Instruksi Mesin
Agar dapat dieksekusi, setiap instruksi harus berisi informasi yang diperlukan oleh CPU Gambar 2.1. menjelaskan langkah-langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin. Elemen-elemen tersebut adalah :
1. Operation Code/Kode Operasi
Menspesifikasikan operasi yang akan dilakukan (misalnya; ADD, I/O). Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi atau opcode.
2. Source Operand Reference/Referensi Operand Sumber
Operasi dapat mencakup satu atau lebih operand sumber; dengan kata lain, operand merupakan input bagi operasi.
3. Result Operand Reference/Referensi Operand Hasil
Operasi dapat membuat hasil operasi.
Instruksi aritmetika (arithmetic instruction) memiliki kemampuan komputasi untuk pengolahan data numerik. Sedangkan instruksi logika atau Boole (logic atau Boolean instruction) beroperasi terhadap bit-bit word sebagai bit, bukannya sebagai bilangan, sehingga instruksi-instruksi ini memiliki kemampuan untuk pengolahan data lain yang akan digunakan oleh pengguna. Operasi-operasi tersebut dilakukan terutama bagi data yang terdapat pada register-register CPU. Dengan demikian, harus ada instruksi-instruksi memori (memory) untuk memindahkan data yang terdapat di memori dan register.
Berapa jumlah alamat maksimum yang akan diperlukan dalam sebuah instruksi? Sebenarnya, instruksi aritmetika dan logika memerlukan operand yang berjumlah banyak. Secara virtual seluruh operasi aritmetika dan logika merupakan uner/unary (satu operand) atau biner/binary (dua operand). Dengan demikian, kita akan memerlukan maksimum dua alamat untuk mereferensi operand. Hasil dari sebuah operasi harus disimpan, yang untuk itu akan memerlukan alamat ketiga. Terakhir, setelah selesainya sebuah instruksi, instruksi berikutnya harus diambil, dan alamatnya diperlukan juga. Kalimat di atas menyatakan bahwa masuk akal apabila instruksi perlu memiliki empat buah referensi alamat: dua buah operand, sebuah hasil operasi, dan sebuah alamat instruksi berikutnya.
Salah satu aspek yang menarik tentang rancangan komputer adalah rancangan set instruksi (instruction set design). Karena rancangan ini mempengaruhi banyak aspek sistem komputer, maka rancangan set instruksi sangat kompleks. Set instruksi menentukan banyak fungsi yang akan dilakukan oleh CPU dan karena itu memiliki efek yang sangat menentukan implementasi CPU.
Masalah rancangan fundamental yang paling penting meliputi :
1. Operation Repertoire/Repertoir Operasi
Berapa banyak dan operasi-operasi apa yang harus disediakan, dan sekompleks apakah operasi itu seharusnya.
2. Data Types/Jenis Data
Berbagai jenis data pada saat operasi dijalankan.
3. Instruction Format/Format Instruksi
Panjang instruksi (dalam bit), jumlah alamat, ukuran field, dsb.
4. Registers
Jumlah register CPU yang dapat direferensikan oleh instruksi, dan fungsinya.
5. Addressing/Pengalamatan
Mode untuk menspesifikasikan alamat suatu operand. Masalah-masalah ini saling berkaitan dan harus diperhatikan dalam merancang set instruksi.
. Sementara data tekstual merupakan data yang dirasakan paling nyaman bagi manusia, teks dalam bentuk karakter tidak mudah disimpan atau dikirimkan oleh sistem pengolahan data atau sistem komunikasi. Dengan demikian, sejumlah kode digunakan untuk merepresentasikan karakter dengan memakai rangkaian bit.
Saat ini, kode karakter yang paling umum dipakai di Amerika Serikat adalah kode ASCII (American Standard Code for Information Interchange) yang dibuat oleh American National Standard Institute (ANSI). Setiap karakter di dalam kode ini direpresentasikan dengan pola 7 bit yang unik; dengan demikian, terdapat representasi 128 buah karakter. Karakter ASCII hampir selalu dapat disimpan dan ditransmisikan dengan menggunakan 8 bit per karakter.
Operasi pemindahan kontrol yang paling umum yang terdapat pada set-set instruksi :
• Branch/Pencabangan
• Skip/Lewati
• Subroutine Call/Call Subrutin
1. Instruksi Pencabangan
Instruksi pencabangan, juga disebut instruksi jump, memiliki sebuah operand yang berisi alamat instruksi berikutnya yang akan dieksekusi.
2. Instruksi Skip
Bentuk instruksi pemindahan kontrol lainnya adalah instruksi skip. Instruksi skip menyatakan bahwa sebuah instruksi dapat dilewati; jadi alamat yang diimplikasikan sama dengan alamat instruksi berikutnya ditambah satu panjang instruksi.
3. Instruksi Call Subrutin
Subrutin adalah program komputer yang merupakan bagian dari program yang lebih besar. Sebuah subrutin dapat dipanggil dari sembarang lokasi di dalam program. Dengan kata lain, komputer diinstruksikan agar menuju ke subrutin dan mengeksekusinya dan kemudian kembali ke lokasi subrutin itu dipanggil. Dua alasan penting penggunaan subrutin adalah ekonomis dan modularitas.
Alokasi Bit
Bagi panjang instruksi tertentu, terdapat untung-rugi antara jumlah opcode dengan kemampuan pengalamatan. Opcode yang lebih banyak jelas akan menyebabkan bit yang lebih banyak pada field opcode. Bagi format instruksi dengan panjang tertentu, hal itu akan mengurangi jumlah bit yang dapat digunakan untuk pengalamatan.
Faktor-faktor yang saling berkaitan di bawah ini merupakan hal-hal penting dalam menentukan penggunaan bit-bit pengalamatan.
• Jumlah Mode Pengalamatan
Kadang-kadang mode pengalamatan dapat diindikasikan secara implisit. Misalnya, opcode-opcode tertentu mungkin selalu merupakan pemanggilan untuk indexing. Pada kasus lainnya, mode pengalamatan harus dinyatakan secara eksplisit, sehingga akan dibutuhkan satu atau lebih bit mode.
• Jumlah Operand
Kita telah mengetahui bahwa alamat yang jumlahnya sedikit dapat menyebabkan program menjadi panjang dan membosankan. Instruksi-instruksi yang banyak digunakan mesin saat ini menyediakan dua buah operand. Setiap alamat operand di dalam instruksi memerlukan indikator modenya sendiri, atau penggunaan indikator mode dapat dibatasi menjadi hanya sebuah field alamat.
• Register vs. Memori
Sebuah mesin harus memiliki register sehingga data dapat dibawa ke CPU untuk diproses. Dengan menggunakan register user-visible tunggal (biasanya dikenal sebagai accumulator), sebuah alamat operand adalah implisit dan tidak membutuhkan bit instruksi. Bahkan pada register yang berjumlah banyak, hanya diperlukan jumlah bit yang sedikit untuk menspesifikasikan register. Semakin banyak register yang dapat digunakan untuk referensi operand, semakin sedikit bit yang diperlukan. Sejumlah studi telah menemukan bahwa diperlukan sejumlah 8 hingga 32 buah register user-visible.
• Jumlah Set Register
Sejumlah mesin memiliki satu set general-purpose register, yang umumnya di dalamnya terdapat 8 atau 16 buah register. Register-register ini dapat digunakan untuk menyimpan data dan dapat juga dipakai untuk menyimpan alamat bagi displacement addressing.
• Jangkauan Alamat
Untuk alamat-alamat yang mereferensi memori, jangkauan alamat yang dapat direferensikan sesuai dengan jumlah bit alamat. Karena hal ini mengakibatkan terjadinya keterbatasan yang mengganggu, maka direct addressing jarang digunakan. Dengan menggunakan displacement addressing, jangkauan ditentukan oleh panjang regiser alamat. Bahkan walaupun terdapat kekurangan di atas, pendekatan ini masih sukup sesuai untuk memungkinkan displacement yang agak besar dari alamat register, yang membutuhkan jumlah bit alamat yang relatif besar di dalam instruksi.
• Granularitas Alamat
Untuk alamat-alamat yang mereferensi memori, faktor lain yang menentukan adalah granularitas pengalamatan. Pada sistem yang menggunakan word 16-bit atau 32-bit, suatu alamat dapat mereferensi word atau byte yang sesuai dengan keinginan perancang. Pengalamatan byte cocok untuk manipulasi karakter namun untuk memori yang berukuran tetap akan memerlukan bit alamat yang lebih banyak.
Tidak ada komentar:
Posting Komentar