Friday, 24 October 2014

Karakteristik Instruksi Mesin

Operasi dari sebuah prosesor ditentukan oleh instruksi yang akan dieksekusi yang disebut dengan instruksi mesin atau instruksi komputer. Berbagai macam instruksi yang dapat dieksekusi oleh prosesor disebut dengan processor instruction set.
Gambar 1. Diagram Siklus Instruksi

a.        Elemen Instruksi Mesin
       Setiap instruksi harus mengandung informasi yang dibutuhkan oleh prosesor untuk dieksekusi yang meliputi :
-            Operation Code
Menentukan operasi yang akan dilakukan, contohnya (ADD, I/O). Operasi ini menggunakan kode biner yang disebut dengan operation code atau opcode.
-            Source Operand Reference
Operasi dapat berasal dari satu atau lebih sumber operand. Operand (data) adalah input instruksi yang akan dieksekusi.
-            Result Operand Reference
Merupakan hasil atau keluaran dari operasi yang telah dilaksanakan.
-            Next Instruction Reference
Elemen ini menginformasikan kepada prosesor posisi instruksi berikutnya yang harus diambil dan dieksekusi setelah instruksi selesai dilaksanakan.

       Alamat instruksi berikutnya yang akan diambil merupakan salah satu alamatnyata atau alamat virtual tergantung dari arsitektur yang digunakan. Umumnya perbedaan yang ada adalah pada arsitektur set instruksinya. Pada beberapa kasus, instruksi berikutnya akan segera di ambil mengikuti instruksi yang sedang dieksekusi.Memori utama atau memori virtual harus menyediakan data ketika dibutuhkan.
Sumber dan hasil operand dapat berasal dari:
-            Memori utama atau memori virtual
Memori utama atau memori virtual harus menyediakan keterangan instruksi berikutnya yang akan dieksekusi.
-            Register prosesor
Pada kondisi tertentu, terdapat satu atau lebih register yang dijadikan referensi oleh instruksi mesin. Jika hanya terdapat satu register, maka hanya akan mengacu kepada register tersebut. Jika terdapat lebih dari satu register, maka setiap register diberi tanda yang unik berupa nama atau angka, dan setiap instruksi harus mengandung tanda tersebut.
-            Immediate
Isi dari operand terdapat pada instruksi yang sedang dieksekusi.
-            I/O device
Suatu instruksi harus menentukan modul I/O dan perangkat dari operasi yang akan digunakan.

b.        Representasi Instruksi
       Instruksi yang ada pada komputer direpresentasikan oleh urutan bit. Instruksi dibagi dalam beberapa bagian yang saling berhubungan. Berikut ini adalah gambar contoh format instruksi.
Gambar 2. Contoh Format Instruksi

Terdapat lebih dari satu format instruction set. Selama instruksi dieksekusi, sebuah instruksi dibaca dari instruction register (IR) pada prosesor. Prosesor harus mampu mengekstrak data dari berbagai jenis instruksi untuk melakukan operasi yang diperlukan.
Programer mengalami kesulitan dalam membaca instruksi mesin yang direpresentasikan dengan biner. Maka diperlukan simbol yang merepresentasikan instruksi mesin.
Opcode direpresentasikan dengan singkatan yang menunjukkan operasi yang disebut mnemonics. Contohnya adalah:
ADD           Add
SUB                        Subtract
MUL           Multiply
DIV             Divide
LOAD         Load data from memory
STOR          Store data to memory
Operand juga direpresentasikan menggunakan simbol. Contohnya:
ADD R,Y
Artinya isi dari data pada lokasi Y ditambahkan pada register R. Pada contoh ini, Y merupakan alamat lokasi pada memori dan R adalah register khusus. Operasi ini menambahkan isi dari sebuah lokasi bukan pada lokasinya.
Maka memungkinkan untuk menulis bahasa mesin menggunakan simbol. Setiap simbol opcode direpresentasikan dengan biner yang tetap dan programer menentukan lokasi dari setiap simbol operand. Contoh, programer mendefinisikan
X = 513
Y = 514
Program akan menerima simbol yang dimasukkan, merubah opcode dan operand kedalam biner dan membuat instruksi mesin dalam biner. Bahasa mesin saat ini jarang sekali digunakan langsung oleh programer karena sudah banyak berkembang bahasa tingkat tinggi yang lebih mudah untuk digunakan. Namun, simbol dari bahasa mesin merupakan alat yang digunakan untuk mendefinisikan instruksi mesin yang digunakan untuk tujuan tertentu.

c.        Jenis Instruksi
       Pada bahasa tingkat tinggi, instruksi dapat dinyatakan menggunakan bahasa pemrograman seperti BASIC atau FORTRAN. Contoh:
X = X + Y
Statemen tersebut memnginstruksikan komputer untuk menambahkan isi dari Y dengan isi dari X dan disimpan pada X. Kita asumsikan variabel X dan Y berada pada lokasi 513 dan 514. Jika kita gunakan set instruksi mesin, maka operasi yang dilakukan adalah sebagai berikut:
1.    Isi sebuah register dengan data yang ada pada memori dilokasi 513
2.    Tambahkan isi memori dilokasi 514 ke register
3.    Simpan isi register ke memori dilokasi 513

Dapat dilihat bahwa instruksi dari bahasa BASIC tersebut membutuhkan tiga instruksi mesin. Ini menunjukkan relasi yang khas antara bahasa tingkat tinggi dengan bahasa mesin. Bahasa tingkat tinggi menyatakan operasi dengan singkat menggunakan variabel, dan bahasa mesin menyatakan operasi perpindahan data dari dan atau ke register.
Dari contoh sederhana diatas, kita dapat menentukan tipe instruksi yang harus terdapat pada komputer. Sebuah komputer harus memiliki set instruksi yang mengijinkan pengguna untuk merumuskan data yang akan diproses. Setiap program yang ditulis dengan bahasa tingkat tinggi harus diubah kedalam bahasa mesin agar dapat dieksekusi. Maka, instruksi mesin harus mampu menyatakan semua instruksi dari bahasa tingkat tinggi. Tipe instruksi yang ada dapat dibagi kedalam beberapa kategori yaitu:
1.    Dataprocessing
Berupa instruksi aritmatika dan logika
2.    DataStorage
Perpindahan data masuk atau keluar dari register dan atau memori
3.    DataMovement
Instruksi input dan output
4.    Control
Instruksi untuk pengujian dan percabangan

       Instruksi aritmatika menyediakan perhitungan untuk mengolah data numerik. Instruksi logika lebih banyak untuk operasi bit atau kumpulan bit dari pada angka. Maka instruksi ini mampu mengolah tipe data yang lain. Operasi tersebut dilakukan terutama pada data yang ada di register prosesor. Oleh karena itu, harus ada instruksi untuk memindahkan data antara memori dan register. Instruksi input output digunakan untuk memindahkan program dan data kedalam memori dimana hasilnya akan diproses kembali oleh user. Instruksi pengujian (tes) digunakan untuk menguji isi dari data atau status dari perhitungan. Instruksi percabangan digunakan untuk menentukan set instruksi yang berbeda tergantung keputusan yang dibuat.

d.        Jumlah Alamat
       Salah satu cara untuk menggambarkan arsitektur prosesor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya.
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. Tetapi pada 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. Tetapi 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. Sehingga diperlukan register CPU yang banyak, namun operasi antar register lebih cepat serta lebih mudah mengimplementasikan fungsi-fungsi yang kita inginkan. Sehingga jumlah instruksi per program jauh lebih sedikit

Untuk lebih jelas perhatikan contoh-contoh instruksi dengan jumlah register berbeda untuk menyelesaikan persoalan yang sama.
Contoh penggunaan instruksi dengan alamat 1, 2 dan 3 untuk menyelesaikanoperasi hitungan:
Y = (A - B) : (C + D * E)

Instruksi dengan tiga alamat
Instruksi                              Keterangan
SUB Y, A, B                      Y =A - EI
MPY T, D, E                      T= D * E
ADD T, T, C                      T=T + C
DIV Y, Y, T                       Y= Y : T



Instruksi dengan dua alamat
Instruksi                  komentar
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

Instruksi dengan satu alamat
Instruksi                  Komentar
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

Instruksi dengan nol alamats
Instruksi                              komentar
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}}


Berikut ini adalah tabel penggunaan alamat instruksi
Tabel 1. Penggunaan Alamat Instruksi

AC         = Accumulator
T            = stack paling atas
(T – 1)    = elemen stack yang kedua
A,B,C    = lokasi memori atau register



e.        Desain Set Instruksi
       Salah satu hal yang menarik dalam mendesain sistem komputer adalah mendesain set instruksi. Desain set instruksi merupakan hal yang cukup komplek karena mempengaruhi berbagai aspek dalam sistem komputer. Dalam mendesain set instruksi, ada beberapa hal yang penting yang harus diperhatikan antara lain adalah:
1.         Operation repertoire
Berapa banyak seberapa kompleks operasi yang disediakan.
2.         Data types
Tipe data apa saja yang didukung dalam operasi yang dilakukan
3.         Instruction format
Panjang instruksi (dalam bit), jumlah alamat, ukuran berbagai field dan sebagainya
4.         Register
Jumlah register yang dimiliki prosesor yang dapat direferensikan oleh instruksi dan yang digunakan
5.         Addressing
Bagaiman pengalamatan dilakukan.



3 comments:

  1. DIV Y, T Y = Y + T
    yg bagian itu pembagian atau pengurangan?

    ReplyDelete
  2. DIV kan pembagian dan masih ada bagian yg salah sih.

    ReplyDelete
  3. tolong jawab secepatnya yah gan.BY:anonymous

    ReplyDelete