Set Instruksi Arsitektur Komputer

Set instruksi (instruction set): sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU Instruksinya berbentuk machine code (bahasa mesin), aslinya seluruhnya dalam bilangan biner Untuk programmer, biasanya digunakan representasi yang lebih mudah dimengerti  bahasa yang dapat dimengerti manusia, dikenal dengan bahasa Assembly

A.   Jenis Instruksi: CISC
               Kompleks set instruksi komputer ( CISC ) ​​adalah sebuah komputer di mana instruksi tunggal dapat menjalankan beberapa operasi tingkat rendah ( seperti beban dari memori , operasi aritmatika , dan penyimpanan memori ) dan / atau mampu operasi multi-langkah atau mode pengalamatan dalam instructions.Examples tunggal arsitektur set instruksi CISC adalah System / 360 melalui z / Arsitektur , PDP - 11 , VAX , Motorola 68kand x86

B.   Jenis Instruksi: RISC
               Mengurangi komputasi set instruksi , atau RISC , adalah strategi desain CPU berdasarkan wawasan yang disederhanakan ( sebagai lawan kompleks ) instruksi dapat memberikan kinerja yang lebih tinggi jika kesederhanaan ini memungkinkan eksekusi lebih cepat dari setiap keluarga RISC instruction.Well terkenal termasuk Desember Alpha , AMD 29K , ARC , ARM , Atmel AVR , Blackfin , Intel i860 dan I960 , MIPS , Motorola 88000 , PA - RISC , Power ( termasuk PowerPC ) , SuperH , dan SPARC . Pada abad ke-21 , penggunaan prosesor arsitektur ARM di ponsel pintar dan komputer tablet seperti tablet iPad dan Android memberikan basis pengguna yang luas untuk sistem berbasis RISC .

C.   Set Instruksi Spesifik
Meskipun termasuk dalam satu golongan RISC atau CISC (dari segi jenis instruksinya), atau sama-sama dalam keluarga x86 (golongan arsitekturnya); tiap prosesor bisa memiliki set instruksi spesifik yang berbeda. For example, the Intel Pentium and the AMD Athlon implement nearly identical versions of the x86 instruction
set, but have radically different internal designs.  Pada intel ada ekstensi instruksi MMX, SSE2, SSE3 dst untuk menambah kemampuan multimedia.

D.   Elemen-elemen Instruksi
1.    Operation Code (OPCODE) / Kode Operasi
Kerjakan ini
2.    Source Operand Reference / Alamat Asal Operand
Terhadap isi alamat ini
3.    Result Operand Reference / Alamat Hasil Operand
Letakkan hasilnya di alamat ini
4.    Next Instruction Reference
     Alamat yang berisi instruksi selanjutnya
Sebuah instruksi tidak harus memiliki semua elemen di atas, tergantung kebutuhan dan jenis instruksinya

E. Ke mana operand disimpan?
1)   ingat: Semua instruksi deksekusi di dalam CPU
2) Sebuah operasi hanya membutuhkan register sebagai tempat membaca  /menyimpan operand sementara
3)  Adakalanya juga operand disimpan di lokasi lain melalui register yang berisi        alamat tempat penyimpanan tersebut (memory, cache, modul I/O)
F.  Representasi Instruksi
1.    Pada bahasa mesin, setiap instruksi berbentuk pola bit biner yang unik
2.     Agar dapat dimengerti manusia, dibuatlah representasi simbolik instruksi, biasanya berupa singkatan (disebut mnemonic)
misal ADD, SUB, LOAD
3.    Sedangkan alamat operand direpresentasikan sebagai berikut: ADDA,B
4.    Ada beberapa jenis representasi instruksi, yang dibedakan olehjumlah alamat operand yang dapat diterima oleh satu baris instruksi

Format Instruksi (Biner)
1.    Misal Instruksi dengan 2 Alamat Operand:
2.    ADD A, B _ A & B suatu alamat register

                              4 Bit                                      6 Bit                                          6 Bit
Opcode
Operand Reperence
Operand Reperence
16 Bit
       (dalam bentuk biner tentunya)

G.   Contoh Simbolik Instruksi
a.    ADD: Add (Jumlahkan)
b.    SUB: Subtract (Kurangkan)
c.    MPY/MUL: Multiply (Kalikan)
d.    DIV: Divide (Bagi)
e.    LOAD: Load data dari register/memory
f.     STOR: Simpan data ke register/memory
g.    MOVE: pindahkan data dari satu tempat ke tempat lain
h.    SHR: shift kanan data
i.      SHL: shift kiri data
dan lain-lain

