Minggu, 18 Oktober 2015

Pengenalan SET INSTRUKSI

ARSITEKTUR  SET  INSTRUKSI
Set Instruksi Arsitektur atau Instruction Set Architecture (ISA) merupakan  suatu perintah yang diberikan kepada sebuah PC ataupun CPU guna menjalankan sebuah OS (Operating System) dari suatu CPU tersebut. Operasi dari CPU ditentukan oleh instruksi-instruksi yang ditentukan atau dijalankannya. Kumpulan instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set instruksi (Instruction Set). Set instruksi juga biasanya digunakan untuk perantara komunikasi dari programmer menuju mesin, set instruksi biasanya berupa bahasa mesin yang digunakan sebagai jembatan komunikasi antara manusia dengan computer /sekumpulan instruksi lengkap yang dapat di mengerti oleh sebuah CPU, set instruksi sering juga disebut sebagai bahasa mesin (machine code), karna aslinya juga berbentuk biner kemudian dimengerti sebagai bahasa assembly, untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti oleh manusia. Set instruksi  juga didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram.
Instruction Set Architecture (ISA) adalah 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). Sebuah instruksi terdiri dari sebuah opcode, biasanya bersama dengan beberapa informasi tambahan seperti darimana asal operand-operand dan kemana hasil-hasil akan ditempatkan. Subyek umum untuk menspesifikasikan di mana operand-operand berada (yaitu, alamat-alamatnya) disebut pengalamatan. 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. Pada beberapa mesin, semua instruksi memiliki panjang yang sama, pada mesin-mesin yang lain mungkin terdapat banyak panjang berbeda.


Di dalam sebuah instruksi terdapat beberapa elemen-elemen instruksi:

  •     Operation code (op code) : menentukan operasi yang akan
           dilaksanakan Atau Menspesifikasi operasi yang akan dilakukan.
           Kode operasi berbentu kode biner.

  •   Operand reference : merupakan input bagi operasi yang akan 
          dilaksanakan Operasi dapat berasal dari lebih satu sumber. Operand 
          adalah input operasi.

  •   Result operand reference : merupakan hasil dari operasi yang 
          dilaksanakan Atau keluaran operasi.

  •   Next instruction preference : lemen ini menginformasikan 
         CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi
         atau memberitahu CPU untuk  mengambil instruksi berikutnya
         setelah instruksi yang dijalankan selesai.  

Jenis Intruksi
}     CISC, Complex Instruction Set Computer
                Sebuah arsitektur dari set instruksi komputer dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memori, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi.

}     RICS, Reduce Instruction Set Computer
                Rancangan arsitektur CPU yang mengambil dasar filosofi bahwa prosesor dibuat dengan arsitektur yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar  yang diperlukan saja. Cakupan jenis instruksi ini yakni dibawah ini :
Data processing             : Aritmetik (ADD, SUB, dsb); Logic (AND, OR, 
                                        NOT, SHR, dsb); konversidata
Data storage (memory) : Transfer data (STOR, LOAD, MOVE, dsb)
Data movement             : Input dan Output ke modul I/O
Program flow control     : JUMP, HALT, dsb.

Keterangan :
1. Data Processing / Pengolahan Data : instruksi-instruksi aritmetika dan logika. Instruksi aritmetika memiliki kemampuan untuk mengolahdata numeric, sedangkan instruksi logika beroperasi pada bit-bit word sebagai bit bukan sebagai bilangan. Operasi-operasi tersebut dilakukan terutama untuk data di register CPU.
2. Data Storage / Penyimpanan Data : instruksi-instruksi memori. Instruksi-instruksi memori diperlukan untuk memindah data yang terdapat di memori dan register.
3. Data Movement / Perpindahan Data : instruksi I/O. Instruksi-instruksi I/O diperlukan untuk memindahkan program dan data ke dalam memori dan mengembalikan hasil komputansi kepada pengguna.
4. Control / Kontrol : instruksi pemeriksaan dan percabangan. Instruksi-instruksi kontrol digunakan untuk memeriksa nilai data, status komputansi dan mencabangkan ke set instruksi lain.

Format instruksi (biner):
Misal  instruksi dengan 2 alamat operand : ADD A,B A dan B adalah suatu alamat register.
Beberapa simbolik 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.
dan lain-lain

Contoh suatu Format Instruksi adalah sbb :
Ilustrasi Format Instruksi Sederhana
 (Stallings, W. 1990, hal. 294)

Lokasi Source dan Result Operand dari Operasi
            Melihat dari sumbernya, lokasi source operand dan result operand suatu operasi dapat berada di salah satu dari ketiga daerah berikut ini :
– Main Memori atau memori utama atau virtual memori
– CPU Register atau Register CPU
– I/O Device atau Perangkat I/O

 Rancangan Set Instruksi
• Aspek paling menarik dalam arsitektur komputer adalah perancangan set
  instruksi, karena rancangan ini berpengaruh banyak pada aspek lainnya.
• Set instruksi menentukan banyak fungsi yang harus dilakukan CPU.
• Set instruksi merupakan alat bagi para pemrogram untuk mengontrol kerja CPU.
• 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.

Jenis-jenis metode pengalamatan diantaranya :
      1.     Immediate Addressing Mode

2. Register Addressing Mode

3. Direct Addressing Mode

4. Indirect Addressing Mode




R0 atau R1 digunakan untuk menunjukkan Destination Address
MOV A,#30h   ; salin immediate data 30h ke Akumulator
MOV R0,#7Fh   ; salin immediate data 7Fh ke register R0
MOV @R0,A   ; salin the data in A ke alamat di R0

R0 atau R1 digunakan untuk menunjukkan Source Address
MOV R0,#7Fh   ; salin immediate data 7Fh ke register R0
MOV @R0,#30h  ; salin immediate data 30 ke alamat di R0
MOV A,@R0   ; salin isi dari alamat di R0 ke Akumulator


*NB : klik gambar untuk melihat lebih jelas*


Bentuk instruksi:

–          Format instruksi 3 alamat
Mempunyai bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamt hasil, dan dua alamat operand, misal SUB Y,A,B Yang mempunyai arti dalam bentuk algoritmik : Y := A – B dan arti dalam bentuk penjelasan : kurangkan isi reg a dengan isi reg B, kemudian simpan hasilnya di reg Y. bentuk bentuk pada format ini tidak umum digunakan di dalam computer, tetapi tidak dimungkinkan ada pengunaanya, dalam peongoprasianya banyak register sekaligus dan program lebih pendek.

Contoh:
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
SUB Y, A, B                     Y := A – B
MPY T, D, E                     T := D × E
ADD T, T, C                     T := T + C
DIV Y, Y, T                      Y:= Y / T
Memerlukan 4 operasi

–          Format instruksi 2 alamat
Mempunyai bentuk umum : [OPCODE][AH],[AO]. Terdiri dari satu alamat hasil merangkap operand, satu alamat operand, missal : SUB Y,B yang mempunyai arti dalam algoritmik : Y:= Y – B dan arti dalam bentuk penjelasan : kurangkan isi reg Y dengan isi reg B, kemudian simpan hasillnya di reg Y. bentuk bentuk format ini masih digunakan di computer sekarang, untuk mengoprasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak.

Contoh :
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
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
Memerlukan 6 operasi

–          Format instruksi 1 alamat
Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di accumulator, missal : SUB B yang mempunyai arti dalam algoritmik : AC:= AC – B dan arti dalam bentuk penjelasan : kurangkan isi Acc dengan isi reg B, kemudian simpan hasillnya di reg Acc. bentuk bentuk format ini masih digunakan di computer jaman dahulu, untuk mengoprasikan di perlukan satu  register, tapi panjang program semakin bertambah.

Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
LOAD D                           AC := D
MPY E                             AC := AC × E
ADD C                             AC := AC + C
STOR Y                           Y := AC
LOAD A                           AC := A
SUB B                             AC := AC – B
DIV Y                              AC := AC / Y
STOR Y                           Y := AC
Memerlukan 8 operasi

–          Format instruksi 0 alamat
Mempunyai bentuk umum : [OPCODE]. Terdiri dari semua alamat operand implicit, disimpan dalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas dan dibawahnya missal : SUB yang mempunyai arti dalam algoritmik : S[top]:=S[top-1]-S[top] dan arti dalam bentuk penjelasan : kurangkan isi stack no2 dari atas dengan isi stack paling atas, kemudian simpan hasilnya di stack paling atas, untuk mengoprasikan ada beberapa instruksi khusus stack PUSH dan POP.

Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
PUSH A                           S[top] := A
PUSH B                           S[top] := B
SUB                                S[top] := A – B
PUSH C                           S[top] := C
PUSH D                           S[top] := D
PUSH E                           S[top] := E
MPY                                S[top] := D × E
ADD                                S[top] := C + S[top]
DIV                                 S[top] := (A – B) /S[top]
POP Y                             Out := S[top]
Memerlukan 10 operasi

Set instruksi pada CISC:
Berikut ini merupakan karakteristik set instruksi yang digunakan pada beberapa computer yang memiliki arsitektur CISC

DESAIN SET INSTRUKSI
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya :

1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi instruksi)
3. Kompatibilitas :
- Source code compatibility
- Object code compatibility

Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut :

a. Operation Repertoire, berapa banyak dan operasi apa saja yang disediakan dan
    berapa sulit operasinya.
b. Data Types, tipe / jenis data yang dapat diolah.
c. Instruction Format, panjangnya, banyaknya alamat, dsb.
d. Register, banyaknya register yang dapat digunakan.
e. Addressing, mode pengalamatan untuk operand.

OPCODE OPERAND REFERENCE OPERAND REFERENCE JENIS-JENIS OPERAND
* Addresses (akan dibahas pada addressing modes)
* Numbers : – Integer or fixed point – Floating point – Decimal (BCD)
* Characters : – ASCII – EBCDIC
* Logical Data : Bila data berbentuk binary: 0 dan 1

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 :
a. Memindahkan data dari satu lokasi ke lokasi lain.
b. Apabila memori dilibatkan :
1. Menetapkan alamat memori.
2. Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
3. Mengawali pembacaan / penulisan memori

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

ARITHMETIC
Tindakan CPU untuk melakukan operasi arithmetic :
1.       Transfer data sebelum atau sesudah.
2.       Melakukan fungsi dalam ALU.
3.       Menset kode-kode kondisi dan flag.

Operasi set instruksi untuk arithmetic :
1. ADD : penjumlahan
2. SUBTRACT : pengurangan
3. MULTIPLY : perkalian
4. DIVIDE : pembagian
5. ABSOLUTE
6. NEGATIVE
7. DECREMENT
8. INCREMENT

Nomor 5 sampai 8 merupakan instruksi operand tunggal. 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.

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.

CONTROL SYSTEM
* Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem operasi. * Contoh : membaca atau mengubah register kontrol.

JUMLAH ALAMAT (NUMBER OF ADDRESSES)
* Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah
   dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya.
* Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi :
1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat instruksi
    berikutnya)
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan operand dan 
    hasilnya)

Macam-macam instruksi menurut jumlah operasi yang dispesifikasikan
1. O – Address Instruction
2. 1 – Addreess Instruction.
3. N – Address Instruction
4. M + N – Address Instruction

Macam-macam instruksi menurut sifat akses terhadap memori atau register
1. Memori To Register Instruction
2. Memori To Memori Instruction
3. Register To Register Instruction

ADDRESSING MODES
Jenis-jenis addressing modes (Teknik Pengalamatan) yang paling umum:
* Immediate
* Direct
* Indirect
* Register
* Register Indirect
* Displacement
* Stack

Keterangan ADDRESSING MODES :
1. Immediate addressing
Operand (data yang akan dikomputasi) berada langsung pada set instruksi.

2. Direct Addressing
Operand berada pada memori, set instruksi memegang alamat lokasi memori dimana operand tersebut berada.

3. Indirect Addresing
Operand berada pada memori, untuk mendapatkan operand ini CPU harus melakukan penelusuran dua kali yaitu dari data alamat memori yang ada pada set instruksi serta alamat yang ditunjuk oleh alamat memori yang diperoleh dari set instruksi tadi.

4. Register addressing
Operand berada pada register, cara kerjanya mirip dengan direct addressing hanya saja CPU mengakses alamat register bukan alamat memori.

5. Register Indirect Addressing
Operand berada pada memori, untuk mendapatkan operand CPU harus mengakses register terlebih dahulu karena informasi lokasi operand berada pada register.

6. Displacement
Operand berada pada memori, cara kerjanya merupakan gabungan dari teknik direct addressing dan register indirect addressing.

7. Stack
Operand berada pada stack, operand secara berkala dimasukan ke stack sehingga ketika
operand dibutuhkan maka operand sudah berada pada “top of the stack”.

Kesimpulan
Instruction Set Architecture (ISA) didefinisikan sebagai sesuatu aspek dalam arsitektur computer yang dapat dilihat oleh para pemrogram. Disebut juga machine code (bahasa mesin), aslinya juga berbentuk biner > bahasa assembly. Di dalam intruksi – intruksi terdiri dari operand dan operator yang nantinyaakan melakukan sebuah operasi di dalam komputer. Operasi – operasi yangberjalan di dalam CPU ditentukan oleh instruksi-instruksi yang dieksekusinya.Di dalam set instruksi ada elemen-elemen yang akan digunakan untukdieksekusi. Namun intruksi yang dilakukan harus direpresentasikan olehsehimpunan bit agar dapat dimengerti oleh manusia / programmer. Intruksidapat berupa 3 alamat – 0 alamat.

Tidak ada komentar:

Posting Komentar