Kamis, 20 November 2014

KARAKTERISTIK INSTRUKSI MESIN

1.      KARAKTERISTIK INTRUKSI MESIN.
Menurut Kamus Besar Bahasa Indonesia, Karakteristik adalah ciri-ciri khusus atau mempunyai sifat khas sesuai dengan perwatakan tertentu. Instruksi adalah perintah atau arahan (untuk melakukan suatu pekerjaan atau melaksanakan suatu tugas). Mesin adalah perkakas untuk menggerakkan, atau membuat sesuatu yang dijalankan dengan roda-roda dan digerakkan oleh tenaga manusia atau motor penggerak yang menggunakan bahan bakar minyak atau tenaga alam.
Jadi, karakteristik-karakteristik instruksi mesin adalah ciri-ciri khusus atau sifat khas yang dimiliki oleh instruksi-instruksi atau kode operasi dalam pemrograman komputer.. Operasi CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal sebagai intruksi mesin atau instruksi computer. Set fungsi dari instruksi-instruksi yang berbeda yang dapat di eksekusi oleh CPU dikenal sebagai set instruksi CPU.
Dalam pengertian lain karakteristik intruksi mesin dapat diartikan sebagai berikut :
1.      Instruksi mesin (machine instruction) yang dieksekusi membentuk suatu operasi dan berbagai macam    fungsi CPU.
2.      Kumpulan fungsi yang dapat dieksekusi CPU disebut set instruksi (instruction set) CPU.
3.      Mempelajari karakteristik instruksi mesin, meliputi:
·         Elemen-elemen instruksi mesin.
·          Representasi instruksinya.
·          Jenis-jenis instruksi.
·          Penggunaan alamat.
·         Rancangan set instruksi.


Elemen Intruksi Mesin

Untuk dapat dieksekusi CPU, suatu instruksi harus berisi elemen informasi yang diperlukan CPU secara lengkap dan jelas.

-Elemen – elemennya :
1.      Operation Code (Opcode)
menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
2.      Source Operand Reference
operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi.
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.

Dalam pengertian lain elemen intruksi adalah :
Elemen-elemen Instuksi Mesin

Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi. Gambar langkah-langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin, adalah sebagai berikut : 
·         Kode Operasi  :  menentukan operasi-operasi yang akan dilakukan (misalnya: ADD,I/O). Operasi itu dispesifilan oleh sebuah kode biner, dikenal sebagai kode operasi.

·         Acuan Operand Sumber  :  Operasi dapat melibatkan satu atau lebih operand sumber, dengan kata lain, operand adalah input bagi operasi.

·          Acuan Operand Hasil : Operasi dapat menghasilkan sebuah hasil.

·         Acuan Instruksi Berikutnya :  Elemen ini memberitahukan CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi. Instuksi berikutnya yang akan diambil berada di memori utama atau pada system memori virtual, akan berada baik di dalam memori utama atau memori sekunder. Umumnya, instruksi yang akan segera diambil selanjutnya, berada setelah instruksi saat itu. Ketika acuan eksplisit dibutuhkan, maka alamat memori utama atau alamat memori virtual harus disiapkan. Operand sumber dan hasil dapat berada di salah satu dari ketiga daerah berikut ini :

·          Memori Utama atau Memori Virtual : Dengan adanya acuan instruksi berikutnya, maka alamat memori utama atau memori virtual harus diketahui.

·          Register CPU : Dengan suatu pengecualian yang jarang terjadi, CPU terdiri dari sebuah register atau lebih yang dapat diacu oleh instruksi-instruksi mesin. Bila hanya terdapat sebuah register saja, maka acuan ke instruksi tersebut dapat berbentuk implicit. Sedangkan jika terdapat lebih dari satu register, maka setiap register diberi nomor yang unik, dan instruksi harus terdiri dari nomor register yang dimaksud.

·         Perangkat I/O :  Instruksi harus menspesifikan modul I/O dan perangkat yang diperlukan oleh operasi. Jika digunakan I/O memori terpetakan, maka perangkat ini merupakan memori utama atau memori virtual. 



