Sabtu, 03 November 2018

ARSITEKTUR SET INSTRUKSI


ARSITEKTUR SET INSTRUKSI

Setiap komputer alau famili komputer menetapkan suatu arsitektur set instruksi (ISA). Datatype (jenis data) merupakan hal yang pokok bagi semua ISA, set register membentuk dasar operasional ISA. Komponen ketiga dari ISA, yaitu set instruksi, menentukan operasi yang dapat dijalankan oleh komputer dan menentukan teknik yang dapat ia gunanakan untuk mengalamatkan nilai dalam memori. Oleh karena itu, kita akan membahas jenis instuksi yang biasanya dipunyai oleh komputer dan penggunaan instruksi teknik pengalamatan untuk mereferensi memori, dan diakhiri dengan mengemukakan beberapa sifat desain set instruksi.

1. Jenis Instruksi
Walaupun komponen hardware membentuk basis atau dasar kemampuan komputer, namun set instruksi yang menentukan kompleksitas komputasi mesin tersebut. Oleh karena itu, ketika arsitek merancang komputer, ia akan sangat mempertimbangkan ISA-nya. Ia memilih atau mempertimbangkan set datatype, set operasi pada datatype tersebut, set teknik untuk menangani data dalam memori atau register, dan operasi untuk mengontrol berjalannya program, yaitu arus kontrol logis. Bila ia telah menetapkan ISA, ia harus menentukan format instruksi, yang menentukan bagaimana hardware akan menampilkan setiap instruksi.
Jenis-jenis set instruksi dapat dikategorikan menjadi:
1. Operate
1.1 Aritmatik
1.2 Boolean (logika)
1.3 Shift
1.4 Karakter dan string
1.5 Konversi jenis
1.6 Manipulasi/ pengubahan stack dan register
1.7 Load immediate
1.8 Tak ada operasi
1.9 Vektor
2. Akses memori
2.1 Muat dan simpan
2.2 Memuat alamat
2.3 Sinkronisasi proses
3. Kontrol
3.1 Cabang
3.2 Perbandingan dan pengujian
3.3 Hubungan subroutine
4. Jenis lain dan khusus
4.1 I/O
4.2 Pertukaran interrupt dan kedudukan
4.3 Khusus
4.4 Berhenti
5. Vektor

1.1 Instruksi Operate
Instruksi operate menentukan operasi mesin dan oleh karenanya ia menentukan operand untuk operasi mesin tersebut. Instruksi bisa menentukan operand secara eksplisit ataupun implisit. Operand yang ditentukan oleh op-code disebut implicit operand(operand implisit), ia tidak mempunyai spesifikasi yang lain. Sebagai contoh, instruksi CLEAR CARRY memberitahu unit kontrol untuk menghapus flag carry, yang menyimpan bit carry dari instruksi ADD yang terakhir. Instruksi CLEAR CARRY ini tidak mempunyai pengaruh lain, dan flag carry merupakan operand implisit dari instruksi. Explicit operand (operand eksplisit) adalah operand yang ditentukan oleh instruksi dalam field selain field op-code. Kebanyakan operand ditentukan secara eksplisit.
Sebagian besar operand adalah operand data. Jenis operand yang pokok adalah immediate atau addressed. Immediate operand (operand immediate) berada dalam aliran instruksi, umumnya dalam instruksi itu sendiri.
Addressed operand (operand addressed) di sini instruksi harus menentukan address (alamat)-nya. Dalam kasus ini, instruksi menyimpan address specification (spesifikasi alamat). Ada lusinan teknik untuk mengalamatkan address specification.

