Welcome to the world of Mohamad Ridwan Julianto!

Senin, 07 November 2016

Arsitektur Set Instruksi

Set Instruksi (bahasa Inggris: 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 Pullman 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.

Jenis-jenis Set Instruksi

     Dalam set instruksi, terdapat kumpulan unik set instruksi, yang dapat digolongkan dalam beberapa jenis, yaitu:

1. Pengolahan Data (Data Processing)
    Pengolahan data 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, bukan sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk pengolahan data lain. 

2. Perpindahan Data (Data Movement) 
    Perpindahan data berisi instruksi perpindahan data antar registe rmaupun modul I/O. Untuk dapat diolah oleh CPU, maka diperlukan instruksi-instruksi yang bertugas memindahkan data operand yang diperlukan. 

3. Penyimpanan Data (Data Storage)
    Penyimpana data 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. Kontrol Aliran Program (Program Flow Control)
    Kontrol aliran program berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk pengontrolan status dan mengoperasikan pencabangan ke set instruksi lain. 

Desain Set Instruksi

Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi instruksi)
3. Kompatibilitas 

Elemen-Elemen Set Instruksi

       Untuk dapat dieksekusi CPU, suatu instruksi harus berisi elemen informasi yang diperlukan CPU secara lengkap dan jelas. Elemen-elemen tersebut ialah:

1. Operation Code
    Operation code menspesifikasi operasi yang akan dilakukan. Kode operasi berbenttuk kode biner.

2. Source Operand Reference
    Operasi dapat berasal dari lebih satu sumber. Operand adalah input operasi
3. Result Operand Reference
    Result Operand Reference merupakan hasil atau keluaran operasi.

4. Next Instruction Reference
    Elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi. 

Rancangan Set Instruksi

a. Aspek paling menarik dalam arsitektur komputer adalah perancangan set instruksi, karena rancangan ini berpengaruh banyak pada aspek lainnya.
b. Set instruksi menentukan banyak fungsi yang harus dilakukan CPU.
c. Set instruksi merupakan alat bagi para pemrogram untuk mengontrol kerja CPU.
d. Pertimbangan kebutuhan pemrogram menjadi bahan pertimbangan dalam merancang set instruksi.

Teknik Pengalamatan

     Metode pengalamatan merupakan aspek dari set instruksi arsitektur disebagian unit pengolah pusat (CPU) desain yang didefinisikan dalam set instruksi arsitektur dan menentukan bagaimana bahasa mesin petunjuk dalam arsitektur untuk mengidentifikasi operan dari setiap instruksi. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori yang efektif dari operand dengan menggunakan informasi yang diadakan di register dan / atau konstanta yang terkandung dalam instruksi mesin atau di tempat lain.


1. Immediate Addressing (Pengalamatan Segera)

- Pengalamatan yang paling sederhana.
- Operand benar-benar ada dalam instruksi atau bagian dari intsruksi.
- Operand sama dengan field alamat.
- Umumnya bilangan akan disimpan dalam bentuk complement dua.
- Bit paling kiri sebagai bit tanda.
- Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimum word data.

Keuntungan :
- Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand.
- Menghemat siklus instruksi sehingga proses keseluruhanakan akan cepat.

Kekurangan :
- Ukuran bilangan dibatasi oleh ukuran field.

Contoh :
- ADD 7 ; tambahkan 7 pada akumulator.


2. Direct Addressing (Pengalamatan Langsung)

- Teknik ini banyak digunakan pada komputer lama dan komputer kecil.
- Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus.

Kelebihan :
- Field alamat berisi efektif address sebuah operand.

Kekurangan :
- Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word.

Contoh :
- ADD A ; tambahkan isi pada lokasi alamat A ke akumulator.


3. Indirect Addressing (Pengalamatan tak langsung)

- Merupakan mode pengalamatan tak langsung.
- Field alamat mengacu pada alamat word di alamat memori, yang pada gilirannya akan berisi alamat operand yang panjang.

Kelebihan :
- Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi.

Kekurangan :
- Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi.

Contoh :
- ADD (A) ; tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator.


4. Register addressing (Pengalamatan Register) 

- Metode pengalamatan register mirip dengan mode pengalamatan langsung.
- Perbedaanya terletak pada field alamat yang mengacu pada register, bukan pada memori utama.
- Field yang mereferensi register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register general purpose.

Keuntungan :
- Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori.
- Akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat.

Kerugian :
- Ruang alamat menjadi terbatas


5. Register indirect addressing (Pengalamatan tak-langsung register)

- Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak langsung .
- Perbedaannya adalah field alamat mengacu pada alamat register.
- Letak operand berada pada memori yang dituju oleh isi register.
- Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung.
- Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak.
- Dalam satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan tidak langsung.

6. Displacement addressing

- Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung
- Mode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit.
- Operand berada pada alamat A ditambahkan isi register
- Relative addressing : register yang direferensi secara implisit adalah Program Counter (PC).
- Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat.
- Memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya.
- Referensi register dapat eksplisit maupun implisit.
- Merupakan kebalikan dari mode base register.
- Field alamat dianggap sebagai alamat memori dalam indexing.
- Manfaat penting dari indexing adalah untuk eksekusi program-program iteratif.

Contoh :
- Field eksplisit bernilai A dan field imlisit mengarah pada register.

7. Stack addressing

- Stack adalah array lokasi yang linier = pushdown list = last-in-firs-out.
- Stack merupakan blok lokasi yang terbaik.
- Butir ditambahkan ke puncak stack sehingga setiap blok akan terisi secara parsial.
- Yang berkaitan dengan stack adalah pointer yang nilainya merupakan alamat bagian paling atas stack.
- Dua elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack pointer mereferensi ke elemen ketiga stack.
- Stack pointer tetap berada dalam register.
- Dengan demikian, referensi-referensi ke lokasi stack di dalam memori pada dasarnya merupakan pengalamatan register tidak langsung.


Refrensi:

-Riyanto Sigit, S.T, M.Kom. 2005. Set Instruksi. Surabaya: Politeknik Elektronika Negeri Surabaya - ITS

0 komentar:

Posting Komentar

Joelyants. Diberdayakan oleh Blogger.

Gunadarma














Copyright © @Ridwan_Joelyant's | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com