Makalah Set Instruksi

22
12 BAB I PEMBAHASAN A. Pengertian Set Instruksi Set Instruksi (Instruction Set, atau Instruction Set Architecture (ISA)) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada). ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain. ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya,

Transcript of Makalah Set Instruksi

BAB I

PEMBAHASAN

A. Pengertian Set Instruksi

Set Instruksi (Instruction Set, atau Instruction Set Architecture (ISA)) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).

ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.

ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya.B. Representasi Data

Untuk memberi tanda bilangan biner 0 (nol) untuk bilangan positif atau plus dan 1 untuk bilangan negatif atau minus. Pada bilangan biner n-bit, jika susunannya dilengkapi dengan bit tanda maka diperlukan register dengan panjang n+1 bit. Dalam hal ini, n bit digunakan untuk menyimpan bilangan biner itu sendiri dan satu bit untuk tandanya. Pada representasi bilangan biner yang dilengkapi dengan tanda bilangan, bit tanda ditempatkan pada posisi paling kiri.Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat tersebut dalam matematika. Representasi data ini merupakan cara bagaimana nilainya disimpan di dalam memori komputer. Tipe data integral terbagi menjadi dua buah kategori, baik itu bertanda (signed) ataupun tidak bertanda (unsigned). Bilangan bulat bertanda mampu merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat tak bertanda hanya mampu merepresentasikan bilangan bulat positif.

Representasi integer positif di dalam komputer sebenarnya adalah untaian bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit tersebut pun bervariasi, bisa berupa Little Endian ataupun Big Endian. Selain ukuran, lebar atau ketelitian (presisi) bilangan bulat juga bervariasi, tergantung jumlah bit yang direpresentasikanya. Bilangan bulat yang memiliki n bit dapat mengodekan 2n. Jika tipe bilangan bulat tersebut adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0 hingga 2n-1.

C. Sistem Bilangan

Bahasa alamiah mengenal bilangan basis 10 (disebut desimal),sedangkan bahasa mesin mengenal sistem bilangan yakni tiga basis, yaitu.

Basis bilangan 2 yakni binary-digit, digunakan pada komunikasi data.

Basis bilangan 8 yakni octal-digit, digunakan pada pengalamatan memori

Basis bilangan 16 yakni hexadecimal, digunakan pada pengalamatan di memory dan pengkodean warna.1. Sistem Bilangan Desimal (Basis 10)Desimal (Basis 10) adalah Sistem Bilangan yang paling umum digunakan dalam kehidupan sehari-hari. Sistem bilangan desimal menggunakan basis 10 dan menggunakan 10 macam simbol bilangan yaitu : 0,1,2,3,4,5,6,7,8 dan 9. Sistem Bilangan desimal dapat berupa integer decimal (decimal integer) dan pecahan decimal.

Untuk melihat nilai bilangan desimal dapat digunakan perhitungan seperti berikut, misalkan contoh bilangan desimal adalah 8598. Ini dapat diartikan :

Dalam gambar diatas disebutkan Absolut Value dan Position Value. Setiap simbol dalam sistem bilangan desimal memiliki Absolut Value dan Position Value. Absolut value adalah Nilai Mutlak dari masing-masing digit bilangan. Sedangkan Position Value adalah Nilai Penimbang atau bobot dari masing-masing digit bilangan tergantung dari letak posisinya yaitu bernilai basis di pangkatkan dengan urutan posisinya. Untuk lebih jelasnya perhatikan table dibawah ini.

Dengan begitu maka bilangan desimal 8598 bisa diartikan sebagai berikut :

Sistem bilangan desimal juga bisa berupa pecahan desimal (decimal fraction), misalnya : 183,75 yang dapat diartikan :

2. Sistem Bilangan biner (basis 2)Sistem bilangan biner atau sistem bilangan basis dua adalah sebuah system penulisan angka dengan menggunakan dua simbol yaitu 0 dan 1. Sistem bilangan biner modern ditemukan oleh Gottfried Wilhelm Leibniz pada abad ke-17. Sistem bilangan ini merupakan dasar dari semua sistem bilangan berbasis digital. Dari sistem biner, kita dapat mengkonversinya ke sistem bilangan oktal atau hexadesimal. Sistem ini juga dapat kita sebut dengan istilah bit, atau Binary Digit. Pengelompokan biner dalam komputer selalu berjumlah 8, dengan istilah 1 Byte. Dalam istilah komputer, 1 Byte = 8 bit. Kode-kode rancang bangun komputer, seperti ASCII, American Standard Code for Information Interchange menggunakan sistem peng-kode-an 1 Byte. Contoh konversi bilangan Biner ke desimal.