1.2 Instruksi Akses Memori
Instruksi LOAD dan STORE
Komputer dilengkapi dengan sejumlah instruksi untuk memuat register dari untuk menyimpan isi register ke dalam memori utama. Instruksi LOAD dan STORE ini menentukan ukuran operand (misalnya, byte, word, atau doubleword) dan menentukan jenis operasi (misalnya, LOAD POSITIVE, LOAD NEGATIVE). Instruksi yang menjalankan operasi selain load, seperti LOAD POSITIVE dan LOAD NEGATIVE, adalah instruksi operate dan juga instruksi load.
Instruksi LOAD ADDRESS
Banyak komputer yang dilengkapi dengan instruksi LOAD ADDRESS guna untuk mendapatkan alamat (address) data yang efektif atau alamat instruksi itu sendiri. Namun demikian, tidak seperti halnya dengan instruksi LOAD, instruksi LOAD ADDRESS tidak mengakses memori sama sekali.
Instruksi Sinkronisasi Proses
Instruksi sinkronisasi, yang juga disebut synchronization primitives, banyak digunakan dalam sistem pengoperasian yang mempunyai multitasking (berbagai tugas).

1.3 Instruksi Kontrol
Instruksi kontrol meliputi instruksi branch dan instruksi subroutine-linkage.
Instruksi Branch Kondisional dan Tak-kondisional
Jika tidak ada instruksi branch sama sekali, maka CPU akan menjalankan instruksi dengan sangat urut. Namun karena komputasi biasanya tergantung pada result (hasil) dari operasi sebelumnya, maka diperlukan branch kondisional. Branch kondisional akan menjalankan (mengawali) branch hanya jika kondisi test tertentu telah memadai. Instruksi yang selalu mencabang (branch), yaitu unconditional branches juga berguna, namun tidak terlalu diperlukan, karena branch kondisional dapat digunakan sebagai penggantinya.
Instruksi branch umumnya menentukan satu alamat, yaitu branch address. Branch address (alamat cabang) adalah alamat instruksi berikutnya yang akan dijalankan CPU. Instruksi ini disebut branch-target instruction (instruksi target cabang). Oleh karenanya, alamat cabang merupakan operand dari instruksi cabang.
Branch Test
Branch test adalah operand untuk instruksi cabang kondisional. Branch test adalah test yang outcome (hasil)-nya menentukan apakah branch dalam pertanyaan harus terjadi atau tidak.
Instruksi Hubungan Subroutine
Dalam suatu instruksi pasti mengalami, satu prosedur yang mungkin akan mengakibatkan terjadinya prosedur yang lain, dan prosedur yang kedua ini akan mengembalikan kontrol ke calling procedure (prosedur yang pertama). Kebanyakan komputer paling tidak dilengkapi dua instruksi hubungan subroutine (subroutine-linkage instruction) untuk tujuan tersebut. Yang satu untuk mencabang ke prosedur dan yang satunya untuk mengembalikan dari prosedur tersebut. Kita akan menggunakann JSR (jump and save register) sebagai instruksi mencabang ke prosedur biasa, dan RET (return) sebagai instruksi kembali ke prosedur biasa.

1.4 Instruksi Jenis Lain dan Khusus
Instruksi ini tidak termasuk dalam ketiga kategori sebelumnya. Instruksi ini meliputi instruksi I/O, interrupt, instruksi state-swapping, dan instruksi yang mengubah tingkat kekhususan.
Instruksi I/O
Instruksi I/O akan menjalankan signal kontrol yang mengontrol peralatan I/O. Instruksi I/O biasa menentukan I/O device address (bilangan yang menentukan peralatan I/O) dan menetapkan kode yang memberitahu peralatan mengenai operasi yang akan dijalankan.
Operasi Interrupt dan State-swapping
Interrupt adalah contoh branch yang dijalankan hardware (hardware-initiated branch). Ketika hardware menginterupsi suatu program, ia menyimpan informasi yang cukup mengenai keadaan/kedudukan (state) program guna menjalankan kembali program tersebut nantinya.
Instruksi Khusus
Sebagian besar komputer mempunyai instruksi khusus, yang disebut privileged instruction( instruksi khusus), yang memungkinkan sistem software melindungi dirinya sendiri dari manipulasi software pemakai.

1.5 Instruksi Vektor
Walaupun sebagian besar komputer tidak dilengkapi dengan instruksi vektor, namun ia dapat dijumpai di super computer dan berbagai komputer berkinerja tinggi, termasuk beberapa mesin RISC. Lebih dari itu, banyak komputer yang bisa ditambahi dengan hardware vektor khusus untuk mempercepat operasi vektor dan matriks. Dua sifat operasi vektor yang sangat penting adalah: (1) operasi vektor menggunakan pola reguler dalam mengakses memori, dan (2) operasi vektor melakukan operasi yang saran pada urutan operand.

2. Teknik Pengalamatan
Berikut teknik pengalamatan yang biasa digunakan:
1. Direct Addressing
2. Register Addressing
3. Indirect Addressing
4. Base Addressing
5. Indexed Addressing
6. Relative Addressing
7. Immediate Addressing
8. Page Addressing

3. Design Set Instruksi
Untuk desain awal, hal pertama yang harus diperhatikan adalah mengenai kelengkapan set instruksi dengan tidak ada fungsionalitas yang tertinggal. Pertimbangan kedua adalah bahwa instruksi harus bersifat ortogonal, yaitu tidak perlu berlebih-Iebihan. Yang ketiga adalah kompatibilitas yaitu program yang dijalankan oleh suatu komputer harus dapat dijalankan pada komputer yang lain. Persoalan penting yang lain dalam desain adalah umur panjang arsitektur, ekspandabilitas (daya kembang) jangkauan pengalamatan fisik dan homogenitas ruang alamat. Dan yang terakhir format instruksi untuk kemudahan implementasi ISA.

3.1 Kelengkapan
Pada tingkat yang paling dasar, NAND gate sudah cukup untuk mengimplementasikan semua operasi boolean dan aritmetik, maka mereka cukup untuk semua operasi komputer. Demikian pula, instruksi branch kondisional yang juga menyimpan isi PC cukup untuk menangani semua arus kontrol dalam komputer. Jadi, dimungkinkan untuk merancang set instruksi yang lengkap dengan instruksi tunggal yang mengkombinasikan NAND, branch kondisional, dan operasi save counter program (PC). Kelengkapan diartikan bahwa CPU dapat melengkapi setiap operasi dasar dengan instruksi tunggal atau dengan urutan operasi yang pendek.

3.2 Ortogonalitas
Kaitannya dengan kelengkapan adalah orthogonality (ortogona litas), yang merupakan sifat imdependansi instruksi. Kelengkapan dan ortogonalitas mempengaruhi compiler dalam berbagai area dan juga mempengaruhi kegunaan arsitektur komputer. Kurangnya ortogonalitas dalam set instruksi berarti bahwa compiler mempunyai sejumlah cara untuk menghasilkan kode untuk operasi umum.
Dari sudut pandang perancang komputer, kurangnya ortogonalitas berarti bahwa ada lebih banyak instruksi yang diimplementasikan dan dicek. Lebih dari itu, kelebihan instruksi ini umumnya memperlambat komputer karena mereka memerlukan hardware tambahan, sehingga mesin setidaknya harus sedikit lebih besar dan mesin yang lebih besar ini akan lebih lambat.

3.3 Kompatibilitas
Dalam desain set instruksi pada arsitektur komputer suatu set instruksi harus bisa dijalankan disetiap arsitektur komputer yang berbeda-beda.

3.4 Format Instruksi
Format instruksi adalah encoder dari op-code dan operand ke dalam suatu format tertentu yang akan dimasukkan ke dalam memori.

Kesimpulan
Dalam arsitektur komputer memerlukan sebuah set instruksi untuk menjalankan dan memproses berbagai data pada komputer. Dan jenis-jenis instruksi ini ada banyak seperti instruksi operasi untuk melakukan instruksi Aritmatik atau Boolean dan ada juga instruksi akses memori untuk meminta penggunaan memori dan instruksi lainnya, dalam instruksi juga memiliki teknik pengalamatan untuk mengakses register dan memori. Dalam mendesain set instruksi perlu memerhatikan kelengkapan dari set instruksi itu sendiri dan juga harus kompatibel terhadap arsitektur computer yang berbeda.

Referensi
http://www.elearning.gunadarma.ac.id/docmodul/index-arkomp.htm                                 1 Nov 2018 20.43
http://ymukhlis.staff.gunadarma.ac.id/Downloads/folder/0.1            2 Nov 2018 19.43

Tidak ada komentar:

Posting Komentar