Representasi Intruksi.



Di dalam computer, instruksi dipresentasikan oleh sehimpunan bit. Himpunan bit ini dibagi menjadi beberapa bidang, dengan bidang-bidang ini berkaitan dengan elemen-elemen yang akan memuat instruksi. Layout instruksi ini dikenal sebagai bentuk instruksi. Contoh yang sederhana ditunjukkan pada gambar. Pada sebagian besar set instruksi, dapat digunakan lebih dari satu bentuk. Selama berlangsungnya eksekusi instruksi, instruksi dibaca ke dalam register instruksi yang terdapat dalam CPU. Untuk melakukan operasi yang diperlukan, CPU harus dapat mengeluarkan data dari berbagai bidang instruksi. Opcode direpresentasikan dengan singkatan-singkatan, yang disebut mnemorik, yang mengindikasikan operasi,  contohnya adalah :

ADD Add (Menambahkan)
SUB Substract (Pengurangan)
MPY Multiply (Perkalian)
DIV Divide (Pembagian0
LOAD Muatkan data data dari memori
STOR Simpan data ke memori

Operand-operand juga direpresentasikan secara simbolik. Misalnya instruksi ADD R,Y Berarti tambahkan niali yang terdapat pada lokasi Y ke isi register R. Dalam contoh ini, Y berkaitan dengan alamat lokasi di dalam memori, dan R berkaitan dengan register tertentu. Perlu dicatat bahwa operasi dilakukan terhadap isi alamat, bukan terhadap alamatnya.

Sehingga adalah mungkin untuk menuliskan program bahasa mesin dalam bentuk simbolik. Setiap opcode simbolik memiliki representasi biner yang tetap, dan pemrograman dapat menetapkan masing-masing operand simbolik. Misalnya, pemrograman dapat memulainya dengan definisi-definisi:
X=523
Y=514
dan seterusnya. Sebuah program yang sederhana akan menerima input simbol ini, kemudian mengkonversiakn opcode dan acuan operand menjadi bentuk biner, dan akhirnya membentuk instruksi mesin biner. 

Jenis  - jenis Intruksi

Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau FORTRAN. X = X+Y Pernyataan ini menginstruksiakna komputer untuk menambahkan nilai yang tersimpan di Y ke nilai yang tersimpan di X dan menyimpan hasilnya di X. Variabel X dan Y berkorespondensi dengan lokasi 513 dan 514. Jika kita mengasumsikan set instruksi mesin yang sederhana, maka operasi ini dapat dilakukan dengan tiga buah instruksi: 
1.      Muatkan sebuah register dengan isi lokasi memori 513 
2.      Tambahkan isi lokasi memori ke register 
3.      Simapn isi register di lokasi memori 513 


Suatu komputer harus memiliki set instruksi yang memungkinkan pengguna untuk memformulasikan pengolahan data atau dengan memperhatikan kemampuan pemrograman bahasa tingkat tinggi. Agar dapat dieksekusi, setiap program yang ditulis dalam bahasa program tingkat tinggi harus diterjemahkan ke dalam bahasa mesin. Jadi, set instruksi mesin harus dapat mengekspresikan setiap instruksi bahasa tingkat tinggi.

Adapun Jenis-jenis instrusi sebagai berikut : 
·         Pengolahan Data : Instrusi-instruksi aritmatika dan logika 
·          Penyimpanan Data : Instriksi-instruksi memori 
·         Perpindahan Data : Instruksi I/O 
·         Kontrol : Instruksi pemeriksaan dan percabangan 

Penggunaan Alamat

Salah satu cara tradisional dalam menjelaskan arsitektur prosesor adalah dengan memakai jumlah alamat yang terdapat pada masing-masing instruksi. Instruksi aritmatika dan logika memerlukan operand yang berjumlah banyak. Secara virtual, seluruh operasi eritmatika dan logika merupakan uner/unary (satu operand) atau biner (dua operand). Dengan demikian, memerlukan maksimum dua alamat untuk acuan operand. Hasil sebuah operasi akan memerlukan alamat ketiga.

Dengan demikian, instruksi perlu memiliki empat buah acuan alamat: dua buah operand, sebuah hasil operasi, dan sebuah alamat instruksi berikutnya. Sebagian besar CPU merupakan variasi satu, dua, atau tiga alamat dengan alamat instruksi berikutnya merupakan implisit (diperoleh dari pencacah program). Format tiga alamat tidak umum digunakan, karena instruksi-instruksi tersebut memerlukan bentuk instruksi yang lebih relatif lebih panjang untuk menampung acuan-acuan tiga alamat. Sedangkan bentuk dua alamat mengurangi kebuatuahan ruang akan tetapi menimbulkan kesulitan. Instruksi yang lebih sederhana adalah instruksi satu alamat. Agar alamat ini dapat berfungsi, alamat perlu diimplisitkan. 
Rancangan set Intruksi
Salah satu hal yang paling menarik tentang rancangan komputer adalah rancangan set instruksi. Karena rancangan ini mempengaruhi banak 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. Set instruksi merupakan alat bagi pemrogram untuk mengontrol CPU. Dengan demikian, kebutuhan-kebutuhan pemrogram harus menjadi bahan pertimbangan dalam merancang set instruksi.

Masalah rancangan fundamental yang paling signifikan meliputi : 
·         Repertoi Operasi :  Berapa banyak dan opersai-operasi apa yang harus disediakan, dan sekompleks apakah operasi itu seharusnya. 
·          Jenis data : berbagai jenis data pada saat operasi dijalankan 
·          Bentuk instruksi : Panjang instruksi (dalam bit), jumlah alamat, ukuran bidang, dan sebagainya. 
·         Register : Jumlah register CPU yang dapat diacu oleh instruksi, dan fungsinya. 
·         Pengalamatan : Mode untuk menspesifikasikan alamat suatu operand.
Masalah-masalah ini saling berkaitan dan harus diperhatikan dalam merancang set instruksi. 

2. TIPE - TIPE OPERAND
Operand adalah sebuah objek yang ada pada operasi matematika yang dapat digunakan untuk melakukan operasi. Operand atau operator dalam bahasa C berbentuk simbol bukan berbentuk keyword atau kata yang biasa ada di bahasa pemrograman lain. Simbol yang digunakan bukan karakter yang ada dalam abjad tapi ada pada keyboard kita seperti =,,* dan sebagainya.
Tipe-tipe operand diantaranya :
1.      Addresses (akan dibahas pada addressing modes)
2.      Numbers :
- Integer or fixed point
- Floating point
- Decimal (BCD)
3.      Characters :
- ASCII
- EBCDIC
4.      Logical Data : Bila data berbentuk binary : 0 dan 1


3. TIPE - TIPE OPERASI
·         Transfer data – konversi
1. Menetapkan lokasi operand sumber dan operand tujuan.
2. Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada   
    stack.
3. Menetapkan panjang data yang dipindahkan.
4. Menetapkan mode pengalamatan.

·         Aritmatika – input/output
Tindakan CPU untuk melakukan operasi arithmetic :
1. Transfer data sebelum atau sesudah.
2. Melakukan fungsi dalam ALU.
3. Menset kode-kode kondisi dan flag.
·         Logika – kontrol sistem dan transfer kontrol
Tindakan CPU sama dengan arithmetic
Operasi set instruksi untuk operasi logical :
1. AND, OR, NOT, EXOR
2. COMPARE : melakukan perbandingan logika.
3. TEST : menguji kondisi tertentu.
4. SHIFT : operand menggeser ke kiri atau kanan menyebabkan
     konstanta pada ujung bit.
5. ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.



4. PENGALAMATAN
Field alamat dalam format instruksi sangat terbatas. Teknik-teknik pengalamatan yang umum digunakan :
        Immediate
        Direct
        Indirect
        Register
        Register Indirect
        Displacement
        Stack


·         Immediate Addressing
Bentuk pengalamatan yang paling sederhana adalah immediate addressing. Keuntungan immediate addressing adalah tidak terdapatnya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand. Cara seperti itu dapat menghemat satu siklus memori atau cache dalam siklus instruksi. Kerugiannya adalah ukuran bilangan dibatasi oleh ukuran field alamat, yang pada sebagian besar set instruksi, ukuran bilangan lebih kecil dibandingkan dengan panjang kata.
·         Direct Adressing
Bentuk pengalamatan yang sangat sederhana adalah direct addressing. Teknik pengalamatan ini umumnya digunakan pada komputer generasi lama dan masih dapat dijumpai pada beberapa sistem komputer kecil. Direct addressing hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulasi khusus.
·         Indirect Addressing
Masalah yang terdapat pada direct addressing adalah bahwa panjang field alamat biasanya lebih kecil dibanding panjang word, sehingga membatasi range alamat. Satu solusinya adalah dengan membiarkan field alamat mengacu pada alamat word di dalam memori, yang pada gilirannya akan berisi alamat operand yang panjang.
·         Register Addressing
Register addressing mirip dengan direct addressing. Satu-satunya perbedaan hanya terletak pada field alamat yang mengacu pada sebuah register, bukannya pada alamat memori utama. Apabila register addressing banyak dipakai dalam suatu set instruksi berarti menggambarkan bahwa register CPU akan sering digunakan. Karena sangat terbatasnya jumlah register (dibandingkan dengan lokasi memori utama), maka register hanya akan digunakan apabila register-register itu dipakai secara efisien. Apabila seluruh operand dibawa dari memori utama ke dalam register, dan dilakukan sekaligus, dan kemudian dikembalikan ke memori utama, maka akan terjadi langkah-langkah yang tidak diperlukan. Sedangkan apabila operand dalam suatu register tetap digunakan untuk sejumlah operasi, maka akan menghemat pemakaian.
·         Register Indirect Addressing
Seperti halnya register addressing yang analog dengan direct addressing, register indirect addressing juga analog dengan indirect addressing. Pada kedua pengalamatan tersebut, satu-satunya perbedaan yang ada adalah apakah field alamat mereferensi ke lokasi memori atau register. Keuntungan dan keterbatasan register indirect addressing pada dasarnya sama seperti indirect addressing. Pada keduanya, keterbatasan ruang alamat (range alamat yang terbatas) field alamat dapat diatasi dengan membiarkan field tersebut mereferensi ke lokasi panjang word yang berisi sebuah alamat. Selain itu, register indirect addressing menggunakan satu referensi memori lebih sedikit dibandingkan dengan indirect addressing.
·         Displacement Addressing
Mode pengalamatan yang baik akan mengkombinasikan kemampuan direct addressing, dan register indirect addressing. Mode ini memiliki banyak nama yang tergantung pada konteks penggunanya, namun mekanisme dasarnya tetap sama. Kita akan menyebutnya sebagai displacement addressing. Tiga kegunaan displacement addressing secara umum :
1. Relative Addressing
2. Base-Register Addressing
3. Indexing

·         Stack Addressing
Stack adalah array lokasi yang linear. Stack sering kali disebut pushdown list atau last-in-first-out-queue. Stack merupakan blok lokasi yang terbalik. Butir ditambahkan ke puncak stack sehingga setiap saat blok akan terisi secara parsial. Yang berkaitan dengan stack adalah pointer yang nilainya merupakan alamat bagian paling atas stack.
Mode pengalamatan stack merupakan suatu bentuk implied addressing. Instruksi-instruksi mesin tidak perlu memiliki referensi memori namun secara implisit beroperasi pada bagian paling atas stack.
·         Mode-mode Pengalamatan Pentium
Pentium dilengkapi dengan bermacam-macam mode pengalamatan untuk memungkinkan eksekusi bahasa-bahasa tingkat tinggi seperti C dan FORTRAN secara lebih efisien.
·         Mode-mode Pengalamatan PowerPC
PowerPC menggunakan mode pengalamatan yang sederhana dan relatif pendek.
            1. Load/Store Addressing
            2. Branch Addressing
            3. Arithmetic Instruction

5.  FORMAT INTRUKSI
Format instruksi menentukan layout bit suatu instruksi. Format instruksi harus mencakup opcode dan secara implisit atau eksplisit, nol operand atau lebih. Secara implisit atau eksplisit, format harus dapat mengindikasikan mode pengalamatan seluruh operand-nya. Pada sebagian besar set instruksi, digunakan lebih dari satu format instruksi. Rancangan format instruksi merupakan seni yang kompleks, dan telah diimplementasikan bermacam-macam rancangan.
·         Panjang Instruksi
Masalah rancangan yang paling mendasar yang perlu dihadapi adalah panjang format instruksi. Masalah ini akan mempengaruhi ukuran memori dan dipengaruhi oleh ukuran memori, organisasi memori, struktur bus, kompleksitas CPU, dan kecepatan CPU.
·         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.
1.    PDP-8
Salah satu rancangan instruksi yang paling sederhana bagi komputer general-purpose adalah instruksi-instruksi PDP-8. PDP-8 memakai instruksi 12-bit dan beroperasi pada word 12-bit. Terdapat register purpose-general tunggal, yaitu akumulator.
2.    PDP-10
Set instruksi PDP-10 sangat berbeda dengan set instruksi PDP-8. PDP-10 dirancang untuk sistem berbagi waktu berskala besar, dengan menekankan pada pembuatan sistem yang mudah untuk diprogram.
Di antara prinsip-prinsip rancangan yang digunakan dalam perancangan instruksi adalah sebagai berikut :
·         Ortogonalitas
Ortogonalitas adalah suatu prinsip dengan dua buah variabel tidak bergantung satu sama lainnya.
·         Kelengkapan
Setiap jenis data aritmetika (integer, fixed point, real) harus memiliki set operasi yang lengkap dan identik.
·         Pengalamatan Langsung
Basis dan displacement addressing, yang menyebabkan organisasi memori menyulitkan pemrogram, telah dapat dihindarkan dengan pertolongan direct addressing. Ketiga prinsip di atas sangat membantu untuk memudahkan pemrograman.

6. KESIMPULAN.
·         Karakteristik Intruksi Mesin adalah ciri-ciri khusus atau sifat khas yang dimiliki oleh instruksi-instruksi atau kode operasi yang digunakan dalam pemrograman komputer.
·         Operand adalah sebuah objek atau komponen yang ada pada operasi matematika yang dapat digunakan untuk melakukan operasi / menterjemahkan bahasa - bahasa ke dalam sebuah kode - kode arithmetic.
·         Tipe - tipe Operasi adalah tipe - tipe teknik dalam melakukan pemrosesan operasi arithmetic dalam komputer.
tipe - tipe operasi terdiri dari 3 teknik yaitu :
1.      Transfer data – konversi
2.      Aritmatika – input/output
3.      Logika – kontrol sistem dan transfer kontrol
·         Pengalamatan adalah suatu teknik yang digunakan untuk menyimpan hasil pemrosesan operasi arithmetic pada komputer.
·         Format intruksi adalah sebuat format untuk menentukan layout bit suatu instruksi.


REFERENSI
1.      http://harnowicaksono.blogspot.com/2013/11/karakteristik-instruksi-mesin.html
2.      http://myant2526.blogspot.com/2010/04/set-instruksi-tujuan-memahami.html
3.      http://catatanhijaulila.blogspot.com/2012/01/karakteristik-instruksi-mesin.html
4.      http://kikireisyah.wordpress.com/tipe-tipe-operand-dan-operasi/
5.      http://degokers.wordpress.com/2012/11/11/organisasi-komputer-dasar-dan-arsitektur/



1 komentar: