Arsitektur Komputer Set Instruksi

Pendahuluan

  Operasi dari CPU ditentukan oleh instruksi-instruksi •

yang dilaksanakan atau dijalankannya. Instruksi ini

sering disebut sebagai instruksi mesin (mechine instructions) atau instruksi komputer (computer instructions).

Elemen dari instruksi mesin (set instruksi)

   Operation Code (opcode) : menentukan operasi yang akan dilaksanakan  Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan  Result Operand Reference : merupakan hasil dari operasi

  

Source dan result operands dapat berupa salah

satu diantara tiga jenis berikut ini

  :

  1. Main or Virtual Memory

  2. CPU Register

Desain Set Instruksi Desain set instruksi merupakan masalah yang

  

sangat komplek yang melibatkan banyak aspek,

diantaranya adalah:

  1. Kelengkapan set instruksi

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

  1. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya

  2. Data Types: tipe/jenis data yang dapat olah

  Format Instruksi

  • Suatu instruksi terdiri dari beberapa field yang

    sesuai dengan elemen dalam instruksi tersebut.

    Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).

Jenis-jenis Operand

  • Addresses (akan dibahas pada addressing modes)

  • Numbers : - Integer or fixed point
    • Floating point
    • Decimal (BCD)

Jenis Instruksi

  

1. Data processing: Arithmetic dan Logic Instructions

  2. Data storage: Memory instructions

  3. Data Movement: I/O instructions

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.

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.

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 :

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.

KONVERSI

  Tindakan CPU sama dengan arithmetic dan logical. • Instruksi yang mengubah format instruksi yang • beroperasi terhadap format data. Misalnya pengubahan bilangan desimal menjadi • bilangan biner.

INPUT / OUPUT Tindakan CPU untuk melakukan Input /Output :

  • 1. Apabila memory mapped I/O maka menentukan alamat memory mapped.

  2. Mengawali perintah ke modul I/O

  Operasi set instruksi Input / Ouput :

TRANSFER CONTROL

  • Tindakan CPU untuk transfer control : Mengupdate program counter untuk subrutin , call / return.
  • Operasi set instruksi untuk transfer control :

  1. JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.

  2. JUMP BERSYARAT : menguji persyaratan tertentu

  6. SKIP : menambah PC sehingga melompati instruksi berikutnya.

  7. SKIP BERSYARAT : melompat atau tidak melakukan apa- apa berdasarkan pada persyaratan

  8. HALT : menghentikan eksekusi program.

  9. WAIT (HOLD) : melanjutkan eksekusi pada saat

  • Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang

    mengeksekusi suatu program yang berada dalam

    area khusus, biasanya digunakan dalam sistem

  

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 diperlukandalam sebuah instruksi :

Macam-macam instruksi menurut jumlah operasi yang dispesifikasikan

  1. O – Address Instruction 2. 1 – Addreess Instruction.

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

  

Jenis-jenis addressing modes (Teknik Pengalama-

tan) yang paling umum:

  • ImmediateDirect

  Tabel Basic Addressing Modes Mode Algorithm Principal Advantage Principal Disadvantage Immediate Operand =

  A No memory reference Limited operand magnitude Direct EA = A Simple Limited address space Indirect EA = (A) Large address space Multiple memory references

  Gambar Addressing Mode

  Mode Pengalamatan Mode Pengalamatan

  • Membatasi keterbatasan format instruksi
    • –Dapat mereferensi lokasi memori yang besar
    • –Mode pengalamatan yang mampu menangani keterbatasan tersebut

    >Masing-masing prosessor menggunakan mode pengalamatan yanf berbeda-beda
  • Memiliki pertimbangan dalam penggunaannya

  

Immediate Addressing

  • Bentuk pengalamatan ini yang paling sederhana?
    • –Operand benar-benar ada dalam instruksi atau bagian dari instruksi = operand sama dengan field alamat
    • –Umumnya bilangan akan disimpan dalam bentuk kompleent

      dua

  

Kelebuhan dan Kekurangan Immediate Addressing

  • Keuntungan
    • –Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
    • –Menghemat siklus instruksi sehingga proses

  Direct Addressing

  • Kelebihan
    • – Field alamat berisi efektif address sebuah operand

  • • Teknik ini banyak digunakan pada komputer lama dan komputer

    ecil
  • Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus
  • Kelemahan

  Indirect Addressing

  • Mode Pegalamatan tak langsung
    • –Field alamat mengacu pada alamat word di alamat memori, yang pada gilrannya

  Kelebihan dan Kekurangan Indirect Addressing

  • Kelebihan
    • –Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi

  • Kekurangan

Register Addressing

  • Metode pengalamatan register mirip dengan mode pengalamatan langsung
  • Perbedaannya terletak pada field alamat yang mengacu pada register, bukan pada

  

Keuntungan dan Kekurangan Register Addressing

  • Keuntungan pengalamatan register
    • –Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
    • –Akses ke regster lebih cepat daripada akses ke

Register Indirect Addressing

  • Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak langsung
  • • Perbedaannya adalah field alamat mengacu pada alamat

    register.

Register Indirect Addressing

  • 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

  Diplacement Addressing

  • Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung
  • Mode in mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit
    • –Field eksplisit bernilai A dan field implisit mengarah pada register

  

Diplacement Addressing

  • • Operand berada pada alamat A ditambahkan isi

    register
  • Tiga model displacement
    • –Relative addressing

  Diplacement Addressing

  • Relative addresing, register yang direferensi secara implisit adalah progra counter (PC)
    • – Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat
    • – Memanfaatkan konsep lokalitas memori untuk menyediakan operand- operand berikutnya

  Diplacement Addressing

  • Indexing dalah field alamat mereferensi alamat

    memori utama, dan register yang direferensikan

    berisi pemindahan positif dari alamat tersebut
    • –Merupakan kebalikan dari mode base register

  Stack Addressing

  • Stack adalah array lokasi yang linier = pushdown list = last-in-first- out
  • Stack merupakan blok lokasi yang terbalik
    • – Btir ditambakan ke puncak stack sehingga setiap saat blok akan terisi secara parsial

  • Yang berkaitan dengan stack adalah pointer yang nilainya