H. Cakupan Jenis Instruksi
1.    Data processing: Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT, SHR, dsb); konversi data
2.    Data storage (memory): Transfer data (STOR, LOAD, MOVE, dsb)
3.     Data movement: Input dan Output ke modul I/O
4.    Program flow control: JUMP, HALT, dsb. Set Instruksi lengkap bisa dilihat di    kitabnya William Stallings
I.    Format Instruksi 3 Alamat
Bentuk umum: [OPCODE] [AH], [AO1], [AO2] Satu alamat hasil, dua alama operand
Misal: SUB Y, A, B
            Bentuk algoritmik: Y _ A – B
Arti: Kurangkan isi Reg A dengan isi Reg B, kemudian simpan hasilnya di Reg Y. Mengoperasikan banyak register sekaligus Program lebih pendek

AH: Alamat Hasil, AO1: Alamat Asal Operand 1, AO2: Alamat Asal Operand 2

J.  Format Instruksi 2 Alamat
Bentuk umum: [OPCODE] [AH], [AO] Satu alamat hasil merangkap operand, satu alamat operand
Misal: SUB Y, B
Bentuk algoritmik: Y _ Y – B Arti: Kurangkan isi Reg Y dengan isi Reg B, kemudian simpan hasilnya di Reg Y.
Bentuk ini masih digunakan di computer Sekarang Mengoperasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak
AH: Alamat Hasil, AO: Alamat Asal Operand

K.   Format Instruksi 1 Alamat
Bentuk umum: [OPCODE] [AO] Satu alamat operand, hasil disimpan di accumulator
 Misal: SUB B
Bentuk algoritmik: AC _ AC – B Arti: Kurangkan isi Acc. dengan isi Reg B, kemudian simpan hasilnya di Acc. Hanya mengoperasikan satu register, tapi program menjadi bertambah panjang
AO: Alamat Asal Operand

L.    Format Instruksi 0 Alamat
Bentuk umum: [OPCODE] [O] Semua alamat operand implisit, disimpandalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas dan di bawahnya
Misal: SUB
Bentuk algoritmik: S[top] _ S[top-1] – S[top]
Arti: Kurangkan isi Stack no.2 dari atas dengan isi Stack paling atas,kemudian simpan hasilnya di Stack paling atas Ada instruksi khusus Stack: PUSH dan POP yang dapat diberi alamat

K. Contoh Set Intruksi
Contoh Format Instr 3 Alamat                             Contoh Format Instr 2 Alamat                
A, B, C, D, E, T, Y adalah register                         A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)                        Program: Y = (A – B) / ( C + D × E)
SUB Y, A, B Y _ A – B                                          MOVE Y, A Y _ A
MPY T, D, E T _ D × E                                          SUB Y, B Y _ Y - B
ADD T, T, C T _ T + C                                          MPY T, E T _ T × E
DIV Y, Y, T Y _ Y / T                                           ADD T, C T _ T + C
                                                                            DIV Y, T Y _ Y / T

Memerlukan 4 operasi                                            Memerlukan 6 operasi


Contoh Format Instr 1 Alamat                             Contoh Format Instr 0 Alamat
A, B, C, D, E, Y adalah register                             A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)                        Program: Y = (A – B) / ( C + D × E)
LOAD D AC _ D                                                    PUSH A S[top] _ A
MPY E AC _ AC × E                                                PUSH B S[top] _ B
ADD C AC _ AC + C                                               SUB S[top] _ A - B
STOR Y Y _ AC                                                        PUSH C S[top] _ C
LOAD A AC _ A                                                        PUSH D S[top] _ D
SUB B AC _ AC – B                                                PUSH E S[top] _ E
DIV Y AC _ AC / Y                                                   MPY S[top] _ D × E
STOR Y Y _ AC                                                        ADD S[top] _ C + S[top]
                                                                                 DIV S[top] _ (A - B) / S[top]
                                                                                      POP Y Out _S[top]

                                                                                   
Memerlukan 8 operasi                                            Memerlukan 10 operasi

Yang Perlu Diperhatikan
Semakin banyak register yang diolah dalam satu instruksi semakin lambat Semakin banyak baris operasi untuk mengeksekusi sebuah program  juga semakin lambat Komputer sekarang karena menggunakan CISC dan RISC, maka menggunakan format instruksi 3 atau 2 alamat


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar