Senin, 26 November 2012

Set Intruksi



Set Instruksi
Set Instruksi
Set instruksi merupakan salah satu bahasan pada bidang Organisasi dan Arsitektur komputer. Pada paper ini akan dijelaskan mengenai beberapa bahasan mengenai set instruksi yaitu tentang fungsi dan karakteristik, dan juga tentang format dan cara pengalamatan pada set instruksi.

Pengertian mengenai set instruksi, fungsi dan karakteristik

Set instruksi (instruction set) merupakan sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU. Disebut juga machine code (bahasa mesin), aslinya juga berbentuk biner yang merupakan bahasa assembly. Untuk konsumsi manusia (dalam hal ini programmer), biasanya digunakan representasi yang lebih mudah dimengerti yaitu berupa bahasa yang dapat dimengerti manusia.
Sehingga dapat dibagi menjadi:

-Kumpulan instruksi lengkap yang dimengerti oleh CPU
-Kode mesin 
-Biner 
-Kode assembly

Karakteristik instruksi mesin :
 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 umum pada set instruksi 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


Operand pada set instruksi dapat berasal dari:

-Main memory (or virtual memory or cache)
-CPU register
-I/O device


Beberapa tipe penyajian instruksi:

1.Dlm kode mesin setiap instruksi memiliki pola-bit tertentu 

2.Untuk konsumsi programmers disediakan penyajian simbolik 
Contoh: ADD, SUB, LOAD

3.Operand juga disajikan secara simbolik 
Contoh: ADD A,B


Contoh simbolik set instruksi:

ADD: Add (Jumlahkan)
SUB: Subtract (Kurangkan)
MPY/MUL: Multiply (Kalikan)
DIV: Divide (Bagi)
LOAD: Load data dari register/memory
STOR: Simpan data ke register/memory
MOVE: pindahkan data dari satu tempat ke 
tempat lain
SHR: shift kanan data
SHL: shift kiri data 


Dengan jenis instruksi yang diperintahkan antara lain:

Data processing: Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT, SHR, dsb); konversi data
Data storage (memory): Transfer data (STOR, LOAD, MOVE, dsb)
Data movement: Input dan Output ke modul I/O 
Program flow control: JUMP, HALT, dsb. 
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

2. Representasi Instruksi

-Instruksi 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 dikenal dengan 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. 



3. Jenis – jenis Instruksi

Contoh suatu ekspresi bilangan:
X = X + Y;
X dan Y berkorespondensi dengan lokasi 210 dan 211.
Pernyataan dalam bahasa tingkat tinggi tersebut menginstruksikan komputer untuk melakukan 
langkah berikut ini:
-Muatkan sebuah register dengan isi lokasi memori 210.
-Tambahkan isi lokasi memori 211 ke register.
-Simpan isi register ke lokasi memori 210.


Korelasi

-Terlihat hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa mesin.
-Dalam bahasa tangkat tinggi, operasi dinyatakan dalam bentuk aljabar singkat menggunakan variabel.
-Dalam bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan antar register.
-Dapat ditarik kesimpulan bahwa instruksi-instruksi mesin harus mampu mengolah data sebagai implementasi keinginan-keinginan kita.
-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.


4. 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.
-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.
-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.
-Diperlukan register CPU yang banyak, namun operasi antar register lebih cepat.
-Lebih mudah mengimplementasikan fungsi-fungsi yang kita inginkan.
-Jumlah instruksi per program jauh lebih sedikit.
-Untuk lebih jelas perhatikan contoh instruksi – 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 alamat

Instruksi Komentar
SUB Y, A, B Y =A — EI
MF'Y T, D, E T= D >< E
ADD T, T, C T=T + C
DIV Y, Y, T Y= Y + T


Instruksi 2 alamat

Instruksi KOmmentar
MOVE Y, A Y = A
SUB Y, B Y = Y - B
MOVE T, D T = D
MPY T, E T = T E
ADD T, C T = T + C
DIV Y, T Y = Y + T


Contoh instruksi 1 alamat

Instruksi Komentar
LOAD D AC =D
MPY E AC = AC E
ADD C AC= AC + C
STOP Y Y = AC
LOAD A AC = A
SUB B AC = AC - B
DN Y AC =AC + Y
STOP Y Y= AC
Instruksi Keterangan isi stack
PUSH B B
PUSH A B.A
SUB A-B (A-B)
PUSH E (A·B).E
PUSH D (A-B).E.D
MUL D*E (A-B).(D*E)
PUSH C [A-B).(D*E).C
ADD C+(D*E) (A-B).(C+D*E)
DIV {A-B)/(C+(D*E)} (A-B)/(C+(D"E}}


Spesifikasi instruksi 3 alamat

-Simbolik: a = b + c
-Format alamat: hasil, operand1, operand2
-Digunakan dalam arsitektur MIPS


Spesifikasi instruksi 2 alamat

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


Spesifikasi instruksi 1 alamat

-Memerlukan alamat implisit untuk operasi
-Menggunakan register accumulator (AC) dan digunakan pada mesin lama.


Spesifikasi instruksi 0 alamat

-Seluruh alamat yang digunakan adalah implisit
-Digunakan pada organisasi memori, terutama operasi stack 


5. Rancangan Set Instruksi

-Aspek paling menarik dalam arsitektur komputer adalah perancangan ini berpengaruh banyak pada aspek lainnya.
-Set instruksi menentukan banyaknya fungsi yang harus dilakukan CPU.
-Set instruksi merupakan alat bagi pemrogram untuk mengontrol kerja CPU.
-Pertimbangan: kebutuhan pemrogram menjadi bahan pertimbangan dalam merancang set instruksi.


Masalah yang fundamental meliputi:
*Operation repertoire:
Berapa banyak dan operasi-operasi apa yang tersedia.
Sekompleks apakah operasi itu seharusnya
*Data Types:
Jenis data 
Format data
*Instruction format:
Panjang instruksi
Jumlah alamat
Ukuran field
*Register:
Jumlah register CPU yang dapat direferensikan oleh instruksi dan fungsinya
*Addressing:
Mode untuk menspesifikasikan alamat suatu operand


Tipe Operasi

Dalam perancangan arsitektur komputer, jumlah kode operasi akan sangat berbeda untuk masing-masing komputer,
tetapi terdapat kemiripan dalam jenis operasinya.

Jenis operasi komputer

-Transfer data – konversi
-Aritmatika – input/output
-Logika – kontrol sistem dan transfer kontrol


Transfer Data

1.Instruksi transfer data harus menetapkan:
-Lokasi operand sumber
-Lokasi operand tujuan 
-Panjang data yang akan dipindahkan 
-Mode pengalamatannya

2.Apabila sebuah atau kedua operand berada di dalam memori, maka CPU harus melakukan sebagian atau seluruh tindakan berikut:
-Menghitung alamat memori, yang didasarkan pada mode alamat.
-Apabila alamat mengacu pada virtual memori harus dicari alamat memori sebenarnya.
-Menentukan apakah alamat berada dalam cache memori.
-Bila di cache tidak ada, dikeluarkan perintah ke modul memori.



Tidak ada komentar:

Posting Komentar