Position Value dalam sistem Bilangan Biner merupakan perpangkatan dari nilai 2 (basis), seperti pada tabel berikut ini :

Berarti, Bilangan Biner 1001 perhitungannya adalah sebagai berikut :

3. Sistem Bilangan Oktal (basis 8)Oktal atau sistem bilangan basis 8 adalah sebuah sistem bilangan berbasis delapan. Simbol yang digunakan pada sistem ini adalah 0,1,2,3,4,5,6,7. Konversi Sistem Bilangan Oktal berasal dari sistem bilangan biner yang dikelompokkan tiap tiga bit biner dari ujung paling kanan (LSB atau Least Significant Bit).contoh konversi bilangan Oktal ke decimal.

Position Value dalam Sistem Bilangan Oktal merupakan perpangkatan dari nilai 8 (basis), seperti pada tabel berikut ini:

Berarti, Bilangan Oktal 1022 perhitungannya adalah sebagai berikut :

4. Sistem Bilangan Hexadesimal (Basis 16)

Hexadesimal (Basis 16), Hexa berarti 6 dan Desimal berarti 10 adalah Sistem Bilangan yang terdiri dari 16 simbol yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15). Pada Sistem Bilangan Hexadesimal memadukan 2 unsur yaitu angka dan huruf. Huruf A mewakili angka 10, B mewakili angka 11 dan seterusnya sampai Huruf F mewakili angka 15.

Contoh Hexadesimal F3D4, Ini dapat di artikan (Di konversikan ke sistem bilangan desimal) menjadi sebagai berikut

Position Value dalam Sistem Bilangan Hexadesimal merupakan perpangkatan dari nilai 16 (basis), seperti pada tabel berikut ini :

Berarti, Bilangan Hexadesimal F3DA perhitungannya adalah sebagai berikut:

D. Karakteristik dan Fungsi Set InstruksiOperasi dari CPU ditentukan oleh instruksi - instruksi yang di laksanakan atau dijalankannya Instruksi ini sering di sebut sebagai instruksi mesin (mechine instructions) atau instruksi computer (computer instructions).

Kumpulan dari instruksi-instruksi yang berbeda yang dapat di jalankan oleh CPU di sebut set Instruksi (Instruction Set).E. Elemen - elemen dari Instruksi Mesin (set instruksi) Operation Code (opcode)Sebuah opcode (kode operasi) adalah bagian dari instruksi bahasa mesin yang menentukan operasi yang akan dilakukan. spesifikasi mereka dan format yang diletakkan dalam set instruksi arsitektur prosesor yang bersangkutan (yang mungkin merupakan CPU umum atau unit pengolahan lebih khusus). Terlepas dari opcode sendiri, instruksi biasanya juga memiliki satu atau lebih penspesifikasi untuk operan (data yaitu) di mana operasi harus bertindak, meskipun beberapa operasi mungkin memiliki operan implisit, atau tidak sama sekali. Ada instruksi set dengan bidang hampir sama untuk penspesifikasi opcode dan operan,serta yang lain (yang x86 architecture misalnya) dengan struktur, panjang lebih rumit bervariasi. Source Operand Reference = operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi.

Result Operand Reference = Merupakan hasil atau keluaran operasi.

Next instruction Reference = elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi.Operand dari Operasi :

Melihat dari operasi,operand suatu operasi dapat berada di salah satu dari ketiga daerah berikut :

memori utama atau memori virtual. register CPU.

perangkat I/O.F. Representasi InstruksiInstruksi 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 ber-format instruksi.Format Instruksi :

[opcode] [alamat]

Kode operasi (opcode) direpresentasikan dengan singkatan - singkatan yang disebut mnemonic. Mnemonic mengindikasikan suatu operasi bagi CPU.Contoh mnemonic: ADD = penambahan.

SUB = subtract (pengurangan).

LOAD = muatkan data ke memori.Contoh representasi operand secara simbolik:

ADD X, Y

artinya: tambahkan nilai yang berada pada lokasi Y dengan isi register X dan simpan hasilnya di register X.

Programmer dapat menuliskan program bahasa mesin dalam bentuk simbolik.

Setiap opcode simbolik memiliki representasi biner yang tetap dan programmer dapat menetapkan lokasi masing-masing operand.Korelasi :a. Terlihat hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa mesin.

b. Dalam bahasa tangkat tinggi, operasi dinyatakan dalam bentuk aljabar singkat menggunakan variable.

c. Dalam bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan antar register.

d. Dapat ditarik kesimpulan bahwa instruksi-instruksi mesin harus mampu mengolah data sebagai implementasi keinginan-keinginan kita.

e. Terdapat kumpulan unik set instruksi, yang dapat digolongkan dalam jenis-jenisnya, yaitu:

Pengolahan data (data processing)Meliputi operasi-operasi aritmatika dan logika. Operasi aritmatika 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 percabangan. Instruksi ini berfungsi untuk pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.G. Desain Set Instruksi

Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek,di antaranya adalah:

a. Kelengkapan set instruksi

b. Ortogonalitas (sifat independensi instruksi)Kompatibilitas :

Source code Compatibility

Object code CompatibilitySelain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:1. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya.2. Data Types: tipe/jenis data yang dapat olah.3. Instruction Format: panjangnya, banyaknya alamat, dsb.

4. Register: Banyaknya register yang dapat digunakan.

5. Addressing: Mode pengalamatan untuk operand.H. Format InstruksiSuatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai format Instruksi (Instruction Format). OPCODE

OPERAND REFERENCE

OPERAND REFERENCE

a. Jenis - jenis Operand Addresses (akan dibahas pada addressing mode)

Numbers : - Integer or fixed point

Floating point

Decimal (BCD)

Characters : - ASCII - EBCDIC

Logical Data : Bila data berbentuk binary yaitu 0 dan 1b. Jenis Instruksi Data processing: Arithmetic dan Logic Instruction.

Data storage: Memory instructions

Data Movement: I/O instructions

Control: Test and branch instructions

c. Transfer Data Menetapkan lokasi operand sumber dan operand tujuan.

Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.

Menetapkan panjang data yang dipindahkan.

Menetapkan mode pengalamatan.

Tindakan CPU untuk melakukan transfer data adalah :

Memindahkan data dari satu lokasi ke lokasi lain.

Apabila memori dilibatkan :

Menetapkan alamat memori.

Menjalankan transformasi alamat memori virtual ke alamat memori aktual.

Mengawali pembacaan / penulisan memori .d. Operasi Set Instruksi untuk transfer data MOVE : memindahkan word atau blok dari sumber ke tujuan. STORE : memindahkan word dari prosesor ke memori.

LOAD : memindahkan word dari memori ke prosesor.

EXCHANGE : menukar isi sumber ke tujuan.

CLEAR / RESET : memindahkan word 0 ke tujuan.

SET : memindahkan word 1 ke tujuan.

PUSH : memindahkan word dari sumber ke bagian paling atas stack.

POP : memindahkan word dari bagian paling atas sumber .

e. Arithmetic Tindakan CPU untuk melakukan operasi arithmetic :

Transfer data sebelum atau sesudah.

Melakukan fungsi dalam ALU.

Menset kode-kode kondisi dan flag.

Operasi set instruksi untuk arithmetic :

ADD : penjumlahan. SUBTRACT : pengurangan. MULTIPLY : perkalian. DIVIDE : pembagian. ABSOLUTE. NEGATIVE. DECREMENT. INCREMENT.Nomor 5 sampai 8 merupakan instruksi operand tunggal.

f. Logical 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.

g. Conversi

Tindakan CPU sama dengan arithmetic dan logical. Instruksi yang mengubah format instruksi yang beroperasi terhadap format data. Misalnya pengubahan bilangan desimal menjadi bilangan biner.Operasi set instruksi untuk conversi :

1. TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel korespodensi.

2. CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.

I. Jumlah Alamat

Jumlah register atau alamat yang digunakan dalam operasi CPU tergantung format masing-masing CPU. Ada format operasi yang menggunakan 3, 2, 1 dan 0 register. Tetapi pada umumnya yang digunakan adalah 2 register dalam satu operasi. Desain CPU saat ini telah menggunakan 3 alamat dalam satu operasi, terutama dalam MIPS. (million instruction per second).

Alamat instruksi yang lebih sedikit akan membuat instruksi lebih sederhana dan pendek, tetapi lebih sulit diimplementasikan 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. Tetapi 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. Sehingga diperlukan register CPU yang banyak, namun operasi antar register lebih cepat serta lebih mudah mengimplementasikan fungsi-fungsi yang kita inginkan. Sehingga jumlah instruksi per-program jauh lebih sedikit

Untuk lebih jelas perhatikan contoh-contoh instruksi dengan jumlah register berbeda untuk menyelesaikan persoalan yang sama.Contoh penggunaan instruksi dengan alamat 1, 2 dan 3 untuk menyelesaikan operasi hitungan:Y = (A - B) : (C + D * E)

Contoh instruksi 2 dan 3 alamat

Instruksi 3 alamatSpesifikasi :* Simbolik: a = b + c* Format alamat: hasil, operand1, operand2* Digunakan dalam arsitektur MIPSInstruksi KomentarSUB Y, A, B Y =A EIMF'Y T, D, E T= D >< EADD T, T, C T=T + CDIV Y, Y, T Y= Y + T

Instruksi 2 alamatSpesifikasi :* 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 dari 3 alamat.* Diperlukan penyimpanan sementara untuk menyimpan hasil. Instruksi KOmmentarMOVE Y, A Y = ASUB Y, B Y = Y - BMOVE T, D T = DMPY T, E T = T EADD T, C T = T + CDIV Y, T Y = Y + T.

Instruksi 1 alamatSpesifikasi :* Memerlukan alamat implisit untuk operasi* Menggunakan register accumulator (AC) dan digunakan pada mesin lama.Instruksi KomentarLOAD D AC =DMPY E AC = AC EADD C AC= AC + CSTOP Y Y = ACLOAD A AC = ASUB B AC = AC - BDN Y AC =AC + YSTOP Y Y= AC

Instruksi 0 (Keterangan isi stack)Spesifikasi :* Seluruh alamat yang digunakan adalah implisit* Digunakan pada organisasi memori, terutama operasi stackInstruksi komentar PUSH B BPUSH A B.ASUB A-B (A-B)PUSH E (AB).EPUSH D (A-B).E.DMUL D*E (A-B).(D*E)PUSH C [A-B).(D*E).CADD C+(D*E) (A-B).(C+D*E)DIV {A-B)/(C+(D*E)} (A-B)/(C+(D"E}}

BAB IIPENUTUPKesimpulan Dapat disimpulan bahwa instruksi - instruksi mesin mampu mengolah data sebagai implementasi keinginan-keinginan kita. Terdapat kumpulan unit set instruksi yang dapat digolongkan dalam jenis - jenisnya, yaitu :

1. Pengolahan data (data processing)

Meliputi operasi-operasi aritmatika dan logika, operasi aritmatika memiliki kemapuna komputasi untuk pengolahan data numrik, sedangkan instruksi logika beroperasi terhadap bit-bit, bukannya sebagi bilangan, sehingga insrtuksi ini memiliki kemampuan untuk pengolahan data lain.2. Perpindahan data ( data movement)

Berisi instruksi perpindahan data antar register maupun modul I/O.untuk dapat diolah oleh CPU maka diperlukan operasi-operasi yang bertugas memindahkan data operand yang diperlukan.3. 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.

4. Control aliran program ( program flow control)

Berisi instruksi pengontrolan operasi dan pencabangan, instruksi ini berguna untuk pengontrolan status dan mengoperasikan pencabangan ke set instruksi lain.

DAFTAR PUSTAKA

Ir,Sinar n m p, Simamora,2008,Sistem Angka dan Representasi Data,[online], (http://www.slideshare.net/snmpsimamora/number-systems-in-computer-systems, Diakses tanggal 9 Oktober 2013)Laksamana Embun,2010, Sistem Bilangan Komputer,[online],(http://laksamana-embun.blogspot.com/2010/01/sistem-bilangan.html, Diakses tanggal 9 Oktober 2013)Galang Oktaviano ,2012,Arsitektur Set Instruksi(tugas ke2),[online] (http://ghalankoktaviano.blogspot.com/2012/11/arsitektur-set-instruksi-tugas-ke-2.html, Diakses tanggal 9 Oktober 2013)

Jovanangga, 2012,Set Instruksi dan Teknik Pengalamatan,[online], (http://jovanangga.blogspot.com/2012/11/set-instruksi-dan-teknik-pengalamatan.html, Diakses tanggal 9 Oktober 2013)